I’m trying defining a new via with SKILL.I’ve try using function techCreateStdViaDef to do this but it seems not work.My technology file doesn’t have the new via’s definition and I can not create the via to my cell.Are there any other things I should do or any other functions I should use?By the Way,I’ve also tried defining a new via by modifying my technology file manually and I succeeded,but I still want to succeed with SKILL?
I think we need a little more info about how exactly you make the call to techCreateStdViaDef (..), it's return value and whether you get any errors. There's a lot of things that can go wrong like not having a valid techfile id, specifying invalid layers etc...
there is my code:
tf=techOpenTechFile(“techLibname” “tech.db” “a”)
myVia=techCreateStdViaDef(tf “M2_M1a” “Met1” “Met2” list(“Via1” 0.19 0.19) list(1 1 ‘(0.22 0.22)) ‘(0.05 0.05) ‘(0.05 0.05) ‘(0.0 0.0) ‘(0.0 0.0) ‘(0.0 0.0)
These codes are in a script and the CIW return “t” when I load the script.After more detailed check,I find that I can find the new via’s definition from the tech file that I dump from my tech library after I load the script. However,My orignial tech file still has no the via’s definition and I cannot still add the new via to my cell because I can not see the new via in “Create Via” form.
Besides,let me tell you how I define a new via manually.I added a new via’s definition to my tech file’ s standardViaDefs section and then added the new via’s definition name to all the interconnect section and it works.
In addition to adding the stdVia def, you need to add it into the validVias interconnect constraint in the constraint group being used for Vias. That's what you've been doing manually, but if adding via SKILL you'd need to do it then too. The constraint group used is the one on Options->Editor for via.
You can do it this way:
cv=geGetEditCellView()cgName=cstGetDefaultConstraintGroupName(cv "Via") ; this should be what is on the Options->Editorcg=cstFindConstraintGroupIn(tf cgName)vv=cstFindFirstConstraint(cg "validVias")vv~>value=cons("M2_M1a" vv~>value)
Thank you for your help .Your method works