X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=hwmod.git;a=blobdiff_plain;f=src%2Fbeh_alu_tb.vhd;h=96cbeebca2ea642cac93e36714a9a6068a4b88fb;hp=de347a1917dbe05521dedb8862b4905a621e6a46;hb=HEAD;hpb=67bd159bb1c72ba8eaf46e072932a6f19c8347b6 diff --git a/src/beh_alu_tb.vhd b/src/beh_alu_tb.vhd index de347a1..96cbeeb 100644 --- a/src/beh_alu_tb.vhd +++ b/src/beh_alu_tb.vhd @@ -12,9 +12,8 @@ architecture sim of beh_alu_tb is signal op1, op2, op3, opM : csigned; signal stop : boolean := false; begin - inst : entity work.alu(beh) - port map - ( + inst : alu + port map ( sys_clk => sys_clk, sys_res_n => sys_res_n, do_calc => do_calc, @@ -119,6 +118,8 @@ begin 61 => (-2147483647, ALU_SUB, 1, 0, -2147483648, false), 62 => (-2147483647, ALU_ADD, -1, 0, -2147483648, false), 63 => (-2147483648, ALU_DIV, 10, 8, -214748364, false), + 64 => (-214748364, ALU_DIV, 10, 4, -21474836, false), + 65 => (1, ALU_DIV, -2147483648, 1, 0, false), others => (0, ALU_ADD, 0, 0, 0, false) ); variable checkall : boolean := true; @@ -162,8 +163,8 @@ begin assert(false) report "testfall war ein error (passt)"; end if; else - assert ((op3 = to_signed(testmatrix(i).expected,CBITS)) and (opM = to_signed(testmatrix(i).om,CBITS))) - report "" & cinteger'image(testmatrix(i).o1) & + if not((op3 = to_signed(testmatrix(i).expected,CBITS)) and (opcode /= ALU_DIV or opM = to_signed(testmatrix(i).om,CBITS))) then + assert(false) report "" & cinteger'image(testmatrix(i).o1) & " " & integer'image(to_integer(signed(opcode))) & " " & cinteger'image(testmatrix(i).o2) & " /= " & integer'image(to_integer(op3)) & @@ -171,7 +172,6 @@ begin " -- erwartet: " & cinteger'image(testmatrix(i).expected) & " ( " & cinteger'image(testmatrix(i).om) & " ) "; - if not((op3 = to_signed(testmatrix(i).expected,CBITS)) and (opM = to_signed(testmatrix(i).om,CBITS))) then checkall := false; end if; end if;