LISO input file parsing¶
Known incompatibilities¶
Duplicate component and node names¶
In LISO, nodes and components may share the same name, and the user is warned that this may lead to confusion. In Zero, nodes and components cannot share the same name.
Outputs¶
Zero does not support the deg+
or deg-
output coordinates. Please use deg
instead. It
also throws an error when a LISO script’s ioutput
or uoutput
commands contain only a phase
coordinate, e.g.:
uoutput nout:deg
Such outputs could in principle be handled by Zero, but it would add complexity to the
Solution
and Series
classes that is not worth the effort given how rare this type
of output is. In order to use such scripts with Zero, simply add a magnitude unit, e.g.
uoutput nout:db:deg
Root mode¶
Zero does not support LISO’s root mode, meaning that the fitting tools provided in LISO for responses and noise spectra are not replicated. It is suggested to instead use Zero with a Python optimisation library such as scipy.optimize. Note that it is very important for circuit responses and noise fitting to use a well-suited optimiser, particularly one that can fit in log space. LISO’s fitting library performs very well for this purpose.
Commands¶
The following commands are not yet supported:
factor
(input multiplicative factor)zin
(input impedance)opdiff
(plot op-amp input differential voltage)margin
(compute op-amp phase margin; replacedopstab
in LISO v1.78)sens
(print table of component sensitivities)
Here are some commands which will probably not be supported:
other max or min based commands, e.g.
maxinput
eagle
(produce EAGLE file)gnuterm
component
C0805
(0805 capacitor with parasitic properties; not implemented in favour of grouping components together with macros)
Op-amp library¶
LISO’s op-amp library format is not supported, but the full LISO library is bundled in Zero’s
native format. Among other features, Zero’s library improves on that of LISO’s by allowing an
alias
setting where you can specify other op-amps with the same properties.
The parameters un
, uc
in
and ic
have been renamed vnoise
, vcorner
,
inoise
and icorner
, respectively.
Submissions of op-amp parameters to Zero’s library are strongly encouraged (see Op-amp library additions).
LISO Perl commands¶
Commands used for running LISO in a loop with pfil
are not supported. Instead you can use
Zero as part of a Python script to run either LISO or native Zero simulations in a loop.
Differences in behaviour¶
Command order¶
In LISO, the output must be specified after the components. In Zero, order is irrelevant.
Noisy command¶
noisy all|allr|allop|noise-source [all|allr|allop|noise-source] ...
The LISO manual states in section 7.3 regarding the noise sources used to calculate the sum
output:
Note also that all noise sources that are included in the noise instruction, i.e. those that are plotted individually, are automatically considered “noisy”, i.e. they are always included in the sum.
In LISO, if the sum
output is present but there is no noisy
command, the following
error is displayed:
*** Error: No noisy components! (Try 'noisy all')
In Zero, the noisy
command does not need to be present as by default, even in LISO, the
noise sources that contribute to the sum
output always includes those specified in the
output itself. The noisy
command is available merely to add additional noise sources to the
sum
that are not explicitly plotted.
As the lack of presence of a noisy
command in this case does not yield different results
to LISO, only an error in one case and a reasonable output in the other, this behaviour is not
considered a bug.
String lengths¶
LISO has a limit of 16 for most strings (component names, op-amp types, node names, etc.). In Zero the limit is effectively arbitrary.
Hint
In the case of mutual inductance commands, the name is entirely ignored. This is used in LISO only for fitting routines, which are not part of Zero.