diff --git a/applications/apertif/designs/apertif_unb1_correlator/src/vhdl/apertif_unb1_correlator.vhd b/applications/apertif/designs/apertif_unb1_correlator/src/vhdl/apertif_unb1_correlator.vhd
index dfa55240ead64fbe9cfb32daf7284d4da4c7f3c3..fbb7769837f8bbb198348e6c095f8683c7f85f6b 100644
--- a/applications/apertif/designs/apertif_unb1_correlator/src/vhdl/apertif_unb1_correlator.vhd
+++ b/applications/apertif/designs/apertif_unb1_correlator/src/vhdl/apertif_unb1_correlator.vhd
@@ -131,7 +131,7 @@ END apertif_unb1_correlator;
 ARCHITECTURE str OF apertif_unb1_correlator IS
 
   -- Firmware version x.y
-  CONSTANT c_fw_version             : t_unb1_board_fw_version := (0, 3);
+  CONSTANT c_fw_version             : t_unb1_board_fw_version := (0, 4);
   -- Enable block generators
   CONSTANT c_use_phy                : t_c_unb1_board_use_phy  := (1, sel_a_b(g_use_bg, 0, 1), 0, 0, 0, 0, 0, 1);
   
@@ -140,8 +140,8 @@ ARCHITECTURE str OF apertif_unb1_correlator IS
   CONSTANT c_compl_dat_w            : NATURAL := 8;
   
   -- BSN Alignern + FIFO's
-  CONSTANT c_block_period           : NATURAL := 256;
-  CONSTANT c_block_size             : NATURAL := 176; --FIXME: current fn_beamformer output block size. 
+  CONSTANT c_block_period           : NATURAL := 186; --256; --FIXME: first block size was 176/256. Now 128/186,18 (non-integer...), assuming 186 is OK.
+  CONSTANT c_block_size             : NATURAL := 128; --176
   CONSTANT c_bsn_align_latency      : NATURAL := 3;
   CONSTANT c_bsn_align_sop_timeout  : NATURAL := (c_bsn_align_latency + 1) * c_block_period;  -- wait somewhat more than c_bsn_align_latency periods
   CONSTANT c_bsn_align_xoff_timeout : NATURAL :=  c_bsn_align_latency * 2  * c_block_period;  -- flush factor 2 longer than needed
@@ -326,7 +326,7 @@ ARCHITECTURE str OF apertif_unb1_correlator IS
   SIGNAL diag_data_buf_snk_in_arr                    : t_dp_sosi_arr(c_nof_10GbE_streams*c_nof_bf_modules-1 DOWNTO 0);
 
   -- dp_block_gen
-  SIGNAL dp_block_gen_snk_in_arr                     : t_dp_sosi_arr(c_nof_input_streams-1 DOWNTO 0);
+  SIGNAL dp_block_gen_src_out_arr                    : t_dp_sosi_arr(c_nof_input_streams-1 DOWNTO 0); --FIXME should be 3, not 12
   
   -- Filterbank and Correlator  
   SIGNAL wpfb_snk_in_ctrl                            : t_dp_sosi;                    
@@ -482,8 +482,8 @@ BEGIN
       g_nof_streams         => c_nof_10GbE_streams,
       g_data_w              => c_xgmii_data_w,
       g_hdr_field_arr       => c_apertif_udp_offload_hdr_field_arr,
-      g_remove_crc          => TRUE,
-      g_crc_nof_words       => 1
+      g_remove_crc          => FALSE,
+      g_crc_nof_words       => 0 
      )
     PORT MAP (
       mm_rst                => mm_rst,
@@ -499,7 +499,7 @@ BEGIN
       snk_out_arr           => dp_offload_rx_snk_out_arr,
                  
       src_out_arr           => dp_offload_rx_src_out_arr,
-      src_in_arr            => dp_offload_rx_src_in_arr,
+      src_in_arr            => (OTHERS=>c_dp_siso_rdy), --dp_offload_rx_src_in_arr,
     
       hdr_fields_out_arr    => hdr_fields_out_arr
       );
@@ -515,6 +515,26 @@ BEGIN
       dp_offload_rx_restored_src_out_arr(i).err   <= dp_offload_rx_src_out_arr(i).err;
     END GENERATE;
 
+    -----------------------------------------------------------------------------
+    -- Re-assign SOP and EOP
+    -- . We're receiving 176-word blocks
+    -- . WPFB requires blocks of 128 words (2*64, interleaved)
+    -----------------------------------------------------------------------------
+    gen_dp_block_gen : FOR i IN 0 TO c_nof_10GbE_streams-1 GENERATE
+      u_dp_block_gen : ENTITY dp_lib.dp_block_gen
+      GENERIC MAP(
+        g_use_src_in => FALSE,
+        g_nof_data   => 128
+      )
+      PORT MAP(
+        rst        => dp_rst,
+        clk        => dp_clk,
+       
+        snk_in     => dp_offload_rx_restored_src_out_arr(i),
+        src_out    => dp_block_gen_src_out_arr(i)
+      );    
+    END GENERATE;
+
     -----------------------------------------------------------------------------
     -- RX: BSN alignment
     -----------------------------------------------------------------------------
@@ -535,8 +555,8 @@ BEGIN
         rst       => dp_rst,
         clk       => dp_clk,
     
-        snk_out   => dp_offload_rx_src_in_arr(i),
-        snk_in    => dp_offload_rx_restored_src_out_arr(i),
+--        snk_out   => dp_offload_rx_src_in_arr(i),
+        snk_in    => dp_block_gen_src_out_arr(i),
     
         src_in    => dp_fifo_fill_src_in_arr(i),
         src_out   => dp_fifo_fill_src_out_arr(i)
@@ -546,7 +566,7 @@ BEGIN
     u_dp_bsn_align : ENTITY dp_lib.dp_bsn_align
     GENERIC MAP (
       g_block_size           => c_block_size,
-      g_block_period         => c_block_period,
+      g_block_period         => c_block_period, --FIXME: NOT EVEN USED INTERNALLY!!!
       g_nof_input            => c_nof_10GbE_streams,
       g_xoff_timeout         => c_bsn_align_xoff_timeout,
       g_sop_timeout          => c_bsn_align_sop_timeout,
@@ -782,10 +802,10 @@ BEGIN
   p_add_st_ctrl : PROCESS(reinterleave_out_arr, dp_pipeline_src_out)
   BEGIN
     FOR i IN 0 TO c_nof_input_streams-1 LOOP
-     dp_block_gen_snk_in_arr(i)      <= dp_pipeline_src_out; -- SOSI ctrl
-     dp_block_gen_snk_in_arr(i).data <= reinterleave_out_arr(i).data;
-     dp_block_gen_snk_in_arr(i).im   <= reinterleave_out_arr(i).im;
-     dp_block_gen_snk_in_arr(i).re   <= reinterleave_out_arr(i).re;
+      wpfb_snk_in_arr(i)      <= dp_pipeline_src_out; -- SOSI ctrl
+      wpfb_snk_in_arr(i).data <= reinterleave_out_arr(i).data;
+      wpfb_snk_in_arr(i).im   <= reinterleave_out_arr(i).im;
+      wpfb_snk_in_arr(i).re   <= reinterleave_out_arr(i).re;
     END LOOP;
   END PROCESS;
 
@@ -905,25 +925,6 @@ BEGIN
     );
   END GENERATE; -- g_use_dumb_mesh_terminals
 
-  -----------------------------------------------------------------------------
-  -- Re-assign SOP and EOP
-  -- . WPFB required blocks of 128 words (2*64, interleaved)
-  -----------------------------------------------------------------------------
-  gen_dp_block_gen : FOR i IN 0 TO c_nof_input_streams-1 GENERATE
-    u_dp_block_gen : ENTITY dp_lib.dp_block_gen
-    GENERIC MAP(
-      g_use_src_in => FALSE,
-      g_nof_data   => 128
-    )
-    PORT MAP(
-      rst        => dp_rst,
-      clk        => dp_clk,
-     
-      snk_in     => dp_block_gen_snk_in_arr(i),
-      src_out    => wpfb_snk_in_arr(i)
-    );    
-  END GENERATE;
-
   -----------------------------------------------------------------------------
   -- WPFB
   -----------------------------------------------------------------------------
@@ -1114,6 +1115,7 @@ BEGIN
   u_ctrl : ENTITY unb1_board_lib.ctrl_unb1_board
   GENERIC MAP (
     g_sim                     => g_sim,
+    g_sim_flash_model         => FALSE,
     g_design_name             => g_design_name,
     g_stamp_date              => g_stamp_date,
     g_stamp_time              => g_stamp_time,