henryen/hwe-bench

Dataset

HWE-bench

1

4 commits

1 linked in READMEs

updated Apr 23, 2026

See the code

README

HWE-bench

HWE-bench is a benchmark for evaluating LLM agents on real-world hardware bug repair tasks. It contains 417 cases from six open-source hardware repositories covering Verilog, SystemVerilog, and Chisel projects.

Each case is a fail-to-pass task: the provided test fails on the buggy baseline and passes after the ground-truth fix. Evaluation scripts, Docker image instructions, and agent-running code are available in the project repository.

Files

The dataset is provided both by repository and as a merged file. Use the repository-specific files when running evaluations, because Docker images and Harbor task directories are prepared per repository. Use hwe_bench_full.jsonl for analysis, statistics, or leaderboard-style loading.

FileRepositoryCases
lowRISC__ibex.jsonllowRISC/ibex35
openhwgroup__cva6.jsonlopenhwgroup/cva635
chipsalliance__caliptra-rtl.jsonlchipsalliance/caliptra-rtl16
chipsalliance__rocket-chip.jsonlchipsalliance/rocket-chip32
OpenXiangShan__XiangShan.jsonlOpenXiangShan/XiangShan54
lowRISC__opentitan.jsonllowRISC/opentitan245
hwe_bench_full.jsonlall repositories above417

Evaluation Notes

Use the repository-specific JSONL files when running the benchmark. The HWE-bench code repository contains the scripts for pulling or building Docker images, generating Harbor task directories, running agents, extracting patches, and scoring results.

The Docker image pull script derives per-PR image tags from the JSONL records. OpenTitan images are not distributed because the evaluation flow requires Synopsys VCS; OpenTitan users need to build images locally from a user-provided vcs:minimal base image.

Citation

If you use HWE-bench, please cite:

@article{cui2026hwe,
  title={HWE-Bench: Benchmarking LLM Agents on Real-World Hardware Bug Repair Tasks},
  author={Cui, Fan and Hou, Hongyuan and Luo, Zizhang and Yin, Chenyun and Liang, Yun},
  journal={arXiv preprint arXiv:2604.14709},
  year={2026}
}

Schema

Each JSONL row is one benchmark instance. The fields are:

FieldDescription
orgGitHub organization or owner.
repoGitHub repository name.
numberPull request number.
idGitHub pull request numeric ID.
node_idGitHub GraphQL node ID for the pull request.
urlGitHub API URL for the pull request.
html_urlBrowser URL for the pull request.
diff_urlURL for the pull request diff.
patch_urlURL for the pull request patch.
issue_urlGitHub API URL for the pull request's issue thread.
comments_urlGitHub API URL for issue comments.
commits_urlGitHub API URL for pull request commits.
review_comments_urlGitHub API URL for pull request review comments.
review_comment_urlGitHub API URL template for one review comment.
statePull request state from GitHub.
draftWhether the pull request was a draft.
titlePull request title.
bodyPull request body, usually normalized to a compact provenance note.
labelsGitHub labels attached to the pull request.
created_atPull request creation timestamp.
updated_atPull request update timestamp.
closed_atPull request close timestamp.
merged_atPull request merge timestamp.
merge_commit_shaGitHub merge commit SHA.
baseGitHub base branch metadata, including the upstream base commit SHA.
commitsPull request commit metadata collected from GitHub.
resolved_issuesIssue records linked to the pull request.
modified_filesFiles changed by the pull request.
lines_addedNumber of added lines in the pull request diff.
lines_removedNumber of removed lines in the pull request diff.
fix_patchGround-truth bug-fix patch.
test_patchTest-related patch content from the original pull request, if present.
level1Coarse bug category, such as RTL or software-hardware bug fix.
level2Finer bug category.
benchmark_valueInteger score describing how useful the case is as a benchmark task.
cross_layer_depthInteger score for hardware-software interaction depth. Present when applicable.
reproducer_signalInteger score for how much evidence exists for constructing a reproducer.
simulation_costInteger score for expected simulation cost.
reproducer_pathExpected reproducer style, such as existing test, minimal testbench, or full-system software path.
priority_scoreCandidate ranking score used during case selection. Present when applicable.
prepare_scriptOptional script baked into the per-PR Docker image before evaluation.
tb_scriptHidden fail-to-pass test script used by the evaluator.
problem_statementNatural-language task description shown to the repair agent.
run_resultResult summary for running the test before applying the ground-truth fix.
test_patch_resultResult summary for the buggy baseline run.
fix_patch_resultResult summary after applying the ground-truth fix.
fixed_testsTests that fail on the buggy baseline and pass after the ground-truth fix.
f2p_testsFail-to-pass test outcomes.
p2p_testsPass-to-pass test outcomes.
s2p_testsSkip-to-pass test outcomes.
n2p_testsNone-to-pass test outcomes.
benchmark
chisel
code
hardware
llm-agents
program-repair
systemverilog
verilog

Contributors

henryen

4 commits

henryen/hwe-bench

Dataset

HWE-bench

1

4 commits

1 linked in READMEs

updated Apr 23, 2026

See the code

README

HWE-bench

HWE-bench is a benchmark for evaluating LLM agents on real-world hardware bug repair tasks. It contains 417 cases from six open-source hardware repositories covering Verilog, SystemVerilog, and Chisel projects.

Each case is a fail-to-pass task: the provided test fails on the buggy baseline and passes after the ground-truth fix. Evaluation scripts, Docker image instructions, and agent-running code are available in the project repository.

Files

The dataset is provided both by repository and as a merged file. Use the repository-specific files when running evaluations, because Docker images and Harbor task directories are prepared per repository. Use hwe_bench_full.jsonl for analysis, statistics, or leaderboard-style loading.

FileRepositoryCases
lowRISC__ibex.jsonllowRISC/ibex35
openhwgroup__cva6.jsonlopenhwgroup/cva635
chipsalliance__caliptra-rtl.jsonlchipsalliance/caliptra-rtl16
chipsalliance__rocket-chip.jsonlchipsalliance/rocket-chip32
OpenXiangShan__XiangShan.jsonlOpenXiangShan/XiangShan54
lowRISC__opentitan.jsonllowRISC/opentitan245
hwe_bench_full.jsonlall repositories above417

Evaluation Notes

Use the repository-specific JSONL files when running the benchmark. The HWE-bench code repository contains the scripts for pulling or building Docker images, generating Harbor task directories, running agents, extracting patches, and scoring results.

The Docker image pull script derives per-PR image tags from the JSONL records. OpenTitan images are not distributed because the evaluation flow requires Synopsys VCS; OpenTitan users need to build images locally from a user-provided vcs:minimal base image.

Citation

If you use HWE-bench, please cite:

@article{cui2026hwe,
  title={HWE-Bench: Benchmarking LLM Agents on Real-World Hardware Bug Repair Tasks},
  author={Cui, Fan and Hou, Hongyuan and Luo, Zizhang and Yin, Chenyun and Liang, Yun},
  journal={arXiv preprint arXiv:2604.14709},
  year={2026}
}

Schema

Each JSONL row is one benchmark instance. The fields are:

FieldDescription
orgGitHub organization or owner.
repoGitHub repository name.
numberPull request number.
idGitHub pull request numeric ID.
node_idGitHub GraphQL node ID for the pull request.
urlGitHub API URL for the pull request.
html_urlBrowser URL for the pull request.
diff_urlURL for the pull request diff.
patch_urlURL for the pull request patch.
issue_urlGitHub API URL for the pull request's issue thread.
comments_urlGitHub API URL for issue comments.
commits_urlGitHub API URL for pull request commits.
review_comments_urlGitHub API URL for pull request review comments.
review_comment_urlGitHub API URL template for one review comment.
statePull request state from GitHub.
draftWhether the pull request was a draft.
titlePull request title.
bodyPull request body, usually normalized to a compact provenance note.
labelsGitHub labels attached to the pull request.
created_atPull request creation timestamp.
updated_atPull request update timestamp.
closed_atPull request close timestamp.
merged_atPull request merge timestamp.
merge_commit_shaGitHub merge commit SHA.
baseGitHub base branch metadata, including the upstream base commit SHA.
commitsPull request commit metadata collected from GitHub.
resolved_issuesIssue records linked to the pull request.
modified_filesFiles changed by the pull request.
lines_addedNumber of added lines in the pull request diff.
lines_removedNumber of removed lines in the pull request diff.
fix_patchGround-truth bug-fix patch.
test_patchTest-related patch content from the original pull request, if present.
level1Coarse bug category, such as RTL or software-hardware bug fix.
level2Finer bug category.
benchmark_valueInteger score describing how useful the case is as a benchmark task.
cross_layer_depthInteger score for hardware-software interaction depth. Present when applicable.
reproducer_signalInteger score for how much evidence exists for constructing a reproducer.
simulation_costInteger score for expected simulation cost.
reproducer_pathExpected reproducer style, such as existing test, minimal testbench, or full-system software path.
priority_scoreCandidate ranking score used during case selection. Present when applicable.
prepare_scriptOptional script baked into the per-PR Docker image before evaluation.
tb_scriptHidden fail-to-pass test script used by the evaluator.
problem_statementNatural-language task description shown to the repair agent.
run_resultResult summary for running the test before applying the ground-truth fix.
test_patch_resultResult summary for the buggy baseline run.
fix_patch_resultResult summary after applying the ground-truth fix.
fixed_testsTests that fail on the buggy baseline and pass after the ground-truth fix.
f2p_testsFail-to-pass test outcomes.
p2p_testsPass-to-pass test outcomes.
s2p_testsSkip-to-pass test outcomes.
n2p_testsNone-to-pass test outcomes.
benchmark
chisel
code
hardware
llm-agents
program-repair
systemverilog
verilog

Contributors

henryen

4 commits