• 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. Cannot call pPar for CDF parameter

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 143
  • Views 17452
  • 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

Cannot call pPar for CDF parameter

farhan89
farhan89 over 8 years ago

Hello,

I wrote a pcell for layout and Symbol view for nmos. There are only 2 parameters that user can define (W and L). These CDF parameters have simple call backs functions to check that value in non zero. When I place the instance of nmos symbol in another schematic and edit the parameters at pPar("W") and pPar("W") then I get the error that:

*WARNING* cdfiSetParamValueOnInst: Could not get a float from property 'W' on instance 'I2'

CDF: An error occurred when evaluating callback.

Callback: W->callback => CheckLW(cdfgData->W)

Message: *Error* eval: undefined function - pPar


I tried changing the formal parameters of symbol view as:
 (
        (W           string   "75e-6"     ) ;; Channel Width
        (L            string  "20e-6"     ) ;; Channel Length
    )

but still it doesn't accept the input as pPar. Can anyone help me what should I modify in CDF parameters to make pPar work ?

My CDF parameter code
    cdfCreateParam( cdfId
        ?name "W"
        ?prompt "Channel width"
        ?defValue "100e-6"
        ?type "string"
        ?display "t"
        ?parseAsNumber "t"
        ?units "lengthMetric"
        ?callback "CheckLW(cdfgData->W)"
        ?storeDefault "yes"
    ?parseAsCEL "yes"
    )
    cdfCreateParam( cdfId
        ?name "L"
        ?prompt "Channel length"
        ?defValue "20e-6"
        ?type "string"
        ?display "t"
        ?parseAsNumber "t"
        ?units "lengthMetric"
        ?callback "CheckLW(cdfgData->L)"
        ?storeDefault "yes"
    ?parseAsCEL "yes"
    )

Thanks

Farhan

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

    Farhan,

    cdfParseFloatString doesn't understand pPar(). I'm not sure why you think it would? If you'd read my "Dangers of CDF Callbacks" article that I referenced earlier, it probably would have been clear that you can't have a CDF callback which works this way, because CDF callbacks are evaluated when the properties of an instance are edited; even if you used the information about the particular hierarchical path you've pushed into (using aelSetLineage and aelEnvCompile/aelEnvExecute, for example), it would only be valid for that one occurrence - there could be other hierarchical occurrences which inherit different values - and so your callback results would be wrong.

    I still don't see why having a pcell helps - this is just a CDF callback question - and you are trying to do something that CDF callbacks really cannot handle (as described in my article).

    Kind Regards,

    Andrew.

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

    Farhan,

    cdfParseFloatString doesn't understand pPar(). I'm not sure why you think it would? If you'd read my "Dangers of CDF Callbacks" article that I referenced earlier, it probably would have been clear that you can't have a CDF callback which works this way, because CDF callbacks are evaluated when the properties of an instance are edited; even if you used the information about the particular hierarchical path you've pushed into (using aelSetLineage and aelEnvCompile/aelEnvExecute, for example), it would only be valid for that one occurrence - there could be other hierarchical occurrences which inherit different values - and so your callback results would be wrong.

    I still don't see why having a pcell helps - this is just a CDF callback question - and you are trying to do something that CDF callbacks really cannot handle (as described in my article).

    Kind 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