From 32192a938d949acdb49850a06edcc653aece59f0 Mon Sep 17 00:00:00 2001
From: Eric Kooistra <kooistra@astron.nl>
Date: Thu, 6 Oct 2022 10:49:44 +0200
Subject: [PATCH] Correct c_eth_runtime_timeout to account for skipped first
 new_interval.

---
 .../tb_lofar2_unb2c_sdp_station_fsub_sst_offload.vhd   | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/applications/lofar2/designs/lofar2_unb2c_sdp_station/revisions/lofar2_unb2c_sdp_station_fsub/tb_lofar2_unb2c_sdp_station_fsub_sst_offload.vhd b/applications/lofar2/designs/lofar2_unb2c_sdp_station/revisions/lofar2_unb2c_sdp_station_fsub/tb_lofar2_unb2c_sdp_station_fsub_sst_offload.vhd
index 74694c689d..82d0a90366 100644
--- a/applications/lofar2/designs/lofar2_unb2c_sdp_station/revisions/lofar2_unb2c_sdp_station_fsub/tb_lofar2_unb2c_sdp_station_fsub_sst_offload.vhd
+++ b/applications/lofar2/designs/lofar2_unb2c_sdp_station/revisions/lofar2_unb2c_sdp_station_fsub/tb_lofar2_unb2c_sdp_station_fsub_sst_offload.vhd
@@ -74,7 +74,7 @@ ARCHITECTURE tb OF tb_lofar2_unb2c_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 := 2;
+  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,13 +88,15 @@ ARCHITECTURE tb OF tb_lofar2_unb2c_sdp_station_fsub_sst_offload IS
   SIGNAL eth_done            : STD_LOGIC := '0';
 
   -- . 1GbE output
-  CONSTANT c_eth_check_nof_packets        : NATURAL := c_nof_sync * c_sdp_S_pn;
+  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 := (c_nof_sync + 1) * c_nof_clk_per_sync * c_ext_clk_period;  -- eth statistics should be done after c_nof_sync intervals
-  
+
+  -- 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