2019-12-13 12:26:30 -06:00
|
|
|
read_verilog -icells <<EOT
|
|
|
|
module top(input clk, i, (* init = 1'b0 *) output o, p);
|
|
|
|
\$dff #(
|
|
|
|
.CLK_POLARITY(1'h1),
|
|
|
|
.WIDTH(32'd1)
|
|
|
|
) ffo (
|
|
|
|
.CLK(clk),
|
|
|
|
.D(i),
|
|
|
|
.Q(o)
|
|
|
|
);
|
|
|
|
\$dff #(
|
|
|
|
.CLK_POLARITY(1'h1),
|
|
|
|
.WIDTH(32'd1)
|
|
|
|
) ffp (
|
|
|
|
.CLK(clk),
|
|
|
|
.D(i),
|
|
|
|
.Q(p)
|
|
|
|
);
|
|
|
|
endmodule
|
|
|
|
EOT
|
|
|
|
|
|
|
|
opt_merge
|
2020-03-10 18:13:44 -05:00
|
|
|
select -assert-count 1 t:$dff
|
2019-12-13 12:26:30 -06:00
|
|
|
select -assert-count 1 a:init=1'0
|
|
|
|
|
|
|
|
|
|
|
|
design -reset
|
|
|
|
read_verilog -icells <<EOT
|
|
|
|
module top(input clk, i, (* init = 2'b11 *) output [1:0] o);
|
|
|
|
\$dff #(
|
|
|
|
.CLK_POLARITY(1'h1),
|
|
|
|
.WIDTH(32'd1)
|
|
|
|
) ff1 (
|
|
|
|
.CLK(clk),
|
|
|
|
.D(i),
|
|
|
|
.Q(o[1])
|
|
|
|
);
|
|
|
|
\$dff #(
|
|
|
|
.CLK_POLARITY(1'h1),
|
|
|
|
.WIDTH(32'd1)
|
|
|
|
) ff0 (
|
|
|
|
.CLK(clk),
|
|
|
|
.D(i),
|
|
|
|
.Q(o[0])
|
|
|
|
);
|
|
|
|
endmodule
|
|
|
|
EOT
|
|
|
|
|
|
|
|
opt_merge
|
2020-03-10 18:13:44 -05:00
|
|
|
select -assert-count 1 t:$dff
|
2021-08-07 17:33:31 -05:00
|
|
|
select -assert-count 1 a:init=2'bx1 a:init=2'b1x
|
2020-03-10 18:13:44 -05:00
|
|
|
|
|
|
|
|
|
|
|
design -reset
|
|
|
|
read_verilog -icells <<EOT
|
|
|
|
module top(input clk, i, (* init = 1'b0 *) output o, /* NB: no init here! */ output p);
|
|
|
|
\$dff #(
|
|
|
|
.CLK_POLARITY(1'h1),
|
|
|
|
.WIDTH(32'd1)
|
|
|
|
) ffo (
|
|
|
|
.CLK(clk),
|
|
|
|
.D(i),
|
|
|
|
.Q(o)
|
|
|
|
);
|
|
|
|
\$dff #(
|
|
|
|
.CLK_POLARITY(1'h1),
|
|
|
|
.WIDTH(32'd1)
|
|
|
|
) ffp (
|
|
|
|
.CLK(clk),
|
|
|
|
.D(i),
|
|
|
|
.Q(p)
|
|
|
|
);
|
|
|
|
endmodule
|
|
|
|
EOT
|
|
|
|
|
|
|
|
opt_merge
|
|
|
|
select -assert-count 2 t:$dff
|