With the skill code below I try to delete simple mosaics (arrays) of
a VIA3 cell in layout views.
cv = dbOpenCellViewByType(libName cell~>name "layout" "" "a")
foreach(inst cv~>instances
if( equal(inst~>cellName "VIA3")
then dbDeleteObject(inst)
) ; if
But the result is not as expected:
*WARNING* You can't delete the mosaicInst in the simple mosaic.
According to the skill user reference the dbDeleteObject() command
is appropriate for deleting mosaics... So what's going wrong?
The dbDeleteMosaic() command seemed an alternative, but turned out
to be an undefined function... Actually none of the functions of the
Integrator Toolkit part are working, although the necessary license is
listed in the available licenses (Options->License...) Uh?
I run icfb 4.4.6 (cds11701) on a HPUX11
Regards,
Geert
The instances attribute of a cellView gives a list of all inst and mosaicInst objects.
mosaicInst objects are children of the mosaics, and so can't be deleted themselves, because
it would leave the parent mosaic without something to array.
You can see that they are mosaicInst objects by looking at the objType:
inst~>objType => "mosaicInst"
What you need to do is find the appropriate mosaic and delete that
instead. You can look at:
cv~>mosaics
to get a list of mosaics, and then (probably) look at the cellName in the
mosaic~>instanceList (simple mosaics will just have a single mosaicInst in
there).
for example:
foreach(mosaic cv~>mosaics
dbDeleteObject(mosaic)
)
will delete all the mosaics - you'll want to add code to be more selective. For example:
foreach(mosaic cv~>mosaics
when(mosaic~>mosaicType=="simple" && car(mosaic~>instanceList)~>cellName=="VIA3"
dbDeleteObject(mosaic)
) ; when
) ; foreach
Note, the Integrator's Toolkit documentation is not the right place to look - that's
for C-level applications, and does not directly correspond to the SKILL interface you're
using here. That's covered in the Design Framework II SKILL manual.
Andrew.
--
Andrew Beckett
Senior Technical Leader
Custom IC Solutions
Cadence Design Systems Ltd
foreach(instHeader cv~>instHeaders
if( equal(instHeader~>cellName "VIA4")
then instHeader~>cellName="VIA3"
) ; if
) ; foreach
... and that looks to work nicely.
So, in summary: for mosaic removal the parent has to be removed,
while for mosaic modification the instHeaders needs adjustment. Correct?
Geert
Yes, that's it. Of course, by changing the instHeaders, you end up changing all
instances (or mosaics) of that cellName. In general changing instHeaders is
quicker than changing the master of every instance (for ordinary instances).
Andrew.
--
===============================================================================
== Geert Thys == Tel : +32 (0)16 28 80 18 == IMEC vzw ==
== ASIC Design Engineer == Fax : +32 (0)16 28 15 84 == Kapeldreef 75 ==
== Invomec Division == mailto:Geert...@imec.be == B-3001 Leuven ==
== == http://www.imec.be == Belgium ==
===============================================================================
**************
This e-mail and/or its attachments may contain confidential information.
It is intended solely for the intended addressee(s). Any use of the information
contained herein by other persons is prohibited. IMEC vzw does not accept any
liability for the contents of this e-mail and/or its attachments.
**************
--
Met vriendelijke groet
Steven Dupont
*********************************************
IMEC
Kapeldreef 75
B-3001 Leuven, Belgium
Ir. Steven Dupont
Project Engineer ASIC Design
Division INVOMEC
Tel.: +32 16 281932
Fax : +32 16 281584
mailto:Steven...@imec.be
http://www.imec.be/
**********************************************
This e-mail and/or its attachments may contain confidential
information. It is intended solely for the intended addressee(s).
Any use of the information contained herein by other persons is
prohibited. IMEC vzw does not accept any liability for the contents of
this mail and/or its attachments.