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. |