Towards Understanding the Bugs in Verilator, a Hardware Description Language Compiler
Songyan Jiang, Maolin Sun, Kang Chen, Qingyang Li, Yibiao Yang, Yuming Zhou
Abstract
Verilator is the premier open-source Hardware Description Language (HDL) compiler. It transforms Verilog and SystemVerilog designs into optimized C++ or SystemC models, enabling high-speed, cycle-accurate simulation prior to large-scale production. As a cornerstone of the hardware verification ecosystem, the correctness of Verilator is paramount; compiler faults can lead to silent simulation errors or unexpected failures, undermining the integrity of the hardware development lifecycle. Unlike traditional software compilers, HDL compilers manage unique concurrency and synthesis semantics, potentially introducing distinct bug patterns and complexities. However, while prior research has explored testing techniques for HDL toolchains, there remains a lack of systematic empirical studies characterizing the specific nature of bugs in Verilator. This knowledge gap hinders the development of targeted improvements in compiler robustness and testing strategies. To address this, we present the first comprehensive empirical study of Verilator bugs. We manually collected, analyzed, and categorized a dataset of 488 confirmed bugs from the official repository over three years. Our study investigates bug symptoms, root causes, and the characteristics of triggering test cases, while also evaluating the effectiveness of existing testing techniques. Based on our findings, we provide actionable guidance for developers to enhance Verilator's reliability and for researchers to design more effective automated testing methodologies for HDL compilers.
Ask about this paper
Ask your agent about it.
Lune has read the top-tier papers around this one, so every answer names the papers it rests on.
Your agent calls
Lunesearch_papers
Free to start. No credit card required.
Terminal
Install the CLIlune papers get b6ab2489-71f7-4eb4-95cd-9d44d1125b7eRelated papers
- Exploiting Sophisticated Static Analysis for VerilogQinlin Chen, Nairen Zhang, Jinpeng Wang, Jiacai Cui et al.PLDI 2026
- VeriEQ: Finding Verilog Simulators and Synthesizers Bugs with Equivalence Circuit TransformationZhen Yan, Yuanliang Chen, Fuchen Ma, Zehong Yu et al.OOPSLA 2026
- The Essence of Verilog: A Tractable and Tested Operational Semantics for VerilogQinlin Chen, Nairen Zhang, Jinpeng Wang, Tian Tan et al.OOPSLA 2023 · 10 citations
- Well-typed programs can go wrong: a study of typing-related bugs in JVM compilersStefanos Chaliasos, Thodoris Sotiropoulos, Georgios-Petros Drosos, Charalambos Mitropoulos et al.OOPSLA 2021 · 31 citations
- Hyperblock Scheduling for Verified High-Level SynthesisYann Herklotz, John WickersonPLDI 2024 · 3 citations
