aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2016-05-29 12:17:36 +0200
committerClifford Wolf <clifford@clifford.at>2016-05-29 12:17:36 +0200
commit11f7b8a2a1dd6e5c47e8081e4485127331fd80be (patch)
tree63343bbce2a0c7a6f1598301b13d375e0a3ff7e9 /tests
parent766032c5f85e33c8aabb69d1868c3493f254695f (diff)
downloadyosys-11f7b8a2a1dd6e5c47e8081e4485127331fd80be.tar.gz
yosys-11f7b8a2a1dd6e5c47e8081e4485127331fd80be.tar.bz2
yosys-11f7b8a2a1dd6e5c47e8081e4485127331fd80be.zip
Added opt_expr support for div/mod by power-of-two
Diffstat (limited to 'tests')
-rw-r--r--tests/simple/constmuldivmod.v27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/simple/constmuldivmod.v b/tests/simple/constmuldivmod.v
new file mode 100644
index 000000000..d1d8be862
--- /dev/null
+++ b/tests/simple/constmuldivmod.v
@@ -0,0 +1,27 @@
+module constmuldivmod(input [7:0] A, input [2:0] mode, output reg [7:0] Y);
+ always @* begin
+ case (mode)
+ 0: Y = A / 8'd0;
+ 1: Y = A % 8'd0;
+ 2: Y = A * 8'd0;
+
+ 3: Y = A / 8'd1;
+ 4: Y = A % 8'd1;
+ 5: Y = A * 8'd1;
+
+ 6: Y = A / 8'd2;
+ 7: Y = A % 8'd2;
+ 8: Y = A * 8'd2;
+
+ 9: Y = A / 8'd4;
+ 10: Y = A % 8'd4;
+ 11: Y = A * 8'd4;
+
+ 12: Y = A / 8'd8;
+ 13: Y = A % 8'd8;
+ 14: Y = A * 8'd8;
+
+ default: Y = 8'd16 * A;
+ endcase
+ end
+endmodule