• 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 Design
  3. Printing to file after running Parametric Analysis

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 126
  • Views 15069
  • 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

Printing to file after running Parametric Analysis

mk123
mk123 over 15 years ago

Hi, 

I am running an ocean script to do a parametric analyis. The parameters are VDD and temperature and analysis is transient. The script goes something like the following,

 paramAnalysis("VDD" ?values (3 5)

paramAnalysis("temp" ?values(-40 125)

)

)

paramRun()

openResults(dir)

selectResults('tran)

outputs()

avg=average(VT("/net1"))

out=outfile("filename" "a")

;fprintf( out "VDD=%d Temp=%d Average=%g" VDD temp avg)

 fprintf( out "Average=%g" avg)

close(out)

 

What I want to do is print the results in a flie for each value specified by the parametric analysis. There are two problems,

(1) If I run the commented "fprintf" line in the code above,  VDD and temp are not variables anymore. So I get the error as "unbound variables" as expected. Is there a way to print these values ???

 (2) For the second fprintf line, asI am running a parametric analysis, all the transient runs are done alreayd. Thus, the variable average is now a graph.Therefore the printed value is now "drwave:123456". Is there a way to print each of this value corresponding to each VDD and temp??

 I have tried using "foreach ", instead of running a parametric analysis and that works when I want to print into file. However, I found that parametric analysis was faster.

 

Thanks,

Mandar

 

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 15 years ago

    Perhaps just using:

    ocnPrint(?output out  avg)

    will do what you want. There are some additional arguments to control formatting - covered in the OCEAN documentation or by typing ocnHelp('ocnPrint) in the CIW/ocean prompt.

    For your first point, VDD and temp are not SKILL variables. You'd use desVar("VDD") to access the value of VDD in general, but since this is a parametric analysis, that wouldn't work. I think ocnPrint(VAR("VDD")) would output it - I didn't check. Anyway, ocnPrint(avg) is probably what you want...

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • mk123
    mk123 over 15 years ago

     Hi Andrew,

    Ocnprint worked but I coudn't get it to append the same result file I was writing to for the next run. I tried giving the output of the outfile() but that didn't work. However, I ran another loop and accessed the specific result directories to print the data I wanted. 

     Thanks, 

    Mandar

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

    Hi Mandar,

    If you opened the result file in append mode (which your code used), then you absolutely should be able to use ?output out and it should append.

    If this isn't working for you, I'd suggest contacting Cadence Customer Support - maybe there's a real problem there that needs to be solved.

    Regards,

    Andrew.

     

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

    Apologies - I appended this to the wrong topic. So please ignore what I wrote below...

    Sorry, I just realised I didn't read your original post closely enough. I spotted you said T0 is an instance of an undefined model subcircuit. The subcircuit is what gives it away - the netlist has ended up incorrect.

    Most likely this is because you don't have the UNIX environment variable $CDS_Netlisting_Mode set before you start virtuoso. Do:

    setenv CDS_Netlisting_Mode Analog

    (if using csh), or:

    export CDS_Netlisting_Mode=Analog

    if using bash/ksh.

    Then start virtuoso. 

    I suspect that will solve it. You'll need to do a Simulation->Netlist->Recreate to force it to renetlist.

    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