Expand tests/simple/constmuldivmod.v
authorXiretza <xiretza@xiretza.xyz>
Tue, 21 Apr 2020 14:37:29 +0000 (16:37 +0200)
committerXiretza <xiretza@xiretza.xyz>
Thu, 28 May 2020 20:59:04 +0000 (22:59 +0200)
tests/simple/constmuldivmod.v

index d1d8be862067d8c9d4fbb2d392fd9b83e6890ed3..5dd8f9295afe07d80ede06d906a9b2b9390dc5bf 100644 (file)
@@ -1,4 +1,4 @@
-module constmuldivmod(input [7:0] A, input [2:0] mode, output reg [7:0] Y);
+module constmuldivmod(input [7:0] A, input [5:0] mode, output reg [7:0] Y);
        always @* begin
                case (mode)
                        0: Y = A / 8'd0;
@@ -21,6 +21,46 @@ module constmuldivmod(input [7:0] A, input [2:0] mode, output reg [7:0] Y);
                        13: Y = A % 8'd8;
                        14: Y = A * 8'd8;
 
+                       15: Y = $signed(A) / $signed(8'd0);
+                       16: Y = $signed(A) % $signed(8'd0);
+                       17: Y = $signed(A) * $signed(8'd0);
+
+                       18: Y = $signed(A) / $signed(8'd1);
+                       19: Y = $signed(A) % $signed(8'd1);
+                       20: Y = $signed(A) * $signed(8'd1);
+
+                       21: Y = $signed(A) / $signed(8'd2);
+                       22: Y = $signed(A) % $signed(8'd2);
+                       23: Y = $signed(A) * $signed(8'd2);
+
+                       24: Y = $signed(A) / $signed(8'd4);
+                       25: Y = $signed(A) % $signed(8'd4);
+                       26: Y = $signed(A) * $signed(8'd4);
+
+                       27: Y = $signed(A) / $signed(8'd8);
+                       28: Y = $signed(A) % $signed(8'd8);
+                       29: Y = $signed(A) * $signed(8'd8);
+
+                       30: Y = $signed(A) / $signed(-8'd0);
+                       31: Y = $signed(A) % $signed(-8'd0);
+                       32: Y = $signed(A) * $signed(-8'd0);
+
+                       33: Y = $signed(A) / $signed(-8'd1);
+                       34: Y = $signed(A) % $signed(-8'd1);
+                       35: Y = $signed(A) * $signed(-8'd1);
+
+                       36: Y = $signed(A) / $signed(-8'd2);
+                       37: Y = $signed(A) % $signed(-8'd2);
+                       38: Y = $signed(A) * $signed(-8'd2);
+
+                       39: Y = $signed(A) / $signed(-8'd4);
+                       40: Y = $signed(A) % $signed(-8'd4);
+                       41: Y = $signed(A) * $signed(-8'd4);
+
+                       42: Y = $signed(A) / $signed(-8'd8);
+                       43: Y = $signed(A) % $signed(-8'd8);
+                       44: Y = $signed(A) * $signed(-8'd8);
+
                        default: Y = 8'd16 * A;
                endcase
        end