From 9820b94f64a0d20ed70d8ce564964351ca6b0f35 Mon Sep 17 00:00:00 2001 From: Eric Kooistra <kooistra@astron.nl> Date: Wed, 12 Jan 2022 15:21:29 +0100 Subject: [PATCH] Improved p_rd_rx_hdr_words. --- libraries/base/dp/tb/vhdl/tb_dp_offload_tx_v3.vhd | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/libraries/base/dp/tb/vhdl/tb_dp_offload_tx_v3.vhd b/libraries/base/dp/tb/vhdl/tb_dp_offload_tx_v3.vhd index 0481f2ff99..7b079c77f9 100644 --- a/libraries/base/dp/tb/vhdl/tb_dp_offload_tx_v3.vhd +++ b/libraries/base/dp/tb/vhdl/tb_dp_offload_tx_v3.vhd @@ -56,7 +56,6 @@ ENTITY tb_dp_offload_tx_v3 IS g_flow_control_verify : t_dp_flow_control_enum := e_active; -- always e_active, e_random or e_pulse flow control -- specific g_data_w : NATURAL := 64; - g_nof_repeat : NATURAL := 100; g_pkt_len : NATURAL := 240; g_pkt_gap : NATURAL := 16 ); @@ -87,9 +86,11 @@ ARCHITECTURE tb OF tb_dp_offload_tx_v3 IS CONSTANT c_sync_period : NATURAL := 5; CONSTANT c_sync_offset : NATURAL := 2; CONSTANT c_bsn_init : STD_LOGIC_VECTOR(c_dp_stream_bsn_w-1 DOWNTO 0) := TO_DP_BSN(0); + CONSTANT c_nof_sync : NATURAL := 5; + CONSTANT c_nof_packets : NATURAL := c_sync_period * c_nof_sync; CONSTANT c_hdr_len : NATURAL := 7; - CONSTANT c_wait_last_evt : NATURAL := 100 + g_nof_repeat * c_hdr_len; + CONSTANT c_wait_last_evt : NATURAL := 100 + c_nof_packets * c_hdr_len; ----------------------------------------------------------------------------- -- Tx offload @@ -279,7 +280,7 @@ BEGIN g_bsn_init => c_bsn_init, -- specific g_in_dat_w => g_data_w, - g_nof_repeat => g_nof_repeat, + g_nof_repeat => c_nof_packets, g_pkt_len => g_pkt_len, g_pkt_gap => g_pkt_gap, g_wait_last_evt => c_wait_last_evt @@ -437,7 +438,6 @@ BEGIN p_rd_tx_hdr_words : PROCESS VARIABLE v_word : STD_LOGIC_VECTOR(c_word_w-1 DOWNTO 0); BEGIN - proc_common_wait_until_hi_lo(dp_clk, tx_offload_sosi_arr(0).sync); proc_common_wait_until_hi_lo(dp_clk, tx_offload_sosi_arr(0).sync); print_str(""); FOR I IN 0 TO c_udp_offload_nof_hdr_words-1 LOOP @@ -522,6 +522,8 @@ BEGIN proc_common_wait_until_hi_lo(dp_clk, verify_snk_in.sync); proc_common_wait_until_hi_lo(dp_clk, verify_snk_in.sync); proc_common_wait_until_hi_lo(dp_clk, verify_snk_in.sync); + -- wait some latency until header fields of this sync packet are available via MM + proc_common_wait_some_cycles(dp_clk, 10); print_str(""); FOR I IN 0 TO c_udp_offload_nof_hdr_words-1 LOOP proc_mem_mm_bus_rd(I, mm_clk, reg_dp_offload_rx_hdr_dat_mosi); -- GitLab