Skip to content
Snippets Groups Projects
Commit fbe978f5 authored by Reinier van der Walle's avatar Reinier van der Walle
Browse files

Connected raw subband output from wpfb

parent c48b8d3b
Branches
Tags
1 merge request!313Resolve DIST2-11
Pipeline #45655 failed
......@@ -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 common_lib.common_pkg.ALL;
USE common_lib.common_mem_pkg.ALL;
......@@ -44,6 +44,7 @@ USE common_lib.common_network_layers_pkg.ALL;
USE dp_lib.dp_stream_pkg.ALL;
USE rTwoSDF_lib.rTwoSDFPkg.ALL;
USE filter_lib.fil_pkg.ALL;
USE fft_lib.fft_pkg.ALL;
USE wpfb_lib.wpfb_pkg.ALL;
USE diag_lib.diag_pkg.ALL;
USE work.sdp_pkg.ALL;
......@@ -64,7 +65,8 @@ ENTITY node_sdp_oversampled_filterbank IS
dp_bsn_source_new_interval : IN STD_LOGIC;
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_siso : IN t_dp_siso := c_dp_siso_rst;
......@@ -107,12 +109,9 @@ ARCHITECTURE str OF node_sdp_oversampled_filterbank IS
NATURAL'IMAGE(c_sdp_W_sub_weight) & "b" &
NATURAL'IMAGE(c_sdp_W_sub_weight_fraction) & "f_unit";
-- 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_fraction_w : NATURAL := 0;
CONSTANT c_fft : t_fft := func_wpfb_map_wpfb_parameters_to_fft(g_wpfb);
CONSTANT c_subband_raw_dat_w : NATURAL := func_fft_raw_dat_w(c_fft);
CONSTANT c_subband_raw_fraction_w : NATURAL := func_fft_raw_fraction_w(c_fft);
CONSTANT c_nof_masters : POSITIVE := 2;
......@@ -170,8 +169,8 @@ ARCHITECTURE str OF node_sdp_oversampled_filterbank IS
-- 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_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_sosi_arr_piped : 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_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
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 +179,8 @@ ARCHITECTURE str OF node_sdp_oversampled_filterbank IS
-- 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_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
SIGNAL wpfb_complex_out_resized_sosi_arr : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst);
......@@ -192,7 +192,8 @@ ARCHITECTURE str OF node_sdp_oversampled_filterbank IS
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_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 scope_equalizer_in_sosi_arr : t_dp_sosi_integer_arr(c_sdp_R_os * c_sdp_S_pn-1 DOWNTO 0);
......@@ -277,8 +278,8 @@ BEGIN
in_sosi_arr => wpfb_unit_in_sosi_arr,
fil_sosi_arr => wpfb_unit_fil_sosi_arr,
out_quant_sosi_arr => wpfb_unit_out_sosi_arr,
out_raw_sosi_arr => OPEN,
out_quant_sosi_arr => wpfb_unit_out_quant_sosi_arr,
out_raw_sosi_arr => wpfb_unit_out_raw_sosi_arr,
dp_bsn_source_restart => dp_bsn_source_restart_pipe
);
......@@ -448,8 +449,8 @@ BEGIN
in_sosi_arr => wpfb_unit_complex_in_sosi_arr,
fil_sosi_arr => wpfb_unit_complex_fil_sosi_arr,
out_quant_sosi_arr => wpfb_unit_complex_out_sosi_arr,
out_raw_sosi_arr => OPEN,
out_quant_sosi_arr => wpfb_unit_complex_out_quant_sosi_arr,
out_raw_sosi_arr => wpfb_unit_complex_out_raw_sosi_arr,
dp_bsn_source_restart => dp_bsn_source_restart_pipe_complex
);
......@@ -467,7 +468,7 @@ BEGIN
PORT MAP (
rst => dp_rst,
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)
);
END GENERATE;
......@@ -476,7 +477,7 @@ BEGIN
gen_dp_fifo: FOR I IN 0 TO c_sdp_S_pn-1 GENERATE
u_dp_fifo_sc : ENTITY dp_lib.dp_fifo_sc
GENERIC MAP(
g_data_w => c_nof_complex * c_sdp_W_subband,
g_data_w => c_nof_complex * c_subband_raw_dat_w,
g_bsn_w => c_dp_stream_bsn_w,
g_use_bsn => TRUE,
g_use_sync => TRUE,
......@@ -526,7 +527,7 @@ BEGIN
rst => dp_rst,
clk => dp_clk,
-- ST sink
snk_in_arr => wpfb_unit_out_sosi_arr,
snk_in_arr => wpfb_unit_out_raw_sosi_arr,
-- ST source
src_out_arr => subband_equalizer_in_sosi_arr(c_sdp_P_pfb-1 DOWNTO 0)
);
......@@ -561,7 +562,8 @@ BEGIN
dp_rst => dp_rst,
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_clk => mm_clk,
......@@ -573,10 +575,11 @@ BEGIN
);
-- 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 SELECTOR
-- DP SELECTOR for SST input
---------------------------------------------------------------
u_dp_selector_arr : ENTITY dp_lib.dp_selector_arr
GENERIC MAP (
......@@ -592,8 +595,8 @@ BEGIN
reg_selector_mosi => reg_selector_mosi,
reg_selector_miso => reg_selector_miso,
pipe_sosi_arr => subband_equalizer_in_sosi_arr,
ref_sosi_arr => subband_equalizer_out_sosi_arr,
pipe_sosi_arr => subband_equalizer_in_sosi_arr, -- Should be quantized?
ref_sosi_arr => subband_equalizer_quant_sosi_arr,
out_sosi_arr => dp_selector_out_sosi_arr,
selector_en => selector_en
......@@ -629,7 +632,7 @@ BEGIN
PORT MAP (
clk => dp_clk,
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
);
-- synthesis translate_on
......
......@@ -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 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 xst_bs_sosi : t_dp_sosi; -- block sync reference for Xsub ring latency monitor
......@@ -792,7 +792,7 @@ BEGIN
dp_rst => dp_rst,
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_new_interval => dp_bsn_source_new_interval,
......@@ -832,12 +832,12 @@ BEGIN
-- Lower part contains normal subbands, higher part contains shifted subbands.
-- . 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 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(1) <= fsub_oversampled_sosi_arr(2 * c_sdp_P_pfb-1 DOWNTO c_sdp_P_pfb);
fsub_raw_sosi_2arr(0) <= fsub_oversampled_raw_sosi_arr( c_sdp_P_pfb-1 DOWNTO 0);
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;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment