NVIDIA Research releases HORIZON, an unsupervised agent that pushes every RTL chip-design benchmark to a 100% pass rate

The paper is the first to run an agent completely unsupervised through an entire RTL benchmark suite; most problems clear in two or three rounds, but the hardest one takes 82 iterations
By arXiv · NVIDIA Research07-05 · 12 min read⚑ Research paper
🎧 Listen to the podcast0:00 / --:--
0:00 / --:--
Research Explainer · XiaoHu Explains
Quick Take
  • NVIDIA Research proposes HORIZON, which treats hardware design as repository-level code evolution: the user writes a single Markdown spec, the system compiles it into a "project pack," and an unsupervised agent loop repeatedly edits code and runs simulations inside an isolated Git workspace, committing only once verification passes.
  • Across ChipBench, RTLLM-2.0, Verilog-Eval, and 9 CVDP verification categories, HORIZON drives every benchmark to a 100% pass rate using the same unsupervised loop.
  • The agent's aggregate pass rate at the first iteration is only 47.8%, and the hardest category — CVDP checker generation — starts at just 3.8% on the first pass; the same loop eventually grinds every category to 100%, but some problems clear in 1–2 rounds while others need up to 82 rounds.
  • Once correctness saturates, token cost becomes the real differentiating signal — the 9 CVDP categories consume 97.1% of all tokens (about 203.9M), roughly 91% of which is reusable cached input.
  • The authors explicitly do not claim that "agentic hardware design is solved," and they flag a risk of "over-fitting to the reward / reward hacking" in the current feedback setup, recommending that future benchmarks separate debugging feedback from final hidden scoring.
01What this NVIDIA paper actually says

What this NVIDIA paper actually says

NVIDIA Research recently published a paper proposing HORIZON, an agentic hardware-design framework that treats chip design as repository-level code evolution.

Give the system a Markdown spec, and a fully unsupervised agent repeatedly edits code and runs simulations inside an isolated Git workspace, committing only once verification passes — ultimately pushing the entire RTL (register-transfer level — the layer of code describing exactly how every clock tick moves inside a chip) benchmark suite to a 100% pass rate.

⚑
Why it matters: As far as the authors know, this is the first end-to-end agentic system that completes an entire evaluated RTL benchmark suite without human intervention — covering ChipBench, RTLLM-2.0, Verilog-Eval, and 9 CVDP categories — all at a 100% pass rate.
HORIZON architecture overview: Markdown spec → project_pack control plane → unsupervised agent loop, evolving on a Git workspace
Figure 1 from the paper — architecture overview. The user's Markdown spec is compiled into a project_pack control plane, which drives an unsupervised agent loop continuously evolving on a Git workspace. Source: NVIDIA Research/marktechpost
02First, understand why writing Verilog once is nowhere near enough

Why one-shot Verilog from an AI falls far short

Verilog is the hardware code used to describe chip logic. RTL design is a sharp touchstone: whether a module is correct depends on the exact behavior at every clock tick, the reset convention, how the interfaces handshake, the bit-width of every signal, and the feedback from an actual simulator run. So "Verilog that looks plausible" is nowhere near enough.

A model has to infer the datapath bit widths on its own, how the state machine transitions, the reset convention, the ready-valid handshake protocol, how memory is read and written, and all the edge cases that natural language often leaves unstated. Put simply, a syntactically correct module is just the starting point. Useful automation has to connect "writing it" all the way through to "compile, simulate, inspect waveforms and failure traces, then fix" — running the loop, finding what's wrong, going back to fix it, and running again.

Write module
→
Compile
→
Simulate
→
Inspect waveform/failure trace
→
Fix
↺

HORIZON's core idea is to lock this entire chain inside a loop that runs itself.

03Core design one: how a spec becomes a self-running project pack

How a spec becomes a self-running project pack

The only input the user has to provide is a structured Markdown spec — not code. It states the high-level intent, repository context, expected artifacts, evaluation criteria, and domain knowledge. Domain knowledge is especially useful, since it can make explicit the invariants, tooling conventions, and failure modes that simply can't be inferred from the files alone.

A "bootstrap agent" compiles this spec into a "project pack" — the control plane for the entire system. The spec has four components, which get compiled into a five-element runtime configuration that drives the unsupervised loop.

① Markdown spec
  • Goal / task
  • Domain-knowledge directions
  • Evaluator specification
  • Acceptance predicate
→
② Project pack (five elements)
  • π_agent policy prompt and tool contract
  • E_p executable evaluator (compile/simulate/coverage)
  • A_p acceptance predicate (can it be committed?)
  • Γ_p version-control and artifact policy
  • Ω_p domain skills and repo operating instructions
→
③ Unsupervised loop
  • Read state
  • Edit workspace
  • Invoke evaluation tools
  • Fix or commit
An analogy · project pack

A project pack is like a complete onboarding packet for a new hire: it doesn't just say what to do, it also comes with the grading rubric, the tool instructions, and the handover process. The new hire reads it once and can work independently, with nobody standing over their shoulder.

Hero · not tied to RTL

Crucially, the problem is defined on a generic Git workspace, not on some fixed type of chip repository. So this way of organizing work isn't exclusive to RTL or EDA: as long as a task has "a persistent Git workspace + machine-checkable feedback + versioned artifacts," it can be organized the same way. Swap domains, and the evaluator slot can become unit tests, a theorem prover, a performance profiler, a security scanner, a synthesis tool, or even a human-review gate.

Click to see what a real spec looks like (the fifo_sync skeleton from the paper's appendix)

The user just writes an ordinary Markdown file like this one, with the four components laid out clearly, and leaves the rest to the loop.

Paper appendix: fifo_sync spec skeleton
# HORIZON Harness: fifo_sync

## Goal / objective
Implement a synchronous FIFO. Depth 16, 8-bit data.

## Domain-knowledge directions
- Reset is synchronous, active-high.
- full and empty must never assert together.
- Follow ready-valid handshake conventions.

## Evaluator specification
- Compile with the suite's native flow.
- Run the provided simulation testbench.
- Extract functional coverage where available.

## Acceptance predicate
- Simulation passes with zero mismatches.
04Core design two: how a Git repo becomes the loop's brain

How the loop runs: the Git repo is both the operating console and the experience bank

Once the user hands off the initial spec, the loop is completely unsupervised: bootstrapping, generation, evaluation, acceptance, logging, next iteration — it all runs automatically. A single "campaign" can run for many rounds back to back without any human stepping in. Each round, the agent reads the current state, plans a goal, edits the workspace, invokes tools, interprets failures, and then either fixes the code or commits. The acceptance predicate decides exactly one thing: whether the new version gets committed, or the failed attempt just gets logged.

① Read state ② Edit code Run evaluation ③ Acceptance predicate ④ Pass→commit Reject→log Unsupervised loop
One outer iteration: read state → edit code and run evaluation → acceptance check → commit if it passes, log if it fails, then move to the next round

Git here is the substrate of the loop, not an afterthought for record-keeping. Four ordinary git operations each play a distinct role:

git diff

exposes the proposed candidate change so it can be reviewed before being let through

git commit

defines an accepted checkpoint, with the message recording the evaluation verdict and reward

git notes

attaches evaluation evidence to this attempt (pass or fail, how many mismatches)

git log

replays the full version history to reconstruct the entire search trajectory

The loop drives the entire repo with plain git commands
git diff --cached                        # inspect the staged candidate change
git commit -m "iter 7: fix full/empty overlap"
git notes add -m "pass=1 mismatches=0"   # attach evaluation evidence
git log --oneline                        # replay the search trajectory
Hero · repo history as an experience replay buffer

A successful commit becomes a "positive example of a fix strategy," while a rejected attempt is recorded as a negative example of "which edits or tool-call paths don't pass evaluation." So the repo's own history is the data source for experience replay — no separate database needed. Combined with prompt caching, the marginal cost of one more fix round stays very low.

c1 c2 c3 ✓ Pass Rejected→logged (negative example) Rejected→logged (negative example)
Signature figure: only a change that passes acceptance produces a green commit that advances the main line; rejected attempts hang off as gray log entries kept as negative examples — the repo's history is itself a replayable experience trajectory
05Clearing up one big misunderstanding

It's the code that evolves — the model never moves

The term "self-evolving" can easily make it sound like HORIZON is secretly training the model. It isn't. What evolves is the design artifact inside the Git repo, not the model's weights. The backbone model, GPT-5.3, stays fixed throughout the entire campaign — it's neither trained nor does it update any reinforcement-learning policy.

The paper does borrow the term "semi-Markov decision process (semi-MDP)," but really, it's just a precise, replayable name for the objects being recorded: a "state" is a versioned snapshot of the repo (a bookkeeping checkpoint), and an "option" is an entire episode between two checkpoints. It's not a behavioral assumption, and it's not an optimization assumption.

An analogy · semi-MDP

It's like formally naming a game's "save points" and "the stretch of gameplay between two saves" so they're easy to replay and reference — it doesn't mean the AI inside the game is training and leveling itself up.

Cost is kept down through session reuse: HORIZON maintains a persistent model session across iterations, so the spec, project pack, stable source files, and accumulated debugging context are all pulled from the provider's prompt cache instead of being resent every round. So the tokens that actually get newly billed are mostly the current diff, the latest evaluation output, and the agent's reply. That's also why, as we'll see below, the vast majority of cumulative tokens are cached input.

06Whose shoulders it stands on

Whose shoulders HORIZON stands on

HORIZON continues a lineage of "repository-scale self-evolution." This lineage shares one common principle: a candidate change is only accepted when executable evidence supports it. The difference lies in "what evolves" — earlier systems evolved software that engineers "run"; HORIZON evolves the hardware artifacts that engineers "create."

SystemWhat evolvesDomainEvaluation signal
AlphaEvolve (2025)Algorithmic kernelsScientific and algorithmic discoveryAutomated evaluator
SATLUTION (2025)A complete SAT-solver repositorySAT solvingDistributed correctness and runtime (eventually surpassing human-designed competition winners)
ABCEvo (2026)The million-line ABC logic-synthesis systemEDA softwareCorrectness and QoR (quality of results)
HORIZON (this paper)RTL source, testbenches, verification artifactsHardware designCompilation, simulation, coverage, assertion checks
There's also a related trend of treating Git itself as scaffolding

EvoGit coordinates a swarm of decentralized coding agents using a Git-based phylogenetic graph; Git Context Controller upgrades an agent's context from a fleeting token stream into a persistent, versioned memory with explicit COMMIT/BRANCH/MERGE operations. Both prove that Git semantics (branching, lineage, checkpoints) are naturally suited to organizing agentic exploration, but both target software engineering. HORIZON likewise treats Git as its substrate, just applied to hardware design: it hosts a single design problem as a self-contained, verification-gated repository whose history simultaneously serves as a replayable experience trajectory.

07Result one: same finish line, wildly different paths

The whole benchmark suite hits 100%, but the roads to get there differ wildly

Running as a single unsupervised agent loop, HORIZON drives every benchmark suite to a 100% pass rate. The one item that remains "unsolved" is a single ChipBench problem, which the authors trace to a mismatch between the spec and the original benchmark's own defect, rather than a failure on the agent's part — so counting it as resolved still yields 100%. So what varies across suites isn't the finish line, but the road it takes to get there.

47.8%
Aggregate pass rate at the agent's first iteration (iter 0)
100%
Final pass rate across all 12 benchmark suites/categories
3.8%
CID 013 checker-generation first-round pass rate, the lowest overall, yet it converges in just 19 rounds
82 rounds
Iterations CID 002 code completion needs to converge to 100% — the most of any category

Here, iter 0 isn't an independent single-shot success rate. It reflects the state of the repo right after the agent's first evolution step, using the exact same prompting strategy throughout. The agent could easily choose to deliberately push most of its exploration, debugging, and fixing to later iterations rather than trying to maximize success on the very first attempt. This aggregate figure is also pulled up by Verilog-Eval-v2 (whose iter 0 is 86.2% on its own) — looking at the CVDP subset alone, iter 0 is only 23.9%.

Worth noting: these 9 CVDP verification categories (testbench generation, checker generation, assertion generation) were previously exactly the tasks where AI struggled the most. The CVDP paper itself points out that state-of-the-art single-shot models particularly struggle on these verification tasks — and now the same loop converges them all to 100%.

Pick a benchmark to see its convergence curve from the first round to 100%:

100 50 0 Iterations →
Starts at just 3.2% in the first round, climbs very slowly for a long stretch, then shoots up only in the last few rounds, converging to 100% only at round 82. This long tail eats up the most tokens of any single category — a genuine convergence problem, not a one-shot modeling failure.
100 50 0 Iterations →
First round is only 3.8% — the lowest overall — yet it follows an almost straight, near-linear path with no plateau, reaching 100% in just 19 rounds. It shows that "low on round one" by itself doesn't mean slow or unstable convergence.
100 50 0 Iterations →
First round is already 78%, and it only takes 2 rounds to reach 100%. On a traditional task like turning a natural-language spec directly into RTL, the model is already fast out of the gate.
100 50 0 Iterations →
First round is 79.1%, reaching 100% in 1 round — the least effort of any category.

Lining up the first-round pass rates for all 12 categories side by side makes the gap unmistakable: from 86.2% for Verilog-Eval down to 0.0% for CID 007. And every single one of them ultimately converges to 100%.

Verilog-Eval-v286.2
CID 014 assertion generation79.1
RTLLM-2.078.0
CID 012 stimulus generation47.8
CID 016 debug/bug-fix25.7
ChipBench20.0
CID 003 spec→RTL19.2
CID 004 code modification10.9
CID 005 module reuse9.1
CID 013 checker generation3.8
CID 002 code completion3.2
CID 007 checking/QoR0.0

Bar = first-round (iter 0) pass rate; every category eventually converges to 100%.

Click to see the full Table 1 (first round, rounds to converge, final pass rate)
Suite/categoryEvaluation focusBackenditer 0Rounds to convergeFinal
ChipBenchMixed RTL generationOpen source20.05100
RTLLM-2.0Spec→RTLOpen source78.02100
Verilog-Eval-v2HDLBits-style generationOpen source86.22100
CID 002RTL code completionOpen source3.282100
CID 003Spec→RTLOpen source19.224100
CID 004RTL code modificationOpen source10.936100
CID 005Module reuseOpen source9.114100
CID 007Code checking/QoROpen source0.024100
CID 012Stimulus generationCommercial47.832100
CID 013Checker generationCommercial3.819100
CID 014Assertion generationCommercial79.11100
CID 016Debugging and bug-fixingOpen source25.713100
OverallAll evaluated RTL benchmarks47.8—100

Only CID 012 through 014 require a commercial simulator.

08Result two: once correctness is even, tokens tell the real story

Once correctness saturates, tokens become the real competition

Once correctness saturates, token consumption becomes a much more informative signal — it exposes what's actually hard versus easy. The authors measure this as "cumulative tokens up to the optimal iteration." The three traditional suites together use only 6.0M, while the 9 CVDP categories use 203.9M — 97.1% of the total. The full run comes to roughly 209.9M.

209.9M
Total cumulative tokens across the entire benchmark run
97.1%
Share of tokens consumed by the 9 CVDP categories (the 3 traditional benchmarks together account for only 6.0M)
26.7%
CID 002 code completion alone consumes 56.0M
91%
Share of total tokens that are reusable "cached input"

Spreading the 209.9M across categories, code completion (CID 002), spec-to-RTL (CID 003), and stimulus generation (CID 012) together account for more than half, while the traditional benchmarks are squeezed into a thin sliver on the far left:

CID002 26.7% CID003 18.1% CID012 15.3% CID004 11.3% CID007 10%
Traditional benchmarks combined 6.0M (2.9%) CID002 56.0M (26.7%) CID003 38.0M (18.1%) CID012 32.2M (15.3%) CID013 14.2M (6.7%)

What's striking is CID 013: its first-round pass rate is the lowest overall (3.8%), yet it converges on just 14.2M tokens, confirming that smooth, plateau-free trajectory. What actually drives up cost is the "long tail of a handful of stubborn designs" like CID 002.

One more key point: roughly 91% of tokens are cached input, which substantially lowers API cost. So the authors explicitly state that "token efficiency" — not "final pass rate" — is the metric that most needs improvement. Even though HORIZON clears every single suite, the last few percentage points on the hardest categories eat up a disproportionate share of the budget.

09Coverage as a byproduct, and the red lines the authors draw themselves

Coverage is measured as a byproduct; the red lines are the authors' own

The verification-generation categories are worth a closer look, since they reveal what HORIZON is and isn't optimizing for. HORIZON's acceptance gate is CVDP's "pass condition," not a "coverage target." The loop is driven to make the benchmark spec pass; once a given design passes, the gate is satisfied and the loop stops trying to further optimize it. So coverage here is a secondary, observational signal.

The most direct evidence: CID 012 reaches a 100% pass rate at round 32, but at that point its average per-design coverage is only 97.9%, not 100%. This gap is a direct consequence of the acceptance gate — each design stops the moment it passes the spec, so coverage reflects only "testing sufficient to pass," not "the maximum achievable."

Acceptance gate: CVDP pass rate100%
Average design coverage, measured as a byproduct97.9%

Looking design by design, the loop lifts a "low-coverage tail" — several designs that start at 20% to 40% coverage get pulled up toward full coverage, rather than the loop only nudging the ones that were already high. CID 014 is the counterexample: it starts near 98% right away and saturates immediately. The authors stress that they never tried to force coverage to 100% — here, coverage is a diagnostic for "the generated tests have real substance," not a claim of "exhaustive verification."

Section 5 of the paper is its most candid part, where the authors proactively draw two red lines.

Red line one: over-fitting to the reward/reward hacking

In the current setup, the agent can see detailed evaluation output from every round — simulator messages, evaluation logs, failure traces. This mirrors real debugging workflows, where engineers naturally check logs and counterexamples. But full access to these signals also opens up a failure mode: the agent could tailor its generated RTL to exactly match the observed failures, deterministic tests, or evaluator quirks, rather than robustly implementing the design's actual intent. So a "pass" result might mean "the spec was satisfied under the exposed traces," rather than "the spec was satisfied under all reasonable tests."

An analogy · reward hacking

It's like a student who gets the previous years' grading records and detailed marking rubric ahead of time, and studies specifically for "how not to lose points" rather than actually learning the course material.

Based on this, the authors recommend that future agentic hardware-design benchmarks adopt a two-tier protocol: expose useful diagnostic feedback during the fix cycle, but reserve hidden randomized tests, independent reference models, formal equivalence checks, property suites, or held-out simulator configurations for final scoring. This lines up with the "structural test holdout" approach used by the software-engineering benchmark SWE-bench.

Red line two: feedback turnaround time

The pass/fail benchmarks in this paper are relatively forgiving, since most evaluations run fast enough to support iterative fixing. But in broader chip design, reward evaluation can be far slower — PPA (performance/power/area) optimization or EDA tool-evolution rewards may require synthesis, place-and-route, timing analysis, power estimation, or large regression suites. The authors note that SATLUTION has already shown the cost of this: even with roughly 800 nodes running in parallel, evaluating the full SAT competition benchmark takes about two hours to turn around, while PPA optimization for RTL could take turnaround times of days or even weeks. Long-latency rewards fundamentally change the problem — a naive "edit, evaluate, fix" loop becomes too slow, and the agent has to reason under delayed, sparse, expensive feedback. Solving "long-turnaround rewards" is therefore a key research challenge for agentic chip design.

They explicitly do not claim that agentic hardware design has been solved: current RTL benchmarks are a controlled proxy for a much broader engineering problem, and important issues remain — reward hacking, robustness, long-horizon design planning, and deployment inside real production design flows. NVIDIA Research, Section 5 of the paper
Source: arXiv:2606.28279v1 [cs.AR], NVIDIA Research, "Agentic Hardware Design as Repository-Level Code Evolution," preprint dated June 26, 2026 (Cunxi Yu, Chenhui Deng, Nathaniel Pinckney, Brucek Khailany). This piece is a Chinese-to-English explainer of the original paper; all data and conclusions come from the original text, and the architecture figure is from NVIDIA Research/marktechpost.
Source
arXiv · NVIDIA ResearcharXiv · NVIDIA Research·Read the source
↑ End of article
✓ This article is free to read in full

Members can copy or download the full Markdown, and let their AI subscribe and ask.

Read the original ↗
📮 New explainers, straight to your inbox

Found this useful? Leave your email — every new explainer, the moment it's out. Unsubscribe anytime.