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,