why can't I sweep the threshold voltage using OCEAN?

C

comp.cad.cadence

Guest
Hello, everyone

I tried to sweep the thershold voltage of a transistor against its Vgs
in DC sweep. But it failed. What I did is like:

1. set the value for "vgs"
desVar( "vgs" 1)

2.set the DC analysis
analysis('dc ?saveOppoint t ?param "vgs" ? start "0" ?stop "1.8")

3.plot
selectResults( 'dcOpInfo )
plot( pv("/TN0" "vth")

But the simulaton results tells that the "wave1 is not a waveform
object that can be displayed and will be deleted automatically. name:
"0.449******" " It looks like that the result is just a single value
instead of a vector. So it can't be displayed. But I think that what I
want should be reasonable technically. Anyone can give give some
comments? Thanks a lot!

-Andy
 
Hi Andy,

I am not sure why do you want to sweep threshold voltage (vth). vth is
a process parameter, it depend on a certain process technology and
length, width of the transistor. You can NOT sweep that because it is
fixed for a certain transistor if you don't consider mismatch or
stastical variations.

The Ocean script you have is sweep vgs not vth.

JDD
 
On 9 Jan 2006 20:01:21 -0800, "comp.cad.cadence" <wudhead@yahoo.com> wrote:

Hello, everyone

I tried to sweep the thershold voltage of a transistor against its Vgs
in DC sweep. But it failed. What I did is like:

1. set the value for "vgs"
desVar( "vgs" 1)

2.set the DC analysis
analysis('dc ?saveOppoint t ?param "vgs" ? start "0" ?stop "1.8")

3.plot
selectResults( 'dcOpInfo )
plot( pv("/TN0" "vth")

But the simulaton results tells that the "wave1 is not a waveform
object that can be displayed and will be deleted automatically. name:
"0.449******" " It looks like that the result is just a single value
instead of a vector. So it can't be displayed. But I think that what I
want should be reasonable technically. Anyone can give give some
comments? Thanks a lot!

-Andy
Yes, but by accessing the dcOpInfo, you're not accessing the results of the dc
sweep, but the dc operating poiint which is done before you start the sweep -
which is why you get a scalar value.

What you need to do is create a file, which contains:

save TN0:vth

or even:

save TN0:eek:ppoint

and specify this as a model file or include file in your OCEAN script.

Then you can do:

selectResults('dc)
plot(getData("TN0:vth"))

for example.

The save statement is needed because operating point data is not saved by
default in swept analyses (like dc, transient, etc) because of the volume of
data it would produce (and most of the time people don't want to look at it).

Another alternative is to do a paramAnalysis() of vgs - and then the pv()
approach with dcOpInfo that you're using would return a waveform - but
this is less efficient than doing it via a dc sweep directly as shown above.

Regards,

Andrew.
 
Hi, Andrew

Thanks for your reply. But frankly, I haven't catch up with what you
said there. I'm still very green with OCEAN :(
Could you pls explain more at these points:
1. ...create a file, which contains: save TN0:vth
2. ...specify this as a model file or include file ... ?

rgds

-Andy
 
Hi, Andrew

Thanks for your reply. But frankly, I haven't catched up with what you
said there. I'm still very green with OCEAN :(
Could you pls explain more at these points:
1. ...create a file, which contains: save TN0:vth
2. ...specify this as a model file or include file ... ?


rgds


-Andy
 

Welcome to EDABoard.com

Sponsor

Back
Top