• 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. valid vias skipped in viaSetDefaultValidViaDefs setting

Stats

  • Locked Locked
  • Replies 5
  • Subscribers 143
  • Views 8739
  • 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

valid vias skipped in viaSetDefaultValidViaDefs setting

dfink
dfink over 3 years ago

I have a user defined constraint group "DFM".   Setting the list of valid vias in the command results in VIA-3232 warnings when selecting the constraint group in the 'create via' gui.

Why can I not set the list of valid vias for this CG?  Why do these warnings appear?  How can I get viaSetDefaultValidViaDefs to function properly?

the skill code:

techdb = techGetTechFile( ddGetObj("tsmc13rf"))

techcstGroup = cstCreateConstraintGroupIn(techdb "DFM")

viaSetDefaultValidViaDefs("tsmc13rf" "DFM" list("M6_M5" "M5_M4" "M4_M3" "M3_M2" "M2_M1" "M1_SUB" "M1_PACTIVE" "M1_NWELL" "M1_NACTIVE" "M1_NPOLYG" "M1_PPOLYG" "M1_PO" "M1_OD"))

the CIW warnings:

*WARNING* (VIA-3232): The specified via definition 'M1_NWELL' is skipped because a default has already been
set for transition 'METAL1/OD'.
*WARNING* (VIA-3232): The specified via definition 'M1_OD' is skipped because a default has already been
set for transition 'METAL1/OD'.
*WARNING* (VIA-3232): The specified via definition 'M1_PACTIVE' is skipped because a default has already been
set for transition 'METAL1/OD'.
*WARNING* (VIA-3232): The specified via definition 'M1_PO' is skipped because a default has already been
set for transition 'METAL1/POLYG'.
*WARNING* (VIA-3232): The specified via definition 'M1_PPOLYG' is skipped because a default has already been
set for transition 'METAL1/POLYG'.
*WARNING* (VIA-3232): The specified via definition 'M1_SUB' is skipped because a default has already been
set for transition 'METAL1/OD'.

the technology definitions:

customViaDefs(
;( viaDefName libName cellName viewName layer1 layer2 resistancePerCut)
;( ---------- ------- -------- -------- ------ ------ ----------------)
( M2_M1_via tsmc13rf M2_M1 via METAL1 METAL2 0.0)
( M3_M2_via tsmc13rf M3_M2 via METAL2 METAL3 0.0)
( M4_M3_via tsmc13rf M4_M3 via METAL3 METAL4 0.0)
( M5_M4_via tsmc13rf M5_M4 via METAL4 METAL5 0.0)
( M6_M5_via tsmc13rf M6_M5 via METAL5 METAL6 0.0)
( AP_M6s tsmc13rf AP_M6 symbolic METAL6 AP 0.0)
( MD_M6s tsmc13rf MD_M6 symbolic METAL6 MD 0.0)
( M6_M5s tsmc13rf M6_M5 symbolic METAL5 METAL6 0.0)
( M5_M4s tsmc13rf M5_M4 symbolic METAL4 METAL5 0.0)
( M4_M3s tsmc13rf M4_M3 symbolic METAL3 METAL4 0.0)
( M3_M2s tsmc13rf M3_M2 symbolic METAL2 METAL3 0.0)
( M2_M1s tsmc13rf M2_M1 symbolic METAL1 METAL2 0.0)
( M1_NACTIVEs tsmc13rf M1_NACTIVE symbolic OD METAL1 0.0)
( M1_PACTIVEs tsmc13rf M1_PACTIVE symbolic OD METAL1 0.0)
( M1_ODs tsmc13rf M1_OD symbolic OD METAL1 0.0)
( M1_POs tsmc13rf M1_PO symbolic POLYG METAL1 0.0)
( M1_NPOLYGs tsmc13rf M1_NPOLYG symbolic POLYG METAL1 0.0)
( M1_PPOLYGs tsmc13rf M1_PPOLYG symbolic POLYG METAL1 0.0)
( M1_NWELLs tsmc13rf M1_NWELL symbolic OD METAL1 0.0)
( M1_SUB tsmc13rf M1_SUB symbolic OD METAL1 0.0)
( via5 tsmc13rf via5 symbolic METAL5 METAL6 0.63)

( via4 tsmc13rf via4 symbolic METAL4 METAL5 0.63)

( via3ts tsmc13rf via3ts symbolic METAL3 METAL4 1.02)
( via3 tsmc13rf via3 symbolic METAL3 METAL4 1.02)

( via2ts tsmc13rf via2ts symbolic METAL2 METAL3 1.02)
( via2 tsmc13rf via2 symbolic METAL2 METAL3 1.02)


( via1 tsmc13rf via1 symbolic METAL1 METAL2 1.02)
) ;customViaDefs

) ;viaDefs

;********************************
; CONSTRAINT GROUPS
;********************************
constraintGroups(

;( group [override] )
;( ----- ---------- )
( "virtuosoDefaultSetup" nil

interconnect(
( validLayers (METAL6 METAL5 METAL4 METAL3 METAL2 METAL1 POLYG ) )
( validVias (M6_M5 M5_M4 M4_M3 M3_M2 M2_M1 M1_PO ) )
) ;interconnect

) ;virtuosoDefaultSetup

;( group [override] )
;( ----- ---------- )
( "virtuosoDefaultExtractorSetup" nil

interconnect(
( validLayers (PDKREC METAL6 VIA56 METAL5 VIA45 METAL4 VIA34 METAL3 VIA23 METAL2 VIA12 METAL1 CONT POLYG OD NWELL ) )
( validVias (M6_M5 M5_M4 M4_M3 M3_M2 M2_M1 M1_SUB M1_PACTIVE M1_NWELL M1_NACTIVE M1_NPOLYG M1_PPOLYG M1_PO M1_OD ) )
) ;interconnect
) ;virtuosoDefaultExtractorSetup

;( group [override] )
;( ----- ---------- )
( "LEFDefaultRouteSpec" nil

interconnect(
( validLayers (METAL1 METAL2 METAL3 METAL4 METAL5 METAL6 ) )
( validVias (M2_M1 M3_M2 M4_M3 M5_M4 M6_M5 ) )
) ;interconnect

  • Cancel
  • dfink
    dfink over 3 years ago

    I have a user defined constraint group "DFM".   Setting the list of valid vias in the command results in VIA-3232 warnings when selecting the constraint group in the 'create via' gui.

    Why can I not set the list of valid vias for this CG?  Why do these warnings appear?  How can I get viaSetDefaultValidViaDefs to function properly?

    the skill code:

    techdb = techGetTechFile( ddGetObj("tsmc13rf"))

    techcstGroup = cstCreateConstraintGroupIn(techdb "DFM")

    viaSetDefaultValidViaDefs("tsmc13rf" "DFM" list("M6_M5" "M5_M4" "M4_M3" "M3_M2" "M2_M1" "M1_SUB" "M1_PACTIVE" "M1_NWELL" "M1_NACTIVE" "M1_NPOLYG" "M1_PPOLYG" "M1_PO" "M1_OD"))

    the CIW warnings:

    *WARNING* (VIA-3232): The specified via definition 'M1_NWELL' is skipped because a default has already been
    set for transition 'METAL1/OD'.
    *WARNING* (VIA-3232): The specified via definition 'M1_OD' is skipped because a default has already been
    set for transition 'METAL1/OD'.
    *WARNING* (VIA-3232): The specified via definition 'M1_PACTIVE' is skipped because a default has already been
    set for transition 'METAL1/OD'.
    *WARNING* (VIA-3232): The specified via definition 'M1_PO' is skipped because a default has already been
    set for transition 'METAL1/POLYG'.
    *WARNING* (VIA-3232): The specified via definition 'M1_PPOLYG' is skipped because a default has already been
    set for transition 'METAL1/POLYG'.
    *WARNING* (VIA-3232): The specified via definition 'M1_SUB' is skipped because a default has already been
    set for transition 'METAL1/OD'.

    the technology definitions:

    customViaDefs(
    ;( viaDefName libName cellName viewName layer1 layer2 resistancePerCut)
    ;( ---------- ------- -------- -------- ------ ------ ----------------)
    ( M2_M1_via tsmc13rf M2_M1 via METAL1 METAL2 0.0)
    ( M3_M2_via tsmc13rf M3_M2 via METAL2 METAL3 0.0)
    ( M4_M3_via tsmc13rf M4_M3 via METAL3 METAL4 0.0)
    ( M5_M4_via tsmc13rf M5_M4 via METAL4 METAL5 0.0)
    ( M6_M5_via tsmc13rf M6_M5 via METAL5 METAL6 0.0)
    ( AP_M6s tsmc13rf AP_M6 symbolic METAL6 AP 0.0)
    ( MD_M6s tsmc13rf MD_M6 symbolic METAL6 MD 0.0)
    ( M6_M5s tsmc13rf M6_M5 symbolic METAL5 METAL6 0.0)
    ( M5_M4s tsmc13rf M5_M4 symbolic METAL4 METAL5 0.0)
    ( M4_M3s tsmc13rf M4_M3 symbolic METAL3 METAL4 0.0)
    ( M3_M2s tsmc13rf M3_M2 symbolic METAL2 METAL3 0.0)
    ( M2_M1s tsmc13rf M2_M1 symbolic METAL1 METAL2 0.0)
    ( M1_NACTIVEs tsmc13rf M1_NACTIVE symbolic OD METAL1 0.0)
    ( M1_PACTIVEs tsmc13rf M1_PACTIVE symbolic OD METAL1 0.0)
    ( M1_ODs tsmc13rf M1_OD symbolic OD METAL1 0.0)
    ( M1_POs tsmc13rf M1_PO symbolic POLYG METAL1 0.0)
    ( M1_NPOLYGs tsmc13rf M1_NPOLYG symbolic POLYG METAL1 0.0)
    ( M1_PPOLYGs tsmc13rf M1_PPOLYG symbolic POLYG METAL1 0.0)
    ( M1_NWELLs tsmc13rf M1_NWELL symbolic OD METAL1 0.0)
    ( M1_SUB tsmc13rf M1_SUB symbolic OD METAL1 0.0)
    ( via5 tsmc13rf via5 symbolic METAL5 METAL6 0.63)

    ( via4 tsmc13rf via4 symbolic METAL4 METAL5 0.63)

    ( via3ts tsmc13rf via3ts symbolic METAL3 METAL4 1.02)
    ( via3 tsmc13rf via3 symbolic METAL3 METAL4 1.02)

    ( via2ts tsmc13rf via2ts symbolic METAL2 METAL3 1.02)
    ( via2 tsmc13rf via2 symbolic METAL2 METAL3 1.02)


    ( via1 tsmc13rf via1 symbolic METAL1 METAL2 1.02)
    ) ;customViaDefs

    ) ;viaDefs

    ;********************************
    ; CONSTRAINT GROUPS
    ;********************************
    constraintGroups(

    ;( group [override] )
    ;( ----- ---------- )
    ( "virtuosoDefaultSetup" nil

    interconnect(
    ( validLayers (METAL6 METAL5 METAL4 METAL3 METAL2 METAL1 POLYG ) )
    ( validVias (M6_M5 M5_M4 M4_M3 M3_M2 M2_M1 M1_PO ) )
    ) ;interconnect

    ) ;virtuosoDefaultSetup

    ;( group [override] )
    ;( ----- ---------- )
    ( "virtuosoDefaultExtractorSetup" nil

    interconnect(
    ( validLayers (PDKREC METAL6 VIA56 METAL5 VIA45 METAL4 VIA34 METAL3 VIA23 METAL2 VIA12 METAL1 CONT POLYG OD NWELL ) )
    ( validVias (M6_M5 M5_M4 M4_M3 M3_M2 M2_M1 M1_SUB M1_PACTIVE M1_NWELL M1_NACTIVE M1_NPOLYG M1_PPOLYG M1_PO M1_OD ) )
    ) ;interconnect
    ) ;virtuosoDefaultExtractorSetup

    ;( group [override] )
    ;( ----- ---------- )
    ( "LEFDefaultRouteSpec" nil

    interconnect(
    ( validLayers (METAL1 METAL2 METAL3 METAL4 METAL5 METAL6 ) )
    ( validVias (M2_M1 M3_M2 M4_M3 M5_M4 M6_M5 ) )
    ) ;interconnect

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • dfink
    dfink over 3 years ago

    How can I get viaSetDefaultValidViaDefs to function properly?

    I have a user defined constraint group "DFM". Setting the list of valid vias in the command results in VIA-3232 warnings when selecting the constraint group in the 'create via' gui.

    How to set the list of valid vias for this CG?

    Why do these warnings appear?

    the skill code:

    techdb = techGetTechFile( ddGetObj("rf13_7"))

    techcstGroup = cstCreateConstraintGroupIn(techdb "DFM")

    viaSetDefaultValidViaDefs("rf13_7" "DFM" list("M6_M5" "M5_M4" "M4_M3" "M3_M2" "M2_M1" "M1_SUB" "M1_PACTIVE" "M1_NWELL" "M1_NACTIVE" "M1_NPOLYG" "M1_PPOLYG" "M1_PO" "M1_OD"))

    the CIW warnings:

    *WARNING* (VIA-3232): The specified via definition 'M1_NWELL' is skipped because a default has already been set for transition 'METAL1/OD'.
    *WARNING* (VIA-3232): The specified via definition 'M1_OD' is skipped because a default has already been set for transition 'METAL1/OD'.
    *WARNING* (VIA-3232): The specified via definition 'M1_PACTIVE' is skipped because a default has already been set for transition 'METAL1/OD'.
    *WARNING* (VIA-3232): The specified via definition 'M1_PO' is skipped because a default has already been set for transition 'METAL1/POLYG'.
    *WARNING* (VIA-3232): The specified via definition 'M1_PPOLYG' is skipped because a default has already been set for transition 'METAL1/POLYG'.
    *WARNING* (VIA-3232): The specified via definition 'M1_SUB' is skipped because a default has already been set for transition 'METAL1/OD'.

    the technology definitions:

    customViaDefs(
    ;( viaDefName libName cellName viewName layer1 layer2 resistancePerCut)
    ;( ---------- ------- -------- -------- ------ ------ ----------------)
    ( M2_M1_via rf13_7 M2_M1 via METAL1 METAL2 0.0)
    ( M3_M2_via rf13_7 M3_M2 via METAL2 METAL3 0.0)
    ( M4_M3_via rf13_7 M4_M3 via METAL3 METAL4 0.0)
    ( M5_M4_via rf13_7 M5_M4 via METAL4 METAL5 0.0)
    ( M6_M5_via rf13_7 M6_M5 via METAL5 METAL6 0.0)
    ( AP_M6s rf13_7 AP_M6 symbolic METAL6 AP 0.0)
    ( MD_M6s rf13_7 MD_M6 symbolic METAL6 MD 0.0)
    ( M6_M5s rf13_7 M6_M5 symbolic METAL5 METAL6 0.0)
    ( M5_M4s rf13_7 M5_M4 symbolic METAL4 METAL5 0.0)
    ( M4_M3s rf13_7 M4_M3 symbolic METAL3 METAL4 0.0)
    ( M3_M2s rf13_7 M3_M2 symbolic METAL2 METAL3 0.0)
    ( M2_M1s rf13_7 M2_M1 symbolic METAL1 METAL2 0.0)
    ( M1_NACTIVEs rf13_7 M1_NACTIVE symbolic OD METAL1 0.0)
    ( M1_PACTIVEs rf13_7 M1_PACTIVE symbolic OD METAL1 0.0)
    ( M1_ODs rf13_7 M1_OD symbolic OD METAL1 0.0)
    ( M1_POs rf13_7 M1_PO symbolic POLYG METAL1 0.0)
    ( M1_NPOLYGs rf13_7 M1_NPOLYG symbolic POLYG METAL1 0.0)
    ( M1_PPOLYGs rf13_7 M1_PPOLYG symbolic POLYG METAL1 0.0)
    ( M1_NWELLs rf13_7 M1_NWELL symbolic OD METAL1 0.0)
    ( M1_SUB rf13_7 M1_SUB symbolic OD METAL1 0.0)
    ( via5 rf13_7 via5 symbolic METAL5 METAL6 0.63)

    ( via4 rf13_7 via4 symbolic METAL4 METAL5 0.63)

    ( via3ts rf13_7 via3ts symbolic METAL3 METAL4 1.02)
    ( via3 rf13_7 via3 symbolic METAL3 METAL4 1.02)

    ( via2ts rf13_7 via2ts symbolic METAL2 METAL3 1.02)
    ( via2 rf13_7 via2 symbolic METAL2 METAL3 1.02)


    ( via1 rf13_7 via1 symbolic METAL1 METAL2 1.02)
    ) ;customViaDefs

    ) ;viaDefs

    ;********************************
    ; CONSTRAINT GROUPS
    ;********************************
    constraintGroups(

    ;( group [override] )
    ;( ----- ---------- )
    ( "virtuosoDefaultSetup" nil

    interconnect(
    ( validLayers (METAL6 METAL5 METAL4 METAL3 METAL2 METAL1 POLYG ) )
    ( validVias (M6_M5 M5_M4 M4_M3 M3_M2 M2_M1 M1_PO ) )
    ) ;interconnect

    ) ;virtuosoDefaultSetup

    ;( group [override] )
    ;( ----- ---------- )
    ( "virtuosoDefaultExtractorSetup" nil

    interconnect(
    ( validLayers (PDKREC METAL6 VIA56 METAL5 VIA45 METAL4 VIA34 METAL3 VIA23 METAL2 VIA12 METAL1 CONT POLYG OD NWELL ) )
    ( validVias (M6_M5 M5_M4 M4_M3 M3_M2 M2_M1 M1_SUB M1_PACTIVE M1_NWELL M1_NACTIVE M1_NPOLYG M1_PPOLYG M1_PO M1_OD ) )
    ) ;interconnect
    ) ;virtuosoDefaultExtractorSetup

    ;( group [override] )
    ;( ----- ---------- )
    ( "LEFDefaultRouteSpec" nil

    interconnect(
    ( validLayers (METAL1 METAL2 METAL3 METAL4 METAL5 METAL6 ) )
    ( validVias (M2_M1 M3_M2 M4_M3 M5_M4 M6_M5 ) )
    ) ;interconnect

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 3 years ago in reply to dfink

    BTW, dfink, I saw your comments about support in your moderation appeals. Apologies that this got stuck in moderation; the repeated text in your posts is seen as potential spam by the forum software (it traps quite a lot of valid spam this way but unfortunately has a few false errors such as this). I've been on vacation for two week and (quite reasonably, in my opinion) not been checking emails or forum posts. 

    I should however point out the that forums are NOT customer support. These are a community aid so that people (not just Cadence people) can help each other out. If you want customer support, please use the support portal at http://support.cadence.com

    I'm catching up on email - and so will revisit this post once I've got through all the things I can answer quickly or are related to my actual job at Cadence (I look at the forums in my spare time).

    Regards,

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • dfink
    dfink over 3 years ago in reply to Andrew Beckett

    Hi Andrew,

    Thanks very much for replying to my post.  Appreciate you noting the spam filtering posts.  Am not sure what I did to cause the 1st spam reject.  I think my repeated attempts occurred because of the 1st rejection.  Does the spam filter reject foundry contents?

    I did open a support case for my question and learned that viaSetDefaultValidViaDefs performs a different function than what I gleaned from the SKILL reference description for the command.   

    I thought it could be used to control the list of valid vias available in the Via Definition list in the create>via gui. It seems that viaSetDefaultValidViaDefs controls the default via used for a given transition as shown in the create>via>options gui. The description in the SKILL reference could maybe be more precise.   

    Also, I did figure out how to control the valid vias for my user defined create>via constraint groups so I don't have any further complaints or questions atm.  Hope you had a lovely break.

    Regards,

    Dave Fink

    Allegro Microsystems

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 3 years ago in reply to dfink

    Hi Dave,

    dfink said:
    Does the spam filter reject foundry contents?

    It's not quite that clever (I have to spot those myself!). It tends to be triggered by certain common obvious spam but also repeated text - this is because many spam messages tend to use a lot of repeated text. What it can't tell however is that the repetition of warnings and the repetition of certain words and layer names are intentional - it's a hard problem to get 100% right. There are relatively few posts that get caught by the spam filters that aren't really spam, so you were a bit unlucky here.

    Anyway, glad you managed to get this answered appropriately.

    Cheers,

    Andrew

    • 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