tb/alu: ueberpruefe ob wirklich alle testfaelle erfolgreich waren
[hwmod.git] / src / beh_alu_tb.vhd
index fb9382cbbc09667de2dcad15298c35e109c4989c..f4f77c3073db6a070d1ff3a44b5640e55db71033 100644 (file)
@@ -59,7 +59,7 @@ begin
                end record alu_testv;
 
                -- ggf. groesse des arrays erhoehen
-               type alu_testv_array is array (natural range 0 to 20) of alu_testv;
+               type alu_testv_array is array (natural range 0 to 30) of alu_testv;
 
                variable testmatrix : alu_testv_array :=
                        ( 0 => (-5, ALU_DIV, 3, -1),
@@ -82,7 +82,7 @@ begin
                          17 => (-153156, ALU_DIV, -3543, 43),
                          others => (0, ALU_ADD, 0, 0)
                        );
-
+               variable checkall : boolean := true;
        begin
                -- init & reset
                sys_res_n <= '0';
@@ -114,13 +114,20 @@ begin
                                "/= " & integer'image(to_integer(op3)) &
                                " -- erwartet: " & cinteger'image(testmatrix(i).expected);
 
+                       if op3 /= to_signed(testmatrix(i).expected,CBITS) then
+                               checkall := false;
+                       end if;
+
                        icwait(sys_clk, 2);
                        -- ack it!
                        do_calc <= '0';
                end loop;
 
-               assert false
+               if checkall then
                        report "alle testfaelle der ALU waren erfolgreich!";
+               else
+                       report "nicht alle testfaelle der ALU waren erfolgreich!";
+               end if;
                stop <= true;
                wait;
        end process;