Chipify – Open-source workflow automation for analog IC design

santihofi1 pts0 comments

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...

chipify install yaml datasheet datasheets json

Related Articles