diff --git a/libraries/dsp/wpfb/tb/vhdl/tb_tb_wpfb_unit_wide.vhd b/libraries/dsp/wpfb/tb/vhdl/tb_tb_wpfb_unit_wide.vhd index d4608ba3c5298ca3c9fbea768494e185d425e6bb..cd1feafb28d64a9f66abf893bad3daf4c2686add 100644 --- a/libraries/dsp/wpfb/tb/vhdl/tb_tb_wpfb_unit_wide.vhd +++ b/libraries/dsp/wpfb/tb/vhdl/tb_tb_wpfb_unit_wide.vhd @@ -45,78 +45,98 @@ ARCHITECTURE tb OF tb_tb_wpfb_unit_wide IS constant c_stage_dat_extra_w : natural := c_dsp_mult_w + 10; -- wb 1, two real - CONSTANT c_wb_1_two_real_1024 : t_wpfb := (1, 1024, 0, 1, - 16, 1, 8, 16, 16, - true, false, true, 16, 16, 1, c_dsp_mult_w, 2, true, 56, 2, - c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline); - CONSTANT c_wb_1_two_real : t_wpfb := (1, 32, 0, 1, - 16, 1, 8, 16, 16, - true, false, true, 16, 16, 1, c_dsp_mult_w, 2, true, 56, 2, - c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline); + CONSTANT c_wb1_two_real_1024 : t_wpfb := (1, 1024, 0, 1, + 16, 1, 8, 16, 16, + true, false, true, 16, 16, 1, c_dsp_mult_w, 2, true, 56, 2, + c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline); + CONSTANT c_wb1_two_real : t_wpfb := (1, 32, 0, 1, + 16, 1, 8, 16, 16, + true, false, true, 16, 16, 1, c_dsp_mult_w, 2, true, 56, 2, + c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline); + CONSTANT c_wb1_two_real_4streams : t_wpfb := (1, 32, 0, 4, + 16, 1, 8, 16, 16, + true, false, true, 16, 16, 1, c_dsp_mult_w, 2, true, 56, 2, + c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline); + -- wb 4, two real - CONSTANT c_wb_4_two_real_1024 : t_wpfb := (4, 1024, 0, 1, - 16, 1, 8, 16, 16, - true, false, true, 16, 16, 1, c_stage_dat_extra_w, 2, true, 56, 2, - c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline); - CONSTANT c_wb_4_two_real : t_wpfb := (4, 32, 0, 1, - 16, 1, 8, 16, 16, - true, false, true, 16, 16, 1, c_dsp_mult_w, 2, true, 56, 2, - c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline); + CONSTANT c_wb4_two_real_1024 : t_wpfb := (4, 1024, 0, 1, + 16, 1, 8, 16, 16, + true, false, true, 16, 16, 1, c_stage_dat_extra_w, 2, true, 56, 2, + c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline); + CONSTANT c_wb4_two_real : t_wpfb := (4, 32, 0, 1, + 16, 1, 8, 16, 16, + true, false, true, 16, 16, 1, c_dsp_mult_w, 2, true, 56, 2, + c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline); + + CONSTANT c_wb4_two_real_4streams : t_wpfb := (4, 32, 0, 4, + 16, 1, 8, 16, 16, + true, false, true, 16, 16, 1, c_dsp_mult_w, 2, true, 56, 2, + c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline); -- wb 1, complex reordered - CONSTANT c_wb_1_complex_1024 : t_wpfb := (1, 1024, 0, 1, - 16, 1, 8, 16, 16, - true, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, - c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline); - CONSTANT c_wb_1_complex_64 : t_wpfb := (1, 64, 0, 1, - 16, 1, 8, 16, 16, - true, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, - c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline); - CONSTANT c_wb_1_complex : t_wpfb := (1, 32, 0, 1, - 16, 1, 8, 16, 16, - true, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, - c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline); + CONSTANT c_wb1_complex_1024 : t_wpfb := (1, 1024, 0, 1, + 16, 1, 8, 16, 16, + true, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, + c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline); + CONSTANT c_wb1_complex_64 : t_wpfb := (1, 64, 0, 1, + 16, 1, 8, 16, 16, + true, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, + c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline); + CONSTANT c_wb1_complex : t_wpfb := (1, 32, 0, 1, + 16, 1, 8, 16, 16, + true, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, + c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline); + CONSTANT c_wb1_complex_4streams : t_wpfb := (1, 32, 0, 4, + 16, 1, 8, 16, 16, + true, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, + c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline); + -- wb 1, complex without reorder - CONSTANT c_wb_1_complex_flipped_1024 : t_wpfb := (1, 1024, 0, 1, - 16, 1, 8, 16, 16, - false, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, - c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline); - CONSTANT c_wb_1_complex_flipped_64 : t_wpfb := (1, 64, 0, 1, - 16, 1, 8, 16, 16, - false, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, - c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline); - CONSTANT c_wb_1_complex_flipped : t_wpfb := (1, 32, 0, 1, - 16, 1, 8, 16, 16, - false, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, - c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline); + CONSTANT c_wb1_complex_flipped_1024 : t_wpfb := (1, 1024, 0, 1, + 16, 1, 8, 16, 16, + false, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, + c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline); + CONSTANT c_wb1_complex_flipped_64 : t_wpfb := (1, 64, 0, 1, + 16, 1, 8, 16, 16, + false, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, + c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline); + CONSTANT c_wb1_complex_flipped : t_wpfb := (1, 32, 0, 1, + 16, 1, 8, 16, 16, + false, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, + c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline); -- wb 4, complex reordered - CONSTANT c_wb_4_complex_1024 : t_wpfb := (4, 1024, 0, 1, - 16, 1, 8, 16, 16, - true, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, - c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline); - CONSTANT c_wb_4_complex_64 : t_wpfb := (4, 64, 0, 1, - 16, 1, 8, 16, 16, - true, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, - c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline); - CONSTANT c_wb_4_complex : t_wpfb := (4, 32, 0, 1, - 16, 1, 8, 16, 16, - true, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, - c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline); + CONSTANT c_wb4_complex_1024 : t_wpfb := (4, 1024, 0, 1, + 16, 1, 8, 16, 16, + true, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, + c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline); + CONSTANT c_wb4_complex_64 : t_wpfb := (4, 64, 0, 1, + 16, 1, 8, 16, 16, + true, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, + c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline); + CONSTANT c_wb4_complex : t_wpfb := (4, 32, 0, 1, + 16, 1, 8, 16, 16, + true, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, + c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline); + CONSTANT c_wb4_complex_4streams : t_wpfb := (4, 32, 0, 4, + 16, 1, 8, 16, 16, + true, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, + c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline); + -- wb 4, complex without reorder - CONSTANT c_wb_4_complex_flipped_1024 : t_wpfb := (4, 1024, 0, 1, - 16, 1, 8, 16, 16, - false, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, - c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline); - CONSTANT c_wb_4_complex_flipped_64 : t_wpfb := (4, 64, 0, 1, - 16, 1, 8, 16, 16, - false, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, - c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline); - CONSTANT c_wb_4_complex_flipped : t_wpfb := (4, 32, 0, 1, - 16, 1, 8, 16, 16, - false, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, - c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline); + CONSTANT c_wb4_complex_flipped_1024 : t_wpfb := (4, 1024, 0, 1, + 16, 1, 8, 16, 16, + false, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, + c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline); + CONSTANT c_wb4_complex_flipped_64 : t_wpfb := (4, 64, 0, 1, + 16, 1, 8, 16, 16, + false, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, + c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline); + CONSTANT c_wb4_complex_flipped : t_wpfb := (4, 32, 0, 1, + 16, 1, 8, 16, 16, + false, false, false, 16, 16, 0, c_dsp_mult_w, 2, true, 56, 2, + c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline); CONSTANT c_dm_1 : natural := 1; -- diff margin (for stage_dat_w >> c_dsp_mult_w) CONSTANT c_dm_3 : natural := 3; -- diff margin (for 32 point dm=2 appears sufficient, for 1024 point dm=3 is sufficient) @@ -239,33 +259,37 @@ BEGIN -- Two real input data A and B -- * 1024 point (as in Apertif subband filterbank) - u_act_wb_4_two_real_ab_1024 : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb_4_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); - u_act_wb_1_two_real_ab_1024 : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb_1_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); - u_act_wb_1_two_real_chirp_1024 : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb_1_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); + 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); + 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); + 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); -- * 32 point - u_act_wb_1_two_real_chirp : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb_1_two_real, c_dm_5, c_pre_ab, c_pre_c, c_sinusoid_chirp, 6400, c_impulse_chirp, 6400, c_un, 0, 6400, FALSE); - u_act_wb_1_two_real_a0 : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb_1_two_real, c_dm_5, c_pre_ab, c_pre_c, c_zero, 6400, c_impulse_chirp, 6400, c_un, 0, 6400, FALSE); - u_act_wb_1_two_real_b0 : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb_1_two_real, c_dm_5, c_pre_ab, c_pre_c, c_sinusoid_chirp, 6400, c_zero, 6400, c_un, 0, 6400, FALSE); - u_rnd_wb_4_two_real_noise : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb_4_two_real, c_dm_5, c_pre_ab, c_pre_c, c_noise, 1600, c_dc_agwn, 1600, c_un, 0, 1600, TRUE); - u_rnd_wb_1_two_real_noise : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb_1_two_real, c_dm_5, c_pre_ab, c_pre_c, c_noise, 1600, c_dc_agwn, 1600, c_un, 0, 1600, TRUE); + 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); + 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); + 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); + 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); + 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); + 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); + 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); -- Complex input data -- * 1024 point - u_act_wb_1_complex_chirp_1024 : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb_1_complex_1024, c_dm_3, c_pre_ab, c_pre_c, c_un, 0, c_un, 0, c_phasor_chirp_1024, 204800, 51200, FALSE); - u_act_wb_4_complex_chirp_1024 : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb_4_complex_1024, c_dm_3, c_pre_ab, c_pre_c, c_un, 0, c_un, 0, c_phasor_chirp_1024, 204800, 51200, FALSE); + 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); + 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); -- * 64 point (as in Apertif channel filterbank) - u_act_wb_1_complex_chirp_64 : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb_1_complex_64, c_dm_3, c_pre_ab, c_pre_c, c_un, 0, c_un, 0, c_phasor_chirp_64, 12800, 12800, FALSE); - u_act_wb_4_complex_chirp_64 : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb_4_complex_64, c_dm_3, c_pre_ab, c_pre_c, c_un, 0, c_un, 0, c_phasor_chirp_64, 12800, 12800, FALSE); - u_act_wb_1_complex_flipped_noise_64 : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb_1_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); - u_act_wb_4_complex_flipped_noise_64 : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb_4_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); + 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); + 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); + 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); + 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); -- * 32 point - u_act_wb_4_complex_chirp : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb_4_complex, c_dm_3, c_pre_ab, c_pre_c, c_un, 0, c_un, 0, c_phasor_chirp, 6400, 6400, FALSE); - u_act_wb_4_complex_flipped : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb_4_complex_flipped, c_dm_3, c_pre_ab, c_pre_c, c_un, 0, c_un, 0, c_phasor_chirp, 6400, 6400, FALSE); - u_rnd_wb_1_complex_phasor : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb_1_complex, c_dm_3, c_pre_ab, c_pre_c, c_un, 0, c_un, 0, c_phasor, 1600, 1600, TRUE); - u_rnd_wb_4_complex_phasor : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb_4_complex, c_dm_3, c_pre_ab, c_pre_c, c_un, 0, c_un, 0, c_phasor, 1600, 1600, TRUE); - u_rnd_wb_1_complex_noise : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb_1_complex, c_dm_3, c_pre_ab, c_pre_c, c_un, 0, c_un, 0, c_noise_complex, 1600, 1600, TRUE); - u_rnd_wb_4_complex_noise : ENTITY work.tb_wpfb_unit_wide GENERIC MAP (c_wb_4_complex, c_dm_3, c_pre_ab, c_pre_c, c_un, 0, c_un, 0, c_noise_complex, 1600, 1600, TRUE); + 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); + 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); + 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); + 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); + 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); + 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); + 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); + 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); END tb;