aboutsummaryrefslogtreecommitdiffstats
path: root/techlibs/common/abc9_map.v
blob: b00e0e6a897d218388ca7cb6cd5403bd4eee2b83 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
`ifdef DFF
(* techmap_celltype = "$_DFF_[PN]_" *)
module $_DFF_x_(input C, D, output Q);
  parameter [0:0] _TECHMAP_WIREINIT_Q_ = 1'bx;
  parameter _TECHMAP_CELLTYPE_ = "";
  wire D_;
  generate if (_TECHMAP_CELLTYPE_ == "$_DFF_N_") begin
    if (_TECHMAP_WIREINIT_Q_ === 1'b0) begin
      $__DFF_N__$abc9_flop _TECHMAP_REPLACE_ (.C(C), .D(D), .Q(Q), .n1(D_));
      $_DFF_N_ ff (.C(C), .D(D_), .Q(Q));
    end
    else
      (* abc9_keep *) $_DFF_N_ _TECHMAP_REPLACE_ (.C(C), .D(D), .Q(Q));
  end
  else if (_TECHMAP_CELLTYPE_ == "$_DFF_P_") begin
    if (_TECHMAP_WIREINIT_Q_ === 1'b0) begin
      $__DFF_P__$abc9_flop _TECHMAP_REPLACE_ (.C(C), .D(D), .Q(Q), .n1(D_));
      $_DFF_P_ ff (.C(C), .D(D_), .Q(Q));
    end
    else
      (* abc9_keep *) $_DFF_P_ _TECHMAP_REPLACE_ (.C(C), .D(D), .Q(Q));
  end
  else if (_TECHMAP_CELLTYPE_ != "")
    $error("Unrecognised _TECHMAP_CELLTYPE_");
  endgenerate
endmodule
`endif
="p">[`LUT_WIDTH-1:0] AA; assign AA = {B, A}; \$lut #( .WIDTH(`LUT_WIDTH), .LUT(4'b1000) ) lut ( .A(AA), .Y(Y) ); endmodule (* techmap_celltype = "$_XOR_" *) module _90_lut_xor (A, B, Y); input A, B; output Y; wire [`LUT_WIDTH-1:0] AA; assign AA = {B, A}; \$lut #( .WIDTH(`LUT_WIDTH), .LUT(4'b0110) ) lut ( .A(AA), .Y(Y) ); endmodule (* techmap_celltype = "$_MUX_" *) module _90_lut_mux (A, B, S, Y); input A, B, S; output Y; wire [`LUT_WIDTH-1:0] AA; assign AA = {S, B, A}; \$lut #( .WIDTH(`LUT_WIDTH), // A 1010 1010 // B 1100 1100 // S 1111 0000 .LUT(8'b_1100_1010) ) lut ( .A(AA), .Y(Y) ); endmodule