V2 rebuilt the score after V1's open-source timer turned out to miss whole classes of circuit paths. Every design is now timed by the FPGA vendor's own tool, with memory stalls present in the timed circuit, and ranked on five hidden programs the agents never see. Six agent systems (a model inside its vendor's command-line agent) each ran six times from the same starting core, 15 rounds of 3 attempts per run.
| System (agent CLI) | Held-out iter/s | Rank interval | CoreMark iter/s | Fmax (MHz) | Area (LUT4) |
|---|---|---|---|---|---|
| Opus 5.5 (Claude Code) | 7,024 | 1 to 2 | 280 | 107.8 | 3,161 |
| Sonnet 5.5 (Claude Code) | 6,418 | 1 to 2 | 259 | 103.8 | 4,232 |
| GPT-6.1 Sol (Codex CLI) | 5,320 | 3 to 4 | 215 | 90.7 | 4,716 |
| GPT-6 Astra (Codex CLI) | 5,014 | 3 to 4 | 201 | 83.6 | 5,546 |
| GPT-5.5 (Codex CLI) | 3,595 | 5 to 6 | 143 | 63.9 | 2,948 |
| GPT-6 Luna (Codex CLI) | 3,538 | 5 to 6 | 137 | 64.6 | 2,934 |
| VexRiscv MaxPerf (human, best of ten reference cores) | 6,216 | 87.8 | |||
| textbook edit (V0 with an iterative divider) | 2,645 | 103.7 | 46.6 | 2,541 | |
| V0 (every run starts here) | 309 | 12.1 | 5.4 | 12,312 |
The pre-registered comparison, Opus 5.5 against GPT-6.1 Sol, separates: ratio 1.320 [1.183, 1.473], p = 0.0005. Of the 12 further pairs (Holm-corrected), 9 separate. The three that do not are the pairs inside each tier: Opus 5.5 vs Sonnet 5.5, GPT-6.1 Sol vs GPT-6 Astra, and GPT-5.5 vs GPT-6 Luna. Six runs per system resolve differences of about 20%, not the 6 to 10% gaps inside a tier.
Place-and-route settings. All final designs rebuilt under the six Gowin placement and routing settings that change a build: the same system order, Opus 5.5 vs GPT-6.1 Sol between 1.28x and 1.33x (every p < 0.001), and the same 9 of 12 separating pairs under every setting.
Unseen programs. On 15 more Embench-IoT programs no agent saw, the system order, the rank intervals and the three indistinguishable pairs are the same; all 740 design-program runs give correct results.
Another FPGA. Every design synthesized for an AMD Artix-7 with Vivado. The split between the top four and the bottom two holds; the order inside the top four does not (Opus 5.5 vs GPT-6.1 Sol: 1.03x, p = 0.80). The agents' designs gain less from the faster fabric than the human cores (Fmax ratio 1.17 vs 1.67), which suggests that fifteen rounds of tuning against one vendor's timing report fit a design to that part. The V2 ranking is a ranking on the Gowin contract.
| System | Gowin GW2A-18 | Artix-7 200T | Fmax ratio |
|---|---|---|---|
| Opus 5.5 | 7,024 | 6,724 | 0.96 |
| Sonnet 5.5 | 6,418 | 7,511 | 1.17 |
| GPT-6.1 Sol | 5,320 | 6,543 | 1.23 |
| GPT-6 Astra | 5,014 | 6,236 | 1.24 |
| GPT-5.5 | 3,595 | 4,385 | 1.22 |
| GPT-6 Luna | 3,538 | 4,245 | 1.20 |
| VexRiscv MaxPerf (human) | 6,216 | 10,246 | 1.65 |
| VexRiscv NoCache (human) | 4,524 | 8,772 | 1.94 |
Three gaps in the correctness checks surfaced during and after scoring; none changes a scored result.
| V1 | V2 |
|---|---|
| Open-source timer (nextpnr): misses whole path classes, a 32-bit divider timed at 123 MHz that the vendor tool times at 6.9 MHz | Vendor timer (Gowin EDA) for scoring and for the agents |
| Memory stalls simulated but absent from the timed circuit, so stall logic was free | The same stall generator in simulation and in the timed circuit |
| Scored on CoreMark, the program the agents optimize | Scored on five hidden programs; CoreMark stays the optimization signal |
| Any improvement accepted | A 4.6% margin, set from measured placement noise |
| 2 to 3 runs per model, best run reported | 6 runs per system, pre-registered tests, geometric means |
| Read access differed by CLI (Codex agents could read anything) | One OS account per concurrent run, the same rules for every CLI, hidden programs unreadable |
| Random-mutation control: 0 of 135 accepted, but a seeding bug made it 3 draws repeated 45 times | 135 independent draws, 0 accepted |
The leaderboard on the home page is V1's: its numbers come from the open-source timer and are not comparable with these.