diff --git a/applications/lofar2/libraries/sdp/src/vhdl/sdp_beamformer_local.vhd b/applications/lofar2/libraries/sdp/src/vhdl/sdp_beamformer_local.vhd index 02ba7c39bd8d756c58521bbcdcceb60cfbd3962c..6ed1dfde59783c571ead377974f31da66529e2e3 100644 --- a/applications/lofar2/libraries/sdp/src/vhdl/sdp_beamformer_local.vhd +++ b/applications/lofar2/libraries/sdp/src/vhdl/sdp_beamformer_local.vhd @@ -228,8 +228,10 @@ BEGIN g_lsb_w => c_sdp_W_bf_weight_fraction + g_raw_fraction_w, g_lsb_round => TRUE, g_lsb_round_clip => FALSE, - g_msb_clip => FALSE, - g_msb_clip_symmetric => FALSE, + g_msb_clip => FALSE, -- wrap beamlet overflow + g_msb_clip_symmetric => FALSE, + g_pipeline_remove_lsb => 1, + g_pipeline_remove_msb => 0, -- no msb clipping, so no need for pipeline g_in_dat_w => c_complex_adder_sum_w, g_out_dat_w => c_sdp_W_beamlet_sum ) diff --git a/applications/lofar2/libraries/sdp/src/vhdl/sdp_subband_equalizer.vhd b/applications/lofar2/libraries/sdp/src/vhdl/sdp_subband_equalizer.vhd index 392062697981e0e01c2a798f754754b30b6c112d..6282d804b9251564e7c066020824488ec7e3af4b 100644 --- a/applications/lofar2/libraries/sdp/src/vhdl/sdp_subband_equalizer.vhd +++ b/applications/lofar2/libraries/sdp/src/vhdl/sdp_subband_equalizer.vhd @@ -74,6 +74,10 @@ ARCHITECTURE str OF sdp_subband_equalizer IS CONSTANT c_quant_dat_w : NATURAL := g_raw_dat_w - g_raw_fraction_w; + -- Pipeline requantization to easy timing closure + CONSTANT c_pipeline_remove_lsb : NATURAL := 1; + CONSTANT c_pipeline_remove_msb : NATURAL := 1; + SIGNAL in_sosi : t_dp_sosi; SIGNAL cnt : NATURAL RANGE 0 TO c_sdp_Q_fft * c_sdp_N_sub-1; SIGNAL gains_rd_address : STD_LOGIC_VECTOR(c_gain_addr_w-1 DOWNTO 0); @@ -170,8 +174,10 @@ BEGIN g_lsb_w => c_sdp_W_sub_weight_fraction, g_lsb_round => TRUE, g_lsb_round_clip => FALSE, - g_msb_clip => TRUE, + g_msb_clip => TRUE, -- clip subband overflow g_msb_clip_symmetric => FALSE, + g_pipeline_remove_lsb => c_pipeline_remove_lsb, + g_pipeline_remove_msb => c_pipeline_remove_msb, g_in_dat_w => c_gain_out_dat_w, g_out_dat_w => g_raw_dat_w ) @@ -193,9 +199,11 @@ BEGIN g_lsb_w => c_sdp_W_sub_weight_fraction + g_raw_fraction_w, g_lsb_round => TRUE, g_lsb_round_clip => FALSE, - g_msb_clip => TRUE, + g_msb_clip => TRUE, -- clip subband overflow g_msb_clip_symmetric => FALSE, - g_in_dat_w => c_gain_out_dat_w, + g_pipeline_remove_lsb => c_pipeline_remove_lsb, + g_pipeline_remove_msb => c_pipeline_remove_msb, + g_in_dat_w => c_gain_out_dat_w, g_out_dat_w => c_quant_dat_w ) PORT MAP (