• 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. Editing VerilogA parameters using SKILL script

Stats

  • Locked Locked
  • Replies 2
  • Subscribers 143
  • Views 13264
  • 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

Editing VerilogA parameters using SKILL script

Shamnur
Shamnur over 16 years ago

Hi All,

I am working on script to modify the CDF parameter( the VerilogA design parameters) of a cell.

E.g: A veriloga parameter (say "length" in "myCell") need to be modified using SKILL routine.
-------------------------------------------------------------------------------
cellObj = ddGetObj( "myLib" "myCell" nil nil nil "a")
bcCdf = cdfGetBaseCellCDF( cellObj)
....
if( bcCdf->parameters->name == "length")
then
    lengthParam  = nth( i bcCdf->paramters)
    lengthParam->defValue = 44
);if
.....
 >>>> *WARNING* Can't modify attributes of effective CDF parameters.
-------------------------------------------------------------------------------

However, this warning inhibits me to modify any parameters similarly.

Is there a way, I can bypass this and edit the parameters ?

Please let me know if the community has a solution for this.

Thanks,
Shamnur

 

 

 

 

  • Cancel
  • skillUser
    skillUser over 16 years ago

     HI Shamnur,

    If this code above is your actual code that has been copied and pasted here, then there is a typo that may be causing problems:

    lengthParam  = nth( i bcCdf->paramters)

    perhaps this should be:
    lengthParam  = nth( i bcCdf~>parameters) 

    I'm sure that there is a cleaner way than using "nth" but I can't see the surrounding context, so I don't know exactly what the rest of your code looks like. You might consider the cdfFindParamByName() SKILL function:

    cdfFindParamByName( g_cdfDataId t_name )
         => g_paramId / nil

    Use the "squiggly arrow" (tilde followed by greater-than) when working with cdf or db objects.

    Regards,

    Lawrence

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Shamnur
    Shamnur over 16 years ago

    Hi Lawrence,

    Thanks for the close observation. The typo is only in composing this post however it isn't there in my actual code.

    Well, I realized a solution for my problem which I would like to share. However this has pushed me into another problem which happens to be the continued discussion.

    Solution:

    We can edit the parameter(say lengthParam) values in two ways.

    1) cdfgData->lengthParam->defvalue =33

    2) cellObj = ddGetObj( "myLib" "myCell" nil nil nil "a")
        bcCdf = cdfGetBaseCellCDF( cellObj)

        lengthParam  = nth( i bcCdf->parameters) ; Assuming ith value is lengthParam

       lengthParam->defValue = 33

    The first one would issue the mentioned Warning message which I had interpreted wrongly before and the second one wouldn't issue the warning message. So, going by (2) method solved my problem.

    New Problem:
    a) When I attach a callback message to the same parameter which happens to be a dialogBox to lengthParam->callback, it fails !!

    e.g: lengthParam->callback = "hiDisplayAppDBox(?name 'f ?dboxBanner \"Warning\" ?dboxText \"The defValue is being assigned back\" ?dialogType hicWarningDialog ?dialogStyle 'modal ?buttonLayout 'OKCancel ) "

    It is leading to segmentation faults !! 

    b) If I were to attach a  callback which is a simple print statement etc, the results are fine.

    e.g: lengthParam->callback = "printf(\" I am assigning the value back to default\")"

     

    Thanks,
    Ganesh

     

     

     

    • 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