I want to write a skill file to update standard cell librarie all symbols with VDD/VSS pins.
There exits all symbol view.
When I use the "schViewToView()" function, I want to select the "Modify" function.
How could I do the job automatically?
Thanks for your great help!
pinList=schSchemToPinList("mylib" "mycell" "schematic")pinList->prop->schCvCreationMethod="Modify"schPinListToView("mylib" "mycell" "symbol" pinList "schPinListToSymbolGen")
Should do it.
It works. Thanks and Happy New Year!
The schPinListToView function works, however the pins added are not touching the rect of the symbol. Is there a way to add pins to the symbol that touches the rect boundary?
In order to do this, you'd need to change the TSG (Text to Symbol Generator) template. I did it by copying the <ICinstDir>/tools/dfII/samples/symbolGen/artist.tsg (pick whichever template you normally use on the Create->CellView from Cellview route) to a local file, myArtist.tsg. I then edited this file and changed the wireLength to 0.0 (in the symbolParams section). More details can be found in the Text to Symbol Generator appendix (Appendix C in the version I'm using) of the Virtuoso Schematic Editor L User Guide.
tsgTemplateMasters=cons(list("myArtist" strcat(getWorkingDir() "/myArtist.tsg")) tsgTemplateMasters)envSetVal("schematic" "tsgTemplateType" 'string "myArtist")
The first adds the path to your modified template into the master list, and then the second specifies the template you want to use. This will be consumed by the schPinListToView function above, and you'll end up with pins directly on the box of the symbol without any pin legs.
I updated symbolParam wireLength to 0.0 but it doesn't change anything. pins are still create below the rect shape in "device" "drawing".
symbolParam( origin = topLeftPin wireSpacing = 0.125000 wireLength = 0.000000 labelHeight = 0.062500 vSideLength = 0.000000 hSideLength = 0.000000 )
I'm trying to post process these pins and legs by rotating them and moving them to the left side of the rect shape. However, schHiRotate(t) doesn't rotate them.
I'd like to select all lable/rect/line below ycoord = xxx, rotate to R90, move them to the left side of the device rect :
rect=car(setof(x cv~>shapes x~>objType=="rect" && x~>net==nil && car(x~>lpp)=="device"))topLeftXY=list(caar(rect~>bBox) cadadr(rect~>bBox))
shapeList = setof(x cv~>shapes cadar(x~>bBox)<cadadr(rect~>bBox));;roate all shapeList to R90;;Move them to topLeftXYcould you guide through the last two steps. Thanks.