PPABench / About / Details

How PPABench grades a chip

A submission is a prompt → a core hardened into a fixed, manufacturable chassis. PPABench grades it on both halves of a real chip — physical implementation and functional behavior — deterministically, with no LLM judge anywhere in the loop.

1 · The chassis

Every submission targets one frozen wrapper, user_project_wrapper, on the Efabless OpenFrame / chipignite shuttle (sky130 HD). The pinout is locked: a Wishbone control port at 0x30000000, a QSPI flash interface on io[24:29], a UART on io[30:31], a byte-stream interface, and done/error status pins. Fixing the chassis makes every submission directly comparable and guarantees the result is a real, manufacturable layout — not an abstract netlist. The reference SoC is picosoc (picorv32 RV32IMC + QSPI XIP + UART).

A fixed chassis is what lets the benchmark compare a hand-tuned datapath, an LLM-generated core, and a research microarchitecture on the same axes — area, energy, cycles — because they all wear the same harness and the same I/O contract.

2 · Harden — the physical half

Hardening turns RTL into a manufacturable layout and is the only way to know a design's real area, speed, and power. PPABench runs a deterministic, LLM-free flow:

# chassis/harden.sh — deterministic, tool-gated yosys synth → sky130 gate netlist # gate count OpenROAD floorplan · place · CTS · route · STA # area, fmax, power (dyn+leak) Magic DRC + GDSII streamout # manufacturability netgen LVS (layout vs schematic) # layout == netlist

It emits the routed area, fmax (from worst-slack timing closure), power split into dynamic and leakage, a DRC-clean GDSII, and an LVS match. These are the P-P-A the benchmark ranks on.

3 · Hidden testbench — the functional half

A cocotb/Verilator harness boots the submission's firmware from a QSPI-flash model, releases it from reset by writing CTRL.start, and runs it to done. Two principles make the result trustworthy:

  • Cycles are counted externally. The graded cycle count is the harness counting wb_clk_i edges between start and done — never a register the design reports. A core cannot lie about the clock edges the harness sees.
  • Inputs are random per run. Keys, plaintext, or test images are drawn fresh each run and injected into the flash image, so an output cannot be precomputed or hardcoded; the harness re-derives the golden in software and requires K trials to all match.

4 · Anti-cheat / verifiability

The threat model is concrete: a submission could hardcode a known answer, fake a cycle counter, or drop in a fixed-function block that isn't really programmable. PPABench defeats each:

AttackDefense
Hardcode the expected outputRandom input per run → output is unpredictable
Fake the cycle countCycles counted externally at the wrapper boundary
Precompute in parallelSequential workloads (e.g. AES-CBC chaining)
Overfit to the public taskHeld-out challenge variants, kept private
Emit plausible garbageResult verified against a software golden / reference decoder

5 · The scorecard — pass/fail vs ranking

Pass/fail (hard gates): PPA caps (area / power / gates / macros) · functional_ok · timing_met (WNS ≥ 0) · DRC-clean · LVS-match · pinout/contract. Everyone who passes is a real, manufacturable chip.

Ranking (reported, not gated): the energy / area / performance figures of merit. The leaderboard sorts passing designs by efficiency.

6 · Tracked metrics

Energy is computed at the operating clock (the rate at which cycles elapse and power is drawn), not fmax.

MetricDefinition
energy_per_cycle_pjP[mW] / f[MHz] × 1000
total_energy_njP[mW] × cycles / f[MHz]
energy_per_instruction_pj / _per_byte_pj / _per_pixel_pjtotal energy ÷ workload units
leakage_power_mw, dynamic_power_mw, leakage_fractionfrom OpenROAD report_power
area_um2, util_pct, gate_count, area_per_kgate_um2routed physical area
fmax_mhz, timing_metfrom worst-slack closure (WNS ≥ 0)
ipc / cpi / mipsretired ÷ cycles (fixed-ISA tracks)
cycles_per_byte, throughput_bytes_per_s, pixels_per_cycleworkload rate
edp_nj_usenergy × delay
edap_nj_us_um2energy × delay × area
Dynamic power currently uses OpenROAD's default switching activity; activity-accurate dynamic power from the simulation VCD is planned. Leakage and all physical/timing metrics are exact today.

See the paper for the full methodology and reference results, or submit a design →