• 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. Allegro X PCB Editor
  3. Need to generate the stacked via reports ( L1_L3 ).

Stats

  • Replies 6
  • Subscribers 160
  • Views 16791
  • Members are here 0
More Content

Need to generate the stacked via reports ( L1_L3 ).

krthik15
krthik15 over 8 years ago

Dear all,

I want to be generate the stacked via reports ( L1_L3 ).

Actually i have created two vias like L1-L2 and L2-L3. In some places in design stacked L1-L2 and L2-L3 vias .Need to be  generate those stacked via reports.


netname    stacked via location     stacked via count      padstack name

Please share if anyone have skill code

-Karthik.k

  • Sign in to reply
  • Cancel
Parents
  • Kirti Sikri
    Kirti Sikri over 8 years ago

    COS article on Using SKILL code for Stacked Vias along with the code can be found on COS at  Working with Stacked Vias Using Allegro SKILL

    Hope it helps

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • Kirti Sikri
    Kirti Sikri over 8 years ago

    COS article on Using SKILL code for Stacked Vias along with the code can be found on COS at  Working with Stacked Vias Using Allegro SKILL

    Hope it helps

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Children
  • mstaub
    mstaub over 5 years ago in reply to Kirti Sikri

    There is a fundamental flaw with the code in Working with Stacked Vias Using Allegro SKILL. This code creates a table of stacked vias based on xy location and doesn't pay any attention to net/layer span. For example, If I have a 1:4 GND via located at xy 1,1 and a 5:10 Power via located at the same xy of 1,1, this code stores these two vias as just 1 stacked via. If I then use this table to do any further analysis of the via stacks, I will be using incorrect data. Theis gets even worse if you have 4 via stacks, all with different nets, sharing the same XY, which is very possible in HDI designs. 

    You are better off looking at the layer span of the via stack when by using axlDBViaStack() . By using this function you can get a list of all the vias in the stack and through some logic can determine what the layer span is. For example, using the vias from my previous example my new table keys might be something like "1.000,1.000_1-4" and "1.000,1.000_5-10" rather than Cadence's example which only stores one key of (1.000 1.000). You can further make stronger keys by adding net names to the key strings as well. 

    I have tested this and can provide example code if needed. 

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • cdlep
    cdlep over 5 years ago in reply to mstaub

    Hi Mstaub,  I would be interested in taking a look at your example code If you don't mind.  I just finished writing a painful function to do this after playing with Working with Stacked Vias Using Allegro SKILL and  just opened the forum to see you mention  axlDBViaStack().

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • mstaub
    mstaub over 5 years ago in reply to cdlep

    Hi cdlep,

    I'll attached both a screenshot and the skill file of a stripped down version of the code I wrote. I made some dummy board files and did some preliminary testing on them, and everything seems to check out. I also ran this on a design with over 100K vias.

    One thing to note is that I am storing custom via structures in the table which include the vias net name, layer span, xy location and via dbids. This can easily be modified to whatever suites your needs.

    Here is a picture of the code, which is a little more readable from my dev environment than just pasting the code directly in the comment.

    Attaching skill file for reference.

    Please let me know what you think of this.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • cdlep
    cdlep over 5 years ago in reply to mstaub

    Hi Mstaub,

    I have been trying to reply but the Cadence server keeps OOPSING when I hit reply to send.  The basic methodology you used is essentially the same as what I had written with you choosing to build a data structure where I just walked through each instance.  I am using it to write a program to identify dangling "branches" so that the unconnected branch can be deleted as an instance rather than the tedious method of "peeling the onion"  where you delete one dangling stacked via exposing the next and repeat.

    I wanted to see if there was anything different in your approach.  Good Job!

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Cadence Guidelines

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