Merge pull request #2344 from YosysHQ/mwk/opt_share-fixes
[yosys.git] / techlibs / common / abc9_map.v
1 `ifdef DFF
2 (* techmap_celltype = "$_DFF_[PN]_" *)
3 module $_DFF_x_(input C, D, output Q);
4 parameter [0:0] _TECHMAP_WIREINIT_Q_ = 1'bx;
5 parameter _TECHMAP_CELLTYPE_ = "";
6 wire D_;
7 generate if (_TECHMAP_CELLTYPE_ == "$_DFF_N_") begin
8 if (_TECHMAP_WIREINIT_Q_ === 1'b0) begin
9 $__DFF_N__$abc9_flop _TECHMAP_REPLACE_ (.C(C), .D(D), .Q(Q), .n1(D_));
10 $_DFF_N_ ff (.C(C), .D(D_), .Q(Q));
11 end
12 else
13 (* abc9_keep *) $_DFF_N_ _TECHMAP_REPLACE_ (.C(C), .D(D), .Q(Q));
14 end
15 else if (_TECHMAP_CELLTYPE_ == "$_DFF_P_") begin
16 if (_TECHMAP_WIREINIT_Q_ === 1'b0) begin
17 $__DFF_P__$abc9_flop _TECHMAP_REPLACE_ (.C(C), .D(D), .Q(Q), .n1(D_));
18 $_DFF_P_ ff (.C(C), .D(D_), .Q(Q));
19 end
20 else
21 (* abc9_keep *) $_DFF_P_ _TECHMAP_REPLACE_ (.C(C), .D(D), .Q(Q));
22 end
23 else if (_TECHMAP_CELLTYPE_ != "")
24 $error("Unrecognised _TECHMAP_CELLTYPE_");
25 endgenerate
26 endmodule
27 `endif