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

No need to pipeline bf_weights_y_sosi_arr, because dp_deinterleave_one_to_n...

No need to pipeline bf_weights_y_sosi_arr, because dp_deinterleave_one_to_n expects all inputs to be aligned.
parent d82a090d
No related branches found
No related tags found
1 merge request!219No functional change. Use short index variables names in capitals, to ease...
......@@ -77,11 +77,15 @@ ARCHITECTURE str OF sdp_beamformer_local IS
BEGIN
---------------------------------------------------------------
-- COPY INPUT STERAMS FOR X AND Y POLARIZATION PATHS
---------------------------------------------------------------
gen_pol : FOR N_pol_bf IN 0 TO c_sdp_N_pol_bf-1 GENERATE
gen_pfb : FOR P_pfb IN 0 TO c_sdp_P_pfb-1 GENERATE
sub_sosi_arr(N_pol_bf * c_sdp_P_pfb + P_pfb) <= in_sosi_arr(P_pfb);
-- COPY INPUT STREAMS FOR X AND Y POLARIZATION PATHS
-- 0: 5 = S_pn signal inputs (time multiplexed by Q_fft) for BF X pol
-- 6:11 = S_pn signal inputs (time multiplexed by Q_fft) for BF Y pol
---------------------------------------------------------------
-- Use short index variables PB (= Polarization Beamlet), I (= Instance)
-- names, to ease recognizing them as loop indices.
gen_pol : FOR PB IN 0 TO c_sdp_N_pol_bf-1 GENERATE
gen_pfb : FOR I IN 0 TO c_sdp_P_pfb-1 GENERATE
sub_sosi_arr(PB * c_sdp_P_pfb + I) <= in_sosi_arr(I);
END GENERATE;
END GENERATE;
......@@ -109,23 +113,8 @@ BEGIN
-- X pol is lower half of bf_weights_out
bf_weights_x_sosi_arr <= bf_weights_out_sosi_arr(c_sdp_P_pfb-1 DOWNTO 0);
---------------------------------------------------------------
-- DP PIPELINE Y PATH
---------------------------------------------------------------
-- The weighted subbands from the Y polarization path are pipelined
-- by one cycle so that they can be time multiplexed with the
-- weighted subbands from the X polarization.
u_pipeline_y_pol : ENTITY dp_lib.dp_pipeline_arr
GENERIC MAP (
g_nof_streams => c_sdp_P_pfb,
g_pipeline => 1
)
PORT MAP (
rst => dp_rst,
clk => dp_clk,
snk_in_arr => bf_weights_out_sosi_arr(2*c_sdp_P_pfb-1 DOWNTO c_sdp_P_pfb),
src_out_arr => bf_weights_y_sosi_arr
);
-- Y pol is upper half of bf_weights_out
bf_weights_y_sosi_arr <= bf_weights_out_sosi_arr(2*c_sdp_P_pfb-1 DOWNTO c_sdp_P_pfb);
---------------------------------------------------------------
-- DEINTERLEAVE X PATH
......@@ -157,7 +146,7 @@ BEGIN
rst => dp_rst,
clk => dp_clk,
snk_in => bf_weights_y_sosi_arr(I),
snk_in => bf_weights_y_sosi_arr(I),
src_out_arr(0) => deinterleaved_y_sosi_arr(c_sdp_Q_fft*I),
src_out_arr(1) => deinterleaved_y_sosi_arr(c_sdp_Q_fft*I+1)
);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment