diff --git a/applications/lofar2/libraries/ddrctrl/src/vhdl/ddrctrl.vhd b/applications/lofar2/libraries/ddrctrl/src/vhdl/ddrctrl.vhd
index 25ce70e55c70b36afc7aa122149714156636045e..8c751dcb3925ac03f4ed0bdf0110c3a66c36865d 100644
--- a/applications/lofar2/libraries/ddrctrl/src/vhdl/ddrctrl.vhd
+++ b/applications/lofar2/libraries/ddrctrl/src/vhdl/ddrctrl.vhd
@@ -203,9 +203,9 @@ BEGIN
   clk                         => clk,
   rst                         => rst,
   
-  out_of                      => out_of,
-  out_sosi                    => out_sosi,
-  out_adr                     => out_adr,
+  inp_of                      => out_of,
+  inp_sosi                    => out_sosi,
+  inp_adr                     => out_adr,
 
   dvr_mosi                    => dvr_mosi,
   wr_sosi                     => wr_sosi,
diff --git a/applications/lofar2/libraries/ddrctrl/src/vhdl/ddrctrl_controller.vhd b/applications/lofar2/libraries/ddrctrl/src/vhdl/ddrctrl_controller.vhd
index f9e9548fc75e838fbe6cba5565eb49cf2539cb3a..67a471ccf8bf7afed700c5788704fad3a61cfcc7 100644
--- a/applications/lofar2/libraries/ddrctrl/src/vhdl/ddrctrl_controller.vhd
+++ b/applications/lofar2/libraries/ddrctrl/src/vhdl/ddrctrl_controller.vhd
@@ -46,9 +46,9 @@ ENTITY ddrctrl_controller IS
     rst                       : IN  STD_LOGIC;
 
     -- ddrctrl_input
-    out_of                    : IN NATURAL;
-    out_sosi                  : IN t_dp_sosi;
-    out_adr                   : IN NATURAL;
+    inp_of                    : IN NATURAL;
+    inp_sosi                  : IN t_dp_sosi;
+    inp_adr                   : IN NATURAL;
 
     -- io_ddr
     dvr_mosi                  : OUT t_mem_ctlr_mosi;
@@ -100,7 +100,7 @@ BEGIN
   q_reg <= d_reg WHEN rising_edge(clk);
 
   -- put the input data into c_v and fill the output vector from c_v
-  p_state : PROCESS(q_reg, rst, out_of, out_sosi, out_adr)
+  p_state : PROCESS(q_reg, rst, inp_of, inp_sosi, inp_adr)
 
     VARIABLE v                : t_reg         := c_t_reg_init;
 
@@ -116,12 +116,12 @@ BEGIN
 
 
     WHEN WRITING =>
-      IF TO_UVEC(out_adr, c_adr_w)(c_bitshift_adr-1 DOWNTO 0) = c_zeros THEN                        -- if adr mod c_burstsize = 0
+      IF TO_UVEC(inp_adr, c_adr_w)(c_bitshift_adr-1 DOWNTO 0) = c_zeros THEN                        -- if adr mod c_burstsize = 0
         v.dvr_mosi.burstbegin   := '1';
-        IF out_adr = 0 THEN
+        IF inp_adr = 0 THEN
           v.dvr_mosi.address    := TO_UVEC(c_max_adr-c_burstsize, dvr_mosi.address'length);
         ELSE
-          v.dvr_mosi.address    := TO_UVEC(out_adr-c_burstsize, dvr_mosi.address'length);
+          v.dvr_mosi.address    := TO_UVEC(inp_adr-c_burstsize, dvr_mosi.address'length);
         END IF;
       ELSE
         v.dvr_mosi.burstbegin   := '0';
@@ -129,26 +129,26 @@ BEGIN
       v.dvr_mosi.burstsize      := TO_UVEC(c_burstsize, dvr_mosi.burstsize'length);
       v.dvr_mosi.wr             := '1';
       v.dvr_mosi.rd             := '0';
-      v.wr_sosi                 := out_sosi;
+      v.wr_sosi                 := inp_sosi;
 
 
 
     WHEN SET_STOP =>
       --setting a stop address dependend on the g_stop_percentage
-      IF out_adr+c_pof_ma >= c_max_adr THEN
-        v.stop_adr(c_adr_w-1 DOWNTO c_bitshift_adr) := TO_UVEC(out_adr-c_pof_ma, c_adr_w)(c_adr_w-1 DOWNTO c_bitshift_adr);
+      IF inp_adr+c_pof_ma >= c_max_adr THEN
+        v.stop_adr(c_adr_w-1 DOWNTO c_bitshift_adr) := TO_UVEC(inp_adr-c_pof_ma, c_adr_w)(c_adr_w-1 DOWNTO c_bitshift_adr);
       ELSE
-        v.stop_adr(c_adr_w-1 DOWNTO c_bitshift_adr) := TO_UVEC(out_adr+c_pof_ma, c_adr_w)(c_adr_w-1 DOWNTO c_bitshift_adr);
+        v.stop_adr(c_adr_w-1 DOWNTO c_bitshift_adr) := TO_UVEC(inp_adr+c_pof_ma, c_adr_w)(c_adr_w-1 DOWNTO c_bitshift_adr);
       END IF;
       v.stop_adr(c_bitshift_adr-1 DOWNTO 0)         := c_zeros;
 
       -- still a write cyle
-      IF TO_UVEC(out_adr, c_adr_w)(c_bitshift_adr-1 DOWNTO 0) = c_zeros THEN                        -- adr mod 64 = 0
+      IF TO_UVEC(inp_adr, c_adr_w)(c_bitshift_adr-1 DOWNTO 0) = c_zeros THEN                        -- adr mod 64 = 0
         v.dvr_mosi.burstbegin                   := '1';
-        IF out_adr = 0 THEN
+        IF inp_adr = 0 THEN
           v.dvr_mosi.address                    := TO_UVEC(c_max_adr-c_burstsize, dvr_mosi.address'length);
         ELSE
-          v.dvr_mosi.address                    := TO_UVEC(out_adr-c_burstsize, dvr_mosi.address'length);
+          v.dvr_mosi.address                    := TO_UVEC(inp_adr-c_burstsize, dvr_mosi.address'length);
         END IF;
       ELSE
         v.dvr_mosi.burstbegin                   := '0';
@@ -156,7 +156,7 @@ BEGIN
       v.dvr_mosi.burstsize                      := TO_UVEC(c_burstsize, dvr_mosi.burstsize'length);
       v.dvr_mosi.wr                             := '1';
       v.dvr_mosi.rd                             := '0';
-      v.wr_sosi                                 := out_sosi;
+      v.wr_sosi                                 := inp_sosi;
 
 
 
@@ -180,7 +180,7 @@ BEGIN
       v.state := RESET;
     ELSIF stop_in = '1' THEN
       v.state := SET_STOP;
-    ELSIF v.stop_adr = TO_UVEC(out_adr, c_adr_w) AND v.stop_adr(c_bitshift_adr-1 DOWNTO 0) = c_zeros(c_bitshift_adr-1 DOWNTO 0) AND q_reg.stopped = '0' THEN
+    ELSIF v.stop_adr = TO_UVEC(inp_adr, c_adr_w) AND v.stop_adr(c_bitshift_adr-1 DOWNTO 0) = c_zeros(c_bitshift_adr-1 DOWNTO 0) AND q_reg.stopped = '0' THEN
       v.state := STOP_WRITING;
     ELSIF v.stopped = '1' THEN
       v.state := IDLE;
diff --git a/applications/lofar2/libraries/ddrctrl/tb/vhdl/tb_ddrctrl.vhd b/applications/lofar2/libraries/ddrctrl/tb/vhdl/tb_ddrctrl.vhd
index 6aef30ec40fee904bbad129a9ede8ad50cbc9e4c..f8cd65c9fe6f30181826bee45af27cbab47febe4 100644
--- a/applications/lofar2/libraries/ddrctrl/tb/vhdl/tb_ddrctrl.vhd
+++ b/applications/lofar2/libraries/ddrctrl/tb/vhdl/tb_ddrctrl.vhd
@@ -137,38 +137,19 @@ BEGIN
 
 
     -- filling the input data vectors with the corresponding numbers
-    make_data_0 : FOR J IN 0 TO c_sim_length-1 LOOP
-      in_data_cnt     <= in_data_cnt+1;
-      fill_in_sosi_arr_0 : 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);
+    run_multiple_times : FOR K in 0 TO 4 LOOP
+      make_data : FOR J IN 0 TO c_sim_length-1 LOOP
+        in_data_cnt     <= in_data_cnt+1;
+        fill_in_sosi_arr_0 : 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;
       END LOOP;
-      in_sosi_arr(0).bsn(c_dp_stream_bsn_w-1 DOWNTO 0) <= bsn(c_dp_stream_bsn_w-1 DOWNTO 0);
-      bsn <= ADD_UVEC(bsn, "0001", c_dp_stream_bsn_w);
-      WAIT FOR c_clk_period*1;
-    END LOOP;
-
-    -- sending a stop signal
-    stop_in <= '1';
-
-    -- filling the input data vectors with the corresponding numbers
-    make_data_1 : FOR J IN 0 TO c_sim_length-1 LOOP
-      in_data_cnt     <= in_data_cnt+1;
-      fill_in_sosi_arr_1 : 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;
-      in_sosi_arr(0).bsn(c_dp_stream_bsn_w-1 DOWNTO 0) <= bsn(c_dp_stream_bsn_w-1 DOWNTO 0);
-      bsn <= ADD_UVEC(bsn, "0001", c_dp_stream_bsn_w);
-      WAIT FOR c_clk_period*1;
-      stop_in <= '0';
-    END LOOP;
-    make_data_2 : FOR J IN 0 TO c_sim_length-1 LOOP
-      in_data_cnt     <= in_data_cnt+1;
-      fill_in_sosi_arr_2 : 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;
-      in_sosi_arr(0).bsn(c_dp_stream_bsn_w-1 DOWNTO 0) <= bsn(c_dp_stream_bsn_w-1 DOWNTO 0);
-      bsn <= ADD_UVEC(bsn, "0001", c_dp_stream_bsn_w);
-      WAIT FOR c_clk_period*1;
+      IF k = 2 THEN
+        stop_in <= '1';
+      ELSE
+        stop_in <= '0';
+      END IF;
     END LOOP;
     test_running      <= '0';
     wr_not_rd         <= '0';