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

Merge branch 'DIST2-11' into 'master'

Resolve DIST2-11

Closes DIST2-11

See merge request desp/hdl!313
parents c48b8d3b 86a53844
Branches
No related tags found
1 merge request!313Resolve DIST2-11
Pipeline #45766 failed
...@@ -14032,7 +14032,7 @@ ...@@ -14032,7 +14032,7 @@
</fileSets> </fileSets>
</generationInfoDefinition>]]></parameter> </generationInfoDefinition>]]></parameter>
<parameter name="hlsFile" value="" /> <parameter name="hlsFile" value="" />
<parameter name="logicalView">ip/qsys_lofar2_unb2b_sdp_station/qsys_lofar2_unb2b_sdp_station_ram_equalizer_gains_cross.ip</parameter> <parameter name="logicalView">../lofar2_unb2b_sdp_station/ip/qsys_lofar2_unb2b_sdp_station/qsys_lofar2_unb2b_sdp_station_ram_equalizer_gains_cross.ip</parameter>
<parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition> <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
<assignmentValueMap/> <assignmentValueMap/>
</assignmentDefinition>]]></parameter> </assignmentDefinition>]]></parameter>
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
-- . -- .
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
LIBRARY IEEE, common_lib, dp_lib, diag_lib, rTwoSDF_lib, common_mult_lib, wpfb_lib, filter_lib, si_lib, st_lib, mm_lib; LIBRARY IEEE, common_lib, dp_lib, diag_lib, rTwoSDF_lib, common_mult_lib, fft_lib, wpfb_lib, filter_lib, si_lib, st_lib, mm_lib;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_1164.ALL;
USE common_lib.common_pkg.ALL; USE common_lib.common_pkg.ALL;
USE common_lib.common_mem_pkg.ALL; USE common_lib.common_mem_pkg.ALL;
...@@ -44,6 +44,7 @@ USE common_lib.common_network_layers_pkg.ALL; ...@@ -44,6 +44,7 @@ USE common_lib.common_network_layers_pkg.ALL;
USE dp_lib.dp_stream_pkg.ALL; USE dp_lib.dp_stream_pkg.ALL;
USE rTwoSDF_lib.rTwoSDFPkg.ALL; USE rTwoSDF_lib.rTwoSDFPkg.ALL;
USE filter_lib.fil_pkg.ALL; USE filter_lib.fil_pkg.ALL;
USE fft_lib.fft_pkg.ALL;
USE wpfb_lib.wpfb_pkg.ALL; USE wpfb_lib.wpfb_pkg.ALL;
USE diag_lib.diag_pkg.ALL; USE diag_lib.diag_pkg.ALL;
USE work.sdp_pkg.ALL; USE work.sdp_pkg.ALL;
...@@ -64,7 +65,8 @@ ENTITY node_sdp_oversampled_filterbank IS ...@@ -64,7 +65,8 @@ ENTITY node_sdp_oversampled_filterbank IS
dp_bsn_source_new_interval : IN STD_LOGIC; dp_bsn_source_new_interval : IN STD_LOGIC;
in_sosi_arr : IN t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0); in_sosi_arr : IN t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0);
fsub_sosi_arr : OUT t_dp_sosi_arr(c_sdp_R_os * c_sdp_P_pfb-1 DOWNTO 0); fsub_quant_sosi_arr: OUT t_dp_sosi_arr(c_sdp_R_os * c_sdp_P_pfb-1 DOWNTO 0);
fsub_raw_sosi_arr : OUT t_dp_sosi_arr(c_sdp_R_os * c_sdp_P_pfb-1 DOWNTO 0);
sst_udp_sosi : OUT t_dp_sosi; sst_udp_sosi : OUT t_dp_sosi;
sst_udp_siso : IN t_dp_siso := c_dp_siso_rst; sst_udp_siso : IN t_dp_siso := c_dp_siso_rst;
...@@ -107,18 +109,20 @@ ARCHITECTURE str OF node_sdp_oversampled_filterbank IS ...@@ -107,18 +109,20 @@ 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, so c_subband_raw_dat_w = 18b. CONSTANT c_fft : t_fft := func_wpfb_map_wpfb_parameters_to_fft(g_wpfb);
-- . Maybe later use raw subbands like in node_sdp_filterbank, but for now CONSTANT c_fft_complex : t_fft := func_wpfb_map_wpfb_parameters_to_fft(g_wpfb_complex);
-- appling subband weights and bf weights at c_sdp_W_subband = 18b subbands CONSTANT c_subband_raw_dat_w : NATURAL := func_fft_raw_dat_w(c_fft);
-- is acceptable. CONSTANT c_subband_raw_fraction_w : NATURAL := func_fft_raw_fraction_w(c_fft);
CONSTANT c_subband_raw_dat_w : NATURAL := c_sdp_W_subband; CONSTANT c_complex_subband_raw_dat_w : NATURAL := func_fft_raw_dat_w(c_fft_complex);
CONSTANT c_subband_raw_fraction_w : NATURAL := 0; CONSTANT c_complex_subband_raw_fraction_w : NATURAL := func_fft_raw_fraction_w(c_fft_complex);
CONSTANT c_dat_w_diff : INTEGER := c_complex_subband_raw_dat_w - c_subband_raw_dat_w; -- = -1 which is used to shift 1 bit to the left.
CONSTANT c_nof_masters : POSITIVE := 2; CONSTANT c_nof_masters : POSITIVE := 2;
CONSTANT c_si_pipeline : NATURAL := 1; CONSTANT c_si_pipeline : NATURAL := 1;
CONSTANT c_complex_mult_pipeline : NATURAL := 3; CONSTANT c_complex_mult_pipeline : NATURAL := 3;
CONSTANT c_complex_pfb_pipeline : NATURAL := 2; CONSTANT c_complex_pfb_pipeline : NATURAL := 2;
CONSTANT c_pipeline_remove_lsb : NATURAL := 1; -- to easy timing closure
-- 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 = 16b -- . c_sdp_W_local_oscillator = 16b
...@@ -170,8 +174,8 @@ ARCHITECTURE str OF node_sdp_oversampled_filterbank IS ...@@ -170,8 +174,8 @@ ARCHITECTURE str OF node_sdp_oversampled_filterbank IS
-- Real input FFT -- Real input FFT
SIGNAL wpfb_unit_in_sosi_arr : t_dp_sosi_arr(c_sdp_P_pfb-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst); SIGNAL wpfb_unit_in_sosi_arr : t_dp_sosi_arr(c_sdp_P_pfb-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst);
SIGNAL wpfb_unit_fil_sosi_arr : t_dp_sosi_arr(c_sdp_P_pfb-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst); SIGNAL wpfb_unit_fil_sosi_arr : t_dp_sosi_arr(c_sdp_P_pfb-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst);
SIGNAL wpfb_unit_out_sosi_arr : t_dp_sosi_arr(c_sdp_P_pfb-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst); SIGNAL wpfb_unit_out_quant_sosi_arr : 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); SIGNAL wpfb_unit_out_raw_sosi_arr : 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 mixer_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);
...@@ -180,7 +184,8 @@ ARCHITECTURE str OF node_sdp_oversampled_filterbank IS ...@@ -180,7 +184,8 @@ ARCHITECTURE str OF node_sdp_oversampled_filterbank IS
-- Complex input FFT (from LO mixer) -- 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_quant_sosi_arr : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst);
SIGNAL wpfb_unit_complex_out_raw_sosi_arr : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst);
-- Remove negative frequencies -- Remove negative frequencies
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_complex_out_resized_sosi_arr : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst);
...@@ -190,10 +195,13 @@ ARCHITECTURE str OF node_sdp_oversampled_filterbank IS ...@@ -190,10 +195,13 @@ ARCHITECTURE str OF node_sdp_oversampled_filterbank IS
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_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_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 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 wpfb_complex_out_interleaved_sosi_arr : t_dp_sosi_arr(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_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_quant_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_raw_sosi_arr : t_dp_sosi_arr(c_sdp_R_os * c_sdp_P_pfb-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst);
SIGNAL dp_selector_out_sosi_arr : t_dp_sosi_arr(c_sdp_R_os * c_sdp_P_pfb-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst); SIGNAL dp_selector_out_sosi_arr : t_dp_sosi_arr(c_sdp_R_os * c_sdp_P_pfb-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst);
SIGNAL dp_selector_pipe_sosi_arr : t_dp_sosi_arr(c_sdp_R_os * c_sdp_P_pfb-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst);
SIGNAL scope_equalizer_in_sosi_arr : t_dp_sosi_integer_arr(c_sdp_R_os * c_sdp_S_pn-1 DOWNTO 0); SIGNAL scope_equalizer_in_sosi_arr : t_dp_sosi_integer_arr(c_sdp_R_os * c_sdp_S_pn-1 DOWNTO 0);
SIGNAL scope_equalizer_out_sosi_arr : t_dp_sosi_integer_arr(c_sdp_R_os * c_sdp_S_pn-1 DOWNTO 0); SIGNAL scope_equalizer_out_sosi_arr : t_dp_sosi_integer_arr(c_sdp_R_os * c_sdp_S_pn-1 DOWNTO 0);
...@@ -277,8 +285,8 @@ BEGIN ...@@ -277,8 +285,8 @@ BEGIN
in_sosi_arr => wpfb_unit_in_sosi_arr, in_sosi_arr => wpfb_unit_in_sosi_arr,
fil_sosi_arr => wpfb_unit_fil_sosi_arr, fil_sosi_arr => wpfb_unit_fil_sosi_arr,
out_quant_sosi_arr => wpfb_unit_out_sosi_arr, out_quant_sosi_arr => wpfb_unit_out_quant_sosi_arr,
out_raw_sosi_arr => OPEN, out_raw_sosi_arr => wpfb_unit_out_raw_sosi_arr,
dp_bsn_source_restart => dp_bsn_source_restart_pipe dp_bsn_source_restart => dp_bsn_source_restart_pipe
); );
...@@ -448,8 +456,8 @@ BEGIN ...@@ -448,8 +456,8 @@ BEGIN
in_sosi_arr => wpfb_unit_complex_in_sosi_arr, in_sosi_arr => wpfb_unit_complex_in_sosi_arr,
fil_sosi_arr => wpfb_unit_complex_fil_sosi_arr, fil_sosi_arr => wpfb_unit_complex_fil_sosi_arr,
out_quant_sosi_arr => wpfb_unit_complex_out_sosi_arr, out_quant_sosi_arr => wpfb_unit_complex_out_quant_sosi_arr,
out_raw_sosi_arr => OPEN, out_raw_sosi_arr => wpfb_unit_complex_out_raw_sosi_arr,
dp_bsn_source_restart => dp_bsn_source_restart_pipe_complex dp_bsn_source_restart => dp_bsn_source_restart_pipe_complex
); );
...@@ -467,7 +475,7 @@ BEGIN ...@@ -467,7 +475,7 @@ BEGIN
PORT MAP ( PORT MAP (
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_raw_sosi_arr(I),
src_out => wpfb_complex_out_resized_sosi_arr(I) src_out => wpfb_complex_out_resized_sosi_arr(I)
); );
END GENERATE; END GENERATE;
...@@ -476,7 +484,7 @@ BEGIN ...@@ -476,7 +484,7 @@ BEGIN
gen_dp_fifo: FOR I IN 0 TO c_sdp_S_pn-1 GENERATE gen_dp_fifo: FOR I IN 0 TO c_sdp_S_pn-1 GENERATE
u_dp_fifo_sc : ENTITY dp_lib.dp_fifo_sc u_dp_fifo_sc : ENTITY dp_lib.dp_fifo_sc
GENERIC MAP( GENERIC MAP(
g_data_w => c_nof_complex * c_sdp_W_subband, g_data_w => c_nof_complex * c_complex_subband_raw_dat_w,
g_bsn_w => c_dp_stream_bsn_w, g_bsn_w => c_dp_stream_bsn_w,
g_use_bsn => TRUE, g_use_bsn => TRUE,
g_use_sync => TRUE, g_use_sync => TRUE,
...@@ -500,8 +508,8 @@ BEGIN ...@@ -500,8 +508,8 @@ BEGIN
wpfb_complex_out_fifo_siso_arr(2*I + 1) <= wpfb_complex_out_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;
gen_align: FOR I IN 0 TO c_sdp_P_pfb-1 GENERATE
-- Interleave 2 to 1 for all S_pn signals. -- Interleave 2 to 1 for all S_pn signals.
gen_interleave: FOR I IN 0 TO c_sdp_P_pfb-1 GENERATE
u_dp_interleave_n_to_one : ENTITY dp_lib.dp_interleave_n_to_one u_dp_interleave_n_to_one : ENTITY dp_lib.dp_interleave_n_to_one
GENERIC MAP( GENERIC MAP(
g_nof_inputs => c_sdp_Q_fft g_nof_inputs => c_sdp_Q_fft
...@@ -511,10 +519,21 @@ BEGIN ...@@ -511,10 +519,21 @@ BEGIN
clk => dp_clk, clk => dp_clk,
snk_in_arr => wpfb_complex_out_resized_sosi_2arr(I), snk_in_arr => wpfb_complex_out_resized_sosi_2arr(I),
snk_out_arr => wpfb_complex_out_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 => wpfb_complex_out_interleaved_sosi_arr(I)
); );
END GENERATE;
-- Align data width of wpfb_complex output with wpfb_real output as the real wpfb
-- has an extra bit that is used for the FFT seperate function which the complex FFT
-- does not have. Here we add that extra bit to the output of the complex FFT aswell
-- to maintain the same scale and data width.
p_add_bit : PROCESS(wpfb_complex_out_interleaved_sosi_arr)
BEGIN
subband_equalizer_in_sosi_arr(c_sdp_P_pfb + I) <= wpfb_complex_out_interleaved_sosi_arr(I);
subband_equalizer_in_sosi_arr(c_sdp_P_pfb + I).re <= SHIFT_SVEC(wpfb_complex_out_interleaved_sosi_arr(I).re, c_dat_w_diff);
subband_equalizer_in_sosi_arr(c_sdp_P_pfb + I).im <= SHIFT_SVEC(wpfb_complex_out_interleaved_sosi_arr(I).im, c_dat_w_diff);
END PROCESS;
END GENERATE;
-- Pipeline to compensate for longer latency of the complex PFB. -- Pipeline to compensate for longer latency of the complex PFB.
u_dp_pipeline_arr : ENTITY dp_lib.dp_pipeline_arr u_dp_pipeline_arr : ENTITY dp_lib.dp_pipeline_arr
...@@ -526,7 +545,7 @@ BEGIN ...@@ -526,7 +545,7 @@ BEGIN
rst => dp_rst, rst => dp_rst,
clk => dp_clk, clk => dp_clk,
-- ST sink -- ST sink
snk_in_arr => wpfb_unit_out_sosi_arr, snk_in_arr => wpfb_unit_out_raw_sosi_arr,
-- ST source -- ST source
src_out_arr => subband_equalizer_in_sosi_arr(c_sdp_P_pfb-1 DOWNTO 0) src_out_arr => subband_equalizer_in_sosi_arr(c_sdp_P_pfb-1 DOWNTO 0)
); );
...@@ -561,7 +580,8 @@ BEGIN ...@@ -561,7 +580,8 @@ BEGIN
dp_rst => dp_rst, dp_rst => dp_rst,
in_raw_sosi_arr => subband_equalizer_in_sosi_arr, in_raw_sosi_arr => subband_equalizer_in_sosi_arr,
out_raw_sosi_arr => subband_equalizer_out_sosi_arr, out_raw_sosi_arr => subband_equalizer_raw_sosi_arr,
out_quant_sosi_arr => subband_equalizer_quant_sosi_arr,
mm_rst => mm_rst, mm_rst => mm_rst,
mm_clk => mm_clk, mm_clk => mm_clk,
...@@ -573,15 +593,38 @@ BEGIN ...@@ -573,15 +593,38 @@ BEGIN
); );
-- Output fsub streams -- Output fsub streams
fsub_sosi_arr <= subband_equalizer_out_sosi_arr; fsub_quant_sosi_arr <= subband_equalizer_quant_sosi_arr;
fsub_raw_sosi_arr <= subband_equalizer_raw_sosi_arr;
---------------------------------------------------------------
-- DP REQUANTIZE for SST
---------------------------------------------------------------
gen_dp_requantize : FOR I IN 0 TO c_sdp_R_os * c_sdp_P_pfb-1 GENERATE
u_dp_requantize : ENTITY dp_lib.dp_requantize
GENERIC MAP (
g_complex => TRUE,
g_lsb_w => c_subband_raw_fraction_w,
g_msb_clip => FALSE,
g_pipeline_remove_lsb => c_pipeline_remove_lsb,
g_in_dat_w => c_subband_raw_dat_w,
g_out_dat_w => c_sdp_W_subband
)
PORT MAP (
rst => dp_rst,
clk => dp_clk,
snk_in => subband_equalizer_in_sosi_arr(I),
src_out => dp_selector_pipe_sosi_arr(I)
);
END GENERATE;
--------------------------------------------------------------- ---------------------------------------------------------------
-- DP SELECTOR -- DP SELECTOR for SST input
--------------------------------------------------------------- ---------------------------------------------------------------
u_dp_selector_arr : ENTITY dp_lib.dp_selector_arr u_dp_selector_arr : ENTITY dp_lib.dp_selector_arr
GENERIC MAP ( GENERIC MAP (
g_nof_arr => c_sdp_R_os * c_sdp_P_pfb, g_nof_arr => c_sdp_R_os * c_sdp_P_pfb,
g_pipeline => c_sdp_subband_equalizer_latency g_pipeline => c_sdp_subband_equalizer_latency - c_pipeline_remove_lsb
) )
PORT MAP ( PORT MAP (
mm_rst => mm_rst, mm_rst => mm_rst,
...@@ -592,8 +635,8 @@ BEGIN ...@@ -592,8 +635,8 @@ BEGIN
reg_selector_mosi => reg_selector_mosi, reg_selector_mosi => reg_selector_mosi,
reg_selector_miso => reg_selector_miso, reg_selector_miso => reg_selector_miso,
pipe_sosi_arr => subband_equalizer_in_sosi_arr, pipe_sosi_arr => dp_selector_pipe_sosi_arr,
ref_sosi_arr => subband_equalizer_out_sosi_arr, ref_sosi_arr => subband_equalizer_quant_sosi_arr,
out_sosi_arr => dp_selector_out_sosi_arr, out_sosi_arr => dp_selector_out_sosi_arr,
selector_en => selector_en selector_en => selector_en
...@@ -629,7 +672,7 @@ BEGIN ...@@ -629,7 +672,7 @@ BEGIN
PORT MAP ( PORT MAP (
clk => dp_clk, clk => dp_clk,
rst => dp_rst, rst => dp_rst,
sp_sosi_arr => subband_equalizer_out_sosi_arr, sp_sosi_arr => subband_equalizer_quant_sosi_arr,
scope_sosi_arr => scope_equalizer_out_sosi_arr scope_sosi_arr => scope_equalizer_out_sosi_arr
); );
-- synthesis translate_on -- synthesis translate_on
......
...@@ -391,8 +391,8 @@ ARCHITECTURE str OF sdp_station IS ...@@ -391,8 +391,8 @@ ARCHITECTURE str OF sdp_station IS
CONSTANT c_fft_raw_dat_w : NATURAL := func_fft_raw_dat_w(c_fft); CONSTANT c_fft_raw_dat_w : NATURAL := func_fft_raw_dat_w(c_fft);
CONSTANT c_fft_raw_fraction_w : NATURAL := func_fft_raw_fraction_w(c_fft); CONSTANT c_fft_raw_fraction_w : NATURAL := func_fft_raw_fraction_w(c_fft);
CONSTANT c_subband_raw_dat_w : NATURAL := sel_a_b(g_use_oversample, c_sdp_W_subband, c_fft_raw_dat_w); CONSTANT c_subband_raw_dat_w : NATURAL := c_fft_raw_dat_w;
CONSTANT c_subband_raw_fraction_w : NATURAL := sel_a_b(g_use_oversample, 0, c_fft_raw_fraction_w); CONSTANT c_subband_raw_fraction_w : NATURAL := c_fft_raw_fraction_w;
-- Make Tx FIFOs at least c_fifo_tx_fill_margin larger than needed to fit the largest Tx packet -- Make Tx FIFOs at least c_fifo_tx_fill_margin larger than needed to fit the largest Tx packet
CONSTANT c_fifo_tx_fill_margin : NATURAL := 10; -- >= c_fifo_fill_margin = 6 that is used in dp_fifo_fill_eop CONSTANT c_fifo_tx_fill_margin : NATURAL := 10; -- >= c_fifo_fill_margin = 6 that is used in dp_fifo_fill_eop
...@@ -539,7 +539,7 @@ ARCHITECTURE str OF sdp_station IS ...@@ -539,7 +539,7 @@ ARCHITECTURE str OF sdp_station IS
SIGNAL ait_sosi_arr : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0); SIGNAL ait_sosi_arr : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0);
SIGNAL fsub_raw_sosi_arr : t_dp_sosi_arr(c_sdp_P_pfb-1 DOWNTO 0); SIGNAL fsub_raw_sosi_arr : t_dp_sosi_arr(c_sdp_P_pfb-1 DOWNTO 0);
SIGNAL fsub_oversampled_sosi_arr : t_dp_sosi_arr(c_sdp_R_os * c_sdp_P_pfb-1 DOWNTO 0); SIGNAL fsub_oversampled_raw_sosi_arr : t_dp_sosi_arr(c_sdp_R_os * c_sdp_P_pfb-1 DOWNTO 0);
SIGNAL fsub_raw_sosi_2arr : t_dp_sosi_2arr_pfb(c_sdp_N_beamsets-1 DOWNTO 0); SIGNAL fsub_raw_sosi_2arr : t_dp_sosi_2arr_pfb(c_sdp_N_beamsets-1 DOWNTO 0);
SIGNAL xst_bs_sosi : t_dp_sosi; -- block sync reference for Xsub ring latency monitor SIGNAL xst_bs_sosi : t_dp_sosi; -- block sync reference for Xsub ring latency monitor
...@@ -792,7 +792,7 @@ BEGIN ...@@ -792,7 +792,7 @@ BEGIN
dp_rst => dp_rst, dp_rst => dp_rst,
in_sosi_arr => ait_sosi_arr, in_sosi_arr => ait_sosi_arr,
fsub_sosi_arr => fsub_oversampled_sosi_arr, fsub_raw_sosi_arr => fsub_oversampled_raw_sosi_arr,
dp_bsn_source_restart => dp_bsn_source_restart, dp_bsn_source_restart => dp_bsn_source_restart,
dp_bsn_source_new_interval => dp_bsn_source_new_interval, dp_bsn_source_new_interval => dp_bsn_source_new_interval,
...@@ -832,12 +832,12 @@ BEGIN ...@@ -832,12 +832,12 @@ BEGIN
-- Lower part contains normal subbands, higher part contains shifted subbands. -- Lower part contains normal subbands, higher part contains shifted subbands.
-- . Use normal subbands for subband correlator -- . Use normal subbands for subband correlator
fsub_raw_sosi_arr <= fsub_oversampled_sosi_arr(c_sdp_P_pfb-1 DOWNTO 0); fsub_raw_sosi_arr <= fsub_oversampled_raw_sosi_arr(c_sdp_P_pfb-1 DOWNTO 0);
-- . Use first beamset for normal subbands -- . Use first beamset for normal subbands
-- Use second beamset for oversampled subbands -- Use second beamset for oversampled subbands
fsub_raw_sosi_2arr(0) <= fsub_oversampled_sosi_arr( c_sdp_P_pfb-1 DOWNTO 0); fsub_raw_sosi_2arr(0) <= fsub_oversampled_raw_sosi_arr( c_sdp_P_pfb-1 DOWNTO 0);
fsub_raw_sosi_2arr(1) <= fsub_oversampled_sosi_arr(2 * c_sdp_P_pfb-1 DOWNTO c_sdp_P_pfb); fsub_raw_sosi_2arr(1) <= fsub_oversampled_raw_sosi_arr(2 * c_sdp_P_pfb-1 DOWNTO c_sdp_P_pfb);
END GENERATE; END GENERATE;
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