Skip to content
Conduit

mcp server

chipleap

From an AI workload or your own RTL to a chip GDS on IHP SG13G2, checked with DRC and LVS: architecture exploration with every decision explained, X-HEEP SoC or AXI4 IP generation, and an open digital

danieltyukov/chipleapcommunitylistedunreviewed

Set up

Runs on your computer. Pick your agent and operating system.

Before you start

  • uv (`curl -LsSf https://astral.sh/uv/install.sh | sh`)
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "chipleap": {
      "command": "uvx",
      "args": [
        "chipleap"
      ]
    }
  }
}

same format Cursor, GitHub Copilot CLI, Junie, JetBrains AI Assistant, Augment (Auggie CLI), Factory Droid, Kiro, Devin CLI +12

Values in angle brackets are placeholders. Restart Claude Desktop after editing its config.Claude Desktop docs

README

synced Oct 21, 2026

What it does

You describe a workload (say, Llama 3.2 1B decoding), a target (5 tokens per second) and your limits (area, power, process nodes). ChipLeap works out the rest:

  1. Sizes the problem. The bandwidth, compute and memory the target needs, and which memories and nodes can deliver them.
  2. Designs the architecture. An agent finds the bottleneck, tries every single change, keeps the best one and writes down why. It chooses the on-chip memory, the external memory, the dataflow, the array size, the precision, the CPU, the clock and the node.
  3. Generates the hardware. Accelerator RTL in SystemVerilog, an X-HEEP RISC-V SoC configuration or AXI4 IP for any host, a C driver, a testbench and a datasheet.
  4. Checks it. Simulation against a golden model, synthesis, place and route, and the SoC generator's own checks, on open-source tools or the commercial ones you already have.

The generator is the path for AI workloads. For anything else, the checks run on RTL you wrote: see Your own RTL.

Quick start

pip install chipleap                # or: uv tool install chipleap
chipleap init llama.yaml            # an example spec to edit
chipleap explore llama.yaml -o out  # decisions, Pareto front and the hardware in out/
chipleap verify out                 # simulate, synthesize and check it

Open out/report.html to see each decision, the Pareto front and where the time goes.

Your own RTL

Point ChipLeap at a directory of Verilog or SystemVerilog with cocotb tests:

chipleap project init path/to/rtl       # writes project.yaml: top, sources, clock, reset, tests
chipleap verify path/to/rtl             # lint, simulation, coverage, formal, CDC, synthesis, equivalence
chipleap verify path/to/rtl --steps all # and every step after it, down to the whole chip

Each step names what it found: a failing test with its file and line, a failing property or netlist with its counterexample, an unsafe crossing with the path between its registers. An assistant gets the same through MCP and can fix the RTL in a loop. docs/projects.md describes the project file and every step.

The full digital flow

These are the steps ChipLeap runs on a project today, with what each reported for examples/uart, a UART written by hand with cocotb tests and a Python reference model, at 100 MHz on IHP SG13G2. Every tool in the table is open source, and each step skips itself, with the reason, when its tool is missing; simulation, synthesis and place and route also run on Cadence, Synopsys and Siemens tools (guide).

StepToolsThe UART on this release
Projectproject.yaml: top, sources, parameters, clocks, resets, tests, golden model3 SystemVerilog files, 5 cocotb tests, a Python model
LintVerilator -Wall, slang -Wextrano warnings
Simulationcocotb 2 on Icarus or Verilator, against the golden model5 of 5 tests pass
CoverageVerilator line, branch and toggle coverage, with the points never reachedline 83.3 % (two default: arms no state reaches), branch 100 %, toggle 100 %
FormalSymbiYosys on the design's own assertionsthe transmitter's line in every state, proved for every cycle with abc pdr
Clock and reset crossingsChipLeap's structural checker on the netlist Yosys elaboratesthe receive line through a two-flop synchronizer, accepted; one warning, the reset released asynchronously
SynthesisYosys and ABC on IHP's standard cells221 cells, 51 flip-flops, 0.0041 mm², critical path 1.01 ns
EquivalenceYosys (or EQY): RTL against synthesis, synthesis against the routed netlist74 of 75 points proved and the last equal for 40 cycles; all 969 routed points proved
Place and routeLibreLane (OpenROAD, KLayout), signed off at the slow corner352 cells on a 0.0105 mm² core, 100 MHz met at 125 C (about 264 MHz), DRC, LVS and antenna clean
Gate-level simulationthe cocotb tests on the routed netlist with SDF delays, Icarus 135 of 5 tests pass
Design for testOpenROAD scan insertion, Fault with Quaigh for ATPG3 chains of 17 flip-flops, 99.2 % stuck-at coverage with 39 patterns, which pass through the scan and the routed netlists
PowerOpenROAD with the activity of the project's own tests0.345 mW at the typical corner (0.947 mW vectorless)
IR dropOpenROAD PDNSim on the routed power grid0.52 mV at worst
Power intentUPF read and placed by OpenROADthe receiver in a domain of its own, 13 signals between the two
ECOOpenROAD edits on the routed design, then LibreLane's signoff againa gate resized and the UART signed off again in about a minute and a half
Macrosmacro/v1 packages, checked and rewritten before useaispice's StrongARM comparator, 29.1 x 40.8 um, both decisions measured after layout, its transistors in LVS
Chip assemblyLibreLane with IHP's pad ring, then bond pads, seal ring and fill in KLayout33 pads on a 1.52 x 1.52 mm die
Timing at the portsOpenSTA through IHP's IO cells at every corner+0.968 ns of setup slack at the slow corner (+6.257 ns at the core's side of the pads)
SignoffIHP's DRC deck on the whole die (density included), its LVS deck down to the macros' transistors, antenna0 DRC violations, LVS match, 0 antenna violations
chipleap verify examples/uart               # lint to equivalence, in about half a minute
chipleap verify examples/uart --steps all   # and place and route, gate level, DFT, power, IR drop, UPF and the chip

With a chip section the project becomes a whole chip (docs/chips.md): the core, hardened blocks from macro packages and a pad ring of IHP's IO cells, routed by LibreLane, with bond pads, seal ring and fill, timed at its own ports through the pads, checked with IHP's DRC and LVS decks, and a bond map for the package. The UART chip's comparator takes its inputs from two analog pads and drives the receive line. It builds and checks in about a quarter of an hour.

Ask your AI assistant

ChipLeap is also an MCP server, so Claude, Cursor, VS Code or Codex can drive it:

claude mcp add chipleap -s user -- chipleap mcp

Then ask things like "Design the smallest chip on the IHP open PDK that runs SmolLM2 135M at two tokens per second", "Why is this design memory bound, and what is the cheapest fix?" or "Make my RTL in ./uart lint clean and pass its tests". docs/mcp.md covers the other clients.

Works with what you have

  • Any workload: twelve LLM presets (SmolLM2, Qwen, Gemma, Llama, Phi, TinyLlama), or your own network of convolutions and matrix multiplies.
  • Any RTL: your own Verilog or SystemVerilog with cocotb tests, through the same checks down to the layout (projects).
  • After the layout: DFT with scan chains and ATPG, gate-level power from your tests, IR drop, UPF power domains and ECOs on the routed design (after place and route).
  • Any host: a complete X-HEEP RISC-V SoC, or the accelerator alone as AXI4 IP for an Arm, RISC-V or FPGA SoC (platforms).
  • Open tools: Verilator, Icarus, slang, cocotb, Yosys, LibreLane (OpenROAD, KLayout, Netgen) and Fault on the IHP SG13G2 open PDK.
  • Commercial tools: Cadence Xcelium and Genus, Synopsys VCS and Design Compiler, Siemens Questa, on your machine or on a design server over ssh (guide).
  • Your own PDK: chipleap tech add measures it from its liberty files and keeps the numbers on your machine.

Every tool is optional. chipleap doctor lists what it found, and chipleap verify skips what is missing and says why.

Down to the layout

chipleap verify out --steps all adds place and route with LibreLane, the open flow Tiny Tapeout uses for its IHP shuttles. The picture is the GDS it wrote for the SmolLM2 chip's 1 x 8 GEMV engine: a 0.80 mm² core with clean DRC, LVS and antenna checks that meets its 90 MHz clock at the slow corner, with room to spare (about 101 MHz, and 148 MHz at the typical one).

The accelerator model is the same tile schedule the RTL runs, so it is checked against it:

  • Cycles: equal to simulation without memory stalls, within a few percent with random stalls, on Verilator, Xcelium, VCS and Questa alike.
  • Area: logic area within 3 % on average of synthesis on IHP SG13G2, across 24 configurations, a macro-backed build's bank interface included, and buffers priced with the SRAM macros the layout places, equal to the routed SmolLM2 accelerator's.
  • Clock: the model allows what the routed accelerator meets at the slow corner: 100 MHz with up to seven ports, about 99 MHz with eight and 89 MHz with sixteen, and less for a GEMV engine with four or more lanes or more than eight columns.

The other nodes are scaled from published figures and say so. docs/model.md lists every number and its source; docs/verification.md explains each check.

Analog and mixed-signal: aispice

ChipLeap covers the digital side. Its analog counterpart, aispice, designs and sizes analog blocks on the same PDK: IC templates proven at every corner, layouts drawn by generators and checked with IHP's DRC and LVS decks, specs measured before and after extraction. It exports a block as a macro package, and assembles analog-on-top chips that place ChipLeap's digital blocks the same way.

The two tools hand hardened blocks to each other as macro packages: GDS, LEF, liberty, a Verilog model, a SPICE netlist, measured specs and DRC and LVS evidence, described by one macro.toml. Both check a package with the same rules before placing it:

chipleap macro check tiny_ota.macro --pdk ihp-sg13g2

docs/macro-package.md is the format, shared word for word with aispice.

Learn more

GuideWhat it covers
Spec formatWorkloads, targets, constraints and what the explorer may change
ChipsThe pad ring, macros, timing at the ports, signoff and the bond map
Your own RTLThe project file, and lint, simulation, coverage, formal, CDC, synthesis, equivalence, place and route, gate-level simulation, DFT, power, IR drop, UPF and ECO on your design
The modelTiming, energy and area, with sources
VerificationSimulation, synthesis, place and route, the steps after it, X-HEEP checks
PlatformsX-HEEP or AXI4 IP, and how to integrate each
Commercial toolsCadence, Synopsys and Siemens tools, remote servers, your own PDK
X-HEEP integrationHow the accelerator plugs into the SoC
Macro packagesThe block format ChipLeap and aispice share, and the rules both check
Where it fitsAgentic EDA, workload-to-chip services and academic tools, compared

Contributing

Issues and pull requests are welcome; see CONTRIBUTING.md. pytest runs the suite, and the hardware tests run when their tools are installed.

License

MIT. Generated X-HEEP configurations carry X-HEEP's Apache-2.0 header. ChipLeap is an independent project, not affiliated with EPFL, IHP or any company named here.

↑↓ navigate openesc close