Electronic circuit design tools¶
About¶
Electronic circuit design in Python 3.
Project homepage: https://github.com/eerimoq/ecdtools
Documentation: http://ecdtools.readthedocs.org/en/latest
Installation¶
pip install ecdtools
Example usage¶
In this example we load an IBS-file and access some of its content.
>>> from pprint import pprint
>>> import ecdtools
>>> ibs_file = ecdtools.ibis.load_file('tests/files/ibis/pybis/bushold.ibs')
>>> model = ibs_file.get_model_by_name('TOP_MODEL_BUS_HOLD')
>>> model.model_type
'Input'
>>> pprint(model.gnd_clamp)
[('-2.0000e+00', '-6.158e+17', 'NA', 'NA'),
('-1.9000e+00', '-1.697e+16', 'NA', 'NA'),
('-1.8000e+00', '-4.679e+14', 'NA', 'NA'),
('-1.7000e+00', '-1.290e+13', 'NA', 'NA'),
('-1.6000e+00', '-3.556e+11', 'NA', 'NA'),
('-1.5000e+00', '-9.802e+09', 'NA', 'NA'),
('-1.4000e+00', '-2.702e+08', 'NA', 'NA'),
('-1.3000e+00', '-7.449e+06', 'NA', 'NA'),
('-1.2000e+00', '-2.053e+05', 'NA', 'NA'),
('-1.1000e+00', '-5.660e+03', 'NA', 'NA'),
('-1.0000e+00', '-1.560e+02', 'NA', 'NA'),
('-9.0000e-01', '-4.308e+00', 'NA', 'NA'),
('-8.0000e-01', '-1.221e-01', 'NA', 'NA'),
('-7.0000e-01', '-4.315e-03', 'NA', 'NA'),
('-6.0000e-01', '-1.715e-04', 'NA', 'NA'),
('-5.0000e-01', '-4.959e-06', 'NA', 'NA'),
('-4.0000e-01', '-1.373e-07', 'NA', 'NA'),
('-3.0000e-01', '-4.075e-09', 'NA', 'NA'),
('-2.0000e-01', '-3.044e-10', 'NA', 'NA'),
('-1.0000e-01', '-1.030e-10', 'NA', 'NA'),
('0.', '0', 'NA', 'NA'),
('5', '0', 'NA', 'NA')]
Alternatively, with transform=True
, the same input as above gives:
>>> from pprint import pprint
>>> import ecdtools
>>> ibs_file = ecdtools.ibis.load_file('tests/files/ibis/pybis/bushold.ibs',
transform=True)
>>> model = ibs_file.get_model_by_name('TOP_MODEL_BUS_HOLD')
>>> model.model_type
'Input'
>>> pprint(model.gnd_clamp)
[(Decimal('-2.0000'), Decimal('-6.158E+17'), None, None),
(Decimal('-1.9000'), Decimal('-1.697E+16'), None, None),
(Decimal('-1.8000'), Decimal('-4.679E+14'), None, None),
(Decimal('-1.7000'), Decimal('-1.290E+13'), None, None),
(Decimal('-1.6000'), Decimal('-3.556E+11'), None, None),
(Decimal('-1.5000'), Decimal('-9.802E+9'), None, None),
(Decimal('-1.4000'), Decimal('-2.702E+8'), None, None),
(Decimal('-1.3000'), Decimal('-7.449E+6'), None, None),
(Decimal('-1.2000'), Decimal('-2.053E+5'), None, None),
(Decimal('-1.1000'), Decimal('-5660'), None, None),
(Decimal('-1.0000'), Decimal('-156.0'), None, None),
(Decimal('-0.90000'), Decimal('-4.308'), None, None),
(Decimal('-0.80000'), Decimal('-0.1221'), None, None),
(Decimal('-0.70000'), Decimal('-0.004315'), None, None),
(Decimal('-0.60000'), Decimal('-0.0001715'), None, None),
(Decimal('-0.50000'), Decimal('-0.000004959'), None, None),
(Decimal('-0.40000'), Decimal('-1.373E-7'), None, None),
(Decimal('-0.30000'), Decimal('-4.075E-9'), None, None),
(Decimal('-0.20000'), Decimal('-3.044E-10'), None, None),
(Decimal('-0.10000'), Decimal('-1.030E-10'), None, None),
(Decimal('0'), Decimal('0'), None, None),
(Decimal('5'), Decimal('0'), None, None)]
Contributing¶
Fork the repository.
Install prerequisites.
pip install -r requirements.txt
Implement the new feature or bug fix.
Implement test case(s) to ensure that future changes do not break legacy.
Run the tests.
make test
Create a pull request.
Functions and classes¶
-
ecdtools.ibis.
load_file
(filename, transform=False)[source]¶ Load given IBIS file and return an IbsFile object with its contents.
Give transform as
True
to convert numerical numbers from strings todecimal.Decimal
and'NA'
toNone
.
-
ecdtools.ibis.
split_numerical
(string)[source]¶ Split given string into a number, suffix and unit tuple.
>>> split_numerical('1.1kOhm') ('1.1', 'k', 'Ohm')
-
ecdtools.ibis.
convert_numerical
(string)[source]¶ Convert given string to a Decimal value.
>>> convert_numerical('1.1kOhm') Decimal('1.1e3')
-
class
ecdtools.ibis.
IbsFile
(string, transform)[source]¶ An .ibs file.
-
component_names
¶ A list of all component names.
-
model_selector_names
¶ A list of all model selector names.
-
model_names
¶ A list of all model names.
-
ibis_version
¶ The IBIS version string.
-
file_name
¶ The file name string.
-
file_revision
¶ The file revision string.
-
date
¶ The date string.
-
source
¶ The source string.
-
notes
¶ The notes string.
-
disclaimer
¶ The disclaimer string.
-
copyright
¶ The copyright string.
-
components
¶ A list of all components.
-
models
¶ A list of all models.
-
model_selectors
¶ A list of all model selectors.
-
submodels
¶ A list of all submodels.
-