From 3b074870ad30efed0406505e631adb779a64f03a Mon Sep 17 00:00:00 2001 From: Eric Kooistra <kooistra@astron.nl> Date: Wed, 29 Sep 2021 19:19:54 +0200 Subject: [PATCH] Prepare test support for stream_en_arr. --- .../base/dp/tb/vhdl/tb_dp_bsn_align_v2.vhd | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/libraries/base/dp/tb/vhdl/tb_dp_bsn_align_v2.vhd b/libraries/base/dp/tb/vhdl/tb_dp_bsn_align_v2.vhd index cc561ee13f..030019880a 100644 --- a/libraries/base/dp/tb/vhdl/tb_dp_bsn_align_v2.vhd +++ b/libraries/base/dp/tb/vhdl/tb_dp_bsn_align_v2.vhd @@ -77,7 +77,7 @@ ARCHITECTURE tb OF tb_dp_bsn_align_v2 IS CONSTANT c_total_latency : NATURAL := c_dut_latency + c_align_latency_nof_clk; CONSTANT c_verify_nof_blocks : NATURAL := g_tb_nof_blocks - g_bsn_latency_max; -- skip last blocks - TYPE t_tb_state IS (s_idle, s_start, s_restart, s_lost); + TYPE t_tb_state IS (s_idle, s_start, s_restart, s_disable, s_lost); TYPE t_data_arr IS ARRAY (g_nof_streams-1 DOWNTO 0) OF STD_LOGIC_VECTOR(c_data_w-1 DOWNTO 0); TYPE t_bsn_arr IS ARRAY (g_nof_streams-1 DOWNTO 0) OF STD_LOGIC_VECTOR(c_bsn_w-1 DOWNTO 0); @@ -190,6 +190,9 @@ BEGIN -- Begin of stimuli FOR S IN 0 TO g_tb_nof_restart-1 LOOP v_bsn := c_bsn_init; + IF S = 2 THEN + stream_en_arr(1) <= '0'; + END IF; FOR R IN 0 TO g_tb_nof_blocks-1 LOOP v_sync := sel_a_b(v_bsn MOD c_sync_period = c_sync_offset, '1', '0'); proc_dp_gen_block_data(c_rl, TRUE, c_data_w, c_data_w, v_data, 0, 0, g_block_size, v_channel, v_err, v_sync, TO_UVEC(v_bsn, c_bsn_w), clk, stream_en_arr(I), ref_siso_arr(I), ref_sosi_arr(I)); @@ -223,7 +226,8 @@ BEGIN tb_state <= s_idle; IF restart_cnt = 0 THEN tb_state <= s_start; END IF; IF restart_cnt = 1 THEN tb_state <= s_restart; END IF; - IF restart_cnt = 2 THEN tb_state <= s_lost; END IF; + IF restart_cnt = 3 THEN tb_state <= s_disable; END IF; + IF restart_cnt = 4 THEN tb_state <= s_lost; END IF; END PROCESS; -- Create latency misalignment between the input streams @@ -326,9 +330,15 @@ BEGIN ASSERT out_sosi_arr(I).sop = out_sosi_arr_exp(I).sop REPORT "Wrong sop for output " & int_to_str(I) SEVERITY ERROR; ASSERT out_sosi_arr(I).eop = out_sosi_arr_exp(I).eop REPORT "Wrong eop for output " & int_to_str(I) SEVERITY ERROR; ASSERT out_sosi_arr(I).valid = out_sosi_arr_exp(I).valid REPORT "Wrong valid for output " & int_to_str(I) SEVERITY ERROR; - ASSERT out_sosi_arr(I).data = out_sosi_arr_exp(I).data REPORT "Wrong data for output " & int_to_str(I) & " : " - & int_to_str(TO_UINT(out_sosi_arr(I).data)) & " /= " - & int_to_str(TO_UINT(out_sosi_arr_exp(I).data)) SEVERITY ERROR; + IF stream_en_arr(I) = '1' THEN + ASSERT out_sosi_arr(I).data = out_sosi_arr_exp(I).data REPORT "Wrong data for output " & int_to_str(I) & " : " + & int_to_str(TO_UINT(out_sosi_arr(I).data)) & " /= " + & int_to_str(TO_UINT(out_sosi_arr_exp(I).data)) SEVERITY ERROR; + ELSE + ASSERT TO_UINT(out_sosi_arr(I).data) = g_replacement_value REPORT "Wrong data for output " & int_to_str(I) & " : " + & int_to_str(TO_UINT(out_sosi_arr(I).data)) & " /= " + & int_to_str(g_replacement_value) SEVERITY ERROR; + END IF; END IF; END IF; END PROCESS; -- GitLab