diff --git a/sources/FullModeEmulator/FMEmu_FSM_mealy.vhd b/sources/FullModeEmulator/FMEmu_FSM_mealy.vhd
index 44d4e6a63101d5e31cc36d8b4614533a52c05e0c..b28cadd2c934ae7faf3e28d22f2d163e8b33db5a 100755
--- a/sources/FullModeEmulator/FMEmu_FSM_mealy.vhd
+++ b/sources/FullModeEmulator/FMEmu_FSM_mealy.vhd
@@ -94,14 +94,14 @@ architecture fsm of FMEmu_FSM is
   signal sL1A_CNT_RM                            : unsigned(15 downto 0) := (OTHERS => '0');
   signal sBUSY_ENA_RM : std_logic := '0';
   signal sL1A_CNT_RM_d                            : unsigned(15 downto 0) := (OTHERS => '0');
-  signal sDATA_SRC_SEL_RM                       : std_logic_vector(0 downto 0) := (OTHERS => '0');
+  signal sCONSTANT_CHUNK_LENGTH_RM                       : std_logic_vector(0 downto 0) := (OTHERS => '0');
   
   signal sL1A_Decr                              : std_logic := '0';
   signal sL1A_Incr_r, sL1A_Incr_r1              : std_logic := '0';
   signal sXoff_nXon                                   : std_logic_vector(0 downto 0) := (OTHERS => '0');
   --signal sXon_TTC_r                             : std_logic_vector(0 downto 0) := (OTHERS => '0');
   --signal sXon_TTC_pulse                         : std_logic_vector(0 downto 0) := (OTHERS => '0');
-  signal FFU_FM_EMU_T, FFU_FM_EMU_T_d, FFU_FM_EMU_T_pulse, FFU_FM_EMU_T_pulse_d  : std_logic_vector(0 downto 0) := (OTHERS => '0');
+  signal FFU_FM_EMU_T, FFU_FM_EMU_T_d  : std_logic_vector(0 downto 0) := (OTHERS => '0');
   
   type state_type is (SETUP_EMU, PAUSE_EMU, INIT_RAM, SEND_SOP,SEND_L1ID, SEND_BCID, SEND_DATA,SEND_CRC, SEND_EOP) ;
   signal fmemu_state  : state_type  := SETUP_EMU;
@@ -118,9 +118,9 @@ architecture fsm of FMEmu_FSM is
   signal rBUSY_TH_LOW 	: std_logic_vector(7 downto 0) := (others => '0');
   signal rBUSY_ENA      : std_logic := '0';
   signal rL1A_CNT 		: std_logic_vector(15 downto 0) := (others => '0');
-  signal rDATA_SRC_SEL	: std_logic_vector(0 downto 0) := (others => '0');
+  signal rCONSTANT_CHUNK_LENGTH	: std_logic_vector(0 downto 0) := (others => '0');
   signal rIDLE_CNT		: std_logic_vector(15 downto 0) := (others => '0');
-  signal rL1ID			: std_logic_vector(31 downto 0) := (others => '0');
+  --signal rL1ID			: std_logic_vector(31 downto 0) := (others => '0');
   signal rBCID         	: std_logic_vector(31 downto 0) := (others => '0');
   signal rWORD_CNT		: std_logic_vector(15 downto 0) := (others => '0'); -- @suppress "signal rWORD_CNT is never read"
 
@@ -135,25 +135,11 @@ architecture fsm of FMEmu_FSM is
   signal BUSY_ON_d		: std_logic:='0';
   signal Xoff_nXon_RM	: std_logic_vector(0 downto 0) := (others => '0');
   signal RST_RAM_FSM	:  std_logic:='0';
-  signal rd_valid	:  std_logic;
-  signal L1A_Incr_fifo	: std_logic_vector(7 downto 0);
+  signal L1A_Incr_fifo	: std_logic_vector(0 downto 0);
   signal L1A_Incr_d     : std_logic:= '0';
-  signal L1A_Incr_din	: std_logic_vector(7 downto 0);
-  signal wr_en		: std_logic := '1';
+  signal L1A_Incr_din	: std_logic_vector(0 downto 0);
+  signal wr_en, rd_en, full, empty		: std_logic;
   
-  COMPONENT fifo_L1A_Incr
-  PORT (
-    wr_clk : IN STD_LOGIC;
-    rd_clk : IN STD_LOGIC;
-    din : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
-    wr_en : IN STD_LOGIC;
-    rd_en : IN STD_LOGIC;
-    dout : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
-    full : OUT STD_LOGIC;
-    empty : OUT STD_LOGIC;
-    valid : OUT STD_LOGIC
-  );
-  END COMPONENT;
 begin
 -- register used in FMEmu
 rBCR 			<= register_map_control.FMEMU_CONTROL.BCR;
@@ -165,7 +151,7 @@ rINLC_CRC32 	<= register_map_control.FMEMU_CONTROL.INLC_CRC32;
 rBUSY_TH_HIGH 	<= register_map_control.FMEMU_COUNTERS.BUSY_TH_HIGH;
 rBUSY_TH_LOW 	<= register_map_control.FMEMU_COUNTERS.BUSY_TH_LOW;
 rL1A_CNT 		<= register_map_control.FMEMU_COUNTERS.L1A_CNT; -- 0xFFFF send data continuously
-rDATA_SRC_SEL	<= register_map_control.FMEMU_CONTROL.DATA_SRC_SEL; -- default '0' --> data from emu ram 
+rCONSTANT_CHUNK_LENGTH	<= register_map_control.FMEMU_CONTROL.CONSTANT_CHUNK_LENGTH; -- default '0' --> data from emu ram 
 rIDLE_CNT		<= register_map_control.FMEMU_COUNTERS.IDLE_CNT; 
 rBUSY_ENA       <= register_map_control.FMEMU_CONTROL.FE_BUSY_ENABLE(31);
 FFU_FM_EMU_T(0 downto 0)	<= register_map_control.FMEMU_CONTROL.FFU_FM_EMU_T(16 downto 16);
@@ -191,11 +177,10 @@ cdc_bcid0 : xpm_cdc_gray
       WIDTH => 32
    )
    port map (
-      dest_out_bin => sBCID_240,
-      dest_clk => CLK240,
       src_clk => REC_CLK40,
-      src_in_bin => std_logic_vector(sBCID)
-
+      src_in_bin => std_logic_vector(sBCID),
+      dest_clk => CLK240,
+      dest_out_bin => sBCID_240
    );
    
 cdc_Xoff_nXon : xpm_cdc_single
@@ -206,10 +191,10 @@ cdc_Xoff_nXon : xpm_cdc_single
       SRC_INPUT_REG => 1
    )
    port map (
-      dest_out => Xoff_nXon_240,
-      dest_clk => CLK240,
       src_clk => REC_CLK40,
-      src_in => Xoff_nXon(0)
+      src_in => Xoff_nXon(0),
+      dest_clk => CLK240,
+      dest_out => Xoff_nXon_240
    );
 
 
@@ -227,30 +212,57 @@ RST_RAM <= RST or RST_RAM_FSM;
 	rg_enb				 => rg_enb,
 	rg_doutb             => rg_doutb);
 
-
---ila_fsm_comp: entity work.ila_fsm
---  PORT map(
---      clk => CLK240,
---      probe0 => (others => vL1A_CntUP),
---      probe1 => (others => vL1A_CntDN),
---      probe2 => (others => L1A_Incr)
-----      probe3 => sL1A_CNT
---  );
-
-  fifo_inst0: fifo_L1A_Incr
-    PORT MAP(
---      rd_rst    => RST,
---      wr_rst    => RST,
-      wr_clk    => REC_CLK40,
-      rd_clk    => CLK240,
-      din       => L1A_Incr_din,
-      wr_en     => wr_en,
-      rd_en     => rd_valid,
-      dout      => L1A_Incr_fifo,
-      full      => open,
-      empty     => open,
-      valid	=> rd_valid
-      );
+xpm_fifo_async_inst : xpm_fifo_async
+   generic map (
+      CDC_SYNC_STAGES => 2,       -- DECIMAL
+      DOUT_RESET_VALUE => "0",    -- String
+      ECC_MODE => "no_ecc",       -- String
+      FIFO_MEMORY_TYPE => "auto", -- String
+      FIFO_READ_LATENCY => 1,     -- DECIMAL
+      FIFO_WRITE_DEPTH => 16,   -- DECIMAL
+      FULL_RESET_VALUE => 0,      -- DECIMAL
+      PROG_EMPTY_THRESH => 8,    -- DECIMAL
+      PROG_FULL_THRESH => 8,     -- DECIMAL
+      RD_DATA_COUNT_WIDTH => 4,   -- DECIMAL
+      READ_DATA_WIDTH => 1,      -- DECIMAL
+      READ_MODE => "fwft",         -- String
+      RELATED_CLOCKS => 0,        -- DECIMAL
+      SIM_ASSERT_CHK => 0,        -- DECIMAL; 0=disable simulation messages, 1=enable simulation messages
+      USE_ADV_FEATURES => "0000", -- String
+      WAKEUP_TIME => 0,           -- DECIMAL
+      WRITE_DATA_WIDTH => 1,     -- DECIMAL
+      WR_DATA_COUNT_WIDTH => 4    -- DECIMAL
+   )
+   port map (
+      sleep => '0',
+      rst => RST,
+      wr_clk => REC_CLK40,
+      wr_en => wr_en,
+      din => L1A_Incr_din,
+      full => full,
+      prog_full => open,
+      wr_data_count => open,
+      overflow => open,
+      wr_rst_busy => open,
+      almost_full => open,
+      wr_ack => open,
+      rd_clk => CLK240,
+      rd_en => rd_en,
+      dout => L1A_Incr_fifo,
+      empty => empty,
+      prog_empty => open,
+      rd_data_count => open,
+      underflow => open,
+      rd_rst_busy => open,
+      almost_empty => open,
+      data_valid => open,
+      injectsbiterr => '0',
+      injectdbiterr => '0',
+      sbiterr => open,
+      dbiterr => open
+   );
+   wr_en <= not full;
+   rd_en <= not empty;
    L1A_Incr_d <= L1A_Incr_fifo(0);
    L1A_Incr_din <= (others => L1A_Incr);
    
@@ -340,8 +352,6 @@ sL1A_CNT_debug <=  std_logic_vector(sL1A_CNT);
 				BUSY_ON_t <= sBUSY_ENA_RM;
 			elsif (sL1A_CNT <= sBUSY_TH_LOW_RM) then 
 				BUSY_ON_t <= '0';
-			else	
-				BUSY_ON_t <= BUSY_ON_t;
 			end if;       
 		else
 			BUSY_ON_t <= '0';
@@ -440,7 +450,7 @@ begin
 		sBUSY_TH_HIGH_RM 	<= x"FF" & unsigned(rBUSY_TH_HIGH);
 		sBUSY_TH_LOW_RM 	<= x"00" & unsigned(rBUSY_TH_LOW);
 		sTTC_MODE_RM 		<= rTTC_MODE; -- default '0' --> regmap mode
-		sDATA_SRC_SEL_RM 	<= rDATA_SRC_SEL; -- default '0' --> data from emu ram 
+		sCONSTANT_CHUNK_LENGTH_RM 	<= rCONSTANT_CHUNK_LENGTH; -- default '0' --> data from emu ram 
 		sL1A_CNT_RM <= unsigned(rL1A_CNT); -- 0xFFFF send data continuously
 		Xoff_nXon_RM(0) <= Xoff_nXon_240;
 		CRC_EN <= rINLC_CRC32(0);
@@ -453,12 +463,12 @@ process (CLK240)
 begin
    if (rising_edge(CLK240)) then
 		FFU_FM_EMU_T_d 		<= FFU_FM_EMU_T;
-		FFU_FM_EMU_T_pulse_d <= FFU_FM_EMU_T_pulse;
-		if(FFU_FM_EMU_T_d = "0" and FFU_FM_EMU_T="1") then
-		    FFU_FM_EMU_T_pulse <= "1";
-		elsif(fmemu_state = SEND_EOP ) then
-		    FFU_FM_EMU_T_pulse <= "0";
-		end if;    
+		--FFU_FM_EMU_T_pulse_d <= FFU_FM_EMU_T_pulse;
+		--if(FFU_FM_EMU_T_d = "0" and FFU_FM_EMU_T="1") then
+		    --FFU_FM_EMU_T_pulse <= "1";
+		--elsif(fmemu_state = SEND_EOP ) then
+		    --FFU_FM_EMU_T_pulse <= "0";
+		--end if;    
 	end if;	
 end process;
 
@@ -481,10 +491,10 @@ begin
 			L1ID_cnten <= '0';
 			RST_RAM_FSM <= '0';
 		else	
-			if(BUSY_ON_d = '0' and BUSY_ON_t = '1') then
-				EMUout_dtype <="100"; -- default send idle
-			elsif(BUSY_ON_d = '1' and BUSY_ON_t = '0') then
-				EMUout_dtype <="101"; -- default send idle
+			if(BUSY_ON_d = '0' and BUSY_ON_t = '1' and sBUSY_ENA_RM = '1') then
+				EMUout_dtype <="100"; -- Busy on (SOB)
+			elsif(BUSY_ON_d = '1' and BUSY_ON_t = '0' and sBUSY_ENA_RM = '1') then
+				EMUout_dtype <="101"; -- Busy off (EOB)
 			elsif(sXoff_nXon = "0") then
 				EMUout_dtype <="011"; -- default send idle
 				EMUout <= x"FFFF0000";
@@ -563,7 +573,7 @@ begin
 						DataToCRC <= std_logic_vector(sL1ID_low(7 downto 0) & sL1ID_low(15 downto 8) & sL1ID_low(23 downto 16) & sL1ID_high);
 						CALC_CRC <= '1';     
 						L1ID_cnten <= '1';
-						if(sDATA_SRC_SEL_RM = "0") then
+						if(sCONSTANT_CHUNK_LENGTH_RM = "0") then
 							sWORD_CNT <= unsigned(rg_doutb); --(rWORD_CNT);
 						else
 							sWORD_CNT <= unsigned(rWORD_CNT);
diff --git a/sources/FullModeEmulator/FMEmu_top_bnl711.vhd b/sources/FullModeEmulator/FMEmu_top_bnl711.vhd
index 7e17065fc87966927dc68fa5fc7516496041907a..7ffdd7a59a026c57ea5968ea1af1ed9191c1fd33 100755
--- a/sources/FullModeEmulator/FMEmu_top_bnl711.vhd
+++ b/sources/FullModeEmulator/FMEmu_top_bnl711.vhd
@@ -627,21 +627,31 @@ register_map_generators.FMEMU_EVENT_INFO.L1ID <= FMEMU_EVENT_INFO_L1ID(0);
 register_map_generators.FMEMU_EVENT_INFO.BCID <= FMEMU_EVENT_INFO_BCID(0);
 
 FSM_COMP: for i in 0 to GBT_NUM-1 generate
+    signal XoffElink : std_logic_vector(1 downto 0);
+    signal XoffIndex : integer range 0 to 118;
+    signal TTCin : std_logic_vector(2 downto 0); --TTC option 1, 2 or 3 for L1A, BCR and ECR 
+    signal TTCIndex  : integer range 0 to 118;
+begin
+    process(RXOUTCLK_40)
     begin
-
+        if rising_edge(RXOUTCLK_40) then
+            XoffIndex <= to_integer(unsigned(pcie0_register_map_control_appreg_clk.FMEMU_CONTROL.XONXOFF_BITNR(55 downto 49)&'0'));
+            TTCIndex <= to_integer(unsigned(pcie0_register_map_control_appreg_clk.FMEMU_CONTROL.L1A_BITNR(63 downto 58)&'0'&'0'));
+        end if;
+        
+    end process;
+        
+    XoffElink <= RX_120b(i)(1+XoffIndex downto XoffIndex);
+    TTCin <= RX_120b(i)(2+TTCIndex downto TTCIndex);
 
 Xoff_decoder_top_inst: entity work.Xoff_decoder_top 
     generic map (
-        do_generate => true,
-        DinWidth => 2, --maximum width of the elink
-        includeDirectMode => true
+        DinWidth => 2 --maximum width of the elink
         )
     Port map(
-        DIN 		=> RX_120b(i)(33 downto 32),
+        DIN 		=> XoffElink,--RX_120b(i)(33 downto 32),
         Clk 		=> RXOUTCLK_40,
         Reset		=> reset,
-        InputWidth	=> 2,
-        MODE8b 		=> '0',
         DATA_OUT 	=> open, --DATA_OUT_DEC,
         DATA_RDY 	=> open, --DATA_RDY_DEC,
         Xoff_nXon  	=> Xoff_nXon(i)
@@ -656,9 +666,9 @@ Xoff_decoder_top_inst: entity work.Xoff_decoder_top
       FMEMU_EVENT_INFO_BCID => FMEMU_EVENT_INFO_BCID(i), --pcie0_register_map_monitor,
       Xoff_nXon(0)         => Xoff_nXon(i), --"0",                          --  : in     std_logic_vector(0 downto 0);
 	  --Xoff_nXon_en		  => pcie0_register_map_40_control.XOFF_ENABLE(i downto i),
-      L1A_Incr             => RX_120b(i)(64),               --  : in     std_logic; -- signal coming from ttc decoders
-      BCR_in               => '0', --RX_120b(0)(65),               --  : in     std_logic; -- signal coming from ttc decoders
-      ECR_in               => '0', --RX_120b(0)(66),               --  : in     std_logic; -- signal coming from ttc decoders
+      L1A_Incr             => TTCin(0),--RX_120b(i)(64),               --  : in     std_logic; -- signal coming from ttc decoders
+      BCR_in               => TTCin(1),--'0', --RX_120b(0)(65),               --  : in     std_logic; -- signal coming from ttc decoders
+      ECR_in               => TTCin(2), --RX_120b(0)(66),               --  : in     std_logic; -- signal coming from ttc decoders
       RST                  => reset,                        --  : in     std_logic;
       CRC                  => CRC(i),                          --  : in     std_logic_vector(31 downto 0);
 	  RST_RAM			   => RST_RAM(i),	
diff --git a/sources/FullModeTransmitter/FMchannelTXctrl_emu.vhd b/sources/FullModeTransmitter/FMchannelTXctrl_emu.vhd
index 62088771b19010bd962cd36ba2b5c264d751b463..b0e2936ea0a4a589efdca70488ce21e35efa2c69 100644
--- a/sources/FullModeTransmitter/FMchannelTXctrl_emu.vhd
+++ b/sources/FullModeTransmitter/FMchannelTXctrl_emu.vhd
@@ -7,10 +7,10 @@
 --! Project Name:   FELIX
 ----------------------------------------------------------------------------------
 --! Use standard library
-library work, ieee;
+library ieee;
 use ieee.std_logic_1164.ALL;
 use ieee.numeric_std.all;
-use ieee.std_logic_unsigned.all;
+use ieee.std_logic_unsigned.all; -- @suppress "Deprecated package"
 --use work.centralRouter_package.all;
 
 --! Full Mode channel transmitter controller
@@ -46,25 +46,25 @@ signal crc_din, crc_din_r1: std_logic_vector(31 downto 0);
 signal crc_kin, crc_kin_r1 : std_logic_vector(3 downto 0);
 signal crc_out : std_logic_vector(19 downto 0);
 signal tx_state : integer :=0;
-signal fifo_dout_r1        : std_logic_vector(31 downto 0); 
+--signal fifo_dout_r1        : std_logic_vector(31 downto 0); 
 
-signal fifo_dtype_r1        : std_logic_vector(2 downto 0); 
+--signal fifo_dtype_r1        : std_logic_vector(2 downto 0); 
 
-signal err_detect_r1        : std_logic;
-signal eop_detect_r1        : std_logic;
-signal eop_detect_r2        : std_logic;
+--signal err_detect_r1        : std_logic;
+--signal eop_detect_r1        : std_logic;
+--signal eop_detect_r2        : std_logic;
 
-signal sop_detect_r1        : std_logic;
-signal sop_detect_r2        : std_logic;
+--signal sop_detect_r1        : std_logic;
+--signal sop_detect_r2        : std_logic;
 
-signal sob_detect_r1        : std_logic;
-signal eob_detect_r1        : std_logic;
-signal sob_detect_r2        : std_logic;
-signal eob_detect_r2        : std_logic;
+--signal sob_detect_r1        : std_logic;
+--signal eob_detect_r1        : std_logic;
+--signal sob_detect_r2        : std_logic;
+--signal eob_detect_r2        : std_logic;
 
 
-signal dout_r1        : std_logic_vector(31 downto 0); 
-signal kout_r1        : std_logic_vector(3 downto 0); 
+--signal dout_r1        : std_logic_vector(31 downto 0); 
+--signal kout_r1        : std_logic_vector(3 downto 0); 
 
 begin
 
@@ -81,34 +81,34 @@ eob_detect <= '1' when (fifo_dtype = "101") else '0'; -- end-of-busy
 -- reading from user's fifo
 ---------------------------------------------------------------------------------------
 
-tx_state_output: process(clk240, rst)
-begin
-    if (rst = '1') then
-		fifo_dout_r1 <=  (others => '0');
-		fifo_dtype_r1 <= (others => '0');
-		err_detect_r1 <= '0';
-		eop_detect_r1 <= '0';
-		sop_detect_r1 <= '0';
-		eop_detect_r2 <= '0';
-		sop_detect_r2 <= '0';
-		sob_detect_r1 <= '0';
-		eob_detect_r1 <= '0';
-		sob_detect_r2 <= '0';
-		eob_detect_r2 <= '0';
-    elsif rising_edge(clk240) then
-		fifo_dout_r1 <= fifo_dout;
-		fifo_dtype_r1 <= fifo_dtype;
-		err_detect_r1 <= err_detect;
-		eop_detect_r1 <= eop_detect;
-		sop_detect_r1 <= sop_detect;
-		eop_detect_r2 <= eop_detect_r1;
-		sop_detect_r2 <= sop_detect_r1;
-		sob_detect_r1 <= sob_detect;
-		eob_detect_r1 <= eob_detect;
-		sob_detect_r2 <= sob_detect_r1;
-		eob_detect_r2 <= eob_detect_r1;
-    end if;
-end process;
+--tx_state_output: process(clk240, rst)
+--begin
+    --if (rst = '1') then
+		--fifo_dout_r1 <=  (others => '0');
+		--fifo_dtype_r1 <= (others => '0');
+		--err_detect_r1 <= '0';
+		--eop_detect_r1 <= '0';
+		--sop_detect_r1 <= '0';
+		--eop_detect_r2 <= '0';
+		--sop_detect_r2 <= '0';
+		--sob_detect_r1 <= '0';
+		--eob_detect_r1 <= '0';
+		--sob_detect_r2 <= '0';
+		--eob_detect_r2 <= '0';
+    --elsif rising_edge(clk240) then
+		--fifo_dout_r1 <= fifo_dout;
+		--fifo_dtype_r1 <= fifo_dtype;
+		--err_detect_r1 <= err_detect;
+		--eop_detect_r1 <= eop_detect;
+		--sop_detect_r1 <= sop_detect;
+		--eop_detect_r2 <= eop_detect_r1;
+		--sop_detect_r2 <= sop_detect_r1;
+		--sob_detect_r1 <= sob_detect;
+		--eob_detect_r1 <= eob_detect;
+		--sob_detect_r2 <= sob_detect_r1;
+		--eob_detect_r2 <= eob_detect_r1;
+    --end if;
+--end process;
 		
 tx_detect_output: process(clk240, rst)
 begin
diff --git a/sources/Xoff_decoder/8b10_dec_wrap.vhd b/sources/Xoff_decoder/8b10_dec_wrap.vhd
index aba87e0f7c507a34480302dbe0eb7e75eb30c9d8..0ec3bd0285797a6aaa3f63646d5e716aaf3e72e7 100644
--- a/sources/Xoff_decoder/8b10_dec_wrap.vhd
+++ b/sources/Xoff_decoder/8b10_dec_wrap.vhd
@@ -104,7 +104,7 @@ GBT_mode: if (GENERATE_FEI4B = false) generate
 ---
 end generate GBT_mode;
 
-FEI4B: if (GENERATE_FEI4B = true) generate
+FEI4B: if (GENERATE_FEI4B) generate
     ISK_comma   <=  '1' when (ABCDEIFGHJ_IN = FEI4B_COMMAp or ABCDEIFGHJ_IN = FEI4B_COMMAn) else '0';
     ISK_soc     <=  '1' when (ABCDEIFGHJ_IN = FEI4B_SOCp   or ABCDEIFGHJ_IN = FEI4B_SOCn) else '0';
     ISK_eoc     <=  '1' when (ABCDEIFGHJ_IN = FEI4B_EOCp   or ABCDEIFGHJ_IN = FEI4B_EOCn) else '0';
diff --git a/sources/Xoff_decoder/Xoff_decoder_top.vhd b/sources/Xoff_decoder/Xoff_decoder_top.vhd
index 32ceddf4304a0006e7ac941f785142491a817728..09fc170cad96788bdd6d36405693633245d1c089 100644
--- a/sources/Xoff_decoder/Xoff_decoder_top.vhd
+++ b/sources/Xoff_decoder/Xoff_decoder_top.vhd
@@ -26,16 +26,14 @@ use IEEE.NUMERIC_STD.ALL;
 
 entity Xoff_decoder_top is
     generic (
-        do_generate : boolean := true;
-        DinWidth : integer range 0 to 16 := 16; --maximum width of the elink
-        includeDirectMode   : boolean := true
+        DinWidth : integer range 0 to 16 := 16 --maximum width of the elink
         );
     Port (
         DIN : in std_logic_vector(DinWidth-1 downto 0);
         Clk : in std_logic;
         Reset: in std_logic;
-        InputWidth: in integer range 0 to 16; 
-        MODE8b : in std_logic; --for direct mode set to '1', for 8b10b mode set to '0'
+        --InputWidth: in integer range 0 to 16; 
+        --MODE8b : in std_logic; --for direct mode set to '1', for 8b10b mode set to '0'
         DATA_OUT : out std_logic_vector (9 downto 0);
         DATA_RDY : out std_logic;
         Xoff_nXon  : out std_logic
@@ -57,22 +55,22 @@ DIN_s <= DIN(1 downto 0);
 
 InputShifterNb_inst : entity work.InputShifterNb
 port map (
-    Clk 		=> Clk,
-    Reset		=> Reset,
-	DIN 		=> DIN_s,
-    DOUT 		=> DOUT,
-    DValid 		=> DValid
+    DIN    => DIN_s,
+    DOUT   => DOUT,
+    DValid => DValid,
+    Clk    => Clk,
+    Reset  => Reset
 );
 
-process(clk)
+process(Clk)
 begin
-    if rising_edge(clk) then
+    if rising_edge(Clk) then
         DATA_RDY <= DValid;
     end if;
 end process;
-process(clk, Reset)
+process(Clk)
 begin
-    if rising_edge(clk) then
+    if rising_edge(Clk) then
 		if(Reset = '1') then
 			Xoff_nXon <= '0';
 			count <= (others => '0');
@@ -88,6 +86,9 @@ begin
 end process;
 
     dec_8b10: entity work.dec_8b10_wrap
+        generic map(
+            GENERATE_FEI4B => false
+        )
     port map(
         RESET         => Reset,
         RBYTECLK      => Clk,
@@ -97,8 +98,4 @@ end process;
         BUSY          => Xoff_nXon_t
     );
 
-
-
-
-
 end Behavioral;
diff --git a/sources/felixUserSupport/fullmodetransceiver_gth_gth/FM_transceiver_BNL711_GBTin_FMout.vhd b/sources/felixUserSupport/fullmodetransceiver_gth_gth/FM_transceiver_BNL711_GBTin_FMout.vhd
index ebbf4abf0eea75b846edac2981c979b0b6e3cb4c..161b2b29fe8b348f9ed89cf4f6c904fbfbccae49 100644
--- a/sources/felixUserSupport/fullmodetransceiver_gth_gth/FM_transceiver_BNL711_GBTin_FMout.vhd
+++ b/sources/felixUserSupport/fullmodetransceiver_gth_gth/FM_transceiver_BNL711_GBTin_FMout.vhd
@@ -318,7 +318,7 @@ architecture RTL of FullModeTransceiver is
     --signal TX_N_i                 : std_logic_vector(47 downto 0):=x"000000000000";
     --signal TX_P_i                 : std_logic_vector(47 downto 0):=x"000000000000";
 
-    signal drpclk              : std_logic_vector(0 downto 0);
+    --signal drpclk              : std_logic_vector(0 downto 0);
     --signal userclk_tx_active_out  : std_logic_vector(GBT_NUM-1 downto 0);
     --signal userclk_rx_active_out  : std_logic_vector(GBT_NUM-1 downto 0);
     signal userclk_rx_active_out_p: std_logic_vector(GBT_NUM-1 downto 0);
@@ -660,7 +660,7 @@ begin
     end generate;
 
 
-    drpclk(0) <= drpclk_in;
+    --drpclk(0) <= drpclk_in;
 
     process(drpclk_in)
     begin
diff --git a/sources/shared/xadc_drp.vhd b/sources/shared/xadc_drp.vhd
index fc8ce2ee65e1752c8a7906edddefee1d83369e75..33be835fcdecf6a9f5482175f57e013485d8db42 100644
--- a/sources/shared/xadc_drp.vhd
+++ b/sources/shared/xadc_drp.vhd
@@ -177,4 +177,4 @@ vccint  <= vccint_s;
 vccaux  <= vccaux_s;
 vccbram <= vccbram_s;
 
-end architecture;
\ No newline at end of file
+end architecture;
diff --git a/sources/templates/dma_control.vhd b/sources/templates/dma_control.vhd
index 436c0a82aa6894d8f56b7bf8aa3acdb04139d7ac..b72bd5f6a78c48fb2ebd75299ffef56cb732c182 100644
--- a/sources/templates/dma_control.vhd
+++ b/sources/templates/dma_control.vhd
@@ -9213,9 +9213,9 @@ end process;
               register_map_control_s.FMEMU_CONTROL.ECR              <= REG_FMEMU_CONTROL_ECR_C;                 -- Reset L1ID to 0
           end if;
           if EMU_GENERATE_REGS then
-              register_map_control_s.FMEMU_CONTROL.DATA_SRC_SEL     <= REG_FMEMU_CONTROL_DATA_SRC_SEL_C;        -- Data source select
-                                                                                                        -- 0: Data input comes from EMURAM
-                                                                                                        -- 1: Data input comes from PCIe
+              register_map_control_s.FMEMU_CONTROL.CONSTANT_CHUNK_LENGTH <= REG_FMEMU_CONTROL_CONSTANT_CHUNK_LENGTH_C; -- Data source select
+                                                                                                        -- 0: Random chunk length
+                                                                                                        -- 1: Constant chunk length
                                                                                                         
           end if;
           if EMU_GENERATE_REGS then
@@ -11452,22 +11452,22 @@ end process;
           if (GBT_NUM > 3 and FIRMWARE_MODE = 5) then
               register_map_control_s.R3L1_CTRL (3)(3).R3_ENABLE <= REG_CR_ITK_R3L1_LINK_03_R3L1_3_R3_ENABLE_C; -- enables sending RoI R3 signals to the front-end
           end if;
-          if MROD_GENERATE_REGS = true then
+          if MROD_GENERATE_REGS then
               register_map_control_s.MROD_CTRL.OPTIONS              <= REG_MROD_CTRL_OPTIONS_C;                 -- Extra options for MROD
           end if;
-          if MROD_GENERATE_REGS = true then
+          if MROD_GENERATE_REGS then
               register_map_control_s.MROD_CTRL.ENASPARE1            <= REG_MROD_CTRL_ENASPARE1_C;               -- Enable spare1
           end if;
-          if MROD_GENERATE_REGS = true then
+          if MROD_GENERATE_REGS then
               register_map_control_s.MROD_CTRL.ENAMANSLIDE          <= REG_MROD_CTRL_ENAMANSLIDE_C;             -- Enable Manual Slide in Rx Locking
           end if;
-          if MROD_GENERATE_REGS = true then
+          if MROD_GENERATE_REGS then
               register_map_control_s.MROD_CTRL.ENAPASSALL           <= REG_MROD_CTRL_ENAPASSALL_C;              -- Enable PassAll in EmptySuppress
           end if;
-          if MROD_GENERATE_REGS = true then
+          if MROD_GENERATE_REGS then
               register_map_control_s.MROD_CTRL.ENATXCOUNT           <= REG_MROD_CTRL_ENATXCOUNT_C;              -- Enable SimpleCount in TxDriver for locking
           end if;
-          if MROD_GENERATE_REGS = true then
+          if MROD_GENERATE_REGS then
               register_map_control_s.MROD_CTRL.GOLTESTMODE          <= REG_MROD_CTRL_GOLTESTMODE_C;             -- GOL Test Mode (emulate CSM):
                                                                                                         --   0: Run Data Emulator when 1;     0: stop, load emulator fifo
                                                                                                         --   1: Enable Circulate  when 1;     0: send fifo data only once
@@ -11475,67 +11475,67 @@ end process;
                                                                                                         --   3: Enable pattern generator
                                                                                                         
           end if;
-          if MROD_GENERATE_REGS = true then
+          if MROD_GENERATE_REGS then
               register_map_control_s.MROD_TCVRCTRL.SLIDEMAX         <= REG_MROD_TCVRCTRL_SLIDEMAX_C;            -- Maximum RXSLIDES before fire a TCVR reset
           end if;
-          if MROD_GENERATE_REGS = true then
+          if MROD_GENERATE_REGS then
               register_map_control_s.MROD_TCVRCTRL.SLIDEWAIT        <= REG_MROD_TCVRCTRL_SLIDEWAIT_C;           -- RXclk delay in TCVR for next RX_SLIDE operation
           end if;
-          if MROD_GENERATE_REGS = true then
+          if MROD_GENERATE_REGS then
               register_map_control_s.MROD_TCVRCTRL.FRAMESIZE        <= REG_MROD_TCVRCTRL_FRAMESIZE_C;           -- Number of 32 data words in 1 frame
           end if;
-          if MROD_GENERATE_REGS = true then
+          if MROD_GENERATE_REGS then
               register_map_control_s.MROD_EP0_CSMENABLE             <= REG_MROD_EP0_CSMENABLE_C;                -- EP0 CSM Data Enable channel 23-0
           end if;
-          if MROD_GENERATE_REGS = true then
+          if MROD_GENERATE_REGS then
               register_map_control_s.MROD_EP0_EMPTYSUPPR            <= REG_MROD_EP0_EMPTYSUPPR_C;               -- EP0 Set Empty Suppression channel 23-0
           end if;
-          if MROD_GENERATE_REGS = true then
+          if MROD_GENERATE_REGS then
               register_map_control_s.MROD_EP0_HPTDCMODE             <= REG_MROD_EP0_HPTDCMODE_C;                -- EP0 Set HPTDC Mode channel 23-0
           end if;
-          if MROD_GENERATE_REGS = true then
+          if MROD_GENERATE_REGS then
               register_map_control_s.MROD_EP0_CLRFIFOS              <= REG_MROD_EP0_CLRFIFOS_C;                 -- EP0 Clear FIFOs channel 23-0
           end if;
-          if MROD_GENERATE_REGS = true then
+          if MROD_GENERATE_REGS then
               register_map_control_s.MROD_EP0_EMULOADENA            <= REG_MROD_EP0_EMULOADENA_C;               -- EP0 Emulator Load Enable channel 23-0
           end if;
-          if MROD_GENERATE_REGS = true then
+          if MROD_GENERATE_REGS then
               register_map_control_s.MROD_EP0_TRXLOOPBACK           <= REG_MROD_EP0_TRXLOOPBACK_C;              -- EP0 Transceiver Loopback Enable channel 23-0
           end if;
-          if MROD_GENERATE_REGS = true then
+          if MROD_GENERATE_REGS then
               register_map_control_s.MROD_EP0_TXCVRRESET            <= REG_MROD_EP0_TXCVRRESET_C;               -- EP0 Transceiver Reset all channel 23-0
           end if;
-          if MROD_GENERATE_REGS = true then
+          if MROD_GENERATE_REGS then
               register_map_control_s.MROD_EP0_RXRESET               <= REG_MROD_EP0_RXRESET_C;                  -- EP0 Receiver Reset channel 23-0
           end if;
-          if MROD_GENERATE_REGS = true then
+          if MROD_GENERATE_REGS then
               register_map_control_s.MROD_EP0_TXRESET               <= REG_MROD_EP0_TXRESET_C;                  -- EP0 Transmitter Reset channel 23-0
           end if;
-          if MROD_GENERATE_REGS = true then
+          if MROD_GENERATE_REGS then
               register_map_control_s.MROD_EP1_CSMENABLE             <= REG_MROD_EP1_CSMENABLE_C;                -- EP1 CSM Data Enable channel 23-0
           end if;
-          if MROD_GENERATE_REGS = true then
+          if MROD_GENERATE_REGS then
               register_map_control_s.MROD_EP1_EMPTYSUPPR            <= REG_MROD_EP1_EMPTYSUPPR_C;               -- EP1 Set Empty Suppression channel 23-0
           end if;
-          if MROD_GENERATE_REGS = true then
+          if MROD_GENERATE_REGS then
               register_map_control_s.MROD_EP1_HPTDCMODE             <= REG_MROD_EP1_HPTDCMODE_C;                -- EP1 Set HPTDC Mode channel 23-0
           end if;
-          if MROD_GENERATE_REGS = true then
+          if MROD_GENERATE_REGS then
               register_map_control_s.MROD_EP1_CLRFIFOS              <= REG_MROD_EP1_CLRFIFOS_C;                 -- EP1 Clear FIFOs channel 23-0
           end if;
-          if MROD_GENERATE_REGS = true then
+          if MROD_GENERATE_REGS then
               register_map_control_s.MROD_EP1_EMULOADENA            <= REG_MROD_EP1_EMULOADENA_C;               -- EP1 Emulator Load Enable channel 23-0
           end if;
-          if MROD_GENERATE_REGS = true then
+          if MROD_GENERATE_REGS then
               register_map_control_s.MROD_EP1_TRXLOOPBACK           <= REG_MROD_EP1_TRXLOOPBACK_C;              -- EP1 Transceiver Loopback Enable channel 23-0
           end if;
-          if MROD_GENERATE_REGS = true then
+          if MROD_GENERATE_REGS then
               register_map_control_s.MROD_EP1_TXCVRRESET            <= REG_MROD_EP1_TXCVRRESET_C;               -- EP1 Transceiver Reset all channel 23-0
           end if;
-          if MROD_GENERATE_REGS = true then
+          if MROD_GENERATE_REGS then
               register_map_control_s.MROD_EP1_RXRESET               <= REG_MROD_EP1_RXRESET_C;                  -- EP1 Receiver Reset channel 23-0
           end if;
-          if MROD_GENERATE_REGS = true then
+          if MROD_GENERATE_REGS then
               register_map_control_s.MROD_EP1_TXRESET               <= REG_MROD_EP1_TXRESET_C;                  -- EP1 Transmitter Reset channel 23-0
           end if;
           -----------------------------------
@@ -17263,9 +17263,9 @@ end process;
                                                                                                                                                         
                                                          register_read_data_25_s(43 downto 43)   <= register_map_control_s.FMEMU_CONTROL.BCR;             -- Reset BCID to 0
                                                          register_read_data_25_s(42 downto 42)   <= register_map_control_s.FMEMU_CONTROL.ECR;             -- Reset L1ID to 0
-                                                         register_read_data_25_s(41 downto 41)   <= register_map_control_s.FMEMU_CONTROL.DATA_SRC_SEL;    -- Data source select
-                                                                                                                                                        -- 0: Data input comes from EMURAM
-                                                                                                                                                        -- 1: Data input comes from PCIe
+                                                         register_read_data_25_s(41 downto 41)   <= register_map_control_s.FMEMU_CONTROL.CONSTANT_CHUNK_LENGTH; -- Data source select
+                                                                                                                                                        -- 0: Random chunk length
+                                                                                                                                                        -- 1: Constant chunk length
                                                                                                                                                         
                                                          register_read_data_25_s(40 downto 32)   <= register_map_monitor_s.register_map_generators.FMEMU_CONTROL.INT_STATUS_EMU;  -- Read internal status emulator
                                                          register_read_data_25_s(31 downto 31)   <= register_map_control_s.FMEMU_CONTROL.FE_BUSY_ENABLE;  -- Enable the BUSY mechanism if L1A counter passes threshold
@@ -18946,7 +18946,7 @@ end process;
             when REG_STRIPS_L1_TRIGGER              => register_read_data_25_s(64 downto 64)   <= register_map_control_s.STRIPS_L1_TRIGGER;             -- (for tests only) simulate L1 trigger (issues 4-5 sequential triggers)
             when REG_STRIPS_R3L1_TRIGGER            => register_read_data_25_s(64 downto 64)   <= register_map_control_s.STRIPS_R3L1_TRIGGER;           -- (for tests only) simulate simultaneous R3 and L1 trigger (issues 4-5 sequential triggers)
             when REG_MROD_CTRL                      => 
-              if MROD_GENERATE_REGS = true then
+              if MROD_GENERATE_REGS then
                                                          register_read_data_25_s(15 downto 8)    <= register_map_control_s.MROD_CTRL.OPTIONS;             -- Extra options for MROD
                                                          register_read_data_25_s(7 downto 7)     <= register_map_control_s.MROD_CTRL.ENASPARE1;           -- Enable spare1
                                                          register_read_data_25_s(6 downto 6)     <= register_map_control_s.MROD_CTRL.ENAMANSLIDE;         -- Enable Manual Slide in Rx Locking
@@ -18960,81 +18960,81 @@ end process;
                                                                                                                                                         
               end if;
             when REG_MROD_TCVRCTRL                  => 
-              if MROD_GENERATE_REGS = true then
+              if MROD_GENERATE_REGS then
                                                          register_read_data_25_s(23 downto 16)   <= register_map_control_s.MROD_TCVRCTRL.SLIDEMAX;        -- Maximum RXSLIDES before fire a TCVR reset
                                                          register_read_data_25_s(15 downto 8)    <= register_map_control_s.MROD_TCVRCTRL.SLIDEWAIT;       -- RXclk delay in TCVR for next RX_SLIDE operation
                                                          register_read_data_25_s(7 downto 0)     <= register_map_control_s.MROD_TCVRCTRL.FRAMESIZE;       -- Number of 32 data words in 1 frame
               end if;
             when REG_MROD_EP0_CSMENABLE             => 
-              if MROD_GENERATE_REGS = true then
+              if MROD_GENERATE_REGS then
                                                          register_read_data_25_s(23 downto 0)    <= register_map_control_s.MROD_EP0_CSMENABLE;            -- EP0 CSM Data Enable channel 23-0
               end if;
             when REG_MROD_EP0_EMPTYSUPPR            => 
-              if MROD_GENERATE_REGS = true then
+              if MROD_GENERATE_REGS then
                                                          register_read_data_25_s(23 downto 0)    <= register_map_control_s.MROD_EP0_EMPTYSUPPR;           -- EP0 Set Empty Suppression channel 23-0
               end if;
             when REG_MROD_EP0_HPTDCMODE             => 
-              if MROD_GENERATE_REGS = true then
+              if MROD_GENERATE_REGS then
                                                          register_read_data_25_s(23 downto 0)    <= register_map_control_s.MROD_EP0_HPTDCMODE;            -- EP0 Set HPTDC Mode channel 23-0
               end if;
             when REG_MROD_EP0_CLRFIFOS              => 
-              if MROD_GENERATE_REGS = true then
+              if MROD_GENERATE_REGS then
                                                          register_read_data_25_s(23 downto 0)    <= register_map_control_s.MROD_EP0_CLRFIFOS;             -- EP0 Clear FIFOs channel 23-0
               end if;
             when REG_MROD_EP0_EMULOADENA            => 
-              if MROD_GENERATE_REGS = true then
+              if MROD_GENERATE_REGS then
                                                          register_read_data_25_s(23 downto 0)    <= register_map_control_s.MROD_EP0_EMULOADENA;           -- EP0 Emulator Load Enable channel 23-0
               end if;
             when REG_MROD_EP0_TRXLOOPBACK           => 
-              if MROD_GENERATE_REGS = true then
+              if MROD_GENERATE_REGS then
                                                          register_read_data_25_s(23 downto 0)    <= register_map_control_s.MROD_EP0_TRXLOOPBACK;          -- EP0 Transceiver Loopback Enable channel 23-0
               end if;
             when REG_MROD_EP0_TXCVRRESET            => 
-              if MROD_GENERATE_REGS = true then
+              if MROD_GENERATE_REGS then
                                                          register_read_data_25_s(23 downto 0)    <= register_map_control_s.MROD_EP0_TXCVRRESET;           -- EP0 Transceiver Reset all channel 23-0
               end if;
             when REG_MROD_EP0_RXRESET               => 
-              if MROD_GENERATE_REGS = true then
+              if MROD_GENERATE_REGS then
                                                          register_read_data_25_s(23 downto 0)    <= register_map_control_s.MROD_EP0_RXRESET;              -- EP0 Receiver Reset channel 23-0
               end if;
             when REG_MROD_EP0_TXRESET               => 
-              if MROD_GENERATE_REGS = true then
+              if MROD_GENERATE_REGS then
                                                          register_read_data_25_s(23 downto 0)    <= register_map_control_s.MROD_EP0_TXRESET;              -- EP0 Transmitter Reset channel 23-0
               end if;
             when REG_MROD_EP1_CSMENABLE             => 
-              if MROD_GENERATE_REGS = true then
+              if MROD_GENERATE_REGS then
                                                          register_read_data_25_s(23 downto 0)    <= register_map_control_s.MROD_EP1_CSMENABLE;            -- EP1 CSM Data Enable channel 23-0
               end if;
             when REG_MROD_EP1_EMPTYSUPPR            => 
-              if MROD_GENERATE_REGS = true then
+              if MROD_GENERATE_REGS then
                                                          register_read_data_25_s(23 downto 0)    <= register_map_control_s.MROD_EP1_EMPTYSUPPR;           -- EP1 Set Empty Suppression channel 23-0
               end if;
             when REG_MROD_EP1_HPTDCMODE             => 
-              if MROD_GENERATE_REGS = true then
+              if MROD_GENERATE_REGS then
                                                          register_read_data_25_s(23 downto 0)    <= register_map_control_s.MROD_EP1_HPTDCMODE;            -- EP1 Set HPTDC Mode channel 23-0
               end if;
             when REG_MROD_EP1_CLRFIFOS              => 
-              if MROD_GENERATE_REGS = true then
+              if MROD_GENERATE_REGS then
                                                          register_read_data_25_s(23 downto 0)    <= register_map_control_s.MROD_EP1_CLRFIFOS;             -- EP1 Clear FIFOs channel 23-0
               end if;
             when REG_MROD_EP1_EMULOADENA            => 
-              if MROD_GENERATE_REGS = true then
+              if MROD_GENERATE_REGS then
                                                          register_read_data_25_s(23 downto 0)    <= register_map_control_s.MROD_EP1_EMULOADENA;           -- EP1 Emulator Load Enable channel 23-0
               end if;
             when REG_MROD_EP1_TRXLOOPBACK           => 
-              if MROD_GENERATE_REGS = true then
+              if MROD_GENERATE_REGS then
                                                          register_read_data_25_s(23 downto 0)    <= register_map_control_s.MROD_EP1_TRXLOOPBACK;          -- EP1 Transceiver Loopback Enable channel 23-0
               end if;
             when REG_MROD_EP1_TXCVRRESET            => 
-              if MROD_GENERATE_REGS = true then
+              if MROD_GENERATE_REGS then
                                                          register_read_data_25_s(23 downto 0)    <= register_map_control_s.MROD_EP1_TXCVRRESET;           -- EP1 Transceiver Reset all channel 23-0
               end if;
             when REG_MROD_EP1_RXRESET               => 
-              if MROD_GENERATE_REGS = true then
+              if MROD_GENERATE_REGS then
                                                          register_read_data_25_s(23 downto 0)    <= register_map_control_s.MROD_EP1_RXRESET;              -- EP1 Receiver Reset channel 23-0
               end if;
             when REG_MROD_EP1_TXRESET               => 
-              if MROD_GENERATE_REGS = true then
+              if MROD_GENERATE_REGS then
                                                          register_read_data_25_s(23 downto 0)    <= register_map_control_s.MROD_EP1_TXRESET;              -- EP1 Transmitter Reset channel 23-0
               end if;
 
@@ -20779,51 +20779,51 @@ end process;
 
 -- MRODmonitors
               when REG_MROD_EP0_CSMH_EMPTY            => 
-                  if MROD_GENERATE_REGS = true then
+                  if MROD_GENERATE_REGS then
                                                          register_read_data_25_s(23 downto 0)    <= register_map_monitor_s.regmap_mrod_monitor.MROD_EP0_CSMH_EMPTY;           -- EP0 CSM Handler FIFO Empty 23-0
                   end if;
               when REG_MROD_EP0_CSMH_FULL             => 
-                  if MROD_GENERATE_REGS = true then
+                  if MROD_GENERATE_REGS then
                                                          register_read_data_25_s(23 downto 0)    <= register_map_monitor_s.regmap_mrod_monitor.MROD_EP0_CSMH_FULL;            -- EP0 CSM Handler FIFO Full 23-0
                   end if;
               when REG_MROD_EP0_RXALIGNBSY            => 
-                  if MROD_GENERATE_REGS = true then
+                  if MROD_GENERATE_REGS then
                                                          register_read_data_25_s(23 downto 0)    <= register_map_monitor_s.regmap_mrod_monitor.MROD_EP0_RXALIGNBSY;           -- EP0 Receiver Aligned monitor 23-0
                   end if;
               when REG_MROD_EP0_RXRECDATA             => 
-                  if MROD_GENERATE_REGS = true then
+                  if MROD_GENERATE_REGS then
                                                          register_read_data_25_s(23 downto 0)    <= register_map_monitor_s.regmap_mrod_monitor.MROD_EP0_RXRECDATA;            -- EP0 Receiver Data monitor 23-0
                   end if;
               when REG_MROD_EP0_RXRECIDLES            => 
-                  if MROD_GENERATE_REGS = true then
+                  if MROD_GENERATE_REGS then
                                                          register_read_data_25_s(23 downto 0)    <= register_map_monitor_s.regmap_mrod_monitor.MROD_EP0_RXRECIDLES;           -- EP0 Receiver Idle monitor 23-0
                   end if;
               when REG_MROD_EP0_TXLOCKED              => 
-                  if MROD_GENERATE_REGS = true then
+                  if MROD_GENERATE_REGS then
                                                          register_read_data_25_s(23 downto 0)    <= register_map_monitor_s.regmap_mrod_monitor.MROD_EP0_TXLOCKED;             -- EP0 Transmitter Locked monitor 23-0
                   end if;
               when REG_MROD_EP1_CSMH_EMPTY            => 
-                  if MROD_GENERATE_REGS = true then
+                  if MROD_GENERATE_REGS then
                                                          register_read_data_25_s(23 downto 0)    <= register_map_monitor_s.regmap_mrod_monitor.MROD_EP1_CSMH_EMPTY;           -- EP1 CSM Handler FIFO Empty 23-0
                   end if;
               when REG_MROD_EP1_CSMH_FULL             => 
-                  if MROD_GENERATE_REGS = true then
+                  if MROD_GENERATE_REGS then
                                                          register_read_data_25_s(23 downto 0)    <= register_map_monitor_s.regmap_mrod_monitor.MROD_EP1_CSMH_FULL;            -- EP1 CSM Handler FIFO Full 23-0
                   end if;
               when REG_MROD_EP1_RXALIGNBSY            => 
-                  if MROD_GENERATE_REGS = true then
+                  if MROD_GENERATE_REGS then
                                                          register_read_data_25_s(23 downto 0)    <= register_map_monitor_s.regmap_mrod_monitor.MROD_EP1_RXALIGNBSY;           -- EP1 Receiver Aligned monitor 23-0
                   end if;
               when REG_MROD_EP1_RXRECDATA             => 
-                  if MROD_GENERATE_REGS = true then
+                  if MROD_GENERATE_REGS then
                                                          register_read_data_25_s(23 downto 0)    <= register_map_monitor_s.regmap_mrod_monitor.MROD_EP1_RXRECDATA;            -- EP1 Receiver Data monitor 23-0
                   end if;
               when REG_MROD_EP1_RXRECIDLES            => 
-                  if MROD_GENERATE_REGS = true then
+                  if MROD_GENERATE_REGS then
                                                          register_read_data_25_s(23 downto 0)    <= register_map_monitor_s.regmap_mrod_monitor.MROD_EP1_RXRECIDLES;           -- EP1 Receiver Idle monitor 23-0
                   end if;
               when REG_MROD_EP1_TXLOCKED              => 
-                  if MROD_GENERATE_REGS = true then
+                  if MROD_GENERATE_REGS then
                                                          register_read_data_25_s(23 downto 0)    <= register_map_monitor_s.regmap_mrod_monitor.MROD_EP1_TXLOCKED;             -- EP1 Transmitter Locked monitor 23-0
                   end if;
             -----------------------------------
@@ -26362,9 +26362,9 @@ end process;
                                                                                                                                                          
                                                            register_map_control_s.FMEMU_CONTROL.BCR          <= register_write_data_25_v(43 downto 43); -- Reset BCID to 0
                                                            register_map_control_s.FMEMU_CONTROL.ECR          <= register_write_data_25_v(42 downto 42); -- Reset L1ID to 0
-                                                           register_map_control_s.FMEMU_CONTROL.DATA_SRC_SEL <= register_write_data_25_v(41 downto 41); -- Data source select
-                                                                                                                                                         -- 0: Data input comes from EMURAM
-                                                                                                                                                         -- 1: Data input comes from PCIe
+                                                           register_map_control_s.FMEMU_CONTROL.CONSTANT_CHUNK_LENGTH <= register_write_data_25_v(41 downto 41); -- Data source select
+                                                                                                                                                         -- 0: Random chunk length
+                                                                                                                                                         -- 1: Constant chunk length
                                                                                                                                                          
                                                            register_map_control_s.FMEMU_CONTROL.FE_BUSY_ENABLE <= register_write_data_25_v(31 downto 31); -- Enable the BUSY mechanism if L1A counter passes threshold
                                                            register_map_control_s.FMEMU_CONTROL.FFU_FM_EMU_T <= register_write_data_25_v(30 downto 16); -- For Future Use (trigger registers)
@@ -28041,7 +28041,7 @@ end process;
             when REG_STRIPS_L1_TRIGGER              => register_map_control_s.STRIPS_L1_TRIGGER              <= "1";                                     -- (for tests only) simulate L1 trigger (issues 4-5 sequential triggers)
             when REG_STRIPS_R3L1_TRIGGER            => register_map_control_s.STRIPS_R3L1_TRIGGER            <= "1";                                     -- (for tests only) simulate simultaneous R3 and L1 trigger (issues 4-5 sequential triggers)
             when REG_MROD_CTRL                      => 
-                                                       if MROD_GENERATE_REGS = true then
+                                                       if MROD_GENERATE_REGS then
                                                            register_map_control_s.MROD_CTRL.OPTIONS          <= register_write_data_25_v(15 downto 8); -- Extra options for MROD
                                                            register_map_control_s.MROD_CTRL.ENASPARE1        <= register_write_data_25_v(7 downto 7); -- Enable spare1
                                                            register_map_control_s.MROD_CTRL.ENAMANSLIDE      <= register_write_data_25_v(6 downto 6); -- Enable Manual Slide in Rx Locking
@@ -28055,81 +28055,81 @@ end process;
                                                                                                                                                          
                                                        end if;
             when REG_MROD_TCVRCTRL                  => 
-                                                       if MROD_GENERATE_REGS = true then
+                                                       if MROD_GENERATE_REGS then
                                                            register_map_control_s.MROD_TCVRCTRL.SLIDEMAX     <= register_write_data_25_v(23 downto 16); -- Maximum RXSLIDES before fire a TCVR reset
                                                            register_map_control_s.MROD_TCVRCTRL.SLIDEWAIT    <= register_write_data_25_v(15 downto 8); -- RXclk delay in TCVR for next RX_SLIDE operation
                                                            register_map_control_s.MROD_TCVRCTRL.FRAMESIZE    <= register_write_data_25_v(7 downto 0); -- Number of 32 data words in 1 frame
                                                        end if;
             when REG_MROD_EP0_CSMENABLE             => 
-                                                       if MROD_GENERATE_REGS = true then
+                                                       if MROD_GENERATE_REGS then
                                                            register_map_control_s.MROD_EP0_CSMENABLE         <= register_write_data_25_v(23 downto 0); -- EP0 CSM Data Enable channel 23-0
                                                        end if;
             when REG_MROD_EP0_EMPTYSUPPR            => 
-                                                       if MROD_GENERATE_REGS = true then
+                                                       if MROD_GENERATE_REGS then
                                                            register_map_control_s.MROD_EP0_EMPTYSUPPR        <= register_write_data_25_v(23 downto 0); -- EP0 Set Empty Suppression channel 23-0
                                                        end if;
             when REG_MROD_EP0_HPTDCMODE             => 
-                                                       if MROD_GENERATE_REGS = true then
+                                                       if MROD_GENERATE_REGS then
                                                            register_map_control_s.MROD_EP0_HPTDCMODE         <= register_write_data_25_v(23 downto 0); -- EP0 Set HPTDC Mode channel 23-0
                                                        end if;
             when REG_MROD_EP0_CLRFIFOS              => 
-                                                       if MROD_GENERATE_REGS = true then
+                                                       if MROD_GENERATE_REGS then
                                                            register_map_control_s.MROD_EP0_CLRFIFOS          <= register_write_data_25_v(23 downto 0); -- EP0 Clear FIFOs channel 23-0
                                                        end if;
             when REG_MROD_EP0_EMULOADENA            => 
-                                                       if MROD_GENERATE_REGS = true then
+                                                       if MROD_GENERATE_REGS then
                                                            register_map_control_s.MROD_EP0_EMULOADENA        <= register_write_data_25_v(23 downto 0); -- EP0 Emulator Load Enable channel 23-0
                                                        end if;
             when REG_MROD_EP0_TRXLOOPBACK           => 
-                                                       if MROD_GENERATE_REGS = true then
+                                                       if MROD_GENERATE_REGS then
                                                            register_map_control_s.MROD_EP0_TRXLOOPBACK       <= register_write_data_25_v(23 downto 0); -- EP0 Transceiver Loopback Enable channel 23-0
                                                        end if;
             when REG_MROD_EP0_TXCVRRESET            => 
-                                                       if MROD_GENERATE_REGS = true then
+                                                       if MROD_GENERATE_REGS then
                                                            register_map_control_s.MROD_EP0_TXCVRRESET        <= register_write_data_25_v(23 downto 0); -- EP0 Transceiver Reset all channel 23-0
                                                        end if;
             when REG_MROD_EP0_RXRESET               => 
-                                                       if MROD_GENERATE_REGS = true then
+                                                       if MROD_GENERATE_REGS then
                                                            register_map_control_s.MROD_EP0_RXRESET           <= register_write_data_25_v(23 downto 0); -- EP0 Receiver Reset channel 23-0
                                                        end if;
             when REG_MROD_EP0_TXRESET               => 
-                                                       if MROD_GENERATE_REGS = true then
+                                                       if MROD_GENERATE_REGS then
                                                            register_map_control_s.MROD_EP0_TXRESET           <= register_write_data_25_v(23 downto 0); -- EP0 Transmitter Reset channel 23-0
                                                        end if;
             when REG_MROD_EP1_CSMENABLE             => 
-                                                       if MROD_GENERATE_REGS = true then
+                                                       if MROD_GENERATE_REGS then
                                                            register_map_control_s.MROD_EP1_CSMENABLE         <= register_write_data_25_v(23 downto 0); -- EP1 CSM Data Enable channel 23-0
                                                        end if;
             when REG_MROD_EP1_EMPTYSUPPR            => 
-                                                       if MROD_GENERATE_REGS = true then
+                                                       if MROD_GENERATE_REGS then
                                                            register_map_control_s.MROD_EP1_EMPTYSUPPR        <= register_write_data_25_v(23 downto 0); -- EP1 Set Empty Suppression channel 23-0
                                                        end if;
             when REG_MROD_EP1_HPTDCMODE             => 
-                                                       if MROD_GENERATE_REGS = true then
+                                                       if MROD_GENERATE_REGS then
                                                            register_map_control_s.MROD_EP1_HPTDCMODE         <= register_write_data_25_v(23 downto 0); -- EP1 Set HPTDC Mode channel 23-0
                                                        end if;
             when REG_MROD_EP1_CLRFIFOS              => 
-                                                       if MROD_GENERATE_REGS = true then
+                                                       if MROD_GENERATE_REGS then
                                                            register_map_control_s.MROD_EP1_CLRFIFOS          <= register_write_data_25_v(23 downto 0); -- EP1 Clear FIFOs channel 23-0
                                                        end if;
             when REG_MROD_EP1_EMULOADENA            => 
-                                                       if MROD_GENERATE_REGS = true then
+                                                       if MROD_GENERATE_REGS then
                                                            register_map_control_s.MROD_EP1_EMULOADENA        <= register_write_data_25_v(23 downto 0); -- EP1 Emulator Load Enable channel 23-0
                                                        end if;
             when REG_MROD_EP1_TRXLOOPBACK           => 
-                                                       if MROD_GENERATE_REGS = true then
+                                                       if MROD_GENERATE_REGS then
                                                            register_map_control_s.MROD_EP1_TRXLOOPBACK       <= register_write_data_25_v(23 downto 0); -- EP1 Transceiver Loopback Enable channel 23-0
                                                        end if;
             when REG_MROD_EP1_TXCVRRESET            => 
-                                                       if MROD_GENERATE_REGS = true then
+                                                       if MROD_GENERATE_REGS then
                                                            register_map_control_s.MROD_EP1_TXCVRRESET        <= register_write_data_25_v(23 downto 0); -- EP1 Transceiver Reset all channel 23-0
                                                        end if;
             when REG_MROD_EP1_RXRESET               => 
-                                                       if MROD_GENERATE_REGS = true then
+                                                       if MROD_GENERATE_REGS then
                                                            register_map_control_s.MROD_EP1_RXRESET           <= register_write_data_25_v(23 downto 0); -- EP1 Receiver Reset channel 23-0
                                                        end if;
             when REG_MROD_EP1_TXRESET               => 
-                                                       if MROD_GENERATE_REGS = true then
+                                                       if MROD_GENERATE_REGS then
                                                            register_map_control_s.MROD_EP1_TXRESET           <= register_write_data_25_v(23 downto 0); -- EP1 Transmitter Reset channel 23-0
                                                        end if;
             -----------------------------------
diff --git a/sources/templates/pcie_package.vhd b/sources/templates/pcie_package.vhd
index 010a81cb4a96ced0bd584a0e8e66c17c3f0f46a7..c126bec314fdb9d81363b48b7d5e8dafccfd696e 100644
--- a/sources/templates/pcie_package.vhd
+++ b/sources/templates/pcie_package.vhd
@@ -2011,9 +2011,9 @@ package pcie_package is
                                                                       
     BCR                            : std_logic_vector(43 downto 43);  -- Reset BCID to 0
     ECR                            : std_logic_vector(42 downto 42);  -- Reset L1ID to 0
-    DATA_SRC_SEL                   : std_logic_vector(41 downto 41);  -- Data source select
-                                                                      -- 0: Data input comes from EMURAM
-                                                                      -- 1: Data input comes from PCIe
+    CONSTANT_CHUNK_LENGTH          : std_logic_vector(41 downto 41);  -- Data source select
+                                                                      -- 0: Random chunk length
+                                                                      -- 1: Constant chunk length
                                                                       
     FE_BUSY_ENABLE                 : std_logic_vector(31 downto 31);  -- Enable the BUSY mechanism if L1A counter passes threshold
     FFU_FM_EMU_T                   : std_logic_vector(30 downto 16);  -- For Future Use (trigger registers)
@@ -6214,7 +6214,7 @@ package pcie_package is
   constant REG_FMEMU_COUNTERS_L1A_CNT_C            : std_logic_vector(31 downto 16)   := x"0100";               -- Number of chunks to send if not in TTC mode
   constant REG_FMEMU_COUNTERS_BUSY_TH_HIGH_C       : std_logic_vector(15 downto 8)    := x"14";                 -- Assert BUSY-ON above this threshold
   constant REG_FMEMU_COUNTERS_BUSY_TH_LOW_C        : std_logic_vector(7 downto 0)     := x"0f";                 -- De-assert BUSY-ON below this threshold
-  constant REG_FMEMU_CONTROL_L1A_BITNR_C           : std_logic_vector(63 downto 56)   := x"20";                 -- Bitfield for L1A in TTC frame
+  constant REG_FMEMU_CONTROL_L1A_BITNR_C           : std_logic_vector(63 downto 56)   := x"30";                 -- Bitfield for L1A in TTC frame
   constant REG_FMEMU_CONTROL_XONXOFF_BITNR_C       : std_logic_vector(55 downto 48)   := x"20";                 -- Bitfield for Xon/Xoff in TTC frame
   constant REG_FMEMU_CONTROL_EMU_START_C           : std_logic_vector(47 downto 47)   := "0";                   -- Start emulator functionality
   constant REG_FMEMU_CONTROL_TTC_MODE_C            : std_logic_vector(46 downto 46)   := "0";                   -- Control the emulator by TTC input or by RegMap (1/0)
@@ -6224,9 +6224,9 @@ package pcie_package is
                                                                                                                 
   constant REG_FMEMU_CONTROL_BCR_C                 : std_logic_vector(43 downto 43)   := "0";                   -- Reset BCID to 0
   constant REG_FMEMU_CONTROL_ECR_C                 : std_logic_vector(42 downto 42)   := "0";                   -- Reset L1ID to 0
-  constant REG_FMEMU_CONTROL_DATA_SRC_SEL_C        : std_logic_vector(41 downto 41)   := "0";                   -- Data source select
-                                                                                                                -- 0: Data input comes from EMURAM
-                                                                                                                -- 1: Data input comes from PCIe
+  constant REG_FMEMU_CONTROL_CONSTANT_CHUNK_LENGTH_C: std_logic_vector(41 downto 41)   := "0";                   -- Data source select
+                                                                                                                -- 0: Random chunk length
+                                                                                                                -- 1: Constant chunk length
                                                                                                                 
   constant REG_FMEMU_CONTROL_FE_BUSY_ENABLE_C      : std_logic_vector(31 downto 31)   := "0";                   -- Enable the BUSY mechanism if L1A counter passes threshold
   constant REG_FMEMU_CONTROL_FFU_FM_EMU_T_C        : std_logic_vector(30 downto 16)   := "000000000000000";     -- For Future Use (trigger registers)
diff --git a/sources/templates/registermap.tex b/sources/templates/registermap.tex
index 589acf47340adc2aca77bedd6df1d51871e2bc40..2f0c05186fd8a0d61a367664829c1f2bf023f530 100644
--- a/sources/templates/registermap.tex
+++ b/sources/templates/registermap.tex
@@ -1264,7 +1264,7 @@ any & T & Any write to this register clears the FELIG L1ID \\
  & & INLC\_CRC32 & 44:44 & W & 0: No checksum\newline 1: Append the data with a CRC32\newline  \\
  & & BCR & 43:43 & W & Reset BCID to 0 \\
  & & ECR & 42:42 & W & Reset L1ID to 0 \\
- & & DATA\_SRC\_SEL & 41:41 & W & Data source select\newline 0: Data input comes from EMURAM\newline 1: Data input comes from PCIe\newline  \\
+ & & CONSTANT\_CHUNK\_LENGTH & 41:41 & W & Data source select\newline 0: Random chunk length\newline 1: Constant chunk length\newline  \\
  & & INT\_STATUS\_EMU & 40:32 & R & Read internal status emulator \\
  & & FE\_BUSY\_ENABLE & 31 & W & Enable the BUSY mechanism if L1A counter passes threshold \\
  & & FFU\_FM\_EMU\_T & 30:16 & W & For Future Use (trigger registers) \\
diff --git a/sources/templates/registers-4.10.html b/sources/templates/registers-4.10.html
index 7121de630fce048a5ad84a6ba4eb437d6582d2ac..d14e86f4fa5c220f6e2ef42c4b58f691d9e2c99b 100644
--- a/sources/templates/registers-4.10.html
+++ b/sources/templates/registers-4.10.html
@@ -4102,10 +4102,10 @@ th {
       <td class="desc">Reset L1ID to 0</td>
     </tr>
     <tr>
-      <td class="name">DATA_SRC_SEL</td>
+      <td class="name">CONSTANT_CHUNK_LENGTH</td>
       <td class="range">41..41</td>
       <td class="type">W</td>
-      <td class="desc">Data source select<br/>0: Data input comes from EMURAM<br/>1: Data input comes from PCIe<br/></td>
+      <td class="desc">Data source select<br/>0: Random chunk length<br/>1: Constant chunk length<br/></td>
     </tr>
     <tr>
       <td class="name">INT_STATUS_EMU</td>
diff --git a/sources/templates/registers-4.10.yaml b/sources/templates/registers-4.10.yaml
index 527f9461db73713a1497718d6ee1475dc394ec05..38298415bdd64636c945dec90e1c69bd84c66fea 100755
--- a/sources/templates/registers-4.10.yaml
+++ b/sources/templates/registers-4.10.yaml
@@ -2779,7 +2779,7 @@ Generators:
         - range: 63..56
           type: W
           name: L1A_BITNR
-          default: 32
+          default: 48
           desc: Bitfield for L1A in TTC frame
         - range: 55..48
           type: W
@@ -2820,12 +2820,12 @@ Generators:
           desc: Reset L1ID to 0
         - range: 41..41
           type: W
-          name: DATA_SRC_SEL
+          name: CONSTANT_CHUNK_LENGTH
           default: 0
           desc: | 
             Data source select
-            0: Data input comes from EMURAM
-            1: Data input comes from PCIe
+            0: Random chunk length
+            1: Constant chunk length
         - range: 40..32
           type: R
           name: INT_STATUS_EMU
@@ -3257,7 +3257,7 @@ MRODregisters:
   group: MROD_CONTROL
   desc: Specific registers for MROD
   endpoints: 0
-  generate: MROD_GENERATE_REGS = true
+  generate: MROD_GENERATE_REGS
   entries:
     - name: MROD_CTRL
       type: W
@@ -3419,7 +3419,7 @@ MRODmonitors:
   group: MROD_MONITOR
   desc: Specific registers for MROD
   endpoints: 0
-  generate: MROD_GENERATE_REGS = true
+  generate: MROD_GENERATE_REGS
   entries:
     - name: MROD_EP0_CSMH_EMPTY
       type: R
diff --git a/sources/templates/registers-diff-4.9-4.10.html b/sources/templates/registers-diff-4.9-4.10.html
index 408b086a8aadb9cfdb7476a80a1c94646e7d4b2b..8b3301dcb11ee9b82ad93e5fb78d75c846a5633e 100644
--- a/sources/templates/registers-diff-4.9-4.10.html
+++ b/sources/templates/registers-diff-4.9-4.10.html
@@ -3891,7 +3891,7 @@ th {
       <td class="value changedNone">None</td>
     </tr>
     <tr>
-            <td class="state changed"></td>
+            <td class="state changedRemoved">Removed</td>
       <td class="field changedNone">DATA_SRC_SEL</td>
       <td class="range changedNone">41..41</td>
       <td class="type changedNone">W</td>
@@ -3997,11 +3997,11 @@ th {
       <td class="value changedFalse">None</td>
     </tr>
     <tr>
-            <td class="state changed"></td>
-      <td class="field changedNone">DATA_SRC_SEL</td>
-      <td class="range changedFalse">41..41</td>
+            <td class="state changedAdded">Added</td>
+      <td class="field changedTrue">CONSTANT_CHUNK_LENGTH</td>
+      <td class="range changedTrue">41..41</td>
       <td class="type changedFalse">W</td>
-      <td class="desc changedFalse">Data source select<br/>0: Data input comes from EMURAM<br/>1: Data input comes from PCIe<br/></td>
+      <td class="desc changedFalse">Data source select<br/>0: Random chunk length<br/>1: Constant chunk length<br/></td>
       <td class="value changedFalse">None</td>
     </tr>
     <tr>
diff --git a/sources/templates/registers.pdf b/sources/templates/registers.pdf
index 2f7017f280079acc172b664dea568b9bebb2dc95..3a096f79b0107747ea18576b4b2fc10411dc55a1 100644
Binary files a/sources/templates/registers.pdf and b/sources/templates/registers.pdf differ