diff --git a/libraries/dsp/wpfb/src/vhdl/wpfb_unit_dev.vhd b/libraries/dsp/wpfb/src/vhdl/wpfb_unit_dev.vhd
index 6e2d8b4d86fc6a5d3be1d461e44e2b726bc23e8f..7b08f2040f23b8bc571095a7115cedb37f8117a7 100644
--- a/libraries/dsp/wpfb/src/vhdl/wpfb_unit_dev.vhd
+++ b/libraries/dsp/wpfb/src/vhdl/wpfb_unit_dev.vhd
@@ -369,7 +369,14 @@ end entity wpfb_unit_dev;
 
 architecture str of wpfb_unit_dev is
 
-  constant c_nof_stats       : natural := 2**g_wpfb.nof_chan * g_wpfb.nof_points/g_wpfb.wb_factor;
+  constant c_nof_channels          : natural := 2**g_wpfb.nof_chan;
+  
+  constant c_nof_data_per_block    : natural := c_nof_channels * g_wpfb.nof_points;
+  constant c_nof_valid_per_block   : natural := c_nof_data_per_block / g_wpfb.wb_factor;
+  
+  constant c_nof_stats             : natural := c_nof_valid_per_block;
+  
+  constant c_maximum_sop_latency   : natural := func_wpfb_maximum_sop_latency(g_wpfb);
 
   constant c_fil_ppf         : t_fil_ppf := (g_wpfb.wb_factor,
                                              g_wpfb.nof_chan,
@@ -403,8 +410,6 @@ architecture str of wpfb_unit_dev is
   constant c_bg_data_file_index_arr : t_nat_natural_arr := array_init(0, 4, 1);
   constant c_bg_data_file_prefix    : string  := "UNUSED";
 
-  constant c_output_frame_size      : natural := c_nof_stats;   
-
   signal ram_st_sst_mosi_arr : t_mem_mosi_arr(g_wpfb.nof_wb_streams*g_wpfb.wb_factor-1 downto 0);
   signal ram_st_sst_miso_arr : t_mem_miso_arr(g_wpfb.nof_wb_streams*g_wpfb.wb_factor-1 downto 0) := (others => c_mem_miso_rst);
 
@@ -601,7 +606,7 @@ begin
     u_dp_block_gen : entity dp_lib.dp_block_gen
     generic map (
       g_use_src_in       => FALSE,
-      g_nof_data         => c_output_frame_size,
+      g_nof_data         => c_nof_valid_per_block,
       g_preserve_sync    => FALSE,
       g_preserve_bsn     => FALSE
     )
@@ -616,8 +621,16 @@ begin
     -- Add sync and BSN 
     u_dp_fifo_info : entity dp_lib.dp_fifo_info
     generic map (
-      g_use_sync => TRUE,
-      g_use_bsn  => TRUE
+      g_use_sync    => TRUE,
+      g_use_bsn     => TRUE,
+      g_use_channel => FALSE,
+      g_use_empty   => FALSE,
+      g_use_error   => FALSE,
+      g_bsn_w       => c_dp_stream_bsn_w,
+      g_empty_w     => c_dp_stream_empty_w,
+      g_channel_w   => c_dp_stream_channel_w,
+      g_error_w     => c_dp_stream_error_w,
+      g_fifo_size   => c_maximum_sop_latency
     )
     port map (
       rst          => dp_rst,