Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

monte carlo simulation in tanner............plz help me

Status
Not open for further replies.

neerav_mehan

Newbie level 6
Joined
Jan 25, 2010
Messages
14
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Location
india
Activity points
1,361
hello ..................

i am writing the netlist of a inverter in tsice.... i want to run monte carlo simulation to measure the mean of the falltime, by taking the effect of threshold voltage variation.

...
* Main circuit: invert
c2 out Gnd 800ff
.include ml2_125mc.md
m1n out in Gnd Gnd nmos L=5u W=8u
m1p out in Vdd Vdd pmos L=5u W=12u
.measure tran falltime trig v(out) val=2.8 fall=1 targ v(out) val=0.2 fall=1
.param vto_n=unif(0.622490, 0.5, 1) vto_p=unif(-0.63025, 0.5, 1)
.tran 2n 600n sweep monte=10
.print tran in out
vdd Vdd Gnd 3.0
vin in Gnd pwl (0ns 0V 100ns 0V 105ns 3V 200ns 3V 205ns 0V 300ns
+ 0V 305ns 3V 400ns 3V 405ns 0V 500ns 0V 505ns 3V 600ns 3V)
* End of main circuit: invert

..........
Thus i have define the threshold parameter as a uniform distribution. According to this netlist threshold voltage should sweep with relative variation of 50%. But the simulator is taking only one value of the threshold voltage which is defined by the model file.

can anyone tell me is there anything wrong with this coding????? why simulator is not varying the parameter value??????

plz help me....
thanx in advance....
 

I don't normally use Tanner, although I have done briefly. I cannot see from your netlist how the Vto in the model file would be overridden by what you have done. Is Vto_n defined as a global parameter in the model file?

Keith
 

thanx for ur reply.........

i download model file from mosis.com and havnt changed any thing in that. actually i dont know how can i define vto_n as a global parameter in the model file.
i am attaching the model file. if u can plz tell me how can i define that??????

thanx a lot......
 

Do you have monte carlo models? Some foundries only supply them for cadence though.

I would edit the model to

vth0={vth_n}

instead if a fixed number and try that. I am not sure if the curly brackets are essential.

Keith
 

thanx keith.......
i have a monte carlo model file for cadence but that does not work with tanner

.........i have already tried vtho=vth_n .....but it is not working.....

can u suggest something else ????
thanx a lot
 

What I suggested should vary vth0, but it may make all NMOS have the same vth0. Try embedding the unif(0.6..... equation directly into the model instead of with .param. Make sure you keep a copy of your original models files. Also make sure you are using the modified models (put a deliberate error in it and make sure the simulation reports a problem).

Unfortunately I am not near my computer over Easter so am doing this from memory, otherwise I could look at my own models. I have created Monte Carlos Hspice models using data from Spectre and Eldo models before.

Keith
 

thanx for ur help keith and sorry to disturb u again ........
but following errors are coming during simulation after using the unif keyword in the model...............
Unknown parameter 'unif' found in expression unif
Fatal Error : Model NMOS - Can't evaluate value for parameter -> "vth0=unif"
 

Try putting curly brackets round the equation so

vth0 = {unif(0.6..... etc.

Keith
 

thanx keith....

i have changed the model like this...
vth0={vt0_n}
...and it works....ur idea of curly brackets is really helpful for me...

thanx a lot...

Added after 7 minutes:

i have one more question...

do u have any idea that how can i measure the variance of offfset voltage .....i mean is their any direct command for this in spice?????

thanx in advance...
 

The curly brackets are used where the simulator expects a number but you aren't giving it one. Functions in curly brackets are evaluated first and turned in to numbers before the simulation runs. At least I think that is correct, as best as I can remember.

neerav_mehan said:
do u have any idea that how can i measure the variance of offfset voltage .....i mean is their any direct command for this in spice?????

thanx in advance...

I am not sure what you mean. You should be able to plot a histgram of the distribution (spread) of any simulation measurement, if that is what you mean.

That would be more of a Tanner function than a true Spice one, so I am not sure of the command(s) to do it.

Keith.
 

thanx keith for ur help...
i go through the tanner manual ... and got my ans.
there is a command to measure rms (variance) ......
 

That's good. While Spice is almost a standard, adding schematics and waveform viewing/measurement is totally different from one software supplier to the next.

Keith
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top