• 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. Customize PDK library without changing it.

Stats

  • Locked Locked
  • Replies 5
  • Subscribers 142
  • Views 14452
  • 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

Customize PDK library without changing it.

nosaj
nosaj over 14 years ago

Hi all,


I'm looking for a way to change the CDF default value that doesn't require user interaction and changes to the actual PDK library.

e.g.

By default, pmos A=1, and CDF value of pmos's x, y, z  depends on callback of A.

Normally when the user instantiate pmos, they will change A=2, and subsequently updating x, y, z.

What I want : When user instantiates the pmos, CDF is already set to A=2 and x, y, z already update accordingly and automatically

How can this be achieved?

 Thanks in advance.

  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett over 14 years ago

     There are numerous problems with changing the defaults in the effective CDF. For a start, if the user does a File->Refresh in the CIW, and hits OK when it asks them whether they want the CDF refreshed, the effective CDF will be discarded.

    Getting all the callbacks to run on the create instance form doesn't really make sense, and isn't really doable. You could potentially do something in a formInitProc (which you could set in the effective CDF too), but formInitProcs that change values are nasty, because they will then modify the values on existing instances when you do an edit properties, which gives you misleading information when you simply do edit properties to look at the current properties. Similarly if you changed the doneProc - that's also nasty.

    The cleanest solution would probably be to not only change A=2 in the effective CDF, but also change the defaults for x, y  and z to the values the callbacks would have set them to. That way it is all consistent out of the box. After all, that's the case with the original defaults - at least if well design.

    Overall, I'd be very wary of doing this. Especially if there are pcells involved - if the pcell's defaults then become different from the CDF's defaults, then odd things can happen (workaroundable by setting storeDefault=yes; what happens is that edit props things that if the form shows the CDF's default, it doesn't store the property on the instance; during pcell evaluation, if there's no property on the instance, it uses the pcell's default - so you think you've asked for one value, but it's actually evaluated using a different value).

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 14 years ago

     There are numerous problems with changing the defaults in the effective CDF. For a start, if the user does a File->Refresh in the CIW, and hits OK when it asks them whether they want the CDF refreshed, the effective CDF will be discarded.

    Getting all the callbacks to run on the create instance form doesn't really make sense, and isn't really doable. You could potentially do something in a formInitProc (which you could set in the effective CDF too), but formInitProcs that change values are nasty, because they will then modify the values on existing instances when you do an edit properties, which gives you misleading information when you simply do edit properties to look at the current properties. Similarly if you changed the doneProc - that's also nasty.

    The cleanest solution would probably be to not only change A=2 in the effective CDF, but also change the defaults for x, y  and z to the values the callbacks would have set them to. That way it is all consistent out of the box. After all, that's the case with the original defaults - at least if well design.

    Overall, I'd be very wary of doing this. Especially if there are pcells involved - if the pcell's defaults then become different from the CDF's defaults, then odd things can happen (workaroundable by setting storeDefault=yes; what happens is that edit props things that if the form shows the CDF's default, it doesn't store the property on the instance; during pcell evaluation, if there's no property on the instance, it uses the pcell's default - so you think you've asked for one value, but it's actually evaluated using a different value).

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

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