diff --git a/applications/lofar2/libraries/ddrctrl/src/vhdl/ddrctrl.vhd b/applications/lofar2/libraries/ddrctrl/src/vhdl/ddrctrl.vhd
index a803641e0b70aaf754fe156467988f26cf1b0b11..16aedd40d1b09382c4958070343051fead1af495 100644
--- a/applications/lofar2/libraries/ddrctrl/src/vhdl/ddrctrl.vhd
+++ b/applications/lofar2/libraries/ddrctrl/src/vhdl/ddrctrl.vhd
@@ -201,9 +201,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 42c187ef08556cbf1d5e24583fc83a444bb140f4..d11931ba0ee0126455334f2661ebd8bca1634257 100644
--- a/applications/lofar2/libraries/ddrctrl/src/vhdl/ddrctrl_controller.vhd
+++ b/applications/lofar2/libraries/ddrctrl/src/vhdl/ddrctrl_controller.vhd
@@ -42,13 +42,13 @@ ENTITY ddrctrl_controller IS
     g_stop_percentage         : NATURAL     := 50
   );
   PORT (
-    clk	     	                : IN  STD_LOGIC;
+    clk                       : IN  STD_LOGIC;
     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;
@@ -56,7 +56,7 @@ ENTITY ddrctrl_controller IS
     rd_siso                   : OUT t_dp_siso;
 
     -- ddrctrl
-    stop_in	                  : IN  STD_LOGIC
+    stop_in                   : IN  STD_LOGIC
   );
 END ddrctrl_controller;
 
@@ -99,7 +99,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;
 
@@ -115,12 +115,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';
@@ -128,26 +128,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';
@@ -155,7 +155,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;
 
 
 
@@ -179,7 +179,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 df1980ae0a572c5057438c9a2969e0468f15589e..f38fb0f836208aaffcf1b0f292a0c747e61f2563 100644
--- a/applications/lofar2/libraries/ddrctrl/tb/vhdl/tb_ddrctrl.vhd
+++ b/applications/lofar2/libraries/ddrctrl/tb/vhdl/tb_ddrctrl.vhd
@@ -131,32 +131,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;
-      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;
-      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;
-      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';