Spectre: Limiting Simulation Iterations

H

hamidrezah

Guest
To all Spectre experts:

Hello! Is there a way to limit the allowed simulation iterations
(Newton Raphson) in Spectre? Imagine I don't care about accuracy. I
just want to run simulation for a limited number of iterations (5, 10,
etc) and stop. Is it possible and if so, how?

Thanks!

Regards,
 
hamidrezah wrote, on 04/12/10 10:33:
To all Spectre experts:

Hello! Is there a way to limit the allowed simulation iterations
(Newton Raphson) in Spectre? Imagine I don't care about accuracy. I
just want to run simulation for a limited number of iterations (5, 10,
etc) and stop. Is it possible and if so, how?

Thanks!

Regards,
This is the maxiters parameter. However, if you adjust it (for transient say),
then if it needs more iterations than specified, it will reject the timestep and
take a shorter one.

For DC, it will fail to converge (and probably move onto the next homotopy
method) if it exceeds this number of iterations.

maxiters for tran is 5 by default. For dc it is 150.

Not really sure what you're hoping to achieve. If it's dc you could set
homotopy=none, and reduce maxiters - but if it doesn't converge to the required
accuracy (set by reltol, vabstol, iabstol etc) within that number of iterations,
it will stop with a convergence failure.

I almost never touch maxiters.

Regards,

Andrew.
 
On Apr 12, 12:19 pm, Andrew Beckett <andr...@DcEaLdEeTnEcTe.HcIoSm>
wrote:
hamidrezah wrote, on 04/12/10 10:33:

To all Spectre experts:

Hello! Is there a way to limit the allowed simulation iterations
(Newton Raphson) in Spectre? Imagine I don't care about accuracy. I
just want to run simulation for a limited number of iterations (5, 10,
etc) and stop. Is it possible and if so, how?

Thanks!

Regards,

This is the maxiters parameter. However, if you adjust it (for transient say),
then if it needs more iterations than specified, it will reject the timestep and
take a shorter one.

For DC, it will fail to converge (and probably move onto the next homotopy
method) if it exceeds this number of iterations.

maxiters for tran is 5 by default. For dc it is 150.

Not really sure what  you're hoping to achieve. If it's dc you could set
homotopy=none, and reduce maxiters - but if it doesn't converge to the required
accuracy (set by reltol, vabstol, iabstol etc) within that number of iterations,
it will stop with a convergence failure.

I almost never touch maxiters.

Regards,

Andrew.
Thanks Andrew for your reply. I also have question about the required
accuracy. Independent of the original discussion, if accuracy is say
1e0-5, does it mean Spectre ensures all nodes have settled to that
accuracy? In other words, if my netlist has 50 nodes but I observe
only 10, does Spectre stops when all 50 nodes are accurate or only the
10 I observe?

Thanks in advance for your hint!
 
hamidrezah wrote, on 04/14/10 13:07:
On Apr 12, 12:19 pm, Andrew Beckett<andr...@DcEaLdEeTnEcTe.HcIoSm
wrote:
hamidrezah wrote, on 04/12/10 10:33:

To all Spectre experts:

Hello! Is there a way to limit the allowed simulation iterations
(Newton Raphson) in Spectre? Imagine I don't care about accuracy. I
just want to run simulation for a limited number of iterations (5, 10,
etc) and stop. Is it possible and if so, how?

Thanks!

Regards,

This is the maxiters parameter. However, if you adjust it (for transient say),
then if it needs more iterations than specified, it will reject the timestep and
take a shorter one.

For DC, it will fail to converge (and probably move onto the next homotopy
method) if it exceeds this number of iterations.

maxiters for tran is 5 by default. For dc it is 150.

Not really sure what you're hoping to achieve. If it's dc you could set
homotopy=none, and reduce maxiters - but if it doesn't converge to the required
accuracy (set by reltol, vabstol, iabstol etc) within that number of iterations,
it will stop with a convergence failure.

I almost never touch maxiters.

Regards,

Andrew.

Thanks Andrew for your reply. I also have question about the required
accuracy. Independent of the original discussion, if accuracy is say
1e0-5, does it mean Spectre ensures all nodes have settled to that
accuracy? In other words, if my netlist has 50 nodes but I observe
only 10, does Spectre stops when all 50 nodes are accurate or only the
10 I observe?

Thanks in advance for your hint!
The tolerances are for all nodes (and currents) - it's nothing to do with which
signals you save. If you think about it, nodes potentially are dependent upon
the results at other nodes - even if you're not looking at them, so it would not
make sense for a circuit simulator to only accurately solve the nodes you're
looking at.

Regards,

Andrew.
 
On Apr 14, 10:36 pm, Andrew Beckett <andr...@DcEaLdEeTnEcTe.HcIoSm>
wrote:
hamidrezah wrote, on 04/14/10 13:07:





On Apr 12, 12:19 pm, Andrew Beckett<andr...@DcEaLdEeTnEcTe.HcIoSm
wrote:
hamidrezah wrote, on 04/12/10 10:33:

To all Spectre experts:

Hello! Is there a way to limit the allowed simulation iterations
(Newton Raphson) in Spectre? Imagine I don't care about accuracy. I
just want to run simulation for a limited number of iterations (5, 10,
etc) and stop. Is it possible and if so, how?

Thanks!

Regards,

This is the maxiters parameter. However, if you adjust it (for transient say),
then if it needs more iterations than specified, it will reject the timestep and
take a shorter one.

For DC, it will fail to converge (and probably move onto the next homotopy
method) if it exceeds this number of iterations.

maxiters for tran is 5 by default. For dc it is 150.

Not really sure what  you're hoping to achieve. If it's dc you could set
homotopy=none, and reduce maxiters - but if it doesn't converge to the required
accuracy (set by reltol, vabstol, iabstol etc) within that number of iterations,
it will stop with a convergence failure.

I almost never touch maxiters.

Regards,

Andrew.

Thanks Andrew for your reply. I also have question about the required
accuracy.  Independent of the original discussion, if accuracy is say
1e0-5, does it mean Spectre ensures all nodes have settled to that
accuracy? In other words, if my netlist has 50 nodes but I observe
only 10, does Spectre stops when all 50 nodes are accurate or only the
10 I observe?

Thanks in advance for your hint!

The tolerances are for all nodes (and currents) - it's nothing to do with which
signals you save. If you think about it, nodes potentially are dependent upon
the results at other nodes - even if you're not looking at them, so it would not
make sense for a circuit simulator to only accurately solve the nodes you're
looking at.

Regards,

Andrew.
Actually, the right way to reduce number of iterations, (if reduced
accuracy is acceptable,) will be to increase VNTOL, ABSTOL and RELTOL,
instead of playing with maxiter (which will not help, as Andrew
pointed out.)
These tolerances tell the simulator how accurate the final voltages
and currents need to be. By default, RELTOL is .001 and VNTOL is 1e-6.
e.g for certain applications, you could set RELTOL=.01 and VNTOL=1e-3
to converge faster.

Regards,
Abha
 

Welcome to EDABoard.com

Sponsor

Back
Top