• 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 do I create connectivity through derived layers?

Stats

  • Replies 0
  • Subscribers 151
  • Views 57
  • Members are here 0

How do I create connectivity through derived layers?

MSchuldt
MSchuldt 3 days ago

I'm writing the techfile for a process, and I have a very special via that has a known top metal, known via layer, but it can land on any of six metal layers.  I have defined the top metal, via, and the six lower metals in my techfile, and I'm now trying to create the via definition.

techDerivedLayers(
    ( BM1            1001    (M1 'or M2) ) ; M1-M6 are standard layers, defined in layerDefinitions
    ( BM2            1002    (M3 'or M4) )
    ( BM3            1003    (M5 'or M6) )
    ( BM4            1004    (BM1 'or BM2) )
    ( BOTMET    1000    (BM4 'or BM3) )
    ) ; end techDerivedLayers


viaDefs(
    standardViaDefs(
        ( TETHER      BOTMET  TOPMET  (VIA 5.0 5.0) ; TOPMET and VIA are standard layers, defined in layerDefinitions
            ( 1 1 (1.0 1.0) )
            (0.0 0.0) (0.0 0.0) (0.0 0.0) (0.0 0.0) (0.0 0.0) )
        ) ; end standardViaDefs
    ) ; end viaDefs


When I try to load my techfile, I see:

*WARNING* (TECH-2000212): techCreateStdViaDef: Invalid layers.

And it does not define the via.  If I replace BOTMET in the via definition with a standard layer, everything is defined properly.

What is the correct way to create a via using a derived layer, or a via which connects to multiple things in different contexts? 

M1-6 are local interconnect-ish layers.  The TOPMET and VIA layers are a bit like a staple - TOPMET does not ever touch anything but VIA.  This via is being defined for connectivity (use in virtuosoDefaultExtractorSetup), not for use in actual layout.  Layout will use a staple pcell which is not constrained to Manhattan geometries.  One side of the staple might land on M1, and the other side might land on M6.



Or maybe I'm asking the wrong question entirely.  How do I define the connectivity of this staple that can land on six different metals?  Or do I need to stop being lazy and create six different via definitions for every flavor of staple?

  • Sign in to reply
  • 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.

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

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