mirror of
https://github.com/YosysHQ/yosys
synced 2025-06-14 01:46:16 +00:00
Re-arrange FD order
This commit is contained in:
parent
f7793a2956
commit
44d9fb0e7c
3 changed files with 193 additions and 193 deletions
|
@ -163,6 +163,89 @@ module FDRE_1 (output Q, input C, CE, D, R);
|
||||||
`endif
|
`endif
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
module FDSE (output Q, input C, CE, D, S);
|
||||||
|
parameter [0:0] INIT = 1'b1;
|
||||||
|
parameter [0:0] IS_C_INVERTED = 1'b0;
|
||||||
|
parameter [0:0] IS_D_INVERTED = 1'b0;
|
||||||
|
parameter [0:0] IS_S_INVERTED = 1'b0;
|
||||||
|
`ifdef DFF_MODE
|
||||||
|
wire QQ, $Q;
|
||||||
|
generate if (INIT == 1'b1) begin
|
||||||
|
assign Q = ~QQ;
|
||||||
|
FDRE #(
|
||||||
|
.INIT(1'b0),
|
||||||
|
.IS_C_INVERTED(IS_C_INVERTED),
|
||||||
|
.IS_D_INVERTED(IS_D_INVERTED),
|
||||||
|
.IS_R_INVERTED(IS_S_INVERTED)
|
||||||
|
) _TECHMAP_REPLACE_ (
|
||||||
|
.D(~D), .Q($Q), .C(C), .CE(CE), .R(S)
|
||||||
|
);
|
||||||
|
end
|
||||||
|
else begin
|
||||||
|
assign Q = QQ;
|
||||||
|
FDSE #(
|
||||||
|
.INIT(1'b0),
|
||||||
|
.IS_C_INVERTED(IS_C_INVERTED),
|
||||||
|
.IS_D_INVERTED(IS_D_INVERTED),
|
||||||
|
.IS_S_INVERTED(IS_S_INVERTED)
|
||||||
|
) _TECHMAP_REPLACE_ (
|
||||||
|
.D(D), .Q($Q), .C(C), .CE(CE), .S(S)
|
||||||
|
);
|
||||||
|
end endgenerate
|
||||||
|
$__ABC9_FF_ abc_dff (.D($Q), .Q(QQ));
|
||||||
|
|
||||||
|
// Special signals
|
||||||
|
wire [1:0] _TECHMAP_REPLACE_.$abc9_clock = {C, IS_C_INVERTED};
|
||||||
|
wire [0:0] _TECHMAP_REPLACE_.$abc9_init = 1'b0;
|
||||||
|
wire [0:0] _TECHMAP_REPLACE_.$abc9_currQ = QQ;
|
||||||
|
`else
|
||||||
|
(* abc9_keep *)
|
||||||
|
FDSE #(
|
||||||
|
.INIT(INIT),
|
||||||
|
.IS_C_INVERTED(IS_C_INVERTED),
|
||||||
|
.IS_D_INVERTED(IS_D_INVERTED),
|
||||||
|
.IS_S_INVERTED(IS_S_INVERTED)
|
||||||
|
) _TECHMAP_REPLACE_ (
|
||||||
|
.D(D), .Q(Q), .C(C), .CE(CE), .S(S)
|
||||||
|
);
|
||||||
|
`endif
|
||||||
|
endmodule
|
||||||
|
module FDSE_1 (output Q, input C, CE, D, S);
|
||||||
|
parameter [0:0] INIT = 1'b1;
|
||||||
|
`ifdef DFF_MODE
|
||||||
|
wire QQ, $Q;
|
||||||
|
generate if (INIT == 1'b1) begin
|
||||||
|
assign Q = ~QQ;
|
||||||
|
FDRE_1 #(
|
||||||
|
.INIT(1'b0)
|
||||||
|
) _TECHMAP_REPLACE_ (
|
||||||
|
.D(~D), .Q($Q), .C(C), .CE(CE), .R(S)
|
||||||
|
);
|
||||||
|
end
|
||||||
|
else begin
|
||||||
|
assign Q = QQ;
|
||||||
|
FDSE_1 #(
|
||||||
|
.INIT(1'b0)
|
||||||
|
) _TECHMAP_REPLACE_ (
|
||||||
|
.D(D), .Q($Q), .C(C), .CE(CE), .S(S)
|
||||||
|
);
|
||||||
|
end endgenerate
|
||||||
|
$__ABC9_FF_ abc_dff (.D($Q), .Q(QQ));
|
||||||
|
|
||||||
|
// Special signals
|
||||||
|
wire [1:0] _TECHMAP_REPLACE_.$abc9_clock = {C, 1'b1 /* IS_C_INVERTED */};
|
||||||
|
wire [0:0] _TECHMAP_REPLACE_.$abc9_init = 1'b0;
|
||||||
|
wire [0:0] _TECHMAP_REPLACE_.$abc9_currQ = QQ;
|
||||||
|
`else
|
||||||
|
(* abc9_keep *)
|
||||||
|
FDSE_1 #(
|
||||||
|
.INIT(INIT)
|
||||||
|
) _TECHMAP_REPLACE_ (
|
||||||
|
.D(D), .Q(Q), .C(C), .CE(CE), .S(S)
|
||||||
|
);
|
||||||
|
`endif
|
||||||
|
endmodule
|
||||||
|
|
||||||
module FDCE (output Q, input C, CE, D, CLR);
|
module FDCE (output Q, input C, CE, D, CLR);
|
||||||
parameter [0:0] INIT = 1'b0;
|
parameter [0:0] INIT = 1'b0;
|
||||||
parameter [0:0] IS_C_INVERTED = 1'b0;
|
parameter [0:0] IS_C_INVERTED = 1'b0;
|
||||||
|
@ -379,89 +462,6 @@ module FDPE_1 (output Q, input C, CE, D, PRE);
|
||||||
`endif
|
`endif
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
module FDSE (output Q, input C, CE, D, S);
|
|
||||||
parameter [0:0] INIT = 1'b1;
|
|
||||||
parameter [0:0] IS_C_INVERTED = 1'b0;
|
|
||||||
parameter [0:0] IS_D_INVERTED = 1'b0;
|
|
||||||
parameter [0:0] IS_S_INVERTED = 1'b0;
|
|
||||||
`ifdef DFF_MODE
|
|
||||||
wire QQ, $Q;
|
|
||||||
generate if (INIT == 1'b1) begin
|
|
||||||
assign Q = ~QQ;
|
|
||||||
FDRE #(
|
|
||||||
.INIT(1'b0),
|
|
||||||
.IS_C_INVERTED(IS_C_INVERTED),
|
|
||||||
.IS_D_INVERTED(IS_D_INVERTED),
|
|
||||||
.IS_R_INVERTED(IS_S_INVERTED)
|
|
||||||
) _TECHMAP_REPLACE_ (
|
|
||||||
.D(~D), .Q($Q), .C(C), .CE(CE), .R(S)
|
|
||||||
);
|
|
||||||
end
|
|
||||||
else begin
|
|
||||||
assign Q = QQ;
|
|
||||||
FDSE #(
|
|
||||||
.INIT(1'b0),
|
|
||||||
.IS_C_INVERTED(IS_C_INVERTED),
|
|
||||||
.IS_D_INVERTED(IS_D_INVERTED),
|
|
||||||
.IS_S_INVERTED(IS_S_INVERTED)
|
|
||||||
) _TECHMAP_REPLACE_ (
|
|
||||||
.D(D), .Q($Q), .C(C), .CE(CE), .S(S)
|
|
||||||
);
|
|
||||||
end endgenerate
|
|
||||||
$__ABC9_FF_ abc_dff (.D($Q), .Q(QQ));
|
|
||||||
|
|
||||||
// Special signals
|
|
||||||
wire [1:0] _TECHMAP_REPLACE_.$abc9_clock = {C, IS_C_INVERTED};
|
|
||||||
wire [0:0] _TECHMAP_REPLACE_.$abc9_init = 1'b0;
|
|
||||||
wire [0:0] _TECHMAP_REPLACE_.$abc9_currQ = QQ;
|
|
||||||
`else
|
|
||||||
(* abc9_keep *)
|
|
||||||
FDSE #(
|
|
||||||
.INIT(INIT),
|
|
||||||
.IS_C_INVERTED(IS_C_INVERTED),
|
|
||||||
.IS_D_INVERTED(IS_D_INVERTED),
|
|
||||||
.IS_S_INVERTED(IS_S_INVERTED)
|
|
||||||
) _TECHMAP_REPLACE_ (
|
|
||||||
.D(D), .Q(Q), .C(C), .CE(CE), .S(S)
|
|
||||||
);
|
|
||||||
`endif
|
|
||||||
endmodule
|
|
||||||
module FDSE_1 (output Q, input C, CE, D, S);
|
|
||||||
parameter [0:0] INIT = 1'b1;
|
|
||||||
`ifdef DFF_MODE
|
|
||||||
wire QQ, $Q;
|
|
||||||
generate if (INIT == 1'b1) begin
|
|
||||||
assign Q = ~QQ;
|
|
||||||
FDRE_1 #(
|
|
||||||
.INIT(1'b0)
|
|
||||||
) _TECHMAP_REPLACE_ (
|
|
||||||
.D(~D), .Q($Q), .C(C), .CE(CE), .R(S)
|
|
||||||
);
|
|
||||||
end
|
|
||||||
else begin
|
|
||||||
assign Q = QQ;
|
|
||||||
FDSE_1 #(
|
|
||||||
.INIT(1'b0)
|
|
||||||
) _TECHMAP_REPLACE_ (
|
|
||||||
.D(D), .Q($Q), .C(C), .CE(CE), .S(S)
|
|
||||||
);
|
|
||||||
end endgenerate
|
|
||||||
$__ABC9_FF_ abc_dff (.D($Q), .Q(QQ));
|
|
||||||
|
|
||||||
// Special signals
|
|
||||||
wire [1:0] _TECHMAP_REPLACE_.$abc9_clock = {C, 1'b1 /* IS_C_INVERTED */};
|
|
||||||
wire [0:0] _TECHMAP_REPLACE_.$abc9_init = 1'b0;
|
|
||||||
wire [0:0] _TECHMAP_REPLACE_.$abc9_currQ = QQ;
|
|
||||||
`else
|
|
||||||
(* abc9_keep *)
|
|
||||||
FDSE_1 #(
|
|
||||||
.INIT(INIT)
|
|
||||||
) _TECHMAP_REPLACE_ (
|
|
||||||
.D(D), .Q(Q), .C(C), .CE(CE), .S(S)
|
|
||||||
);
|
|
||||||
`endif
|
|
||||||
endmodule
|
|
||||||
|
|
||||||
// Attach a (combinatorial) black-box onto the output
|
// Attach a (combinatorial) black-box onto the output
|
||||||
// of thes LUTRAM primitives to capture their
|
// of thes LUTRAM primitives to capture their
|
||||||
// asynchronous read behaviour
|
// asynchronous read behaviour
|
||||||
|
|
|
@ -81,48 +81,48 @@ FDRE_1 1101 1 5 1
|
||||||
#0 109 -46 404 0
|
#0 109 -46 404 0
|
||||||
0 109 0 404 0 # Q (-46ps Tsu clamped to 0)
|
0 109 0 404 0 # Q (-46ps Tsu clamped to 0)
|
||||||
|
|
||||||
# Box 1102 : FDCE
|
# Box 1102 : FDSE
|
||||||
# name ID w/b ins outs
|
# name ID w/b ins outs
|
||||||
FDCE 1102 1 5 1
|
FDSE 1102 1 5 1
|
||||||
#C CE CLR D $abc9_currQ
|
|
||||||
#0 109 764 -46 0
|
|
||||||
0 109 764 0 0 # Q (-46ps Tsu clamped to 0)
|
|
||||||
|
|
||||||
# Box 1103 : FDCE_1
|
|
||||||
# name ID w/b ins outs
|
|
||||||
FDCE_1 1103 1 5 1
|
|
||||||
#C CE CLR D $abc9_currQ
|
|
||||||
#0 109 764 -46 0
|
|
||||||
0 109 764 0 0 # Q (-46ps Tsu clamped to 0)
|
|
||||||
|
|
||||||
# Box 1104 : FDPE
|
|
||||||
# name ID w/b ins outs
|
|
||||||
FDPE 1104 1 5 1
|
|
||||||
#C CE D PRE $abc9_currQ
|
|
||||||
#0 109 -46 764 0
|
|
||||||
0 109 -46 764 0 # Q (-46ps Tsu clamped to 0)
|
|
||||||
|
|
||||||
# Box 1105 : FDPE_1
|
|
||||||
# name ID w/b ins outs
|
|
||||||
FDPE_1 1105 1 5 1
|
|
||||||
#C CE D PRE $abc9_currQ
|
|
||||||
#0 109 -46 764 0
|
|
||||||
0 109 -46 764 0 # Q (-46ps Tsu clamped to 0)
|
|
||||||
|
|
||||||
# Box 1106 : FDSE
|
|
||||||
# name ID w/b ins outs
|
|
||||||
FDSE 1106 1 5 1
|
|
||||||
#C CE D R $abc9_currQ
|
#C CE D R $abc9_currQ
|
||||||
#0 109 -46 404 0
|
#0 109 -46 404 0
|
||||||
0 109 0 404 0 # Q (-46ps Tsu clamped to 0)
|
0 109 0 404 0 # Q (-46ps Tsu clamped to 0)
|
||||||
|
|
||||||
# Box 1107 : FDSE_1
|
# Box 1103 : FDSE_1
|
||||||
# name ID w/b ins outs
|
# name ID w/b ins outs
|
||||||
FDSE_1 1107 1 5 1
|
FDSE_1 1103 1 5 1
|
||||||
#C CE D R $abc9_currQ
|
#C CE D R $abc9_currQ
|
||||||
#0 109 -46 404 0
|
#0 109 -46 404 0
|
||||||
0 109 0 404 0 # Q (-46ps Tsu clamped to 0)
|
0 109 0 404 0 # Q (-46ps Tsu clamped to 0)
|
||||||
|
|
||||||
|
# Box 1104 : FDCE
|
||||||
|
# name ID w/b ins outs
|
||||||
|
FDCE 1104 1 5 1
|
||||||
|
#C CE CLR D $abc9_currQ
|
||||||
|
#0 109 764 -46 0
|
||||||
|
0 109 764 0 0 # Q (-46ps Tsu clamped to 0)
|
||||||
|
|
||||||
|
# Box 1105 : FDCE_1
|
||||||
|
# name ID w/b ins outs
|
||||||
|
FDCE_1 1105 1 5 1
|
||||||
|
#C CE CLR D $abc9_currQ
|
||||||
|
#0 109 764 -46 0
|
||||||
|
0 109 764 0 0 # Q (-46ps Tsu clamped to 0)
|
||||||
|
|
||||||
|
# Box 1106 : FDPE
|
||||||
|
# name ID w/b ins outs
|
||||||
|
FDPE 1106 1 5 1
|
||||||
|
#C CE D PRE $abc9_currQ
|
||||||
|
#0 109 -46 764 0
|
||||||
|
0 109 -46 764 0 # Q (-46ps Tsu clamped to 0)
|
||||||
|
|
||||||
|
# Box 1107 : FDPE_1
|
||||||
|
# name ID w/b ins outs
|
||||||
|
FDPE_1 1107 1 5 1
|
||||||
|
#C CE D PRE $abc9_currQ
|
||||||
|
#0 109 -46 764 0
|
||||||
|
0 109 -46 764 0 # Q (-46ps Tsu clamped to 0)
|
||||||
|
|
||||||
# Box 2000 : $__ABC9_LUT6
|
# Box 2000 : $__ABC9_LUT6
|
||||||
# (private cell to emulate async behaviour of LUTRAMs)
|
# (private cell to emulate async behaviour of LUTRAMs)
|
||||||
# SLICEM/A6LUT
|
# SLICEM/A6LUT
|
||||||
|
|
|
@ -362,6 +362,43 @@ module FDRE_1 (
|
||||||
always @(negedge C) if (R) Q <= 1'b0; else if (CE) Q <= D;
|
always @(negedge C) if (R) Q <= 1'b0; else if (CE) Q <= D;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
(* abc9_box_id=1102, lib_whitebox, abc9_flop *)
|
||||||
|
module FDSE (
|
||||||
|
(* abc9_arrival=303 *)
|
||||||
|
output reg Q,
|
||||||
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_C_INVERTED" *)
|
||||||
|
input C,
|
||||||
|
input CE,
|
||||||
|
(* invertible_pin = "IS_D_INVERTED" *)
|
||||||
|
input D,
|
||||||
|
(* invertible_pin = "IS_S_INVERTED" *)
|
||||||
|
input S
|
||||||
|
);
|
||||||
|
parameter [0:0] INIT = 1'b1;
|
||||||
|
parameter [0:0] IS_C_INVERTED = 1'b0;
|
||||||
|
parameter [0:0] IS_D_INVERTED = 1'b0;
|
||||||
|
parameter [0:0] IS_S_INVERTED = 1'b0;
|
||||||
|
initial Q <= INIT;
|
||||||
|
generate case (|IS_C_INVERTED)
|
||||||
|
1'b0: always @(posedge C) if (S == !IS_S_INVERTED) Q <= 1'b1; else if (CE) Q <= D ^ IS_D_INVERTED;
|
||||||
|
1'b1: always @(negedge C) if (S == !IS_S_INVERTED) Q <= 1'b1; else if (CE) Q <= D ^ IS_D_INVERTED;
|
||||||
|
endcase endgenerate
|
||||||
|
endmodule
|
||||||
|
|
||||||
|
(* abc9_box_id=1103, lib_whitebox, abc9_flop *)
|
||||||
|
module FDSE_1 (
|
||||||
|
(* abc9_arrival=303 *)
|
||||||
|
output reg Q,
|
||||||
|
(* clkbuf_sink *)
|
||||||
|
input C,
|
||||||
|
input CE, D, S
|
||||||
|
);
|
||||||
|
parameter [0:0] INIT = 1'b1;
|
||||||
|
initial Q <= INIT;
|
||||||
|
always @(negedge C) if (S) Q <= 1'b1; else if (CE) Q <= D;
|
||||||
|
endmodule
|
||||||
|
|
||||||
module FDRSE (
|
module FDRSE (
|
||||||
output reg Q,
|
output reg Q,
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
@ -397,7 +434,7 @@ module FDRSE (
|
||||||
Q <= d;
|
Q <= d;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
(* abc9_box_id=1102, lib_whitebox, abc9_flop *)
|
(* abc9_box_id=1104, lib_whitebox, abc9_flop *)
|
||||||
module FDCE (
|
module FDCE (
|
||||||
(* abc9_arrival=303 *)
|
(* abc9_arrival=303 *)
|
||||||
output reg Q,
|
output reg Q,
|
||||||
|
@ -423,7 +460,7 @@ module FDCE (
|
||||||
endcase endgenerate
|
endcase endgenerate
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
(* abc9_box_id=1103, lib_whitebox, abc9_flop *)
|
(* abc9_box_id=1105, lib_whitebox, abc9_flop *)
|
||||||
module FDCE_1 (
|
module FDCE_1 (
|
||||||
(* abc9_arrival=303 *)
|
(* abc9_arrival=303 *)
|
||||||
output reg Q,
|
output reg Q,
|
||||||
|
@ -436,6 +473,45 @@ module FDCE_1 (
|
||||||
always @(negedge C, posedge CLR) if (CLR) Q <= 1'b0; else if (CE) Q <= D;
|
always @(negedge C, posedge CLR) if (CLR) Q <= 1'b0; else if (CE) Q <= D;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
(* abc9_box_id=1106, lib_whitebox, abc9_flop *)
|
||||||
|
module FDPE (
|
||||||
|
(* abc9_arrival=303 *)
|
||||||
|
output reg Q,
|
||||||
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_C_INVERTED" *)
|
||||||
|
input C,
|
||||||
|
input CE,
|
||||||
|
(* invertible_pin = "IS_D_INVERTED" *)
|
||||||
|
input D,
|
||||||
|
(* invertible_pin = "IS_PRE_INVERTED" *)
|
||||||
|
input PRE
|
||||||
|
);
|
||||||
|
parameter [0:0] INIT = 1'b1;
|
||||||
|
parameter [0:0] IS_C_INVERTED = 1'b0;
|
||||||
|
parameter [0:0] IS_D_INVERTED = 1'b0;
|
||||||
|
parameter [0:0] IS_PRE_INVERTED = 1'b0;
|
||||||
|
initial Q <= INIT;
|
||||||
|
generate case ({|IS_C_INVERTED, |IS_PRE_INVERTED})
|
||||||
|
2'b00: always @(posedge C, posedge PRE) if ( PRE) Q <= 1'b1; else if (CE) Q <= D ^ IS_D_INVERTED;
|
||||||
|
2'b01: always @(posedge C, negedge PRE) if (!PRE) Q <= 1'b1; else if (CE) Q <= D ^ IS_D_INVERTED;
|
||||||
|
2'b10: always @(negedge C, posedge PRE) if ( PRE) Q <= 1'b1; else if (CE) Q <= D ^ IS_D_INVERTED;
|
||||||
|
2'b11: always @(negedge C, negedge PRE) if (!PRE) Q <= 1'b1; else if (CE) Q <= D ^ IS_D_INVERTED;
|
||||||
|
endcase endgenerate
|
||||||
|
endmodule
|
||||||
|
|
||||||
|
(* abc9_box_id=1107, lib_whitebox, abc9_flop *)
|
||||||
|
module FDPE_1 (
|
||||||
|
(* abc9_arrival=303 *)
|
||||||
|
output reg Q,
|
||||||
|
(* clkbuf_sink *)
|
||||||
|
input C,
|
||||||
|
input CE, D, PRE
|
||||||
|
);
|
||||||
|
parameter [0:0] INIT = 1'b1;
|
||||||
|
initial Q <= INIT;
|
||||||
|
always @(negedge C, posedge PRE) if (PRE) Q <= 1'b1; else if (CE) Q <= D;
|
||||||
|
endmodule
|
||||||
|
|
||||||
module FDCPE (
|
module FDCPE (
|
||||||
output wire Q,
|
output wire Q,
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
@ -481,82 +557,6 @@ module FDCPE (
|
||||||
assign Q = qs ? qp : qc;
|
assign Q = qs ? qp : qc;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
(* abc9_box_id=1104, lib_whitebox, abc9_flop *)
|
|
||||||
module FDPE (
|
|
||||||
(* abc9_arrival=303 *)
|
|
||||||
output reg Q,
|
|
||||||
(* clkbuf_sink *)
|
|
||||||
(* invertible_pin = "IS_C_INVERTED" *)
|
|
||||||
input C,
|
|
||||||
input CE,
|
|
||||||
(* invertible_pin = "IS_D_INVERTED" *)
|
|
||||||
input D,
|
|
||||||
(* invertible_pin = "IS_PRE_INVERTED" *)
|
|
||||||
input PRE
|
|
||||||
);
|
|
||||||
parameter [0:0] INIT = 1'b1;
|
|
||||||
parameter [0:0] IS_C_INVERTED = 1'b0;
|
|
||||||
parameter [0:0] IS_D_INVERTED = 1'b0;
|
|
||||||
parameter [0:0] IS_PRE_INVERTED = 1'b0;
|
|
||||||
initial Q <= INIT;
|
|
||||||
generate case ({|IS_C_INVERTED, |IS_PRE_INVERTED})
|
|
||||||
2'b00: always @(posedge C, posedge PRE) if ( PRE) Q <= 1'b1; else if (CE) Q <= D ^ IS_D_INVERTED;
|
|
||||||
2'b01: always @(posedge C, negedge PRE) if (!PRE) Q <= 1'b1; else if (CE) Q <= D ^ IS_D_INVERTED;
|
|
||||||
2'b10: always @(negedge C, posedge PRE) if ( PRE) Q <= 1'b1; else if (CE) Q <= D ^ IS_D_INVERTED;
|
|
||||||
2'b11: always @(negedge C, negedge PRE) if (!PRE) Q <= 1'b1; else if (CE) Q <= D ^ IS_D_INVERTED;
|
|
||||||
endcase endgenerate
|
|
||||||
endmodule
|
|
||||||
|
|
||||||
(* abc9_box_id=1105, lib_whitebox, abc9_flop *)
|
|
||||||
module FDPE_1 (
|
|
||||||
(* abc9_arrival=303 *)
|
|
||||||
output reg Q,
|
|
||||||
(* clkbuf_sink *)
|
|
||||||
input C,
|
|
||||||
input CE, D, PRE
|
|
||||||
);
|
|
||||||
parameter [0:0] INIT = 1'b1;
|
|
||||||
initial Q <= INIT;
|
|
||||||
always @(negedge C, posedge PRE) if (PRE) Q <= 1'b1; else if (CE) Q <= D;
|
|
||||||
endmodule
|
|
||||||
|
|
||||||
(* abc9_box_id=1106, lib_whitebox, abc9_flop *)
|
|
||||||
module FDSE (
|
|
||||||
(* abc9_arrival=303 *)
|
|
||||||
output reg Q,
|
|
||||||
(* clkbuf_sink *)
|
|
||||||
(* invertible_pin = "IS_C_INVERTED" *)
|
|
||||||
input C,
|
|
||||||
input CE,
|
|
||||||
(* invertible_pin = "IS_D_INVERTED" *)
|
|
||||||
input D,
|
|
||||||
(* invertible_pin = "IS_S_INVERTED" *)
|
|
||||||
input S
|
|
||||||
);
|
|
||||||
parameter [0:0] INIT = 1'b1;
|
|
||||||
parameter [0:0] IS_C_INVERTED = 1'b0;
|
|
||||||
parameter [0:0] IS_D_INVERTED = 1'b0;
|
|
||||||
parameter [0:0] IS_S_INVERTED = 1'b0;
|
|
||||||
initial Q <= INIT;
|
|
||||||
generate case (|IS_C_INVERTED)
|
|
||||||
1'b0: always @(posedge C) if (S == !IS_S_INVERTED) Q <= 1'b1; else if (CE) Q <= D ^ IS_D_INVERTED;
|
|
||||||
1'b1: always @(negedge C) if (S == !IS_S_INVERTED) Q <= 1'b1; else if (CE) Q <= D ^ IS_D_INVERTED;
|
|
||||||
endcase endgenerate
|
|
||||||
endmodule
|
|
||||||
|
|
||||||
(* abc9_box_id=1107, lib_whitebox, abc9_flop *)
|
|
||||||
module FDSE_1 (
|
|
||||||
(* abc9_arrival=303 *)
|
|
||||||
output reg Q,
|
|
||||||
(* clkbuf_sink *)
|
|
||||||
input C,
|
|
||||||
input CE, D, S
|
|
||||||
);
|
|
||||||
parameter [0:0] INIT = 1'b1;
|
|
||||||
initial Q <= INIT;
|
|
||||||
always @(negedge C) if (S) Q <= 1'b1; else if (CE) Q <= D;
|
|
||||||
endmodule
|
|
||||||
|
|
||||||
module LDCE (
|
module LDCE (
|
||||||
output reg Q,
|
output reg Q,
|
||||||
(* invertible_pin = "IS_CLR_INVERTED" *)
|
(* invertible_pin = "IS_CLR_INVERTED" *)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue