The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl
Simulators >> Circuit Simulators >> transient noise with spectre: Assertion failed
https://designers-guide.org/forum/YaBB.pl?num=1148378632

Message started by Michiel on May 23rd, 2006, 3:03am

Title: transient noise with spectre: Assertion failed
Post by Michiel on May 23rd, 2006, 3:03am

Dear all,

Using spectre 6.0.1.127, I would like to do a transient noise simulation. I have successfully simulated a circuit consisting of two resistors, but I have been unable to simulate a circuit consisting of one nmost and one resistor (simple voltage amplifier).

Some simulation settings:
-Transient analysis, stop time 10n
-Moderate accuracy
-noiseseed 1
-noisefmax 10G
-noisescale 1

Some simulator output:
Internal error found in spectre at time = 100 ps during transient analysis `tran'.  Please run `getSpectreFiles' or send the netlist, the spectre log file, the behavioral model files, and any other information that can help identify the problem to support@cadence.com.
   Assertion failed in file `ac.c' at line 6074.
   Assertion failed.

Does anyone have a suggestion for successfully running a simulation like this?

Thank you

Title: Re: transient noise with spectre: Assertion failed
Post by Geoffrey_Coram on May 24th, 2006, 4:42am

Wow, that's a nifty test case, only 2 elements and you get an assertion failure.  Send it in to tech support!

Title: Re: transient noise with spectre: Assertion failed
Post by sheldon on May 30th, 2006, 4:42am

Michiel,

  Could you post the netlist or the model file? This results does
not seem reasonable and there may be an issue with the input
file. I have run more complex circuits, Sample and Holds,
Sigma-Delta Modulators, etc. without any issues.

                                                    Best Regards,

                                                       Sheldon  

Title: Re: transient noise with spectre: Assertion failed
Post by Michiel on May 30th, 2006, 5:26am

At this moment, my hypothesis is that my problem arises from a model file that is not sufficiently compatible with the simulator.

This is my netlist. I cannot include the model file here.

// Generated for: spectre
// Generated on: May 24 17:08:40 2006
// Design library name: adc
// Design cell name: testtnoise
// Design view name: schematic
simulator lang=spectre
global 0
include "/misc/icetux6/cadappl/ictools/cadence_ic/5.1.41.USR2/tools/dfII/samples/artist/ahdlLib/quantity.spectre"
include "/misc/icetux6/cadappl/iclibs/CMOS090/PcCMOS090T6M1TPTP/3.1/lib/CMOS090T6M1T/../../tools/models/LP_50A/mm11/spectre/c1/include_nominal.scs"

// Library name: adc
// Cell name: testtnoise
// View name: schematic
MN0 (net09 net016 0 0) nsvt w=0.12 l=0.1 nfing=1 mult=1 srcefirst=1 \
       mismatch=1
V0 (net016 0) vsource dc=1 type=dc
V1 (net11 0) vsource dc=1.2 type=dc
R1 (net11 net09) resistor r=1K
simulatorOptions options 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
tran tran stop=10n errpreset=moderate noiseseed=1 noisefmax=10G \
   noisescale=1 write="spectre.ic" writefinal="spectre.fc" \
   annotate=status maxiters=5
finalTimeOP info what=oppoint where=rawfile
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

Title: Re: transient noise with spectre: Assertion failed
Post by bernd on May 30th, 2006, 7:20am

This is probably an issue for Cadence Support.
I personally don't think that the people in this forum can debug this.

Bernd

Title: Re: transient noise with spectre: Assertion failed
Post by sheldon on May 30th, 2006, 8:38am

Bernd,

  You are correct, in general it is best to let Cadence support deal
with the issue.

Michiel,

  Are the units of length and width correct? If I remember correctly
since the units of scale are set to 1, the gate length is 0.1m and the
gate width is 0.12m. Extremely large device sizes can cause the
simulator to fail. If updating l and w does not fix the issue, then
it would be best to contact Cadence support.

                                                         Best Regards,

                                                            Sheldon

Title: Re: transient noise with spectre: Assertion failed
Post by Michiel on May 31st, 2006, 1:27am

Today I successfully simulated the same circuit with a different nmos model (different factory). My conclusion is that the model I use is indeed insufficiently compatible with the simulator. I am still thinking about what to do next in my project.

Thank you for your help!
Michiel

btw,  w=0.12 l=0.1 is a minimum size transistor. Those dimensions are in um.

Title: Re: transient noise with spectre: Assertion failed
Post by Geoffrey_Coram on May 31st, 2006, 9:39am

Michiel -
I think Sheldon is correct, that the netlist as you provided specifies the dimensions in meters, not um.

Could you try changing it to
MN0 (net09 net016 0 0) nsvt w=0.12e-6 l=0.1e-6

Also, from the path you showed, models/LP_50A/mm11: does this use Mos Model 11 from Philips?


I still think you should send this in to Cadence support, because the assertion failure indicates some serious problem down in the code -- possibly with the SimKit code from Philips that is used to evaluate the MM11 model.

Title: Re: transient noise with spectre: Assertion failed
Post by Michiel on May 31st, 2006, 10:21am


Geoffrey_Coram wrote on May 31st, 2006, 9:39am:
Michiel -
I think Sheldon is correct, that the netlist as you provided specifies the dimensions in meters, not um.

Could you try changing it to
MN0 (net09 net016 0 0) nsvt w=0.12e-6 l=0.1e-6

It is the minimum size I can enter in Virtuoso. I changed the values directly in the netlist, triggering some fatal errors during hierarchy flattening.


Geoffrey_Coram wrote on May 31st, 2006, 9:39am:
Also, from the path you showed, models/LP_50A/mm11: does this use Mos Model 11 from Philips?
As far as I know it does.


Geoffrey_Coram wrote on May 31st, 2006, 9:39am:
I still think you should send this in to Cadence support, because the assertion failure indicates some serious problem down in the code -- possibly with the SimKit code from Philips that is used to evaluate the MM11 model.
I will discuss this option with my supervisors. (I am a student at Twente University working on my Master’s project.)

Michiel

Title: Re: transient noise with spectre: Assertion failed
Post by Geoffrey_Coram on Jun 1st, 2006, 4:21am


Michiel wrote on May 31st, 2006, 10:21am:
It is the minimum size I can enter in Virtuoso. I changed the values directly in the netlist, triggering some fatal errors during hierarchy flattening.


OK, perhaps the model card is set up to convert to um.


Quote:

Geoffrey_Coram wrote on May 31st, 2006, 9:39am:
Also, from the path you showed, models/LP_50A/mm11: does this use Mos Model 11 from Philips?
As far as I know it does.


Can you figure out which MOS11 it uses?  The possibilities are mos1100, mos1100e, mos1101e, mos1101et, mos1102e, mos1102, ... mos11021t.

I just set up a test case with mos11011
model nsvt mos11011
which then uses the default parameters for the model, and I didn't see any problems.

If you can copy the model file to your local directory, you might try deleting half of the parameters and then seeing if it still errors out.  Or deleting the noise parameters (ponfa, plnfa, ...) and seeing if that is the issue.

Title: Re: transient noise with spectre: Assertion failed
Post by Michiel on Jun 1st, 2006, 8:44am

Geoffrey, thank you for your effort!


Geoffrey_Coram wrote on Jun 1st, 2006, 4:21am:
Can you figure out which MOS11 it uses?  The possibilities are mos1100, mos1100e, mos1101e, mos1101et, mos1102e, mos1102, ... mos11021t.

I use mos11021.


Geoffrey_Coram wrote on Jun 1st, 2006, 4:21am:
I just set up a test case with mos11011
model nsvt mos11011
which then uses the default parameters for the model, and I didn't see any problems.

If you can copy the model file to your local directory, you might try deleting half of the parameters and then seeing if it still errors out.  Or deleting the noise parameters (ponfa, plnfa, ...) and seeing if that is the issue.
First I will try if I can get hold of a different version. Later I can try to modify the parameter list.

Michiel

Title: Re: transient noise with spectre: Assertion failed
Post by Geoffrey_Coram on Jun 1st, 2006, 9:56am

With mos11021, the noise parameter nfa is computed from ponfa, pwnfa, plnfa, pwlnfa.  I wonder if it ends up having a negative value after the scaling rules are applied.

In my simulator, I get a warning that the value is outside the range, and nfa is clipped to zero.  If nfa is not clipped, you might get a negative number in a square root.

Title: Re: transient noise with spectre: Assertion failed
Post by Michiel on Jul 13th, 2006, 2:50am

The problem appears to be fixed in a 6.0.2 version of mmsim,  although I have not been able to verify this yet.

By the way, I use the philips simkit and the parameter values provided by philips for their process.

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