diff --git a/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd b/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd index 4b3b73192078cd3d24aaa258544409e190025cf7..95aad8a84a09e0d7b6870788e619255466c49762 100644 --- a/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd +++ b/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd @@ -36,33 +36,56 @@ USE filter_lib.fil_pkg.ALL; USE wpfb_lib.wpfb_pkg.ALL; PACKAGE sdp_pkg is + ------------------------------------------------- + -- SDP info record as defined in: + -- LOFAR2-9258-SDP info per antenna band + ------------------------------------------------- + TYPE t_sdp_info IS RECORD + station_id : STD_LOGIC_VECTOR(15 DOWNTO 0); + antenna_band_index : STD_LOGIC; + observation_id : STD_LOGIC_VECTOR(31 DOWNTO 0); + nyquist_zone_index : STD_LOGIC_VECTOR(1 DOWNTO 0); + f_adc : STD_LOGIC; + fsub_type : STD_LOGIC; + beam_repositioning_flag : STD_LOGIC; + subband_calibrated_flag : STD_LOGIC; + O_si : STD_LOGIC_VECTOR(7 DOWNTO 0); + N_si : STD_LOGIC_VECTOR(7 DOWNTO 0); + O_rn : STD_LOGIC_VECTOR(7 DOWNTO 0); + N_rn : STD_LOGIC_VECTOR(7 DOWNTO 0); + block_period : STD_LOGIC_VECTOR(15 DOWNTO 0); + beamlet_scale : STD_LOGIC_VECTOR(15 DOWNTO 0); + END RECORD; + ------------------------------------------------- -- SDP specific parameters as defined in: -- L3 SDP Decision: SDP Parameter definitions ------------------------------------------------- - CONSTANT c_sdp_N_pol : NATURAL := 2; - CONSTANT c_sdp_N_sub : NATURAL := 512; - CONSTANT c_sdp_N_fft : NATURAL := 1024; - CONSTANT c_sdp_S_pn : NATURAL := 12; - CONSTANT c_sdp_Q_fft : NATURAL := 2; - CONSTANT c_sdp_N_taps : NATURAL := 16; - CONSTANT c_sdp_W_adc : NATURAL := 14; - CONSTANT c_sdp_W_fir_coef : NATURAL := 16; - CONSTANT c_sdp_W_subband : NATURAL := 18; - CONSTANT c_sdp_P_pfb : NATURAL := c_sdp_S_pn/c_sdp_Q_fft; - CONSTANT c_sdp_S_sub_bf : NATURAL := 488; - CONSTANT c_sdp_f_adc_MHz : NATURAL := 200; - CONSTANT c_sdp_T_adc : TIME := (10**6/c_sdp_f_adc_MHz) * 1 ps; - CONSTANT c_sdp_T_sub : TIME := c_sdp_N_fft * c_sdp_T_adc; - CONSTANT c_sdp_W_sub_weight : NATURAL := 16; + CONSTANT c_sdp_N_pol : NATURAL := 2; + CONSTANT c_sdp_N_sub : NATURAL := 512; + CONSTANT c_sdp_N_fft : NATURAL := 1024; + CONSTANT c_sdp_S_pn : NATURAL := 12; + CONSTANT c_sdp_Q_fft : NATURAL := 2; + CONSTANT c_sdp_N_taps : NATURAL := 16; + CONSTANT c_sdp_W_adc : NATURAL := 14; + CONSTANT c_sdp_W_fir_coef : NATURAL := 16; + CONSTANT c_sdp_W_subband : NATURAL := 18; + CONSTANT c_sdp_P_pfb : NATURAL := c_sdp_S_pn/c_sdp_Q_fft; + CONSTANT c_sdp_S_sub_bf : NATURAL := 488; + CONSTANT c_sdp_f_adc_MHz : NATURAL := 200; + CONSTANT c_sdp_T_adc : TIME := (10**6/c_sdp_f_adc_MHz) * 1 ps; + CONSTANT c_sdp_T_sub : TIME := c_sdp_N_fft * c_sdp_T_adc; + CONSTANT c_sdp_W_sub_weight : NATURAL := 16; CONSTANT c_sdp_W_sub_magnitude : NATURAL := 2; - CONSTANT c_sdp_W_sub_fraction : NATURAL := c_sdp_W_sub_weight - c_sdp_W_sub_magnitude -1; - CONSTANT c_sdp_W_bf_weight : NATURAL := 16; - CONSTANT c_sdp_W_bf_magnitude : NATURAL := 1; - CONSTANT c_sdp_W_bf_fraction : NATURAL := c_sdp_W_bf_weight - c_sdp_W_bf_magnitude -1; - CONSTANT c_sdp_W_bf_product : NATURAL := c_sdp_W_subband + c_sdp_W_bf_weight -1; - CONSTANT c_sdp_W_beamlet_sum : NATURAL := 18; + CONSTANT c_sdp_W_sub_fraction : NATURAL := c_sdp_W_sub_weight - c_sdp_W_sub_magnitude -1; + CONSTANT c_sdp_W_bf_weight : NATURAL := 16; + CONSTANT c_sdp_W_bf_magnitude : NATURAL := 1; + CONSTANT c_sdp_W_bf_fraction : NATURAL := c_sdp_W_bf_weight - c_sdp_W_bf_magnitude -1; + CONSTANT c_sdp_W_bf_product : NATURAL := c_sdp_W_subband + c_sdp_W_bf_weight -1; + CONSTANT c_sdp_W_beamlet_sum : NATURAL := 18; + CONSTANT c_sdp_W_beamlet : NATURAL := 8; + -- AIT constants CONSTANT c_sdp_ait_buf_nof_data_jesd : NATURAL := 1024; -- 1024 14 bit samples fit in one M20k BRAM CONSTANT c_sdp_ait_buf_nof_data_bsn : NATURAL := 1024; -- 1024 14 bit samples fit in one M20k BRAM