I am trying to simulate the input common mode range of my operational amplifier using Cadence Virtuoso and spectre ADE.
The simulation concept is to sweep the input common mode DC voltage (VIC) and run the AC simulation for every step to find the GBW and gain for every step of VIC.
To implement this principle, I run both AC and DC simulation in the same time. the AC simulation is to find the gain and GBW, while I use the DC simulation to sweep the VIC.
When I run it, the simulator is not doing it is suggested above, he only consider the default value of VIC and run the AC simulation one time. means he is not actually sweeping the DC. Why ?
I made a solution to avoid this problem by sweeping the VIC from parametric not by DC simulation and it is working properly. the only issue with parametric it consumes more time, thus I still wonder about the first setup
To do what you are asking for, you need to do a sweep around the AC analysis. An AC analysis, like DC and transient can sweep one variable - for AC that is typically frequency, but it can be something else (e.g. a parameter or temperature) and then the AC is computed at a single frequency. If the DC operating point is affected by whatever you are sweeping, it is recomputed before computing the AC for the single frequency you specify. DC is similar - you can sweep a parameter or temperature.
If you need to do a frequency sweep and sweep something else, you need to do a nested sweep. Spectre itself supports a native sweep analysis, but ADE doesn't generally take advantage of this (there are a few case where ADE does use spectre's sweep analysis, but this is not one of them).
However, if you run ADE Explorer to set up the surrounding sweep, then spectre would (normally) run with similar efficiency to having a native sweep. That's because it groups the runs and ADE tells spectre to run each set of analyses without quitting the simulator - so you don't need to generate a new netlist, re-start the simulator, regain the license, parse the netlist and so on - spectre will change the parameter value in memory.
ADE L can do this too (to some extent) with the parametric analysis tool.
It's possible that your setup is defeating the performance improvement to make parametric sweeps faster - to know that, I'd need to know which ADE flavour you're using and which version of the IC tools you're using. Then I can ask you some relevant questions. Fundamentally though, you need to do a parametric sweep of some sort around the AC analysis - so that will inevitably be slower because it has to repeat the AC sweep for each outer variable sweep point.
Thank you for your reply
I am using ADE L, Spectre Simulator version 22.214.171.1249 2012
and Cadence Virtuoso IC6.1.5-6b bit
We don't have ADE Explorer in our platform
Thank you Andrew again
OK, check what:
returns. If that returns "interactive", then doing the parametric sweep should be quick (assuming you're not running in distributed mode in ADE L). If it's set to "batch" then do:
envSetVal("spectre.envOpts" "controlMode" 'string "interactive")
and restart ADE L and try the parametric analysis tool again.
ADE Explorer was introduced in IC617. You're using very old and unsupported versions at the moment (7 years or so old).
That was very helpful, the Parametric analyses is now working faster with your last suggested setting.
I have a question related to this solution, is the simulation accuracy reduced when we make it faster?
No, it's not.