Applied Assertion-Based Verification: An Industry Perspective

A wealth of material has been published over the past 30 years specifically related to the theory and technical aspects of property languages and assertion-based techniques. However, as any field of study matures, it becomes necessary to determine if the theories, algorithms, and concepts have grown beyond the bounds of research to become an integral solution to a problem in industry. To understand any solution, it is necessary to understand the problem. For example, debugging, on average, has grown to consume more than 60% of today's ASIC and SoC verification effort. Clearly, this is a topic the industry must address, and some organizations have done just that. Those that have adopted an assertion-based verification (ABV) methodology have seen a significant reduction in simulation debugging time (as much as 50% [1,47]) due to improved observability. Furthermore, organizations that have embraced an ABV methodology are able to take advantage of more advanced verification techniques, such as formal property checking, thus improving their overall verification quality and results. This paper examines the application of ABV in today's electronic design industry to address specific challenges of poor observability and controllability during the verification process. Statistics illustrating successful application of both low-level and high-level assertions are presented. While the process of writing assertions is fairly well understood by those skilled in the art — the process of creating higher-level assertion-based IP that must communicate with other components in a contemporary transaction-level modeling (TLM) simulation environment, is not. Hence, this paper provides a set of steps (in a tutorial fashion) for creating assertion-based IP.

[1]  D. Fisman,et al.  A Practical Introduction to PSL (Series on Integrated Circuits and Systems) , 2006 .

[2]  Andrew Piziali,et al.  Functional verification coverage measurement and analysis , 2004 .

[3]  Harry Foster Guidelines for creating a formal verification testplan , 2006 .

[4]  Pierre Wolper Temporal Logic Can Be More Expressive , 1983, Inf. Control..

[5]  Eduard Cerny,et al.  Verification Methodology Manual for SystemVerilog , 2005 .

[6]  Jiang Long,et al.  Synthesizing SVA Local Variables for Formal Verification , 2007, 2007 44th ACM/IEEE Design Automation Conference.

[7]  Avner Landver,et al.  The ForSpec Temporal Logic: A New Temporal Property-Specification Language , 2002, TACAS.

[8]  Ilan Beer,et al.  FoCs: Automatic Generation of Simulation Checkers from Formal Specifications , 2000, CAV.

[9]  Harry Foster,et al.  Assertion-Based Verification , 2018, EDA for IC System Design, Verification, and Testing.

[10]  Harry Foster,et al.  Assertions Targeting A Diverse Set of Verification Tools , 2002 .

[11]  Thomas Kropf,et al.  Introduction to Formal Hardware Verification , 1999, Springer Berlin Heidelberg.

[12]  Joseph Y. Halpern,et al.  “Sometimes” and “not never” revisited: on branching versus linear time temporal logic , 1986, JACM.

[13]  Michael J. C. Gordon,et al.  Validating the PSL/Sugar Semantics Using Automated Reasoning , 2003, Formal Aspects of Computing.

[14]  Thomas Kropf Introduction to Formal Hardware Verification: Methods and Tools for Designing Correct Circuits and Systems , 1999 .

[15]  Harry D. Foster,et al.  Assertion-Based Design , 2010 .

[16]  M. Kantrowitz,et al.  I'm done simulating; now what? Verification coverage analysis and correctness checking of the DECchip 21164 Alpha microprocessor , 1996, 33rd Design Automation Conference Proceedings, 1996.

[17]  Fred Kröger,et al.  Temporal Logic of Programs , 1987, EATCS Monographs on Theoretical Computer Science.

[18]  Edmund M. Clarke,et al.  Model Checking , 1999, Handbook of Automated Reasoning.

[19]  Pierre Wolper,et al.  Reasoning About Infinite Computations , 1994, Inf. Comput..

[20]  Tsuneo Nakata,et al.  Forward model checking techniques oriented to buggy designs , 1997, 1997 Proceedings of IEEE International Conference on Computer Aided Design (ICCAD).

[21]  Michael Kantrowitz,et al.  I'm done simulating; now what? Verification coverage analysis and correctness checking of the DEC chip 21164 Alpha microprocessor , 1996, DAC '96.

[22]  Wolfgang Ecker,et al.  Execution semantics and formalisms for multi-abstraction TLM assertions , 2006, Fourth ACM and IEEE International Conference on Formal Methods and Models for Co-Design, 2006. MEMOCODE '06. Proceedings..

[23]  Grant Martin UML for embedded systems specification and design: motivation and overview , 2002, Proceedings 2002 Design, Automation and Test in Europe Conference and Exhibition.

[24]  Wolfgang Ecker,et al.  Requirements and Concepts for Transaction Level Assertions , 2006, 2006 International Conference on Computer Design.

[25]  Kurt Keutzer,et al.  An observability-based code coverage metric for functional simulation , 1996, Proceedings of International Conference on Computer Aided Design.

[26]  Moshe Y. Vardi Branching vs. Linear Time: Final Showdown , 2001, TACAS.

[27]  Kurt Keutzer,et al.  OCCOM: efficient computation of observability-based code coverage metrics for functional verification , 1998, Proceedings 1998 Design and Automation Conference. 35th DAC. (Cat. No.98CH36175).

[28]  Wolfgang Ecker,et al.  Interactive presentation: Implementation of a transaction level assertion framework in SystemC , 2007 .

[29]  Pallab Dasgupta,et al.  A Roadmap for Formal Property Verification , 2006 .

[30]  Mukesh Sharma,et al.  Assertion-based verification of a 32 thread SPARC™ CMT microprocessor , 2008, 2008 45th ACM/IEEE Design Automation Conference.

[31]  Ilan Beer,et al.  On-the-Fly Model Checking of RCTL Formulas , 1998, CAV.

[32]  Carl Ramey,et al.  Functional verification of a multiple-issue, out-of-order, superscalar Alpha processor-the DEC Alpha 21264 microprocessor , 1998, Proceedings 1998 Design and Automation Conference. 35th DAC. (Cat. No.98CH36175).

[33]  Edmund M. Clarke,et al.  Design and Synthesis of Synchronization Skeletons Using Branching-Time Temporal Logic , 1981, Logic of Programs.

[34]  John Havlicek,et al.  Some Complexity Results for SystemVerilog Assertions , 2006, CAV.