omp packages

@jony2156/ai-eda-tools0.1.1

IC design MCP server with automatic open-source toolchain setup

jony2156 Published 9 days ago Apache-2.0 ~355 downloads/mo

Untested on omp

This is a pi package. No one has reported whether it works on omp yet. If you try it, add your result below.

Did it work for you?

Result

One report per person. A new report replaces your old one.

Reports 0

No reports yet.

Readme

AI EDA Tools

Lint, simulate, inspect waveforms and synthesize RTL from your coding agent. The npm package is @jony2156/ai-eda-tools; its CLI is ic-tools. Claude Code connects through MCP, and pi loads a native extension. Large waveforms and logs stay on disk; tools return summaries and artifact handles.

Contents

Quick Start

Requires Node.js 20.11+, npm and Claude Code in Linux/WSL or macOS. Run from your RTL project root. Install the published package from the official npm registry:

npm install -g --foreground-scripts @jony2156/ai-eda-tools@0.1.1
ic-tools doctor

Register the installed tools with Claude Code from the same project root:

claude mcp add --transport stdio --scope project ic-tools -- \
  "$(command -v ic-tools)" serve --project "$PWD"
claude mcp list
claude

The registration command writes an ic-tools server entry to .mcp.json, using the installed CLI's absolute path and the current project directory. If .mcp.json already contains the legacy ic-design-tools server using ic-mcp, replace that entry before registration and preserve other servers. If you use a custom runtime cache, add --env IC_MCP_CACHE="$IC_MCP_CACHE" before -- in the command above.

Inside Claude Code, approve the project MCP server when prompted. Run /mcp and confirm that ic-tools is connected. In an NPU repository checkout, ask:

Use the IC lint tool on src/hw/rtl/npu_matrix/npu_accelerator/npu_matrix_core/npu_matrix_datapath/systolic_array/npu_pe.sv,
top npu_pe. Report errors and warnings. Leave the source unchanged.

For other agents, such as Codex or pi, see docs/manual/installation.md.

Tools

Tool Purpose Main inputs
lint Check RTL and return errors and warnings files, top
sim Run a testbench; return its verdict, wave and log handles files, tb
signals List waveform signals and scopes wave, pattern
first_mismatch Find the first divergent cycle wave, ref, dut
value_at Read signals at one cycle or time wave, signals, cycle
value_range Inspect a signal's transitions over a range wave, signal, from_cycle, to_cycle
show_wave Prepare a GTKWave view for a person wave, signals, center_cycle, launch
synth Estimate utilization with Yosys or run full synthesis with Vivado files, top, mode
ppa Power, area and fmax against a standard-cell library with OpenROAD files, top, liberty, mode

A typical workflow is lint → sim → first_mismatch → value_at. Use the wave handle returned by your simulation for subsequent queries. Set show_wave.launch=false on headless systems. Yosys mode="estimate" does not provide timing; mode="full" requires a separate Vivado installation.

These are agent tool names. The npm CLI exposes setup, doctor, serve and init pi; it does not accept ic-tools lint.

Installation

Runtime dependencies

npm's postinstall first looks for a working openroad executable on PATH. If none is present and Docker is running, setup pulls the official openroad/orfs:26Q1-534-g510137693 Linux/amd64 image pinned by manifest digest and installs a managed wrapper. It then downloads a pinned, checksum-verified OSS CAD Suite and hash-locked Python dependencies. The first setup downloads about 480–710 MiB plus Python packages and, when needed, the Docker image; later runs reuse both caches. No Python venv activation is required.

  • Linux/WSL: provide a C++ compiler, Make, tar, zlib and LZ4 development files for simulation builds. On Debian/Ubuntu these include build-essential, tar, zlib1g-dev and liblz4-dev.
  • macOS: provide a compatible native build toolchain; GUI viewing requires a desktop session.
  • Native Windows is unsupported; run Node, npm and the agent inside WSL.
  • OpenROAD is required, either as a host executable or through Docker. Native OpenROAD is preferred. Otherwise Docker must be installed and its daemon running; npm pulls the pinned official image without invoking a system package manager or sudo.
  • Vivado is separately installed and licensed.

If install scripts were skipped, run ic-tools setup before starting the agent. ic-tools doctor checks backend availability.

Registry installation

Install version 0.1.0 from npm:

npm install -g --foreground-scripts @jony2156/ai-eda-tools@0.1.1
ic-tools doctor

Existing runtime and uninstall

To reuse a completed runtime stored elsewhere, set IC_MCP_CACHE to its cache root before installation and agent startup. Defaults are ~/.cache/ic-tools on Linux and ~/Library/Caches/ic-tools on macOS. Project results are stored separately under .ic/ by default.

npm uninstall -g @jony2156/ai-eda-tools

Uninstalling preserves runtime caches and project results. Remove the agent's IC registration as well. See installation details for cache reuse, migration and troubleshooting.

Use with Claude Code

After installation, run from the RTL project's root:

claude mcp add --transport stdio --scope project ic-tools -- \
  "$(command -v ic-tools)" serve --project "$PWD"
claude mcp list
claude

This writes the project MCP configuration to .mcp.json. Inside Claude Code, approve the project server when prompted and use /mcp to check the connection. If this repository still has the old ic-design-tools entry using ic-mcp, replace that entry before adding this server to avoid duplicate tools. Preserve unrelated MCP entries.

For a custom runtime cache, add --env IC_MCP_CACHE="$IC_MCP_CACHE" before -- in the registration command. The saved executable and project paths are machine-specific; register again after moving them.

Try this from the NPU repository root:

Use the IC tools to simulate tools/ic/tests/fixtures/counter.sv and
tools/ic/tests/fixtures/tb_counter.sv with tb=tb_counter. Use the returned
wave handle to compare ref_count and dut_count with first_mismatch.
Report the first divergent cycle and both values. Keep the files unchanged.

The fixture intentionally fails: the expected first mismatch is cycle 8, reference 8, DUT 7. Registration is successful when Claude actually calls the tools and returns their results. See the Claude Code MCP documentation.

Use with pi

From the repository root, with pi already installed:

pi install npm:@jony2156/ai-eda-tools@0.1.1 --local
pi

pi reads the package's pi.extensions declaration and registers the nine tools. The extension prepares the runtime on first use if needed. Inside pi, run /ic to inspect backends. A skill is optional workflow guidance. Move any previous .pi/extensions/ic-design-tools.ts wrapper aside before using package discovery to avoid registering the tools twice.

--local saves the registry package declaration in this project's settings. See the pi acceptance guide for all eight checks. ppa also needs a standard-cell library or PDK. Setup provides OpenROAD from the host or Docker; the technology files remain user-supplied and are mounted read-write only through their containing directories for each Docker run.

Verification demo

See pi prompts and expected results to verify tool loading, lint, simulation, waveform inspection and synthesis estimates.