• 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. Setting the value of a CDF parameter

Stats

  • Replies 4
  • Subscribers 143
  • Views 78
  • Members are here 0

Setting the value of a CDF parameter

BS202501273649
BS202501273649 3 hours ago

I am using SKILL to update the properties on an instance.

I am probably missing something obvious but I don't completely understand the difference between the properties as accessed directly on the instance and the CDF parameters defining those same properties.  In particular, for one PDK at least, I am seeing a difference when I set the value via the property versus setting it via the CDF parameter.

In other words between

dbReplaceProp(instance prop_name type(newPropValue) newPropValue)

and

CDF = cdfGetInstCDF(instanceDB)
param = cdfFindParamByName(CDF prop_name)
param~>value = newPropValue

In both cases the property seems to being set "correctly": it appears correctly in the dialog in Virtuoso.  But I am seeing some subtle differences in what is saved in OA.  In particular, this is a boolean and I am trying to make it False by setting it to nil.   In the second case that is indeed what happens but in the first case the property contains an AppPropertyValue containing the bytes "nil" which seems like it might be wrong.

So I'm guessing the second form of the code is what I want but I'm not really sure why.

  • Cancel
  • Sign in to reply
Parents
  • Andrew Beckett
    Andrew Beckett 3 hours ago

    In this case it's not callback related as Aurel suggested (although that can be a problem in general). It's that using dbRepaceProp in the manner you have (using the type of the SKILL value to determine the property type) will not work correctly (probably) if you have a value of nil. In SKILL, nil is actually an empty list and is used to represent false - there is no boolean type in SKILL - anything other than nil is true. So type(nil) is list. You'd be creating a list property with an empty list (which is a custom AppProp in OA), rather than a "boolean" property type with value nil (false). If you passed "boolean" as the third arg to dbReplaceProp it would store it a a boolean property, not a list.

    With the CDF-based approach, it knows the type of the CDF parameter, and hence will set the appropriate type of the instance property used to store it.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • BS202501273649
    BS202501273649 3 hours ago in reply to Andrew Beckett

    Ah of course!   The type is wrong - I need to use the CDF parameter type not the type of the data being set when it is nil.  Thanks!  Setting it via the CDF parameter is actually fine and what I am doing but I just needed to understand better.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • BS202501273649
    BS202501273649 3 hours ago in reply to Andrew Beckett

    Ah of course!   The type is wrong - I need to use the CDF parameter type not the type of the data being set when it is nil.  Thanks!  Setting it via the CDF parameter is actually fine and what I am doing but I just needed to understand better.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • 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