@@ -59,6 +59,11 @@ ARCHITECTURE tb OF tb_iquv_iab IS
CONSTANTc_fsd_w:NATURAL:=c_iquv_out_w+ceil_log2(g_nof_streams);-- The number of bits fsd after the adder tree
CONSTANTc_lsb_w:NATURAL:=c_fsd_w-g_out_data_w;-- number of lsbs to remove from the expected result
CONSTANTc_clip:BOOLEAN:=TRUE;
CONSTANTc_wrap:BOOLEAN:=NOTc_clip;
CONSTANTc_even:BOOLEAN:=TRUE;
CONSTANTc_away:BOOLEAN:=NOTc_even;
SIGNALtb_end:STD_LOGIC:='0';
SIGNALdp_rst:STD_LOGIC:='1';
SIGNALdp_clk:STD_LOGIC:='0';
...
...
@@ -205,19 +210,19 @@ BEGIN
IFrising_edge(dp_clk)THEN
IFdiag_out_valid='1'THEN
IFg_nof_int=8THEN
ASSERTTO_UINT(i_out.data)=TO_UINT(u_round(TO_UVEC(i_nint8_exp_arr(v_index),c_fsd_w),c_lsb_w,TRUE))REPORT"Error: wrong result in I out DUT"SEVERITYERROR;
--REPORT "I exp = " & integer'image(to_uint(s_round(TO_UVEC(i_nint8_exp_arr(v_index),c_fsd_w), c_lsb_w, TRUE)));
ASSERTTO_SINT(q_out.data)=TO_SINT(s_round(TO_SVEC(q_nint8_exp_arr(v_index),c_word_w),c_lsb_w))REPORT"Error: wrong result in Q out DUT"SEVERITYERROR;
ASSERTTO_SINT(u_out.data)=TO_SINT(s_round(TO_SVEC(u_nint8_exp_arr(v_index),c_word_w),c_lsb_w))REPORT"Error: wrong result in U out DUT"SEVERITYERROR;
ASSERTTO_SINT(v_out.data)=TO_SINT(s_round(TO_SVEC(v_nint8_exp_arr(v_index),c_word_w),c_lsb_w))REPORT"Error: wrong result in V out DUT"SEVERITYERROR;
ASSERTTO_UINT(i_out.data)=TO_UINT(u_round(TO_UVEC(i_nint8_exp_arr(v_index),c_fsd_w),c_lsb_w,c_clip,c_even))REPORT"Error: wrong result in I out DUT"SEVERITYERROR;
--REPORT "I exp = " & integer'image(to_uint(s_round(TO_UVEC(i_nint8_exp_arr(v_index),c_fsd_w), c_lsb_w, c_clip)));
ASSERTTO_SINT(q_out.data)=TO_SINT(s_round(TO_SVEC(q_nint8_exp_arr(v_index),c_word_w),c_lsb_w,c_wrap,c_even))REPORT"Error: wrong result in Q out DUT"SEVERITYERROR;
ASSERTTO_SINT(u_out.data)=TO_SINT(s_round(TO_SVEC(u_nint8_exp_arr(v_index),c_word_w),c_lsb_w,c_wrap,c_even))REPORT"Error: wrong result in U out DUT"SEVERITYERROR;
ASSERTTO_SINT(v_out.data)=TO_SINT(s_round(TO_SVEC(v_nint8_exp_arr(v_index),c_word_w),c_lsb_w,c_wrap,c_even))REPORT"Error: wrong result in V out DUT"SEVERITYERROR;
ELSIFg_nof_int=16THEN
ASSERTTO_UINT(i_out.data)=TO_UINT(u_round(TO_UVEC(i_nint16_exp_arr(v_index),c_fsd_w),c_lsb_w,TRUE))REPORT"Error: wrong result in I out DUT"SEVERITYERROR;
--REPORT "I expected = " & integer'image(to_uint(u_round(TO_UVEC(i_nint16_exp_arr(v_index),c_fsd_w), c_lsb_w, TRUE)));
ASSERTTO_SINT(q_out.data)=TO_SINT(s_round(TO_SVEC(q_nint16_exp_arr(v_index),c_word_w),c_lsb_w))REPORT"Error: wrong result in Q out DUT"SEVERITYERROR;
ASSERTTO_SINT(u_out.data)=TO_SINT(s_round(TO_SVEC(u_nint16_exp_arr(v_index),c_word_w),c_lsb_w))REPORT"Error: wrong result in U out DUT"SEVERITYERROR;
ASSERTTO_SINT(v_out.data)=TO_SINT(s_round(TO_SVEC(v_nint16_exp_arr(v_index),c_word_w),c_lsb_w))REPORT"Error: wrong result in V out DUT"SEVERITYERROR;
ASSERTTO_UINT(i_out.data)=TO_UINT(u_round(TO_UVEC(i_nint16_exp_arr(v_index),c_fsd_w),c_lsb_w,c_clip,c_even))REPORT"Error: wrong result in I out DUT"SEVERITYERROR;
--REPORT "I expected = " & integer'image(to_uint(u_round(TO_UVEC(i_nint16_exp_arr(v_index),c_fsd_w), c_lsb_w, c_clip, c_even)));
ASSERTTO_SINT(q_out.data)=TO_SINT(s_round(TO_SVEC(q_nint16_exp_arr(v_index),c_word_w),c_lsb_w,c_wrap,c_even))REPORT"Error: wrong result in Q out DUT"SEVERITYERROR;
ASSERTTO_SINT(u_out.data)=TO_SINT(s_round(TO_SVEC(u_nint16_exp_arr(v_index),c_word_w),c_lsb_w,c_wrap,c_even))REPORT"Error: wrong result in U out DUT"SEVERITYERROR;
ASSERTTO_SINT(v_out.data)=TO_SINT(s_round(TO_SVEC(v_nint16_exp_arr(v_index),c_word_w),c_lsb_w,c_wrap,c_even))REPORT"Error: wrong result in V out DUT"SEVERITYERROR;