• 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. Running identical simulation multiple times produces different...

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 125
  • Views 1976
  • 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

Running identical simulation multiple times produces different result both on annotation and Viva XL

RA20250218276
RA20250218276 6 months ago

I am running a simulation and get multiple different results. https://imgur.com/a/Se70AvZ. Left is AC simulation, Right is transient. (Can't upload directly here)

I included the result from Viva XL in the picture above. All things should be identical in both simulation. I only clicked on Run Simulation button (the one on schematic editor) multiple times and get 2 different results.

Previously I asked this question  Viva XL Graph result different from schematic result . In the previous question, the result is different because I was running 2 different simulations: First I ran DC Sweep and after that I change the schematic according to the DC Sweep value. That simulation shows that the circuit has multiple stable operating points, depending on the initial parameters.

But this time I did not change anything and get multiple results. I am guessing that this is still because of multiple stable operating points, but even if that is true, why the simulator produce multiple results when I did not change anything? I tried to look for similar issues and found this  same schematic and analysis - different results? . But in my issue, I literally just clicked on the run simulation button multiple times.

I have also tried to include useprevic=no for all 3 simulations (dc, ac, tran) because Andrew said that "the dc solution for transient will start from the values at the end of the previous simulation" in Transient and DC operating point are different . I thought if I put useprevic=no the simulator will redo the calculation from scratch. But the problem still persists.

One thing I note is the tran simulation graph follows the DC annotation on schematic editor.

Here is the simulator settings:

simulatorOptions options psfversion="1.1.0" reltol=1e-3 vabstol=1e-6 \
iabstol=1e-12 temp=27 tnom=27 scalem=1.0 scale=1.0 gmin=1e-12 rforce=1 \
maxnotes=5 maxwarns=5 digits=5 cols=80 pivrel=1e-3 \
sensfile="../psf/sens.output" checklimitdest=psf
dcOp dc write="spectre.dc" maxiters=150 maxsteps=10000 annotate=status \
useprevic=no
dcOpInfo info what=oppoint where=rawfile
tran tran stop=10m errpreset=conservative write="spectre.ic" \
writefinal="spectre.fc" annotate=status maxiters=5 useprevic=no
finalTimeOP info what=oppoint where=rawfile
ac ac start=1u stop=100G annotate=status useprevic=no
modelParameter info what=models where=rawfile
element info what=inst where=rawfile
outputParameter info what=output where=rawfile
designParamVals info what=parameters where=rawfile
primitives info what=primitives where=rawfile
subckts info what=subckts where=rawfile
saveOptions options save=allpub

  • Cancel
  • Andrew Beckett
    Andrew Beckett 6 months ago

    I see from your other post that you were running ADE L. By default, ADE L launches Spectre in what is called "interactive" mode which means that it doesn't exit the simulator between simulations so that if you just (say) change a variable it can quickly restart the simulation by changing it in memory. A consequence of this is that the second run may start from the previous operating point (note, useprevic=no doesn't prevent this behaviour).

    One solution is to go to the Simulation->Options->Analog form in ADE, to the Algorithm tab, and at the bottom there's a rebuild_matrix setting - try setting this to "yes".

    Note however, I would seriously look into your circuit (as I mentioned before) as if this second operating point is not what you are expecting, you probably need to fix your design. This is not a simulation artefact - it's a real circuit behaviour that you are seeing and in real life the circuit might end up starting up in the wrong place. Convincing the simulator to give you one of the multiple operating points is not necessarily the right thing to do here!

    Andrew

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • RA20250218276
    RA20250218276 6 months ago in reply to Andrew Beckett

    Thank you for your explanation.

    Andrew Beckett said:
    Note however, I would seriously look into your circuit (as I mentioned before) as if this second operating point is not what you are expecting, you probably need to fix your design. This is not a simulation artefact - it's a real circuit behaviour that you are seeing and in real life the circuit might end up starting up in the wrong place. Convincing the simulator to give you one of the multiple operating points is not necessarily the right thing to do here!

    Also to clarify, I completely agree. I know that the circuit is not working as intended and therefore it is better to look for the cause and revise the circuit. But I am new to cadence tools and currently trying to familiarize myself and understand a little bit about how the tool works and how to use it. So at first I thought it might be the simulator fault. That's why I asked my questions. As for the circuit itself, yes I revised it and now it gives consistent result over multiple runs.

    Also now that the problem is somewhat solved. I am questioning if there is a way to see if the circuit will change its convergence point over time. In my case, I ran the simulation multiple times and fortunately the simulator shows different result, so I know that there is something wrong. But in other cases, I might not run the simulation enough times to find out the changing convergence point. Therefore, is there anyway to prevent this? I am thinking something like increasing the iteration steps or something like a stress test to check if the circuit will change its convergence point maybe?

    For DC simulation, I can find the option to change 2 parameters maxiters and maxsteps. But I can't find the same option for AC simulation. Because looking at the pictures, I see that the AC simulation does not necessarily depends on DC solutions (in picture 2, 3, 4, the DC is same, hence the transient is same, but AC changes).

    And lastly if it is not too much, I could use some advice to prevent similar problems in the future.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett 6 months ago in reply to RA20250218276

    In general, a circuit simulator cannot really tell you if you have more than one stable operating point (from a DC simulation, at least). Playing with dcmaxiters or maxsteps (or maxiters in transient) will not help here - if it's converged, it's converged. The whole purpose of a DC analysis is to find a converged DC steady state and it is not its job to try to look over the entire universe of possible solutions (which would be very expensive, because there could be many "valleys" in a mountainous surface of possible solutions).

    There are many settings that could influence which solution it finds (it's mostly dependent upon the starting point though, which is why a nodeset tends to converge on one solution or another; you can also do a partial nodeset in a different starting point to help guide the solution elsewhere but even that wouldn't be a guarantee of finding alternatives. 

    Andrew

    • Cancel
    • Vote Up +1 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