liberty latch inference require untate D->Q arcs

Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
James Cherry 2022-07-01 19:22:03 -07:00
parent 7ff4ff6db4
commit 9658811092
1 changed files with 3 additions and 4 deletions

View File

@ -1728,10 +1728,9 @@ LibertyCell::inferLatchRoles(Debug *debug)
// Look for combinational d->q arcs.
TimingRole *d_to_q_role = d_to_q->role();
if ((d_to_q_role == TimingRole::combinational()
&& ((d_to_q->arcCount() == 2
&& (d_to_q->sense() == TimingSense::positive_unate
|| d_to_q->sense() == TimingSense::negative_unate))
|| (d_to_q->arcCount() == 4)))
&& d_to_q->arcCount() == 2
&& (d_to_q->sense() == TimingSense::positive_unate
|| d_to_q->sense() == TimingSense::negative_unate))
// Previously identified as D->Q arc.
|| d_to_q_role == TimingRole::latchDtoQ()) {
LibertyPort *d = d_to_q->from();