Vyges Loom

vyges-char

Standard-cell characterization — generate Liberty (.lib) timing & power models from SPICE, in parallel, from one declarative job.

View source on GitHub →

What it does

Used by: PDK teams, standard-cell library developers, and platform teams validating reusable IP.

vyges-char takes SPICE models and a cell list and produces a Liberty library — the timing and power model every downstream sign-off step (STA, power) depends on. It orchestrates the underlying SPICE runs in parallel, which is the piece the open-source flow has historically lacked; it is validated against reference Liberty for the open PDKs. The emitted Liberty is standard Liberty that downstream sign-off tools consume directly, and supports multi-corner, multi-voltage characterization.

SPICE models + cell list  ──►  vyges-char  ──►  .lib (Liberty timing & power)

One declarative job

A .char / .charlib job file declares the corner(s), the cells, and the collateral — no imperative scripting. Standard CLI: --json, --quiet, --verbose, -h / -V. The .lib it emits is read directly by vyges-sta-si, and its per-switch energy seam feeds vyges-em-ir.

One declarative job in; one standard sign-off artifact out. Exits non-zero on violations — designed to gate CI, not generate PDFs.

Try it

$ vyges install loom   # one-time: fetch the Loom suite into ~/.vyges/bin
$ vyges loom char demo   # instant — print a sample .lib, no setup
$ vyges loom char run inv.char -o inv.lib   # one cell → Liberty (.lib)
$ vyges loom char library cells.charlib -o out/   # many cells, in parallel → merged .lib

Predict the grid instead of simulating all of it

Characterization's cost is the SPICE sweep — one simulation per slew × load point, per arc, per corner. But delay and transition are smooth functions of slew and load, so vyges-char can simulate a coarse subset and predict the rest: export a tidy dataset, fit a small model, and fill the dense library — --sparse for a fixed coarse grid, or --auto to self-tune to a target accuracy. All in pure Rust — experiment with GPUs too via rust-gpu — and it runs locally: nothing leaves your machine.

Researchers & universities

A study in sample-efficiency and surrogate modeling on open PDKs — how few simulations for a given accuracy, which models, which cells and corners. Publish and share.

Enterprise silicon teams

Evaluate the payoff on your PDK — across mature and advanced node PDKs. Characterize a few representative cells and measure how much characterization time --sparse / --auto saves at an accuracy your flow accepts — all on your confidential models, locally.

Try it and tell us what you find — the experiment guide is on GitHub; share results or talk through your flow at vyges.com/contact.

Open core · Apache-2.0

Open and runnable today, and inside VyBox Sley. The per-foundry calibration plugins (NDA) stay private — the engine is open, the fab-specific accuracy is gated. See all the engines & the data spine →