Merge remote-tracking branch 'origin/master' into xc7dsp
[yosys.git] / techlibs / xilinx / dsp_map.v
1 module \$__MUL25X18 (input [24:0] A, input [17:0] B, output [42:0] Y);
2 parameter A_SIGNED = 0;
3 parameter B_SIGNED = 0;
4 parameter A_WIDTH = 0;
5 parameter B_WIDTH = 0;
6 parameter Y_WIDTH = 0;
7
8 wire [47:0] P_48;
9 DSP48E1 #(
10 // Disable all registers
11 .ACASCREG(0),
12 .ADREG(0),
13 .A_INPUT("DIRECT"),
14 .ALUMODEREG(0),
15 .AREG(0),
16 .BCASCREG(0),
17 .B_INPUT("DIRECT"),
18 .BREG(0),
19 .CARRYINREG(0),
20 .CARRYINSELREG(0),
21 .CREG(0),
22 .DREG(0),
23 .INMODEREG(0),
24 .MREG(0),
25 .OPMODEREG(0),
26 .PREG(0),
27 .USE_MULT("MULTIPLY"),
28 .USE_SIMD("ONE48")
29 ) _TECHMAP_REPLACE_ (
30 //Data path
31 .A({{5{A[24]}}, A}),
32 .B(B),
33 .C(48'b0),
34 .D(24'b0),
35 .P(P_48),
36
37 .INMODE(5'b00000),
38 .ALUMODE(4'b0000),
39 .OPMODE(7'b000101),
40 .CARRYINSEL(3'b000),
41
42 .ACIN(30'b0),
43 .BCIN(18'b0),
44 .PCIN(48'b0),
45 .CARRYIN(1'b0)
46 );
47 assign Y = P_48;
48 endmodule