diff --git a/libraries/io/ddr/tb/vhdl/tb_io_ddr.vhd b/libraries/io/ddr/tb/vhdl/tb_io_ddr.vhd
index e42f972dfc969167ef59a19345fa8606a574b1b2..e5b70fc7b8a0d580de83e24984627e541b9a76d9 100644
--- a/libraries/io/ddr/tb/vhdl/tb_io_ddr.vhd
+++ b/libraries/io/ddr/tb/vhdl/tb_io_ddr.vhd
@@ -178,6 +178,7 @@ BEGIN
       END LOOP;
       
       -- Stop diagnostics source and sink
+      proc_common_wait_some_cycles(dp_clk, 1);
       src_diag_en <= '0';
       snk_diag_en <= '0';
       
@@ -188,9 +189,9 @@ BEGIN
       
       -- Wait until the wr fifo has been flushed and the rd fifo has been read empty
       proc_common_wait_some_cycles(ctlr_clk, 500*c_dp_factor);
-      ASSERT UNSIGNED(wr_fifo_usedw) = 0          REPORT "[ERROR] Write FIFO is flushed but not empty!" SEVERITY FAILURE;
-      ASSERT UNSIGNED(rd_fifo_usedw) = 0          REPORT "[ERROR] Read FIFO is not empty!" SEVERITY FAILURE;
-      ASSERT UNSIGNED(snk_val_cnt) = expected_cnt REPORT "[ERROR] Unexpected number of read data!" SEVERITY FAILURE;
+      ASSERT UNSIGNED(wr_fifo_usedw) < c_dp_factor  REPORT "[ERROR] Write FIFO is flushed but not empty!" SEVERITY FAILURE;
+      ASSERT UNSIGNED(rd_fifo_usedw) = 0            REPORT "[ERROR] Read FIFO is not empty!" SEVERITY FAILURE;
+      ASSERT UNSIGNED(snk_val_cnt)   = expected_cnt REPORT "[ERROR] Unexpected number of read data!" SEVERITY FAILURE;
       
       -- Restart diagnostics source and sink
       src_diag_en <= '1';