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

Renamed signals to make it easier to track them.

parent 006f2feb
Branches
No related tags found
1 merge request!311Correct beamlet output indexing in tr_10GbE_src_out.data. Verify exact beamlet...
...@@ -107,7 +107,10 @@ ARCHITECTURE str OF node_sdp_oversampled_filterbank IS ...@@ -107,7 +107,10 @@ ARCHITECTURE str OF node_sdp_oversampled_filterbank IS
NATURAL'IMAGE(c_sdp_W_sub_weight) & "b" & NATURAL'IMAGE(c_sdp_W_sub_weight) & "b" &
NATURAL'IMAGE(c_sdp_W_sub_weight_fraction) & "f_unit"; NATURAL'IMAGE(c_sdp_W_sub_weight_fraction) & "f_unit";
-- Use quantized subbands -- Use quantized subbands, so c_subband_raw_dat_w = 18b.
-- . Maybe later use raw subbands like in node_sdp_filterbank, but for now
-- appling subband weights and bf weights at c_sdp_W_subband = 18b subbands
-- is acceptable.
CONSTANT c_subband_raw_dat_w : NATURAL := c_sdp_W_subband; CONSTANT c_subband_raw_dat_w : NATURAL := c_sdp_W_subband;
CONSTANT c_subband_raw_fraction_w : NATURAL := 0; CONSTANT c_subband_raw_fraction_w : NATURAL := 0;
...@@ -118,11 +121,11 @@ ARCHITECTURE str OF node_sdp_oversampled_filterbank IS ...@@ -118,11 +121,11 @@ ARCHITECTURE str OF node_sdp_oversampled_filterbank IS
CONSTANT c_complex_pfb_pipeline : NATURAL := 2; CONSTANT c_complex_pfb_pipeline : NATURAL := 2;
-- Use WG as local oscillator, buf contains 16b sin and 16b cos -- Use WG as local oscillator, buf contains 16b sin and 16b cos
-- . c_sdp_W_local_oscillator = c_halfword_w = 16b -- . c_sdp_W_local_oscillator = 16b
-- . c_sdp_W_local_oscillator_fraction = 16b - 1 sign bit = 15b -- . c_sdp_W_local_oscillator_fraction = 16b - 1 sign bit = 15b
CONSTANT c_buf : t_c_mem := (latency => 1, CONSTANT c_buf : t_c_mem := (latency => 1,
adr_w => ceil_log2(2 * c_sdp_N_fft), adr_w => ceil_log2(2 * c_sdp_N_fft),
dat_w => c_nof_complex * c_halfword_w, dat_w => c_nof_complex * c_sdp_W_local_oscillator,
nof_dat => c_sdp_R_os * c_sdp_N_fft, nof_dat => c_sdp_R_os * c_sdp_N_fft,
init_sl => '0'); init_sl => '0');
...@@ -171,18 +174,22 @@ ARCHITECTURE str OF node_sdp_oversampled_filterbank IS ...@@ -171,18 +174,22 @@ ARCHITECTURE str OF node_sdp_oversampled_filterbank IS
SIGNAL wpfb_unit_out_sosi_arr_piped : t_dp_sosi_arr(c_sdp_P_pfb-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst); SIGNAL wpfb_unit_out_sosi_arr_piped : t_dp_sosi_arr(c_sdp_P_pfb-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst);
-- Mixer to shift f_sub/2 -- Mixer to shift f_sub/2
SIGNAL complex_mult_src_out_arr : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst); SIGNAL mixer_complex_mult_src_out_arr : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst);
SIGNAL requantize_src_out_arr : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst); SIGNAL mixer_complex_requantize_src_out_arr : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst);
-- Complex input FFT (from LO mixer)
SIGNAL wpfb_unit_complex_in_sosi_arr : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst); SIGNAL wpfb_unit_complex_in_sosi_arr : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst);
SIGNAL wpfb_unit_complex_fil_sosi_arr : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst); SIGNAL wpfb_unit_complex_fil_sosi_arr : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst);
SIGNAL wpfb_unit_complex_out_sosi_arr : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst); SIGNAL wpfb_unit_complex_out_sosi_arr : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst);
SIGNAL wpfb_unit_out_resized_sosi_arr : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst);
SIGNAL wpfb_fifo_sosi_arr : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst); -- Remove negative frequencies
SIGNAL wpfb_fifo_siso_arr : t_dp_siso_arr(c_sdp_S_pn-1 DOWNTO 0) := (OTHERS => c_dp_siso_rst); SIGNAL wpfb_complex_out_resized_sosi_arr : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst);
SIGNAL wpfb_resized_sosi_2arr : t_dp_sosi_2arr_2(c_sdp_P_pfb-1 DOWNTO 0) := (OTHERS => (OTHERS => c_dp_sosi_rst));
SIGNAL wpfb_resized_siso_2arr : t_dp_siso_2arr_2(c_sdp_P_pfb-1 DOWNTO 0) := (OTHERS => (OTHERS => c_dp_siso_rst)); -- Interleave positive frequencies per factor Q_fft = 2, like with output of real input FFT
SIGNAL wpfb_complex_out_fifo_sosi_arr : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst);
SIGNAL wpfb_complex_out_fifo_siso_arr : t_dp_siso_arr(c_sdp_S_pn-1 DOWNTO 0) := (OTHERS => c_dp_siso_rst);
SIGNAL wpfb_complex_out_resized_sosi_2arr : t_dp_sosi_2arr_2(c_sdp_P_pfb-1 DOWNTO 0) := (OTHERS => (OTHERS => c_dp_sosi_rst));
SIGNAL wpfb_complex_out_resized_siso_2arr : t_dp_siso_2arr_2(c_sdp_P_pfb-1 DOWNTO 0) := (OTHERS => (OTHERS => c_dp_siso_rst));
SIGNAL subband_equalizer_in_sosi_arr : t_dp_sosi_arr(c_sdp_R_os * c_sdp_P_pfb-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst); SIGNAL subband_equalizer_in_sosi_arr : t_dp_sosi_arr(c_sdp_R_os * c_sdp_P_pfb-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst);
SIGNAL subband_equalizer_out_sosi_arr : t_dp_sosi_arr(c_sdp_R_os * c_sdp_P_pfb-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst); SIGNAL subband_equalizer_out_sosi_arr : t_dp_sosi_arr(c_sdp_R_os * c_sdp_P_pfb-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst);
...@@ -342,23 +349,23 @@ BEGIN ...@@ -342,23 +349,23 @@ BEGIN
gen_complex_mult: FOR I IN 0 TO c_sdp_S_pn-1 GENERATE gen_complex_mult: FOR I IN 0 TO c_sdp_S_pn-1 GENERATE
u_common_complex_mult : ENTITY common_mult_lib.common_complex_mult u_common_complex_mult : ENTITY common_mult_lib.common_complex_mult
GENERIC MAP ( GENERIC MAP (
g_in_a_w => c_halfword_w, -- = c_sdp_W_local_oscillator = 16 g_in_a_w => c_sdp_W_local_oscillator, -- = 16
g_in_b_w => c_sdp_W_adc, g_in_b_w => c_sdp_W_adc, -- = 14
g_out_p_w => c_halfword_w + c_sdp_W_adc, g_out_p_w => c_sdp_W_local_oscillator + c_sdp_W_adc, -- = 16 + 14 = 30
g_conjugate_b => FALSE g_conjugate_b => FALSE
) )
PORT MAP ( PORT MAP (
clk => dp_clk, clk => dp_clk,
clken => '1', clken => '1',
rst => dp_rst, rst => dp_rst,
in_ar => wg_out_dat(c_halfword_w-1 DOWNTO 0), in_ar => wg_out_dat(c_sdp_W_local_oscillator-1 DOWNTO 0),
in_ai => wg_out_dat(2 * c_halfword_w-1 DOWNTO c_halfword_w), in_ai => wg_out_dat(2 * c_sdp_W_local_oscillator-1 DOWNTO c_sdp_W_local_oscillator),
in_br => si_sosi_arr(I).data(c_sdp_W_adc-1 DOWNTO 0), in_br => si_sosi_arr(I).data(c_sdp_W_adc-1 DOWNTO 0),
in_bi => (OTHERS => '0'), in_bi => (OTHERS => '0'),
in_val => si_sosi_arr(I).valid, in_val => si_sosi_arr(I).valid,
out_pr => complex_mult_src_out_arr(I).re(c_halfword_w + c_sdp_W_adc-1 DOWNTO 0), out_pr => mixer_complex_mult_src_out_arr(I).re(c_sdp_W_local_oscillator + c_sdp_W_adc-1 DOWNTO 0),
out_pi => complex_mult_src_out_arr(I).im(c_halfword_w + c_sdp_W_adc-1 DOWNTO 0), out_pi => mixer_complex_mult_src_out_arr(I).im(c_sdp_W_local_oscillator + c_sdp_W_adc-1 DOWNTO 0),
out_val => complex_mult_src_out_arr(I).valid out_val => mixer_complex_mult_src_out_arr(I).valid
); );
--requantize --requantize
...@@ -373,16 +380,16 @@ BEGIN ...@@ -373,16 +380,16 @@ BEGIN
g_msb_clip_symmetric => FALSE, g_msb_clip_symmetric => FALSE,
g_pipeline_remove_lsb => 0, g_pipeline_remove_lsb => 0,
g_pipeline_remove_msb => 0, g_pipeline_remove_msb => 0,
g_in_dat_w => c_halfword_w + c_sdp_W_adc, g_in_dat_w => c_sdp_W_local_oscillator + c_sdp_W_adc,
g_out_dat_w => c_sdp_W_adc g_out_dat_w => c_sdp_W_adc
) )
PORT MAP ( PORT MAP (
rst => dp_rst, rst => dp_rst,
clk => dp_clk, clk => dp_clk,
-- ST sink -- ST sink
snk_in => complex_mult_src_out_arr(I), snk_in => mixer_complex_mult_src_out_arr(I),
-- ST source -- ST source
src_out => requantize_src_out_arr(I) src_out => mixer_complex_requantize_src_out_arr(I)
); );
END GENERATE; END GENERATE;
...@@ -411,12 +418,12 @@ BEGIN ...@@ -411,12 +418,12 @@ BEGIN
in_dat => dp_bsn_source_restart_pipe, in_dat => dp_bsn_source_restart_pipe,
out_dat => dp_bsn_source_restart_pipe_complex out_dat => dp_bsn_source_restart_pipe_complex
); );
PROCESS(requantize_src_out_arr, si_sosi_0_piped) PROCESS(mixer_complex_requantize_src_out_arr, si_sosi_0_piped)
BEGIN BEGIN
FOR I IN 0 TO c_sdp_S_pn-1 LOOP FOR I IN 0 TO c_sdp_S_pn-1 LOOP
wpfb_unit_complex_in_sosi_arr(I) <= si_sosi_0_piped; wpfb_unit_complex_in_sosi_arr(I) <= si_sosi_0_piped;
wpfb_unit_complex_in_sosi_arr(I).re <= requantize_src_out_arr(I).re; wpfb_unit_complex_in_sosi_arr(I).re <= mixer_complex_requantize_src_out_arr(I).re;
wpfb_unit_complex_in_sosi_arr(I).im <= requantize_src_out_arr(I).im; wpfb_unit_complex_in_sosi_arr(I).im <= mixer_complex_requantize_src_out_arr(I).im;
END LOOP; END LOOP;
END PROCESS; END PROCESS;
...@@ -461,7 +468,7 @@ BEGIN ...@@ -461,7 +468,7 @@ BEGIN
rst => dp_rst, rst => dp_rst,
clk => dp_clk, clk => dp_clk,
snk_in => wpfb_unit_complex_out_sosi_arr(I), snk_in => wpfb_unit_complex_out_sosi_arr(I),
src_out => wpfb_unit_out_resized_sosi_arr(I) src_out => wpfb_complex_out_resized_sosi_arr(I)
); );
END GENERATE; END GENERATE;
...@@ -479,18 +486,18 @@ BEGIN ...@@ -479,18 +486,18 @@ BEGIN
PORT MAP ( PORT MAP (
rst => dp_rst, rst => dp_rst,
clk => dp_clk, clk => dp_clk,
snk_in => wpfb_unit_out_resized_sosi_arr(I), snk_in => wpfb_complex_out_resized_sosi_arr(I),
src_out => wpfb_fifo_sosi_arr(I), src_out => wpfb_complex_out_fifo_sosi_arr(I),
src_in => wpfb_fifo_siso_arr(I) src_in => wpfb_complex_out_fifo_siso_arr(I)
); );
END GENERATE; END GENERATE;
-- rewire 1d array of 1 X S_pn to 2d array of 2 X P_pfb -- rewire 1d array of 1 X S_pn to 2d array of 2 X P_pfb
gen_rewire: FOR I IN 0 TO c_sdp_P_pfb-1 GENERATE gen_rewire: FOR I IN 0 TO c_sdp_P_pfb-1 GENERATE
wpfb_resized_sosi_2arr(I)(0) <= wpfb_fifo_sosi_arr(2*I); wpfb_complex_out_resized_sosi_2arr(I)(0) <= wpfb_complex_out_fifo_sosi_arr(2*I);
wpfb_resized_sosi_2arr(I)(1) <= wpfb_fifo_sosi_arr(2*I + 1); wpfb_complex_out_resized_sosi_2arr(I)(1) <= wpfb_complex_out_fifo_sosi_arr(2*I + 1);
wpfb_fifo_siso_arr(2*I) <= wpfb_resized_siso_2arr(I)(0); wpfb_complex_out_fifo_siso_arr(2*I) <= wpfb_complex_out_resized_siso_2arr(I)(0);
wpfb_fifo_siso_arr(2*I + 1) <= wpfb_resized_siso_2arr(I)(1); wpfb_complex_out_fifo_siso_arr(2*I + 1) <= wpfb_complex_out_resized_siso_2arr(I)(1);
END GENERATE; END GENERATE;
-- Interleave 2 to 1 for all S_pn signals. -- Interleave 2 to 1 for all S_pn signals.
...@@ -502,8 +509,8 @@ BEGIN ...@@ -502,8 +509,8 @@ BEGIN
PORT MAP ( PORT MAP (
rst => dp_rst, rst => dp_rst,
clk => dp_clk, clk => dp_clk,
snk_in_arr => wpfb_resized_sosi_2arr(I), snk_in_arr => wpfb_complex_out_resized_sosi_2arr(I),
snk_out_arr => wpfb_resized_siso_2arr(I), snk_out_arr => wpfb_complex_out_resized_siso_2arr(I),
src_out => subband_equalizer_in_sosi_arr(c_sdp_P_pfb + I) src_out => subband_equalizer_in_sosi_arr(c_sdp_P_pfb + I)
); );
END GENERATE; END GENERATE;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment