ALIGN-analoglayout / ALIGN-public

BSD 3-Clause "New" or "Revised" License
265 stars 66 forks source link

PnR crash due to symmetry constraints. #367

Closed kkunal1408 closed 2 years ago

kkunal1408 commented 4 years ago

Example inverter_v1. Crash if INV_LVT has a constraint "SymmBlock ( {xm0} , {xm1} )". The test case can be reproduced by removing "and name not in lib_names" from line 188 in align/compiler.py

kkunal1408 commented 4 years ago

correcting the path of file "align/compiler/compiler.py"

Lastdayends commented 4 years ago

@kkunal1408

The SymmBlock ( {xm0} , {xm1} ) breaks one assumption, that the symmetry block should have seem type of master name. In this case, one is Nmos, one is Pmos.

kkunal1408 commented 4 years ago

From my understanding, here I am defining self symmetry of xm0 and xm1, there is no relation between xm0 and xm1.

kkunal1408 commented 4 years ago

And symmetry between xm0 and xm1 will be defined as "SymmBlock ( {xm0, xm1} )"

Lastdayends commented 4 years ago

@kkunal1408

There is no such code "and name not in lib_names" in align/compiler/compiler.py

I run current master code without changing compiler.py. It works.

How to reproduce the error case?

kkunal1408 commented 4 years ago

Its on line Line 181: if name not in design_setup['DIGITAL'] and name not in lib_names: