• 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. Mixed-Signal Design
  3. Changing effective CDF parameters using skill code

Stats

  • Locked Locked
  • Replies 0
  • Subscribers 64
  • Views 5519
  • 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

Changing effective CDF parameters using skill code

Me Daniel
Me Daniel over 1 year ago

Hi,

I would like to change the effective CDF parameters of a PDK. There are two ways know to me: SKILL and the CDF GUI, setting the CDF layer to effective and than changing the parameters works fine in the GUI. However this approach is rather time consuming each time I start Cadence. I would like to change the parameters using SKILL, currently I'm running into some issues.

I would like to know what I have missed, where my code is in error. I hope you can help me.

But first the skill code:

;; procedure copied from Cadence website and slightly modified it for my use, due to the fact support.cadence.com/.../ArticleAttachmentPortal
procedure( CCSsetCDFdefValue(cdfid paramid defval)
    let( (store)
        print("param found")
        ;; store the current parameter settings as a disembodied
        ;; property list that contains pairs of the property name
        ;; and value
        store = cons(nil paramid~>??)
        ;; delete the original parameter
        cdfDeleteParam(paramid)
        ;; re-create the parameter as it was except for the
        ;; default value which is passed in
        cdfCreateParam(cdfid
        ?name          store->name
        ?type          store->paramType
        ?defValue      defval
        ?units         store->units
        ?parseAsNumber store->parseAsNumber
        ?choices       store->choices
        ?prompt        store->prompt
        ?use           store->use
        ?display       store->display
        ?editable      store->editable
        ?dontSave      store->dontSave
        ?callback      store->callback
        ?storeDefault  if(store->storeDefault "yes" "no")
        ?parseAsCEL    store->parseAsCEL
        )
        ;; save the whole CDF
        cdfSaveCDF(cdfid)  
    ); let
); procedure CCSsetCDFdefValue

library = "PDK_lib"
foreach(cell ddGetObj(library)~>cells
    ;;code line to select the effective CDF
    cdfid=cdfGetCellCDF(ddGetObj(library cell~>name))
    ;;code line to select the base CDF
    ;;cdfid=cdfGetBaseCellCDF(ddGetObj(library cell~>name))
    ;;code line to select the user CDF
    ;;cdfid=cdfGetUserCellCDF(ddGetObj(library cell~>name))
    if(cdfid
    then
        ;; cdfFindParamByName(cdf "paramName") does not work and results in errors see below
        foreach(param cdfid~>parameters
            if(strcmp(param~>name "param1") == 0
            then
                ;param~>value = "None"
                param~>defValue = "None"
            )
            if(strcmp(param~>name "param2") == 0
            then
                CCSsetCDFdefValue(cdfid param nil)
            )
        )
        cdfSaveCDF(cdfid)
    )
)


Selecting the base CDF is not possible due to the fact that de PDK for me and in general is not editable.

selecting user does not give any results, the user CDF is empty it appears...

selecting the effective CDF the case I would like gives me the following:

*WARNING* Invalid effective CDF data type cellData.  Effective CDF cannot be modified

And the result is no changes to the effective CDF, I don't understand why, because to GUI methodes works fine

cdfFindParamByName(cdf "paramName") :

*WARNING* Can't modify attributes of effective CDF parameters.

Kind Regards and thank you for you help,

Daniel

  • 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