• 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
  • farhan89
    farhan89 over 8 years ago

    Thank you Andrew for suggestions and explanation.

     I don't really need a pcell for symbol view (because it doesn't change depending upon parameters). The reason why I created pcell for symbol view is to attach the CDF parameters(e.g. W and L), terminal and net names to it and modify CDF parameters for symbol view while designing circuit.


     This is my callback procedure

    procedure(CheckLW(paramId)
    prog((val valVar)
    if( (val = cdfParseFloatString(paramId->value)) &&
    typep(val) != 'flonum then
    paramId->value = val
    cdfgForm->cdfModified = t
    )
    if(paramId->value=="" || evalstring(paramId->value) < evalstring(paramId->defValue) then
    paramId->value = paramId->defValue
    cdfgForm->cdfModified = t
    )
    );; prog
    )

    According to my understanding the cdfParseFloatString() function would accept pPar function for CDF parameters. I am using IC6.1.6-64b.500.8 version. Could you please suggest me what should I edit in my callback script to accept the pPar("W") and pPar("L") for symbol view and not for the layout view.

    Farhan

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • farhan89
    farhan89 over 8 years ago

    Thank you Andrew for suggestions and explanation.

     I don't really need a pcell for symbol view (because it doesn't change depending upon parameters). The reason why I created pcell for symbol view is to attach the CDF parameters(e.g. W and L), terminal and net names to it and modify CDF parameters for symbol view while designing circuit.


     This is my callback procedure

    procedure(CheckLW(paramId)
    prog((val valVar)
    if( (val = cdfParseFloatString(paramId->value)) &&
    typep(val) != 'flonum then
    paramId->value = val
    cdfgForm->cdfModified = t
    )
    if(paramId->value=="" || evalstring(paramId->value) < evalstring(paramId->defValue) then
    paramId->value = paramId->defValue
    cdfgForm->cdfModified = t
    )
    );; prog
    )

    According to my understanding the cdfParseFloatString() function would accept pPar function for CDF parameters. I am using IC6.1.6-64b.500.8 version. Could you please suggest me what should I edit in my callback script to accept the pPar("W") and pPar("L") for symbol view and not for the layout view.

    Farhan

    • 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