• 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. Using the code the GUI uses

Stats

  • Locked Locked
  • Replies 13
  • Subscribers 143
  • Views 18255
  • 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

Using the code the GUI uses

Michael Robinson
Michael Robinson over 15 years ago

Cadence GUI's are bulky and clunky. I want to drive the behind-the-scenes code that Cadence GUI's drive.

For example, le0ViaForm. I can set the variables that are used in the form: le0ViaForm->viaMode->value="Stack" from skill.

But those variables don't exist until the form is called at least once. So the first time my skill is run, it errors.

Once the form has been initialized (manually), using the form variables is difficult because of Cadence's 'unreal time' timing.

Yes, I know about hiRegTimer. That's a kludge.

Driving the inputs to a GUI from Skill is like yelling at a driver on the freeway going 70mph to change lanes. 

How can I access to the real code behind the GUI's? Where is the reference to the code behind the GUI's?

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 15 years ago

    You could use dbCreateVia and do it yourself...

    There's a lot of complexity in the via form - particularly because of populating with relevant information from constraints and so on. So if you use dbCreateVia then you have to do a lot of the work yourself - the form takes care of providing higher level functionality. If you want access to some of that higher level functionality without the form, I'd suggest you contact customer support and ask for an enhancement to give what  you want, such as maybe an leCreateVia function to correspond to leHiCreateVia. 

    Best Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Michael Robinson
    Michael Robinson over 15 years ago

     Thanks for the inputs, Andrew.

    Preparing to write an auto via placer using dbCreateVia, I've been looking at the via stacks that get placed with leHiCreateVia->Auto (or Stack). The routine places an instance of each via in the stack according to the definition from the techfile. The interesting thing is that the vias are attached to eachother. If you select one you select the entire stack. But I cannot see the connection mechanism in the db properties. In the past I've used a parent/child attachement method. But the parent/child nodes for these stacked vias are nil. How is the attachement being made? 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • skillUser
    skillUser over 15 years ago
    Hi,

    Actually there is no grouping here, the via stack selection is being done through a "clever" option; you can turn this on or off through Options -> Selection -> Via Stack, or through the via stack icon (Via Stack icon).

    If you find for some reason that your own via stack is not being selected, then you may wish to look at figGroups which allow figures to be grouped together and selected as if they were one object.

    I hope that this answers your question.

    Regards,
    Lawrence.
    • viastack.png
    • View
    • Hide
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 15 years ago
    If I remember rightly, the option that Lawrence describes picks all vias at the same xy location - I thinkthey have to be on adjacent layers too (not really checked though).

    Andrew
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Michael Robinson
    Michael Robinson over 15 years ago

    In fact, selection of stacked vias reacts to the FULL and PARTIAL switch in a vertical sense. When the FULL switch is on, all the vias get selected, only one gets selected when the PARTIAL switch is on. I betcha we three and programmer are the only ones that know this.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Michael Robinson
    Michael Robinson over 15 years ago

    Well now I can't duplicate what I saw the other day. With the Via Stack option selected, I was able to select one or all of a stacked via by toggling the FULL or PARTIAL select.  What happened?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 15 years ago
    Michael,

    No idea, because that's not how it is supposed to work. It is supposed to be dependent on the "via stack" selection option. There's an icon to toggle this on or off, and also it's on Options->Selection.

    Perhaps you toggled the via stack selection as well as partial selection?

    Regards,

    Andrew
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Michael Robinson
    Michael Robinson over 15 years ago

    Yes. I was probably moving too fast and fooled myself into believing I saw a cool feature.

    Speaking of, wouldn't that be a cool feature, vertical partial/full select for via stacks? 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 15 years ago
    Hi Michael,

    That's exactly what toggling the via stack selection on or off does! It allows you to partially select some or all of the vias.

    Regards,

    Andrew
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Michael Robinson
    Michael Robinson over 15 years ago

    Ahhh, but my way doesn't require an extra button. Cadence's course of fatter GUI's is a hindrance. Via stack partial/full select could have been included with the regular partial/full selectability and doubled the efficiency.

    • 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