Finding and Understanding Bugs in FPGA Synthesis Tools

被引:12
|
作者
Herklotz, Yann [1 ]
Wickerson, John [1 ]
机构
[1] Imperial Coll London, London, England
来源
2020 ACM/SIGDA INTERNATIONAL SYMPOSIUM ON FIELD-PROGRAMMABLE GATE ARRAYS (FPGA '20) | 2020年
基金
英国工程与自然科学研究理事会;
关键词
fuzzing; logic synthesis; Verilog; test case reduction;
D O I
10.1145/3373087.3375310
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
All software ultimately relies on hardware functioning correctly. Hardware correctness is becoming increasingly important due to the growing use of custom accelerators using FPGAs to speed up applications on servers. Furthermore, the increasing complexity of hardware also leads to ever more reliance on automation, meaning that the correctness of synthesis tools is vital for the reliability of the hardware. This paper aims to improve the quality of FPGA synthesis tools by introducing a method to test them automatically using randomly generated, correct Verilog, and checking that the synthesised netlist is always equivalent to the original design. The main contributions of this work are twofold: firstly a method for generating random behavioural Verilog free of undefined values, and secondly a Verilog test case reducer used to locate the cause of the bug that was found. These are implemented in a tool called Verismith. This paper also provides a qualitative and quantitative analysis of the bugs found in Yosys, Vivado, XST and Quartus Prime. Every synthesis tool except Quartus Prime was found to introduce discrepancies between the netlist and the design. In addition to that, Vivado and a development version of Yosys were found to crash when given valid input. Using Verismith, eleven bugs were reported to tool vendors, of which six have already been fixed.
引用
收藏
页码:277 / 287
页数:11
相关论文
共 50 条
  • [41] Synthetic Tools that Enable Synthesis and Understanding of Bioactive Macrocycles
    Yudin, Andrei K.
    SYNLETT, 2022, 33 (19) : 1884 - 1889
  • [43] Towards understanding bugs in WSN applications
    Zhao, Jing-Jing
    Sun, Yu-Xia
    Deng, Qi
    Cheng, Ming
    Kuang, Qing-Xuan
    Journal of Computers (Taiwan), 2021, 32 (01)
  • [44] Towards Understanding the Bugs in Solidity Compiler
    Ma, Haoyang
    Zhang, Wuqi
    Shen, Qingchao
    Tian, Yongqiang
    Chen, Junjie
    Cheung, Shing-Chi
    PROCEEDINGS OF THE 33RD ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON SOFTWARE TESTING AND ANALYSIS, ISSTA 2024, 2024, : 1312 - 1324
  • [45] Towards understanding bugs in Python interpreters
    Di Liu
    Yang Feng
    Yanyan Yan
    Baowen Xu
    Empirical Software Engineering, 2023, 28
  • [46] NEW TOOLS HELP EXTERMINATE SOFTWARE BUGS
    FALK, H
    COMPUTER DESIGN, 1987, 26 (18): : 52 - &
  • [47] Bug Synthesis: Challenging Bug-Finding Tools with Deep Faults
    Roy, Subhajit
    Pandey, Awanish
    Dolan-Gavitt, Brendan
    Hu, Yu
    ESEC/FSE'18: PROCEEDINGS OF THE 2018 26TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, 2018, : 224 - 234
  • [48] Applied comparative physiology: Finding the utility in freezing bugs
    Sinclair, B. J.
    INTEGRATIVE AND COMPARATIVE BIOLOGY, 2018, 58 : E212 - E212
  • [49] Finding Bugs in Database Systems via Query Partitioning
    Rigger, Manuel
    Su, Zhendong
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2020, 4 (04):
  • [50] Firebolt: Finding Bugs in Programmable Data Plane Generators
    Cao, Jiamin
    Zhou, Yu
    Sun, Chen
    He, Lin
    Xi, Zhaowei
    Liu, Ying
    PROCEEDINGS OF THE 2022 USENIX ANNUAL TECHNICAL CONFERENCE, 2022, : 819 - 834