--- In LTspice@yahoogroups
>
> --- In LTspice@yahoogroups
> >
> > --- In LTspice@yahoogroups
> > >
> > > --- In LTspice@yahoogroups
>wrote:
> > > >
> > > > --- In LTspice@yahoogroups
> > > > <helmutsennewald@
> > > > >
> > > > > --- In LTspice@yahoogroups
><lisheng.qin@
> > >wrote:
> > > > > >
> > > > > > Dear Helmut,
> > > > > >
> > > > > > Sorry to call your attention directly. I ran into this
> > > > > > problem for some time. I have being trying to solve this
> > > > > > problem but failed. The binned model outside a sub-
>circuit
> > > > > > works so well and I just can not make it to work inside a
> > > > > > sub-circuit. I always think there is something wrong with
> > > > > > the way how I build the subcircuit. I just can not find
> > > > > > where it is.
> > > > > >
> > > > > > Could you please take some time look into this one?
> > > > > > I appreciate very much for your help.
> > > > > >
> > > > > > Best Regards,
> > > > > >
> > > > > > Lisheng
> > > > >
> > > > >
> > > > > Hello Lisheng,
> > > > >
> > > > > It worked when I moved the ".ends" to the line
>after "M1..."
> > > > > as shown below.
> > > > >
> > > > > Do you have any problems with this solution?
> > > > >
> > > > > Any answer from Mike o far?
> > > > >
> > > > > Best regards,
> > > > > Helmut
> > > > >
> > > > >
> > > > > .subckt sub_binned n1 n2 n3 n4 l='l' w='w'
> > > > > M1 n1 n2 n3 n4 Nsubbin w='w' l='l'
> > > > > *.param dw='1e-9/l*w'
> > > > > .ends sub_binned
> > > > > *
> > > > > .MODEL Nsubbin.1 NMOS (LEVEL = 14
> > > > > +Lmin = 40E-9 Lmax = 1E-6 Wmin =
>100E-
> > > > >9
> > > > > Wmax = 300E-9
> > > > > +VERSION = 4.6.0 BINUNIT = 1 PARAMCHK=
> > > > >1
> > > > > MOBMOD = 0
> > > > > +CAPMOD = 2 IGCMOD = 1 IGBMOD =
> > > > >1
> > > > > GEOMOD = 1
> > > > > +....)
> > > > > .MODEL Nsubbin.2 NMOS (LEVEL = 14
> > > > > +LMIN = 40E-9 LMAX = 1E-6 WMIN =
>300E-
> > > > >9
> > > > > WMAX = 600E-9
> > > > > +VERSION = 4.6.0 BINUNIT = 1 PARAMCHK=
> > > > >1
> > > > > +....)
> > > > >
> > > > Thanks Helmut.
> > > >
> > > > This way it does works, but not the way as I want it to work.
> > > > If ".ends" is located before model declaration, the model is
> > >actually
> > > > outside the subckt. Then the parameters declared in the
>subckt
> > >won't
> > > > work in the model.
> > > >
> > > > Sorry I didn't explain well. In the subckt, there is a
> > >paramter "dw"
> > > > which is commented out. Now suppose we still make the subckt
> > >having
> > > > this paramter, and include this paramter in the model(I put
>it
> > >after
> > > > Wmax for bin1 and after Wmin for bin2). If the model is
>inside
> > >the
> > > > subckt, simulator will recognize this "dw" but can not
>recognize
> > > > model "sub_binned"
>in
> > >the
> > > > model but recognize "sub_binned"
> > >followed.
> > > >
> > > > Let me explain why I want to do this. In schematic entry,
>while
> > > > instantiate this subckt, I will give some specific info (in
>this
> > >test
> > > > case, it is simply L and W). Base on these info, subckt will
>try
> > >to
> > > > variate the model parametr. In this test case, "dw" is
>decided
> > >base
> > > > on L and W. Then the Wman/Wmin are modified which means the
> > >boundary
> > > > between bins is changed.
> > > >
> > > > Hope I explain myself clearly.
> > > >
> > > > Thank you very much.
> > > >
> > > > Regards,
> > > >
> > > > Lisheng
> > > >
> > > > Here is code:
> > > >
> > > > .subckt sub_binned n1 n2 n3 n4 l='l' w='w'
> > > > M1 n1 n2 n3 n4 Nsubbin w='w' l='l'
> > > > .param dw='1e-9/l*w'
> > > > *
> > > > .MODEL Nsubbin.1 NMOS (LEVEL = 14
> > > > +Lmin = 40E-9 Lmax = 1E-6 Wmin = 100E-9 Wmax = '300E-9+dw'
> > > > +VERSION = 4.6.0 BINUNIT = 1 PARAMCHK= 1 MOBMOD = 0
> > > > +CAPMOD = 2 IGCMOD = 1 IGBMOD = 1 GEOMOD = 1
> > > > +....)
> > > > .MODEL Nsubbin.2 NMOS (LEVEL = 14
> > > > +LMIN = 40E-9 LMAX = 1E-6 WMIN = '300E-9+dw' WMAX = 600E-9
> > > > +VERSION = 4.6.0 BINUNIT = 1 PARAMCHK= 1
> > > > +....)
> > > > .ends sub_binned
> > > >
> > >
> > >
> > > Lisheng,
> > > I think I understand what you want to do BUT I'm not so sure
>that
> > > the way you are trying to do this is the best solution!
> > >
> > > I would suggest that you simply treat it as another case in
> > >the .Lib
> > > selection. This is the standard way that most binned models
>work for
> > > evaluating (typical, FF, FS,...), so you would just have some
>extra
> > > cases for the model you wish to call such as FF_dw.
> > >
> > >
> > > Look at the following section for the SS lib of a binned model,
> > >with a
> > > library named 'logic.l' In this case dw of the NMOS is
>different for
> > > the FF, TT and SS cases.
> > >
> > >
> > > .LIB SS
> > > .param toxn = 7.8e-3 toxp = 8.1e-3
> > > +dxl = 4e-8 dxw = -6e-8
> > > +delvton = 0.1 delvtop = -0.1
> > > +cjn = 1.103053e-3 cjp = 1.573638e-3
> > > +cjswn = 3.308757e-10 cjswp = 4.4833327e-10
> > > +cgon = 2.089206e-10 cgop = 3.037739e-10
> > > +cjgaten = 2.102003e-10 cjgatep = 8.4528642e-11
> > > +hdifn = 3.8e-07 hdifp = 3.8e-07
> > > .lib 'logic.l' MOS
> > > .ENDL SS
> > >
> > > regards
> > > Robert
> > >
> > Thanks Robert.
> >
> > You are right. This is one way to realize a general parameter
> > variation. It is very efficient when we run simulations on
>corners.
> > That is, all the MOS in 'logic.l' will be affected in the same
>way
> > with the same amplitude.
> >
> > On the other hand, there is situation when we want each
>transistor to
> > be affected differently according to its own specific geometry
>and
> > biasing condition. For example, when we want mismatch infomation
> > between transistors, each transistor may have different variation
> > from its nominal value on certain parameters. Like the "dw" in my
> > test case, it can be a variable based on W/L and a gaussian
> > distributed random number.
> >
> > Regards,
> >
> > Lisheng
> >
>
> Lisheng,
> It seems to me that you don't want a different model, what you
>want
> is a paramameter that is interpreted by the subcircuit call to the
> model, which is very easy. All you do is to make the Fets subckt
>calls
> (below NCH is the schematic name for the Fet model, but nmos_1p2 is
> the model name) this takes whatever dx parameter is passed and
> modifies L by that amount. Make sure you pass the M='M' because
> LTspice does not understand 'M' as a subcircuit multiplier.
>
> .SUBCKT NCH D G S NBKG L=0.13U W=1U GEO=0 dx=1 M=1
> M0 D G S NBKG nmos_1p2 L='L+dx' W='W' GEOMOD='GEO' M='M'
> .ENDS
>
> br/
> Robert
>
Thanks, Robert.
This really get around the problem I listed. It happens because when
a transistor is instantiated, W and L must be given. In your example
they are given by L (from subckt instantiation) and dx (by parameter
inside subckt). There is still a nuance diffence.That is, W and L
will be changed instead bin boundary being changed. But let's forget
about this.
Now let's think about another model parameter "VTH0". Each bin of the
model has its own VTH0. When I call a MOS transistor, I don't know
which bin this MOS will fall into and what is the value of VTH0 of
that bin. (Actually if I check manually for each MOS,I can find out
which bin it will fall into. But in this case binned model does not
have any sense because we expect simulator can decide which bin to
use) Then I have a parameter "delta_vth0" (in subckt) which is based
on geometry and a gaussian distributed random number (for mismatch
analysis). If binned model inside subckt works, then I can simply
make each bin model to have a VTHO as "VTH0=<nominal value of this
specific bin> + delta_vth0 ". Here <nominal value of this specific
bin> is a value from foundry and is different from that in other
bins.
I think for a long time trying to get around of this by the way like
what you show me but still have no clue. So I depend on the pool of
great minds of our message board. If binned model inside subckt is
supported, everything will be OK. I sent Mike a email asking him if
he can look into this, but still have not got response.
Thank you very much Robert. You really triger me of some ideas. I
appreciate it.
Lisheng
Change settings via the Web (Yahoo! ID required)
Change settings via email: Switch delivery to Daily Digest | Switch format to Traditional
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe
__,_._,___




Tidak ada komentar:
Posting Komentar