machxo2: Tristate is active-low.
[yosys.git] / techlibs / nexus / dsp_map.v
1 module \$__NX_MUL36X36 (input [35:0] A, input [35:0] B, output [71:0] Y);
2
3 parameter A_WIDTH = 36;
4 parameter B_WIDTH = 36;
5 parameter Y_WIDTH = 72;
6 parameter A_SIGNED = 0;
7 parameter B_SIGNED = 0;
8
9 MULT36X36 #(
10 .REGINPUTA("BYPASS"),
11 .REGINPUTB("BYPASS"),
12 .REGOUTPUT("BYPASS")
13 ) _TECHMAP_REPLACE_ (
14 .A(A), .B(B),
15 .SIGNEDA(A_SIGNED ? 1'b1 : 1'b0),
16 .SIGNEDB(B_SIGNED ? 1'b1 : 1'b0),
17 .Z(Y)
18 );
19 endmodule
20
21 module \$__NX_MUL36X18 (input [35:0] A, input [17:0] B, output [53:0] Y);
22
23 parameter A_WIDTH = 36;
24 parameter B_WIDTH = 18;
25 parameter Y_WIDTH = 54;
26 parameter A_SIGNED = 0;
27 parameter B_SIGNED = 0;
28
29 MULT18X36 #(
30 .REGINPUTA("BYPASS"),
31 .REGINPUTB("BYPASS"),
32 .REGOUTPUT("BYPASS")
33 ) _TECHMAP_REPLACE_ (
34 .A(B), .B(A),
35 .SIGNEDA(B_SIGNED ? 1'b1 : 1'b0),
36 .SIGNEDB(A_SIGNED ? 1'b1 : 1'b0),
37 .Z(Y)
38 );
39 endmodule
40
41 module \$__NX_MUL18X18 (input [17:0] A, input [17:0] B, output [35:0] Y);
42
43 parameter A_WIDTH = 18;
44 parameter B_WIDTH = 18;
45 parameter Y_WIDTH = 36;
46 parameter A_SIGNED = 0;
47 parameter B_SIGNED = 0;
48
49 MULT18X18 #(
50 .REGINPUTA("BYPASS"),
51 .REGINPUTB("BYPASS"),
52 .REGOUTPUT("BYPASS")
53 ) _TECHMAP_REPLACE_ (
54 .A(A), .B(B),
55 .SIGNEDA(A_SIGNED ? 1'b1 : 1'b0),
56 .SIGNEDB(B_SIGNED ? 1'b1 : 1'b0),
57 .Z(Y)
58 );
59 endmodule
60
61 module \$__NX_MUL9X9 (input [8:0] A, input [8:0] B, output [17:0] Y);
62
63 parameter A_WIDTH = 9;
64 parameter B_WIDTH = 9;
65 parameter Y_WIDTH = 18;
66 parameter A_SIGNED = 0;
67 parameter B_SIGNED = 0;
68
69 MULT9X9 #(
70 .REGINPUTA("BYPASS"),
71 .REGINPUTB("BYPASS"),
72 .REGOUTPUT("BYPASS")
73 ) _TECHMAP_REPLACE_ (
74 .A(A), .B(B),
75 .SIGNEDA(A_SIGNED ? 1'b1 : 1'b0),
76 .SIGNEDB(B_SIGNED ? 1'b1 : 1'b0),
77 .Z(Y)
78 );
79 endmodule