From d5eb1015a376a978e680bd5b96591319cc7e7b49 Mon Sep 17 00:00:00 2001 From: Eric Kooistra <kooistra@astron.nl> Date: Wed, 6 Sep 2023 10:52:18 +0200 Subject: [PATCH] Use separate tb to verify dp_packet_unmerge. --- .../base/dp/tb/vhdl/tb_dp_packet_merge.vhd | 35 ++++------------ .../base/dp/tb/vhdl/tb_tb_dp_packet_merge.vhd | 41 +++++++++---------- 2 files changed, 27 insertions(+), 49 deletions(-) diff --git a/libraries/base/dp/tb/vhdl/tb_dp_packet_merge.vhd b/libraries/base/dp/tb/vhdl/tb_dp_packet_merge.vhd index 6466f7e36b..fe8db32e27 100644 --- a/libraries/base/dp/tb/vhdl/tb_dp_packet_merge.vhd +++ b/libraries/base/dp/tb/vhdl/tb_dp_packet_merge.vhd @@ -21,7 +21,7 @@ ------------------------------------------------------------------------------- -- Purpose: --- . Test bench for dp_packet_merge and dp_packet_unmerge +-- . Test bench for dp_packet_merge -- Description: -- . The p_stimuli_st uses proc_dp_gen_block_data to generate g_nof_repeat packets for the DUT. The output of the DUT needs -- to be similar e.g. by means of an inverse DUT component so that the proc_dp_verify_* procedures can be used to verify @@ -29,6 +29,8 @@ -- verify that the test bench has yielded output results at all and that the output valid, sop, eop, and ready fits the -- streaming interface specification. -- . A seperate p_stimuli_mm process may be used to verify the nof_pkt input of the DUT. +-- . Use separate tb_dp_packet_merge_unmerge to verify dp_packet_unmerge, to have easier control +-- over expected output channel, err and empty of dp_packet_unmerge. -- Usage: -- > as 10 -- > run -all @@ -67,8 +69,7 @@ entity tb_dp_packet_merge is g_align_at_sync : boolean := false; g_verify_bsn_err : boolean := false; g_bsn_increment : natural := 2; - g_bsn_err_at_pkt_index : natural := 6; -- force wrong snk_in.bsn for packet with this index, in range(g_nof_repeat) - g_use_dp_packet_unmerge : boolean := false + g_bsn_err_at_pkt_index : natural := 6 -- force wrong snk_in.bsn for packet with this index, in range(g_nof_repeat) ); end tb_dp_packet_merge; @@ -205,7 +206,7 @@ begin end loop; -- Determine expected sosi field values after end of stimuli - ---- . e_qual (account for merge size g_nof_pkt) + -- . e_qual (account for merge size g_nof_pkt) -- . e_at_least v_sosi.bsn := std_logic_vector( unsigned(c_bsn_init) + c_verify_at_least * g_nof_pkt); v_sosi.channel := TO_DP_CHANNEL(c_channel_init + c_verify_at_least * g_nof_pkt); @@ -316,30 +317,8 @@ begin ------------------------------------------------------------------------------ -- Optional reverse DUT dp_packet_unmerge ------------------------------------------------------------------------------ - no_dp_packet_unmerge : if g_use_dp_packet_unmerge = false generate - dp_packet_merge_src_in <= verify_snk_out; - verify_snk_in <= dp_packet_merge_src_out; - end generate; - - gen_dp_packet_unmerge : if g_use_dp_packet_unmerge = true generate - u_dp_packet_unmerge : entity work.dp_packet_unmerge - generic map ( - g_nof_pkt => g_nof_pkt - ) - port map ( - rst => rst, - clk => clk, - - snk_out => dp_packet_merge_src_in, - snk_in => dp_packet_merge_src_out, - - src_in => dp_packet_unmerge_src_in, - src_out => dp_packet_unmerge_src_out - ); - - dp_packet_unmerge_src_in <= verify_snk_out; - verify_snk_in <= dp_packet_unmerge_src_out; - end generate; + dp_packet_merge_src_in <= verify_snk_out; + verify_snk_in <= dp_packet_merge_src_out; -- Map to slv to ease monitoring in wave window stimuli_data <= stimuli_src_out.data(g_data_w - 1 downto 0); diff --git a/libraries/base/dp/tb/vhdl/tb_tb_dp_packet_merge.vhd b/libraries/base/dp/tb/vhdl/tb_tb_dp_packet_merge.vhd index 46fbd725ba..f08c53a92d 100644 --- a/libraries/base/dp/tb/vhdl/tb_tb_dp_packet_merge.vhd +++ b/libraries/base/dp/tb/vhdl/tb_tb_dp_packet_merge.vhd @@ -50,29 +50,28 @@ begin -- g_verify_bsn_err : boolean := false; -- g_bsn_increment : natural := 0; -- g_bsn_err_at_pkt_index : natural := 3; - -- g_use_dp_packet_unmerge : boolean := false - u_act_act_8_nof_0 : entity work.tb_dp_packet_merge generic map ( e_active, e_active, 8, c_nof_repeat, 0, 29, 0, false, false, 1, 0, false); - u_act_act_8_nof_1 : entity work.tb_dp_packet_merge generic map ( e_active, e_active, 8, c_nof_repeat, 1, 29, 0, false, false, 1, 0, false); - u_act_act_8_nof_2 : entity work.tb_dp_packet_merge generic map ( e_active, e_active, 8, c_nof_repeat, 2, 29, 0, false, false, 1, 0, false); - u_act_act_8_nof_3 : entity work.tb_dp_packet_merge generic map ( e_active, e_active, 8, c_nof_repeat, 3, 29, 0, false, false, 1, 0, false); - u_act_act_8_nof_4 : entity work.tb_dp_packet_merge generic map ( e_active, e_active, 8, c_nof_repeat, 4, 29, 0, false, false, 1, 0, false); - u_act_act_8_nof_5 : entity work.tb_dp_packet_merge generic map ( e_active, e_active, 8, c_nof_repeat, 5, 29, 0, false, false, 1, 0, false); - u_act_act_8_nof_6 : entity work.tb_dp_packet_merge generic map ( e_active, e_active, 8, c_nof_repeat, 6, 29, 0, false, false, 1, 0, false); - u_act_act_8_nof_7 : entity work.tb_dp_packet_merge generic map ( e_active, e_active, 8, c_nof_repeat, 7, 29, 0, false, false, 1, 0, false); + u_act_act_8_nof_0 : entity work.tb_dp_packet_merge generic map ( e_active, e_active, 8, c_nof_repeat, 0, 29, 0, false, false, 1, 0); + u_act_act_8_nof_1 : entity work.tb_dp_packet_merge generic map ( e_active, e_active, 8, c_nof_repeat, 1, 29, 0, false, false, 1, 0); + u_act_act_8_nof_2 : entity work.tb_dp_packet_merge generic map ( e_active, e_active, 8, c_nof_repeat, 2, 29, 0, false, false, 1, 0); + u_act_act_8_nof_3 : entity work.tb_dp_packet_merge generic map ( e_active, e_active, 8, c_nof_repeat, 3, 29, 0, false, false, 1, 0); + u_act_act_8_nof_4 : entity work.tb_dp_packet_merge generic map ( e_active, e_active, 8, c_nof_repeat, 4, 29, 0, false, false, 1, 0); + u_act_act_8_nof_5 : entity work.tb_dp_packet_merge generic map ( e_active, e_active, 8, c_nof_repeat, 5, 29, 0, false, false, 1, 0); + u_act_act_8_nof_6 : entity work.tb_dp_packet_merge generic map ( e_active, e_active, 8, c_nof_repeat, 6, 29, 0, false, false, 1, 0); + u_act_act_8_nof_7 : entity work.tb_dp_packet_merge generic map ( e_active, e_active, 8, c_nof_repeat, 7, 29, 0, false, false, 1, 0); - u_rnd_act_8_nof_3 : entity work.tb_dp_packet_merge generic map ( e_random, e_active, 8, c_nof_repeat, 3, 29, 0, false, false, 2, 0, false); - u_rnd_rnd_8_nof_3 : entity work.tb_dp_packet_merge generic map ( e_random, e_random, 8, c_nof_repeat, 3, 29, 0, false, false, 3, 0, false); - u_pls_act_8_nof_3 : entity work.tb_dp_packet_merge generic map ( e_pulse, e_active, 8, c_nof_repeat, 3, 29, 0, false, false, 4, 0, false); - u_pls_rnd_8_nof_3 : entity work.tb_dp_packet_merge generic map ( e_pulse, e_random, 8, c_nof_repeat, 3, 29, 0, false, false, 5, 0, false); - u_pls_pls_8_nof_3 : entity work.tb_dp_packet_merge generic map ( e_pulse, e_pulse, 8, c_nof_repeat, 3, 29, 0, false, false, 6, 0, false); + u_rnd_act_8_nof_3 : entity work.tb_dp_packet_merge generic map ( e_random, e_active, 8, c_nof_repeat, 3, 29, 0, false, false, 2, 0); + u_rnd_rnd_8_nof_3 : entity work.tb_dp_packet_merge generic map ( e_random, e_random, 8, c_nof_repeat, 3, 29, 0, false, false, 3, 0); + u_pls_act_8_nof_3 : entity work.tb_dp_packet_merge generic map ( e_pulse, e_active, 8, c_nof_repeat, 3, 29, 0, false, false, 4, 0); + u_pls_rnd_8_nof_3 : entity work.tb_dp_packet_merge generic map ( e_pulse, e_random, 8, c_nof_repeat, 3, 29, 0, false, false, 5, 0); + u_pls_pls_8_nof_3 : entity work.tb_dp_packet_merge generic map ( e_pulse, e_pulse, 8, c_nof_repeat, 3, 29, 0, false, false, 6, 0); - u_rnd_act_8_nof_1 : entity work.tb_dp_packet_merge generic map ( e_random, e_active, 8, c_nof_repeat, 1, 29, 0, false, false, 1, 0, false); - u_rnd_act_8_nof_3_gap : entity work.tb_dp_packet_merge generic map ( e_random, e_active, 8, c_nof_repeat, 3, 29, 17, false, false, 1, 0, false); + u_rnd_act_8_nof_1 : entity work.tb_dp_packet_merge generic map ( e_random, e_active, 8, c_nof_repeat, 1, 29, 0, false, false, 1, 0); + u_rnd_act_8_nof_3_gap : entity work.tb_dp_packet_merge generic map ( e_random, e_active, 8, c_nof_repeat, 3, 29, 17, false, false, 1, 0); - u_act_act_8_nof_3_no_err : entity work.tb_dp_packet_merge generic map ( e_active, e_active, 8, c_nof_repeat, 3, 29, 0, false, true, 0, 10, false); - u_act_act_8_nof_3_err_10 : entity work.tb_dp_packet_merge generic map ( e_active, e_active, 8, c_nof_repeat, 3, 29, 0, false, true, 1, 10, false); - u_act_act_8_nof_3_err_11 : entity work.tb_dp_packet_merge generic map ( e_active, e_active, 8, c_nof_repeat, 3, 29, 0, false, true, 1, 11, false); - u_act_act_8_nof_3_err_12 : entity work.tb_dp_packet_merge generic map ( e_active, e_active, 8, c_nof_repeat, 3, 29, 0, false, true, 1, 12, false); - u_act_act_8_nof_3_err_13 : entity work.tb_dp_packet_merge generic map ( e_active, e_active, 8, c_nof_repeat, 3, 29, 0, false, true, 1, 13, false); + u_act_act_8_nof_3_no_err : entity work.tb_dp_packet_merge generic map ( e_active, e_active, 8, c_nof_repeat, 3, 29, 0, false, true, 0, 10); + u_act_act_8_nof_3_err_10 : entity work.tb_dp_packet_merge generic map ( e_active, e_active, 8, c_nof_repeat, 3, 29, 0, false, true, 1, 10); + u_act_act_8_nof_3_err_11 : entity work.tb_dp_packet_merge generic map ( e_active, e_active, 8, c_nof_repeat, 3, 29, 0, false, true, 1, 11); + u_act_act_8_nof_3_err_12 : entity work.tb_dp_packet_merge generic map ( e_active, e_active, 8, c_nof_repeat, 3, 29, 0, false, true, 1, 12); + u_act_act_8_nof_3_err_13 : entity work.tb_dp_packet_merge generic map ( e_active, e_active, 8, c_nof_repeat, 3, 29, 0, false, true, 1, 13); end tb; -- GitLab