Hi,
I am writing a diva drc deck to check for space between two nets (not shapes) A net can have a bunch of shapes that are connected.
I tried the below way to do this,
- trace the nets Net1_name and Net2_name.
- compare drc() between them
drcExtractRules(
m1 = geomOr("M1")
via1=geomOr(via1)
...
... upto top metal
;connect all shapes
geomConnect(
label( ("m1" "label") m1)
via(via1 m1 m2)
label( ("m2" "label") m2)
via(via2 m2 m3)
... up to top metal
)
;get the shapes that belong to the required net
netm1 = geomGetNet(m1 "Net1_Name")
netm2 = geomGetNet(m2 "Net2_Name")
.... upto top metal
fullNet1 = geomOr(netm1 metm2 ...)
netm1 = geomGetNet(m1 "Net2_Name")
netm2 = geomGetNet(m2 "Net2_Name")
.... upto top metal
fullNet2 = geomOr(netm1 metm2 ...)
;compare drc between them
saveDerived(drc(fullNet1 fullNet2 0<sep<10) "DRC error")
)
Problem with this approach is that it takes way too long to run for a big cell even though the nets I am looking for a very small. I found that the connect statement is the one that seems to take a lot of time as it tries to connect the whole layout which is not necessary.
Any suggestions on how to do this in an efficient way.
Thanks,
Naveen