HAADIC
Highly-Automated Analog Designer for Integrated Circuits
This project is under development. Its goal is to create a technological and software-agnostic design flow, from device sizing to layout and implementation.
Dimensions in the layout can be changed by editing the dim variable.
Post-simulation computation can be done by editing the evaluate function.
Design Flow
The following flow is run using the information given in a design.py python file (see tutorial). The flow has 2 entry points :
flow.run_from_dim: Only requires adimvariables which defines the value of each parameters of the layout function.flow.run_from_target: Requires both atargetand anlocal_modelfunction. Thelocal_modelis an implementation of the design methodology which output the layout parameters value required to obtains thetarget.
For batch execution, the method run_from_sweep can be used.
flowchart TD
s1{Start #2}
s2{Start #1}
app["Physical Model
(design:local_model)"]
pl["Parametric Layout
(klayout + design:layout)"]
be_ext["RC extraction
(steps.extraction + Magic-VLSI)"]
sim["Spice simulation
(steps.spice_sim + NGSpice)"]
spec["Performances Evaluation
(design:post_processors)"]
s1 -- "design:specifications" --> app
s2 -- "design:dimensions" --> pl
app --"dimensions (step.Dim)" --> pl
pl --"geometries (.gds)" --> be_ext
be_ext --"netlist (.cir)" --> sim
sim --"raw simulation (step.SimRes)" --> spec
spec --"performances (.csv)" --> st{stop}
When finished, a .gds file is available for further design and a .csv file with the performances of the design.
PDKs configuration
A techno.json file can be created in the working dir or the haadic root with the following structure:
{
"techno_name": {
"base_dir": "path to the pdk directory root",
"layermap": "path to the layermap (relative to the base_dir)",
"techlef": "path to the tlef file",
"magic_rc": "path to the configuration file of magic",
"lib_spice": "path to the spice model library",
"section": "name of the section to import in the spice library typical",
"source_url": "url to be use for download (set to "ciel" for ciel installation)",
"version": "version id (only required if source_url is set to "ciel")"
}
}
A techno.json file with three open source PDK and a mock PDK are already supplied.
For developers
Install haadic with optional group dev :
uv install git+https://github.com/Patarimi/haadic --with dev
Then run pytest in a shell
uvx run poe test
Metadata
Release files for haadic 0.6.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| haadic-0.6.4.tar.gz | 59.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| haadic-0.6.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 138.6 kB
Release files / haadic-0.6.4.tar.gz
| Download URL | haadic-0.6.4.tar.gz |
|---|---|
| Size | 59.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bd9d97ee0d0cd95b7f1bbf31ad502a2c23b73dfb72e0fc1758265d2c6aad7d7a
|
|
BLAKE2b-256 checksum How to use checksums |
8199bf57413c6f3ce680557ba0d98ea899f0808d839f885de7750ffba2bdeced
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.
Transparency logRelease files / haadic-0.6.4-py3-none-any.whl
| Download URL | haadic-0.6.4-py3-none-any.whl |
|---|---|
| Size | 79.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ef0e8ea93e35a004a619b03cc43947eb9a14f4baba25c1cab7e298ad5c52ec23
|
|
BLAKE2b-256 checksum How to use checksums |
375fce7d2bab5c501200cdd3034fdcf2a6bb1de5ae9c3cbb27bbc34f506d9181
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.
Transparency log