The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl
Simulators >> RF Simulators >> how to plot a curve versus a parameter in Wavescan?
https://designers-guide.org/forum/YaBB.pl?num=1214321363

Message started by rf_man on Jun 24th, 2008, 8:29am

Title: how to plot a curve versus a parameter in Wavescan?
Post by rf_man on Jun 24th, 2008, 8:29am

How to plot a curve in wavescan versus a desired parameter in Wavescan? Just like in ADS, one can plot a curve versus almost anything easily, but how do you do that in Cadence's Wavescan?
e.g. plot collector current versus the variation of VCE?

Title: Re: how to plot a curve versus a parameter in Wavescan?
Post by pancho_hideboo on Jun 24th, 2008, 10:57pm


rf_man wrote on Jun 24th, 2008, 8:29am:
How to plot a curve in wavescan versus a desired parameter in Wavescan? Just like in ADS, one can plot a curve versus almost anything easily, but how do you do that in Cadence's Wavescan?
e.g. plot collector current versus the variation of VCE?

If number of independent variables is two like your example, you can easily plot Ic[Ib, Vce] using Direct Plot, here independent variables are Ib and Vce.

But if there are more than three independent variables, plotting graph you desire in Cadence ADE is not so friendly compared to Agilent ADS.

You have to invoke skill(ocean) functions like following.

    sweepNames()  <-- this is similar to what() function in ADS.
    sweepVarValues()
    value()

About these functions, see skill finder.


Examples
  selectResult('ac)
  sweepNames()
  Returns   ("rc" "freq")
  sweepVarValues("rc")
  Returns   (900.0 950.0 1000.0 1050.0 1100.0)

 sweepVarValues("freq")
 Returns   (1000.0 1096.478 1202.264 1318.257 1445.44
                 1584.893 1737.801 1905.461 2089.296 2290.868
                 2511.886 2754.229 3019.952 3311.311 3630.781
                 3981.072 4365.158 4786.301 5248.075 5754.399
                 6309.573 6918.31 7585.776 8317.638 9120.108
                 10000.0)

 sweepNames(?result 'dc)
 Returns   ("rc" "re")

; sweepNames() --> ("timeindex" "freq")
time_list = sweepVarValues("timeindex");
n_time = length( time_list );
fprintf(stderr, "n_time=%d\n", n_time);
Root_Noise_PSD = getData("out");  /*  [Vrms/sqrt(Hz)]  */
t0 = nth(0, time_list);
vn_f = value(Root_Noise_PSD, "timeindex", t0);
plot(vn_f);

The Designer's Guide Community Forum » Powered by YaBB 2.2.2!
YaBB © 2000-2008. All Rights Reserved.