• 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. Recommended best practice for a User Interface GUI to control...

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 143
  • Views 13781
  • 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

Recommended best practice for a User Interface GUI to control a pCell?

codetonic
codetonic over 8 years ago

I have a power grid pcell with stretch handles for width and height.

I also want to have a GUI for controlling the layer levels such as bottom most layers, top most layers, etc. 

The "Edit Instance Properties" (instance query) could work but it doesn't seem very elegant.

What is the best way to implement the user interface? In the code body of the pcell or as a standalone skill program?

  • Cancel
  • skillUser
    skillUser over 8 years ago
    Hi Michael,

    The PCell can/should only be affected by its parameters, so you should create new parameters for the top-most and bottom-most layer(s) - these can be made to be presented as cyclic parameters for ease of entry for the user, but they will be string parameters (radio and cyclic CDF fields result in a string value). The PCell 'engine' can be a procedure that accepts all of the relevant parameters and creates the appropriate output. Call this procedure from inside the pcDefinePCell statement. Then the 'engine' can be tested separately, outside of the PCell environment - this is very handy for testing, development and debugging. This method is called 'encapsulation'. I quite often create the CDF parameters FROM the PCell parameters so that they are in sync, but at the very least I would recommend coding the CDF alongside the PCell itself so they tie together well.

    In short though, the PCell is controlled by its parameters, so you will need parameters to control the layers.

    I hope that this helps you.

    Best regards,

    Lawrence.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • codetonic
    codetonic over 8 years ago
    Sometimes asking the right question is the hardest part. Especially without pictures. Let me try this again. I have created a power grid pcell with width and height parameters. It works and works well. Also, I have created a custom form (hiCreateAppForm) with buttons that are intended to change the values of the pcell's width and height. How do I connect the form controls (buttons) to an already instantiated pcell?
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • codetonic
    codetonic over 8 years ago
    I think I found it, correct me if I'm wrong: cdfFindParamByName(cdfGetInstCDF(pg) "height")->value = <newValue>
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • skillUser
    skillUser over 8 years ago
    Hi Michael,

    Assuming that 'pg' represents the instance id of one of these instantiated PCells, then that could be correct. Just make sure that the value is the correct type. You should be able to interactively type/develop this in the CIW.

    Best regards,
    Lawrence.
    • 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