From cc9734bfb28d27632a9d1f5d7b0699a6d68cd701 Mon Sep 17 00:00:00 2001 From: Eric Kooistra <kooistra@astron.nl> Date: Thu, 6 Oct 2022 10:40:41 +0200 Subject: [PATCH] Correct c_eth_runtime_timeout to account for skipped first new_interval. --- .../tb_lofar2_unb2b_sdp_station_bf_bst_offload.vhd | 7 +++++-- .../tb_lofar2_unb2b_sdp_station_fsub_sst_offload.vhd | 9 ++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/applications/lofar2/designs/lofar2_unb2b_sdp_station/revisions/lofar2_unb2b_sdp_station_bf/tb_lofar2_unb2b_sdp_station_bf_bst_offload.vhd b/applications/lofar2/designs/lofar2_unb2b_sdp_station/revisions/lofar2_unb2b_sdp_station_bf/tb_lofar2_unb2b_sdp_station_bf_bst_offload.vhd index c3cd741d7f..f053efd602 100644 --- a/applications/lofar2/designs/lofar2_unb2b_sdp_station/revisions/lofar2_unb2b_sdp_station_bf/tb_lofar2_unb2b_sdp_station_bf_bst_offload.vhd +++ b/applications/lofar2/designs/lofar2_unb2b_sdp_station/revisions/lofar2_unb2b_sdp_station_bf/tb_lofar2_unb2b_sdp_station_bf_bst_offload.vhd @@ -75,6 +75,7 @@ ARCHITECTURE tb OF tb_lofar2_unb2b_sdp_station_bf_bst_offload IS CONSTANT c_nof_clk_per_sync : NATURAL := c_nof_block_per_sync*c_sdp_N_fft; CONSTANT c_pps_period : NATURAL := c_nof_clk_per_sync; CONSTANT c_wpfb_sim : t_wpfb := func_wpfb_set_nof_block_per_sync(c_sdp_wpfb_subbands, c_nof_block_per_sync); + CONSTANT c_nof_sync : NATURAL := 1; -- MM CONSTANT c_mm_file_reg_bsn_source_v2 : STRING := mmf_unb_file_prefix(c_unb_nr, c_node_nr) & "REG_BSN_SOURCE_V2"; @@ -88,12 +89,14 @@ ARCHITECTURE tb OF tb_lofar2_unb2b_sdp_station_bf_bst_offload IS SIGNAL eth_done : STD_LOGIC := '0'; -- . 1GbE output - CONSTANT c_eth_check_nof_packets : NATURAL := 1; -- received packets in 1 sync period + CONSTANT c_eth_check_nof_packets : NATURAL := c_nof_sync * 1; -- 1 received packet per sync interval CONSTANT c_eth_header_size : NATURAL := 19; -- words CONSTANT c_eth_crc_size : NATURAL := 1; -- word CONSTANT c_eth_packet_size : NATURAL := c_eth_header_size + c_eth_crc_size + (c_sdp_W_statistic / c_word_w) * c_sdp_S_sub_bf * c_sdp_N_pol; -- 20 + 2 * 488 * 2 = 1972 CONSTANT c_eth_check_nof_valid : NATURAL := c_eth_check_nof_packets * c_eth_packet_size; - CONSTANT c_eth_runtime_timeout : TIME := 2 * c_nof_clk_per_sync * c_ext_clk_period; -- eth statistics should be done at the second sync interval + + -- eth statistics should be done after c_nof_sync + 1 intervals (+1 because first new_interval is skipped) + CONSTANT c_eth_runtime_timeout : TIME := (c_nof_sync + 2) * c_nof_clk_per_sync * c_ext_clk_period; -- DUT SIGNAL ext_clk : STD_LOGIC := '0'; diff --git a/applications/lofar2/designs/lofar2_unb2b_sdp_station/revisions/lofar2_unb2b_sdp_station_fsub/tb_lofar2_unb2b_sdp_station_fsub_sst_offload.vhd b/applications/lofar2/designs/lofar2_unb2b_sdp_station/revisions/lofar2_unb2b_sdp_station_fsub/tb_lofar2_unb2b_sdp_station_fsub_sst_offload.vhd index d819aae880..456f74dd11 100644 --- a/applications/lofar2/designs/lofar2_unb2b_sdp_station/revisions/lofar2_unb2b_sdp_station_fsub/tb_lofar2_unb2b_sdp_station_fsub_sst_offload.vhd +++ b/applications/lofar2/designs/lofar2_unb2b_sdp_station/revisions/lofar2_unb2b_sdp_station_fsub/tb_lofar2_unb2b_sdp_station_fsub_sst_offload.vhd @@ -74,6 +74,7 @@ ARCHITECTURE tb OF tb_lofar2_unb2b_sdp_station_fsub_sst_offload IS CONSTANT c_nof_clk_per_sync : NATURAL := c_nof_block_per_sync*c_sdp_N_fft; CONSTANT c_pps_period : NATURAL := c_nof_clk_per_sync; CONSTANT c_wpfb_sim : t_wpfb := func_wpfb_set_nof_block_per_sync(c_sdp_wpfb_subbands, c_nof_block_per_sync); + CONSTANT c_nof_sync : NATURAL := 1; -- MM CONSTANT c_mm_file_reg_bsn_source_v2 : STRING := mmf_unb_file_prefix(c_unb_nr, c_node_nr) & "REG_BSN_SOURCE_V2"; @@ -87,13 +88,15 @@ ARCHITECTURE tb OF tb_lofar2_unb2b_sdp_station_fsub_sst_offload IS SIGNAL eth_done : STD_LOGIC := '0'; -- . 1GbE output - CONSTANT c_eth_check_nof_packets : NATURAL := c_sdp_S_pn; -- received packets in 1 sync period + CONSTANT c_eth_check_nof_packets : NATURAL := c_nof_sync * c_sdp_S_pn; -- S_pn = 12 received packets per sync interval CONSTANT c_eth_header_size : NATURAL := 19; -- words CONSTANT c_eth_crc_size : NATURAL := 1; -- word CONSTANT c_eth_packet_size : NATURAL := c_eth_header_size + c_eth_crc_size + c_sdp_N_sub * (c_sdp_W_statistic / c_word_w); -- 20 + 512 * 2 = 1044 CONSTANT c_eth_check_nof_valid : NATURAL := c_eth_check_nof_packets * c_eth_packet_size; - CONSTANT c_eth_runtime_timeout : TIME := 2 * c_nof_clk_per_sync * c_ext_clk_period; -- eth statistics should be done at the second sync interval - + + -- eth statistics should be done after c_nof_sync + 1 intervals (+1 because first new_interval is skipped) + CONSTANT c_eth_runtime_timeout : TIME := (c_nof_sync + 2) * c_nof_clk_per_sync * c_ext_clk_period; + -- DUT SIGNAL ext_clk : STD_LOGIC := '0'; SIGNAL pps : STD_LOGIC := '0'; -- GitLab