I am using IC615.06.15.151. In virtuoso layout XL, I opened a Find/Replace form, search for via in current cellview with
via definition == M5_M4
property Name CutRows == 2
But can not find any , eventhough there are a lot of vias like that in layout. Do I make any mistakes ??
The attribute is cutRows, not CutRows.
viaHeaders = setof( vh deGetCellView()~>viaHeaders vh~>viaDefName == "M5_M4" && vh~>cutRows == 2 )
viaInstances = viaHeaders~>vias
In reply to theopaone:
Thanks for your skill code, Ted. I tried it, but it still return nill. Maybe I typed it wrong. I believed the results will be something like
db:0x0000x....How can I use that to select the vias in layout. I am not good at all about skill code.
In reply to pham777:
There's a mistake in Ted's code - you can't do ~>cutRows on a viaHeader object. You can do that on a via instance, but not a viaHeader. So instead you'd need to do:
; take car, because there should only be one matchviaHeaders = car(setof( vh deGetCellView()~>viaHeaders vh~>viaDefName == "M5_M4" && cadr(assoc("cutRows" vh~>overrideParams)) == 2 ))viaInstances = viaHeaders~>viasforeach(via viaInstances geSelectFig(via))
This will select the vias afterwards.
I think you should also contact customer support to request that you can specify cutRows/cutColumns etc in the search criteria for finding vias on the Find command (it doesn't work, because it's not a "property").
In reply to Andrew Beckett:
Thanks, Andrew. Your code works. But it returns only one match. Is it possible to return more than one match ?
I will try to contact customer support.
Sorry, I was being a bit stupid. I forgot you'd likely have more than one M5_M4 viaHeader with that number of cutRows...
Change the code to:
viaHeaders = setof( vh deGetCellView()~>viaHeaders vh~>viaDefName == "M5_M4" && cadr(assoc("cutRows" vh~>overrideParams)) == 2 )foreach(viaHeader viaHeaders foreach(via viaHeader~>vias geSelectFig(via)))
It works perfect now. You're the man.