AI-native IC design plugin with MCP-EDA — from natural-language intent to verified silicon.
Vibe-IC
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
**AI-native IC design with Claude — from natural-language intent to verified silicon.**
> **Status: v1.29 — mature, benchmark-hardened.** The vibe-ic plugin is the
> product: one install bundles and auto-registers the MCP server, the IP
> catalog, and the benchmark harness. Install once, design in natural language.
> Every capability is gated by a deterministic checker and continuously
> hardened against open IC-design benchmarks (see **Benchmark results** below).
Maintainers assign releases with gatekeeper_assign_version.py: the patch range is 0–99, so x.y.99 rolls over to x.(y+1).0, never a three-digit patch.
Vibe-IC is a Claude Code plugin + Model Context Protocol (MCP) server
that bridges large language models to real open-source EDA tools so that
designers can drive an entire IC flow — from a one-paragraph intent
through L1-L27 design documents, RTL, FPGA verification, and tape-out
sign-off — in natural language, with every step gated by deterministic
checkers (no fabrication, no hallucinated PASS).
---
What's in this repo
---
Quick Start
1. EDA toolchain (Docker)
All open-source EDA tools (Yosys, OpenROAD, KLayout, Magic, ngspice, …) run
inside a Docker container named vibeic-eda (the name the MCP server expects
via EDA_CONTAINER). **Recommended — the enhanced fork image** (patched
OpenROAD / yosys / ngspice / magic / netgen / iverilog / klayout with
gatekeeper-verified FAIL→PASS fixes; scoreboard in tools/vibeic-eda/FIX_STATUS.md):
Stock fallback: docker pull hpretl/iic-osic-tools:latest (run it named vibeic-eda).
Already running an older tag? Swap without retyping mounts:
tools/vibeic-eda/restart-eda.sh (no argument = the newest vibeic-eda image this
host holds, pinned to its digest), or pass a tag explicitly.
See **docs/INSTALL.md** for the required bind-mounts (Phase 3 needs the identity mount).
**This repo does not record which vibeic-eda version you should run.** It used to:
a one-line tools/vibeic-eda/VERSION held the number, every install doc had to
match it, and every vibeic-eda release therefore opened a PR here. That file is
gone. docker pull …:latest above gets the current image, and anything in the
plugin that needs to name an image asks _eda_image.judged_image(), which asks
the image two questions and stores neither: its **digest**
(ghcr.io/vibeic/vibeic-eda@sha256:…, what you replay with) and its own standard
org.opencontainers.image.version **label** (what a human reads). Gates that
report a verdict *about* the image write both into their --json report, so any
finding can be replayed with --image …@sha256:… and any red is attributable to
specific bytes rather than to a tag whose meaning moved. An image that will not
say which release it is, or that this host cannot identify, is NOT_MEASURED —
the gate exits 2 rather than reporting a clean PDK it never opened.
**PDKs.** The flow resolves PDKs through
plugins/vibe-ic/programs/pdk_registry.json:
| PDK | What it is |
|---|---|
| sky130A · gf180mcuD · ihp-sg13g2 | open foundry PDKs — the real sign-off targets |
| nangate45 · asap7 | **generic / predictive research-and-education enablements** — full LEF + Liberty + GDS so synth / PnR / CTS / STA and area-timing comparison run, but each is marked tapeout_capable=false in the registry: no real foundry, no manufacturable layer stack, and the shipped DRC decks are educational rule-checks, **not** sign-off |
| custom_auto_detect | a PDK you stage yourself, auto-detected from its on-disk layout |
A **commercial PDK** is supported as a *mechanism* only: the resolver reads a
VIBEIC_COMMERCIAL_PDK_ID env var (or a private, gitignored user config) and
never carries a vendor identifier in this repo — see
plugins/vibe-ic/programs/_commercial_pdk.py. No PDK is bundled with the plugin.
2. Install the vibe-ic plugin (one step)
Add this repo as a marketplace and install the plugin. This **also bundles
and auto-registers the MCP-EDA server** — no separate claude mcp add needed:
> The bundled MCP-EDA server is declared in the plugin's .mcp.json and
> auto-registers on install; its npm dependencies install on first run via
> the plugin's post_install hook.
> Inside an interactive Claude Code session the same two commands are
> /plugin marketplace add vibeic/vibe-ic and
> /plugin install vibe-ic@vibe-ic-marketplace.
3. Design something
Claude will dispatch the appropriate skills, invoke MCP-EDA tools, and
emit L1-L27 design docs + RTL + a verified bitstream.
Optional for full lab integration: