• 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 8744
  • 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
Parents
  • 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
Reply
  • 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
Children
No Data

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