diff --git a/libraries/dsp/wpfb/src/vhdl/wpfb_unit_dev.vhd b/libraries/dsp/wpfb/src/vhdl/wpfb_unit_dev.vhd index 4115932635b7eaf1bc6e3c358be495bbcacd9174..6e2d8b4d86fc6a5d3be1d461e44e2b726bc23e8f 100644 --- a/libraries/dsp/wpfb/src/vhdl/wpfb_unit_dev.vhd +++ b/libraries/dsp/wpfb/src/vhdl/wpfb_unit_dev.vhd @@ -34,11 +34,10 @@ -- The wpfb unit can handle a wideband factor > 1 (g_wpfb.wb_factor) or -- a narrowband factor > 1 (g_wpfb.nof_chan). Both factors can NOT be -- used (> 1) at the same time. --- . For wb_factor = 1 the wpfb_unit uses fft_r2_pipe and supports nof_chan >= 0 +-- . For wb_factor = 1 the wpfb_unit uses fft_r2_pipe -- . For wb_factor > 1 the wpfb_unit uses fft_r2_wide --- . For wb_factor = 1 the wpfb_unit supports nof_chan >= 0 --- . For wb_factor > 1 the wpfb_unit only supports nof_chan = 0, because the --- concept of channels is void when wb_factor > 0. +-- . For wb_factor >= 1 the wpfb_unit supports nof_chan >= 0, even though the +-- concept of channels is typically not useful when wb_factor > 1. -- . The wpfb_unit does support use_reorder. -- . The wpfb_unit does support use_separate. -- . The wpfb_unit does support input flow control with invalid gaps in the @@ -156,8 +155,20 @@ -- 2 0 2 8 8 9 9 10 10 11 11 - input A via in_sosi_arr().re -- 1 0 1 4 4 5 5 6 6 7 7 - input B via in_sosi_arr().im -- 0 0 0 0 0 1 1 2 2 3 3 --- ^ ^ ^ ^ ^ ^ ^ ^ --- A B A B A B A B +-- input A B A B A B A B +-- +-- when nof_chan=1 then: +-- I S P bin frequency order +-- 7 1 3 12 12 13 13 14 14 15 15 12 12 13 13 14 14 15 15 +-- 6 1 2 8 8 9 9 10 10 11 11 8 8 9 9 10 10 11 11 +-- 5 1 1 4 4 5 5 6 6 7 7 4 4 5 5 6 6 7 7 +-- 4 1 0 0 0 1 1 2 2 3 3 0 0 1 1 2 2 3 3 +-- 3 0 3 12 12 13 13 14 14 15 15 12 12 13 13 14 14 15 15 +-- 2 0 2 8 8 9 9 10 10 11 11 8 8 9 9 10 10 11 11 +-- 1 0 1 4 4 5 5 6 6 7 7 4 4 5 5 6 6 7 7 +-- 0 0 0 0 0 1 1 2 2 3 3 0 0 1 1 2 2 3 3 +-- input A B A B A B A B A B A B A B A B +-- channel 0....................0 1....................1 -- -- 2a) Complex input with fft_shift: -- @@ -172,6 +183,18 @@ -- 1 0 1 8 9 10 11 12 13 14 15 -- 0 0 0 0 1 2 3 4 5 6 7 -- +-- when nof_chan=1 then: +-- I S P bin frequency order +-- 7 1 3 24 25 26 27 28 29 30 31 24 25 26 27 28 29 30 31 +-- 6 1 2 16 17 18 19 20 21 22 23 16 17 18 19 20 21 22 23 +-- 5 1 1 8 9 10 11 12 13 14 15 8 9 10 11 12 13 14 15 +-- 4 1 0 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 +-- 3 0 3 24 25 26 27 28 29 30 31 24 25 26 27 28 29 30 31 +-- 2 0 2 16 17 18 19 20 21 22 23 16 17 18 19 20 21 22 23 +-- 1 0 1 8 9 10 11 12 13 14 15 8 9 10 11 12 13 14 15 +-- 0 0 0 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 +-- channel 0....................0 1....................1 +-- -- 2b) Complex input with reorder, but no fft_shift: -- -- out_sosi_arr: @@ -185,6 +208,18 @@ -- 1 0 1 24 25 26 27 28 29 30 31 -- 0 0 0 16 17 18 19 20 21 22 23 -- +-- when nof_chan=1 then: +-- I S P bin frequency order +-- 7 1 3 8 9 10 11 12 13 14 15 8 9 10 11 12 13 14 15 +-- 6 1 2 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 +-- 5 1 1 24 25 26 27 28 29 30 31 24 25 26 27 28 29 30 31 +-- 4 1 0 16 17 18 19 20 21 22 23 16 17 18 19 20 21 22 23 +-- 3 0 3 8 9 10 11 12 13 14 15 8 9 10 11 12 13 14 15 +-- 2 0 2 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 +-- 1 0 1 24 25 26 27 28 29 30 31 24 25 26 27 28 29 30 31 +-- 0 0 0 16 17 18 19 20 21 22 23 16 17 18 19 20 21 22 23 +-- channel 0....................0 1....................1 +-- -- 2c) Complex input without reorder (so bit flipped): -- -- out_sosi_arr: @@ -198,7 +233,19 @@ -- 1 0 1 0 4 2 6 1 5 3 7 -- 0 0 0 16 20 18 22 17 21 19 23 -- --- II) Narrowband wb_factor = 1, nof_chan = 0 +-- when nof_chan=1 then: +-- I S P bin frequency order +-- 7 1 3 8 8 12 12 10 10 14 14 9 9 13 13 11 11 15 15 +-- 6 1 2 24 24 28 28 26 26 30 30 25 25 29 29 27 27 31 31 +-- 5 1 1 0 0 4 4 2 2 6 6 1 1 5 5 3 3 7 7 +-- 4 1 0 16 16 20 20 18 18 22 22 17 17 21 21 19 19 23 23 +-- 3 0 3 8 8 12 12 10 10 14 14 9 9 13 13 11 11 15 15 +-- 2 0 2 24 24 28 28 26 26 30 30 25 25 29 29 27 27 31 31 +-- 1 0 1 0 0 4 4 2 2 6 6 1 1 5 5 3 3 7 7 +-- 0 0 0 16 16 20 20 18 18 22 22 17 17 21 21 19 19 23 23 +-- channel 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 +-- +-- II) Narrowband wb_factor = 1 -- -- 1) Two real inputs: -- @@ -216,8 +263,14 @@ -- I S P bin frequency order -- 1 1 0 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 -- 0 0 0 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 --- ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ --- A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B +-- input A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B +-- +-- when nof_chan=1 then: +-- I S P bin frequency order +-- 1 1 0 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 +-- 0 0 0 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 +-- input A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B +-- channel: 0............................................................................................0 1............................................................................................1 -- -- 2) Complex input -- . nof_streams = 2 @@ -234,6 +287,12 @@ -- 1 1 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 -- 0 0 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 -- +-- when nof_chan=1 then: +-- I S P bin frequency order +-- 1 1 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 +-- 0 0 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 +-- channel: 0............................................................................................0 1............................................................................................1 +-- -- 2b) Complex input with reorder but no fft_shift (so use_reorder = true, use_fft_shift = false) -- -- out_sosi_arr: @@ -241,6 +300,12 @@ -- 1 1 0 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 -- 0 0 0 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 -- +-- when nof_chan=1 then: +-- I S P bin frequency order +-- 1 1 0 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 +-- 0 0 0 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 +-- channel: 0............................................................................................0 1............................................................................................1 +-- -- 2c) Complex input without reorder (so use_reorder = false, use_fft_shift = false) -- -- out_sosi_arr: @@ -248,6 +313,12 @@ -- 1 1 0 16 0 24 8 20 4 28 12 18 2 26 10 22 6 30 14 17 1 25 9 21 5 29 13 19 3 27 11 23 7 31 15 -- 0 0 0 16 0 24 8 20 4 28 12 18 2 26 10 22 6 30 14 17 1 25 9 21 5 29 13 19 3 27 11 23 7 31 15 -- +-- when nof_chan=1 then: +-- I S P bin frequency order +-- 1 1 0 16 16 0 0 24 24 8 8 20 20 4 4 28 28 12 12 18 18 2 2 26 26 10 10 22 22 6 6 30 30 14 14 17 17 1 1 25 25 9 9 21 21 5 5 29 29 13 13 19 19 3 3 27 27 11 11 23 23 7 7 31 31 15 15 +-- 0 0 0 16 16 0 0 24 24 8 8 20 20 4 4 28 28 12 12 18 18 2 2 26 26 10 10 22 22 6 6 30 30 14 14 17 17 1 1 25 25 9 9 21 21 5 5 29 29 13 13 19 19 3 3 27 27 11 11 23 23 7 7 31 31 15 15 +-- channel: 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 +-- -- Remarks: -- . The unit can handle only one sync at a time. Therfor the -- sync interval should be larger than the total pipeline