Cookie-cutter properties to assist non Formal experts Bin Xue.

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

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
Putting It All Together: Using Formal Verification In Real Life Erik Seligman CS 510, Lecture 19, March 2009.
Introduction to Formal Property Verification (FPV)
FPV For Design Exploration Erik Seligman CS 510, Lecture 11, February 2009.
1 MODULE name (parameters) “Ontology” “Program” “Properties” The NuSMV language A module can contain modules Top level: parameters less module Lower level.
Testing and Quality Assurance
Temporal Logic and the NuSMV Model Checker CS 680 Formal Methods Jeremy Johnson.
Xiushan Feng* ASIC Verification Nvidia Corporation Automatic Verification of Dependency 1 TM Jayanta Bhadra
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.
The Future of Formal: Academic, IC, EDA, and Software Perspectives Ziyad Hanna VP of Research and Chief Architect Jasper Design Automation Ziyad Hanna.
1 Assertion Based Verification 2 The Design and Verification Gap  The number of transistors on a chip increases approximately 58% per year, according.
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,
---Confidential 1 Order Management Training. ---Confidential 2 Introduction Three cycles in Oracle Applications Plan to make. Order to cash Procure to.
Streamline Verification Process with Formal Property Verification to Meet Highly Compressed Design Cycle Prosenjit Chatterjee, nVIDIA Corporation.
Using Mathematica for modeling, simulation and property checking of hardware systems Ghiath AL SAMMANE VDS group : Verification & Modeling of Digital systems.
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.
FORMAL VERIFICATION OF ADVANCED SYNTHESIS OPTIMIZATIONS Anant Kumar Jain Pradish Mathews Mike Mahar.
Introduction to OVL (Open Verification Library) Alexander Gnusin.
Introduction to Formal Verification using Rulebase April 18, 2001 Rebecca Gott eServer I/O Development Hardware Verification
© 2006 Synopsys, Inc. (1) CONFIDENTIAL Simulation and Formal Verification: What is the Synergy? Carl Pixley Disclaimer: These opinions are mine alone and.
ECE-C662 Lecture 2 Prawat Nagvajara
Verification & Validation By: Amir Masoud Gharehbaghi
© 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.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
oracle apps order management training
Chapter 3 Lists, Stacks, Queues. Abstract Data Types A set of items – Just items, not data types, nothing related to programming code A set of operations.
scheduling for local-area networks”
ECE 353 Lab 3 Pipeline Simulator
Types for Programs and Proofs
Hardware Verification
Synthesis for Verification
Introduction Introduction to VHDL Entities Signals Data & Scalar Types
Multilevel Memories (Improving performance using alittle “cash”)
Chapter 8 – Software Testing
Packaging & Distribution Project Summary Report
Improving Scilab’s Xcos User Interface
Reasoning About Code.
Reasoning about code CSE 331 University of Washington.
Software Testing With Testopia
Formal Methods in Software Engineering
Introduction to Events
Applied Software Implementation & Testing
ZIMS Studbooks Data Tracking, Reports, and Tools
Alon Flaisher Alon Gluska Eli Singerman Intel Corporation
A Balanced Introduction to Computer Science David Reed, Creighton University ©2005 Pearson Prentice Hall ISBN X Chapter 13 (Reed) - Conditional.
Engineering Processes
VISUAL BASIC.
Chapter 6: CPU Scheduling
21 November 2018 Implementing Rule Checking Early in the Design Cycle to Reduce Design Iterations and Verification Time Kent Moffat DesignAnalyst Product.
Aspect Validation: Connecting Aspects and Formal Methods
M Achutha KiranKumar V Bindumadhava S S Abhijith A Bharadwaj
ECE-C662 Introduction to Behavioral Synthesis Knapp Text Ch
Formal Verification of Partial Good Self-Test Fencing Structures
Morgan Kaufmann Publishers Memory Hierarchy: Cache Basics
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Language-based Security
Cool FPV Tricks: Reaching Deep Bounds With Not-Quite-Formal Methods
PMI-SVC Scheduling Forum
Digital Design Verification
SystemVerilog and Verification
Chapter 5 Architectural Design.
ECE 448 Lecture 6 Finite State Machines State Diagrams, State Tables, Algorithmic State Machine (ASM) Charts, and VHDL code ECE 448 – FPGA and ASIC Design.
CSE 451 Section 1/27/2000.
A Balanced Introduction to Computer Science David Reed, Creighton University ©2005 Pearson Prentice Hall ISBN X Chapter 13 (Reed) - Conditional.
Presentation transcript:

Cookie-cutter properties to assist non Formal experts Bin Xue

Overview Spec Implement checkers Implement RTL RUN FV checkers failed ? RTL bug? Add constraints Fix RTL Update constraints or checkers RTL designer FV engineer

Challenge of FV deployment Spec Implement FV checkers Implement RTL RUN FV checkers failed ? RTL bug? Add constraints Fix RTL Update constraints or checkers RTL designer FV engineer

Solution Spec Implement checkers Implement RTL RUN FV checkers failed ? RTL bug? Add constraints Fix RTL Update constraints or checkers RTL designer FV engineer FV lib

Agenda What is a cookie cutter set Formal deployment across multiple groups with the help of cookie cutter set Assisting designers to write internal interface assertions with examples Advantages

The Cookie Cutter Set Generic set of properties applicable to various structures in a design. Arbiters Transport FIFOs RAMs State-Machines Cache Forward Progress ….

The Cookie cutter set Reusable set of properties or libraries Can be deployed across multilple users No Formal expertise required Formal verification experts develop the golden set

Cookie Cutter FPV (Formal Property Verification) successfully deployed across designers 1. Guided designers to - write cookie-cutter assertions and - apply cookie cutter proof and bug hunting tricks 2. A sub-set of FV engineers helped with only writing input constraints 3. Parameterized down the design size 4. Designers pressed the button  proof, bug, or unknown 5. Ignored the unknowns and moved on

Assertion – Assumption categories COMBO : A signal or a combination of signals should always obey a certain relationship every cycle (assert_always/never/one_hot/zero_one_hot/implication/bi_implication) between current and previous cycle UNTIL_BEFORE : If a start_event happens then a signal or a combination of signals should assert or hold its value until end_event (assert_hold_throughout_event_interval) change its value after that start_event and before an end_event

Assertion – Assumption categories TRANSPORT : No data or control information gets illegally (assert_fv_{in/out_of/priority}_order_bus_1_to_1) dropped duplicated out of ordered stuck inside DUT forever more responded than requested or responded with garbage LATENCY : An event should happen within finite amount of time SEQUENCE: If a pre-sequence of events happen then a post-sequence of events will follow A sequence of events must never happen (assert_fv_never_sequence)

Assisting designers to write internal interface assertions Develop cookie cutter set Auto generated assertions by Jasper property synthesis tool (SPS/BPS) One hot assertions Counter over/under-flow wires, flops, and expressions stuck at 0 or 1 forever FSM stuck at a state forever Array out of bound

Cookie cutter examples Arbiter grant is zero one hot if client req then don’t de-assert req until gnt if at least 1 client req then gnt>0 gnt must be to a requesting client don’t gnt when downstream busy Fairness: if (req1 && req2 && gnt1) then !gnt1 until gnt2 max latency to get a gnt for a req

Examples Transport (in-order, priority-order, & out-of-order) max_latency checks max latency between successive responses Not all requests are required to come out in order with respect to each other. Need to properly qualify req_granted to only select those sub-set of requests that need to come out in-order. Checks that rsp to req don’t get dropped duplicated Out of order stuck for > max_latency cycles responded consecutively per ID not interleaved between IDs > max_outstanding

Examples Equivalent of "end of simulation" properties Type of structureEnd of test check needed Queues using head/tail pointersQueue is empty Queues using creditsAll credits returned Entry ID/Resource based queueAll IDs released, queue is empty FIFO/LIFO/StackFull/empty signal, pointers, etc checked CAMEmpty/released Resource limited queues (round robin pointers, first available, etc)All pointers returned to known state, all resources released, etc. Caches All ways released when cache is empty (this can also be done with a constant assert to ensure that eviction == way is available for use, then the assertion can be proved through formal). State machinesReturn to IDLE or other known state CountersReturn to 0 or max, as appropriate Valid signalsReturn to 0 (eg, pipelines are empty)

Examples Example of FV friendly assertion for end-of sim assertions: queue can hold max N transactions model a counter (transaction_cnt) to track the number of outstanding transactions in the unit if transaction_cnt==0 and it stays 0 for say 7 cycles then queue.empty==0 must happen by then If the "empty" signal does not exist in RTL design then use the queue's head/tail to compute it.

Advantages Formal expertise can be packaged for easy proliferation in a large design team Formal results and ROI can be greatly increased by broader application of formal, enabled by these reusable properties Effective in catching bugs at the block level, very early in the development cycle The cookie cutter set is that it is gradually enriched and refined over time due to: More design structure formally verified by FV engineer ( more structures to be added to the set or some set could be further classified); More knowledge about the existing structure from the bug history. The cookie cutter set is helpful for fv engineer to prioritize verification tasks in the test plan and focus on the units or functions which are more likely to have bugs; Which are not well covered by simulation;

THANK YOU!