We think you have liked this presentation. If you wish to download it, please recommend it to your friends in any social system. Share buttons are a little bit lower. Thank you!
Presentation is loading. Please wait.
Published byKaleb Sheerer
Modified over 2 years ago
© 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 ? in0 : 1bz; Assign out = SEL ? 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 ? in0 : 1bz; Assign out = ~SEL ? in1 : 1bz; Assign out = SEL ? in2 : 1bz; Assign out = SEL ? 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
Putting It All Together: Using Formal Verification In Real Life Erik Seligman CS 510, Lecture 19, March 2009.
Introduction to Formal Property Verification (FPV) Erik Seligman CS 510, Lecture 8, January 2009.
Accelerating the Industrial Deployment of Model-Checking for SW Verification: Lessons from 10 years of Model Checking Deployment for HW Verification in.
1 CUSEC 2004 Ensuring the Dependability of Software Systems Dr. Lionel Briand, P. Eng. Canada Research Chair (Tier I) Software Quality Engineering Lab.
Ivan Marsic Rutgers University LECTURE 8: Software Testing.
1 Test documentation and Test case design Iana Mourza QA Lead/Release Lead VMware, Inc
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
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,
FPV For Design Exploration Erik Seligman CS 510, Lecture 11, February 2009.
Formal Methods and Testing Goal: software reliability Use software engineering methodologies to develop the code. Use formal methods during code development.
April 30, A New Tool for Designer-Level Verification: From Concept to Reality April 30, 2014 Ziv Nevo IBM Haifa Research Lab.
1 Demo Overview Overview TComm and the files used to create a test program. Fault grade counter vectors, then rerun aatg for complete coverage Enter a.
A centre of expertise in digital information managementwww.ukoln.ac.uk QA For Web Sites Brian Kelly UKOLN University of Bath Bath
1 Part II Concepts. 2 The structure of a design proof l A proof is a pyramid –Bricks are assertions, models, etc… –Each assertion rests on lower-level.
Testing (1) Principles of testing The testing process Methods used in testing & debugging Let’s look at :
Fakultät für informatik informatik 12 technische universität dortmund Evaluation and Validation Peter Marwedel TU Dortmund, Informatik 12 Germany 2009/01/12.
Error-handling using exceptions Contents: Types of errors Minimizing errors by using control statements and the Debug class Exceptions, Throwing and catching.
1 Verification by Model Checking. 2 Part 1 : Motivation.
Formal Verification: An Overview Erik Seligman CS 510, Lecture 1, January 2009.
Copyright © 2009,Intel Corporation. All rights reserved. Auto ECO Flow Development For Functional ECO Using Efficient Error Rectification Method Based.
Low Power Design From Technology Challenges to Great Products Barry Dennington Snr VP CTO/SoC Design Engineering October 5, 2006.
Telecooperation/RBG Technische Universität Darmstadt Copyrighted material; for TUD student use only Introduction to Computer Science I Topic 19: Quality.
Workshop - November Toulouse A.BERJAOUI (AKKA IS for Astrium) A.LEFEVRE & C. LE LANN (Astrium) SystemC/TLM virtual platforms Use of SystemC/TLM.
Handling Complexity in FEV Erik Seligman CS 510, Lecture 6, January 2009.
HDL Programming Fundamentals UNIT 8: Synthesis Basics 10.1 Highlights of SYNTHESIS Facts Synthesis is mapping between the simulation (software) domain.
SWE 681 / ISA 681 Secure Software Design & Programming: Lecture 8: Error Handling, Resource Handling, Debug, & Obsolete Code Dr. David A. Wheeler
CYPRESS Software Testing By Rick Clements
Using Formal Verification to Replace Mainstream Simulation Erik Seligman Intel Brandon Smith Intel
Acceptance and Unit Testing (introduction) Alessandro Marchetto Fondazione Bruno Kessler - IRST.
© 2005 Altera Corporation © 2006 Altera Corporation Simulation with Mentor Graphics ModelSim.
© 2016 SlidePlayer.com Inc. All rights reserved.