we all know that the parametric analysis is quite a useful tool in cadence, we can sweep any parameters in the design. I refer to the
cadence user guide and I find that it is a "for loop" simulation. I perform the same simulation by using the same "for loop" , but I find the parametric analysis is much faster than the common "for loop". I would like to know why the parametric analysis is faster? is there some optimization for the parametric analysis ?
With spectre, assuming that you still have it in "interactive" mode (and haven't switched via the spectre.envOpts controlMode cdsenv to "batch" mode), ADE starts spectre and runs a simulation but does not exit at the end. It's then able to talk to spectre to tell it to change the value of a parameter and re-simulate. There's then no need to restart the simulator, re-checkout the license, re-read the netlist, and so on. So ADE's parametric analysis can do a:
The same thing should happen if you do:
foreach(val '(1k 2k 3k 4k) desVar("rload" val) run())
however, if you're changing certain other things, that may force the simulator to exit each time. So it depends if you do anything inside your loop which requires spectre to exit to change (e.g. changing the resultsDir, or altering an analysis would probably do it).
In reply to Andrew Beckett:
thanks for explaining clearly！I got the idea. in my case, I use the following skill code:
for(row 0 100
for(col 0 100
selectResult( 'tran )
I wonder whether the"selectResult" will force the simulator to exit? I think the default parametric analysis will finish the simulation first, and then sample all the data. in that way, it require a lot of memory to store the simulation data (many curves), so I plan to sample the data in each simulation, but i found it is slower than the conventional way. in additional, how to manage to sample all the output curves after the simulation in my case if I will use the default parametric analysis, how does the VOUT name change in the psf data? VOUT_1, VOUT_2, right?
I did a quick comparison by doing a parametric ac frequency sweep on an opamp in IC614. The sweep steps a common mode voltage variable 5 times. I then recorded the total simulation time in seconds for different controlModes and ways of executing the task. The for loop runs as follows:
foreach(Param '(0 0.425 0.85 1.275 1.7 )
and the ocean parametric:
paramAnalysis("Vi_cm" ?values '(0 0.425 0.85 1.275 1.7 ))
The ade-parametric simulation runs a parametric analysis using the ADE GUI. The table below shows the simulation times in seconds
I would like to know if there is a way to speed up the ocean parametric simulation, so that the simulation time could be compared to ade-parametric?
In reply to T Opperman:
I did a similar example. My simulation was a bit slower, but what I saw was:
The difference in speed between OCEAN and ADE is primarily all the printing it does to the CIW (or rather the code that has to pass that on). There are various switches to cut down the verbosity of spectre on the screen, but you can't turn it off completely. I think this ought to be possible (it could call spectre with =log instead of +log).
I'd suggest logging a Case with customer support.