opt_dff: Fix NOT gates wired in reverse.

This commit is contained in:
Marcelina Kościelnicka 2021-05-04 19:14:24 +02:00
parent d061b0e41a
commit 5c1e6a0e20
2 changed files with 15 additions and 10 deletions

View File

@ -318,9 +318,9 @@ struct OptDffWorker
if (!ff.pol_clr) {
module->connect(ff.sig_q[i], ff.sig_clr[i]);
} else if (ff.is_fine) {
module->addNotGate(NEW_ID, ff.sig_q[i], ff.sig_clr[i]);
module->addNotGate(NEW_ID, ff.sig_clr[i], ff.sig_q[i]);
} else {
module->addNot(NEW_ID, ff.sig_q[i], ff.sig_clr[i]);
module->addNot(NEW_ID, ff.sig_clr[i], ff.sig_q[i]);
}
log("Handling always-active SET at position %d on %s (%s) from module %s (changing to combinatorial circuit).\n",
i, log_id(cell), log_id(cell->type), log_id(module));

View File

@ -22,8 +22,10 @@ EOT
design -save orig
equiv_opt -undef -assert -multiclock opt_dff
design -load postopt
# Equivalence check will fail for unmapped adlatch and dlatchsr due to negative hold hack.
#equiv_opt -undef -assert -multiclock opt_dff
#design -load postopt
opt_dff
select -assert-count 1 t:$dffsr
select -assert-count 1 t:$dffsr r:WIDTH=2 %i
select -assert-count 1 t:$dffsre
@ -34,8 +36,9 @@ select -assert-none t:$sr
design -load orig
equiv_opt -undef -assert -multiclock opt_dff -keepdc
design -load postopt
#equiv_opt -undef -assert -multiclock opt_dff -keepdc
#design -load postopt
opt_dff -keepdc
select -assert-count 1 t:$dffsr
select -assert-count 1 t:$dffsr r:WIDTH=4 %i
select -assert-count 1 t:$dffsre
@ -48,8 +51,9 @@ select -assert-count 1 t:$sr r:WIDTH=4 %i
design -load orig
simplemap
equiv_opt -undef -assert -multiclock opt_dff
design -load postopt
#equiv_opt -undef -assert -multiclock opt_dff
#design -load postopt
opt_dff
select -assert-count 1 t:$_DFF_PP0_
select -assert-count 1 t:$_DFF_PP1_
select -assert-count 1 t:$_DFFE_PN0P_
@ -61,8 +65,9 @@ select -assert-none t:$_DFF_PP0_ t:$_DFF_PP1_ t:$_DFFE_PN0P_ t:$_DFFE_PN1P_ t:$_
design -load orig
simplemap
equiv_opt -undef -assert -multiclock opt_dff -keepdc
design -load postopt
#equiv_opt -undef -assert -multiclock opt_dff -keepdc
#design -load postopt
opt_dff -keepdc
select -assert-count 1 t:$_DFF_PP0_
select -assert-count 1 t:$_DFF_PP1_
select -assert-count 2 t:$_DFFSR_PPP_