Qihe: A General-Purpose Static Analysis Framework for Verilog
Qinlin Chen, Nairen Zhang, Jinpeng Wang, Jiacai Cui, Tian Tan, Xiaoxing Ma, Chang Xu, Jian Lu, Yue Li

TL;DR
Qihe is a pioneering general-purpose static analysis framework for Verilog hardware description language, enabling advanced bug detection, security analysis, and program understanding in hardware design, similar to software analysis ecosystems.
Contribution
It introduces the first comprehensive static analysis framework for Verilog, including a specialized IR and diverse analyses supporting hardware-specific features.
Findings
Uncovered 9 previously unknown bugs in real-world hardware projects
Identified 18 bugs beyond existing Verilog linters
Detected 16 security vulnerabilities in hardware programs
Abstract
In the past decades, static analysis has thrived in software, facilitating applications in bug detection, security, and program understanding. These advanced analyses are largely underpinned by general-purpose static analysis frameworks, which offer essential infrastructure to streamline their development. Conversely, hardware lacks such a framework, which overshadows the promising opportunities for sophisticated static analysis in hardware, hindering achievements akin to those witnessed in software. We thus introduce Qihe, the first general-purpose static analysis framework for Verilog -- a highly challenging endeavor given the absence of precedents in hardware. Qihe features an analysis-oriented front end, a Verilog-specific IR, and a suite of diverse fundamental analyses that capture essential hardware-specific characteristics -- such as bit-vector arithmetic, register…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSecurity and Verification in Computing · Advanced Malware Detection Techniques · Software Testing and Debugging Techniques
