Xiushan Feng* ASIC Verification Nvidia Corporation Automatic Verification of Dependency 1 TM Jayanta Bhadra

Slides:



Advertisements
Similar presentations
Digital System Design-II (CSEB312)
Advertisements

1 Verification by Model Checking. 2 Part 1 : Motivation.
Copyright 2000 Cadence Design Systems. Permission is granted to reproduce without modification. Introduction An overview of formal methods for hardware.
© Copyright 2013 Xilinx. How to Kill 4 Birds with 1 Stone: Using Formal Verification to Validate Legal Configurations, Find Design Bugs, and Improve Testbench.
Hub The Only Co-Simulation Tool of Its Kind on the Market The Only Co-Simulation Tool of Its Kind on the Market.
Detecting Bugs Using Assertions Ben Scribner. Defining the Problem  Bugs exist  Unexpected errors happen Hardware failures Loss of data Data may exist.
Verilog Fundamentals Shubham Singh Junior Undergrad. Electrical Engineering.
A System to Generate Test Data and Symbolically Execute Programs Lori A. Clarke September 1976.
Sequential Logic in Verilog
Synchronous Sequential Logic
Promising Directions in Hardware Design Verification Shaz Qadeer Serdar Tasiran Compaq Systems Research Center.
- Verifying “Golden” reused IPs The Evil’s in the Edits William C Wallace Texas Instruments Nitin Jayaram Texas Instruments Nitin Mhaske Atrenta Inc Vijay.
Automated Method Eliminates X Bugs in RTL and Gates Kai-hui Chang, Yen-ting Liu and Chris Browy.
Timing Override Verification (TOV) Erik Seligman CS 510, Lecture 18, March 2009.
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.
Effective RTL coding rules to avoid Simulation Shoot-thru Udit Kumar 1, Bhanu Prakash 1, Olivier Florent 1, Paras Mal Jain 2, Anshu Malani 2, Shaker Sarwary.
Xiushan Feng* ASIC Verification Nvidia Corporation Assertion-Based Design Partition 1 TM Jayanta Bhadra, Ross Patterson.
DAC IP Track Submission CDC aware power reduction for Soft IPs Ritesh Agarwal (Freescale™) Amit Goldie (Atrenta) Freescale Semiconductor Confidential.
MS-SoC Best Practices – Advanced Modeling & Verification Techniques for first-pass success By Neyaz Khan Greg Glennon Dan Romaine.
ECE 551 Digital System Design & Synthesis Lecture 09 Synthesis of Common Verilog Constructs.
FSM examples.
Who’s Watching the Watchmen? The Time has Come to Objectively Measure the Quality of Your Verification by David Brownell Design Verification Analog Devices.
Useful Things to Know Norm. Administrative Midterm Grading Finished –Stats on course homepage –Pickup after this lab lec. –Regrade requests within 1wk.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
Fundamentals of Simulation-Based Verification 1.Structure of a Testbench - stimulus, checkers, etc. 2.Observation and Assertions - automatic checking of.
Chris Wilson and David L. Dill Computer Systems Laboratory Stanford University June, 2000 Reliable Verification Using Symbolic Simulation with Scalar Values.
ENEE 408C Lab Capstone Project: Digital System Design Fall 2005 Sequential Circuit Design.
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
Churning the Most Out of IP-XACT for Superior Design Quality Ayon Dey Lead Engineer, TI Anshuman Nayak Senior Product Director, Atrenta Samantak Chakrabarti.
Methods for checking simulation correctness How do you know if your testcase passed or failed?
Streamline Verification Process with Formal Property Verification to Meet Highly Compressed Design Cycle Prosenjit Chatterjee, nVIDIA Corporation.
TM Efficient IP Design flow for Low-Power High-Level Synthesis Quick & Accurate Power Analysis and Optimization Flow JAN Asher Berkovitz Yaniv.
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.
Using Formal Verification to Exhaustively Verify SoC Assemblies by Mark Handover Kenny Ranerup Applications Engineer ASIC Consultant Mentor Graphics Corp.
FPGA-Based System Design: Chapter 6 Copyright  2004 Prentice Hall PTR Topics n Design methodologies.
The First in GPON Verification Classic Mistakes Verification Leadership Seminar Racheli Ganot FlexLight Networks.
Digital System Verification. VERIFICATION OUTLINE Purpose of Verification –Verification effort and cost Verification Tools –Linting tools –Code Coverage.
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
Functional Verification Figure 1.1 p 6 Detection of errors in the design Before fab for design errors, after fab for physical errors.
Gates and Logic Dr John Cowell phones off (please)
Introduction to PG & LA 數位電路實驗 TA: 吳柏辰 Author: Trumen.
1 COMP541 Sequential Circuits Montek Singh Feb 1, 2012.
Universität Dortmund Chapter 6A: Validation Simulation and test pattern generation (TPG) EECE **** Embedded System Design.
Electrical and Computer Engineering University of Cyprus LAB 1: VHDL.
- 1 - ©2009 Jasper Design Automation ©2009 Jasper Design Automation JasperGold for Targeted ROI JasperGold solutions portfolio delivers competitive.
SVA Encapsulation in UVM enabling phase and configuration aware assertions by Mark Litterick Verification Consultant Verilab GmbH, Munich, Germany.
REGISTER MANAGMENT TOOL Preformed by: Liat Honig Nitzan Carmel Supervisor: Moshe Porian Date: 29/1/2012 winter semester 2011 Duration: One semester Middle.
© Copyright Alvarion Ltd. SVA Dafna Senderovich Jan 2006.
Part A Final Dor Obstbaum Kami Elbaz Advisor: Moshe Porian August 2012 FPGA S ETTING U SING F LASH.
EE694v-Verification-Lect7-1- Verification Plan & Levels of Verification The Verification Plan Yesterdays and today’s design environment Design specification.
On the Relation Between Simulation-based and SAT-based Diagnosis CMPE 58Q Giray Kömürcü Boğaziçi University.
The PLA Model: On the Combination of Product-Line Analyses 강태준.
Lecture 5: Design for Testability. CMOS VLSI DesignCMOS VLSI Design 4th Ed. 12: Design for Testability2 Outline  Testing –Logic Verification –Silicon.
Levels of Verification Figure 2.2 p 37 Verification is applied at all different abstraction levels Mostly bottom up, some top down.
Logger, Assert and Invariants
Practical Design Guidelines Gord Allan PhD Candidate Wireless ASICs
Digital System Verification
Chapter 8 – Software Testing
Automated Ticket to Ride
RLE Compression using Verilog and Verification using Functional Simulation 3/8/2017.
Alon Flaisher Alon Gluska Eli Singerman Intel Corporation
Testing and Test-Driven Development CSC 4700 Software Engineering
FSM MODELING MOORE FSM MELAY FSM. Introduction to DIGITAL CIRCUITS MODELING & VERIFICATION using VERILOG [Part-2]
Formal Verification of Partial Good Self-Test Fencing Structures
Verification Plan & Levels of Verification
Debugging EECS150 Fall Lab Lecture #4 Sarah Swisher
Debugging EECS150 Fall Lab Lecture #4 Sarah Swisher
Test Driven Lasse Koskela Chapter 9: Acceptance TDD Explained
Test Cases, Test Suites and Test Case management systems
Jamie Cool Program Manager Microsoft
Presentation transcript:

Xiushan Feng* ASIC Verification Nvidia Corporation Automatic Verification of Dependency 1 TM Jayanta Bhadra Technology Solutions Organization Freescale Semiconductor *The work is done when the author worked at Freescale

Docket – MT11774TS Problem Statement – Dependency Check ► Dependency check is needed everywhere E.g., Design/verification teams want to  know whether changes at inputs have any effect on an output – So they can predict verification and design updates  make sure under certain condition, inputs cannot propagate to an output – e.g, when address is not valid, don’t generate enable signals for downstream logic Dependency checking: Under a known condition, whether a signal relies on a set of inputs.  Such a check is very useful for interface-level verification (e.g, SOC).  Freescale design teams have been requesting such a check for a long time. ► Current solution: simulation with assertions Writing sequential assertions is a big challenge  Needs to know how many cycles changes can propagate to outputs.  Cone of influences(COI) can be too big to analyze Simulation-based approach is not complete for this check.  The quality of simulation is decided by the quality of stimuli.  May get incorrect conclusion – reporting an output doesn’t depend on a set of inputs when related input values are not used to drive the circuit. 2

Docket – MT11774TS Motivation for Improvements ► A fully automated solution is needed. No user efforts to analyze design No manual assertions  reduce the huge efforts and possible user errors. Given signals and conditions, a push-button tool is needed. ► Improve the completeness of dependency check No tedious test stimuli Cover 100% of the state space to catch bugs in corner cases 3

Docket – MT11774TS 4 Simple Example ► SPEC: When I q is 0, both countB and CountA should not depends on Input s I f1 and I f2  In the code on the left, CountB depends on the signal I f2 when I q is 0. This is an error as it is not gated by the I q which should qualify the I f2 clk) begin if ((I f1 & I q ) | in1) countA <= countA + 1; end clk) begin if (I f2 | In2) countB <= countB + 1; end clk) begin if ((I f1 & I q ) | in1) countA <= countA + 1; end clk) begin if (I f2 & I q | In2) countB <= countB + 1; end Correct RTL

Docket – MT11774TS 5 Formal Syntax for Dependency Check ► In the RTL code, we want to check that CountA, CountB do not depend on I f1 and I f2 if I q is low. (I f1 and I f2 are the fanin of the dep check. I q is the condition non_dependency( CountA, {I f1, I f2 }) provided (I q == 0); non_dependency( CountB, {I f1, I f2 }) provided (I q == 0); ► A analysis tool should give an error on CountB property stating that CountB depends on I F2 and pass the property on CountA non_dependency( CountA, {I f1, I f2 }) provided (I q == 0); non_dependency( CountB, {I f1, I f2 }) provided (I q == 0); Pass Fail

Docket – MT11774TS Proposed Solution -- Modified Miter 6 Instance FOO Instance BAR of the same design IqIq In1 In2 I f2 I f1 I f2 _miter I f1 _miter CountA CountB CountA_miter CountB_miter 0?

Docket – MT11774TS Proposed Solution – Algorithm Overview ► Create a modified miter circuit with two instances of the same design. Use XOR gates to connect the same output signals from different instances. The signals are those that we want to check dependency. E.g, CountA, CountB. Use different inputs to drive signals that are fanins of the dep check. If fanin signals of dep check are not PIs, insert cutpoints for them. ► Conditions that are applied to signals inside fanin signals of the dep check need to be duplicated for each instances. ► Given such a miter, if we can formally verify whether the outputs of XORs are always 0s. If so, we then prove that signals are not dependent on those fan-in signals. If any XOR gives 1, then different assignments of one or some inputs cause the issue. And these inputs are fan-in signals that we want to check! e.g, where If2 is 0 or 1 can give different values for CountB 7

Docket – MT11774TS Flow Chart 8 RTL Compile RTL Create Miter Wrapper Circuit Dep Checkers Create MUXs (XORs) using Assumes/Asserts Run Formal Verification Parsing Results Checker 1: Pass Checker 2: Fail … Yellow: nothing novel Green: novelty exists Next few slides give details on the three green boxes.

Docket – MT11774TS Create Miter Wrapper Circuit 9 RTL Compile RTL Foreach IO Port - P Dep Checkers dep (A, B) provided Condition Is input? No Create Outputs: P and P_miter Yes In B? No Create one input: P create two inputs: P and P_miter

Docket – MT11774TS Create Miter Wrapper Circuit – Cont. 10 Create two Instances – FOO and BAR for TOP module of the circuit Foreach IO of FOO and BAR -- P !exist P_miter || is(FOO)? Use P to connect the port Use P_miter to connect the port

Docket – MT11774TS Create Assertions -- Update Conditions 11 foreach input signal in_i of cond exists in_i_miter? replace in_i by in_miter and get a new cond_miter Foreach condition cond of a checker Yes No cond = cond && new_cond_miter For example: Orig: … provided (I1 > 1) Updated: … provided ((I1 > 1) && (I1_miter > 1))

Docket – MT11774TS Create Assertions -- Assumes for MUXs of Inputs 12 MUX IfIf I f _miter condition = cond1 || cond2 || … I f _miter I f _miter == (condition)? I f _miter : I f SVA: assume property (!condition |-> I f _miter == I f ) dep (A, {I f,..}) provided c1 dep (B, {I f,..}) provided c2 …

Docket – MT11774TS Create Assertions -- Assertions for XOR Outputs 13 out_miter out assert property (condition |-> out == out_miter) dep (out, {I f,..}) provided c1 … Run Formal Verification Create Miter Wrapper Circuit asserts/assumes assert pass/fail

Docket – MT11774TS Parsing Results – Pass/Fail of Checkers 14 foreach assertion of a dep/non_dep checker pass(assertion)? dep or non_dep? PASS FAIL non_dep NO dep (A, {I f,..}) provided c1 non_dep (B, {I f,..}) provided c2 …

Docket – MT11774TS Sample Results ► A production tool is developed and used by verification team. ► Feedback from verification teams is very positive Design and verification can use the tool to do quick check Identify bugs early ► In the above circuit, our tool caught the bug: registers are over- written when address is not valid. (crc_reg depends on values of addr even when the addr is not valid) 15 User checker input: …. dep(crc_reg, {addr}) provided (addr > 4); …. Log of the tool: INFO: Results for Check 4: dep(crc_reg, {addr}) provided (addr > 4); FAIL