• 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 Scripting - Skill
  3. DBID of overlapping components

Stats

  • Replies 9
  • Subscribers 18
  • Views 13444
  • Members are here 0
More Content

DBID of overlapping components

VECTORT
VECTORT over 7 years ago

Hi,
can you please help me with one more issue.
I need to get dbids of overlapping components in design.

Thank you in advance for any advice.

  • Cancel
  • Sign in to reply
Parents
  • Ejlersen
    Ejlersen over 7 years ago

    Hi

    It depends on what you mean by overlapping components, is it 2 place bounds overlapping, pins overlapping or what define if they are overlapping?

    You could setup drc checks for this and run through the DRCs.

    Best regards

    Ole

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • VECTORT
    VECTORT over 7 years ago in reply to Ejlersen

    Our library components have shapes on "PCKAGE GEOMETRY/DFA_BOUND_(TOP,BOTTOM)"
    so I think I would need to find those components which shapes on this layer are overlapping (can touch but cannot go one on the another).

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Ejlersen
    Ejlersen over 7 years ago in reply to VECTORT

    Hi

    DFA constraints in Allegro are built for this exact purpose and you can even specify spacing between dfa bounds on different component classes.

    You can enable and set this up within Setup->Constraints->DFA Constraint Spreadsheet

    After you've set this up online DRC checking will be performed and you will get a DRC error immediately.

    I once did a movie about this which can be seen on YouTube at https://youtu.be/tyiPnsQqx7Q (it is in Danish but you should get the idea from watching it)

    Will this work for you or do you have another reason for wanting to do this using SKILL?

    Best regards

    Ole

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • VECTORT
    VECTORT over 7 years ago in reply to Ejlersen

    I know this tool but not sure how to use it to achieve my goal.

    The reason I need to find this DBID from inside SKILL is for automatic documentation creation for Production Facility.

    What I need to do is:
    1) find DBID of overlapping components
    2) create layer with surrounding lines arround this 2 or more overlaping components

    Second part I have almost done and it is working well, but I am giving DBIDs manualy, so just need to find somehow this DBIDs

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Ejlersen
    Ejlersen over 7 years ago in reply to VECTORT

    Hi

    notice that dbid's are not static!

    you could walk over all dfa bounds and do math to find out if they overlap

    l = axlDBGetDesign()->symbols
    foreach(lid l
    refdes = lid->refdes ; get the reference designator
    foreach(cid lid->children
    when(lowerCase(cid->layer) == "package geometry/place_bound_top"
    ; here you have a single geometry and needs to check it against other geometries

    )
    )
    )

    I would however use DFA as stated above and then run over all DRCs to find the objects (components) causing the issue and then create the rectangle

    Best regards

    Ole

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • Ejlersen
    Ejlersen over 7 years ago in reply to VECTORT

    Hi

    notice that dbid's are not static!

    you could walk over all dfa bounds and do math to find out if they overlap

    l = axlDBGetDesign()->symbols
    foreach(lid l
    refdes = lid->refdes ; get the reference designator
    foreach(cid lid->children
    when(lowerCase(cid->layer) == "package geometry/place_bound_top"
    ; here you have a single geometry and needs to check it against other geometries

    )
    )
    )

    I would however use DFA as stated above and then run over all DRCs to find the objects (components) causing the issue and then create the rectangle

    Best regards

    Ole

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Children
No Data
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