The Verification Gap Verification determines whether a design satisfies its requirements (a.k.a. its specification): Does it satisfy its functional requirements?

Slides:



Advertisements
Similar presentations
1 Verification by Model Checking. 2 Part 1 : Motivation.
Advertisements

Copyright 2000 Cadence Design Systems. Permission is granted to reproduce without modification. Introduction An overview of formal methods for hardware.
Formal Methods and Testing Goal: software reliability Use software engineering methodologies to develop the code. Use formal methods during code development.
Modular and Verified Automatic Program Repair Francesco Logozzo, Thomas Ball RiSE - Microsoft Research Redmond.
Promising Directions in Hardware Design Verification Shaz Qadeer Serdar Tasiran Compaq Systems Research Center.
Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
Automated Method Eliminates X Bugs in RTL and Gates Kai-hui Chang, Yen-ting Liu and Chris Browy.
What are Formal Verification Methods Mathematically based languages, techniques and tools for specifying and verifying systems Language – Clear unambiguous.
ECE Synthesis & Verification 1 ECE 667 Synthesis and Verification of Digital Systems Formal Verification Combinational Equivalence Checking.
Xiushan Feng* ASIC Verification Nvidia Corporation Assertion-Based Design Partition 1 TM Jayanta Bhadra, Ross Patterson.
Presenter: PCLee – This paper outlines the MBAC tool for the generation of assertion checkers in hardware. We begin with a high-level presentation.
Software Reliability CIS 640 Adapted from the lecture notes by Doron Pelel (
CSE241 Formal Verification.1Cichy, UCSD ©2003 CSE241A VLSI Digital Circuits Winter 2003 Recitation 6: Formal Verification.
Leveraging Assertion Based Verification by using Magellan Michal Cayzer.
The Future of Formal: Academic, IC, EDA, and Software Perspectives Ziyad Hanna VP of Research and Chief Architect Jasper Design Automation Ziyad Hanna.
The Design Process Outline Goal Reading Design Domain Design Flow
1 HW/SW Partitioning Embedded Systems Design. 2 Hardware/Software Codesign “Exploration of the system design space formed by combinations of hardware.
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
ECE Synthesis & Verification - L211 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Verification Equivalence checking.
Logic Design Outline –Logic Design –Schematic Capture –Logic Simulation –Logic Synthesis –Technology Mapping –Logic Verification Goal –Understand logic.
EE694v-Verification-Lect5-1- Lecture 5 - Verification Tools Automation improves the efficiency and reliability of the verification process Some tools,
School of Computer ScienceG53FSP Formal Specification1 Dr. Rong Qu Introduction to Formal Specification
Formal verification Marco A. Peña Universitat Politècnica de Catalunya.
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
From Concept to Silicon How an idea becomes a part of a new chip at ATI Richard Huddy ATI Research.
Propositional Calculus Math Foundations of Computer Science.
VerificationTechniques for Macro Blocks (IP) Overview Inspection as Verification Adversarial Testing Testbench Design Timing Verification.
Streamline Verification Process with Formal Property Verification to Meet Highly Compressed Design Cycle Prosenjit Chatterjee, nVIDIA Corporation.
Charles Kime & Thomas Kaminski © 2004 Pearson Education, Inc. Terms of Use (Hyperlinks are active in View Show mode) Terms of Use Lecture 12 – Design Procedure.
Systems Architecture I1 Propositional Calculus Objective: To provide students with the concepts and techniques from propositional calculus so that they.
Software Engineering Prof. Dr. Bertrand Meyer March 2007 – June 2007 Chair of Software Engineering Static program checking and verification Slides: Based.
Shashi Kumar 1 Logic Synthesis: Course Introduction Shashi Kumar Embedded System Group Department of Electronics and Computer Engineering Jönköping Univ.
Presenter : Ching-Hua Huang 2013/9/16 Visibility Enhancement for Silicon Debug Cited count : 62 Yu-Chin Hsu; Furshing Tsai; Wells Jong; Ying-Tsai Chang.
ASIC/FPGA design flow. FPGA Design Flow Detailed (RTL) Design Detailed (RTL) Design Ideas (Specifications) Design Ideas (Specifications) Device Programming.
CADENCE CONFIDENTIAL 1CADENCE DESIGN SYSTEMS, INC. Cadence Formal Verification 2003 Beijing International Microelectronics Symposium C. Michael Chang Vice.
ECE 260B – CSE 241A Verification 1http://vlsicad.ucsd.edu ECE260B – CSE241A Winter 2005 Verification Website:
Digitaalsüsteemide verifitseerimise kursus1 Digitaalsüsteemide verifitseerimine IAF0620, 5.0 AP, E Jaan Raik IT-208,
Some Course Info Jean-Michel Chabloz. Main idea This is a course on writing efficient testbenches Very lab-centric course: –You are supposed to learn.
Design Verification An Overview. Powerful HDL Verification Solutions for the Industry’s Highest Density Devices  What is driving the FPGA Verification.
B. Fernández, D. Darvas, E. Blanco Formal methods appliedto PLC code verification Automation seminar CERN – IFAC (CEA) 02/06/2014.
CSE 494: Electronic Design Automation Lecture 2 VLSI Design, Physical Design Automation, Design Styles.
Chonnam national university VLSI Lab 8.4 Block Integration for Hard Macros The process of integrating the subblocks into the macro.
- 1 - EE898_HW/SW Partitioning Hardware/software partitioning  Functionality to be implemented in software or in hardware? No need to consider special.
CHAPTER 8 Developing Hard Macros The topics are: Overview Hard macro design issues Hard macro design process Physical design for hard macros Block integration.
FMCAD 2027: Will the FM Have a Real Impact on the CAD? Carl Pixley Disclaimer: These opinions are mine alone and not necessarily Synopsys’. Also, I tend.
- 1 -  P. Marwedel, Univ. Dortmund, Informatik 12, 05/06 Universität Dortmund Validation - Formal verification -
1 IAF0620, 5.0 AP, Exam Jaan Raik ICT-524, , Digital systems verification.
February 22-25, 2010 Designers Work Less with Quality Formal Equivalence Checking by Orly Cohen, Moran Gordon, Michael Lifshits, Alexander Nadel, and Vadim.
Properties Incompleteness Evaluation by Functional Verification IEEE TRANSACTIONS ON COMPUTERS, VOL. 56, NO. 4, APRIL
Static Techniques for V&V. Hierarchy of V&V techniques Static Analysis V&V Dynamic Techniques Model Checking Simulation Symbolic Execution Testing Informal.
Chapter 11 System-Level Verification Issues. The Importance of Verification Verifying at the system level is the last opportunity to find errors before.
03/30/031 ECE Digital System Design & Synthesis Lecture Design Partitioning for Synthesis Strategies  Partition for design reuse  Keep related.
FEV And Netlists Erik Seligman CS 510, Lecture 5, January 2009.
Equivalence checking Prof Shobha Vasudevan ECE 598SV.
Introduction to Computing Systems and Programming Programming.
Speaker: Nansen Huang VLSI Design and Test Seminar (ELEC ) March 9, 2016 Simulation-Based Equivalence Checking.
Lecture 5: Design for Testability. CMOS VLSI DesignCMOS VLSI Design 4th Ed. 12: Design for Testability2 Outline  Testing –Logic Verification –Silicon.
EMT 351/4 DIGITAL IC DESIGN Week # 1 EDA & HDL.
ASIC Design Methodology
Hardware Verification
Propositional Calculus: Boolean Algebra and Simplification
Matlab as a Development Environment for FPGA Design
332:437 Lecture 7 Verilog Hardware Description Language Basics
Chapter 3 – Combinational Logic Design
332:437 Lecture 7 Verilog Hardware Description Language Basics
HIGH LEVEL SYNTHESIS.
Resolution Proofs for Combinational Equivalence
332:437 Lecture 7 Verilog Hardware Description Language Basics
Automatic Abstraction of Microprocessors for Verification
Presentation transcript:

The Verification Gap Verification determines whether a design satisfies its requirements (a.k.a. its specification): Does it satisfy its functional requirements? Does it satisfy its speed requirements? etc. There is a growing gap between the amount of verification that is desired, and the amount that can be done The gap is caused by Inadequate coverage with simulation Approximate models (wire delays, for example)

Formal Verification Reduces the Gap Formal verification can give complete coverage Mathematical techniques used to analyze all possible simulation vectors, without simulating them one by one No test cases needed But formal verification cannot replace simulation Current technology only effective for certain verification subtasks Using formal verification effectively requires understanding its strengths and weaknesses

Formal Verification vs Informal Verification Complete coverage Effectively exhaustive simulation Cover all possible sequences of inputs Check all corner cases No test vectors are needed Informal Verification Incomplete coverage Limited amount of simulation Spot check a limited number of input seq’s Some (many) corner cases not checked Designer provides test vectors (with help from tools)

Complete Coverage Example For these two circuits: f = ab(c+d) = abc + abd = g So the circuits are equivalent for all inputs Such a proof can be found automatically No simulation needed a b c d f = ab(c+d) a b c g = abc+abd a b d

Using Formal Verification Formal Verification Tool “Correct” or a Counter-Example: Requirements Design No test vectors Equivalent to exhaustive simulation over all possible sequences of vectors (complete coverage)

Types of Specifications Requirements design should satisfy Requirements are precise: a must for formal verification Is one design equivalent to another? Design has certain good properties? Informal Specification Equivalence Properties Formal

Formal vs Informal Specifications Formal requirement No ambiguity Mathematically precise Might be executable A specification can have both formal and informal requirements Processor multiplies integers correctly (formal) Lossy image compression does not look too bad (informal)

Types of Formal Verification Distinction between property checking and equiv. checking is becoming common knowledge Property Checking Equivalence Checking Sequential Combinational Different comb. equiv. methods give different market opportunities; must be understood for FV strategy Capacity Similarity Required

Equiv. Checking vs Property Checking Equivalence checking Is one design equivalent to another? One of the designs (the specification) is trusted In practice, most useful at low levels of abstraction Property checking Does the design have a given desirable property? Properties are relatively small and easy to state, e.g. Each packet sent is eventually acknowledged Never more than one bus master Do not need complete set of properties Set of properties can evolve during design process Most useful at high levels of abstraction Finds bugs early

Types of Equivalence Checking Layout Trans. netlist Gate level netlist RTL netlist Behavioral desc. Structure of the designs is important If the designs have similar structure, then equivalence checking is much easier More structural similarity at low levels of abstraction

Degree of Similarity: State Encoding Two designs have the same state encoding if Same number of registers Corresponding registers always hold the equal values Register correspondence a.k.a. register mapping Designs have the same state encoding if and only if there exists a register mapping Greatly simplifies verification If same state encoding, then combinational equivalence algorithms can be used

Producing the Register Mapping By hand Time consuming Error prone Can cause misleading verification results Side-effect of methodology Mapping maintained as part of design database Automatically produced by the verification tool Minimizes manual effort Depends on heuristics

Degree of Similarity: Combinational Nets Corresponding nets within a combinational block Corresponding nets compute equivalent functions With more corresponding nets Similar circuit structure Easier combinational verification Strong similarity If each and every net has a corresponding net in the other circuit, then structural matching algorithms can be used

Degree of Similarity: Summary Weak Similarity Different state encodings General sequential equivalence problem Expert user, or only works for small designs Same state encoding, but combinational blocks have different structure IBM’s BoolsEye Compass’ VFormal Same state encoding and similar combinational structure Chrysalis (but weak when register mapping is not provided by user) Nearly identical structure: structural matching Compare gate level netlists (PBS, Chrysalis) Checking layout vs schematic (LVS) Strong Similarity

Capacity of a Comb. Equiv. Checker Matching pairs of fanin cones can be verified separately How often a gate is processed is equal to the number of registers it affects Unlike synthesis, natural subproblems arise without manual partitioning “Does it handle the same size blocks as synthesis?” is the wrong question “Is it robust for my pairs of fanin cones?” is a better question Structural matching is easier Blocks split further (automatically) Each gate processed just once

User Needs Gate vs Gate (structural) Gate vs Gate (nonstructural) Post-synthesis step: verify netlist updates (scan insertion, buffers, etc) ASIC designer, ASSPs, ASIC vendor, Design Factories Limited debugging support required Gate vs Gate (nonstructural) Manual optimization following synthesis High performance, high volume design (microProc, fabless, ASSPs) Requires good debugging support No current robust commercial offering

User Needs (cont.) RTL vs Gate Simulation mostly at RTL level, reduce simulation at gate level ASIC designers, ASSPs, Design Factories and future DSM signoff Sophisticated debugging support required (source level) Methodology support required Hierarchy and black boxes required for IP Synthesis/simulation mismatch due to Synopsys don’t cares Capacity and robustness are critical No dominant player yet

User Needs (cont.) RTL vs RTL Gate or RTL vs Transistor IP resurrection and multiple revisions Similar to RTL vs gate Gate or RTL vs Transistor Processor companies, library development Key issue is robustness of automatic transistor extraction

Techniques Random simulation OBDDs Structural matching Finds many unequal nets (but not all) OBDDs Construct OBDDs representing all or part of a combinational block Canonical form: cheap to compare Potentially expensive to build Structural matching Specialized techniques to quickly verify identical structure Decomposition points Find matching internal nets, if they exist

Techniques (cont.) Pattern matching Case splitting Transform circuits to increase similarity Examples: remove inverter pairs and buffers, use de Morgan’s laws Case splitting Exhaustively consider all combinations of inputs to a block A given case may leave some inputs undetermined Therefore, many fewer than 2# inputs cases may be sufficient

Equivalence Checking: Research Early academic research into tautology checking A formula is a tautology if it is always true Equivalence checking: f equals g when (f = g) is a tautology Used case splitting Ignored structural similarity often found in real world OBDDs [Bryant 1986] Big improvement for tautology checking [Malik et. al 1988, Fujita et. al 1988, Coudert and Madre et. al 1989] Still did not use structural similarity Using structural similarity Combine with ATPG methods [Brand 1993, Kunz 1993] Continuing research on combining OBDDs with use of structural similarity

Equivalence Checking: Tools Internal tools from processor companies IBM (sold as BoolsEye), Motorola, DEC, Intel, BULL, etc. VFormal from Compass OBDD-based, licensed from BULL CheckOff-E from Abstract Hardware OBDD-based sequential equivalence checker Design VERIFYer from Chrysalis No OBDDs, but “symbolic logic” is only a slight extension of the netlist data structures used in synthesis