Added GP_DFFS, GP_DFFR, and GP_DFFSR
[yosys.git] / techlibs / greenpak4 / cells_map.v
1 module GP_DFFS(input D, CLK, nSET, output reg Q);
2 parameter [0:0] INIT = 1'bx;
3 GP_DFFSR #(
4 .INIT(INIT),
5 .SRMODE(1'b1),
6 ) _TECHMAP_REPLACE_ (
7 .D(D),
8 .CLK(C),
9 .nSR(nSET),
10 .Q(Q)
11 );
12 endmodule
13
14 module GP_DFFR(input D, CLK, nRST, output reg Q);
15 parameter [0:0] INIT = 1'bx;
16 GP_DFFSR #(
17 .INIT(INIT),
18 .SRMODE(1'b0),
19 ) _TECHMAP_REPLACE_ (
20 .D(D),
21 .CLK(C),
22 .nSR(nRST),
23 .Q(Q)
24 );
25 endmodule
26
27 module \$lut (A, Y);
28 parameter WIDTH = 0;
29 parameter LUT = 0;
30
31 input [WIDTH-1:0] A;
32 output Y;
33
34 generate
35 if (WIDTH == 1) begin
36 GP_2LUT #(.INIT({2'b00, LUT})) _TECHMAP_REPLACE_ (.OUT(Y),
37 .IN0(A[0]), .IN1(1'b0));
38 end else
39 if (WIDTH == 2) begin
40 GP_2LUT #(.INIT(LUT)) _TECHMAP_REPLACE_ (.OUT(Y),
41 .IN0(A[0]), .IN1(A[1]));
42 end else
43 if (WIDTH == 3) begin
44 GP_3LUT #(.INIT(LUT)) _TECHMAP_REPLACE_ (.OUT(Y),
45 .IN0(A[0]), .IN1(A[1]), .IN2(A[2]));
46 end else
47 if (WIDTH == 4) begin
48 GP_4LUT #(.INIT(LUT)) _TECHMAP_REPLACE_ (.OUT(Y),
49 .IN0(A[0]), .IN1(A[1]), .IN2(A[2]), .IN3(A[3]));
50 end else begin
51 wire _TECHMAP_FAIL_ = 1;
52 end
53 endgenerate
54 endmodule