• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC SKILL
  3. How can I access/change stdVia enclosures in SKILL?

Stats

  • Locked Locked
  • Replies 11
  • Subscribers 144
  • Views 6503
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

How can I access/change stdVia enclosures in SKILL?

pilotrp
pilotrp over 8 years ago

Hi,

I'm using Virtuoso version ICADV12.3-64b.500.9.  Currelntly, our defualt setup creates metal enclosures that are coincident with the cut shape boundary.  I'd like to modify the enclosures using SKILL to make them DRC clean.  Here's one example:

via~>viaHeader~>??
(db:0x3898833b cellView db:0x3898961a objType "stdViaHeader"
prop nil viaDef db:0x181f01ba viaDefName
"C9CKK1" master db:0x2071ec9a subHeaders nil
vias
(db:0x38987e27) overrideParams nil
)

I looked at the overrideParams in another via where I had manually edited the enclosures.  I saw this:

via2~>viaHeader~>??
(db:0x3898831b cellView db:0x3898961a objType "stdViaHeader"
prop nil viaDef db:0x181f01a7 viaDefName
"M0V0M1" master db:0x3a74ff1a subHeaders nil
vias
(db:0x38987e1c) overrideParams
(("layer1Enc"
(0.025 0.0)
)
("layer2Enc"
(0.008 0.025)
)))

I tried assigning the overrideParams to a similar list with different numerical values, but it errored out.  It also appears that the overrideParams property is nil unless you manually adjust the enclosures.

Can you tell me how I can adjust the via enclosures using SKILL for set of selected vias?

Thanks

  • Cancel
  • psill000
    psill000 over 8 years ago

    This worked for stdVia for me

    viaDb~>layer1Enc = list(max(ovlp1 ovlp2) min(ovlp1 ovlp2)))

    viaDb~>layer2Enc = list(min(ovlp1 ovlp2) max(ovlp1 ovlp2))

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • skillUser
    skillUser over 8 years ago
    Hi Rob,

    I don't think that you can change the via header override parameters, but as Paul noted, you should be able to change the overrideParams for via objects. If the desired viaHeader already exists, you can just change the via object to point to the desired viaHeader.

    Best regards,
    Lawrence.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • pilotrp
    pilotrp over 8 years ago
    That worked. Thanks so much!
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • pilotrp
    pilotrp over 8 years ago

    psill000 said:

    This worked for stdVia for me

    viaDb~>layer1Enc = list(max(ovlp1 ovlp2) min(ovlp1 ovlp2)))

    viaDb~>layer2Enc = list(min(ovlp1 ovlp2) max(ovlp1 ovlp2))

    This worked for me, but I couldn't find any documentation regarding access and/or making changes to other stdVia parameters like this.  Can you point me to some documentation?  For example I took a guess and found viaDb~>cutColumns and viaDb~>cutRows.  Maybe there is access to others, but you need to know the exact parameter names.

    Thanks

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 8 years ago

    Rather than hunt it down in the documentation (if it's there, it's well hidden - the via stuff is not terribly well documented), what I tend to do is use the edit properties to change the via, and then use:

    car(geGetSelSet())~>viaHeader~>overrideParams

    to see what the parameters are called and what they've been set to. Then you know the parameter names for operations such as the above.

    Hope that helps (as a pragmatic trick)!

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • psill000
    psill000 over 8 years ago

    Diito what Andrew said. 

    I dont have a list of all the variable for vias symbolics

    Some of the variables for stdVia and customVia are slightly different

    Example

    stdVia

    cutRows

    cutColums

    customVia

    cutRow

    cutColum

    Same variables

    cutWidth cutHeight cutSpacing

    If you can get your Cadence AE is give you an old SKILL small book.

    The book has all the functions in the finder gui. The book is kinda handy for something to thumb through

    Paul

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • pilotrp
    pilotrp over 8 years ago
    Thanks for the help guys. I'll use those tips.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 8 years ago

    You can see the allowed names from a post I made a few years ago which attempted to retrieve the current values from the viaDef or viaHeader override params and then increment them. This isn't strictly necessary (I think I was under mistaken assumption at the time) because you can just do viaInst~>cutWidth (for example) which will retrieve either the override value or the default depending on what's set.

    However, at the very least it serves a useful purpose of telling you all the parameter names for a stdVia:

    https://community.cadence.com/cadence_technology_forums/f/48/p/20735/1305030#1305030

    The parameter names for a customVia may vary, because the point is that it's a pcell (or even a fixed layout) and so you then have some flexibility over whatever the parameters were called when the pcell was implemented.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • pilotrp
    pilotrp over 8 years ago

    Hi,

    Can someone tell me how to access/change these parameters on a standard via in SKILL and what the acceptable values are?

    Thanks

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • skillUser
    skillUser over 8 years ago

    Hi Rob,

    There are a few functions that I think will help:

    dbGetViaCutLayerControl()
    dbGetViaLayer1Control()
    dbGetViaLayer2Control()
    dbSetViaCutLayerControl()
    dbSetViaLayer1Control()
    dbSetViaLayer2Control()
    dbSetViaColorStateLocked()
    dbSetViaColorStateLayerLocked()

    There are a couple of other functions but I think the above should give you what you need.

    Best regards,

    Lawrence.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
>

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information