Merge pull request #2817 from YosysHQ/claire/fixemails
[yosys.git] / techlibs / efinix / cells_map.v
1 (* techmap_celltype = "$_DFFE_[PN][PN][01][PN]_" *)
2 module \$_DFFE_xxxx_ (input D, C, R, E, output Q);
3
4 parameter _TECHMAP_CELLTYPE_ = "";
5
6 EFX_FF #(
7 .CLK_POLARITY(_TECHMAP_CELLTYPE_[39:32] == "P"),
8 .CE_POLARITY(_TECHMAP_CELLTYPE_[15:8] == "P"),
9 .SR_POLARITY(_TECHMAP_CELLTYPE_[31:24] == "P"),
10 .D_POLARITY(1'b1),
11 .SR_SYNC(1'b0),
12 .SR_VALUE(_TECHMAP_CELLTYPE_[23:16] == "1"),
13 .SR_SYNC_PRIORITY(1'b1)
14 ) _TECHMAP_REPLACE_ (.D(D), .CE(E), .CLK(C), .SR(R), .Q(Q));
15
16 wire _TECHMAP_REMOVEINIT_Q_ = 1'b1;
17
18 endmodule
19
20 (* techmap_celltype = "$_SDFFE_[PN][PN][01][PN]_" *)
21 module \$_SDFFE_xxxx_ (input D, C, R, E, output Q);
22
23 parameter _TECHMAP_CELLTYPE_ = "";
24
25 EFX_FF #(
26 .CLK_POLARITY(_TECHMAP_CELLTYPE_[39:32] == "P"),
27 .CE_POLARITY(_TECHMAP_CELLTYPE_[15:8] == "P"),
28 .SR_POLARITY(_TECHMAP_CELLTYPE_[31:24] == "P"),
29 .D_POLARITY(1'b1),
30 .SR_SYNC(1'b1),
31 .SR_VALUE(_TECHMAP_CELLTYPE_[23:16] == "1"),
32 .SR_SYNC_PRIORITY(1'b1)
33 ) _TECHMAP_REPLACE_ (.D(D), .CE(E), .CLK(C), .SR(R), .Q(Q));
34
35 wire _TECHMAP_REMOVEINIT_Q_ = 1'b1;
36
37 endmodule
38
39 (* techmap_celltype = "$_SDFFCE_[PN][PN][01][PN]_" *)
40 module \$_SDFFCE_xxxx_ (input D, C, R, E, output Q);
41
42 parameter _TECHMAP_CELLTYPE_ = "";
43
44 EFX_FF #(
45 .CLK_POLARITY(_TECHMAP_CELLTYPE_[39:32] == "P"),
46 .CE_POLARITY(_TECHMAP_CELLTYPE_[15:8] == "P"),
47 .SR_POLARITY(_TECHMAP_CELLTYPE_[31:24] == "P"),
48 .D_POLARITY(1'b1),
49 .SR_SYNC(1'b1),
50 .SR_VALUE(_TECHMAP_CELLTYPE_[23:16] == "1"),
51 .SR_SYNC_PRIORITY(1'b0)
52 ) _TECHMAP_REPLACE_ (.D(D), .CE(E), .CLK(C), .SR(R), .Q(Q));
53
54 wire _TECHMAP_REMOVEINIT_Q_ = 1'b1;
55
56 endmodule
57
58 module \$_DLATCH_N_ (E, D, Q);
59 wire [1023:0] _TECHMAP_DO_ = "simplemap; opt";
60 input E, D;
61 output Q = !E ? D : Q;
62 endmodule
63
64 module \$_DLATCH_P_ (E, D, Q);
65 wire [1023:0] _TECHMAP_DO_ = "simplemap; opt";
66 input E, D;
67 output Q = E ? D : Q;
68 endmodule
69
70 `ifndef NO_LUT
71 module \$lut (A, Y);
72 parameter WIDTH = 0;
73 parameter LUT = 0;
74
75 (* force_downto *)
76 input [WIDTH-1:0] A;
77 output Y;
78
79 generate
80 if (WIDTH == 1) begin
81 EFX_LUT4 #(.LUTMASK(LUT)) _TECHMAP_REPLACE_ (.O(Y), .I0(A[0]), .I1(1'b0), .I2(1'b0), .I3(1'b0));
82 end else
83 if (WIDTH == 2) begin
84 EFX_LUT4 #(.LUTMASK(LUT)) _TECHMAP_REPLACE_ (.O(Y), .I0(A[0]), .I1(A[1]), .I2(1'b0), .I3(1'b0));
85 end else
86 if (WIDTH == 3) begin
87 EFX_LUT4 #(.LUTMASK(LUT)) _TECHMAP_REPLACE_ (.O(Y), .I0(A[0]), .I1(A[1]), .I2(A[2]), .I3(1'b0));
88 end else
89 if (WIDTH == 4) begin
90 EFX_LUT4 #(.LUTMASK(LUT)) _TECHMAP_REPLACE_ (.O(Y), .I0(A[0]), .I1(A[1]), .I2(A[2]), .I3(A[3]));
91 end else begin
92 wire _TECHMAP_FAIL_ = 1;
93 end
94 endgenerate
95 endmodule
96 `endif