2020-04-21 17:54:24 -07:00
|
|
|
`ifdef DFF
|
2020-08-02 12:31:25 +02:00
|
|
|
(* techmap_celltype = "$_DFF_[PN]_" *)
|
2020-04-16 10:24:02 -07:00
|
|
|
module $_DFF_x_(input C, D, output Q);
|
|
|
|
|
parameter [0:0] _TECHMAP_WIREINIT_Q_ = 1'bx;
|
|
|
|
|
parameter _TECHMAP_CELLTYPE_ = "";
|
2020-05-14 00:29:45 -07:00
|
|
|
wire D_;
|
2020-04-16 12:08:59 -07:00
|
|
|
generate if (_TECHMAP_CELLTYPE_ == "$_DFF_N_") begin
|
|
|
|
|
if (_TECHMAP_WIREINIT_Q_ === 1'b0) begin
|
2020-05-13 21:56:06 -07:00
|
|
|
$__DFF_N__$abc9_flop _TECHMAP_REPLACE_ (.C(C), .D(D), .Q(Q), .n1(D_));
|
2020-04-16 12:08:59 -07:00
|
|
|
$_DFF_N_ ff (.C(C), .D(D_), .Q(Q));
|
|
|
|
|
end
|
|
|
|
|
else
|
2020-05-14 16:44:35 -07:00
|
|
|
(* abc9_keep *) $_DFF_N_ _TECHMAP_REPLACE_ (.C(C), .D(D), .Q(Q));
|
2020-04-16 10:24:02 -07:00
|
|
|
end
|
|
|
|
|
else if (_TECHMAP_CELLTYPE_ == "$_DFF_P_") begin
|
2020-04-16 12:08:59 -07:00
|
|
|
if (_TECHMAP_WIREINIT_Q_ === 1'b0) begin
|
2020-05-13 21:56:06 -07:00
|
|
|
$__DFF_P__$abc9_flop _TECHMAP_REPLACE_ (.C(C), .D(D), .Q(Q), .n1(D_));
|
2020-04-16 12:08:59 -07:00
|
|
|
$_DFF_P_ ff (.C(C), .D(D_), .Q(Q));
|
|
|
|
|
end
|
|
|
|
|
else
|
2020-05-14 16:44:35 -07:00
|
|
|
(* abc9_keep *) $_DFF_P_ _TECHMAP_REPLACE_ (.C(C), .D(D), .Q(Q));
|
2020-04-16 10:24:02 -07:00
|
|
|
end
|
|
|
|
|
else if (_TECHMAP_CELLTYPE_ != "")
|
|
|
|
|
$error("Unrecognised _TECHMAP_CELLTYPE_");
|
|
|
|
|
endgenerate
|
|
|
|
|
endmodule
|
2020-04-21 17:54:24 -07:00
|
|
|
`endif
|