diff options
author | Miodrag Milanović <mmicko@gmail.com> | 2019-10-18 14:29:44 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-18 14:29:44 +0200 |
commit | e8ef3fcdfcacbc711a4722deee95f0707634bed0 (patch) | |
tree | 971fae1a1b7d3204827759454fa55accdc9bc01f /tests/arch/xilinx/mul_unsigned.v | |
parent | 3c41599ee1f62e4d77ba630fa1a245ef3fe236fa (diff) | |
parent | 190b40341abd73ab5edf0e6740b6526e9575253b (diff) | |
download | yosys-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.v | 30 |
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 |