• 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. Modify cdf param value based on its current value using...

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 143
  • Views 15582
  • 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

Modify cdf param value based on its current value using SKILL

San
San over 9 years ago

Hi ,


I am trying to alter some cdf parameter value using SKILL 

For example , I want to increase width by 100 (for example 100n or 100u)

if current value of w is

w = " 200n "

then I want to set it to " 300n"

if w is " 500u" then I want to set it to "600u" and so forth.

While looking for function in document I found following function which might be useful in this process,

cdfFormatFloatString("123.4"  "m") => "123400.0m"

cdfParseFloatString("1.0u") => 1e-06

 I am trying to manipulate cdf parameter value based on its current value. 

Please help.

Thanks

san

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 9 years ago

    This is a very strange thing to want to do - it doesn't strike me as having any physical meaning - adding a 100n or 100u to a value depending on it's existing range sounds rather peculiar to me.

    Anyway, using num=cdfParseFloatString(inst~>w), then using some conditional statements (e.g. if() or cond() to check the range the value is in) and then adding 100n or 100u to the result and cdfFormatFloatString() before setting it back seems straightforward enough (although unusual). I don't understand what you don't understand?

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • San
    San over 9 years ago

    Sorry andrew I might not have explained it clear enough. I am just trying to create a test case with different cdf values than that of default. so I am trying to create a non default test case to QA our LVS deck by changing some cdf parameter values.  Basically I just wanted to increase some of the cdf param value to create non default test case.  

    So i have tried as following but getting some error. Having some problem with format of a value.

    oldValue=cdfParseFloatString("200n") => 2e-07

    newValue=oldValue+10n => 2.1e-07

    cdfFormatFloatString(newValue "n") =>  *Error* cdfFormatFloatString: argument #1 should be a string (type template = "t") - 2.1e-07

    sprintf(newValue "%L\n" newValue) => "2.1e-07\n"

    cdfFormatFloatString(newValue "n") => nil

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • San
    San over 9 years ago

    Seems like getting rid of \n at the end of the newValue will do the job.

    So I used
    pattern=pcreCompile("\n")
    newValue=pcreReplace(pattern  newValue "" 0)

    so final code will look like following to get "210n" from "200n"

    oldValue=cdfParseFloatString("200n")

    newValue=oldValue+10n

    sprintf(newValue "%L\n" newValue)

    pattern=pcreCompile("\n")

    newValue=pcreReplace(pattern newValue "" 0)

    cdfFormatFloatString(newValue "n")


    thanks for your help Andrew. I appreciate it .

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 9 years ago
    Could also use aelSuffixNotation() to convert the number directly to a number with a suffix.
    • 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