Updated documentation to reflect changes in capacitor model.
This commit is contained in:
parent
488e1cf2b3
commit
a2cf5cab55
24
DEVICES
24
DEVICES
|
|
@ -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.
|
||||
|
||||
|
||||
***************************************************************************
|
||||
|
|
|
|||
261
doc/ngspice.texi
261
doc/ngspice.texi
|
|
@ -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
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue