diff --git a/applications/lofar2/libraries/ddrctrl/src/vhdl/ddrctrl.vhd b/applications/lofar2/libraries/ddrctrl/src/vhdl/ddrctrl.vhd
index 9f20e268cf6ab22a04817c893d8bba1f4a5ae0ab..6f27a4b62d8da0288057e1d70dd0729106e7249b 100644
--- a/applications/lofar2/libraries/ddrctrl/src/vhdl/ddrctrl.vhd
+++ b/applications/lofar2/libraries/ddrctrl/src/vhdl/ddrctrl.vhd
@@ -62,7 +62,7 @@ END ddrctrl;
 ARCHITECTURE str OF ddrctrl IS
 
   -- constant for readability
-  CONSTANT  c_out_data_w : NATURAL    := g_nof_streams*g_data_w;           -- the input data with for ddrctrl_repack
+  CONSTANT  c_out_data_w : NATURAL    := g_nof_streams*g_data_w;        -- the input data with for ddrctrl_repack
 
 
   -- signals for connecting the components
diff --git a/applications/lofar2/libraries/ddrctrl/tb/vhdl/tb_ddrctrl.vhd b/applications/lofar2/libraries/ddrctrl/tb/vhdl/tb_ddrctrl.vhd
index 12a9abbd263bb354a571fa6c2f8be1c9cf3a0b18..fa829a0ca0b101d788971212ac445e4a28592aac 100644
--- a/applications/lofar2/libraries/ddrctrl/tb/vhdl/tb_ddrctrl.vhd
+++ b/applications/lofar2/libraries/ddrctrl/tb/vhdl/tb_ddrctrl.vhd
@@ -100,7 +100,7 @@ BEGIN
 
     -- start the test
     tb_end            <= '0';
-    WAIT UNTIL rising_edge(clk);                                                                                                   -- align to rising edge
+    WAIT UNTIL rising_edge(clk);                                                                                                  -- align to rising edge
     WAIT FOR c_clk_period*5;
     rst <= '1';
     WAIT FOR c_clk_period*1;
@@ -111,11 +111,15 @@ BEGIN
       lag_due_reset <= lag_due_reset+TO_UINT(out_mosi.address);
     END IF;
     WAIT FOR c_clk_period*1;
-    test_running      <= '1';                                                                                                      -- start of test
 
     -- filling the input data vectors with the corresponding numbers
-    make_data : FOR J IN 0 TO g_sim_length-1 LOOP
-      fill_in_sosi_arr : FOR I IN 0 TO g_nof_streams-1 LOOP
+    fill_in_sosi_arr : FOR I IN 0 TO g_nof_streams-1 LOOP
+      in_sosi_arr(I).data(g_data_w-1 DOWNTO 0)   <= c_total_vector(g_data_w*(I+1)-1 DOWNTO g_data_w*I);
+    END LOOP;
+    WAIT FOR c_clk_period*1;
+    test_running      <= '1';                                                                                                     -- beceause there is al delay in address counter, test running should go up one clockcycle later in order for p_verify to function
+    make_data : FOR J IN 1 TO g_sim_length-1 LOOP
+      fill_in_sosi_arr_rest : FOR I IN 0 TO g_nof_streams-1 LOOP
         in_sosi_arr(I).data(g_data_w-1 DOWNTO 0)   <= c_total_vector(g_data_w*(I+1)+J*c_in_data_w-1 DOWNTO g_data_w*I+J*c_in_data_w);
       END LOOP;
       WAIT FOR c_clk_period*1;
@@ -172,19 +176,19 @@ BEGIN
   -- verification by checking if the input vectors are correctly put into the output vector and the amount of overflow is as expected
   p_verify : PROCESS
 
-  VARIABLE  ctr_of            : NATURAL                                     := 0;
-  VARIABLE  out_data_cnt      : NATURAL                                     := 0;
+  VARIABLE  ctr_of            : NATURAL                                               := 0;
+  VARIABLE  out_data_cnt      : NATURAL                                               := 0;
 
   BEGIN
-  WAIT UNTIL test_running = '1';
-  WAIT UNTIL out_mosi.wr = '1';
-  out_data_cnt      := out_data_cnt+1;
-  IF out_data_cnt mod 2 = 0 THEN
-    assert false report "in_data_cnt = " & NATURAL'image(in_data_cnt) & ", out_data_cnt = " & NATURAL'image(out_data_cnt) severity note;
-    ctr_of := c_in_data_w*in_data_cnt-c_out_data_w*out_data_cnt;
-    ASSERT ctr_of                                   = out_of                                                                            REPORT "The amount of overflow does not match, ctr_of = " & NATURAL'image(ctr_of) & ", out_of = " & NATURAL'image(out_of)                   SEVERITY ERROR;
-  END IF;
+  WAIT UNTIL rising_edge(clk);
+  IF test_running = '1' AND out_mosi.wr = '1'THEN
+    out_data_cnt      := out_data_cnt+1;
+    IF out_data_cnt mod 2 = 0 THEN
+      ctr_of := c_in_data_w*in_data_cnt-c_out_data_w*out_data_cnt;
+      ASSERT ctr_of                                 = out_of                                                                            REPORT "The amount of overflow does not match, ctr_of = " & NATURAL'image(ctr_of) & ", out_of = " & NATURAL'image(out_of)                   SEVERITY ERROR;
+    END IF;
     ASSERT out_mosi.wrdata(c_out_data_w-1 DOWNTO 0) = c_total_vector(c_out_data_w*out_data_cnt-1 DOWNTO c_out_data_w*(out_data_cnt-1))  REPORT "Data does not match, out_data_cnt = " & NATURAL'image(out_data_cnt)                                                                 SEVERITY ERROR;
+  END IF;
   END PROCESS;
 
 
diff --git a/applications/lofar2/libraries/ddrctrl/tb/vhdl/tb_ddrctrl_address_counter.vhd b/applications/lofar2/libraries/ddrctrl/tb/vhdl/tb_ddrctrl_address_counter.vhd
index bcd20dfdeca84167ee4a48d02d9e32a290eb0994..0a5b356e3854690ade8716fec2a97549fd5729d4 100644
--- a/applications/lofar2/libraries/ddrctrl/tb/vhdl/tb_ddrctrl_address_counter.vhd
+++ b/applications/lofar2/libraries/ddrctrl/tb/vhdl/tb_ddrctrl_address_counter.vhd
@@ -101,7 +101,7 @@ BEGIN
     -- stopping the test
     WAIT FOR c_clk_period*4;
     tb_end            <= '1';
-    ASSERT FALSE                                                                       REPORT "Test: OK"                                                            SEVERITY FAILURE;
+    ASSERT FALSE                                                                    REPORT "Test: OK"                                                                                                                           SEVERITY FAILURE;
   END PROCESS;
 
   -- generating compare data for out_mosi
@@ -122,8 +122,8 @@ BEGIN
   BEGIN
     WAIT UNTIL rising_edge(clk);
     IF rising_edge(clk) THEN
-      ASSERT q_in_data(c_data_w-1 DOWNTO 0) = out_mosi.wrdata(c_data_w-1 DOWNTO 0)     REPORT "in_sosi.data does not match out_mosi.wrdata"                         SEVERITY ERROR;
-      ASSERT q_in_data_enable               = out_mosi.wr                              REPORT "in_sosi.valid does not match out_mosi.wr"                            SEVERITY ERROR;
+      ASSERT q_in_data(c_data_w-1 DOWNTO 0) = out_mosi.wrdata(c_data_w-1 DOWNTO 0)  REPORT "in_sosi.data does not match out_mosi.wrdata"                                                                                        SEVERITY ERROR;
+      ASSERT q_in_data_enable               = out_mosi.wr                           REPORT "in_sosi.valid does not match out_mosi.wr"                                                                                           SEVERITY ERROR;
     END IF;
   END PROCESS;
 
@@ -151,9 +151,9 @@ BEGIN
         WAIT UNTIL out_mosi.wr = '1';
       END IF;
       IF I >= q_lag_due_reset THEN
-        ASSERT I-q_lag_due_reset   = TO_UINT(out_mosi.address)                         REPORT "Wrong address, 1, I = " & NATURAL'image(I-q_lag_due_reset) & ", address = " & NATURAL'image(TO_UINT(out_mosi.address))              SEVERITY ERROR;
+        ASSERT I-q_lag_due_reset              = TO_UINT(out_mosi.address)           REPORT "Wrong address, 1, I = " & NATURAL'image(I-q_lag_due_reset) & ", address = " & NATURAL'image(TO_UINT(out_mosi.address))              SEVERITY ERROR;
       ELSE
-        ASSERT (I-q_lag_due_reset)+c_adr_size = TO_UINT(out_mosi.address)              REPORT "Wrong address, 2, I = " & NATURAL'image((I-q_lag_due_reset)+c_adr_size) & ", address = " & NATURAL'image(TO_UINT(out_mosi.address)) SEVERITY ERROR;
+        ASSERT (I-q_lag_due_reset)+c_adr_size = TO_UINT(out_mosi.address)           REPORT "Wrong address, 2, I = " & NATURAL'image((I-q_lag_due_reset)+c_adr_size) & ", address = " & NATURAL'image(TO_UINT(out_mosi.address)) SEVERITY ERROR;
       END IF;
     END LOOP;
   END PROCESS;
diff --git a/applications/lofar2/libraries/ddrctrl/tb/vhdl/tb_ddrctrl_repack.vhd b/applications/lofar2/libraries/ddrctrl/tb/vhdl/tb_ddrctrl_repack.vhd
index 9406fe04729de6da4e0a7f5164c691ade11a8e63..7044955402ddc05bd96ea7acb5c9f769b5b265f9 100644
--- a/applications/lofar2/libraries/ddrctrl/tb/vhdl/tb_ddrctrl_repack.vhd
+++ b/applications/lofar2/libraries/ddrctrl/tb/vhdl/tb_ddrctrl_repack.vhd
@@ -99,9 +99,11 @@ BEGIN
     rst <= '0';
     WAIT FOR c_clk_period*1;
     test_running      <= '1';                                                                                                      -- start of test
+    in_data_cnt       <= in_data_cnt +1;
+    WAIT FOR c_clk_period*1;
 
     -- filling the input vector g_sim_lengt amount of times
-    make_in_data : FOR I IN 0 TO g_sim_lengt-1 LOOP
+    make_in_data : FOR I IN 1 TO g_sim_lengt-1 LOOP
       in_data(g_in_data_w-1 DOWNTO 0) <= TO_UVEC(I, g_in_data_w);
       WAIT FOR c_clk_period*1;
       in_data_cnt     <= in_data_cnt + 1;
@@ -117,19 +119,19 @@ BEGIN
   -- verification by checking if the input vectors are correctly put into the output vector and the amount of overflow is as expected
   p_verify : PROCESS
 
-  VARIABLE  ctr_of            : NATURAL                                     := 0;
-  VARIABLE  out_data_cnt      : NATURAL                                     := 0;
+  VARIABLE  ctr_of            : NATURAL                                                := 0;
+  VARIABLE  out_data_cnt      : NATURAL                                                := 0;
 
   BEGIN
-  WAIT UNTIL test_running = '1';
-  WAIT UNTIL out_sosi.valid = '1';
-  out_data_cnt      := out_data_cnt+1;
-  IF out_data_cnt mod 2 = 0 THEN
-    assert false report "in_data_cnt = " & NATURAL'image(in_data_cnt) & ", out_data_cnt = " & NATURAL'image(out_data_cnt) severity note;
-    ctr_of := g_in_data_w*in_data_cnt-c_out_data_w*out_data_cnt;
-    ASSERT ctr_of                                 = out_of                                                                            REPORT "The amount of overflow does not match, ctr_of = " & NATURAL'image(ctr_of) & ", out_of = " & NATURAL'image(out_of) SEVERITY ERROR;
+  WAIT UNTIL rising_edge(clk);
+  IF test_running = '1' AND out_sosi.valid = '1' THEN
+    out_data_cnt      := out_data_cnt+1;
+    IF out_data_cnt mod 2 = 0 THEN
+      ctr_of := g_in_data_w*in_data_cnt-c_out_data_w*out_data_cnt;
+      ASSERT ctr_of                               = out_of                                                                              REPORT "The amount of overflow does not match, ctr_of = " & NATURAL'image(ctr_of) & ", out_of = " & NATURAL'image(out_of) SEVERITY ERROR;
+    END IF;
+    ASSERT out_sosi.data(c_out_data_w-1 DOWNTO 0) = c_total_vector(c_out_data_w*out_data_cnt-1 DOWNTO c_out_data_w*(out_data_cnt-1))    REPORT "Data does not match, out_data_cnt = " & NATURAL'image(out_data_cnt)                                               SEVERITY ERROR;
   END IF;
-    ASSERT out_sosi.data(c_out_data_w-1 DOWNTO 0) = c_total_vector(c_out_data_w*out_data_cnt-1 DOWNTO c_out_data_w*(out_data_cnt-1))  REPORT "Data does not match, out_data_cnt = " & NATURAL'image(out_data_cnt)                                               SEVERITY ERROR;
   END PROCESS;