Merge pull request #2025 from YosysHQ/eddie/frontend_cleanup
[yosys.git] / techlibs / xilinx / xc7_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 .USE_DPORT("FALSE")
30 ) _TECHMAP_REPLACE_ (
31 //Data path
32 .A({{5{A[24]}}, A}),
33 .B(B),
34 .C(48'b0),
35 .D(25'b0),
36 .P(P_48),
37
38 .INMODE(5'b00000),
39 .ALUMODE(4'b0000),
40 .OPMODE(7'b000101),
41 .CARRYINSEL(3'b000),
42
43 .ACIN(30'b0),
44 .BCIN(18'b0),
45 .PCIN(48'b0),
46 .CARRYIN(1'b0)
47 );
48 assign Y = P_48;
49 endmodule