From 614e885b38c80b86f51341fa25edbf8e1ac6df91 Mon Sep 17 00:00:00 2001 From: Eric Kooistra <kooistra@astron.nl> Date: Thu, 31 Aug 2023 09:47:17 +0200 Subject: [PATCH] Add debug constant c_transpose_indices_inv and swap transpose order in p_rx_reordered_list to undo tranpose of sdp_beamformer_output. --- .../tb_lofar2_unb2c_sdp_station_bf.vhd | 30 ++++++++++++------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/applications/lofar2/designs/lofar2_unb2c_sdp_station/revisions/lofar2_unb2c_sdp_station_bf/tb_lofar2_unb2c_sdp_station_bf.vhd b/applications/lofar2/designs/lofar2_unb2c_sdp_station/revisions/lofar2_unb2c_sdp_station_bf/tb_lofar2_unb2c_sdp_station_bf.vhd index 7acfa22c2a..b1d36877af 100644 --- a/applications/lofar2/designs/lofar2_unb2c_sdp_station/revisions/lofar2_unb2c_sdp_station_bf/tb_lofar2_unb2c_sdp_station_bf.vhd +++ b/applications/lofar2/designs/lofar2_unb2c_sdp_station/revisions/lofar2_unb2c_sdp_station_bf/tb_lofar2_unb2c_sdp_station_bf.vhd @@ -246,14 +246,21 @@ architecture tb of tb_lofar2_unb2c_sdp_station_bf is x"1400" -- block_period = 5120 ); - -- Expected transposed indices order by func_reorder_transpose_packet(). - -- Yields same c_reorder_transpose_indices order as: + -- Expected transposed indices order by func_sdp_bdo_transpose_packet(). + -- Yields same c_transpose_indices order as func_reorder_transpose_packet(): -- > python applications/lofar2/libraries/sdp/src/python/test_func_sdp_bdo_transpose_packet.py - constant c_nof_ch : natural := c_sdp_cep_nof_beamlets_per_packet * c_sdp_N_pol_bf; - constant c_reorder_transpose_indices : t_natural_arr(0 to c_nof_ch - 1) := - func_reorder_transpose_indices(c_sdp_cep_nof_blocks_per_packet, - c_sdp_cep_nof_beamlets_per_block, - c_sdp_N_pol_bf); + constant c_nof_ch : natural := c_sdp_cep_nof_beamlets_per_packet * c_sdp_N_pol_bf; + -- Use c_transpose_indices and c_transpose_indices_inv for view in Objects window. + -- The c_transpose_indices is used in sdp_beamformer_output, therefore use + -- c_transpose_indices_inv for func_reorder_transpose_packet() in the tb. + constant c_transpose_indices : t_natural_arr(0 to c_nof_ch - 1) := + func_reorder_transpose_indices(c_sdp_cep_nof_blocks_per_packet, + c_sdp_cep_nof_beamlets_per_block, + c_sdp_N_pol_bf); + constant c_transpose_indices_inv : t_natural_arr(0 to c_nof_ch - 1) := + func_reorder_transpose_indices(c_sdp_cep_nof_beamlets_per_block, + c_sdp_cep_nof_blocks_per_packet, + c_sdp_N_pol_bf); -- WG constant c_bsn_start_wg : natural := c_init_bsn + 2; -- start WG at this BSN to instead of some BSN, to avoid mismatches in exact expected data values @@ -1404,11 +1411,12 @@ begin -- Wait until end of a beamlet packet wait until rising_edge(ext_clk); -- to avoid Modelsim warning: (vcom-1090) proc_common_wait_until_hi_lo(ext_clk, rx_beamlet_sosi.eop); -- to reduce simulation effort - rx_reordered_list_re <= func_sdp_bdo_transpose_packet(c_sdp_cep_nof_blocks_per_packet, - c_sdp_cep_nof_beamlets_per_block, + -- Inverse tranpose + rx_reordered_list_re <= func_sdp_bdo_transpose_packet(c_sdp_cep_nof_beamlets_per_block, + c_sdp_cep_nof_blocks_per_packet, rx_packet_list_re); - rx_reordered_list_im <= func_sdp_bdo_transpose_packet(c_sdp_cep_nof_blocks_per_packet, - c_sdp_cep_nof_beamlets_per_block, + rx_reordered_list_im <= func_sdp_bdo_transpose_packet(c_sdp_cep_nof_beamlets_per_block, + c_sdp_cep_nof_blocks_per_packet, rx_packet_list_im); end process; -- GitLab