chipify
chipify
Chipify
(c) 2026 Santiago Hofwimmer BSc
Institute for Integrated Circuits and Quantum Computing, Johannes Kepler University (JKU), Linz, Austria
Link to repository
[!WARNING]<br>This repository is a Work in Progress.
[!IMPORTANT]<br>It is recomended to use the IIC-OSIC-TOOLS container. Otherwise, you have to install Ngspice, Xschem and IHP-Open-PDK manually as prerequisites.
[!IMPORTANT]<br>Currently, only the IHP-Open-PDK is fully supported, but more will follow soon
Chipify is a high-performance EDA (Electronic Design Automation) tool for<br>mismatch simulations, parameter sweeping, and yield analysis . It wraps<br>Xschem (schematic capture) and<br>Ngspice (circuit simulation) to automate<br>Monte-Carlo and corner sweeps, run them in parallel, and turn the raw results<br>into plots, yield matrices, and reports.
It ships with both a PySide6 (Qt) desktop GUI and a headless CLI , plus<br>a plugin system for custom plots, reports, and expressions.
Features
Parallel sweeps — multiprocessing pool runs Monte-Carlo / corner cases across all cores.
Datasheet-driven — describe parameters, tests, and pass/fail specs in a single YAML file.
Range DSL — range, linspace, and logspace parameter sweeps (safely parsed, no eval).
Yield & statistics — pass/fail yield, histograms with distribution fits, corner yield matrices.
Safe custom expressions — derive new metrics with a sandboxed evaluator (no arbitrary code execution).
Reports — export to PDF, Markdown, and LaTeX; PNG/SVG plot exporters.
Pluggable — add your own plots, reports, expressions, and exporters (see PLUGINS.md).
Multi Plot Dashboard - arrange a selection of plots on a second window.
Prerequisites
Chipify is a wrapper around external EDA tools, so these must be installed and<br>available on your PATH:
Python 3.11+
Ngspice — the SPICE simulator
Xschem — schematic capture / netlist generation
(optional) VACASK + PyOPUS — alternative simulation backend
(Linux) PySide6 system libraries — Qt needs a few shared libraries that<br>pip can’t install:
libegl1 / libgl1 (libEGL.so.1 / libGL.so.1) are dlopened when Qt<br>is imported — required even for the headless test suite. Without them you get<br>ImportError: libEGL.so.1: cannot open shared object file.
libxcb-cursor0 (Qt ≥ 6.5) is needed by the xcb/XWayland platform for<br>the on-screen GUI; without it a Wayland session falls back to native Wayland,<br>where dropdown menus don’t close on selection.
install.sh installs all of these automatically on Debian/Ubuntu; elsewhere<br>install them with your package manager (e.g. apt install libegl1 libgl1<br>libxcb-cursor0). System libraries can’t be declared in<br>setup.py/pyproject.toml, so they’re handled by install.sh.
It is highly recommended to install and run Chipify inside the IIC-OSIC-TOOLS docker container. This way, all the required tools plus a bunch of open source PDKs are already installed.
Installation
git clone https://github.com/santihofi/chipify.git<br>cd chipify
python -m venv venv<br># Linux/macOS:<br>source venv/bin/activate<br># Windows (PowerShell):<br>venv\Scripts\Activate.ps1
pip install .
Optional extras:
pip install ".[fast]" # numexpr — vectorized transient-equation evaluation<br>pip install ".[vacask]" # PyOPUS — VACASK simulation backend
For development, install in editable mode: pip install -e .<br>(On Linux/macOS, install.sh is a one-line convenience wrapper for the venv + install steps above.)
Quick start
Desktop GUI
chipify
This opens the desktop application where you can edit datasheets, launch sweeps,<br>and explore results interactively.
Headless CLI
See examples/datasheet.yaml for a documented<br>datasheet template (and examples/README.md for how to run<br>it). Place your datasheet YAML in the input folder (datasheets/ by default), then:
chipify-cli -c my_design.yaml # run a single datasheet<br>chipify-cli --batch ./datasheets # run every *.yaml in a directory<br>chipify-cli -c my_design.yaml --json # also print a JSON summary (handy for CI)<br>chipify-cli -c my_design.yaml --markdown report.md
Results are written to the output folder (out/ by default), including<br>simulation_results.csv and any generated reports. Run chipify-cli --help<br>for the full list of options.
Configuration
User preferences are stored in settings.json in the directory you launch<br>Chipify from (CPU cores, simulator engine, theme, live plotting, …). The file<br>is created/updated by the GUI’s settings dialog. Custom equations live in the<br>datasheet YAML (equations: / transient_equations:), not in settings.json.
Folder paths
By default Chipify uses this layout under the working directory:
Folder<br>settings.json key<br>Default
Input datasheets<br>in_dir<br>datasheets/
Simulation output<br>out_dir<br>out/
Model files (*.lib/*.mod/*.inc staged for simulation)<br>work_dir<br>work/
Testbench files<br>tb_dir<br>tb/
To relocate any of them, set the corresponding key in settings.json to an<br>absolute or relative path, e.g.:
"out_dir": "results",<br>"in_dir": "/data/chipify/datasheets"
Any key that is missing or blank falls back to its...