The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl
Simulators >> Circuit Simulators >> Spectre transient bogged down with minuscule steps
https://designers-guide.org/forum/YaBB.pl?num=1150982476

Message started by manyoki on Jun 22nd, 2006, 6:21am

Title: Spectre transient bogged down with minuscule steps
Post by manyoki on Jun 22nd, 2006, 6:21am

Happened to me more than once, and it is very annoying.  I am running a batch of transients in Spectre.  After the last run is over, a postprocessing routine should take over the results and do some number crunching.  This postprocessing works even if some of the runs failed, their results will be skipped and a fail flag will be raised.  However, if a run does not finish at all but gets stuck, the whole batch jobe is delayed until I manually kill the spectre process that got stuck.
The failing run that I have been seeing reaches a point of time during the transient where the stepsize just becomes so small that virtually no progress is made.  Here is an excerpt from the spectre.out logfile  (pay attention to the line number in the first column):

It starts as:
  125          tran: time = 166.7 ps    (676 m%), step = 8.333 ps    (33.8 m%)
  126          tran: time = 304.7 ps    (1.24 %), step = 2.587 ps    (10.5 m%)
  127          tran: time = 463.6 ps    (1.88 %), step = 2.754 ps    (11.2 m%)
  128          tran: time = 625 ps      (2.53 %), step = 8.333 ps    (33.8 m%)
  129          tran: time = 1 ns        (4.05 %), step = 80 as        (324 n%)
  130          tran: time = 1 ns        (4.05 %), step = 80 as        (324 n%)
  131          tran: time = 1 ns        (4.05 %), step = 80 as        (324 n%)
  132          tran: time = 1 ns        (4.05 %), step = 20 as       (81.1 n%)
  133          tran: time = 1 ns        (4.05 %), step = 40 as        (162 n%)
  134          tran: time = 1 ns        (4.05 %), step = 80 as        (324 n%)
  135          tran: time = 1 ns        (4.05 %), step = 80 as        (324 n%)
  136          tran: time = 1 ns        (4.05 %), step = 80 as        (324 n%)
Then continues until I kill it manually:
 4951          tran: time = 1.007 ns    (4.08 %), step = 20 as       (81.1 n%)
 4952          tran: time = 1.007 ns    (4.08 %), step = 20 as       (81.1 n%)
 4953          tran: time = 1.007 ns    (4.08 %), step = 80 as        (324 n%)
 4954          tran: time = 1.007 ns    (4.08 %), step = 80 as        (324 n%)
 4955          tran: time = 1.007 ns    (4.08 %), step = 80 as        (324 n%)
 4956      Spectre received SIGINT.
 4957      Saving the states into file...
 4958      
 4959      Killed by user.
 4960      
 4961      Aggregate audit (8:52:12 AM, Thur Jun 22, 2006):
 4962      Time used: CPU = 53.2 ks (14h 46m 22s), elapsed = 53.2 ks (14h 47m 13s), util. = 99.9%.
 4963      Virtual memory used = 109 Mbytes.
 4964      spectre completes with 0 errors, 7084 warnings, and 154 notices.

How do I opt out automatically from a sim like this?  Is there an option to catch this? Is it possible to write a veriloga module to monitor the timesteps?

Any advice is appreciated.

Zoltan

Title: Re: Spectre transient bogged down with minuscule s
Post by Ken Kundert on Jun 23rd, 2006, 12:05am

Do you know the cause of the small steps. Does the behavior of the circuit change, perhaps it is breaking out in a parasitic oscillation. If it is not the circuit behavior, it might be trapezoidal ringing. You might want to try setting method=gear2ony on the transient options.

-Ken

Title: Re: Spectre transient bogged down with minuscule s
Post by manyoki on Jun 23rd, 2006, 9:48am

Thanks, Ken. The netlist is very big.  I couldn't locate the origin of the problem.  The method is set to "traponly".  I will try with "gear2only".  I'll report back.
Zoltan

Title: Re: Spectre transient bogged down with minuscule s
Post by manyoki on Jun 23rd, 2006, 9:51am

In the meantime I succeded in writing a piece of code to catch the condition and break down the sim.  What remains is then the origin of the small timesteps.

Zoltan

Title: Re: Spectre transient bogged down with minuscule s
Post by manyoki on Jun 23rd, 2006, 11:48am

It seems gear2only helped.  There must have been a reason that I chose traponly in the first place, though.
Zoltan

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