GRD Journals- Global Research and Development Journal for Engineering | Volume 6 | Issue 1 | December 2020 ISSN- 2455-5703
Formal Bug Hunting: An Immensely Powerful Merger of Simulation and Formal Verification Methodologies Joydeep Bhattacharyya Department of Electronics & Telecommunication Intel Corporation, USA
Abstract Traditional simulation-based hardware verification methods suffer from missing completeness, whereas formal verification tools are computationally expensive, resulting in missing verification convergence, a must-have criteria for sign-off. In the last few years, many techniques were developed which incorporated learnings from both the simulation and formal methodologies. This paper discusses several such “bug-hunting” strategies, along with their possible implementation details and challenges. Keywords- Chip Design, Functional Verification, Formal Verification, Semiconductor Design
I. INTRODUCTION There are some historical precedence’s for the growing popularity of formal verification. Many people suggest the incidence of finding the (in) famous Pentium Floating point unit bug in an Intel processor, leading to the recall of faulty processors and Intel having to bear a loss of close to $500 million. People also have suggested that various other incidents, such as the Ariane 5 explosion and overexposure of radiation in the Panama Cancer Institute, could have been avoided with formal verification. In the last couple of decades, as semiconductor System-on-Chip (SoC) designs grew bigger, so did their verification complexities. The risk of an unveiled design issue is very high now, potentially in a few million dollars and several weeks of delay in product launch timeframe. Simulation based verification approaches still carry on most of the quality checking tasks, while formal verification has been successfully used to augment many of the shortcomings of the traditional test benches. However, the current industry standard tools have limitations in handling very large designs. This often results in a compromise in the formal test bench coverage, either by removing portions of logic from verification, or by closing verification with “bounded-proofs” for design assertions. To overcome these challenges, design verification engineers have come up with various “semi-formal” techniques. It is worth mentioning that most of these techniques have been built upon learnings from standard simulation based verification practices. With both the simulation and semi-formal methodologies in place, the chance of a serious bug escaping the pre-tape out checks has been significantly lowered, as found by many independent insights.
II. FORMAL VERIFICATION PROCESS Traditionally, formal tools were used only in equivalence checking between various models (architectural, RTL, GDS). However, the recent innovations in technologies and methodology, the benefits of formal functional verification apply in many more areas. A deep understanding of the Design-Under-Test (DUT) and the presence of good quality specification documents (architectural and micro-architectural) reveal many areas of logic in most of the IPs who are great candidates for formal verification. While proposing the formal verification strategies, strong focus is kept on the Return-On-Investment (ROI) compared to a standard simulation test bench methodology, since significant effort and ramp-up is involved in a formal test bench bring-up. Often, the teams end up a creating two separate verification goals, one for the simulation and another for the formal test bench. Technically speaking, there are three primary objectives for use of formal tools: (1) proving what other standard methods are unable to, e.g. proving certain design properties are always true or there are exceptions, (2) speeding up proof of certain properties faster than simulation (such as if a “FIFO-full” condition can happen), and (3) provide a sense of completeness to the verification suite, by establishing 100% coverage.
All rights reserved by www.grdjournals.com
1