OpenCores
URL https://opencores.org/ocsvn/astron_wpfb/astron_wpfb/trunk

Subversion Repositories astron_wpfb

[/] [astron_wpfb/] [trunk/] [tb_tb_wpfb_unit_wide.vhd] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 danv
--------------------------------------------------------------------------------
2
--
3
-- Copyright (C) 2016
4
-- ASTRON (Netherlands Institute for Radio Astronomy) <http://www.astron.nl/>
5
-- P.O.Box 2, 7990 AA Dwingeloo, The Netherlands
6
--
7
-- This program is free software: you can redistribute it and/or modify
8
-- it under the terms of the GNU General Public License as published by
9
-- the Free Software Foundation, either version 3 of the License, or
10
-- (at your option) any later version.
11
--
12
-- This program is distributed in the hope that it will be useful,
13
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
14
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
-- GNU General Public License for more details.
16
--
17
-- You should have received a copy of the GNU General Public License
18
-- along with this program.  If not, see <http://www.gnu.org/licenses/>.
19
--
20
--------------------------------------------------------------------------------
21
 
22
-- Purpose: Multi-testbench for wpfb_unit_wide using file data
23
-- Description:
24
--   Verify wpfb_unit_wide using and data generated by Matlab scripts:
25
--
26
--   - $RADIOHDL_WORK/applications/apertif/matlab/run_pfb.m
27
--   - $RADIOHDL_WORK/applications/apertif/matlab/run_pfb_complex.m
28
--
29
-- Usage:
30
--   > as 4
31
--   > run -all
32
 
33
LIBRARY IEEE, common_pkg_lib, astron_filter_lib, astron_r2sdf_fft_lib;
34
USE IEEE.std_logic_1164.ALL;
35
USE common_pkg_lib.common_pkg.all;
36
USE astron_filter_lib.fil_pkg.all;
37
USE astron_r2sdf_fft_lib.rTwoSDFPkg.all;
38
USE work.wpfb_pkg.all;
39
 
40
ENTITY tb_tb_wpfb_unit_wide IS
41
END tb_tb_wpfb_unit_wide;
42
 
43
ARCHITECTURE tb OF tb_tb_wpfb_unit_wide IS
44
 
45
  constant c_stage_dat_extra_w         : natural := c_dsp_mult_w + 10;
46
  constant c_nof_blk_per_sync          : natural := 20;
47
 
48
  -- wb 1, two real
49
  CONSTANT c_wb1_two_real_1024        : t_wpfb := (1, 1024, 0, 1,
50
                                                   16, 1, 8, 16, 16,
51
                                                   true, false, true, 16, 16, 1, c_dsp_mult_w, 2, true, 56, 2, c_nof_blk_per_sync,
52
                                                   c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline);
53
  CONSTANT c_wb1_two_real             : t_wpfb := (1, 32, 0, 1,
54
                                                   16, 1, 8, 16, 16,
55
                                                   true, false, true, 16, 16, 1, c_dsp_mult_w, 2, true, 56, 2, c_nof_blk_per_sync,
56
                                                   c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline);
57
 
58
  CONSTANT c_wb1_two_real_4streams    : t_wpfb := (1, 32, 0, 4,
59
                                                   16, 1, 8, 16, 16,
60
                                                   true, false, true, 16, 16, 1, c_dsp_mult_w, 2, true, 56, 2, c_nof_blk_per_sync,
61
                                                   c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline);
62
 
63
  CONSTANT c_wb1_two_real_4channels   : t_wpfb := (1, 32, 2, 1,
64
                                                   16, 1, 8, 16, 16,
65
                                                   true, false, true, 16, 16, 1, c_dsp_mult_w, 2, true, 56, 2, c_nof_blk_per_sync,
66
                                                   c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline);
67
 
68
  -- wb 4, two real
69
  CONSTANT c_wb4_two_real_1024        : t_wpfb := (4, 1024, 0, 1,
70
                                                   16, 1, 8, 16, 16,
71
                                                   true, false, true, 16, 16, 1, c_stage_dat_extra_w, 2, true, 56, 2, c_nof_blk_per_sync,
72
                                                   c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline);
73
  CONSTANT c_wb4_two_real             : t_wpfb := (4, 32, 0, 1,
74
                                                   16, 1, 8, 16, 16,
75
                                                   true, false, true, 16, 16, 1, c_dsp_mult_w, 2, true, 56, 2, c_nof_blk_per_sync,
76
                                                   c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline);
77
 
78
  CONSTANT c_wb4_two_real_4streams     : t_wpfb := (4, 32, 0, 4,
79
                                                   16, 1, 8, 16, 16,
80
                                                   true, false, true, 16, 16, 1, c_dsp_mult_w, 2, true, 56, 2, c_nof_blk_per_sync,
81
                                                   c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline);
82
 
83
  CONSTANT c_wb4_two_real_4channels   : t_wpfb := (4, 32, 2, 1,
84
                                                   16, 1, 8, 16, 16,
85
                                                   true, false, true, 16, 16, 1, c_dsp_mult_w, 2, true, 56, 2, c_nof_blk_per_sync,
86
                                                   c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline);
87
 
88
  -- wb 1, complex reordered
89
  CONSTANT c_wb1_complex_1024         : t_wpfb := (1, 1024, 0, 1,
90
                                                   16, 1, 8, 16, 16,
91
                                                   true, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, c_nof_blk_per_sync,
92
                                                   c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline);
93
  CONSTANT c_wb1_complex_64           : t_wpfb := (1, 64, 0, 1,
94
                                                   16, 1, 8, 16, 16,
95
                                                   true, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, c_nof_blk_per_sync,
96
                                                   c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline);
97
  CONSTANT c_wb1_complex              : t_wpfb := (1, 32, 0, 1,
98
                                                   16, 1, 8, 16, 16,
99
                                                   true, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, c_nof_blk_per_sync,
100
                                                   c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline);
101
  CONSTANT c_wb1_complex_4streams     : t_wpfb := (1, 32, 0, 4,
102
                                                   16, 1, 8, 16, 16,
103
                                                   true, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, c_nof_blk_per_sync,
104
                                                   c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline);
105
 
106
  CONSTANT c_wb1_complex_4channels    : t_wpfb := (1, 32, 2, 1,
107
                                                   16, 1, 8, 16, 16,
108
                                                   true, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, c_nof_blk_per_sync,
109
                                                   c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline);
110
 
111
  -- wb 1, complex fft_shift
112
  CONSTANT c_wb1_complex_fft_shift    : t_wpfb := (1, 32, 0, 1,
113
                                                   16, 1, 8, 16, 16,
114
                                                   true,  true, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, c_nof_blk_per_sync,
115
                                                   c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline);
116
 
117
  -- wb 1, complex without reorder
118
  CONSTANT c_wb1_complex_flipped_1024 : t_wpfb := (1, 1024, 0, 1,
119
                                                   16, 1, 8, 16, 16,
120
                                                   false, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, c_nof_blk_per_sync,
121
                                                   c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline);
122
  CONSTANT c_wb1_complex_flipped_64   : t_wpfb := (1, 64, 0, 1,
123
                                                   16, 1, 8, 16, 16,
124
                                                   false, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, c_nof_blk_per_sync,
125
                                                   c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline);
126
  CONSTANT c_wb1_complex_flipped      : t_wpfb := (1, 32, 0, 1,
127
                                                   16, 1, 8, 16, 16,
128
                                                   false, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, c_nof_blk_per_sync,
129
                                                   c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline);
130
 
131
  -- wb 4, complex reordered
132
  CONSTANT c_wb4_complex_1024         : t_wpfb := (4, 1024, 0, 1,
133
                                                   16, 1, 8, 16, 16,
134
                                                   true, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, c_nof_blk_per_sync,
135
                                                   c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline);
136
  CONSTANT c_wb4_complex_64           : t_wpfb := (4, 64, 0, 1,
137
                                                   16, 1, 8, 16, 16,
138
                                                   true, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, c_nof_blk_per_sync,
139
                                                   c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline);
140
  CONSTANT c_wb4_complex              : t_wpfb := (4, 32, 0, 1,
141
                                                   16, 1, 8, 16, 16,
142
                                                   true, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, c_nof_blk_per_sync,
143
                                                   c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline);
144
  CONSTANT c_wb4_complex_4streams     : t_wpfb := (4, 32, 0, 4,
145
                                                   16, 1, 8, 16, 16,
146
                                                   true, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, c_nof_blk_per_sync,
147
                                                   c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline);
148
 
149
  CONSTANT c_wb4_complex_4channels    : t_wpfb := (4, 32, 2, 1,
150
                                                   16, 1, 8, 16, 16,
151
                                                   true, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, c_nof_blk_per_sync,
152
                                                   c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline);
153
 
154
  -- wb 4, complex fft_shift
155
  CONSTANT c_wb4_complex_fft_shift    : t_wpfb := (4, 32, 0, 1,
156
                                                   16, 1, 8, 16, 16,
157
                                                   true,  true, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, c_nof_blk_per_sync,
158
                                                   c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline);
159
 
160
  -- wb 4, complex without reorder
161
  CONSTANT c_wb4_complex_flipped_1024     : t_wpfb := (4, 1024, 0, 1,
162
                                                       16, 1, 8, 16, 16,
163
                                                       false, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, c_nof_blk_per_sync,
164
                                                       c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline);
165
  CONSTANT c_wb4_complex_flipped_64       : t_wpfb := (4, 64, 0, 1,
166
                                                       16, 1, 8, 16, 16,
167
                                                       false, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, c_nof_blk_per_sync,
168
                                                       c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline);
169
  CONSTANT c_wb4_complex_flipped          : t_wpfb := (4, 32, 0, 1,
170
                                                       16, 1, 8, 16, 16,
171
                                                       false, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, c_nof_blk_per_sync,
172
                                                       c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline);
173
 
174
  CONSTANT c_wb4_complex_flipped_channels : t_wpfb := (4, 32, 2, 1,
175
                                                       16, 1, 8, 16, 16,
176
                                                       false, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, c_nof_blk_per_sync,
177
                                                       c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline);
178
 
179
  CONSTANT c_dm_1                : natural := 1;  -- diff margin (for stage_dat_w >> c_dsp_mult_w)
180
  CONSTANT c_dm_3                : natural := 3;  -- diff margin (for 32 point dm=2 appears sufficient, for 1024 point dm=3 is sufficient)
181
  CONSTANT c_dm_5                : natural := 5;  -- diff margin (for 32 point dm=2 appears sufficient, for 1024 point dm=3 is sufficient)
182
 
183
  CONSTANT c_pre_ab              : string := "data/run_pfb_m_pfir_coeff_fircls1";                 -- original version
184
  CONSTANT c_pre_ab_v2           : string := "data/run_pfb_m_v2_pfir_coeff_fircls1";              -- next version
185
  CONSTANT c_pre_c               : string := "data/run_pfb_complex_m_pfir_coeff_fircls1";
186
 
187
  -- Real input
188
  CONSTANT c_sinusoid_chirp_1024 : string := "data/run_pfb_m_sinusoid_chirp_8b_16taps_1024points_16b_16b.dat";   -- 204800 lines
189
  CONSTANT c_sinusoid_chirp      : string := "data/run_pfb_m_sinusoid_chirp_8b_16taps_32points_16b_16b.dat";     --   6400 lines
190
  CONSTANT c_sinusoid_1024       : string := "data/run_pfb_m_sinusoid_8b_16taps_1024points_16b_16b.dat";         --  51200 lines
191
  CONSTANT c_sinusoid_1024_v2    : string := "data/run_pfb_m_v2_sinusoid_8b_16taps_1024points_16b_16b.dat";      --  51200 lines
192
  CONSTANT c_sinusoid            : string := "data/run_pfb_m_sinusoid_8b_16taps_32points_16b_16b.dat";           --   1600 lines
193
  CONSTANT c_impulse_chirp       : string := "data/run_pfb_m_impulse_chirp_8b_16taps_32points_16b_16b.dat";      --   6400 lines
194
  CONSTANT c_noise_1024          : string := "data/run_pfb_m_noise_8b_16taps_1024points_16b_16b.dat";            --  51200 lines
195
  CONSTANT c_noise               : string := "data/run_pfb_m_noise_8b_16taps_32points_16b_16b.dat";              --   1600 lines
196
  CONSTANT c_dc_agwn             : string := "data/run_pfb_m_dc_agwn_8b_16taps_32points_16b_16b.dat";            --   1600 lines
197
  -- Complex input
198
  CONSTANT c_phasor_chirp_1024   : string := "data/run_pfb_complex_m_phasor_chirp_8b_16taps_1024points_16b_16b.dat";   -- 204800 lines
199
  CONSTANT c_phasor_chirp_128    : string := "data/run_pfb_complex_m_phasor_chirp_8b_16taps_128points_16b_16b.dat";    --  25600 lines
200
  CONSTANT c_phasor_chirp_64     : string := "data/run_pfb_complex_m_phasor_chirp_8b_16taps_64points_16b_16b.dat";     --  12800 lines
201
  CONSTANT c_phasor_chirp        : string := "data/run_pfb_complex_m_phasor_chirp_8b_16taps_32points_16b_16b.dat";     --   6400 lines
202
  CONSTANT c_phasor              : string := "data/run_pfb_complex_m_phasor_8b_16taps_32points_16b_16b.dat";           --   1600 lines
203
  CONSTANT c_noise_complex_1024  : string := "data/run_pfb_complex_m_noise_complex_8b_16taps_1024points_16b_16b.dat";  --  51200 lines
204
  CONSTANT c_noise_complex_128   : string := "data/run_pfb_complex_m_noise_complex_8b_16taps_128points_16b_16b.dat";   --   6400 lines
205
  CONSTANT c_noise_complex_64    : string := "data/run_pfb_complex_m_noise_complex_8b_16taps_64points_16b_16b.dat";    --   3200 lines
206
  CONSTANT c_noise_complex       : string := "data/run_pfb_complex_m_noise_complex_8b_16taps_32points_16b_16b.dat";    --   1600 lines
207
  -- Zero input
208
  CONSTANT c_zero                : string := "UNUSED";  -- zero's data
209
  CONSTANT c_un                  : string := "UNUSED";  -- zero's data
210
 
211
  SIGNAL tb_end : STD_LOGIC := '0';  -- declare tb_end to avoid 'No objects found' error on 'when -label tb_end'
212
 
213
BEGIN
214
 
215
-- -- DUT generics
216
-- g_wpfb : t_wpfb := (4, 32, 0, 1,
217
--                     16, 1, 8, 16, 16,
218
--                     false, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, 800000, 
219
--                     c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline);
220
-- --  type t_wpfb is record  
221
-- --    -- General parameters for the wideband poly phase filter
222
-- --    wb_factor         : natural;        -- = default 4, wideband factor
223
-- --    nof_points        : natural;        -- = 1024, N point FFT (Also the number of subbands for the filter part)
224
-- --    nof_chan          : natural;        -- = default 0, defines the number of channels (=time-multiplexed input signals): nof channels = 2**nof_chan     
225
-- --    nof_wb_streams    : natural;        -- = 1, the number of parallel wideband streams. The filter coefficients are shared on every wb-stream. 
226
-- --    
227
-- --    -- Parameters for the poly phase filter
228
-- --    nof_taps          : natural;        -- = 16, the number of FIR taps per subband
229
-- --    fil_backoff_w     : natural;        -- = 0, number of bits for input backoff to avoid output overflow
230
-- --    fil_in_dat_w      : natural;        -- = 8, number of input bits
231
-- --    fil_out_dat_w     : natural;        -- = 16, number of output bits
232
-- --    coef_dat_w        : natural;        -- = 16, data width of the FIR coefficients
233
-- --                                      
234
-- --    -- Parameters for the FFT         
235
-- --    use_reorder       : boolean;        -- = false for bit-reversed output, true for normal output
236
-- --    use_fft_shift     : boolean;        -- = false for [0, pos, neg] bin frequencies order, true for [neg, 0, pos] bin frequencies order in case of complex input
237
-- --    use_separate      : boolean;        -- = false for complex input, true for two real inputs
238
-- --    fft_in_dat_w      : natural;        -- = 16, number of input bits
239
-- --    fft_out_dat_w     : natural;        -- = 13, number of output bits
240
-- --    fft_out_gain_w    : natural;        -- = 0, output gain factor applied after the last stage output, before requantization to out_dat_w
241
-- --    stage_dat_w       : natural;        -- = 18, number of bits that are used inter-stage
242
-- --    guard_w           : natural;        -- = 2
243
-- --    guard_enable      : boolean;        -- = true
244
-- --    
245
-- --    -- Parameters for the statistics
246
-- --    stat_data_w       : positive;       -- = 56
247
-- --    stat_data_sz      : positive;       -- = 2
248
-- --    nof_blk_per_sync  : natural;        -- = 800000, number of FFT output blocks per sync interval
249
-- -- 
250
-- --    -- Pipeline parameters for both poly phase filter and FFT. These are heritaged from the filter and fft libraries.  
251
-- --    pft_pipeline      : t_fft_pipeline;     -- Pipeline settings for the pipelined FFT
252
-- --    fft_pipeline      : t_fft_pipeline;     -- Pipeline settings for the parallel FFT
253
-- --    fil_pipeline      : t_fil_ppf_pipeline; -- Pipeline settings for the filter units 
254
-- --  end record;
255
-- 
256
-- -- TB generics
257
-- g_diff_margin           : integer := 2;  -- maximum difference between HDL output and expected output (> 0 to allow minor rounding differences)
258
-- 
259
-- -- PFIR coefficients
260
-- g_coefs_file_prefix_ab    : string := "data/run_pfb_m_pfir_coeff_fircls1";
261
-- g_coefs_file_prefix_c     : string := "data/run_pfb_complex_m_pfir_coeff_fircls1";
262
-- 
263
-- -- Two real input data files A and B used when g_fft.use_separate = true
264
-- -- * 1024 points = 512 subbands
265
-- --g_data_file_a           : string := "data/run_pfb_m_sinusoid_chirp_8b_16taps_1024points_16b_16b.dat";
266
-- --g_data_file_a_nof_lines : natural := 204800;
267
-- --g_data_file_b           : string := "data/run_pfb_m_noise_8b_16taps_1024points_16b_16b.dat";
268
-- --g_data_file_b_nof_lines : natural := 51200;
269
-- --g_data_file_b           : string := "UNUSED";
270
-- --g_data_file_b_nof_lines : natural := 0;
271
-- 
272
-- -- * 32 points = 16 subbands
273
-- g_data_file_a           : string := "data/run_pfb_m_sinusoid_chirp_8b_16taps_32points_16b_16b.dat";
274
-- g_data_file_a_nof_lines : natural := 6400;
275
-- --g_data_file_a           : string := "data/run_pfb_m_sinusoid_8b_16taps_32points_16b_16b.dat";
276
-- --g_data_file_a_nof_lines : natural := 160;
277
-- 
278
-- --g_data_file_b           : string := "data/run_pfb_m_impulse_chirp_8b_16taps_32points_16b_16b.dat";
279
-- --g_data_file_b_nof_lines : natural := 6400;
280
-- g_data_file_b           : string := "UNUSED";
281
-- g_data_file_b_nof_lines : natural := 0;
282
-- 
283
-- -- One complex input data file C used when g_fft.use_separate = false
284
-- -- * 64 points = 64 channels
285
-- --g_data_file_c           : string := "data/run_pfb_complex_m_phasor_chirp_8b_16taps_64points_16b_16b.dat";
286
-- --g_data_file_c_nof_lines : natural := 12800;
287
-- --g_data_file_c           : string := "data/run_pfb_complex_m_phasor_8b_16taps_64points_16b_16b.dat";
288
-- --g_data_file_c_nof_lines : natural := 320;
289
-- --g_data_file_c           : string := "data/run_pfb_complex_m_noise_8b_16taps_64points_16b_16b.dat";
290
-- --g_data_file_c_nof_lines : natural := 640;
291
--
292
-- -- * 32 points = 32 channels
293
-- --g_data_file_c           : string := "data/run_pfb_complex_m_phasor_chirp_8b_16taps_32points_16b_16b.dat";
294
-- --g_data_file_c_nof_lines : natural := 6400;
295
-- --g_data_file_c           : string := "data/run_pfb_complex_m_phasor_8b_16taps_32points_16b_16b.dat";
296
-- --g_data_file_c_nof_lines : natural := 1600;
297
-- g_data_file_c           : string := "data/run_pfb_complex_m_noise_complex_8b_16taps_32points_16b_16b.dat";
298
-- g_data_file_c_nof_lines : natural := 1600;
299
-- 
300
-- g_data_file_nof_lines   : natural := 1600;   -- actual number of lines with input data to simulate from the data files, must be <= g_data_file_*_nof_lines
301
-- g_enable_in_val_gaps    : boolean := FALSE   -- when false then in_val flow control active continuously, else with random inactive gaps
302
 
303
  -- Two real input data A and B
304
  -- * 1024 point (as in Apertif subband filterbank)
305
  u_act_wb4_two_real_a0_1024    : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb4_two_real_1024, c_dm_1, c_pre_ab_v2, c_pre_c, c_sinusoid_1024_v2, 51200, c_zero,   51200, c_un, 0, 51200, FALSE);
306
  u_act_wb4_two_real_ab_1024    : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb4_two_real_1024, c_dm_1, c_pre_ab, c_pre_c, c_sinusoid_chirp_1024, 204800, c_noise_1024,   51200, c_un, 0, 51200, FALSE);
307
  u_act_wb1_two_real_ab_1024    : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb1_two_real_1024, c_dm_5, c_pre_ab, c_pre_c, c_sinusoid_chirp_1024, 204800, c_noise_1024,   51200, c_un, 0, 51200, FALSE);
308
  u_act_wb1_two_real_chirp_1024 : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb1_two_real_1024, c_dm_5, c_pre_ab, c_pre_c, c_sinusoid_chirp_1024, 204800, c_zero,         51200, c_un, 0, 51200, FALSE);
309
 
310
  -- * 32 point
311
  u_act_wb1_two_real_chirp          : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb1_two_real,           c_dm_5, c_pre_ab, c_pre_c, c_sinusoid_chirp,        6400, c_impulse_chirp, 6400, c_un, 0,  6400, FALSE);
312
  u_act_wb1_two_real_a0             : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb1_two_real,           c_dm_5, c_pre_ab, c_pre_c, c_zero,                  6400, c_impulse_chirp, 6400, c_un, 0,  6400, FALSE);
313
  u_act_wb1_two_real_b0             : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb1_two_real,           c_dm_5, c_pre_ab, c_pre_c, c_sinusoid_chirp,        6400, c_zero,          6400, c_un, 0,  6400, FALSE);
314
  u_rnd_wb4_two_real_noise          : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb4_two_real,           c_dm_5, c_pre_ab, c_pre_c, c_noise,                 1600, c_dc_agwn,       1600, c_un, 0,  1600, TRUE);
315
  u_rnd_wb4_two_real_noise_channels : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb4_two_real_4channels, c_dm_5, c_pre_ab, c_pre_c, c_noise,                 1600, c_dc_agwn,       1600, c_un, 0,  1600, TRUE);
316
  u_rnd_wb4_two_real_noise_streams  : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb4_two_real_4streams,  c_dm_5, c_pre_ab, c_pre_c, c_noise,                 1600, c_dc_agwn,       1600, c_un, 0,  1600, TRUE);
317
  u_rnd_wb1_two_real_noise          : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb1_two_real,           c_dm_5, c_pre_ab, c_pre_c, c_noise,                 1600, c_dc_agwn,       1600, c_un, 0,  1600, TRUE);
318
  u_rnd_wb1_two_real_noise_channels : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb1_two_real_4channels, c_dm_5, c_pre_ab, c_pre_c, c_noise,                 1600, c_dc_agwn,       1600, c_un, 0,  1600, TRUE);
319
  u_rnd_wb1_two_real_noise_streams  : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb1_two_real_4streams,  c_dm_5, c_pre_ab, c_pre_c, c_noise,                 1600, c_dc_agwn,       1600, c_un, 0,  1600, TRUE);
320
 
321
  -- Complex input data
322
  -- * 1024 point
323
  u_act_wb1_complex_chirp_1024  : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb1_complex_1024,  c_dm_3, c_pre_ab, c_pre_c, c_un, 0, c_un, 0, c_phasor_chirp_1024,  204800, 51200, FALSE);
324
  u_act_wb4_complex_chirp_1024  : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb4_complex_1024,  c_dm_3, c_pre_ab, c_pre_c, c_un, 0, c_un, 0, c_phasor_chirp_1024,  204800, 51200, FALSE);
325
 
326
  -- * 64 point (as in Apertif channel filterbank)
327
  u_act_wb1_complex_chirp_64         : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb1_complex_64,         c_dm_3, c_pre_ab, c_pre_c, c_un, 0, c_un, 0, c_phasor_chirp_64,  12800, 12800, FALSE);
328
  u_act_wb4_complex_chirp_64         : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb4_complex_64,         c_dm_3, c_pre_ab, c_pre_c, c_un, 0, c_un, 0, c_phasor_chirp_64,  12800, 12800, FALSE);
329
  u_act_wb1_complex_flipped_noise_64 : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb1_complex_flipped_64, c_dm_3, c_pre_ab, c_pre_c, c_un, 0, c_un, 0, c_noise_complex_64,  3200,  3200, FALSE);
330
  u_act_wb4_complex_flipped_noise_64 : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb4_complex_flipped_64, c_dm_3, c_pre_ab, c_pre_c, c_un, 0, c_un, 0, c_noise_complex_64,  3200,  3200, FALSE);
331
 
332
  -- * 32 point
333
  u_act_wb4_complex_chirp            : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb4_complex,                  c_dm_3, c_pre_ab, c_pre_c, c_un, 0, c_un, 0, c_phasor_chirp,  6400, 6400, FALSE);
334
  u_act_wb4_complex_flipped          : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb4_complex_flipped,          c_dm_3, c_pre_ab, c_pre_c, c_un, 0, c_un, 0, c_phasor_chirp,  6400, 6400, FALSE);
335
  u_rnd_wb4_complex_flipped_channels : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb4_complex_flipped_channels, c_dm_3, c_pre_ab, c_pre_c, c_un, 0, c_un, 0, c_phasor_chirp,  6400, 6400, FALSE);
336
  u_rnd_wb1_complex_phasor           : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb1_complex,                  c_dm_3, c_pre_ab, c_pre_c, c_un, 0, c_un, 0, c_phasor,        1600, 1600, TRUE);
337
  u_rnd_wb4_complex_phasor           : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb4_complex,                  c_dm_3, c_pre_ab, c_pre_c, c_un, 0, c_un, 0, c_phasor,        1600, 1600, TRUE);
338
  u_rnd_wb1_complex_fft_shift_phasor : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb1_complex_fft_shift,        c_dm_3, c_pre_ab, c_pre_c, c_un, 0, c_un, 0, c_phasor,        1600, 1600, TRUE);
339
  u_rnd_wb4_complex_fft_shift_phasor : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb4_complex_fft_shift,        c_dm_3, c_pre_ab, c_pre_c, c_un, 0, c_un, 0, c_phasor,        1600, 1600, TRUE);
340
  u_rnd_wb1_complex_noise            : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb1_complex,                  c_dm_3, c_pre_ab, c_pre_c, c_un, 0, c_un, 0, c_noise_complex, 1600, 1600, TRUE);
341
  u_rnd_wb1_complex_noise_channels   : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb1_complex_4channels,        c_dm_3, c_pre_ab, c_pre_c, c_un, 0, c_un, 0, c_noise_complex, 1600, 1600, TRUE);
342
  u_rnd_wb1_complex_noise_streams    : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb1_complex_4streams,         c_dm_3, c_pre_ab, c_pre_c, c_un, 0, c_un, 0, c_noise_complex, 1600, 1600, TRUE);
343
  u_rnd_wb4_complex_noise            : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb4_complex,                  c_dm_3, c_pre_ab, c_pre_c, c_un, 0, c_un, 0, c_noise_complex, 1600, 1600, TRUE);
344
  u_rnd_wb4_complex_noise_channels   : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb4_complex_4channels,        c_dm_3, c_pre_ab, c_pre_c, c_un, 0, c_un, 0, c_noise_complex, 1600, 1600, TRUE);
345
  u_rnd_wb4_complex_noise_streams    : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb4_complex_4streams,         c_dm_3, c_pre_ab, c_pre_c, c_un, 0, c_un, 0, c_noise_complex, 1600, 1600, TRUE);
346
END tb;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.