From 6cdd3499a00dd6f525edd5963a7c6c3d9372e255 Mon Sep 17 00:00:00 2001 From: Eric Kooistra <kooistra@astron.nl> Date: Mon, 21 Aug 2023 08:00:44 +0200 Subject: [PATCH] Add use_bdo_transpose = false field in design revision package. --- .../src/vhdl/lofar2_unb2b_sdp_station_pkg.vhd | 25 +++++++++++-------- .../src/vhdl/lofar2_unb2c_sdp_station_pkg.vhd | 24 ++++++++++-------- .../sdp/src/vhdl/node_sdp_beamformer.vhd | 4 ++- .../sdp/src/vhdl/sdp_beamformer_output.vhd | 4 ++- .../libraries/sdp/src/vhdl/sdp_station.vhd | 2 ++ 5 files changed, 37 insertions(+), 22 deletions(-) diff --git a/applications/lofar2/designs/lofar2_unb2b_sdp_station/src/vhdl/lofar2_unb2b_sdp_station_pkg.vhd b/applications/lofar2/designs/lofar2_unb2b_sdp_station/src/vhdl/lofar2_unb2b_sdp_station_pkg.vhd index e8670d3d44..27f50b7c83 100644 --- a/applications/lofar2/designs/lofar2_unb2b_sdp_station/src/vhdl/lofar2_unb2b_sdp_station_pkg.vhd +++ b/applications/lofar2/designs/lofar2_unb2b_sdp_station/src/vhdl/lofar2_unb2b_sdp_station_pkg.vhd @@ -36,21 +36,26 @@ package lofar2_unb2b_sdp_station_pkg is use_fsub : boolean; use_oversample : boolean; use_bf : boolean; + use_bdo_transpose : boolean; use_xsub : boolean; use_ring : boolean; P_sq : natural; end record; - constant c_ait : t_lofar2_unb2b_sdp_station_config := (false, false, false, false, false, false, 0); - constant c_fsub : t_lofar2_unb2b_sdp_station_config := (false, true, false, false, false, false, 0); - constant c_bf : t_lofar2_unb2b_sdp_station_config := (false, true, false, true, false, false, 0); - constant c_bf_ring : t_lofar2_unb2b_sdp_station_config := (false, true, false, true, false, true, 0); - constant c_xsub_one : t_lofar2_unb2b_sdp_station_config := (false, true, false, false, true, false, 1); - constant c_xsub_ring : t_lofar2_unb2b_sdp_station_config := (false, true, false, false, true, true, 9); - constant c_full_wg : t_lofar2_unb2b_sdp_station_config := (true, true, false, true, true, true, 9); - constant c_full : t_lofar2_unb2b_sdp_station_config := (false, true, false, true, true, true, 9); - constant c_full_wg_os : t_lofar2_unb2b_sdp_station_config := (true, true, true, true, true, true, 9); - constant c_full_os : t_lofar2_unb2b_sdp_station_config := (false, true, true, true, true, true, 9); + constant c_ait : t_lofar2_unb2b_sdp_station_config := (false, false, false, false, false, false, false, 0); + constant c_fsub : t_lofar2_unb2b_sdp_station_config := (false, true, false, false, false, false, false, 0); + -- use c_bf on one node also to simulate bdo transpose + -- use c_bf_ring with ring also to simulate bdo identity + constant c_bf : t_lofar2_unb2b_sdp_station_config := (false, true, false, true, false, false, false, 0); + constant c_bf_ring : t_lofar2_unb2b_sdp_station_config := (false, true, false, true, false, false, true, 0); + constant c_xsub_one : t_lofar2_unb2b_sdp_station_config := (false, true, false, false, false, true, false, 1); + constant c_xsub_ring : t_lofar2_unb2b_sdp_station_config := (false, true, false, false, false, true, true, 9); + -- use c_full_wg for SDP regression test on Arts-unb2b + constant c_full_wg : t_lofar2_unb2b_sdp_station_config := (true, true, false, true, false, true, true, 9); + constant c_full : t_lofar2_unb2b_sdp_station_config := (false, true, false, true, false, true, true, 9); + constant c_full_wg_os : t_lofar2_unb2b_sdp_station_config := (true, true, true, true, false, true, true, 9); + -- use c_full_os for SDP on LTS-unb2b of Disturb2 + constant c_full_os : t_lofar2_unb2b_sdp_station_config := (false, true, true, true, false, true, true, 9); -- Function to select the revision configuration. function func_sel_revision_rec(g_design_name : string) return t_lofar2_unb2b_sdp_station_config; diff --git a/applications/lofar2/designs/lofar2_unb2c_sdp_station/src/vhdl/lofar2_unb2c_sdp_station_pkg.vhd b/applications/lofar2/designs/lofar2_unb2c_sdp_station/src/vhdl/lofar2_unb2c_sdp_station_pkg.vhd index f7b15514a3..b1115e5db2 100644 --- a/applications/lofar2/designs/lofar2_unb2c_sdp_station/src/vhdl/lofar2_unb2c_sdp_station_pkg.vhd +++ b/applications/lofar2/designs/lofar2_unb2c_sdp_station/src/vhdl/lofar2_unb2c_sdp_station_pkg.vhd @@ -36,21 +36,25 @@ package lofar2_unb2c_sdp_station_pkg is use_fsub : boolean; use_oversample : boolean; use_bf : boolean; + use_bdo_transpose : boolean; use_xsub : boolean; use_ring : boolean; P_sq : natural; end record; - constant c_ait : t_lofar2_unb2c_sdp_station_config := (false, false, false, false, false, false, 0); - constant c_fsub : t_lofar2_unb2c_sdp_station_config := (false, true, false, false, false, false, 0); - constant c_bf : t_lofar2_unb2c_sdp_station_config := (false, true, false, true, false, false, 0); - constant c_bf_ring : t_lofar2_unb2c_sdp_station_config := (false, true, false, true, false, true, 0); - constant c_xsub_one : t_lofar2_unb2c_sdp_station_config := (false, true, false, false, true, false, 1); - constant c_xsub_ring : t_lofar2_unb2c_sdp_station_config := (false, true, false, false, true, true, 9); - constant c_full_wg : t_lofar2_unb2c_sdp_station_config := (true, true, false, true, true, true, 9); - constant c_full : t_lofar2_unb2c_sdp_station_config := (false, true, false, true, true, true, 9); - constant c_full_wg_os : t_lofar2_unb2c_sdp_station_config := (true, true, true, true, true, true, 9); - constant c_full_os : t_lofar2_unb2c_sdp_station_config := (false, true, true, true, true, true, 9); + constant c_ait : t_lofar2_unb2c_sdp_station_config := (false, false, false, false, false, false, false, 0); + constant c_fsub : t_lofar2_unb2c_sdp_station_config := (false, true, false, false, false, false, false, 0); + -- use c_bf on one node also to simulate bdo transpose + -- use c_bf_ring with ring also to simulate bdo identity + constant c_bf : t_lofar2_unb2c_sdp_station_config := (false, true, false, true, false, false, false, 0); + constant c_bf_ring : t_lofar2_unb2c_sdp_station_config := (false, true, false, true, false, false, true, 0); + constant c_xsub_one : t_lofar2_unb2c_sdp_station_config := (false, true, false, false, false, true, false, 1); + constant c_xsub_ring : t_lofar2_unb2c_sdp_station_config := (false, true, false, false, false, true, true, 9); + constant c_full_wg : t_lofar2_unb2c_sdp_station_config := (true, true, false, true, false, true, true, 9); + -- Use c_full for LOFAR2 Station SDP operations + constant c_full : t_lofar2_unb2c_sdp_station_config := (false, true, false, true, false, true, true, 9); + constant c_full_wg_os : t_lofar2_unb2c_sdp_station_config := (true, true, true, true, false, true, true, 9); + constant c_full_os : t_lofar2_unb2c_sdp_station_config := (false, true, true, true, false, true, true, 9); -- Function to select the revision configuration. function func_sel_revision_rec(g_design_name : string) return t_lofar2_unb2c_sdp_station_config; diff --git a/applications/lofar2/libraries/sdp/src/vhdl/node_sdp_beamformer.vhd b/applications/lofar2/libraries/sdp/src/vhdl/node_sdp_beamformer.vhd index ccca16990b..0f5ae9e26f 100644 --- a/applications/lofar2/libraries/sdp/src/vhdl/node_sdp_beamformer.vhd +++ b/applications/lofar2/libraries/sdp/src/vhdl/node_sdp_beamformer.vhd @@ -43,6 +43,7 @@ entity node_sdp_beamformer is g_sim : boolean := false; g_sim_sdp : t_sdp_sim := c_sdp_sim; g_beamset_id : natural := 0; + g_use_bdo_transpose : boolean := false; g_scope_selected_beamlet : natural := 0; -- Use no default raw width, to force instance to set it g_subband_raw_dat_w : natural; -- default: c_sdp_W_subband; @@ -257,7 +258,8 @@ begin --------------------------------------------------------------- u_sdp_beamformer_output : entity work.sdp_beamformer_output generic map( - g_beamset_id => g_beamset_id + g_beamset_id => g_beamset_id, + g_use_transpose => g_use_bdo_transpose ) port map ( mm_rst => mm_rst, diff --git a/applications/lofar2/libraries/sdp/src/vhdl/sdp_beamformer_output.vhd b/applications/lofar2/libraries/sdp/src/vhdl/sdp_beamformer_output.vhd index 0545074b81..12d420d2ee 100644 --- a/applications/lofar2/libraries/sdp/src/vhdl/sdp_beamformer_output.vhd +++ b/applications/lofar2/libraries/sdp/src/vhdl/sdp_beamformer_output.vhd @@ -22,7 +22,7 @@ -- -- Author: R. van der Walle, E. Kooistra (payload error support) -- Purpose: --- The beamformer output (BDO) packetizes the beamlet data into UDP/IP packets. +-- The beamformer data output (BDO) packetizes the beamlet data into UDP/IP packets. -- Description: -- * https://support.astron.nl/confluence/display/L2M/L5+SDPFW+Design+Document%3A+Beamformer -- * https://support.astron.nl/confluence/display/L2M/L4+SDPFW+Decision%3A+Multiple+beamlet+output+destinations @@ -146,6 +146,7 @@ begin snk_in_concat <= in_sosi; snk_in_concat.data(c_data_w - 1 downto 0) <= in_sosi.re(c_sdp_W_beamlet - 1 downto 0) & in_sosi.im(c_sdp_W_beamlet - 1 downto 0); + ------------------------------------------------------------------------------- -- synthesis translate_off -- Force BSN error in simulation to verify payload error in tb_lofar2_unb2c_sdp_station_bf.vhd, -- this will cause two times payload errors, one when BSN goes wrong and one when BSN goes ok again. @@ -174,6 +175,7 @@ begin snk_in_concat.bsn <= INCR_UVEC(in_sosi.bsn, 1); end if; -- synthesis translate_on + ------------------------------------------------------------------------------- end process; ------------------------------------------------------------------------------- diff --git a/applications/lofar2/libraries/sdp/src/vhdl/sdp_station.vhd b/applications/lofar2/libraries/sdp/src/vhdl/sdp_station.vhd index cf4189c6ce..50e73a3cc9 100644 --- a/applications/lofar2/libraries/sdp/src/vhdl/sdp_station.vhd +++ b/applications/lofar2/libraries/sdp/src/vhdl/sdp_station.vhd @@ -66,6 +66,7 @@ entity sdp_station is g_use_oversample : boolean := false; g_use_xsub : boolean := true; g_use_bf : boolean := true; + g_use_bdo_transpose : boolean := false; g_use_ring : boolean := true; g_P_sq : natural := 1 ); @@ -916,6 +917,7 @@ begin g_sim => g_sim, g_sim_sdp => g_sim_sdp, g_beamset_id => beamset_id, + g_use_bdo_transpose => g_use_bdo_transpose, g_scope_selected_beamlet => g_scope_selected_subband, g_subband_raw_dat_w => c_subband_raw_dat_w, g_subband_raw_fraction_w => c_subband_raw_fraction_w -- GitLab