Xiushan Feng* ASIC Verification Nvidia Corporation Assertion-Based Design Partition 1 TM Jayanta Bhadra, Ross Patterson.

Slides:



Advertisements
Similar presentations
Auto-Generation of Test Cases for Infinite States Reactive Systems Based on Symbolic Execution and Formula Rewriting Donghuo Chen School of Computer Science.
Advertisements

Masahiro Fujita Yoshihisa Kojima University of Tokyo May 2, 2008
Automatic Verification Book: Chapter 6. What is verification? Traditionally, verification means proof of correctness automatic: model checking deductive:
ECE 454 Computer Systems Programming Compiler and Optimization (I) Ding Yuan ECE Dept., University of Toronto
Automated Method Eliminates X Bugs in RTL and Gates Kai-hui Chang, Yen-ting Liu and Chris Browy.
Xiushan Feng* ASIC Verification Nvidia Corporation Automatic Verification of Dependency 1 TM Jayanta Bhadra
Timed Automata.
Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
ECE Synthesis & Verification 1 ECE 667 Synthesis and Verification of Digital Systems Formal Verification Combinational Equivalence Checking.
The Theory of NP-Completeness
CSE241 Formal Verification.1Cichy, UCSD ©2003 CSE241A VLSI Digital Circuits Winter 2003 Recitation 6: Formal Verification.
Spring 07, Feb 6 ELEC 7770: Advanced VLSI Design (Agrawal) 1 ELEC 7770 Advanced VLSI Design Spring 2007 Verification Vishwani D. Agrawal James J. Danaher.
CS 536 Spring Global Optimizations Lecture 23.
White Box Testing and Symbolic Execution Written by Michael Beder.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
Prof. Fateman CS 164 Lecture 221 Global Optimization Lecture 22.
Presenter: PCLee Design Automation Conference, ASP-DAC '07. Asia and South Pacific.
Chapter 11: Limitations of Algorithmic Power
Computing Over­Approximations with Bounded Model Checking Daniel Kroening ETH Zürich.
Chapter 11 Limitations of Algorithm Power Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
Describing Syntax and Semantics
1 Formal Engineering of Reliable Software LASER 2004 school Tutorial, Lecture1 Natasha Sharygina Carnegie Mellon University.
CHAPTER 10 Recursion. 2 Recursive Thinking Recursion is a programming technique in which a method can call itself to solve a problem A recursive definition.
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
Prof. Bodik CS 164 Lecture 16, Fall Global Optimization Lecture 16.
Formal Techniques for Verification Using SystemC By Nasir Mahmood.
Streamline Verification Process with Formal Property Verification to Meet Highly Compressed Design Cycle Prosenjit Chatterjee, nVIDIA Corporation.
System/Software Testing
CSET 4650 Field Programmable Logic Devices
High level & Low level language High level programming languages are more structured, are closer to spoken language and are more intuitive than low level.
Using Mathematica for modeling, simulation and property checking of hardware systems Ghiath AL SAMMANE VDS group : Verification & Modeling of Digital systems.
CMSC 345 Fall 2000 Unit Testing. The testing process.
1 The Theory of NP-Completeness 2012/11/6 P: the class of problems which can be solved by a deterministic polynomial algorithm. NP : the class of decision.
1 Automatic Refinement and Vacuity Detection for Symbolic Trajectory Evaluation Orna Grumberg Technion Haifa, Israel Joint work with Rachel Tzoref.
1 Hybrid-Formal Coverage Convergence Dan Benua Synopsys Verification Group January 18, 2010.
Unit Testing 101 Black Box v. White Box. Definition of V&V Verification - is the product correct Validation - is it the correct product.
1 Lower Bounds Lower bound: an estimate on a minimum amount of work needed to solve a given problem Examples: b number of comparisons needed to find the.
1 The Theory of NP-Completeness 2 Cook ’ s Theorem (1971) Prof. Cook Toronto U. Receiving Turing Award (1982) Discussing difficult problems: worst case.
Propositional Calculus CS 270: Mathematical Foundations of Computer Science Jeremy Johnson.
Verification – The importance
Time Parallel Simulations I Problem-Specific Approach to Create Massively Parallel Simulations.
Verification & Validation By: Amir Masoud Gharehbaghi
Compiler Optimizations ECE 454 Computer Systems Programming Topics: The Role of the Compiler Common Compiler (Automatic) Code Optimizations Cristiana Amza.
February 22-25, 2010 Designers Work Less with Quality Formal Equivalence Checking by Orly Cohen, Moran Gordon, Michael Lifshits, Alexander Nadel, and Vadim.
Introduction to ASIC flow and Verilog HDL
Manufacture Testing of Digital Circuits
03/30/031 ECE Digital System Design & Synthesis Lecture Design Partitioning for Synthesis Strategies  Partition for design reuse  Keep related.
Equivalence checking Prof Shobha Vasudevan ECE 598SV.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Penn ESE370 Fall DeHon 1 ESE370: Circuit-Level Modeling, Design, and Optimization for Digital Systems Day 20: October 25, 2010 Pass Transistors.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
1 Software Testing. 2 What is Software Testing ? Testing is a verification and validation activity that is performed by executing program code.
COE 360 Principles of VLSI Design Delay. 2 Definitions.
Proof And Strategies Chapter 2. Lecturer: Amani Mahajoub Omer Department of Computer Science and Software Engineering Discrete Structures Definition Discrete.
Software Testing.
ASIC Design Methodology
Testing Tutorial 7.
Abstraction and Refinement for Large Scale Model Checking
Software Engineering (CSI 321)
VLSI Testing Lecture 14: System Diagnosis
Propositional Calculus: Boolean Algebra and Simplification
Property Directed Reachability with Word-Level Abstraction
Hardware Description Languages
Chapter 11 Limitations of Algorithm Power
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Timing Analysis and Optimization of Sequential Circuits
ECE 352 Digital System Fundamentals
ECE 352 Digital System Fundamentals
Lecture 23 NP-Hard Problems
Presentation transcript:

Xiushan Feng* ASIC Verification Nvidia Corporation Assertion-Based Design Partition 1 TM Jayanta Bhadra, Ross Patterson {JayantaBhadra, {JayantaBhadra, Freescale Semiconductor *The work is done when the author worked at Freescale

Docket – MT11774TS Problem Statement – Assertion-Based Design Verification Challenges ► Assertion-Based Verification is broadly used in circuit verification Increase the visibility of internal signals Use assertions as checkers. Pass of assertions == pass of verification Verify the correctness of design – improve the quality ► For large designs, simulation speed is slow and may blow up formal verification due to exponential state space. Slow down verification process – more resource, longer design cycles. For certain cases, it is not feasible to verify certain assertions. ► Most time, partial design is good enough to verify assertions. For example, for SOC PAD connectivity check, assertions are written to verify that signals can propagate from source to target under certain conditions. We don’t need logic that drives sources, loads values from targets. Unneeded logic usually is VERY big, removing them can achieve huge gains ► However, manually identifying and removing unneeded logic is very hard. Need to understand assertions and the design indent Failing to include logic can cause false verification results. ► An automatic solution is possible using Assertion-Based Partition 2

Docket – MT11774TS Verification (simulation or formal verification) The Current Verification Environment 3 RTL Constraints Pass/Fail & Circuit Debug Compiled database is huge. Verification is slowed down More resources needed (licenses, engineering hours, computing machines) This technique attempts to reduce verification cycles and improve verification quality RTL Compile Assertions

Docket – MT11774TS RTL Compile The Proposed Verification Environment 4 LEGEND: Yellow: NEW White: Prior Art RTL Assertions Pass/Fail & Circuit Debug 1.Signal propagation Signal reachability 2. Get boundary signals in ABV Constraints 3. Condition-base design partition with formal prove Assertions1 Assertions2 Verification (simulation or formal verification) RTL(partitioned)

Docket – MT11774TS Definition of Signal Propagation and Reachability 5 a a' ABCD Signal Propagation: a is directly connected by wires to a’. i.e., a and a’ are interchangeable inside the assertions, assign B = A;assign D = C; Signal Reachability: If signal S1 is inside fan-in logic cone of signal S2, then S2 is reachable by S1. D is reachable by A, B, but not C. A B C D E E D C A B partially ordered graph assertion: assert property (condition |->a == ….) update assertion: assert property (condition |->a’ == …) foobar RTL: FOO foo (.A(a),.B(X)…); BAR bar (.C(X),.D(a’)…); X

Docket – MT11774TS Signal Propagation and Reachability Computation 6 For each assertion, compute the boundary points For each pair of signals x, y of the assertion, compute whether y can be (forward/backward) reached by x. Reachable ? Y assertions state stage partially ordered graph Build directed edge from z to y Compute state stage graph with all signals of assertions replace x by z in assertions. X tied to z && z is on the path from x to y Y N RTL

Docket – MT11774TS Example 7 inputs ast0 inputs ast0 state stage partially ordered graph State points (Latch/Flop) output Signal propagation and reachability

Docket – MT11774TS Get Boundary Signals 8 partially ordered graph Keep lower bound and upper bounds Boundary signals State points (Latch/Flop) inputs ast0 output inputs ast0 output

Docket – MT11774TS Conditional RTL Partition with Formal Prove 9 inputs ast0 ast1 output lower bounds  inputs (IN) upper bounds  outputs (OUT) Boundary signals Assertions1 Conditional compute cone of influence for all OUT Constraints RTL (partitioned) RTL Assertions2 (Optimized)

Docket – MT11774TS Conditional RTL Partition with Formal Prove – Cont. 10 For each OUT, backward partition RTL. When hit a condition, build symbolic expression for condition and prove the condition Assertions1 compute cone of influence for both cases Constraints RTL (partitioned) RTL Assertions2 (Optimized) prove? N Partition RTL only for proven case. Update assertion based proven results Formal prove engine

Docket – MT11774TS Build Symbolic Expression for Conditions and Prove 11 R Constraints cond R: Register IN: Input Recursively build expression for each fan-in f_in is R/IN? Y Terminate from the recursive procedure get fan-ins (f_ins) of cond expr(cond) = f (f_ins) N symbolic expression Constraints Formal prove engine True/False Light-weight No expression blow up

Docket – MT11774TS Example 12 a b' ABCD assign B = A; b cond For example: Input X, Y; b’ = (cond)? b : C … If we can prove cond is always true, then we don’t need to trace path for signal C. we know b’ = b, and use it to update assertions and propagate signal. If we can prove cond is always false, then, we just need to trace signal C and propagate signals if feasible. R

Docket – MT11774TS Assertion Grouping and Parallel ► Concept of assertion groups Assertions have hidden “locations”  Logic regions  Assertion types Assertion-based partition can be done on assertion groups ► Assertion groups can be verified in parallel with design partitions  Groups are verified independently.  Verification results inside one region can be re-used by others. E.g., verified proves can be assumptions for others, etc. ► Assume-and-guarantee is done at the boundary of groups. One assertion can be re-written into multiple ones that belong to different groups. Abstraction techniques are done differently for groups.  E.g., Assertions of analog behavior models are verified inside analog groups. Verification of digital groups has analog blackboxed and analog drivers properly constrained, which will be proven by analog assertions. 13

Docket – MT11774TS Assertion Grouping Example 14 R1 R2 inputs R3 output ► Several groups of assertions that verify a few logic regions Logic needed to prove a group may not be necessary for another Inputs of a region can be outputs of another  cutpoints can force internal wires as inputs ► One assertion can be broken down into multiple assertions. For example, enable and reg  R1; foo, bar, A, B  R1 ast: enable && reg[19] && bar |-> A == B can be replaced by  ast1: enable && reg[19] |-> foo  ast2: foo && bar -> A ==B

Docket – MT11774TS Results ► We applied the ideas on Freescale PAD IO verification. ► Without the ideas, original formal verification ran weeks and required VERY large machines (>100GB) A smaller and simpler design took >1week on large machines but didn’t get good coverage. This highlighted the need for this work ► With ABP, we are able to prove 25+K assertions within 2.5 hours. ► Critical SOC-level bugs were caught ! 15 With this disclosure Without this disclosure Memory Usage<4G (normal machine is enough)> 100G Licenses used<30100 Simulation RuntimeReduced Significantly – 2.5 hours (> 100X reduction) Could be several weeks DebugDebugging is possible and easier (therefore quicker) GUI Debugging is not feasible