• 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. Need function to find the parameter names on objects in...

Stats

  • Locked Locked
  • Replies 8
  • Subscribers 143
  • Views 16568
  • 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

Need function to find the parameter names on objects in layout: ASAP

boomme
boomme over 9 years ago

I am needing to manipulate the property parameters on various objects...

for example... I wish make a bind key toggle to change the MPT coloring on a Layer 2 metal layer on a Via cell

the via proper gui list lists it under a MPT coloring heading - Layer1 

but I need the actual name for that field so I can reassign the value to mask1Color or mask2Color

as in the value similar to the "cutHeight" value assignment here ... via~>cutHeight = Xhigh

I know there has to be a SKILL command for this retrieving the variable names for parameter fields for objects, but I can't seem to locate it in the various cadence documentations.

After searching this site, I tried the axlDBGetProperties command, but that does not seem to work for this purpose... in fact I  get an undefined function when attempting to use this command.

FYI, I am using cadence version ICADV 12.2-64b.78.EHF2165

.. I need a response as soon as possible if you have an answer to this. Thanks much for any help.

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 9 years ago

    If  you need an urgent response, you should contact customer support. These forums are covered by volunteers in the community (even though I respond a lot - it's not part of my job at Cadence to respond to questions here).

    It wouldn't be axlDBGetProperties as that's an Allegro (PCB tools) function.

    The fact that you have an engineering hotfix build would suggest to me that you're a mainstream customer - so please go to customer support. That is what it's for! I don't have ICADV12.2 on my local machine (I'm not in the office) so I can't test this (nor do I have the bandwidth today anyway).

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • boomme
    boomme over 9 years ago
    Hi Andrew... I am actually a contractor, so I do not have that access to the support, which is why i am asking here. Thanks anyway for replying
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 9 years ago

    I'm sure you can get access to support even if you get somebody in the company you're contracting to to log the case.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • boomme
    boomme over 9 years ago
    Not to go into details due to my confidentiality agreement ...but, really... that is not possible. All I need is the skill function name for retrieving the parameter names... not fully written program. My question was not directed to you specifically, but to the entire board in hopes I could get a little help, which was what i thought this forum was for. . If you're to busy to look into it, I understand, perhaps someone else can chime in if they know the answer. Otherwise I'll just keep on trying myself.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • dmay
    dmay over 9 years ago

    I wrote a convenience function that I assign to a bindkey to help me quickly get some information. If I select an object and run this function, then the following happens:

    The cellview ID is assigned to variable cv.
    The selected object is assigned to variable x.
    If the selected object is a rod object, the rod object id is assigned to variable r.
    Each of the properties on the selected object are printed with the property name, property value and the cdf prompt if there is a cdf. This should tell you the name of the property you are looking for. For vias, it gets parameters from the viaHeader~>overrideParams.

    I use Virtuoso 6, not ICADV 12, but I think it should still work. Just select your via and run this command:

    procedure(mysel()
      let((promptTable)
        x=car(geGetSelectedSet())
        promptTable = makeTable("cdfPrompts" nil)
        when(x~>objType=="inst"
            cdf = cdfGetInstCDF(x)
            foreach(p cdf~>parameters
                promptTable[p~>name] = p~>prompt
            )
        )
        printf("x = %L (%L)\n" x x~>objType)
        r=rodGetObj(x)
        printf("r = %L\n" r)
        if(x~>prop || x~>viaHeader~>overrideParams then
            printf(" \nProperties on selected object:\n")
            printf("CDF Prompt Property Name (type) Value\n")
            printf("============================================================\n")
            foreach(prop x~>prop
                printf("%-25s = %-25s: %L\n" promptTable[prop~>name]||"no cdf" sprintf(nil "%s (%s)" prop~>name prop~>valueType) prop~>value)
            )
            when(x~>objType=="customVia" || x~>objType=="stdVia"
                printf("%s\n" x~>objType)
                foreach(prop x~>viaHeader~>overrideParams
                    printf("%-25s = %-25s: %L\n" promptTable[car(prop)]||"no cdf" sprintf(nil "%s" car(prop) ) cadr(prop))
                )
            )
        else
            printf("No properties on selected object\n")
        )
        t
      )
    )

    Derek

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • skillUser
    skillUser over 9 years ago

    Hi Boomme,

    I think that you want to look at these functions: 

    dbSetViaLayer1Control( 
    d_viaId
    t_colorControl
    )

    dbSetViaLayer2Control(
    d_viaId
    t_colorControl
    )

    The colorControl argument has values like noColor, noShift, shift1 and so on. There is also a dbSetViaLayerControl() function and a dbGetViaLayerControl() function.

    The above should allow you to code something to change the via metal colors (the cut layer can be controlled by dbSetViaCutLayerControl() )

    Best regards,

    Lawrence.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • boomme
    boomme over 9 years ago
    Thanks guys for the replies...Since my previous post, I actually had just located and figured out on my own the dbSetViaLayer2Contol functions... and already implemented it (works great). And I copied and tried your code dmay - it seems to print out a lot of great info for cells/cells - but when i tried it for the vias or shapes it errors out to the "no properties on selected object" message. I know there still has to be a way to list/find out the attribute parameters variable field names for objects, shapes, cells, etc. - I've wished I had that info a thousand times over the past years. Thanks again for replying everyone.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 9 years ago

    For an object in the database, you can simply type obj~>? to find the attribute names and obj~>?? to find the names and values. So for example:

    car(geGetSelSet())~>?

    will find the attribute names of the first selected object. This doesn't help you when the thing you need to set has to be done via an API - not everything is available via an attribute.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • 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.

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

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