zero.config.components module

Component library parser

class zero.config.components.LibraryOpAmp(model='OP00', a0=1500000.0, gbw=8000000.0, delay=0, zeros=array([], dtype=float64), poles=array([], dtype=float64), vnoise=3.2e-09, vcorner=2.7, inoise=4e-13, icorner=140, vmax=12, imax=0.06, sr=1000000.0, **kwargs)[source]

Bases: object

Represents a library op-amp.

Some of the default parameter values are based on the OP27.

Parameters
  • model (str) – Model name.

  • a0 (float, optional) – Open loop gain.

  • gbw (float, optional) – Gain-bandwidth product.

  • delay (float, optional) – Delay.

  • zeros (sequence, optional) – Zeros.

  • poles (sequence, optional) – Poles.

  • vnoise (float, optional) – Flat voltage noise.

  • vcorner (float, optional) – Voltage noise corner frequency.

  • inoise (float, optional) – Flat current noise.

  • icorner (float, optional) – Current noise corner frequency.

  • vmax (float, optional) – Maximum input voltage.

  • imax (float, optional) – Maximum output current.

  • sr (float, optional) – Slew rate.

property a0

Gain

property delay

Delay

gain(frequency)[source]

Get op-amp voltage gain at the specified frequency.

Parameters

frequency (float) – Frequency to compute gain at.

Returns

float – Op-amp gain at specified frequency.

property gbw

Gain-bandwidth product

property icorner

Current noise corner frequency

property imax

Maximum output current

property inoise

Current noise

inverse_gain(*args, **kwargs)[source]

Op-amp inverse gain.

Note that the inverse gain may be modified by the analysis, e.g. in the case of a voltage follower (see zero.analysis.ac.BaseAcAnalysis.component_equation()).

property model
property poles

Additional poles

property poles_mag_q

Additional poles, in tuples containing magnitude and Q-factor

property sr

Slew rate

property vcorner

Voltage noise corner frequency

property vmax

Maximum output voltage

property vnoise

Voltage noise

property zeros

Additional zeros

property zeros_mag_q

Additional zeros, in tuples containing magnitude and Q-factor

class zero.config.components.OpAmpLibrary(*args, **kwargs)[source]

Bases: zero.config.base.BaseConfig

Op-amp library

BASE_CONFIG_FILENAME = 'components.yaml.dist.default'
DEFAULT_USER_CONFIG_FILENAME = 'components.yaml.dist'
USER_CONFIG_FILENAME = 'components.yaml'
add_data(name, data)[source]

Add op-amp data to library.

Parameters
  • name (str) – The op-amp name.

  • data (dict) – The op-amp data.

Raises

ValueError – If the op-amp is already in library.

classmethod format_name(name)[source]

Format op-amp name for use as a key in the data dict.

Parameters

name (str) – The name to format.

Returns

str – The formatted name.

get_data(name)[source]

Get op-amp data.

Parameters

name (str) – The op-amp name.

Returns

dict – The op-amp data.

Raises

ValueError – If the specified op-amp name is not found in the library.

get_opamp(model)[source]

Get op-amp by model.

Parameters

model (str) – The op-amp model.

Returns

LibraryOpAmp – The op-amp.

has_data(name)[source]

Check if op-amp data exists in library.

Parameters

name (str) – The op-amp name.

Returns

bool – Whether the op-amp exists in the library.

match(opamp)[source]

Get model name of library op-amp given a specified op-amp.

Parameters

opamp (OpAmp) – The op-amp object to match.

Returns

str – The op-amp’s name as specified in the library, or None if not found.

property opamp_names

Get names of op-amps in library (including alises).

property opamps
populate_library()[source]

Load and parse op-amp data from config file.