ICLayout-Bench
A benchmark framework for AI-driven integrated-circuit layout.
From netlists to GDS, with isolated EDA tools and independent evaluation.
简体中文 · Quick Start · Documentation · Issues
Why ICLayout-Bench?
Measure how well an Agent turns a circuit, constraints and process resources into an integrated-circuit layout. Run experiments, compare agent configurations or connect your controller to an HTTP evaluation service.
| Capability | What it provides |
|---|---|
| End-to-end layout tasks | Declared netlists, operating conditions, physical constraints and PDK resources, with GDS as the submission. |
| Independent evaluation | Artifact checks, DRC, LVS, parasitic extraction and post-layout measurements on frozen candidate bytes. |
| Native agent harnesses | Codex, Claude Code, DSH, Kimi Code and ZCode, plus custom controllers through HTTP/MCP. |
| Repeatable experiments | Explicit model/effort conditions, independent repetitions, saved evidence and interrupted-session recovery. |
| Usage and cost analysis | Native token counts, timing and cost coverage alongside the independent score. |
Prerequisites
- Python 3.12+.
- An installed, authenticated agent CLI or your own controller.
- A task Dataset, such as the public ICLayout-Bench Dataset, supplied by repository ID or directory.
- For local evaluation: Linux x86-64, Docker and a compatible EDA image. Remote participation uses the operator's tools instead.
Quick Start
1. Install Bench.
python -m pip install iclayout-bench
For local wheel or source installation, see installation options. To run EDA on your machine, pull the published tools image:
docker pull docker.io/lizhangmai/iclayout-bench-tools:latest
You can also build or select another compatible image.
2. Write experiment.toml. Replace the model ID and effort with your settings.
This example uses the public Dataset; source also accepts other Dataset IDs or
directories. Configuration and output paths are yours to choose.
harness = "codex"
model = "your-model-id"
effort = "medium"
concurrency = 1
repetitions = 1
[dataset]
source = "MAI716/ICLayout-Bench"
name = "core"
split = "test"
3. Inspect one task, then run it. Bench downloads the selected Dataset on
first use. This example selects NAND2_X1 from its core tasks.
# Inspect configuration and task bindings without model or Docker calls.
python -m benchmarking.run \
--config experiment.toml --case NAND2_X1 --dry-run
# Run the Agent and independently evaluate its submitted layout.
python -m benchmarking.run \
--config experiment.toml --case NAND2_X1 \
--image docker.io/lizhangmai/iclayout-bench-tools:latest
Results go to results/experiment/<task-id>/<timestamp>/, including the verdict,
model usage, retained logs and available GDS/preview assets. Omit --case to run
the configured selection, or add --output /path/to/results to select an output
root. See the running guide for remote participation, multiple
conditions and recovery.
How It Works
flowchart LR
Task["Circuit + constraints + PDK"] --> Agent["Agent + EDA tools"]
Agent --> GDS["Frozen GDS"]
GDS --> Judge["Independent evaluation"]
Judge --> Result["Score + evidence"]
The Agent performs device implementation, placement, routing and iteration. The evaluator checks the accepted layout snapshot in a separate trusted environment. Scores range from 0 to 100, measuring physical and electrical quality against each task's declared targets. A feasible layout can still have room to improve.
Documentation
| Need | Guide |
|---|---|
| Configure harnesses, run experiments, recover sessions and analyze results | Running |
| Understand task inputs, scoring and reference qualification | Tasks |
| Set up images, PDK resources and EDA backends | Tools |
| Understand ownership, isolation and the HTTP contract | Architecture |
| Develop and verify framework changes | Contributing |
FAQ
Where are the tasks and reference layouts?
Tasks live in an independently supplied Dataset, selected by explicit path or repository revision. The Python package bundles no tasks. Delivered Datasets omit reference layouts and qualification evidence; authors retain those separately.
Do remote participants need Docker or a PDK?
No. Use the operator's endpoint and scoped credentials; its service provides the EDA workspace and evaluation tools. Local evaluation requires the compatible image and declared process resources.
Does passing a task mean a score of 100?
Passing establishes physical and functional validity. Scores measure quality against declared electrical and area targets, with each metric capped at its target. A reference proves feasibility and can score below 100. See scoring.
Are token counts and costs always available?
The framework retains native usage when the harness supplies it. Missing counts, timing or prices remain unknown. Token-based costs use the frozen price table and can differ from the actual bill. See usage and cost.
How is execution provenance recorded?
Participant-managed execution is recorded as self_run. Execution with frozen
conditions and operator-verified evidence uses controlled_run. These labels
describe execution provenance; importing or sharing a result preserves its
original evaluation mode.
License
The framework is MIT licensed. Task materials, PDKs and EDA tools retain their own licenses; consult the selected Dataset's notices for material rights.
Metadata
Release files for iclayout-bench 0.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| iclayout_bench-0.7.0.tar.gz | 856.6 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| iclayout_bench-0.7.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.3 MB
Release files / iclayout_bench-0.7.0.tar.gz
| Download URL | iclayout_bench-0.7.0.tar.gz |
|---|---|
| Size | 856.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8a0edc0039370e4ba892265e2a92a8472c644d2b7fedfbe00ef85d617b842de3
|
|
BLAKE2b-256 checksum How to use checksums |
51125ce106180f6772e6349f530f8fc61f8ae41dcb54ae8cb8de62db3cf9cefb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.
Transparency logRelease files / iclayout_bench-0.7.0-py3-none-any.whl
| Download URL | iclayout_bench-0.7.0-py3-none-any.whl |
|---|---|
| Size | 412.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a2d2b3e2b2ee66fa262b35bdf32b8dadfcdf296a35a96134700f185f59973be8
|
|
BLAKE2b-256 checksum How to use checksums |
4aeb5b314d962de3a998d742e77c4eb949d66e85c15af0c5344dfbec407d8102
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.
Transparency logSecurity for iclayout-bench 0.7.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for iclayout_bench-0.7.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.