FPV For Design Exploration Erik Seligman CS 510, Lecture 11, February 2009.

Slides:



Advertisements
Similar presentations
Object Oriented Analysis And Design-IT0207 iiI Semester
Advertisements

1 IP-Based System-on-Chip Design 2002 IP Reuse Hardening via Embedded Sugar Assertions Erich Marschner 1, Bernard Deadman 2, Grant Martin 1 1 Cadence Design.
Implementation and Verification of a Cache Coherence protocol using Spin Steven Farago.
Using Formal Verification to Replace Mainstream Simulation Erik Seligman Intel Brandon Smith Intel
Verifying Performance of a HDL design block
April 30, A New Tool for Designer-Level Verification: From Concept to Reality April 30, 2014 Ziv Nevo IBM Haifa Research Lab.
Lab # 03- SS Basic Graphic Commands. Lab Objectives: To understand M-files principle. To plot multiple plots on a single graph. To use different parameters.
Putting It All Together: Using Formal Verification In Real Life Erik Seligman CS 510, Lecture 19, March 2009.
Handling Complexity in FEV Erik Seligman CS 510, Lecture 6, January 2009.
Clock Domain Crossing (CDC)
Cut Points On Steroids: Handling Complexity for FPV
Introduction to Formal Property Verification (FPV)
Transaction Management: Concurrency Control CS634 Class 17, Apr 7, 2014 Slides based on “Database Management Systems” 3 rd ed, Ramakrishnan and Gehrke.
Control path Recall that the control path is the physical entity in a processor which: fetches instructions, fetches operands, decodes instructions, schedules.
Lecture 12 Reduce Miss Penalty and Hit Time
Multi-core systems System Architecture COMP25212 Daniel Goodman Advanced Processor Technologies Group.
- Verifying “Golden” reused IPs The Evil’s in the Edits William C Wallace Texas Instruments Nitin Jayaram Texas Instruments Nitin Mhaske Atrenta Inc Vijay.
1 MODULE name (parameters) “Ontology” “Program” “Properties” The NuSMV language A module can contain modules Top level: parameters less module Lower level.
Xiushan Feng* ASIC Verification Nvidia Corporation Automatic Verification of Dependency 1 TM Jayanta Bhadra
Timing Override Verification (TOV) Erik Seligman CS 510, Lecture 18, March 2009.
The Secrets of Practical Verification… © 2008 Think Verification.
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.
Topics in Programming Reactive Systems Prof. Ronen Brafman and Dr. Gera Weiss.
Reporter:PCLee With a significant increase in the design complexity of cores and associated communication among them, post-silicon validation.
Introduction to InfoSec – Recitation 6 Nir Krakowski (nirkrako at post.tau.ac.il) Itamar Gilad (itamargi at post.tau.ac.il)
1 CS 106, Winter 2009 Class 2, Section 4 Slides by: Dr. Cynthia A. Brown, Instructor section 4: Dr. Herbert G. Mayer,
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
EE694v-Verification-Lect5-1- Lecture 5 - Verification Tools Automation improves the efficiency and reliability of the verification process Some tools,
Formal verification Marco A. Peña Universitat Politècnica de Catalunya.
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
VerificationTechniques for Macro Blocks (IP) Overview Inspection as Verification Adversarial Testing Testbench Design Timing Verification.
Scenario testing Tor Stålhane. Scenario testing – 1 There are two types of scenario testing. Type 1 – scenarios used as to define input/output sequences.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Analysis of Simulation Results Andy Wang CIS Computer Systems Performance Analysis.
Classics Of FPV Erik Seligman CS 510, Lecture 10, January 2009.
1 Data Structures CSCI 132, Spring 2014 Lecture 3 Programming Principles and Life Read Ch. 1.
Using Formal Verification to Exhaustively Verify SoC Assemblies by Mark Handover Kenny Ranerup Applications Engineer ASIC Consultant Mentor Graphics Corp.
EXECUTION OF COMPLETE INSTRUCTION
Digital System Verification. VERIFICATION OUTLINE Purpose of Verification –Verification effort and cost Verification Tools –Linting tools –Code Coverage.
1 Hybrid-Formal Coverage Convergence Dan Benua Synopsys Verification Group January 18, 2010.
DEBUGGING. BUG A software bug is an error, flaw, failure, or fault in a computer program or system that causes it to produce an incorrect or unexpected.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
1 © 2010 Cisco and/or its affiliates. All rights reserved. 1 Nalin Nimavat (Cisco Systems) Vigyan Singhal (Oski Technology)
Scientific Debugging. Errors in Software Errors are unexpected behaviors or outputs in programs As long as software is developed by humans, it will contain.
Constraints Assisted Modeling and Validation Presented in CS294-5 (Spring 2007) Thomas Huining Feng Based on: [1]Constraints Assisted Modeling and Validation.
© Copyright Alvarion Ltd. SVA Dafna Senderovich Jan 2006.
February 22-25, 2010 Designers Work Less with Quality Formal Equivalence Checking by Orly Cohen, Moran Gordon, Michael Lifshits, Alexander Nadel, and Vadim.
Chapter. 3: Retrieval Evaluation 1/2/2016Dr. Almetwally Mostafa 1.
CS 478: Microcontroller Systems University of Wisconsin-Eau Claire Dan Ernst Bus Protocols and Interfacing Bus basics I/O transactions MPC555 bus Reference:
Introduction to Hardware Verification ECE 598 SV Prof. Shobha Vasudevan.
Winter 2007SEG2101 Chapter 121 Chapter 12 Verification and Validation.
CS 5150 Software Engineering Lecture 21 Reliability 2.
Cookie-cutter properties to assist non Formal experts Bin Xue.
TQS - Teste e Qualidade de Software (Software Testing and Quality) Test Case Design – Model Based Testing João Pascoal.
Introduction to System Verilog Assertions
CHP - 9 File Structures.
Digital System Verification
Engineering and Debugging an App Chapter 15
Introduction to Information Security
BASICS OF SOFTWARE TESTING Chapter 1. Topics to be covered 1. Humans and errors, 2. Testing and Debugging, 3. Software Quality- Correctness Reliability.
Assertions An assertion is a statement about the design’s intended behavior Assertions can be written in a hardware description language (HDL) Assertions.
Basic Processing Unit Unit- 7 Engineered for Tomorrow CSE, MVJCE.
Formal Verification of Partial Good Self-Test Fencing Structures
Chapter 1 Introduction(1.1)
Chapter 5 Exploiting Memory Hierarchy : Cache Memory in CMP
CS/COE0447 Computer Organization & Assembly Language
Cool FPV Tricks: Reaching Deep Bounds With Not-Quite-Formal Methods
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
File System Performance
Presentation transcript:

FPV For Design Exploration Erik Seligman CS 510, Lecture 11, February 2009

Agenda  Basic Concept  RTL Exploration: Simple Example  FPV as RTL Spec Analysis (Thatcher/Chen)  Behavioral Indexing

Agenda  Basic Concept  RTL Exploration: Simple Example  FPV as RTL Spec Analysis (Thatcher/Chen)  Behavioral Indexing

Design Exploration: When Needed?  Ownership handover / job transition  Newly written block, lacking confidence  Old design that needs updating  Receive IP from external team  Simulation may be available But may only show typical/expected traffic How do you understand atypical situations?

Fundamental Principle With FPV, you can specify where you want to go, and the tool figures out how to get there!  Very different from simulation For simulator, need to generate test vectors Lots of effort to test hard-to-reach situation

FPV for RTL Exploration?  FPV finds “interesting” corner cases Comes up with ways to violate expectations Tends to drive atypical traffic Often not tests you would have written  Use it to help RTL understanding View CEX for cover points Refine with additional assumptions –May constrain model to interesting part of space Challenging if very complex interface to block –Traffic less meaningful if fundamental assumes missing –But can mitigate with intentional over-constraint –Also: use assumes on internals, or asserts as assumes

How To Do it  Load design into FPV tool  Add cover point to view some behavior Best tools let you do this on-the-fly Manually add SVA cover with other tools  Observe & refine for “interesting” trace Create additional assumptions after viewing –Restrict some inputs in certain cycles –Require desired values on outputs Again, on-the-fly or SVA depending on tool

Agenda  Basic Concept  RTL Exploration: Simple Example  FPV as RTL Spec Analysis (Thatcher/Chen)  New Methods to Characterize RTL

Arbiter Example  Looking at example from JG doc dir  Initially don’t know much about design  Get started by looking at interface: input clk, rstN; // Clock and reset (active low) input int_ready; input int_valid; input trans_started; input [3:0] ig_req; output [1:0] ig_sel;  To view arbiter activity, let’s start by covering case where agent 1 selected ig_sel == 2’b01

Start Visualizer

Initial Plot

More Realistic Start?

Better Plot

Compete With Agents 2/3?

More Interesting Plot

Can Agent 1 Get Grant Without Request?

No! (Formal Proof)

Fix Too-Constant Inputs

Continue Fixing Inputs

Interesting Twist: Now Other Bus Wins First

‘Why’ Tracing If Desired

Is Non-Grant to Agent 1 a Necessary Effect? -- Try Freeze

Now Look For Grant After…

Grant 1 Not Possible Now!

Agenda  Basic Concept  RTL Exploration: Simple Example  FPV as RTL Spec Analysis (Thatcher/Chen)  Behavioral Indexing

The Concept  Why wait until RTL is written? Specify basic behavior with assertions  Then prepare env to run FPV Make assertions into assumptions Add cover points as FPV targets  Result: see behavior allowed by design Coverage traces from FPV Discover gaps in assumptions Discover corner cases that need thought

Flowchart

Traffic Light Example

Initial Specification 1) Green or yellow light  cross street gets red light. 2) Lights change in green, yellow, red sequence. 3) Traffic at red light  gets green light if no traffic on cross street. 4) Traffic must not wait more than 5 ticks at a red light. 5) Traffic does not reset until green light appears. (No Right-On-Red!) Q: Is this spec sufficient and/or complete? Convert to SVA assertions to find out…

FPV Runs  Coverage points created Each light sees each color Cars waiting max time at each light  FPV run, waveforms viewed Unexpected results –Green and red lights on Main at same time –Looong yellow light (length not bounded) –No lights / all-red situations allowed Nothing in original spec prevented these! Assertions (assumptions) added in response

OpenSparc T1 Cache  Multiple cores accessing memory  Credit-based Agent can request memory based on credits Multi-cycle op may require >1 credit  Similar early-FPV technique used  Important properties Request only if proper # of credits One-hot grants bus No grants without requests

Things To Consider  Method not guaranteed to find bugs Looking at specific coverage points May miss ‘dangerous’ situations  Complex cover pts are more interesting Refine after initial FPV: add assumptions  Consider adding safety assertions If you think safety should be fully ensured by def of protocol

Agenda  Basic Concept  RTL Exploration: Simple Example  FPV as RTL Spec Analysis (Thatcher/Chen)  Behavioral Indexing

Growth of Design Reuse  RTL often reused by later teams  Ownership often changes Knowledge lost Hard to find people to consult  How is IP documented? Usually static plain-English word doc Some example waveforms  Dangerous to touch! Expected behavior unknown in many cases How specific are waveforms in document?

Idea: Behavioral Indexing  Jasper DesignCon 2009 Paper  IP designer specifies cover points Then get waveforms from FPV tool  Store FPV data structures & waveforms Store prereqs to re-generate from RTL Annotation mechanism for IP owner –Mark important transitions –Designate ‘events’ (pre-defined sequences) that are important Also connect transitions to source code

Behavioral Indexing Benefits  Basic understanding Bring up waveforms, follow transitions Query about “why” to source code  “What-if” questions Bring up FPV visualizer on modified RTL Attempt to generate same waveforms Look for annotated transactions! –If they are gone, figure out why  Launching Point for FPV

References / Further Reading  enThatcherProtocolVisualizationPaperFi nal.pdf enThatcherProtocolVisualizationPaperFi nal.pdf  =330 =330  perDA-DesignCon%202009%20Paper- Final.pdf perDA-DesignCon%202009%20Paper- Final.pdf