Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

find a single via by a skill script

Status
Not open for further replies.

dipak.rf

Member level 3
Joined
Mar 9, 2008
Messages
56
Helped
3
Reputation
6
Reaction score
1
Trophy points
1,288
Activity points
1,622
find a single via

Guys,

I am looking for a skill script to check a single via in a given layout

Dipak
 

Re: find a single via

I think it would be easier to write a DRC rule set for this purpose. I've done this successfully a few years before, but can't find the script any more :-(

The method was:
Code:
foreach via
  if there is another via between the same metal layer pair within an adequate proximity
    else generate a warning message and copy the solo via to the DRC warning layer 
  endif
end
 

Re: find a single via

erikl said:
I think it would be easier to write a DRC rule set for this purpose. I've done this successfully a few years before, but can't find the script any more :-(

The method was:
Code:
foreach via
  if there is another via between the same metal layer pair within an adequate proximity
    else generate a warning message and copy the solo via to the DRC warning layer 
  endif
end

Thanks erikl, but i need some clarrification, are u talking about to modify DRC rule set file by this method, if it is

Can you guide me, i mean how to include this with proper syntax, i will try it at my end

waiting for your reply
Dipak
 

Re: find a single via

dipak.rf said:
are u talking about to modify DRC rule set file by this method
I'd suggest to write an extra DRC rule file for this check. When it finally works, you could of course add this check to your standard DRC file - if you are allowed to do so ;-)

dipak.rf said:
Can you guide me, i mean how to include this with proper syntax, i will try it at my end
Oh dear, this was long ago, and the syntax was for Diva and/or Assura DRC. I'll try and remember the few lines (the text after ";" is comment). "via12" is the physical via layer between metal1 & metal2 :

Code:
; First associate a symbol layer via12 to the physical layer "via12":
via12 = geomOr( "via12" )
;
; then create a halo layer halo12 around via12; within this halo another via12 should be found.
; the number 5 (below) is an example, how much bigger the halo should be than the via.
; use an appropriate distance measure for your process. The unit is in userUnits or perhaps in µm.
halo12 = geomSize( via12  5 )
;
; the next line selects the via12 if no other via12 is found within halo12,
; puts it on the DRC warning layer and creates the warning message.
warning = geomOverlap( via12 halo12 sameNet keep == 1 "single via12" )

About that should do it. For more info, study the Physical Verification User Guide or the appropriate Cadence docu on your DRC tool, especially the Layer Processing Concepts. As I told you above, depending on the DRC tool you're using, the syntax could be different (and probably is, in the meantime), so I guess you'll have to tinker a bit with this code.
The above lines apparently are for single via12 only. You'll have to repeat this stuff for the higher vias (e.g. via23, via34 a.s.o.).

Good luck! erikl
 

just an idea of how this can be done using skill
cv=dbOpenCellViewByType(library cell "layout" "maskLayout" "r")
foreach(x cv~>vias
viaParams=x~>viaHeader~>overrideParams
if(viaParams==nil
then
println("SINGLE VIA FOUND")
dprint(rodPointX(car(x~>bBox))) ;prints the Xcoordinate of the via
dprint(rodPointY(car(x~>bBox))) ;prints the y coordinate of the via
else
println("This is not a single Via")
);end if
) end foreach

The idea here is to check the parameter "overrideParams " fo the vias which contains the information about the rows and colums in vias.If It contains no information then it is a single via.Try it
Can be extended similarly for diffrent hierarchies.
 

erikl said:
dipak.rf said:
For more info, study the Physical Verification User Guide or the appropriate Cadence docu on your DRC tool, especially the Layer Processing Concepts. As I told you above, depending on the DRC tool you're using, the syntax could be different (and probably is, in the meantime), so I guess you'll have to tinker a bit with this code.
The above lines apparently are for single via12 only. You'll have to repeat this stuff for the higher vias (e.g. via23, via34 a.s.o.)

Hey Thanks Erikl,

Ya i got your point, let me try it out...........

Added after 4 minutes:

kapilsn said:
just an idea of how this can be done using skill
cv=dbOpenCellViewByType(library cell "layout" "maskLayout" "r")
foreach(x cv~>vias
viaParams=x~>viaHeader~>overrideParams
if(viaParams==nil
then
println("SINGLE VIA FOUND")
dprint(rodPointX(car(x~>bBox))) ;prints the Xcoordinate of the via
dprint(rodPointY(car(x~>bBox))) ;prints the y coordinate of the via
else
println("This is not a single Via")
);end if
) end foreach

The idea here is to check the parameter "overrideParams " fo the vias which contains the information about the rows and colums in vias.If It contains no information then it is a single via.Try it
Can be extended similarly for diffrent hierarchies.

Thanks kapilsn

i am going through your script and get back to you soon, once it is done........
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top