aboutsummaryrefslogtreecommitdiffstats
path: root/tests/arch/xilinx/mul_unsigned.v
diff options
context:
space:
mode:
authorMiodrag Milanović <mmicko@gmail.com>2019-10-18 14:29:44 +0200
committerGitHub <noreply@github.com>2019-10-18 14:29:44 +0200
commite8ef3fcdfcacbc711a4722deee95f0707634bed0 (patch)
tree971fae1a1b7d3204827759454fa55accdc9bc01f /tests/arch/xilinx/mul_unsigned.v
parent3c41599ee1f62e4d77ba630fa1a245ef3fe236fa (diff)
parent190b40341abd73ab5edf0e6740b6526e9575253b (diff)
downloadyosys-e8ef3fcdfcacbc711a4722deee95f0707634bed0.tar.gz
yosys-e8ef3fcdfcacbc711a4722deee95f0707634bed0.tar.bz2
yosys-e8ef3fcdfcacbc711a4722deee95f0707634bed0.zip
Merge pull request #1454 from YosysHQ/mmicko/common_tests
Share common tests
Diffstat (limited to 'tests/arch/xilinx/mul_unsigned.v')
-rw-r--r--tests/arch/xilinx/mul_unsigned.v30
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/arch/xilinx/mul_unsigned.v b/tests/arch/xilinx/mul_unsigned.v
new file mode 100644
index 000000000..e3713a642
--- /dev/null
+++ b/tests/arch/xilinx/mul_unsigned.v
@@ -0,0 +1,30 @@
+/*
+Example from: https://www.xilinx.com/support/documentation/sw_manuals/xilinx2019_1/ug901-vivado-synthesis.pdf [p. 89].
+*/
+
+// Unsigned 16x24-bit Multiplier
+// 1 latency stage on operands
+// 3 latency stage after the multiplication
+// File: multipliers2.v
+//
+module mul_unsigned (clk, A, B, RES);
+parameter WIDTHA = /*16*/ 6;
+parameter WIDTHB = /*24*/ 9;
+input clk;
+input [WIDTHA-1:0] A;
+input [WIDTHB-1:0] B;
+output [WIDTHA+WIDTHB-1:0] RES;
+reg [WIDTHA-1:0] rA;
+reg [WIDTHB-1:0] rB;
+reg [WIDTHA+WIDTHB-1:0] M [3:0];
+integer i;
+always @(posedge clk)
+ begin
+ rA <= A;
+ rB <= B;
+ M[0] <= rA * rB;
+ for (i = 0; i < 3; i = i+1)
+ M[i+1] <= M[i];
+ end
+assign RES = M[3];
+endmodule