diff --git a/libraries/base/diag/src/vhdl/diag_block_gen.vhd b/libraries/base/diag/src/vhdl/diag_block_gen.vhd
index 1956204af9265c2562b5343127229da3dbc8b9b7..148212a21eed27f9e01254c4c660a16f0e8df646 100644
--- a/libraries/base/diag/src/vhdl/diag_block_gen.vhd
+++ b/libraries/base/diag/src/vhdl/diag_block_gen.vhd
@@ -81,6 +81,7 @@ entity diag_block_gen is
     buf_rddat    : in  std_logic_vector(g_buf_dat_w-1 downto 0);
     buf_rdval    : in  std_logic;
     ctrl         : in  t_diag_block_gen;
+    ctrl_reg     : out t_diag_block_gen;  -- current active ctrl
     en_sync      : in  std_logic := '1';
     out_siso     : in  t_dp_siso := c_dp_siso_rdy;
     out_sosi     : out t_dp_sosi
@@ -286,5 +287,7 @@ begin
     out_sosi <= out_sosi_i;
     buf_addr <= TO_UVEC(r.mem_cnt, g_buf_addr_w);
     buf_rden <= r.rd_ena;
+
+    ctrl_reg <= r.ctrl_reg;
  
 end rtl;
diff --git a/libraries/base/diag/src/vhdl/mms_diag_block_gen.vhd b/libraries/base/diag/src/vhdl/mms_diag_block_gen.vhd
index 051b6cbe9f0a93e04e7e8f79ecffb236e7227b4c..f219957f2e8025630dc3b1beadc69147757ee5cc 100644
--- a/libraries/base/diag/src/vhdl/mms_diag_block_gen.vhd
+++ b/libraries/base/diag/src/vhdl/mms_diag_block_gen.vhd
@@ -140,6 +140,7 @@ ENTITY mms_diag_block_gen IS
     reg_tx_seq_mosi  : IN  t_mem_mosi := c_mem_mosi_rst;  -- Tx seq control (one per stream because c_reg_tx_seq_broadcast=FALSE)
     reg_tx_seq_miso  : OUT t_mem_miso;
     -- ST interface
+    bg_ctrl_active_arr : OUT t_diag_block_gen_arr(g_nof_streams-1 DOWNTO 0);
     usr_siso_arr     : OUT t_dp_siso_arr(g_nof_streams-1 DOWNTO 0);  -- connect when g_use_usr_input=TRUE, else leave not connected 
     usr_sosi_arr     : IN  t_dp_sosi_arr(g_nof_streams-1 DOWNTO 0) := (OTHERS=>c_dp_sosi_rst);
     out_siso_arr     : IN  t_dp_siso_arr(g_nof_streams-1 DOWNTO 0) := (OTHERS=>c_dp_siso_rdy);  -- Default xon='1'
@@ -283,7 +284,8 @@ BEGIN
         buf_rden   => st_rd_arr(I),          
         buf_rddat  => st_rddata_arr(I),       
         buf_rdval  => st_rdval_arr(I),          
-        ctrl       => bg_ctrl,
+        ctrl       => bg_ctrl,  -- same BG control for all streams
+        ctrl_reg   => bg_ctrl_active_arr(I),  -- active BG control can differ in time per stream
         en_sync    => en_sync,
         out_siso   => bg_src_in_arr(I),
         out_sosi   => bg_src_out_arr(I)