This repository contains the source code for the paper "Wit-HW: Bug Localization in Hardware Design Code via Witness Test Case Generation" (ICCAD'25).
Wit-HW is a novel approach for bug localization in hardware design code. It addresses the challenge of identifying bug locations in complex hardware designs by generating targeted witness test cases that help isolate faulty components.
Debugging hardware designs is time-consuming and challenging due to:
- Increasing design complexity
- Limited observability during execution
- Difficulty in creating test cases that trigger specific bugs
Wit-HW employs a three-stage methodology:
- Initial Simulation: Runs initial test cases to identify behavioral differences between buggy and correct designs
- Mutation Engine: Generates targeted witness test cases that maximize bug-revealing potential
- Bug Localization: Computes suspiciousness scores for design elements using coverage data from witness test cases
- Python >= 3.11
- Verilator >= 5.027
python withw/run.pypython tarsel/run.pyThe buggy_designs directory contains several buggy hardware designs. Each design has a corresponding bug-info.json file that describes the bug.
We would appreciate it if you cite our paper when using Wit-HW in your research:
@inproceedings{
title={Wit-HW: Bug Localization in Hardware Design Code via Witness Test Case Generation},
author={Ruiyang Ma, Daikang Kuang, Ziqian Liu, Jiaxi Zhang, Ping Fan, Guojie Luo},
booktitle={2025 International Conference on Computer-Aided Design (ICCAD)},
year={2025}
}