🤖 AI Summary
Implementation flaws in FPGA logic synthesis compilers can cause functional malfunctions and security vulnerabilities; however, existing fuzzing approaches suffer from low detection rates due to blind, low-diversity mutation strategies. Method: This paper proposes a Bayesian optimization–guided fuzzing framework that integrates HDL program generation, code-difference analysis, and formal equivalence verification to establish a closed-loop feedback mechanism. Difference signals guide the Bayesian optimizer to intelligently generate test cases with high mutational diversity and structural coverage, overcoming limitations of conventional random mutation. Contribution/Results: Within three months, the method discovered 16 real-world compiler bugs, 12 of which were officially confirmed and acknowledged by vendor teams. It significantly improves both the efficiency and effectiveness of detecting deep-seated defects in FPGA synthesis compilers, demonstrating superior coverage-guided test generation capability compared to state-of-the-art fuzzing techniques.
📝 Abstract
Field Programmable Gate Arrays (FPGAs) play a crucial role in Electronic Design Automation (EDA) applications, which have been widely used in safety-critical environments, including aerospace, chip manufacturing, and medical devices. A critical step in FPGA development is logic synthesis, which enables developers to translate their software designs into hardware net lists, which facilitates the physical implementation of the chip, detailed timing and power analysis, gate-level simulation, test vector generation, and optimization and consistency checking. However, bugs or incorrect implementations in FPGA logic synthesis compilers may lead to unexpected behaviors in target wapplications, posing security risks. Therefore, it is crucial to eliminate such bugs in FPGA logic synthesis compilers. The effectiveness of existing works is still limited by its simple, blind mutation strategy. To address this challenge, we propose a guided mutation strategy based on Bayesian optimization called LSC-Fuzz to detect bugs in FPGA logic synthesis compilers. Specifically, LSC-Fuzz consists of three components: the test-program generation component, the Bayesian diversity selection component, and the equivalent check component. By performing test-program generation and Bayesian diversity selection, LSC-Fuzz generates diverse and complex HDL code, thoroughly testing the FPGA logic synthesis compilers using equivalent check to detect bugs. Through three months, LSC-Fuzz has found 16 bugs, 12 of these has been confirmed by official technical support.