measure max gm in a mosfet simulation

Y

Yahav Bar yosef

Guest
Hi all,

I'm running simulations on MOSFETs using Spectre, and would like to
measure the max Gm of the MOSFET for each channel length (L). In
Hspice it's quite easy using the .measure and find commands, but I
can't find how to do it in Spectre.
I'm using just Spectre and inputing netlists (without the whole GUI
env.)
I also tried a bit to use 'oceanEval' but didn't find any good
documentation on it.
Thanks for your help,
Yahav
 
I found out how to do all this things using Ocean

If someone is interested in all this things - you can post a follow up
and i'll post my scripts...


Yahav Baryosef



yahavbaryosef@hotmail.com (Yahav Bar yosef) wrote in message news:<f98582b7.0401250320.14413ba4@posting.google.com>...
Hi all,

I'm running simulations on MOSFETs using Spectre, and would like to
measure the max Gm of the MOSFET for each channel length (L). In
Hspice it's quite easy using the .measure and find commands, but I
can't find how to do it in Spectre.
I'm using just Spectre and inputing netlists (without the whole GUI
env.)
I also tried a bit to use 'oceanEval' but didn't find any good
documentation on it.
Thanks for your help,
Yahav
 
Yahav:
I am interested. Please post your OCEAN scripts.
---
Erik

yahavbaryosef@hotmail.com (Yahav Bar yosef) wrote in message news:<f98582b7.0402090356.2e9a2af6@posting.google.com>...
I found out how to do all this things using Ocean

If someone is interested in all this things - you can post a follow up
and i'll post my scripts...


Yahav Baryosef



yahavbaryosef@hotmail.com (Yahav Bar yosef) wrote in message news:<f98582b7.0401250320.14413ba4@posting.google.com>...
Hi all,

I'm running simulations on MOSFETs using Spectre, and would like to
measure the max Gm of the MOSFET for each channel length (L). In
Hspice it's quite easy using the .measure and find commands, but I
can't find how to do it in Spectre.
I'm using just Spectre and inputing netlists (without the whole GUI
env.)
I also tried a bit to use 'oceanEval' but didn't find any good
documentation on it.
Thanks for your help,
Yahav
 
Apologies for the very late reply on this. The equivalent of .measure in spectre
is "spectreMDL" (Measurement Description Language). Here's an example netlist:

*

simulator lang=spice

..model nch nmos level=1 vto=1 kp=16u gamma=1.3 lambda=0.01
+ phi=0.7 pb=0.80 mj=0.5 mjsw=0.3 cgbo=200p cgso=350p cgdo=350p
+ cj=300u cjsw=500p ld=0.1u tox=80n
+ af=1 kf=3.1e-24


simulator lang=spectre

parameters channel=0.8u
m1 (drain gate 0 0) nch w=20u l=channel
vgs (gate 0) vsource dc=3
vds (drain 0) vsource dc=1

simulator lang=spectre

save m1:gm

//vgssweep sweep dev=vgs param=dc start=0 stop=5 step=0.5 {
dcAnalysis dc dev=vds start=0 stop=5 step=0.1
//}

And here's the MDL file:

//

alias measurement findgm {
run dcAnalysis
export real maxgm=max(m1:gm)
}

foreach channel from swp(start=0.5u, stop=10u, step=0.5u) {
run findgm
}

I then ran:

spectremdl -batch findgm.mdl -design findgm.scs

And you get the following output file, findgm.measure:

Exported variables from PSF results directory: findgm.raw

date : 5:13:57 PM, Wed Feb 18, 2004
design : *
simulator : spectre


Swept Measurements :
Measurement Name : findgm
Analysis Type : dc
maxgm channel @ 5e-07 = 0.00224
maxgm channel @ 1e-06 = 0.00084
maxgm channel @ 1.5e-06 = 0.000516923
maxgm channel @ 2e-06 = 0.000373333
maxgm channel @ 2.5e-06 = 0.000292174
maxgm channel @ 3e-06 = 0.00024
maxgm channel @ 3.5e-06 = 0.000203636
maxgm channel @ 4e-06 = 0.000176842
maxgm channel @ 4.5e-06 = 0.000156279
maxgm channel @ 5e-06 = 0.00014
maxgm channel @ 5.5e-06 = 0.000126792
maxgm channel @ 6e-06 = 0.000115862
maxgm channel @ 6.5e-06 = 0.000106667
maxgm channel @ 7e-06 = 9.88235e-05
maxgm channel @ 7.5e-06 = 9.20548e-05
maxgm channel @ 8e-06 = 8.61538e-05
maxgm channel @ 8.5e-06 = 8.09639e-05
maxgm channel @ 9e-06 = 7.63636e-05
maxgm channel @ 9.5e-06 = 7.22581e-05
maxgm channel @ 1e-05 = 6.85714e-05

Of course, you can do fancier things than this - including automatic stopping of
simulations when results have been found, searching for results etc.

It's all covered in the Spectre MDL User Guide and Reference in cdsdoc.

Regards,

Andrew.

On 25 Jan 2004 03:20:09 -0800, yahavbaryosef@hotmail.com (Yahav Bar yosef)
wrote:

Hi all,

I'm running simulations on MOSFETs using Spectre, and would like to
measure the max Gm of the MOSFET for each channel length (L). In
Hspice it's quite easy using the .measure and find commands, but I
can't find how to do it in Spectre.
I'm using just Spectre and inputing netlists (without the whole GUI
env.)
I also tried a bit to use 'oceanEval' but didn't find any good
documentation on it.
Thanks for your help,
Yahav
--
Andrew Beckett
Senior Technical Leader
Custom IC Solutions
Cadence Design Systems Ltd
 
Thank you Andrew.
While waiting for your answer to arrive, I did a little invesitgation
of Ocean scripts - and found it extremly usefull for me - so
eventually I did all my measurments using Ocean. It seems odd ,though,
I had to include an external scs file which contained only my "save"
commands, and couldn't do it from inside the script.
But none the less, it turned out to be much more elegant and straight
forwrd to do it this way.

Yahav.

Andrew Beckett <andrewb@DELETETHISBITcadence.com> wrote in message news:<3c7730l8veb163vvmecpfun32k57op04vt@4ax.com>...
Apologies for the very late reply on this. The equivalent of .measure in spectre
is "spectreMDL" (Measurement Description Language). Here's an example netlist:

*

simulator lang=spice

.model nch nmos level=1 vto=1 kp=16u gamma=1.3 lambda=0.01
+ phi=0.7 pb=0.80 mj=0.5 mjsw=0.3 cgbo=200p cgso=350p cgdo=350p
+ cj=300u cjsw=500p ld=0.1u tox=80n
+ af=1 kf=3.1e-24


simulator lang=spectre

parameters channel=0.8u
m1 (drain gate 0 0) nch w=20u l=channel
vgs (gate 0) vsource dc=3
vds (drain 0) vsource dc=1

simulator lang=spectre

save m1:gm

//vgssweep sweep dev=vgs param=dc start=0 stop=5 step=0.5 {
dcAnalysis dc dev=vds start=0 stop=5 step=0.1
//}

And here's the MDL file:

//

alias measurement findgm {
run dcAnalysis
export real maxgm=max(m1:gm)
}

foreach channel from swp(start=0.5u, stop=10u, step=0.5u) {
run findgm
}

I then ran:

spectremdl -batch findgm.mdl -design findgm.scs

And you get the following output file, findgm.measure:

Exported variables from PSF results directory: findgm.raw

date : 5:13:57 PM, Wed Feb 18, 2004
design : *
simulator : spectre


Swept Measurements :
Measurement Name : findgm
Analysis Type : dc
maxgm channel @ 5e-07 = 0.00224
maxgm channel @ 1e-06 = 0.00084
maxgm channel @ 1.5e-06 = 0.000516923
maxgm channel @ 2e-06 = 0.000373333
maxgm channel @ 2.5e-06 = 0.000292174
maxgm channel @ 3e-06 = 0.00024
maxgm channel @ 3.5e-06 = 0.000203636
maxgm channel @ 4e-06 = 0.000176842
maxgm channel @ 4.5e-06 = 0.000156279
maxgm channel @ 5e-06 = 0.00014
maxgm channel @ 5.5e-06 = 0.000126792
maxgm channel @ 6e-06 = 0.000115862
maxgm channel @ 6.5e-06 = 0.000106667
maxgm channel @ 7e-06 = 9.88235e-05
maxgm channel @ 7.5e-06 = 9.20548e-05
maxgm channel @ 8e-06 = 8.61538e-05
maxgm channel @ 8.5e-06 = 8.09639e-05
maxgm channel @ 9e-06 = 7.63636e-05
maxgm channel @ 9.5e-06 = 7.22581e-05
maxgm channel @ 1e-05 = 6.85714e-05

Of course, you can do fancier things than this - including automatic stopping of
simulations when results have been found, searching for results etc.

It's all covered in the Spectre MDL User Guide and Reference in cdsdoc.

Regards,

Andrew.

On 25 Jan 2004 03:20:09 -0800, yahavbaryosef@hotmail.com (Yahav Bar yosef)
wrote:

Hi all,

I'm running simulations on MOSFETs using Spectre, and would like to
measure the max Gm of the MOSFET for each channel length (L). In
Hspice it's quite easy using the .measure and find commands, but I
can't find how to do it in Spectre.
I'm using just Spectre and inputing netlists (without the whole GUI
env.)
I also tried a bit to use 'oceanEval' but didn't find any good
documentation on it.
Thanks for your help,
Yahav
 

Welcome to EDABoard.com

Sponsor

Back
Top