diff --git a/applications/lofar2/designs/lofar2_unb2c_ddrctrl/src/vhdl/lofar2_unb2c_ddrctrl.vhd b/applications/lofar2/designs/lofar2_unb2c_ddrctrl/src/vhdl/lofar2_unb2c_ddrctrl.vhd
index d90d5998baffd08c072d48dac6fc53ee256bf8ed..c0cb52deb55bbc80adc5ce502fea540a5dd921b8 100644
--- a/applications/lofar2/designs/lofar2_unb2c_ddrctrl/src/vhdl/lofar2_unb2c_ddrctrl.vhd
+++ b/applications/lofar2/designs/lofar2_unb2c_ddrctrl/src/vhdl/lofar2_unb2c_ddrctrl.vhd
@@ -258,7 +258,7 @@ BEGIN
     -- Streaming clock domain
     bs_sosi           => bs_sosi,
 
-    bs_restart        => st_rst
+    bs_restart        => open 
   );
 
   u_bsn_trigger_wg : ENTITY dp_lib.mms_dp_bsn_scheduler
diff --git a/applications/lofar2/designs/lofar2_unb2c_ddrctrl/tb/vhdl/tb_lofar2_unb2c_ddrctrl.vhd b/applications/lofar2/designs/lofar2_unb2c_ddrctrl/tb/vhdl/tb_lofar2_unb2c_ddrctrl.vhd
index 015835d2eed658641f1d1d03a16a097cbef78e81..ed00b17ac3f36b5cd2c70569b7e0f0fa5b5e9480 100644
--- a/applications/lofar2/designs/lofar2_unb2c_ddrctrl/tb/vhdl/tb_lofar2_unb2c_ddrctrl.vhd
+++ b/applications/lofar2/designs/lofar2_unb2c_ddrctrl/tb/vhdl/tb_lofar2_unb2c_ddrctrl.vhd
@@ -80,7 +80,8 @@ ARCHITECTURE tb OF tb_lofar2_unb2c_ddrctrl IS
   CONSTANT c_cable_delay     : TIME := 12 ns;
   CONSTANT c_eth_clk_period  : TIME := 8 ns;  -- 125 MHz XO on UniBoardi
   CONSTANT c_st_clk_period   : TIME := 5 ns;  -- 200 MHz st clk
-  CONSTANT c_tb_clk_period   : TIME := 1 ns;  -- 1000 MHz mm clk
+  CONSTANT c_tb_clk_period   : TIME := 1 ns;  -- 1000 MHz tb clk
+  CONSTANT c_mm_clk_period   : TIME := 10 ns; -- 100 MHz mm clk
   CONSTANT c_pps_period      : NATURAL := 1000; 
 
   CONSTANT c_mm_file_reg_bsn_source_v2        : STRING := mmf_unb_file_prefix(c_unb_nr, c_node_nr) & "REG_BSN_SOURCE_V2";
@@ -239,7 +240,7 @@ BEGIN
       mmf_mm_bus_wr(c_mm_file_reg_diag_wg_wideband_arr, (I*4)+2, INTEGER(c_wg_freq), tb_clk);  -- freq
       mmf_mm_bus_wr(c_mm_file_reg_diag_wg_wideband_arr, (I*4)+3, INTEGER(c_wg_ampl), tb_clk);  -- ampl
     END LOOP;
-
+    mmf_mm_bus_wr(c_mm_file_reg_stop_in, 0,     0, tb_clk);
     -- Read current BSN
     mmf_mm_bus_rd(c_mm_file_reg_bsn_scheduler_wg, 0, current_bsn_wg(31 DOWNTO  0), tb_clk);
     mmf_mm_bus_rd(c_mm_file_reg_bsn_scheduler_wg, 1, current_bsn_wg(63 DOWNTO 32), tb_clk);
@@ -252,7 +253,13 @@ BEGIN
     mmf_mm_bus_wr(c_mm_file_reg_bsn_scheduler_wg, 1,              0, tb_clk);  -- assume v_bsn < 2**31-1
 
 
-    WAIT FOR c_st_clk_period*100000;
+    WAIT FOR c_mm_clk_period*100000;
+    mmf_mm_bus_wr(c_mm_file_reg_stop_in, 0, 1**32, tb_clk);
+    WAIT FOR c_mm_clk_period*16;
+    mmf_mm_bus_wr(c_mm_file_reg_stop_in, 0,     0, tb_clk);
+    WAIT FOR c_mm_clk_period*50000;
+
+
     tb_end <= '1';
     ASSERT FALSE  REPORT "Test: OK" SEVERITY FAILURE;
     WAIT;
diff --git a/applications/lofar2/libraries/ddrctrl/src/vhdl/ddrctrl_controller.vhd b/applications/lofar2/libraries/ddrctrl/src/vhdl/ddrctrl_controller.vhd
index cb1d0ac31d505e7e01cdaa1980c46121f39027b1..bf0f59d644ee316e563df54c4d5ca868d9acb3f1 100644
--- a/applications/lofar2/libraries/ddrctrl/src/vhdl/ddrctrl_controller.vhd
+++ b/applications/lofar2/libraries/ddrctrl/src/vhdl/ddrctrl_controller.vhd
@@ -128,8 +128,7 @@ ARCHITECTURE rtl OF ddrctrl_controller IS
   wr_sosi                     : t_dp_sosi;
   END RECORD;
 
-
-  CONSTANT c_t_reg_init       : t_reg         := (RESET, '0', '0', TO_UVEC(g_max_adr, c_adr_w), (OTHERS => '0'), 0, '0', '1', '0', 0, (OTHERS => '0'), 0, '0', c_mem_ctlr_mosi_rst, c_dp_sosi_init);
+  CONSTANT c_t_reg_init       : t_reg         := (RESET, '0', '0', TO_UVEC(g_max_adr, c_adr_w), (OTHERS => '0'), 0, '1', '1', '0', 0, (OTHERS => '0'), 0, '0', c_mem_ctlr_mosi_rst, c_dp_sosi_init);
 
 
   -- signals for readability
@@ -160,11 +159,6 @@ BEGIN
       v.dvr_mosi.wr                                               := '1';
       v.wr_sosi.valid                                             := '1';
 
-      IF rst = '0' THEN
-        v.state := WAIT_FOR_SOP;
-      END IF;
-
-
 
     WHEN WAIT_FOR_SOP =>
     v.dvr_mosi.burstbegin := '0';
@@ -431,6 +425,14 @@ BEGIN
       END IF;
       -- the statemachine goes to Idle when its finished or when its waiting on other components.
 
+    WHEN OTHERS =>
+      v := c_t_reg_init;
+
+
+    END CASE;
+
+
+    IF q_reg.state = RESET OR q_reg.state = IDLE THEN
       IF stop_in = '1' THEN
         v.ready_for_set_stop := '1';
       ELSIF q_reg.ready_for_set_stop = '1' AND inp_sosi.eop = '1' THEN
@@ -444,15 +446,7 @@ BEGIN
       ELSE
         v.state := IDLE;
       END IF;
-
-
-
-    WHEN OTHERS =>
-      v := c_t_reg_init;
-
-
-    END CASE;
-
+    END IF;
 
 
     IF rst = '1' THEN