diff --git a/libraries/base/diag/src/vhdl/diag_block_gen.vhd b/libraries/base/diag/src/vhdl/diag_block_gen.vhd
index f6149b85d828c04a1b62f145a673e375b0c693e5..4d2eba2edcbdbb338bc59bc796acc6342adc7633 100644
--- a/libraries/base/diag/src/vhdl/diag_block_gen.vhd
+++ b/libraries/base/diag/src/vhdl/diag_block_gen.vhd
@@ -125,8 +125,10 @@ begin
           v.bsn_cnt     := ctrl.bsn_init;
           v.mem_cnt     := v_mem_low_adrs; 
           if r.blk_en = '1' then       -- Wait until enabled
-            v.rd_ena      := '1';
-            v.state       := s_block;        
+            if out_siso.xon='1' then   -- Wait until XON is 1
+              v.rd_ena      := '1';
+              v.state       := s_block;
+            end if;
           end if;
           
         when s_block =>
diff --git a/libraries/base/diag/src/vhdl/diag_pkg.vhd b/libraries/base/diag/src/vhdl/diag_pkg.vhd
index 7de4ec30950d9bdda57124649fc1aca59ec3a00c..3fcfd25e7a672339d7b64eadba90c940f9f2973d 100644
--- a/libraries/base/diag/src/vhdl/diag_pkg.vhd
+++ b/libraries/base/diag/src/vhdl/diag_pkg.vhd
@@ -102,10 +102,10 @@ PACKAGE diag_pkg IS
   CONSTANT c_diag_bg_reg_adr_w   : NATURAL := ceil_log2(c_diag_bg_reg_nof_dat);
   
   CONSTANT c_diag_bg_mode_w               : NATURAL :=  8;
-  CONSTANT c_diag_bg_samples_per_packet_w : NATURAL := 16;   
+  CONSTANT c_diag_bg_samples_per_packet_w : NATURAL := 24;   
   CONSTANT c_diag_bg_blocks_per_sync_w    : NATURAL := 24;   
-  CONSTANT c_diag_bg_gapsize_w            : NATURAL := 16;
-  CONSTANT c_diag_bg_mem_adrs_w           : NATURAL := 16;  
+  CONSTANT c_diag_bg_gapsize_w            : NATURAL := 24;
+  CONSTANT c_diag_bg_mem_adrs_w           : NATURAL := 24;  
   CONSTANT c_diag_bg_mem_low_adrs_w       : NATURAL := c_diag_bg_mem_adrs_w;  
   CONSTANT c_diag_bg_mem_high_adrs_w      : NATURAL := c_diag_bg_mem_adrs_w;
   CONSTANT c_diag_bg_bsn_init_w           : NATURAL := 64;