Updated documentation to reflect changes in capacitor model.

This commit is contained in:
pnenzi 2003-09-25 07:06:14 +00:00
parent 488e1cf2b3
commit a2cf5cab55
2 changed files with 238 additions and 47 deletions

24
DEVICES
View File

@ -11,7 +11,20 @@ This file it is useful in writing ngspice documentation.
***************************************************************************
CAP - Capacitor
Initial Release
Initial Release.
Ver: N/A
Class: C
Level: 1 (and only)
Status:
Enhancements over the original model:
- Parallel Multiplier
- Temperature difference from circuit temperature
- Preliminary technology scaling support
- Model capacitance
- Cj calculation based on relative dielectric constant
and insulator thickness
IND - Inductor
Initial Release
@ -33,15 +46,6 @@ RES - Simple linear resistor
- Preliminary technology scaling support
- Xspice extensions
- Cider extensions
RES - Resistor
This is a modified version of the spice3 resistance model. This model
supports different ac and dc values (ac=...). These changes have been
introduced by Serban Popescu. The "multiplicity factor" (m) has been
introduced. The "scale factor" has been introduced.
*)Rework 11: The code has been modified to reflect spice parsing
standard.
***************************************************************************

View File

@ -1,4 +1,4 @@
bg\input texinfo @c -*-texinfo-*-
\input texinfo @c -*-texinfo-*-
@c %**start of header
@setfilename ngspice.info
@settitle NGSPICE User Manual
@ -1770,8 +1770,8 @@ in the direction of voltage drop).
General form:
@example
RXXXXXXX n+ n- value <ac=val> <m=val> <scale=val> <dtemp = val>
+ <noisy = 0|1>
RXXXXXXX n+ n- value <ac=val> <m=val> <scale=val> <temp=val>
+ <dtemp=val> <noisy=0|1>
@end example
Examples:
@ -1863,7 +1863,7 @@ following section on semiconductor resistors.
General form:
@example
RXXXXXXX n+ n- <value> <mname> <l=lenght> <w=width> <temp=t>
RXXXXXXX n+ n- <value> <mname> <l=length> <w=width> <temp=val>
+ <dtemp=val> m=<val> <ac=val> <scale=val> <noisy = 0|1>
@end example
@ -1881,8 +1881,8 @@ actual resistance value from strictly geometric information and the
specifications of the process. If @option{value} is specified, it overrides
the geometric information and defines the resistance. If @option{mname} is
specified, then the resistance may be calculated from the process information
in the model @option{mname} and the given @option{lenght} and @option{width}.
If @option{value} is not specified, then @option{mname} and @option{lenght}
in the model @option{mname} and the given @option{length} and @option{width}.
If @option{value} is not specified, then @option{mname} and @option{length}
must be specified. If @option{width} is not specified, then it is taken
from the default width given in the model.
@ -2033,10 +2033,10 @@ CMOS VLSI Design 2nd Edition, Addison Wesley}.
General form:
@example
CXXXXXXX N+ N- VALUE <IC=INCOND>
CXXXXXXX n+ n- <value> <mname> <m=val> <scale=val> <temp=val>
+ <dtemp=val> <ic=init_condition>
@end example
Examples:
@example
@ -2044,15 +2044,69 @@ CMOS VLSI Design 2nd Edition, Addison Wesley}.
COSC 17 23 10U IC=3V
@end example
Ngspice provides a detailed model for capacitors. Capacitors in the netlist can
be specified giving their capacitance or their geometrical and physical
characteristics. Following the original spice3 "convention", capacitors
specified by their geometrical or physical characteristics are called
"semiconductor capacitors" and are described in the next section.
N+ and N- are the positive and negative element nodes, respectively.
VALUE is the capacitance in Farads.
In this first form @option{n+} and @option{n-} are the positive and negative
element nodes, respectively and @option{value} is the capacitance in Farads.
Capacitance can be specified in the instance line as in the examples above or
in a @command{.model} line, as in the example below:
@example
C1 15 5 cstd
C2 2 7 cstd
.model cstd cap=3n
@end example
Both capacitors have a capacitance of 3nF.
The @option{m} parameter is the "multiplication factor", and can be used to
simulate "m" instances of the same kind in parallel. This parameter affects
all analyses.
The @option{scale} keyword let the designer choose a different scale for
elements. This option is not yet very useful, it will fully implemented in the
future to perform technology scaling. At present is here as a work in progress.
The operating temperature of instances can be changed using the @option{dtemp}
keyword. Ngspice simulates the circuit with all components at the same single
temperature (the circuit temperature). To adjust the temperature of a capacitor
instance you can define its temperature difference from the rest of the
circuit using @option{dtemp}.
If you want to simulate temperature dependence of a capacitor, you need to
specify its temperature coefficients, using a @command{.model} line, like in the
example below:
@example
CEB 1 2 1u cap1 dtemp=5
.MODEL cap1 tc1=0.001
@end example
The (optional) initial condition is the initial (timezero) value of
capacitor voltage (in Volts). Note that the initial conditions (if any)
apply 'only' if the UIC option is specified on the .TRAN control line.
apply 'only' if the @option{uic} option is specified on the @command{.tran}
control line.
Ngspice calculates the nominal capacitance as described below:
@tex
$$
C_{nom} = {{{\rm value} * {\rm scale}} * m}
$$
@end tex
@ifnottex
@example
Cnom = value * scale * m
@end example
@end ifnottex
@node Semiconductor Capacitors, Semiconductor Capacitor Model (C), Capacitors, Elementary Devices
@ -2061,7 +2115,8 @@ apply 'only' if the UIC option is specified on the .TRAN control line.
General form:
@example
CXXXXXXX N1 N2 <VALUE> <MNAME> <L=LENGTH> <W=WIDTH> <IC=VAL>
CXXXXXXX n+ n- <value> <mname> <l=length> <w=width> <m=val>
+ <scale=val> <temp=val> <dtemp=val> <ic=init_condition>
@end example
@ -2073,17 +2128,15 @@ apply 'only' if the UIC option is specified on the .TRAN control line.
@end example
This is the more general form of the Capacitor presented in section 6.2,
and allows for the calculation of the actual capacitance value from
strictly geometric information and the specifications of the process.
If VALUE is specified, it defines the capacitance. If MNAME is
specified, then the capacitance is calculated from the process
information in the model MNAME and the given LENGTH and WIDTH. If VALUE
is not specified, then MNAME and LENGTH must be specified. If WIDTH is
not specified, then it is taken from the default width given in the
model. Either VALUE or MNAME, LENGTH, and WIDTH may be specified, but
not both sets.
This is the more general form of the Capacitor presented in section
(@pxref{Capacitors}), and allows for the calculation of the actual capacitance
value from strictly geometric information and the specifications of the process.
If @option{value} is specified, it defines the capacitance and both process and
geometrical information are discarded. If @option{value} is not specified, the
capacitance is calculated from information contained model @option{mname} and
the given length and width (@option{l}, @option{w} keywords, respectively).
It is possible to specify @option{mname} only, without geometrical dimensions
and set the capacitance in the @command{.model} line (@pxref{Capacitors}).
@ -2096,34 +2149,168 @@ The capacitor model contains process information that may be used to
compute the capacitance from strictly geometric information.
@multitable @columnfractions .15 .4 .2 .1 .1
@item name @tab parameter @tab units @tab default @tab example
@item CJ @tab junction bottom capacitance
@tab F/meters@math{^2} @tab - @tab 5e-5
@item CJSW @tab junction sidewall capacitance
@tab F/meters @tab - @tab 2e-11
@item DEFW @tab default device width
@tab meters @tab 1e-6 @tab 2e-6
@item name @tab parameter @tab units @tab default @tab example
@item CAP @tab model capacitance
@tab F @tab 0.0 @tab 1e-6
@item CJ @tab junction bottom capacitance
@tab F/meters@math{^2} @tab - @tab 5e-5
@item CJSW @tab junction sidewall capacitance
@tab F/meters @tab - @tab 2e-11
@item DEFW @tab default device width
@tab meters @tab 1e-6 @tab 2e-6
@item DEFL @tab default device length
@tab meters @tab 0.0 @tab 1e-6
@item NARROW @tab narrowing due to side etching
@tab meters @tab 0.0 @tab 1e-7
@tab meters @tab 0.0 @tab 1e-7
@item SHORT @tab shorting due to side etching
@tab meters @tab 0.0 @tab 1e-7
@item TC1 @tab first order temperature coeff.
@tab F/°C @tab 0.0 @tab 0.001
@item TC2 @tab second order temperature coeff.
@tab F/°C@math{^2} @tab 0.0 @tab 0.0001
@item TNOM @tab parameter measurement temperature
@tab °C @tab 27 @tab 50
@item DI @tab relative dielectric constant
@tab F/m @tab 0.0 @tab 1
@item THICK @tab insulator thickness
@tab meters @tab 0.0 @tab 1e-9
@end multitable
The capacitor has a capacitance computed as
The capacitor has a capacitance computed as:
If @option{value} is specified on the instance line then
@tex
$$
{\rm CAP} = {\rm CJ} ({\rm LENGTH} - {\rm NARROW})
({\rm WIDTH} - {\rm NARROW}) +
2 {\rm CJSW} ({\rm LENGTH} + {\rm WIDTH} - 2 {\rm NARROW})
C_{nom} = {{{\rm value} * {\rm scale}} * m}
$$
@end tex
@ifnottex
@example
CAP = CJ (LENGTH - NARROW) (WIDTH - NARROW) +
2 CJSW (LENGTH + WIDTH - 2 NARROW)
Cnom = value * scale * m
@end example
@end ifnottex
If model capacitance is specified then
@tex
$$
C_{nom} = {{{\rm CAP} * {\rm scale}} * m}
$$
@end tex
@ifnottex
@example
Cnom = CAP * scale * m
@end example
@end ifnottex
If neither @option{value} nor @option{CAP} are specified, then geometrical and
physical parameters are take into account:
@tex
$$
{\rm C_{0}} = {\rm CJ} (l - {\rm SHORT})
(w - {\rm NARROW}) +
2 {\rm CJSW} (l - {\rm SHORT} + w - {\rm NARROW})
$$
@end tex
@ifnottex
@example
C0 = CJ (l - NARROW) (w - NARROW) +
2 CJSW (l - SHORT + w - NARROW)
@end example
@end ifnottex
@option{CJ} can be explicitly given on the @command{.model} line or calculated
by physical parameters. When @option{CJ} is not given, is calculated as:
If @option{THICK} is not zero:
@tex
if {\rm DI } is specified:
$$
{\rm CJ } = {{{\rm DI} * \epsilon_{0}} \over {\rm THICK} }
$$
otherwise:
$$
{\rm CJ } = {{ \epsilon_{SiO_{2}}} \over {\rm THICK} }
$$
with:
$$
\epsilon_{0} = 8.854214871e-12 {F \over m}
$$
$$
\epsilon_{SiO_{2}} = 3.4531479969e-11 {F \over m}
$$
@end tex
@ifnottex
@example
DI * eps
0
CJ = --------- if DI is specified
THICK
eps
SiO
2
CJ = --------- if DI is not specified
THICK
with:
eps = 8.854214871e-12 F/m
0
eps = 3.4531479969e-11 F/m
SiO
2
@end example
@end ifnottex
@tex
$$
C_{nom} = {C_{0} * {\rm scale} * m}
$$
@end tex
@ifnottex
@example
Cnom = C0 * scale * m
@end example
@end ifnottex
After the nominal capacitance is calculated, it is adjusted for temperature
by the formula:
@tex
$$
C(T) = C({\rm TNOM}) \Bigl( 1 + TC_1 (T - {\rm TNOM}) + TC_2 (T-{\rm TNOM})^2 \Bigr)
$$
where $C({\rm TNOM}) = C_{nom}$.
@end tex
@ifnottex
@example
2
C(T) = C(TNOM) [1 + TC (T - TNOM) + TC (T - TNOM) ]
1 2
where C(TNOM) = Cnom
@end example
@end ifnottex
In the above formula, "T" represents the instance temperature, which can be
explicitly using the @option{temp} keyword or os calculated using the
circuit temperature and @option{dtemp}, if present.
If both @option{temp} and @option{dtemp} are specified, the latter is ignored.
@node Inductors, Coupled (Mutual) Inductors, Semiconductor Capacitor Model (C), Elementary Devices
@subsection Inductors