diff --git a/applications/compaan/designs/compaan_unb1_dp_offload/quartus/sopc_compaan_unb1_dp_offload.sopc b/applications/compaan/designs/compaan_unb1_dp_offload/quartus/sopc_compaan_unb1_dp_offload.sopc
index 7014ffd19ad0043925d726fdc8d904cd0666b8e3..d5d698a3d553e7515c27771659d41ac861c5a943 100644
--- a/applications/compaan/designs/compaan_unb1_dp_offload/quartus/sopc_compaan_unb1_dp_offload.sopc
+++ b/applications/compaan/designs/compaan_unb1_dp_offload/quartus/sopc_compaan_unb1_dp_offload.sopc
@@ -100,48 +100,51 @@
          type = "String";
       }
    }
-   element reg_dp_offload_tx_hdr_dat.mem
+   element reg_dp_offload_tx.mem
    {
       datum baseAddress
       {
-         value = "256";
+         value = "1176";
          type = "long";
       }
    }
-   element ram_diag_bg.mem
+   element reg_dp_offload_tx_hdr_dat.mem
    {
       datum baseAddress
       {
-         value = "8192";
+         value = "256";
          type = "long";
       }
    }
-   element reg_dp_offload_tx_hdr_ovr.mem
+   element reg_diag_bg.mem
    {
       datum baseAddress
       {
-         value = "128";
+         value = "1088";
          type = "long";
       }
    }
-   element pio_system_info.mem
+   element reg_dp_offload_rx_hdr_dat.mem
    {
-      datum _lockedAddress
+      datum baseAddress
       {
-         value = "1";
-         type = "boolean";
+         value = "512";
+         type = "long";
       }
+   }
+   element reg_bsn_monitor.mem
+   {
       datum baseAddress
       {
-         value = "0";
+         value = "896";
          type = "long";
       }
    }
-   element ram_diag_data_buffer.mem
+   element reg_compaan.mem
    {
       datum baseAddress
       {
-         value = "65536";
+         value = "2097152";
          type = "long";
       }
    }
@@ -166,64 +169,61 @@
          type = "long";
       }
    }
-   element reg_diag_data_buffer.mem
+   element ram_diag_data_buffer.mem
    {
       datum baseAddress
       {
-         value = "768";
+         value = "65536";
          type = "long";
       }
    }
-   element reg_compaan.mem
+   element reg_dp_offload_tx_hdr_ovr.mem
    {
       datum baseAddress
       {
-         value = "2097152";
+         value = "128";
          type = "long";
       }
    }
-   element reg_dp_offload_rx_hdr_dat.mem
+   element reg_diag_data_buffer.mem
    {
       datum baseAddress
       {
-         value = "512";
+         value = "768";
          type = "long";
       }
    }
-   element reg_diag_bg.mem
+   element reg_wdi.mem
    {
-      datum baseAddress
+      datum _lockedAddress
       {
-         value = "1088";
-         type = "long";
+         value = "1";
+         type = "boolean";
       }
-   }
-   element reg_bsn_monitor.mem
-   {
       datum baseAddress
       {
-         value = "896";
+         value = "12288";
          type = "long";
       }
    }
-   element reg_dp_offload_tx.mem
+   element pio_system_info.mem
    {
+      datum _lockedAddress
+      {
+         value = "1";
+         type = "boolean";
+      }
       datum baseAddress
       {
-         value = "1176";
+         value = "0";
          type = "long";
       }
    }
-   element reg_wdi.mem
+   element ram_diag_bg.mem
    {
-      datum _lockedAddress
-      {
-         value = "1";
-         type = "boolean";
-      }
       datum baseAddress
       {
-         value = "12288";
+         value = "16384";
          type = "long";
       }
    }
@@ -231,7 +231,7 @@
    {
       datum baseAddress
       {
-         value = "20480";
+         value = "32768";
          type = "long";
       }
    }
@@ -247,7 +247,7 @@
    {
       datum baseAddress
       {
-         value = "16384";
+         value = "8192";
          type = "long";
       }
    }
@@ -410,19 +410,11 @@
          type = "int";
       }
    }
-   element timer_0.s1
-   {
-      datum baseAddress
-      {
-         value = "1024";
-         type = "long";
-      }
-   }
-   element pio_debug_wave.s1
+   element pio_wdi.s1
    {
       datum baseAddress
       {
-         value = "1136";
+         value = "1152";
          type = "long";
       }
    }
@@ -439,11 +431,19 @@
          type = "long";
       }
    }
-   element pio_wdi.s1
+   element pio_debug_wave.s1
    {
       datum baseAddress
       {
-         value = "1152";
+         value = "1136";
+         type = "long";
+      }
+   }
+   element timer_0.s1
+   {
+      datum baseAddress
+      {
+         value = "1024";
          type = "long";
       }
    }
@@ -470,10 +470,10 @@
  <parameter name="globalResetBus" value="true" />
  <parameter name="hdlLanguage" value="VHDL" />
  <parameter name="maxAdditionalLatency" value="0" />
- <parameter name="projectName">compaan_unb1_dp_offload.qpf</parameter>
+ <parameter name="projectName">compaan_unb1_dp_offload_bg.qpf</parameter>
  <parameter name="sopcBorderPoints" value="true" />
- <parameter name="systemHash" value="-46914647588" />
- <parameter name="timeStamp" value="1426597100710" />
+ <parameter name="systemHash" value="-44851155349" />
+ <parameter name="timeStamp" value="1433916452709" />
  <parameter name="useTestBenchNamingPattern" value="false" />
  <module kind="clock_source" version="11.1" enabled="1" name="clk_0">
   <parameter name="clockFrequency" value="25000000" />
@@ -574,7 +574,7 @@
   <parameter name="dcache_numTCDM" value="_0" />
   <parameter name="dcache_lineSize" value="_32" />
   <parameter name="dcache_bursts" value="false" />
-  <parameter name="dataSlaveMapParam"><![CDATA[<address-map><slave name='pio_system_info.mem' start='0x0' end='0x80' /><slave name='reg_dp_offload_tx_hdr_ovr.mem' start='0x80' end='0x100' /><slave name='reg_dp_offload_tx_hdr_dat.mem' start='0x100' end='0x200' /><slave name='reg_dp_offload_rx_hdr_dat.mem' start='0x200' end='0x300' /><slave name='reg_diag_data_buffer.mem' start='0x300' end='0x380' /><slave name='reg_bsn_monitor.mem' start='0x380' end='0x3C0' /><slave name='avs_eth_0.mms_reg' start='0x3C0' end='0x400' /><slave name='timer_0.s1' start='0x400' end='0x420' /><slave name='reg_unb_sens.mem' start='0x420' end='0x440' /><slave name='reg_diag_bg.mem' start='0x440' end='0x460' /><slave name='altpll_0.pll_slave' start='0x460' end='0x470' /><slave name='pio_debug_wave.s1' start='0x470' end='0x480' /><slave name='pio_wdi.s1' start='0x480' end='0x490' /><slave name='jtag_uart_0.avalon_jtag_slave' start='0x490' end='0x498' /><slave name='reg_dp_offload_tx.mem' start='0x498' end='0x4A0' /><slave name='rom_system_info.mem' start='0x1000' end='0x2000' /><slave name='ram_diag_bg.mem' start='0x2000' end='0x3000' /><slave name='reg_wdi.mem' start='0x3000' end='0x3008' /><slave name='cpu_0.jtag_debug_module' start='0x3800' end='0x4000' /><slave name='avs_eth_0.mms_tse' start='0x4000' end='0x5000' /><slave name='avs_eth_0.mms_ram' start='0x5000' end='0x6000' /><slave name='ram_diag_data_buffer.mem' start='0x10000' end='0x20000' /><slave name='onchip_memory2_0.s1' start='0x20000' end='0x40000' /><slave name='reg_compaan.mem' start='0x200000' end='0x400000' /></address-map>]]></parameter>
+  <parameter name="dataSlaveMapParam"><![CDATA[<address-map><slave name='pio_system_info.mem' start='0x0' end='0x80' /><slave name='reg_dp_offload_tx_hdr_ovr.mem' start='0x80' end='0x100' /><slave name='reg_dp_offload_tx_hdr_dat.mem' start='0x100' end='0x200' /><slave name='reg_dp_offload_rx_hdr_dat.mem' start='0x200' end='0x300' /><slave name='reg_diag_data_buffer.mem' start='0x300' end='0x380' /><slave name='reg_bsn_monitor.mem' start='0x380' end='0x3C0' /><slave name='avs_eth_0.mms_reg' start='0x3C0' end='0x400' /><slave name='timer_0.s1' start='0x400' end='0x420' /><slave name='reg_unb_sens.mem' start='0x420' end='0x440' /><slave name='reg_diag_bg.mem' start='0x440' end='0x460' /><slave name='altpll_0.pll_slave' start='0x460' end='0x470' /><slave name='pio_debug_wave.s1' start='0x470' end='0x480' /><slave name='pio_wdi.s1' start='0x480' end='0x490' /><slave name='jtag_uart_0.avalon_jtag_slave' start='0x490' end='0x498' /><slave name='reg_dp_offload_tx.mem' start='0x498' end='0x4A0' /><slave name='rom_system_info.mem' start='0x1000' end='0x2000' /><slave name='avs_eth_0.mms_tse' start='0x2000' end='0x3000' /><slave name='reg_wdi.mem' start='0x3000' end='0x3008' /><slave name='cpu_0.jtag_debug_module' start='0x3800' end='0x4000' /><slave name='ram_diag_bg.mem' start='0x4000' end='0x4800' /><slave name='avs_eth_0.mms_ram' start='0x8000' end='0x9000' /><slave name='ram_diag_data_buffer.mem' start='0x10000' end='0x20000' /><slave name='onchip_memory2_0.s1' start='0x20000' end='0x40000' /><slave name='reg_compaan.mem' start='0x200000' end='0x400000' /></address-map>]]></parameter>
   <parameter name="dataAddrWidth" value="22" />
   <parameter name="customInstSlavesSystemInfo" value="&lt;info/&gt;" />
   <parameter name="cpuReset" value="false" />
@@ -922,7 +922,7 @@ q]]></parameter>
   <parameter name="AUTO_SYSTEM_CLOCK_RATE" value="50000000" />
  </module>
  <module kind="avs_common_mm" version="1.0" enabled="1" name="ram_diag_bg">
-  <parameter name="g_adr_w" value="10" />
+  <parameter name="g_adr_w" value="9" />
   <parameter name="g_dat_w" value="32" />
   <parameter name="AUTO_SYSTEM_CLOCK_RATE" value="50000000" />
  </module>
@@ -1198,7 +1198,7 @@ q]]></parameter>
    start="cpu_0.data_master"
    end="ram_diag_bg.mem">
   <parameter name="arbitrationPriority" value="1" />
-  <parameter name="baseAddress" value="0x2000" />
+  <parameter name="baseAddress" value="0x4000" />
  </connection>
  <connection kind="clock" version="11.1" start="altpll_0.c0" end="avs_eth_0.mm" />
  <connection
@@ -1207,7 +1207,7 @@ q]]></parameter>
    start="cpu_0.data_master"
    end="avs_eth_0.mms_tse">
   <parameter name="arbitrationPriority" value="1" />
-  <parameter name="baseAddress" value="0x4000" />
+  <parameter name="baseAddress" value="0x2000" />
  </connection>
  <connection
    kind="avalon"
@@ -1223,7 +1223,7 @@ q]]></parameter>
    start="cpu_0.data_master"
    end="avs_eth_0.mms_ram">
   <parameter name="arbitrationPriority" value="1" />
-  <parameter name="baseAddress" value="0x5000" />
+  <parameter name="baseAddress" value="0x8000" />
  </connection>
  <connection
    kind="interrupt"
diff --git a/applications/compaan/designs/compaan_unb1_dp_offload/src/vhdl/compaan_unb1_dp_offload.vhd b/applications/compaan/designs/compaan_unb1_dp_offload/src/vhdl/compaan_unb1_dp_offload.vhd
index e4ce994b5ccc42e6677510d98c9ad6327d2975a2..dc4de481b5d64a575acef1be47674260a1f948f0 100644
--- a/applications/compaan/designs/compaan_unb1_dp_offload/src/vhdl/compaan_unb1_dp_offload.vhd
+++ b/applications/compaan/designs/compaan_unb1_dp_offload/src/vhdl/compaan_unb1_dp_offload.vhd
@@ -84,7 +84,7 @@ ARCHITECTURE str OF compaan_unb1_dp_offload IS
   CONSTANT c_use_compaan                : BOOLEAN := g_design_name = "compaan_unb1_dp_offload_co";
   
   -- Firmware version x.y                                                 
-  CONSTANT c_fw_version                 : t_unb1_board_fw_version := (0, 5);  -- 
+  CONSTANT c_fw_version                 : t_unb1_board_fw_version := (1, 0);  -- 
   
   CONSTANT c_lpbk_data_w                : NATURAL := 32; -- 128 c_tech_tse_data_w, c_xgmii_data_w
 --  CONSTANT c_eth_packet_size --FIXME
@@ -96,8 +96,8 @@ ARCHITECTURE str OF compaan_unb1_dp_offload IS
   CONSTANT c_data_w                     : NATURAL := c_tech_tse_data_w; 
 
   -- Block generator
-  CONSTANT c_bg_block_size              : NATURAL := 900;
-  CONSTANT c_bg_gapsize                 : NATURAL := 100;
+  CONSTANT c_bg_block_size              : NATURAL := 365;
+  CONSTANT c_bg_gapsize                 : NATURAL := 9*c_bg_block_size; -- Full (no gaps in data) BG output rate = 200MHz * 32b = 6.4Gbps. Including gap size: (2200/(2200+19800))*6.4Gbps=640Mbps.
   CONSTANT c_bg_blocks_per_sync         : NATURAL := sel_a_b(g_sim, 10, 10); -- 200000*(900+100) = 200000000 cycles = 1 second
   CONSTANT c_bg_ctrl                    : t_diag_block_gen := ('0',                                -- enable             
                                                                '0',                                -- enable_sync        
@@ -109,6 +109,8 @@ ARCHITECTURE str OF compaan_unb1_dp_offload IS
                                                               TO_UVEC(                   0, c_diag_bg_bsn_init_w));
 
   -- dp_offload_tx
+  -- . IP total length : 1488 (UDP total lenth) + 20 (Ip header length) = 1508
+  -- . UDP total length: 8 (UDP header) + 20 (usr header) +  1460 (payload bytes) = 1488
   CONSTANT c_nof_hdr_fields : NATURAL := 4+12+4+9;  -- Total header bits = 512
   CONSTANT c_hdr_field_arr  : t_common_field_arr(c_nof_hdr_fields-1 DOWNTO 0) := ( ( field_name_pad("eth_word_align"     ), "  ", 16, field_default(0) ),
                                                                                    ( field_name_pad("eth_dst_mac"        ), "  ", 48, field_default(0) ),
@@ -117,7 +119,7 @@ ARCHITECTURE str OF compaan_unb1_dp_offload IS
                                                                                    ( field_name_pad("ip_version"         ), "  ",  4, field_default(4) ),
                                                                                    ( field_name_pad("ip_header_length"   ), "  ",  4, field_default(5) ),
                                                                                    ( field_name_pad("ip_services"        ), "  ",  8, field_default(0) ),
-                                                                                   ( field_name_pad("ip_total_length"    ), "  ", 16, field_default(88) ),
+                                                                                   ( field_name_pad("ip_total_length"    ), "  ", 16, field_default(1508) ),
                                                                                    ( field_name_pad("ip_identification"  ), "  ", 16, field_default(0) ),
                                                                                    ( field_name_pad("ip_flags"           ), "  ",  3, field_default(2) ),
                                                                                    ( field_name_pad("ip_fragment_offset" ), "  ", 13, field_default(0) ),
@@ -128,7 +130,7 @@ ARCHITECTURE str OF compaan_unb1_dp_offload IS
                                                                                    ( field_name_pad("ip_dst_addr"        ), "  ", 32, field_default(0) ),
                                                                                    ( field_name_pad("udp_src_port"       ), "  ", 16, field_default(0) ), 
                                                                                    ( field_name_pad("udp_dst_port"       ), "  ", 16, field_default(0) ), 
-                                                                                   ( field_name_pad("udp_total_length"   ), "  ", 16, field_default(68) ),
+                                                                                   ( field_name_pad("udp_total_length"   ), "  ", 16, field_default(1488) ),
                                                                                    ( field_name_pad("udp_checksum"       ), "  ", 16, field_default(0) ),
                                                                                    ( field_name_pad("usr_sync"           ), "  ",  1, field_default(1) ),
                                                                                    ( field_name_pad("usr_bsn"            ), "  ", 60, field_default(0) ),
@@ -144,8 +146,8 @@ ARCHITECTURE str OF compaan_unb1_dp_offload IS
   
   CONSTANT c_fifo_size                  : NATURAL := 2*c_bg_block_size;
 
-  CONSTANT c_use_jumbo_frames           : BOOLEAN := TRUE;
-  CONSTANT c_def_1GbE_block_size        : NATURAL := 10;   -- 0 first so we have time to set RX demux reg in dest. node
+  CONSTANT c_use_jumbo_frames           : BOOLEAN := FALSE;
+  CONSTANT c_def_1GbE_block_size        : NATURAL := c_bg_block_size;
 
   CONSTANT c_max_frame_len              : NATURAL := sel_a_b(c_use_jumbo_frames, 9018, 1518);
   CONSTANT c_max_frame_nof_words        : NATURAL := (c_max_frame_len * c_byte_w ) / c_data_w;
@@ -228,6 +230,9 @@ ARCHITECTURE str OF compaan_unb1_dp_offload IS
   SIGNAL dp_offload_tx_src_out_arr      : t_dp_sosi_arr(c_nof_streams-1 DOWNTO 0);
   SIGNAL dp_offload_tx_src_in_arr       : t_dp_siso_arr(c_nof_streams-1 DOWNTO 0);
 
+  SIGNAL dp_fifo_fill_src_out_arr       : t_dp_sosi_arr(c_nof_streams-1 DOWNTO 0);
+  SIGNAL dp_fifo_fill_src_in_arr        : t_dp_siso_arr(c_nof_streams-1 DOWNTO 0);
+
   SIGNAL dp_offload_rx_snk_in_arr       : t_dp_sosi_arr(c_nof_streams-1 DOWNTO 0);
   SIGNAL dp_offload_rx_snk_out_arr      : t_dp_siso_arr(c_nof_streams-1 DOWNTO 0);
 
@@ -296,7 +301,7 @@ BEGIN
     u_dp_fifo_sc : ENTITY dp_lib.dp_fifo_sc
     GENERIC MAP (
       g_data_w    => c_data_w,
-      g_fifo_size => 256 
+      g_fifo_size => 3*c_bg_block_size 
     )
     PORT MAP (
       rst         => dp_rst,
@@ -349,8 +354,20 @@ BEGIN
     hdr_fields_in_arr     => hdr_fields_in_arr
   );
   
-  
-  
+  u_dp_fifo_fill : ENTITY dp_lib.dp_fifo_fill
+  GENERIC MAP (
+    g_data_w      => 32,
+    g_fifo_fill   => 375+16,
+    g_fifo_size   => 375+16+10
+  )
+  PORT MAP (
+    rst         => dp_rst,
+    clk         => dp_clk,
+    snk_in      => dp_offload_tx_src_out_arr(0),
+    snk_out     => dp_offload_tx_src_in_arr(0),
+    src_in      => dp_fifo_fill_src_in_arr(0),
+    src_out     => dp_fifo_fill_src_out_arr(0)
+  );
 
   gen_hdr_in_fields : FOR i IN 0 TO c_nof_streams-1 GENERATE
     -- dst = src
@@ -655,8 +672,8 @@ BEGIN
     eth1g_ram_miso           => eth1g_ram_miso,
 
     -- eth1g UDP streaming ports
-    udp_tx_sosi_arr          =>  dp_offload_tx_src_out_arr,
-    udp_tx_siso_arr          =>  dp_offload_tx_src_in_arr,
+    udp_tx_sosi_arr          =>  dp_fifo_fill_src_out_arr, --dp_offload_tx_src_out_arr,
+    udp_tx_siso_arr          =>  dp_fifo_fill_src_in_arr, --dp_offload_tx_src_in_arr,
     udp_rx_sosi_arr          =>  dp_offload_rx_snk_in_arr,
     udp_rx_siso_arr          =>  dp_offload_rx_snk_out_arr,