Finding and Understanding Bugs in FPGA Synthesis Tools

被引:12
|
作者
Herklotz, Yann [1 ]
Wickerson, John [1 ]
机构
[1] Imperial Coll London, London, England
基金
英国工程与自然科学研究理事会;
关键词
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 条
  • [21] UBFUZZ: Finding Bugs in Sanitizer Implementations
    Li, Shaohua
    Su, Zhendong
    PROCEEDINGS OF THE 29TH ACM INTERNATIONAL CONFERENCE ON ARCHITECTURAL SUPPORT FOR PROGRAMMING LANGUAGES AND OPERATING SYSTEMS, ASPLOS 2024, VOL 1, 2024, : 435 - 449
  • [22] PREP DEVELOPING STANDARDS TO EVALUATE FPGA CPLD SYNTHESIS TOOLS
    不详
    COMPUTER DESIGN, 1994, 33 (09): : A6 - &
  • [23] A parameter to measure the efficiency of FPGA based logic synthesis tools
    Selvaraj, H
    Li, B
    PROCEEDINGS OF THE 26TH EUROMICRO CONFERENCE, VOLS I AND II, 2000, : 212 - 219
  • [24] A Survey and Evaluation of FPGA High-Level Synthesis Tools
    Nane, Razvan
    Sima, Vlad-Mihai
    Pilato, Christian
    Choi, Jongsok
    Fort, Blair
    Canis, Andrew
    Chen, Yu Ting
    Hsiao, Hsuan
    Brown, Stephen
    Ferrandi, Fabrizio
    Anderson, Jason
    Bertels, Koen
    IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, 2016, 35 (10) : 1591 - 1604
  • [25] Automatic radiation hardening of FPGA designs using synthesis tools
    Wells, J
    ELECTRONIC ENGINEERING, 1998, 70 (862): : 63 - +
  • [26] Finding an optimal functional decomposition for LUT-based FPGA synthesis
    Qiao, J
    Ikeda, M
    Asada, K
    PROCEEDINGS OF THE ASP-DAC 2001: ASIA AND SOUTH PACIFIC DESIGN AUTOMATION CONFERENCE 2001, 2001, : 225 - 230
  • [27] ReGuard: Finding Reentrancy Bugs in Smart Contracts
    Liu, Chao
    Liu, Han
    Cao, Zhao
    Chen, Zhong
    Chen, Bangdao
    Roscoe, Bill
    PROCEEDINGS 2018 IEEE/ACM 40TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING - COMPANION (ICSE-COMPANION, 2018, : 65 - 68
  • [28] Dual analysis for proving safety and finding bugs
    Popeea, Corneliu
    Chin, Wei-Ngan
    SCIENCE OF COMPUTER PROGRAMMING, 2013, 78 (04) : 390 - 411
  • [29] A Randomized Scheduler with Probabilistic Guarantees of Finding Bugs
    Burckhardt, Sebastian
    Kothari, Pravesh
    Musuvathi, Madanlal
    Nagarakatte, Santosh
    ACM SIGPLAN NOTICES, 2010, 45 (03) : 167 - 178
  • [30] A Randomized Scheduler with Probabilistic Guarantees of Finding Bugs
    Burckhardt, Sebastian
    Kothari, Pravesh
    Musuvathi, Madanlal
    Nagarakatte, Santosh
    ASPLOS XV: FIFTEENTH INTERNATIONAL CONFERENCE ON ARCHITECTURAL SUPPORT FOR PROGRAMMING LANGUAGES AND OPERATING SYSTEMS, 2010, : 167 - 178