• 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. i use paramAnalysis and how to get the output?

Stats

  • Locked Locked
  • Replies 9
  • Subscribers 144
  • Views 14961
  • 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

i use paramAnalysis and how to get the output?

imagesensor123
imagesensor123 over 14 years ago

 Hi ,

    I use paramAnalysis in my ocean to do a parametric analysis, and now i want to get the output of every sweep value at the certain time . for example, i used the paramAnalysis( "lin" ?start 10u ?stop 50u ?step 10u) to do a transient simulation for 100us , now how can i get the vout value for lin=10 time=50us and lin=20u time=50u ,and so on.In addition , i found that the command "value" can get the signal value at the specified time,like value(v("vout") 50u), but how can i get the value "vout lin=20 time=50us" ? thanks

Regrads,

zfeng

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 14 years ago

    Zfeng,

    Use value(v("vout") 'lin 10u) if you want to retrieve the curve for a value of a specific design variable. Normally if you don't specify the variable name (just the value to measure at), it takes that measurement at the inner sweep. When doing a parametric analysis of a transient, the inner sweep is the time axis, and the next outer sweep is the parametric variable. So you could get the values you want by doing:

    value(value(v("vout") 50u) 10u)
    value(value(v("vout") 50u) 20u)

    Regards, 

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • KMan2011
    KMan2011 over 13 years ago

    Hi Andrew,

    I posted a thread elsewhere regarding the picking of data during a parametric sweep using Skill code and calculating data.

    I think I've found the reason behind why I'm getting only one set of results when a parameter is swept.  The parameter in question is "case"...as in process corner...this is in our PDK.

     But isn't 'case' a reserved construct/command?

     If so, I won't be able to use say a cross() function to pull parametric data where 'case' is one of the nested parameters.  Is it possible to alias the parameter in the skill code?

     Thanks in advance

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 13 years ago

    As far as I know, there's nothing special about the word  "case". If you call sweepNames() it should show you the names in the resulting data when the simulation has finished...

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • KMan2011
    KMan2011 over 13 years ago

    Thanks Andrew

     Indeed, the sweepNames() function returns "case" "tsh" "time".

    I can even autoplot the individual cases/corners.  I just can't seem to wrok on the data.  Here's a snapshot ..{fout is a declared and opened file handle with the 'w' option}

    paramAnalysis("case" ?values '(0 1)

    paramAnalysis("tsh" ?values '(-5e-10 -4e-10)

    ))

    resultsDir("./psf1")

    paramRun()

    openResults("./psf1")

    selectResults('tran)

    tf=cross(v("Vout") 1 3 'falling)

    ocnPrint(?output fout tf)

    close(fp)

     ...........................END

    Fingers crossed I've copied all the brackets across carefully.  If I ocnPrint v("Vout"), then I it prints the Vout vs time for both case 0 and 1.  If I change the desVar( "case" 0) to desVar( "Case" 0), then the above code prints both cases, but such a variable doesn't exist so the corner never moves from nominal.

     

    I think I may go back to basics and try a nested 'foreach' loop.  I read that paramAnalysis() is quicker to implement and easier, but I can't figure out why it has a problem with 'case'.

    Cheers Man!

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 13 years ago

    So what's the actual problem? What you describe above sounds as if it's working correctly...

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • KMan2011
    KMan2011 over 13 years ago

    But it's not working correctly.  It only prints the 'tf' to the filename for case=0 only.  It can't work on the individual case data....or I should say, "case" parameter swept data other than case=0  When I plot tf vs tsh, I should see 2 distinct plots where the 'case' variable has changed.  instead, the plot shows one coincident on the other and looking at the data, I only see data in the printed file for one case. 

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 13 years ago

    Hmm, that seems different from what you said earlier, when you said that ocnPrint was showing it for both case values. Maybe I misunderstood you.

    Can you log a service request with customer support? I think we'd need to see this. What version are you using (I don't think you said)?

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • KMan2011
    KMan2011 over 13 years ago

    Spectre isr 10.1.1.056.isr5

    ICFB 5.10.41.500.6.147

    NOTE:  If you read that post earlier which confused you, you’ll see the word ‘case’ has  a capital C.  No such variable exists in my testbench, but it does print correctly to the the file. Just doesn’t changes anything because the variable ‘Case’ doesn’t exist.  ‘case’ however does (with a lower case c).

    Lotta ‘cases’ flying around!

    I take it I need to log this formally?  I’ll probably need to go through our CAD group for this.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 13 years ago

    It was the statement "If I ocnPrint v("Vout"), then I it prints the Vout vs time for both case 0 and 1." which made me think that it was working, because this seemed no different from the situation where you used desVar("Case"...). 

    Yes, please log this as a service request via support.cadence.com - I think we'll need to take a look at the actual data.

    Regards,

    Andrew.

    • 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