• 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 Design
  3. Using variable for CDF Parameters in a netlist file

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 125
  • Views 16360
  • 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 variable for CDF Parameters in a netlist file

meredith
meredith over 8 years ago

As a work around for pPar, is it possible to use a variable for a parameter in a CDL netlist file and pass the value of that variable down through hierarchy? 

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 8 years ago

    Why do you need a workaround for pPar? Why can't you just use pPar?

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • meredith
    meredith over 8 years ago
    The length and width of transistors are combined to use the area of the transistor for comparison in the netlist. Area is defined as a parameter for the transistor but marked as not editable. If pPar is used for the length or width the variable passes to the lower level but the default value is used for the area calculation.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 8 years ago

    That suggests to me that the area is computed via a CDF callback, which would prevent the use of pPar() or indeed parameterisation of any type on the source width/length parameters. This is a limitation of your PDK - you should take it up with the provider of the PDK.

    If the area had been set in the CDF to be iPar("width")*iPar("length") then it would have worked... but because it is computed via a CDF callback, that's only triggered when  you update the form.

    See The Dangers of CDF Callbacks.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • meredith
    meredith over 8 years ago
    Thank you Andrew. Unfortunately the PDK creators are not interested in changing the code that is why I am interested in finding a work around.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 8 years ago

    One possibility might be to take a copy of the component into your own library, and then use Tools->CDF->Edit, edit the Base CDF of the copy, and remove the callback for the width and length parameters and change the area to be iPar("width")*iPar("length") - or whatever is an appropriate expression. Then use the copy instead of the original PDK device.

    Not sure if that will upset any flow/design review process you might have though...

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • meredith
    meredith over 8 years ago
    Thank you for going into detail with this solution. I will give it a try and post the results.
    • 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