• 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. Differentiate drcs: Symbol Vs Design

Stats

  • State Suggested Answer
  • Replies 5
  • Answers 1
  • Subscribers 20
  • Views 1005
  • Members are here 0
More Content

Differentiate drcs: Symbol Vs Design

SambaKantipudi
SambaKantipudi 4 months ago

Hello All,

I have symbols in my library that were intentionally created to violate DRC rules.

After logic import, they are transferred to the layout editor, along with their DRCs.

The command axlDBGetDesign()->drcs gives me all the DRCs in the design.

Which SKILL commands or functions can differentiate between Symbol DRCs and Design DRCs?

Thank you very much in advance.

BR

Samba

  • Sign in to reply
  • Cancel
Parents
  • andakConsultingLtd
    0 andakConsultingLtd 4 months ago

    Hi Samba,

    This is an interesting question. You can check this by looking at the 2 entities generating the error. There is a DRC_ID->violations property that returns the list of figures causing error. By looking at their entity_id->parent and up you can figure out if they are coming from the same symbol or not.

    However, please note that in layout, you can attach a property to the Symbol (via Edit-> Object Properties), named Nodrc_Sym_Same_Pin = True that helps you get rid of these errors for good. This assumes you know very well what library is doing.

    Visit my page

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • SambaKantipudi
    0 SambaKantipudi 4 months ago in reply to andakConsultingLtd

    Hello andakConsultingLtd 

    violations~>parent~>type

    violations~>parent~>objType

    I tried the same, but was unsuccessful.

    For an example:

    Shape to Shape drc error, part of symbol was shown as design drc.

    Doesnt know how to proceed further!!

    Thanks

    BR

    Samba

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • andakConsultingLtd
    0 andakConsultingLtd 4 months ago in reply to SambaKantipudi

    Try the code below, it should give you a starting point. I am sorry, parent indeed didn't set you in the right direction.

    ; the code below works in my case for a pin to pin DRC. You might adjust your code a bit to cover all scenarios
    axlSetFindFilter(?enabled `("NOALL" "DRCS") ?onButtons `("DRCS"))
    ; after entering next line, you must click on an error to move on
    mySymbol = car(axlGetSelSet(axlSingleSelectPoint()))
    parentList = mySymbol->violations
    first = car(parentList)
    myComponent = first->component
    mySymbol = myComponent->symbol
    myRefDes = mySymbol->refdes
    axlClearSelSet()

    the output, after entering this line by line is shown below, as you can see, it shows the RefDes at the end.:

    note: last lines can be optimiezed into this:

    myRefDes = first->component->symbol->refdes

    Visit my page

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
Reply
  • andakConsultingLtd
    0 andakConsultingLtd 4 months ago in reply to SambaKantipudi

    Try the code below, it should give you a starting point. I am sorry, parent indeed didn't set you in the right direction.

    ; the code below works in my case for a pin to pin DRC. You might adjust your code a bit to cover all scenarios
    axlSetFindFilter(?enabled `("NOALL" "DRCS") ?onButtons `("DRCS"))
    ; after entering next line, you must click on an error to move on
    mySymbol = car(axlGetSelSet(axlSingleSelectPoint()))
    parentList = mySymbol->violations
    first = car(parentList)
    myComponent = first->component
    mySymbol = myComponent->symbol
    myRefDes = mySymbol->refdes
    axlClearSelSet()

    the output, after entering this line by line is shown below, as you can see, it shows the RefDes at the end.:

    note: last lines can be optimiezed into this:

    myRefDes = first->component->symbol->refdes

    Visit my page

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • 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