From 214a7bd1e1a4f6a420c2e3bf8441266072a2fc94 Mon Sep 17 00:00:00 2001 From: Eric Kooistra <kooistra@astron.nl> Date: Thu, 17 Aug 2023 09:07:11 +0200 Subject: [PATCH] Add verify last re and im. --- .../base/dp/tb/vhdl/dp_stream_verify.vhd | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/libraries/base/dp/tb/vhdl/dp_stream_verify.vhd b/libraries/base/dp/tb/vhdl/dp_stream_verify.vhd index 18f1cdcd87..cdc1fd67f9 100644 --- a/libraries/base/dp/tb/vhdl/dp_stream_verify.vhd +++ b/libraries/base/dp/tb/vhdl/dp_stream_verify.vhd @@ -52,7 +52,8 @@ entity dp_stream_verify is generic ( g_instance_nr : natural := 0; -- flow control - g_random_w : natural := 14; -- use different random width for stimuli and for verify to have different random sequences + -- . use different random width for stimuli and for verify to have different random sequences + g_random_w : natural := 14; g_pulse_active : natural := 1; g_pulse_period : natural := 2; g_flow_control : t_dp_flow_control_enum := e_active; -- always active, random or pulse flow control @@ -88,13 +89,19 @@ architecture tb of dp_stream_verify is constant c_rl : natural := 1; constant c_no_dut : boolean := true; - signal random : std_logic_vector(g_random_w - 1 downto 0) := TO_UVEC(g_instance_nr, g_random_w); -- use different initialization to have different random sequences per stream + -- Use different initialization by g_instance_nr, to have different random sequences per stream + signal random : std_logic_vector(g_random_w - 1 downto 0) := TO_UVEC(g_instance_nr, g_random_w); signal pulse : std_logic; signal pulse_en : std_logic := '1'; signal i_snk_out : t_dp_siso := c_dp_siso_rdy; signal prev_snk_out : t_dp_siso; - signal hold_snk_in_data : std_logic_vector(c_dp_stream_data_w - 1 downto 0); -- used to hold valid data for verify at verify_expected_snk_in_evt + + -- hold valid data for verify at verify_expected_snk_in_evt + signal hold_snk_in_data : std_logic_vector(c_dp_stream_data_w - 1 downto 0); + signal hold_snk_in_re : std_logic_vector(c_dp_stream_dsp_data_w - 1 downto 0); + signal hold_snk_in_im : std_logic_vector(c_dp_stream_dsp_data_w - 1 downto 0); + signal snk_in_data : std_logic_vector(g_in_dat_w - 1 downto 0); signal prev_snk_in : t_dp_sosi; @@ -138,8 +145,10 @@ begin proc_dp_verify_value("snk_in.eop", clk, verify_expected_snk_in_evt.eop, expected_snk_in.eop, detected_snk_in_ctrl.eop); proc_dp_verify_value("snk_in.valid", clk, verify_expected_snk_in_evt.valid, expected_snk_in.valid, detected_snk_in_ctrl.valid); - -- Verify that the last sosi data, bsn, channel and err fields are correct + -- Verify that the last sosi data, re, im, bsn, channel and err fields are correct proc_dp_verify_value("snk_in.data", e_equal, clk, verify_expected_snk_in_evt.data, expected_snk_in.data, hold_snk_in_data); + proc_dp_verify_value("snk_in.re", e_equal, clk, verify_expected_snk_in_evt.re, expected_snk_in.re, hold_snk_in_re); + proc_dp_verify_value("snk_in.im", e_equal, clk, verify_expected_snk_in_evt.im, expected_snk_in.im, hold_snk_in_im); proc_dp_verify_value("snk_in.bsn", e_equal, clk, verify_expected_snk_in_evt.bsn, expected_snk_in.bsn, snk_in.bsn); proc_dp_verify_value("snk_in.channel", e_equal, clk, verify_expected_snk_in_evt.channel, expected_snk_in.channel, snk_in.channel); proc_dp_verify_value("snk_in.err", e_equal, clk, verify_expected_snk_in_evt.err, expected_snk_in.err, snk_in.err); @@ -196,5 +205,7 @@ begin snk_in_data <= snk_in.data(g_in_dat_w - 1 downto 0); hold_snk_in_data <= snk_in.data when snk_in.valid = '1'; + hold_snk_in_re <= snk_in.re when snk_in.valid = '1'; + hold_snk_in_im <= snk_in.im when snk_in.valid = '1'; end tb; -- GitLab