dfflibmap: add regression test for resetval clobber

This commit is contained in:
Emil J. Tywoniak 2026-07-14 18:02:02 +02:00
parent 332ea782eb
commit eb96123030
2 changed files with 65 additions and 0 deletions

View File

@ -0,0 +1,52 @@
library(test) {
cell (bad_dff) {
area : 1;
ff("IQ", "IQN") {
next_state : "!D"; // Look here
clocked_on : "CLK";
preset : "!RST"; // Look here
}
pin(D) {
direction : input;
}
pin(CLK) {
direction : input;
}
pin(RST) {
direction : input;
}
pin(Q) {
direction: output;
function : "IQ";
}
pin(QN) {
direction: output;
function : "IQN";
}
}
cell (good_dff) {
area : 1;
ff("IQ", "IQN") {
next_state : "D"; // Look here
clocked_on : "CLK";
clear : "RST"; // Look here
}
pin(D) {
direction : input;
}
pin(CLK) {
direction : input;
}
pin(RST) {
direction : input;
}
pin(Q) {
direction: output;
function : "IQ";
}
pin(QN) {
direction: output;
function : "IQN";
}
}
}

View File

@ -0,0 +1,13 @@
read_verilog -icells <<EOT
module top(input C, D, R, output Q);
$_DFF_PP0_ ff (.C(C), .D(D), .R(R), .Q(Q));
endmodule
EOT
dfflibmap -liberty dfflibmap_resetval_clobber.lib top
read_liberty dfflibmap_resetval_clobber.lib
flatten -noscopeinfo
opt_clean
select -assert-count 1 t:* top %i
select -assert-count 1 t:$_DFF_PP0_ top %i