Home > Community > Forums > Custom IC Design > Printing to file after running Parametric Analysis

Email

* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

 Printing to file after running Parametric Analysis 

Last post Mon, Nov 9 2009 7:00 PM by Andrew Beckett. 4 replies.
Started by mk123 02 Nov 2009 02:42 PM. Topic has 4 replies and 3825 views
Page 1 of 1 (5 items)
Sort Posts:
  • Mon, Nov 2 2009 2:42 PM

    • mk123
    • Top 500 Contributor
    • Joined on Wed, Sep 16 2009
    • Posts 20
    • Points 325
    Printing to file after running Parametric Analysis Reply

    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

     

    • Post Points: 20
  • Sun, Nov 8 2009 5:29 AM

    Re: Printing to file after running Parametric Analysis Reply

    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.

    • Post Points: 20
  • Mon, Nov 9 2009 12:11 PM

    • mk123
    • Top 500 Contributor
    • Joined on Wed, Sep 16 2009
    • Posts 20
    • Points 325
    Re: Printing to file after running Parametric Analysis Reply

     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

    • Post Points: 35
  • Mon, Nov 9 2009 1:08 PM

    Re: Printing to file after running Parametric Analysis Reply

    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.

     

    • Post Points: 5
  • Mon, Nov 9 2009 7:00 PM

    Re: Printing to file after running Parametric Analysis Reply

    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.

    • Post Points: 5
Page 1 of 1 (5 items)
Sort Posts:
Started by mk123 at 02 Nov 2009 02:42 PM. Topic has 4 replies.