aboutsummaryrefslogtreecommitdiffstats
path: root/techlibs/xilinx/xc6s_dsp_map.v
diff options
context:
space:
mode:
authorMarcin Kościelnicki <koriakin@0x04.net>2019-10-08 17:00:30 +0000
committerMarcin Kościelnicki <koriakin@0x04.net>2019-10-22 18:06:57 +0200
commit7b350cacd410b16fdac5a6933aea1bb009b83621 (patch)
tree934e58717f9ba5463d97d56eaf8c82d875677494 /techlibs/xilinx/xc6s_dsp_map.v
parenta3a7bb9bf7160d434db7a4737e68f6b015b221ef (diff)
downloadyosys-7b350cacd410b16fdac5a6933aea1bb009b83621.tar.gz
yosys-7b350cacd410b16fdac5a6933aea1bb009b83621.tar.bz2
yosys-7b350cacd410b16fdac5a6933aea1bb009b83621.zip
xilinx: Support multiplier mapping for all families.
This supports several older families that are not yet supported for actual logic synthesis — the intention is to add them soon.
Diffstat (limited to 'techlibs/xilinx/xc6s_dsp_map.v')
-rw-r--r--techlibs/xilinx/xc6s_dsp_map.v35
1 files changed, 35 insertions, 0 deletions
diff --git a/techlibs/xilinx/xc6s_dsp_map.v b/techlibs/xilinx/xc6s_dsp_map.v
new file mode 100644
index 000000000..e8705723b
--- /dev/null
+++ b/techlibs/xilinx/xc6s_dsp_map.v
@@ -0,0 +1,35 @@
+module \$__MUL18X18 (input [17:0] A, input [17:0] B, output [35:0] Y);
+ parameter A_SIGNED = 0;
+ parameter B_SIGNED = 0;
+ parameter A_WIDTH = 0;
+ parameter B_WIDTH = 0;
+ parameter Y_WIDTH = 0;
+
+ wire [47:0] P_48;
+ DSP48A1 #(
+ // Disable all registers
+ .A0REG(0),
+ .A1REG(0),
+ .B0REG(0),
+ .B1REG(0),
+ .CARRYINREG(0),
+ .CARRYINSEL("OPMODE5"),
+ .CREG(0),
+ .DREG(0),
+ .MREG(0),
+ .OPMODEREG(0),
+ .PREG(0)
+ ) _TECHMAP_REPLACE_ (
+ //Data path
+ .A(A),
+ .B(B),
+ .C(48'b0),
+ .D(18'b0),
+ .P(P_48),
+
+ .OPMODE(8'b0000010)
+ );
+ assign Y = P_48;
+endmodule
+
+