Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Sean Leavey
Zero
Commits
69f05769
Commit
69f05769
authored
Jul 17, 2019
by
Sean Leavey
Browse files
Merge branch 'anchal.gupta/zerofeature/CITlabsOpampLibUpdate' into develop
parents
ca1eb0a4
705cf8fd
Changes
2
Hide whitespace changes
Inline
Sidebyside
docs/index.rst
View file @
69f05769
...
...
@@ 10,7 +10,7 @@
time
without
notice
.

Zero

is
a
linear
circuit
simulation
library
and
command
line
tool
.
It
is
able
to
perform
small
signal
AC
analysis
on
collections
of
components
such
as
resistors
,
capacitors
,
perform
small
signal
ac
analysis
on
collections
of
components
such
as
resistors
,
capacitors
,
inductors
and
op

amps
to
predict
responses
and
noise
.
===========
...
...
@@ 20,12 +20,27 @@ Why Zero?
Given
that
tools
such
as
`
LTspice
<
http
://
www
.
analog
.
com
/
en
/
design

center
/
design

tools

and

calculators
/
ltspice

simulator
.
html
>`
_
and
`
Qucs
<
http
://
qucs
.
sourceforge
.
net
/>`
_
exist
,
why
use
this
tool
?
The
answer
is
:
it
depends
.
For
simple
circuits
where
precision
is
not
critical
,
or
where
you
must
model
non

linear
or
time

variant
effects
,
then
the
above
tools
are
potentially
useful
;
however
,
whilst
manufacturers
often
provide
SPICE
models
to
represent
their
parts
,
these
often
do
not
correctly
model
noise
,
open
loop
gain
and
output
impedance
.
:
ref
:`
LISO
<
index
:
LISO
>`,
upon
which

Zero

is
based
,
was
motivated
in
part
by
this
reason
,
and
instead
provided
*
measured
*
op

amp
data
as
part
of
its
library
,
which
became
incredibly
useful
to
its
users
.
The
answer
is
:
`
it
depends
`.
For
circuits
where
dc
analysis
is
needed
,
or
where
you
must
model
non

linear
or
time

variant
effects
,
then
the
above
tools
are
very
useful
;
however
,
whilst
component
manufacturers
often
provide
SPICE
models
to
represent
their
parts
,
these
often
do
not
correctly
model
noise
and
output
impedance
.
This
is
especially
true
for
op

amps
,
at
least
historically
.
One
of
the
key
advantages
of
:
ref
:`
LISO
<
index
:
LISO
>`,
upon
which

Zero

is
loosely
based
,
was
that
*
measured
*
op

amp
parameters
were
provided
as
standard
in
its
library
,
available
to
be
used
in
simulations
to
provide
accurate
gain
and
noise
results
.
This
feature
has
become
incredibly
useful
to
LISO
's users. LISO furthermore provided an optimiser to be able to use
to tune circuit component values, something which is much trickier to do with SPICE.
Zero implements around half of what LISO is capable of doing, but extends it in a few ways to
provide greater customisability and ease of postprocessing. You can for example easily add new
noise sources to components and simulate how they propagate through circuits without having to edit
any core code, or implement your own types of analysis using the base Zero circuit objects. The
results are also provided as a socalled `solution` which contains the simulation data as well as
means to plot, export and further process it.
The other half of LISO is the socalled `root` mode, which includes a powerful optimiser. This is
not part of Zero, but given that Zero exists within the Python ecosystem is is possible to use
it some other optimisation packages such as `scipy.optimize`. LISO'
s
optimiser
may
one
day
be
implemented
in

Zero
.
================
What

Zero

does
...
...
@@ 34,8 +49,7 @@ What Zero does

Zero

can
perform
small
signal
analyses
on
circuits
containing
linear
components
.
It
is
inherently
AC
,
and
as
such
can
compute
:
ref
:`
frequency
responses
between
nodes
or
components
<
analyses
/
ac
/
signal
:
Small
AC
signal
analysis
>`
and
:
ref
:`
noise
spectral
densities
at
nodes
<
analyses
/
ac
/
noise
:
Small
AC
noise
analysis
>`.
Inputs
and
outputs
can
be
specified
in
terms
of
voltage
or
current
(
except
noise
,
which
,
for
the
time
being
can
only
be
computed
as
a
voltage
).
outputs
can
be
specified
in
terms
of
voltage
or
current
.
For
more
information
,
see
:
ref
:`
the
available
AC
analyses
<
analyses
/
ac
/
index
:
Available
analyses
>`.
...
...
@@ 43,19 +57,19 @@ For more information, see :ref:`the available AC analyses <analyses/ac/index:Ava
What

Zero

does
not
do
==========================

Zero

can
only
analyse
linear
time
invariant
(
LTI
)
circuits
.
This
means
that
the
parameters
of
the
components
within
the
circuit
cannot
change
over
time
,
so
for
example
the
charging
of
a
capacitor
or
the
switching
of
a
MOSFET
cannot
be
simulated
.
This
rules
out
certain
simulations
,
such
as
those
of
switch

mode
power
supply
circuits
and
power

on
characteristics
,
and
also
effects
such
as
distorsion
,
saturation
and
intermodulati
on
t
ha
t
would
appear
in
real
circuits
.
Instead
,
the
circuit
is
assumed
to
be
at
its
operating
point
,
and
the
circuit
is
linearised
around
zero
,
such
that
if
the
current
through
a
component
is
reversed
,
the
voltage
drop
across
that
componen
t
is
also
reversed
.
It
is
in
principle
possible
to
linearise
non

linear
components
as
a
first
step
before
performing
a
n
ac
analysis
(
i
.
e
.
to
compute
a
non

zero
operating
point
);
this
is
not
yet
possible
with

Zero

but
may
be
available
in
the
future
.
For
those
wishing
to
simulate
circuits
containing
non

linear
components
,
try
a
variety
of
SPICE
(
e
.
g
.
`
LTspice
<
http
://
www
.
analog
.
com
/
en
/
design

center
/
design

tools

and

calculators
/
ltspice

simulator
.
html
>`
_
)
or
`
Qucs
<
http
://
qucs
.
sourceforge
.
net
/>`
_
.

Zero

's scope is fairly limited to the problem of simple opamp circuits in the frequency domain
using linear time invariant (LTI) analysis. This means that the parameters of the components within
the
circuit cannot change over time, so for example the charging of a capacitor or the switching of
a transistor cannot be simulated. This rules out certain simulations, such as those of switchmode
power supply circuits and power
on
c
ha
racteristics, and also effects such as distorsion, saturation
and intermodulation that would appear in real circuits. Effects at dc such as opamp input offset
voltages and currents are also not modelled. Instead, the circuit is assumed to be a
t i
t
s
operating
point, and the circuit is linearised around zero, such that if the current through a component is
reversed, the voltage drop across that component is also reversed. A small signal analysis is the
n
performed to simulate the effect of the circuit'
s
output
given
small
variations
in
its
input
.
This
is
perfect
for
computing
transfer
functions
and
ac
noise
,
but
not
for
non

linear
,
time

varying
effects
.
You
should
bear
these
points
in
mind
before
choosing
to
use

Zero

for
more
complete
analyses
.
For
more
information
,
see
:
ref
:`
analyses
/
ac
/
index
:
AC
analyses
`.
...
...
@@ 63,7 +77,7 @@ For more information, see :ref:`analyses/ac/index:AC analyses`.
LISO
====

Zero

is
based
on
`
LISO
<
https
://
wiki
.
projekt
.
uni

hannover
.
de
/
aei

geo

q
/
start
/
software
/
liso
>`
_

Zero

is
loosely
based
on
`
LISO
<
https
://
wiki
.
projekt
.
uni

hannover
.
de
/
aei

geo

q
/
start
/
software
/
liso
>`
_
by
Gerhard
Heinzel
.
It
(
mostly
)
understands
LISO
circuit
mode
input
files
,
meaning
that
it
can
be
used
in
place
of
LISO
to
simulate
circuit
signals
.
It
also
understands
LISO
output
files
,
allowing
results
previously
computed
with
LISO
to
be
plotted
,
and
for
LISO
results
...
...
zero/config/components.yaml.dist.default
View file @
69f05769
...
...
@@ 249,7 +249,7 @@ opamps:
imax: 0.02
sr: 20e6
lt1028:
lt1028:
<1028
description: low noise
comment: beware of 400 kHz noise peak
a0: 30e6
...
...
@@ 571,7 +571,7 @@ opamps:
inoise: 25e12
icorner: 10k
max4106:
max4106:
&max4106
a0: 1e5
gbw: 908M # from closedloop gain fit & stability considerations
poles:
...
...
@@ 819,22 +819,6 @@ opamps:
vmax: 3.9
imax: 50e3
ad8674:
a0: 6e6
gbw: 14.7M
poles:
 1.75M
zeros:
 2.83M 23.5M
delay: 12.3n
vnoise: 2.8e9
vcorner: 5 # guess
inoise: 0.3e12
icorner: 100 # wild guess
sr: 4e6
vmax: 12
imax: 0.02
ad745:
a0: 4e6
gbw: 20M
...
...
@@ 915,17 +899,244 @@ opamps:
imax: 100m
sr: 400e6
# The following are additional opamp definitions which were added in CIT labs at 40m LISO repo.
lt1012:
description: Picoamp Input Current, Microvolt Offset, Low Noise Op Amp
a0: 2e6
gbw: 8e6
vnoise: 15e9 #from datasheet
vcorner: 2.5 #from datasheet
inoise: 6e15 #from datasheet
icorner: 120 #from datasheet
vmax: 12
imax: 0.02
sr: 2.5e6
lt1792:
a0: 4e6
gbw: 4e6
vnoise: 4.2e9 #from datasheet
vcorner: 30 #from datasheet
inoise: 10e15 #from datasheet
icorner: 120 # WAG
vmax: 12
imax: 0.02
sr: 2.5e6
op497:
description: low noise quad FET, for QPD transimpedance
a0: 2e6
gbw: 0.5e6
vnoise: 15e9
vcorner: 2.5
inoise: 5e15
icorner: 150
vmax: 12
imax: 25m
sr: 100e6
lt1128:
<<: *lt1028
description: Ultralow Noise Precision High Speed Op Amps, different version of lt1028
gbw: 15e6 # Datasheet says 13M min, 20M typ
sr: 6e6 # From Datasheet (typ value)
cs3002: &cs3002
description: added by Rana for KAGRA L4C preamp 2013
a0: 1e8 # seems bogus
gbw: 1e6
vnoise: 6e9
vcorner: 0.08
inoise: 2e12
icorner: 1 # guess / not in datasheet as of 1/2013
vmax: 4.7 # From Datasheet
sr: 5e6 # From Datasheet
cs3001:
<<: *cs3002
description: Single amplifier version of cs3002
max4107:
description: Slower but higher gain version of max4106
<<: *max4106
gbw: 778M # Scaled using datasheet and max4106 gbw above
sr: 500e6
opa827:
a0: 1e6 # 120 dB
gbw: 22M
vnoise: 4e9
vcorner: 15
inoise: 2.2e15
icorner: 100 # not given
vmax: 12
imax: .030
sr: 55e6
lf356:
comment: all info from datasheet
a0: 100e3
gbw: 5e6
sr: 12e6
vnoise: 12e9
vcorner: 100
inoise: 0.01e12
icorner: 100
sr560:
description: approximate only for gain of 100, low noise
a0: 4e6 # http://nodus.ligo.caltech.edu:8080/40m/2806
gbw: 20M
poles:
 70M
delay: 12.3n
vnoise: 5e9
vcorner: 30 # http://nodus.ligo.caltech.edu:8080/40m/2806
inoise: 7e15 # WAG
icorner: 100 # WAG
sr: 12.5e6
vmax: 6
imax: 0.100
opa548:
a0: 31.6k
gbw: 1M
vnoise: 90n
vcorner: 20
inoise: 0.2p
icorner: 100
vmax: 3.3
imax: 3
sr: 10M
opa547:
comment: From datasheet http://www.ti.com/lit/ds/symlink/opa547.pdf
a0: 562341.32519 #115 db
gbw: 1M
vnoise: 90e9
vcorner: 30
inoise: 200e15
icorner: 10 #Guess
vmax: 13.1
imax: 0.5
sr: 6e6
ad8671: &ad8671
description: Precision, Very Low Noise, Low Input Bias Current Operational Amplifiers
comment: http://www.analog.com/media/en/technicaldocumentation/datasheets/AD8671_8672_8674.pdf
a0: 6e6
gbw: 14.7M
poles:
 1.75M
zeros:
 2.83M 23.5M
delay: 12.3n
vnoise: 2.8e9 # extremely low
vcorner: 0.1 # guess, extremely low
inoise: 0.3e12
icorner: 500 # kinda high corner freq
vmax: 13.8
imax: 20e3
sr: 4e6
ad8672:
<<: *ad8671
ad8674:
<<: *ad8671
opa140: &opa140
a0: 2e6 # 126dB From Datasheet
gbw: 11e6
vnoise: 5e9
vcorner: 18
inoise: 0.8e15
icorner: 0.1
sr: 20M
vmax: 14.8
imax: 30m
opa2140:
<<: *opa140
opa4140:
<<: *opa140
ad620: # Leaving this here for now. Ideally there should be a separate InAmp class.
description: EQ, ad620 at unity gain
a0: 1e5 # Made up!
gbw: 12e6
vnoise: 72e9 # Lower at higher gains
vcorner: 13
inoise: 1e13
icorner: 40
vmax: 12
imax: 0.18
sr: 1e6
ad743:
comment: from 40m git
a0: 4e6
gbw: 20M
poles:
 70M
delay: 12.3n
vnoise: 2.9e9
vcorner: 30
# from AD743 Rev E datasheet
vcorner: 30 # from AD743 Rev E datasheet
inoise: 7e15
icorner: 100
# from AD743 Rev E datasheet
icorner: 100 # from AD743 Rev E datasheet
sr: 12.5e6
vmax: 12
imax: 0.02
ad549:
description: Ultralow Input Bias Current Operational Amplifier
comment: http://www.analog.com/media/en/technicaldocumentation/datasheets/AD549.pdf
a0: 1e5 # at 10 Hz
gbw: 1e6
vnoise: 40e9
vcorner: 100 # guess
inoise: 0.22e15
icorner: 100 # guess
vmax: 15
imax: 700e6
sr: 3e6
ad602: # Leaving this here for now. Ideally there should be a separate InAmp class.
description: Just a hack for this variable gain opamp.
comment: Add a 100 Ohm resistance between IN and IN+.
a0: 10 #Assuming operation at 20dB gain
gbw: 90e6 #Using figure 5 in the datasheet
vnoise: 1.4e9 #Datasheet
vcorner: 10 #guess
inoise: 3.35e13 #Calculated as sot noise from input bias current stated in the datasheet
icorner: 1e3 #guess
vmax: 5 #Assuming AD602 is connected to +5 supply
imax: 50e3 #Datasheet
sr: 275e6 #Datasheet
delay: 2n #Group delay
ad847:
comment: unverified, from datasheet only
a0: 5.5e3 # from data sheet
gbw: 50M # from data sheet OLG corner at 9.09 kHz
vnoise: 15n # from data sheet
vcorner: 150 # guess from data sheet noise plot
inoise: 1.5p # from data sheet
icorner: 100 # from wild guess not from data sheet
vmax: 12 # from data sheet
imax: 0.032 # from data sheet
delay: 18.9n # unknown
sr: 300e6 # from data sheet
ad8675:
description: Precision, wide bandwidth op amp
comment: https://www.analog.com/media/en/technicaldocumentation/datasheets/AD8675.pdf
a0: 1995262.314969 #126dB
gbw: 10e6
sr: 2.5e6
vnoise: 2.8e9
vcorner: 20
inoise: 0.3e12
icorner: 20 #Guess
vmax: 15
imax: 35e3
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment