Skip to content
Snippets Groups Projects

Add debug constant c_transpose_indices_inv and swap transpose order in...

3 files
+ 62
41
Compare changes
  • Side-by-side
  • Inline

Files

@@ -246,14 +246,21 @@ architecture tb of tb_lofar2_unb2c_sdp_station_bf is
@@ -246,14 +246,21 @@ architecture tb of tb_lofar2_unb2c_sdp_station_bf is
x"1400" -- block_period = 5120
x"1400" -- block_period = 5120
);
);
-- Expected transposed indices order by func_reorder_transpose_packet().
-- Expected transposed indices order by func_sdp_bdo_transpose_packet().
-- Yields same c_reorder_transpose_indices order as:
-- 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
-- > 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_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) :=
-- Use c_transpose_indices and c_transpose_indices_inv for view in Objects window.
func_reorder_transpose_indices(c_sdp_cep_nof_blocks_per_packet,
-- The c_transpose_indices is used in sdp_beamformer_output, therefore use
c_sdp_cep_nof_beamlets_per_block,
-- c_transpose_indices_inv for func_reorder_transpose_packet() in the tb.
c_sdp_N_pol_bf);
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
-- 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
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
@@ -1404,11 +1411,12 @@ begin
-- Wait until end of a beamlet packet
-- Wait until end of a beamlet packet
wait until rising_edge(ext_clk); -- to avoid Modelsim warning: (vcom-1090)
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
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,
-- Inverse tranpose
c_sdp_cep_nof_beamlets_per_block,
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_packet_list_re);
rx_reordered_list_im <= func_sdp_bdo_transpose_packet(c_sdp_cep_nof_blocks_per_packet,
rx_reordered_list_im <= func_sdp_bdo_transpose_packet(c_sdp_cep_nof_beamlets_per_block,
c_sdp_cep_nof_beamlets_per_block,
c_sdp_cep_nof_blocks_per_packet,
rx_packet_list_im);
rx_packet_list_im);
end process;
end process;
Loading