I am trying to delete cells by feeding the SKILL code to icfb in nograph mode. The following code works through the GUI but not in nograph mode:
when(ddGetObj(lib cell) ddDeleteObj(ddGetObj(lib cell)))
This is the appropriate forum for this question.
It worked for me when I tried it (using IC5141USR5 and also 188.8.131.520.6.129)
> cell = ddGetObj("deleteMe" "removeMe")dd:0xbfbf684> ddDeleteObj(cell)t
In what way does it not work for you? Which version are you using?
I am using IC6.1.3, and I run 'virtuoso -nograph -replay file.il'. I just realized that I get the this message: *WARNING* ddDeleteObj: ddCellType 'removeMe' owns files that are in use by other users, because I am running another virtuoso at the same time. Is there a way to force the deletion?
It could just be that an intermediate variable isn't being used:
...may work from the interactive parser but won't necessarily work in a script. I've seen similar behaviour in the other code I've written so I'm always in the habit of breaking up the operation as Lawrence showed.
Aside: You may need to follow the 'ddDeleteObj(cell)' with a 'ddReleaseObj(cell)'. In general, matching 'myVar=ddGetObj(...)' with 'ddReleaseObj(myVar)' makes life a lot easier when you start doing more complex creation/editing of database-linked objects like 'verilog.v' or 'expand.cfg' files.
If the ddReleaseObj() suggested by Andrew did not work, it may be that the file (or files) is locked.You might use ddLockFree() and other ddLock* functions to free the lock and then this should allow you to delete the cells.