2019-12-11 14:10:30 -06:00
|
|
|
read_verilog -icells <<EOT
|
2020-04-13 17:16:51 -05:00
|
|
|
module top(input C, R, input [1:0] D, (* init = {2'b10, 2'b01, 1'b1, {8{1'b1}}} *) output [12:0] Q);
|
2019-12-11 14:10:30 -06:00
|
|
|
|
2020-04-13 16:29:44 -05:00
|
|
|
(* init = 1'b1 *)
|
|
|
|
wire unused;
|
|
|
|
|
|
|
|
$_DFF_NN0_ dff0 (.C(C), .D(D[0]), .R(R), .Q(Q[0]));
|
|
|
|
$_DFF_NN1_ dff1 (.C(C), .D(D[0]), .R(R), .Q(Q[1]));
|
|
|
|
$_DFF_NP0_ dff2 (.C(C), .D(D[0]), .R(R), .Q(Q[2]));
|
|
|
|
$_DFF_NP1_ dff3 (.C(C), .D(D[0]), .R(R), .Q(Q[3]));
|
|
|
|
$_DFF_PN0_ dff4 (.C(C), .D(D[0]), .R(R), .Q(Q[4]));
|
|
|
|
$_DFF_PN1_ dff5 (.C(C), .D(D[0]), .R(R), .Q(Q[5]));
|
|
|
|
$_DFF_PP0_ dff6 (.C(C), .D(D[0]), .R(R), .Q(Q[6]));
|
|
|
|
$_DFF_PP1_ dff7 (.C(C), .D(D[0]), .R(R), .Q(Q[7]));
|
|
|
|
|
2020-04-13 17:16:51 -05:00
|
|
|
$adff #(.WIDTH(2), .CLK_POLARITY(1), .ARST_POLARITY(1'b0), .ARST_VALUE(2'b10)) dff8 (.CLK(C), .ARST(R), .D(D), .Q(Q[10:9]));
|
|
|
|
$adff #(.WIDTH(2), .CLK_POLARITY(0), .ARST_POLARITY(1'b1), .ARST_VALUE(2'b01)) dff9 (.CLK(C), .ARST(R), .D(D), .Q(Q[12:11]));
|
2019-12-11 14:10:30 -06:00
|
|
|
endmodule
|
|
|
|
EOT
|
2020-04-13 17:16:51 -05:00
|
|
|
equiv_opt -assert -map +/simcells.v -multiclock zinit
|
2020-04-13 16:29:44 -05:00
|
|
|
design -load postopt
|
|
|
|
|
2020-04-13 17:16:51 -05:00
|
|
|
select -assert-count 20 t:$_NOT_
|
2020-04-13 16:29:44 -05:00
|
|
|
select -assert-count 1 w:unused a:init %i
|
2020-04-13 17:16:51 -05:00
|
|
|
select -assert-count 1 w:Q a:init=13'bxxxx1xxxxxxxx %i
|
|
|
|
|
|
|
|
|
|
|
|
design -reset
|
|
|
|
read_verilog -icells <<EOT
|
|
|
|
module top(input C, R, input [1:0] D, (* init = {2'bx0, 2'b0x, 1'b1, {8{1'b0}}} *) output [12:0] Q);
|
|
|
|
|
|
|
|
(* init = 1'b1 *)
|
|
|
|
wire unused;
|
|
|
|
|
|
|
|
$_DFF_NN0_ dff0 (.C(C), .D(D[0]), .R(R), .Q(Q[0]));
|
|
|
|
$_DFF_NN1_ dff1 (.C(C), .D(D[0]), .R(R), .Q(Q[1]));
|
|
|
|
$_DFF_NP0_ dff2 (.C(C), .D(D[0]), .R(R), .Q(Q[2]));
|
|
|
|
$_DFF_NP1_ dff3 (.C(C), .D(D[0]), .R(R), .Q(Q[3]));
|
|
|
|
$_DFF_PN0_ dff4 (.C(C), .D(D[0]), .R(R), .Q(Q[4]));
|
|
|
|
$_DFF_PN1_ dff5 (.C(C), .D(D[0]), .R(R), .Q(Q[5]));
|
|
|
|
$_DFF_PP0_ dff6 (.C(C), .D(D[0]), .R(R), .Q(Q[6]));
|
|
|
|
$_DFF_PP1_ dff7 (.C(C), .D(D[0]), .R(R), .Q(Q[7]));
|
|
|
|
|
|
|
|
$adff #(.WIDTH(2), .CLK_POLARITY(1), .ARST_POLARITY(1'b0), .ARST_VALUE(2'b10)) dff8 (.CLK(C), .ARST(R), .D(D), .Q(Q[10:9]));
|
|
|
|
$adff #(.WIDTH(2), .CLK_POLARITY(0), .ARST_POLARITY(1'b1), .ARST_VALUE(2'b01)) dff9 (.CLK(C), .ARST(R), .D(D), .Q(Q[12:11]));
|
|
|
|
endmodule
|
|
|
|
EOT
|
|
|
|
select -assert-count 0 t:$_NOT_
|
|
|
|
select -assert-count 1 w:unused a:init %i
|
|
|
|
select -assert-count 1 w:Q a:init=13'bx00x100000000 %i
|