I am trying to simulate a very simple circuit (no AHDL, VerilogA) with the TRAN noise analysis using Spectre TRAN noise analysis (MMSIM versions 12.10.347 and 12.10.402 tried).
During the course of the simulation, I get a warning message:
WARNING (SPECTRE-16780): LTE tolerance was temporarily relaxed to step over a discontinuity in the signal
After this point, nothing further happens and I can see that the spectre job is dead. Investigating further with a trace program tells me that a memory fault has occurred, e.g.
/tools/cds/MMSIM/12.10.402/tools/bin/spectre: wait: 18468: Memory fault
Interestingly, this cannot be due to insufficient memory as:
1) That one usually elicits an explicit "memory exhausted" error from Spectre, and
2) The trace program tells me that Spectre was using upto 1 GB RAM but I had allocated 10 GB for it (and later even 40 GB in order to figure out if there might be peak memory usage at much higher levels that my trace program missed as I strobe only every few seconds).
Any useful suggestions to solve the problem would be most welcome. I do not wish to use PSS/PNOISE analysis as that usually takes longer and I can only look at one output at a time there.
"Memory Fault" is generally a bug in a program which is like a "bus error" or "segmentation fault" - it's trying to access a bit of memory outside of its memory space. Note that allocating 10G or 40G won't help unless you're running in 64 bit mode (not that I think this is necessarily going to help you here) - in 32 bit mode, spectre will only be able to access less than 4Gbytes (2^32).
Without more details of your circuit, it's going to be hard to tell what the problem is - it suggests that your circuit has some sensitivity to a discontinuity - maybe because of a flaw in the transistor models. Check for having large inductors in your circuit, or insufficient capacitance (sometimes setting cmin=1f or similar on the transient analysis can help smooth out such discontinuities).
However, I'd recommend you contact customer support so that we can take a look at your circuit/models together. Generally such problems are indeed due to the circuit or models though, rather than the simulator (which generally is pretty good at handling discontinuities, which are a big problem for circuit simulators).
BTW, pnoise from ADE can measure the noise at multiple places now (it runs a single pss, and then several pnoise analyses).
1) Thanks! I am running the 64-bit version of Spectre but I suspect just like you that this is not a typical out-of-memory error.
2) There are no inductors in the circuit.
3) I have got cmin turned on but not set = 1fF but 1aF. I can try to increase it to 10aF but 1f would be too much for me.
4) I don't see the option for measuring noise at multiple places with the version of ADE-L I am using, but anyway, I did try using multiple pnoise statements. It works that way but seems just an enormous waste of CPU time given that it is much slower than TRAN noise. I suppose I'll just have to live with that.
5) I will try to send out a test case via our rep. I doubt if I am allowed to directly send over data outside the company.
An update here. I decided to roll back to an older MMSIM version (10.11.235) and TRAN noise seems to run just fine, although I still need to look at all the data. The warning regarding convergence issues pops up even now but the simulation continues without getting terminated.
Andrew: In this case, I think we cannot speak of the models at fault as I have not touched anything else, except the MMSIM version. What do you think?
It can still be the models at fault - it may just be that due to various numerical differences between the two versions you "got away with it" in the older version. Or it may be a bug - that's why you should contact customer support.