Chris Wilson and David L. Dill Computer Systems Laboratory Stanford University June, 2000 Reliable Verification Using Symbolic Simulation with Scalar Values.

Slides:



Advertisements
Similar presentations
Copyright 2000 Cadence Design Systems. Permission is granted to reproduce without modification. Introduction An overview of formal methods for hardware.
Advertisements

Introduction to Formal Methods for SW and HW Development 09: SAT Based Abstraction/Refinement in Model-Checking Roberto Sebastiani Based on work and slides.
Xiushan Feng* ASIC Verification Nvidia Corporation Automatic Verification of Dependency 1 TM Jayanta Bhadra
Methods of Proof Chapter 7, second half.. Proof methods Proof methods divide into (roughly) two kinds: Application of inference rules: Legitimate (sound)
The Efficiency of Algorithms
Methods of Proof Chapter 7, Part II. Proof methods Proof methods divide into (roughly) two kinds: Application of inference rules: Legitimate (sound) generation.
1 Lecture 10 Sequential Circuit ATPG Time-Frame Expansion n Problem of sequential circuit ATPG n Time-frame expansion n Nine-valued logic n ATPG implementation.
ECE Synthesis & Verification 1 ECE 667 Synthesis and Verification of Digital Systems Formal Verification Combinational Equivalence Checking.
IBM Labs in Haifa © 2005 IBM Corporation Adaptive Application of SAT Solving Techniques Ohad Shacham and Karen Yorav Presented by Sharon Barner.
Practice Quiz Question
Background for “KISS: Keep It Simple and Sequential” cs264 Ras Bodik spring 2005.
SLAM: SLice And Merge – Effective Test Generation for Large Systems ICCAD’13 Review Reviewer: Chien-Yen Kuo.
6/14/991 Symbolic verification of systems with state machines David L. Dill Jeffrey Su Jens Skakkebaek Computer System Laboratory Stanford University.
SAT and Model Checking. Bounded Model Checking (BMC) A.I. Planning problems: can we reach a desired state in k steps? Verification of safety properties:
Weizmann Institute Tuning SAT-checkers for Bounded Model-Checking A bounded guided tour Ofer Shtrichman Weizmann Institute & IBM (HRL)
Proof methods Proof methods divide into (roughly) two kinds: –Application of inference rules Legitimate (sound) generation of new sentences from old Proof.
Willis Lemasters Grant Conklin. Searching a tree recursively one branch at a time, abandoning any branch which does not satisfy the search constraints.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
Spring 07, Feb 8 ELEC 7770: Advanced VLSI Design (Agrawal) 1 ELEC 7770 Advanced VLSI Design Spring 2007 Logic Equivalence Vishwani D. Agrawal James J.
Bounded Model Checking EECS 290A Sequential Logic Synthesis and Verification.
Methods of Proof Chapter 7, second half.
Analysis of Algorithms CS 477/677
Swerve: Semester in Review. Topics  Symbolic pointer analysis  Model checking –C programs –Abstract counterexamples  Symbolic simulation and execution.
Weizmann Institute Tuning SAT-checkers for Bounded Model-Checking A bounded guided tour Ofer Shtrichman Weizmann Institute & IBM-HRL.
Computing Over­Approximations with Bounded Model Checking Daniel Kroening ETH Zürich.
1 Abstraction Refinement for Bounded Model Checking Anubhav Gupta, CMU Ofer Strichman, Technion Highly Jet Lagged.
Knowledge Representation II (Inference in Propositional Logic) CSE 473 Continued…
Application of Formal Verification Methods to the analysis of Bearings-only Ballistic Missile Interception Algorithms Eli Bendersky Michael Butvinnik Supervisor:
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
USING SAT-BASED CRAIG INTERPOLATION TO ENLARGE CLOCK GATING FUNCTIONS Ting-Hao Lin, Chung-Yang (Ric) Huang Graduate Institute of Electrical Engineering,
Analysis of Simulation Results Andy Wang CIS Computer Systems Performance Analysis.
Software faults & reliability Presented by: Presented by: Pooja Jain Pooja Jain.
Streamline Verification Process with Formal Property Verification to Meet Highly Compressed Design Cycle Prosenjit Chatterjee, nVIDIA Corporation.
Multiple Processor Systems. Multiprocessor Systems Continuous need for faster and powerful computers –shared memory model ( access nsec) –message passing.
Mugil Vannan H ST Microelectronics India Pvt. Ltd, Noida
INTRODUCTION TO ARTIFICIAL INTELLIGENCE COS302 MICHAEL L. LITTMAN FALL 2001 Satisfiability.
Agenda Introduction Overview of White-box testing Basis path testing
Benefits of Bounded Model Checking at an Industrial Setting F.Copty, L. Fix, R.Fraer, E.Giunchiglia*, G. Kamhi, A.Tacchella*, M.Y.Vardi** Intel Corp.,
1 Hybrid-Formal Coverage Convergence Dan Benua Synopsys Verification Group January 18, 2010.
C++ Programming Language Lecture 2 Problem Analysis and Solution Representation By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
European Test Symposium, May 28, 2008 Nuno Alves, Jennifer Dworak, and R. Iris Bahar Division of Engineering Brown University Providence, RI Kundan.
Survey Propagation. Outline Survey Propagation: an algorithm for satisfiability 1 – Warning Propagation – Belief Propagation – Survey Propagation Survey.
On the Relation between SAT and BDDs for Equivalence Checking Sherief Reda Rolf Drechsler Alex Orailoglu Computer Science & Engineering Dept. University.
Cut-Based Inductive Invariant Computation Michael Case 1,2 Alan Mishchenko 1 Robert Brayton 1 Robert Brayton 1 1 UC Berkeley 2 IBM Systems and Technology.
Verification & Validation By: Amir Masoud Gharehbaghi
Properties Incompleteness Evaluation by Functional Verification IEEE TRANSACTIONS ON COMPUTERS, VOL. 56, NO. 4, APRIL
The Hashemite University Computer Engineering Department
1 Propositional Logic Limits The expressive power of propositional logic is limited. The assumption is that everything can be expressed by simple facts.
CS357 Lecture 13: Symbolic model checking without BDDs Alex Aiken David Dill 1.
Inference in Propositional Logic (and Intro to SAT) CSE 473.
1 Boolean Satisfiability (SAT) Class Presentation By Girish Paladugu.
Equivalence checking Prof Shobha Vasudevan ECE 598SV.
1 Memory Test - Debugging Test Vectors Without ATE Steve Westfall Director Visual Testbench Engineering Summit Design Inc.
Proof Methods for Propositional Logic CIS 391 – Intro to Artificial Intelligence.
REGISTER TRANSFER LANGUAGE (RTL) INTRODUCTION TO REGISTER Registers1.
1 Alan Mishchenko Research Update June-September 2008.
Rick Walker Evaluation of Out-of-Tolerance Risk 1 Evaluation of Out-of-Tolerance Risk in Measuring and Test Equipment Rick Walker Fluke - Hart Scientific.
On the Relation Between Simulation-based and SAT-based Diagnosis CMPE 58Q Giray Kömürcü Boğaziçi University.
Speaker: Nansen Huang VLSI Design and Test Seminar (ELEC ) March 9, 2016 Simulation-Based Equivalence Checking.
Inference in Propositional Logic (and Intro to SAT)
REGISTER TRANSFER LANGUAGE (RTL)
GC101 Introduction to computers and programs
Parallelism in SAT Solvers
Lecture 10 Sequential Circuit ATPG Time-Frame Expansion
Simple Circuit-Based SAT Solver
ECE 667 Synthesis and Verification of Digital Circuits
Formal Verification of Partial Good Self-Test Fencing Structures
Automatic Test Pattern Generation
Methods of Proof Chapter 7, second half.
Improved Design Debugging using Maximum Satisfiability
Presentation transcript:

Chris Wilson and David L. Dill Computer Systems Laboratory Stanford University June, 2000 Reliable Verification Using Symbolic Simulation with Scalar Values

Verification Bottleneck time Bug rate Many “easy” fewer “hard” Directed testing Random testing “purgatory” tapeout

Current Approach time Bug rate Directed testing random testing Model checking emulation semi-formal methods

Our Approach time Bug rate Key issue: Reliability! Symbolic simulation

Reliability Definition:  Always gives some coverage when resource limits encountered.  Gives coverage proportional to effort. Ease of use  predictable coverage  useful feedback  easy to debug

Efficiency Efficiency = Coverage/Unit Effort Coverage  specified functionality  “input space” Effort  manpower  computer resource usage  schedule

Reliability vs. Efficiency Reliability Efficiency Directed testing Random testing Emulation Model Checking % of bugs found

Goal Have the reliability, ease of use of directed testing. AND… efficiency equal or greater than random testing.

Reliability vs. Efficiency Reliability Efficiency Directed testing Random testing Emulation Model Checking Target area

Symbolic test = directed test with symbolic values Symbolic Simulation datain address interrupt dataout DUT req valid request = counter 0101 “read” “write” =0 pass/ fail dly

Symbolic Simulation Efficiency  1 symbolic test many directed tests. Ease of use  short tests => easy to write, debug. Blow up?  BDDs too unpredictable. How to prevent blow up?

Quasi-symbolic simulation Symbolic simulation externally scalar values internally  simulation run requires constant memory. Key ideas  Don’t compute exact value unless necessary. many don’t cares in large designs.  Trade time for memory. Multiple runs to generate exact values.

Don’t care logic Basic Algorithm & & & & X a a X b b X c c Symbolic variable X -a X a a 0 Obeys law of excluded middle! X Conservative approximation X X X “traditional” X value 0 Don’t care variables

Decision Procedure X a a X b b X X X & O O

Davis-Putnam Algorithm Tree Search…  Davis, Logemann, Loveland [DPLL62]. X a=0 a=1 X b=0 b=1 0 0 X 0 evaluate case split unit propagate

Decision Procedure X ? a=0 a=1 Variable selection heuristic: pick relevant variable by propagating from inputs. & & O X a a X b b X X X X b b X b b 0 ? 0 Test is Unsatisfiable!

Reactivity Reactive Test  test behavior depends on circuit. Most tests require reactivity  since goal is to find all bugs…  must support reactivity efficiently.

Reactivity example Set ‘request’ = READ; Set ‘reqv’ = “1”; wait for ‘ack’; check that ‘data’ = expected_data; stop;

Reactivity example Set ‘request’ = READ; Set ‘reqv’ = “1”; wait for ‘ack’; check that ‘data’ = expected_data; stop; What if ‘ack’ = “X”?

Wait Statement Set ‘request’ = READ; Set ‘reqv’ = “1”; wait for ‘ack’; check that ‘data’ = expected_data; stop; wait for ‘ack’ == “1”; ‘ack’ == F = “X” ‘ack’ == T = “X” Virtual thread

wait for ‘ack’; Cycle 2 check that ‘data’ = expected_data; stop; ‘ack’ == T = “X” wait for ‘ack’; ‘ack’ == F = “X”

Stopping check that ‘data’ = expected_data; stop; Guard = “X” Stop? or not stop?

Modify Davis-Putnam... if guard condition = “X” when stopped…  prove that test can really stop in this cycle.  Case split on guard condition. case split on fail/pass condition only if stop = “1”. Stopping

Modify Davis-Putnam... if guard condition = “X” when stopped…  prove that test can really stop in this cycle.  Case split on guard condition. Do not allow unit propagation. case split on fail/pass condition only if stop = “1”.  Unit propagation is allowed. Disallowing unit propagation allows method to be complete.

Related Work BDD-based Symbolic Simulation  STE [BryantSeger95], Innologic. Sequential ATPG SAT/ATPG-based Model Checking  BMC [Biere99], [Boppana99] Other SAT-based Semi-Formal Methods  [Ganai99]

Experiments Show that quasi-symbolic simulation can find bugs.  Test case bugs do not cause bottlenecks. Demonstrate graceful degradation  get good coverage if simulation time limit hit.

Experiment 1 Write/debug testcase for “hard” bug.  140K gate industrial design.  Not found in simulation or bringup! Four possible results  SAT - test case error.  TIMEOUT - test case error (device timeout.)  UNSAT - no bug found.  BUG - bug found.

Experiment 1 SAT TIMEOUT UNSAT BUG casesevalstime(sec.)

Experiment 2 Time limit hit! Highest covered sub-node

Experiment 2 Number of dependent variables in the test Maximum tree size

Conclusions Want to find all bugs faster.  Reliability is key. Use quasi-symbolic simulation  has the efficiency of random testing.  And reliability of directed testing. Experiments show it can be used as primary verification method.