Skip to content
Snippets Groups Projects
Commit 221436dd authored by Eric Kooistra's avatar Eric Kooistra
Browse files

Read beamlet output siso MP.

parent bdd23838
No related branches found
No related tags found
1 merge request!412Resolve L2SDP-885 "B"
Pipeline #84954 passed
...@@ -361,6 +361,7 @@ architecture tb of tb_lofar2_unb2c_sdp_station_bf is ...@@ -361,6 +361,7 @@ architecture tb of tb_lofar2_unb2c_sdp_station_bf is
constant c_addr_w_reg_stat_enable_bst : natural := c_sdp_reg_stat_enable_addr_w; constant c_addr_w_reg_stat_enable_bst : natural := c_sdp_reg_stat_enable_addr_w;
constant c_addr_w_reg_dp_xonoff : natural := 1; constant c_addr_w_reg_dp_xonoff : natural := 1;
constant c_addr_w_ram_st_bst : natural := ceil_log2(c_sdp_S_sub_bf * c_sdp_N_pol_bf * c_stat_data_sz); constant c_addr_w_ram_st_bst : natural := ceil_log2(c_sdp_S_sub_bf * c_sdp_N_pol_bf * c_stat_data_sz);
constant c_addr_w_reg_bsn_monitor_v2 : natural := 3;
-- . Address spans of a single MM instance -- . Address spans of a single MM instance
-- . c_sdp_S_pn = 12 instances -- . c_sdp_S_pn = 12 instances
constant c_mm_span_reg_diag_wg : natural := 2**c_addr_w_reg_diag_wg; constant c_mm_span_reg_diag_wg : natural := 2**c_addr_w_reg_diag_wg;
...@@ -373,6 +374,7 @@ architecture tb of tb_lofar2_unb2c_sdp_station_bf is ...@@ -373,6 +374,7 @@ architecture tb of tb_lofar2_unb2c_sdp_station_bf is
constant c_mm_span_reg_stat_enable_bst : natural := 2**c_addr_w_reg_stat_enable_bst; constant c_mm_span_reg_stat_enable_bst : natural := 2**c_addr_w_reg_stat_enable_bst;
constant c_mm_span_reg_dp_xonoff : natural := 2**c_addr_w_reg_dp_xonoff; constant c_mm_span_reg_dp_xonoff : natural := 2**c_addr_w_reg_dp_xonoff;
constant c_mm_span_ram_st_bst : natural := 2**c_addr_w_ram_st_bst; constant c_mm_span_ram_st_bst : natural := 2**c_addr_w_ram_st_bst;
constant c_mm_span_reg_bsn_monitor_v2 : natural := 2**c_addr_w_reg_bsn_monitor_v2;
constant c_mm_file_reg_ppsh : string := mmf_unb_file_prefix(c_unb_nr, c_node_nr) & "PIO_PPS"; constant c_mm_file_reg_ppsh : string := mmf_unb_file_prefix(c_unb_nr, c_node_nr) & "PIO_PPS";
constant c_mm_file_reg_bsn_source_v2 : string := mmf_unb_file_prefix(c_unb_nr, c_node_nr) & "REG_BSN_SOURCE_V2"; constant c_mm_file_reg_bsn_source_v2 : string := mmf_unb_file_prefix(c_unb_nr, c_node_nr) & "REG_BSN_SOURCE_V2";
...@@ -390,6 +392,8 @@ architecture tb of tb_lofar2_unb2c_sdp_station_bf is ...@@ -390,6 +392,8 @@ architecture tb of tb_lofar2_unb2c_sdp_station_bf is
constant c_mm_file_reg_sdp_info : string := mmf_unb_file_prefix(c_unb_nr, c_node_nr) & "REG_SDP_INFO"; constant c_mm_file_reg_sdp_info : string := mmf_unb_file_prefix(c_unb_nr, c_node_nr) & "REG_SDP_INFO";
constant c_mm_file_reg_hdr_dat : string := mmf_unb_file_prefix(c_unb_nr, c_node_nr) & "REG_HDR_DAT"; -- c_sdp_N_beamsets = 2 beamsets constant c_mm_file_reg_hdr_dat : string := mmf_unb_file_prefix(c_unb_nr, c_node_nr) & "REG_HDR_DAT"; -- c_sdp_N_beamsets = 2 beamsets
constant c_mm_file_reg_bdo_destinations : string := mmf_unb_file_prefix(c_unb_nr, c_node_nr) & "REG_BDO_DESTINATIONS"; constant c_mm_file_reg_bdo_destinations : string := mmf_unb_file_prefix(c_unb_nr, c_node_nr) & "REG_BDO_DESTINATIONS";
constant c_mm_file_reg_bsn_monitor_v2_beamlet_output : string :=
mmf_unb_file_prefix(c_unb_nr, c_node_nr) & "REG_BSN_MONITOR_V2_BEAMLET_OUTPUT";
-- Tb BSN moments -- Tb BSN moments
constant c_stimuli_done_bsn : natural := c_init_bsn + c_bsn_latency + c_nof_block_per_sync * 4; constant c_stimuli_done_bsn : natural := c_init_bsn + c_bsn_latency + c_nof_block_per_sync * 4;
...@@ -424,6 +428,9 @@ architecture tb of tb_lofar2_unb2c_sdp_station_bf is ...@@ -424,6 +428,9 @@ architecture tb of tb_lofar2_unb2c_sdp_station_bf is
signal rd_nof_destinations_act : natural; signal rd_nof_destinations_act : natural;
signal rd_nof_destinations_max : natural; signal rd_nof_destinations_max : natural;
signal rd_nof_blocks_per_packet : natural; signal rd_nof_blocks_per_packet : natural;
signal rd_bsn_monitor_v2_beamlet_output : std_logic := '0'; -- strobe
signal rd_bsn_monitor_v2_beamlet_output_xon : std_logic;
signal rd_bsn_monitor_v2_beamlet_output_ready : std_logic;
-- WG -- WG
signal current_bsn_wg : std_logic_vector(c_dp_stream_bsn_w - 1 downto 0); signal current_bsn_wg : std_logic_vector(c_dp_stream_bsn_w - 1 downto 0);
...@@ -738,6 +745,17 @@ begin ...@@ -738,6 +745,17 @@ begin
report "Wrong MM read SDP info block_period" report "Wrong MM read SDP info block_period"
severity ERROR; severity ERROR;
----------------------------------------------------------------------------
-- Read 10GbE beamlet output SISO status before enable beamlet output
----------------------------------------------------------------------------
mmf_mm_bus_rd(c_mm_file_reg_bsn_monitor_v2_beamlet_output, 0, rd_data, tb_clk);
proc_common_wait_some_cycles(tb_clk, 1);
rd_bsn_monitor_v2_beamlet_output <= '1';
rd_bsn_monitor_v2_beamlet_output_xon <= rd_data(0);
rd_bsn_monitor_v2_beamlet_output_ready <= rd_data(1);
proc_common_wait_some_cycles(tb_clk, 10);
rd_bsn_monitor_v2_beamlet_output <= '0';
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
---- Set and check BF per beamset ---- Set and check BF per beamset
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
...@@ -1168,6 +1186,21 @@ begin ...@@ -1168,6 +1186,21 @@ begin
-- Stimuli done, now verify results at end of test -- Stimuli done, now verify results at end of test
stimuli_done <= '1'; stimuli_done <= '1';
----------------------------------------------------------------------------
-- Read 10GbE beamlet output SISO status again during active beamlet
-- output, because BSN monitor status only gets updated at sosi.sync
-- These MP are not useful, because they are only updated when there
-- is active beamlet output data and because ready remains '0' when it
-- toggles during a sync interval.
----------------------------------------------------------------------------
mmf_mm_bus_rd(c_mm_file_reg_bsn_monitor_v2_beamlet_output, 0, rd_data, tb_clk);
proc_common_wait_some_cycles(tb_clk, 1);
rd_bsn_monitor_v2_beamlet_output <= '1';
rd_bsn_monitor_v2_beamlet_output_xon <= rd_data(0);
rd_bsn_monitor_v2_beamlet_output_ready <= rd_data(1);
proc_common_wait_some_cycles(tb_clk, 10);
rd_bsn_monitor_v2_beamlet_output <= '0';
--------------------------------------------------------------------------- ---------------------------------------------------------------------------
-- Read subband statistics -- Read subband statistics
--------------------------------------------------------------------------- ---------------------------------------------------------------------------
......
...@@ -37,6 +37,8 @@ ...@@ -37,6 +37,8 @@
-- valid remains active until an acknowledge by ready) -- valid remains active until an acknowledge by ready)
-- . If mon_sync_timeout = '1', all output vectors are forced -1 (all ones) to -- . If mon_sync_timeout = '1', all output vectors are forced -1 (all ones) to
-- indicate they are not valid. -- indicate they are not valid.
-- . The single bit siso status signals mon_ready_stable and mon_xon_stable
-- are less useful, because they do not support an invalid value.
-- -------------------------------------------------------------------------- -- --------------------------------------------------------------------------
library IEEE, common_lib; library IEEE, common_lib;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment