© Copyright 2013 Xilinx. How to Kill 4 Birds with 1 Stone: Using Formal Verification to Validate Legal Configurations, Find Design Bugs, and Improve Testbench.

Slides:



Advertisements
Similar presentations
1 Verification by Model Checking. 2 Part 1 : Motivation.
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.
By Rick Clements Software Testing 101 By Rick Clements
Title Subtitle.
0 - 0.
LECTURE 8: Software Testing
Testing of IEC Based Protection Systems
(c) 2007 Mauro Pezzè & Michal Young Ch 17, slide 1 Test Execution.
Xilinx 6.3 Tutorial Integrated Software Environment (ISE) Set up basic environment Select Gates or Modules to Be simulated (Insert Program Code) Run Waveform.
Hub The Only Co-Simulation Tool of Its Kind on the Market The Only Co-Simulation Tool of Its Kind on the Market.
1 General-Purpose Languages, High-Level Synthesis John Sanguinetti High-Level Modeling.
April 30, A New Tool for Designer-Level Verification: From Concept to Reality April 30, 2014 Ziv Nevo IBM Haifa Research Lab.
Putting It All Together: Using Formal Verification In Real Life Erik Seligman CS 510, Lecture 19, March 2009.
CS 510 Lecture 16: Verification Case Studies: Evolution From SVA 2005 to SVA 2009 Adapted from DVCon 2009 paper by Eduard Cerny 1, Surrendra Dudani 1,
* College Intern, West Virginia Wesleyan, Buckhannon, WV.
Using emulation for RTL performance verification
Xiushan Feng* ASIC Verification Nvidia Corporation Automatic Verification of Dependency 1 TM Jayanta Bhadra
by Adiel Khan Staff CAE Synopsys
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.
6/14/991 Symbolic verification of systems with state machines David L. Dill Jeffrey Su Jens Skakkebaek Computer System Laboratory Stanford University.
Leveraging Assertion Based Verification by using Magellan Michal Cayzer.
Who’s Watching the Watchmen? The Time has Come to Objectively Measure the Quality of Your Verification by David Brownell Design Verification Analog Devices.
Verilog Tutorial. Outline Numbers(A.2.7) Vectors in Verilog (Section 4.1.7) Four value logic (Section 4.2.1) Comments and White Space (A.2.2) Test Methodology.
TEAL - TEst Abstraction Layer A C++ class library using VPI.
Prof. John Nestor ECE Department Lafayette College Easton, Pennsylvania ECE Senior Design I Lecture 7 - Verification.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
Logic Design Outline –Logic Design –Schematic Capture –Logic Simulation –Logic Synthesis –Technology Mapping –Logic Verification Goal –Understand logic.
SiliconAid Solutions, Inc. Confidential SAJE SiliconAid JTAG Environment Overview – Very Short.
Prof. John Nestor ECE Department Lafayette College Easton, Pennsylvania ECE VLSI System Design Lecture 5 - Verification.
02/10/06EECS150 Lab Lecture #41 Debugging EECS150 Spring 2006 – Lab Lecture #4 Philip Godoy Greg Gibeling.
Churning the Most Out of IP-XACT for Superior Design Quality Ayon Dey Lead Engineer, TI Anshuman Nayak Senior Product Director, Atrenta Samantak Chakrabarti.
VerificationTechniques for Macro Blocks (IP) Overview Inspection as Verification Adversarial Testing Testbench Design Timing Verification.
Robust Low Power VLSI R obust L ow P ower VLSI Memory Management Units for Instruction and Data Cache for OR1200 CPU Core Arijit Banerjee ASIC/SOC Class.
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.
DCC Grenoble April 6, 2002 Unifying Traditional and Formal Verification Through Property Specification Designing Correct Circuits 2002 Harry Foster Verplex.
1. Topics to be discussed Introduction Objectives Testing Life Cycle Verification Vs Validation Testing Methodology Testing Levels 2.
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.
© 2003 Xilinx, Inc. All Rights Reserved For Academic Use Only Xilinx Design Flow FPGA Design Flow Workshop.
Using Formal Verification to Exhaustively Verify SoC Assemblies by Mark Handover Kenny Ranerup Applications Engineer ASIC Consultant Mentor Graphics Corp.
SoC Verification HW #2 TA: Wei-Ting Tu Assignment: 04/12/06
Chonnam national university VLSI Lab 8.4 Block Integration for Hard Macros The process of integrating the subblocks into the macro.
Real Intent, Inc (1) Copyright © Real Intent Real Intent, Inc. EnVision Suite of EDA Solutions.
Semi-automatic Property Generation for the Formal Verification of a Satellite On-board System Wesley Gonçalves Silva.
1 Hybrid-Formal Coverage Convergence Dan Benua Synopsys Verification Group January 18, 2010.
FPGA-Based System Design Copyright  2004 Prentice Hall PTR Logic Design Process n Functional/ Non-functional requirements n Mapping into an FPGA n Hardware.
© 2006 Synopsys, Inc. (1) CONFIDENTIAL Simulation and Formal Verification: What is the Synergy? Carl Pixley Disclaimer: These opinions are mine alone and.
ECE 545 Project 2 Specification. Schedule of Projects (1) Project 1 RTL design for FPGAs (20 points) Due date: Tuesday, November 22, midnight (firm) Checkpoints:
CascadedBCDCntr&Display Aim : Capture, simulate and implement a 2-digit, loadable BCD up/down counter, with chip enable I/P (CE) and chip enable O/P (CEO).
Introductory project. Development systems Design Entry –Foundation ISE –Third party tools Mentor Graphics: FPGA Advantage Celoxica: DK Design Suite Design.
An Overview of Hardware Design Methodology Ian Mitchelle De Vera.
- 1 - ©2009 Jasper Design Automation ©2009 Jasper Design Automation JasperGold for Targeted ROI JasperGold solutions portfolio delivers competitive.
Macro Verification Guidelines Chapter 7.. Chap 7. Macro Verification Guidelines The goal of macro verification The macro is 100 percent correct in its.
SVA Encapsulation in UVM enabling phase and configuration aware assertions by Mark Litterick Verification Consultant Verilab GmbH, Munich, Germany.
© 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.
Test and Verification Solutions128 October 2009 Test and Verification Solutions Improved time to market through automated software testing Mike Bartley,
Software Testing Mehwish Shafiq. Testing Testing is carried out to validate and verify the piece developed in order to give user a confidence to use reliable.
Architecture optimization and design verification of the Timepix3 and the Velopix pixel ASICs Tuomas Poikela (TUCS/CERN) SV/UVM Mini workshop.
Design with Vivado IP Integrator
Digital System Verification
Lecture 9: Testbench and Division
ECE-C662 Introduction to Behavioral Synthesis Knapp Text Ch
Yikes! Why is my SystemVerilog Testbench So Slooooow?
Debugging EECS150 Fall Lab Lecture #4 Sarah Swisher
Win with HDL Slide 4 System Level Design
Lecture 9: Testbench and Division
Debugging EECS150 Fall Lab Lecture #4 Sarah Swisher
Digital Design Verification
SystemVerilog and Verification
Presentation transcript:

© Copyright 2013 Xilinx. How to Kill 4 Birds with 1 Stone: Using Formal Verification to Validate Legal Configurations, Find Design Bugs, and Improve Testbench and Software Specifications Saurabh Shrivastava, Kavita Dangi, Darrow Chu, Mukesh Sharma

© Copyright 2013 Xilinx. Sponsored By: Page 2 Motivation How to get a head start on verification How to augment simulation based verification How to validate/verify device configuration for –Better testbench simulations –Better software output How to weed out basic bugs: –Bus contention, x-assignments, floating-bus, FSM Assign out = SEL[0] ? in0 : 1bz; Assign out = SEL[1] ? in1 : 1bz; Case(sel) 0: out = in0; 2: out = in1; default: out = 1bx;

© Copyright 2013 Xilinx. Sponsored By: Page 3 Older Approach Full Chip TB Block1 TB Block2 TB BlockN TB Block3 TB CFG Configuration Bus Contention X - Assignment Bus Floating Multidriver Bus Floating Multidriver FSM

© Copyright 2013 Xilinx. Sponsored By: Page 4 Limitations of Older Approach Bugs are discovered late Block and Chip level simulations are as good as stimulus Difficult to hit all scenarios due to: –Big configuration space (only handful are verified) –Big design Interesting bugs found when test benches are sophisticated!

© Copyright 2013 Xilinx. Sponsored By: Page 5 New Approach Configuration Bus Contention X - Assignment Bus Floating Multidriver Bus Floating Multidriver FSM SVA Lib Block1 RTL Block1 RTL SVA Lib BlockN RTL BlockN RTL Better TB Checkers Better TB Checkers Better Software Output Checkers for illegal config Converted to Assume Constraints White Formal TB Targets: Bus checks, X- assignments, range- checks, FSM-checks, etc Assertions are generated by the tool

© Copyright 2013 Xilinx. Sponsored By: Page 6 New Verification Flow SVA Lib Block RTL Block RTL SVA Lib Block RTL Block RTL Block/FullChip TestbenchWhite Formal Testbench Used as Checkers Software SVA Lib Block RTL Block RTL Verify Constraints: Correct & Complete Catches Incorrect Block programming Read by SW End User IP Configurator Prevents incorrect IP programming Find design bugs early Find design bugs

© Copyright 2013 Xilinx. Sponsored By: Page 7 Assertion Library Example fileA_assert_lib.sv reg [3:0] varA; reg [5:0] widthA; reg modeA; … `LIB_ASSERT_ONE_HOT(22,varA value is not compliant,varA) `LIB_ASSERT_CHECK(23,Incorect width for modeA=0,(modeA==0 && widthA==16)) assert_lib_define.svh `define LIB_ASSERT_ONE_HOT(INST,MSG,a) `ifdef FORMAL \ assume_one_hot_``INST``: assume property clk) $onehot0(a)); \ `else \ assert_one_hot_``INST``: assert property clk) $onehot0(a)) \ else begin $error ("%s: one_hot fails for a=%h\n",MSG,a); \ `endif run.log ncsim: *E,ASRTST (lib_assert_macros.sv,17): (time 17 NS) Assertion top.dut.modA.assert_one_hot_22 has failed varA value is not compliant: one_hot fails for a=b

© Copyright 2013 Xilinx. Sponsored By: Page 8 Bugs Found Incorrect library assertion causing bus contention Assign out = SEL[0] ? in0 : 1bz; Assign out = ~SEL[1] ? in1 : 1bz; Assign out = SEL[2] ? in2 : 1bz; Assign out = SEL[3] ? in3 : 1bz; `LIB_ASSERT_CHECK(sel,Select values are incorrect,(SEL==0 || SEL==1 || SEL==6 || SEL==10) Combinatorial loops State reachability and transition State deadlock issues Bus floating failures Range overflow Missing library assertions causing –bus contention –X-assignment failures –Bus floating failures

© Copyright 2013 Xilinx. Sponsored By: Page 9 Comparison: Old v/s New © Copyright 2012 Xilinx Old ApproachNew Approach Early bug discovery Exhaustive Setup time> 1 Month1-3 days Setup effort Test codingNo assertion coding ScopeTargeted Configuration verificationManual approach, limitedDoes not verify anything out of cone of logic, but verifies ALL legal cfgs for properties Tool capacity Tool issues Tool learning Only opportunistic!

© Copyright 2013 Xilinx. Sponsored By: Page 10 Future Work Multi-block verification Tool kit Enable designers to run the flow Gate level Verilog verification

© Copyright 2013 Xilinx. Sponsored By: Page 11 Summary Finding early design bug and verifying configurations is an issue Simulation based approaches have limitations White Formal is used along with SVA library to solve this problem New approach finds early bugs and verifies configuration space As a result we get better testbench and better software output

© Copyright 2013 Xilinx. Sponsored By: Page 12 White Formal X-assignment example

© Copyright 2013 Xilinx. Sponsored By: Page 13 Older Approach © Copyright 2012 Xilinx Block and Chip level testbenches Directed & pseudo-random tests for: –bus contention, X-assignment, FSM-checks Static lint for bus floating and multi-driver Configuration verification –Manual –Directed simulations

© Copyright 2013 Xilinx. Sponsored By: Page 14 Limitations of New Approach © Copyright 2012 Xilinx Only opportunistic! Works only for targeted checks Configurations outside cone of logic not verified Tool capacity: cannot be applied at chip level Tool issues Tool learning