diff --git a/src/finn/qnn-data/cpp/verilator_fifosim.cpp b/src/finn/qnn-data/cpp/verilator_fifosim.cpp
index 7d52ed709387bde61ef8e26bf9da61c1ea904bf7..565aab23e914a3f10f557c85b56329dbfdb6b31f 100644
--- a/src/finn/qnn-data/cpp/verilator_fifosim.cpp
+++ b/src/finn/qnn-data/cpp/verilator_fifosim.cpp
@@ -118,7 +118,7 @@ int main(int argc, char *argv[]) {
     chrono::steady_clock::time_point begin = chrono::steady_clock::now();
 
     while(!exit_criterion) {
-        if(top->s_axis_0_tready == 1) {
+        if(top->s_axis_0_tready == 1 && top->s_axis_0_tvalid == 1) {
             n_in_txns++;
             if(n_in_txns == n_iters_per_input * n_inputs) {
                 top->s_axis_0_tvalid = 0;