X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=src%2Fbeh_alu_tb.vhd;h=f6c6d5b3918ed1620a30102c0013d286c371f3e1;hb=ffe6e387ff1d029e5502291b8ba4ece75c2583cf;hp=aba54cb514cb1fdde1edd792e4c49ed0e6206323;hpb=2a30006fc558b9224ab54b4f68025d1b0149e071;p=hwmod.git diff --git a/src/beh_alu_tb.vhd b/src/beh_alu_tb.vhd index aba54cb..f6c6d5b 100644 --- a/src/beh_alu_tb.vhd +++ b/src/beh_alu_tb.vhd @@ -116,6 +116,11 @@ begin 56 => (5134123, ALU_DIV, 358015, 121913, 14, false), -- extra 60 => (5, ALU_SUB, -2147483648, 0, 0, true), + 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; @@ -159,8 +164,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)) & @@ -168,7 +173,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;