Skip to content
Snippets Groups Projects
Commit a4b10b99 authored by Eric Kooistra's avatar Eric Kooistra
Browse files

Added func_wpfb_maximum_sop_latency().

parent 6169504a
No related branches found
No related tags found
No related merge requests found
......@@ -89,9 +89,30 @@ package wpfb_pkg is
8, 0, 8, 16, 9,
true, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2,
c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline);
-- Estimate maximum number of blocks of latency between WPFB input and output
function func_wpfb_maximum_sop_latency(wpfb : t_wpfb) return natural;
end package wpfb_pkg;
package body wpfb_pkg is
function func_wpfb_maximum_sop_latency(wpfb : t_wpfb) return natural is
constant c_nof_channels : natural := 2**wpfb.nof_chan;
constant c_block_size : natural := c_nof_channels * wpfb.nof_points / wpfb.wb_factor;
constant c_block_dly : natural := 10;
begin
-- The prefilter, pipelined FFT, pipelined reorder and the wideband separate reorder
-- cause block latency.
-- The parallel FFT has no block latency.
-- The parallel FFT reorder is merely a rewiring and causes no latency.
-- ==> This yields maximim 4 block latency
-- ==> Add one extra block latency to round up
-- Each block in the Wideband FFT also introduces about c_block_dly clock cycles of
-- pipeline latency.
-- ==> This yields maximum ( 5 * c_block_dly ) / c_block_size of block latency
return 4 + 1 + (5 * c_block_dly) / c_block_size;
end func_wpfb_maximum_sop_latency;
end wpfb_pkg;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment