Automated Method Eliminates X Bugs in RTL and Gates Kai-hui Chang, Yen-ting Liu and Chris Browy.

Slides:



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

The Design Process, RTL, Netlists, and Verilog
Verilog Fundamentals Shubham Singh Junior Undergrad. Electrical Engineering.
Verilog Overview. University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
ECOE 560 Design Methodologies and Tools for Software/Hardware Systems Spring 2004 Serdar Taşıran.
Combinational Logic.
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.
ECE 551 Digital System Design & Synthesis Lecture 08 The Synthesis Process Constraints and Design Rules High-Level Synthesis Options.
Logic Synthesis – 3 Optimization Ahmed Hemani Sources: Synopsys Documentation.
2/9/20031 ECE 551: Digital System Design & Synthesis Lecture Set 4 4.1: Verilog – Procedural Assignments &Scheduling Semantics 4.2: Verilog – More Behavioral.
Presenter : Shih-Tung Huang 2015/4/30 EICE team Automated Data Analysis Solutions to Silicon Debug Yu-Shen Yang Dept. of ECE University of Toronto Toronto,
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.
Slide 1 7. Verilog: Combinational always statements. VHDL: Combinational Processes: To avoid (I.E. DO NOT What in your HDL code?) Cases that generate Synthesis.
Reap What You Sow: Spare Cells for Post-Silicon Metal Fix Kai-hui Chang, Igor L. Markov and Valeria Bertacco ISPD’08, Pages
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.
Leveraging Assertion Based Verification by using Magellan Michal Cayzer.
Design For Verification Synopsys Inc, April 2003.
Automatic Verification of Timing Constraints Asli Samir – JTag course 2006.
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
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.
EE694v-Verification-Lect5-1- Lecture 5 - Verification Tools Automation improves the efficiency and reliability of the verification process Some tools,
مرتضي صاحب الزماني  The registers are master-slave flip-flops (a.k.a. edge-triggered) –At the beginning of each cycle, propagate values from primary inputs.
University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
Streamline Verification Process with Formal Property Verification to Meet Highly Compressed Design Cycle Prosenjit Chatterjee, nVIDIA Corporation.
Design methodology.
TM Efficient IP Design flow for Low-Power High-Level Synthesis Quick & Accurate Power Analysis and Optimization Flow JAN Asher Berkovitz Yaniv.
Digital Computer Design Fundamental
DCC Grenoble April 6, 2002 Unifying Traditional and Formal Verification Through Property Specification Designing Correct Circuits 2002 Harry Foster Verplex.
1 VERILOG Fundamentals Workshop סמסטר א ' תשע " ה מרצה : משה דורון הפקולטה להנדסה Workshop Objectives: Gain basic understanding of the essential concepts.
Chap. 1 Overview of Digital Design with Verilog. 2 Overview of Digital Design with Verilog HDL Evolution of computer aided digital circuit design Emergence.
CAD Techniques for IP-Based and System-On-Chip Designs Allen C.-H. Wu Department of Computer Science Tsing Hua University Hsinchu, Taiwan, R.O.C {
Presenter : Ching-Hua Huang 2013/9/16 Visibility Enhancement for Silicon Debug Cited count : 62 Yu-Chin Hsu; Furshing Tsai; Wells Jong; Ying-Tsai Chang.
Presenter : Ching-Hua Huang 2013/12/30 Finding Reset Nondeterminism in RTL Designs – Scalable X-Analysis Methodology and Case Study Cited count : 4 Hong-Zu.
1 Automatic Refinement and Vacuity Detection for Symbolic Trajectory Evaluation Orna Grumberg Technion Haifa, Israel Joint work with Rachel Tzoref.
Chapter 11: System Design Methodology Digital System Designs and Practices Using Verilog HDL and 2008, John Wiley11-1 Ders 8: FSM Gerçekleme ve.
Use of Coverity & Valgrind in Geant4 Gabriele Cosmo.
Digital System 數位系統 Verilog HDL Ping-Liang Lai (賴秉樑)  
1 Hybrid-Formal Coverage Convergence Dan Benua Synopsys Verification Group January 18, 2010.
Functional Verification Figure 1.1 p 6 Detection of errors in the design Before fab for design errors, after fab for physical errors.
1 COMP541 Sequential Circuits Montek Singh Feb 1, 2012.
Electrical and Computer Engineering University of Cyprus LAB 1: VHDL.
Slide 1 2. Verilog Elements. Slide 2 Why (V)HDL? (VHDL, Verilog etc.), Karen Parnell, Nick Mehta, “Programmable Logic Design Quick Start Handbook”, Xilinx.
IMPLEMENTATION OF MIPS 64 WITH VERILOG HARDWARE DESIGN LANGUAGE BY PRAMOD MENON CET520 S’03.
CSCI1600: Embedded and Real Time Software Lecture 33: Worst Case Execution Time Steven Reiss, Fall 2015.
1 Software Testing Strategies: Approaches, Issues, Testing Tools.
Chapter 11 System-Level Verification Issues. The Importance of Verification Verifying at the system level is the last opportunity to find errors before.
Chapter 11: System Design Methodology Digital System Designs and Practices Using Verilog HDL and 2008, John Wiley11-1 Chapter 11: System Design.
03/30/031 ECE Digital System Design & Synthesis Lecture Design Partitioning for Synthesis Strategies  Partition for design reuse  Keep related.
FEV And Netlists Erik Seligman CS 510, Lecture 5, January 2009.
Equivalence checking Prof Shobha Vasudevan ECE 598SV.
ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU 99-1 Under-Graduate Project Design of Datapath Controllers Speaker: Shao-Wei Feng Adviser:
04/21/20031 ECE 551: Digital System Design & Synthesis Lecture Set : Functional & Timing Verification 10.2: Faults & Testing.
1 University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
Formal Verification of Clock Domain Crossing Using Gate-level Models of Metastable Flip-Flops Ghaith Tarawneh, Andrey Mokhov and Alex Yakovlev Newcastle.
Speaker: Nansen Huang VLSI Design and Test Seminar (ELEC ) March 9, 2016 Simulation-Based Equivalence Checking.
1 Lecture 3: Modeling Sequential Logic in Verilog HDL.
Overview Logistics Last lecture Today HW5 due today
‘if-else’ & ‘case’ Statements
TODAY’S OUTLINE Procedural Assignments Verilog Coding Guidelines
CS Fall 2005 – Lec. #5 – Sequential Logic - 1
Hardware Description Languages
FSM MODELING MOORE FSM MELAY FSM. Introduction to DIGITAL CIRCUITS MODELING & VERIFICATION using VERILOG [Part-2]
All You Ever Wanted to Know About Dynamic Taint Analysis & Forward Symbolic Execution (but might have been afraid to ask) Edward J. Schwartz, Thanassis.
De-synchronization: from synchronous to asynchronous
ECE 551: Digital System Design & Synthesis
Automatic Abstraction of Microprocessors for Verification
Presentation transcript:

Automated Method Eliminates X Bugs in RTL and Gates Kai-hui Chang, Yen-ting Liu and Chris Browy

2 Abstract Due to physical design resource planning and low power requirements, registers may be left uninitialized creating Xs (unknowns) in the design. However, logic simulation cannot handle Xs accurately due to X- optimism and X-pessimism problems, masking such X bugs in simulation-based verification flows. In this work we propose a comprehensive methodology and several innovative techniques that can identify unforseen X problems at the RTL and remove false Xs popping up in gate-level simulation. The methodology is currently in production use and has helped resolve X issues for dozens of chips. By finding X bugs prior to tape out, expensive respins caused by masked Xs can be avoided.

3 Cause and Effect of Xs in Designs  X is used to represent an unknown value in logic simulation – The value can be either 0 or 1  Common causes of X – Inputs, registers, or memory not initialized and X corruption on power down cycle  Dangers of X – Xs may cause nondeterministic operation  Simulator problems with X – X semantics are inaccurate (optimism, pessimism) – Leads to RTL vs gate-level simulation mismatch – X problems are either masked or there are too many false alarms  Unless fully examined, Xs may exist after tape out causing expensive respins from designs that don’t work

4 X-Optimism and X-Pessimism in Logic Simulation  X-pessimism – Xs are propagated even though 0/1 value is known – Ambiguous results lead to more X-assignments than are unnecessary Output = ( a & b ) | ( ~a & c );‏ Example of X-pessimism 1’b01’b1 1’b01’b1 1’bx1’b1 1’bx Simulation mismatch  X-Optimism – 0/1 value propagated instead of X – Interpretation of X causes only one conditional branch to be considered Example of X-Optimism if (sel) reg1 = 0; else reg1 = 1; 1’b0If branch else branch1’b1 1’bxHardware Simulation mismatch

5 Existing Solutions and Limitations  Techniques to find Xs at the RTL – VCS and VRQ Xprop generate Xs for X-optimism  May create too many false alarms – Formal tools can identify real Xs  Scalability is an issue and writing constraints can be difficult  Techniques to eliminate Xs at the gate level – Random deposit replaces Xs with 0/1 values  May mask bugs – Structural analysis using Perl/C scripts  May miss false Xs not in the template – Replace an X with 0/1 and run simulations  Requires lots of simulation  Need a better comprehensive methodology to handle Xs!

6 X-Prescreener (Optional) selects tests from testsuite for X analysis Finding X Bugs in RTL module foo(a, b, c, o1, o2, o3); input a, b, c; output o, o2, o3; reg o2, o3; assign o=a & b; b, c) o2= a | c; … RTL model with X bugs masked by X-optimism XOPT Formal detects X bugs in reg-reg, reg-output paths XOPT Sim (Optional) heuristically exposes X problems by biasing execution paths module foo(a, b, c, o1, o2, o3); input a, b, c; output o, o2, o3; reg o2, o3; assign o=a & b; b, c) o2= a | c; … X optimism Start RTL model with X bugs exposed, sequential X paths trace back to X source Logic synthesis No X bugs found in RTL Fix RTL

7 Finding X Bugs in Gates Gate-level netlist with false Xs removed and X bugs exposed Safe Deposit Analysis (Optional) formally identifies non- controlling Xs to reduce false Xs SimXACT formally removes all combinational false Xs Gate-level netlist with X bugs hidden among false Xs Done Start Gate-level netlist with false Xs removed and no X bugs exposed Fix RTL

8 Case Study: Network Processor X-VerificationLevelSetupResults XOPT FormalRTLAuto-partitioned functional unit into 6 blocks ~300K flops total Found 11 X bugs that required RTL change and no false alarms ~6 hours runtime Safe DepositGatesAnalyzed 1 block ~4K DFFs/latches ~1K safely deposited eliminating ¼ X source DFFs ~1 min runtime SimXACTGatesRan 10+ functional units separately ~5M DFFs/latches total a few thousand false Xs fixed (force/deposit) including a few hundred gated-clock X-pessimism ~2 hours runtime/unit analyzed X bugs will be missed if random deposit was used

9 X-Prescreener (New Innovation)  Figures out which tests may expose X problems and should run through X analysis – Running X analysis takes time and effort  X-Prescreener is a simulator add-on that monitors X activities when running tests – It collects X activities and aggregates similar X conditions encountered in different tests – Then automatically selects subset to cover all the X conditions  X-Prescreener provides engineers valuable information on which tests should be used for X analysis

10 Finding X Bugs at the RTL and Gate Level  RTL XOPT Formal – Uses symbolic simulation to formally prove whether Xs will cause reg- reg, reg-output non-determinism for real traces [DAC’09] – Spatial and temporal partitioning improves scalability [DATE’10] – Analysis based on the principle of most astonishment to reduce formal effort [IEEE D&T’11]  RTL XOPT Sim – Heuristically deposits non-X values to replace Xs when they are encountered at if/case conditions in logic simulation – Deposit values are derived from formal analysis to bias logic simulation toward exploring new execution paths and expose X bugs  Gate level: Safe Deposit Analysis and SimXACT – Gate level simulation can detect X bugs but the bugs are hidden among false Xs − our solution eliminates false Xs to expose real bugs

11 Safe Deposit Analysis (New Innovation)  Safe deposit analysis identifies non-controlling Xs – Those Xs will be eliminated by the reset sequence and can be replaced with 0/1 without masking any bug – Fewer Xs will generate fewer false Xs, thus reducing analysis effort  Example – The X symbol “x1” from Reg1 is non-controlling (masked by downstream logic) and can be safely replaced with 0/1 Reg1 Reg2 Reg3 Reg4 Output1 x1 x2 0 !x2 (x1&0) | x2 = x2 x2 1 0

12 SimXACT Analysis [DAC’12, US Patent ]  SimXACT analysis generates auxiliary behavior code to fix combinational false Xs or g8.o or g2.o) if (g8.o === 1’bx && g1.o === 1’b1 && g2.o === 1’b1) force g6.o= 1’b0; else release g6.o; False Xs will be eliminated by the “fix”, allowing gate-level simulation to produce correct results a reset OR (g1) reg2 OR (g2) AND (g5) AND (g4) reg1 INV (g3) b x x x x x c AND (g7) 1 x INV (g8) NOR (g6) x x

13 Gated-clock False X Fix (New Innovation)  False Xs may be generated due to gated-clocks  The X at wire “o” is false – if X is treated as 0, “ena” is 0, 0  x will not occur, “r1” stays at 0 – if X is treated as 1, “ena” is 1, “reg1” will latch the 0 at “r1”  o should be 0 either way, but logic simulation produces a false X  We formally analyze gated-clock structure for false Xs and generate fixes  Fix example: icg reg1 clk r1 o ena reg2 r2 ANDAND clk r2o x x x 0x0x 0101 0101 dut.clk) if (dut.reg1.q === 1’bx && dut.r1 == 1’b0 && dut.reg2.q == 1’b1) $deposit(dut.reg1.q, 0);

14 Conclusions  We proposed a comprehensive methodology and several innovative techniques to find X problems before tape out  X-Prescreener selects a required set of tests to analyze  XOPT Formal formally verifies the design to find X bugs  XOPT Sim heuristically directs logic simulation toward exposing X bugs  Safe Deposit Analysis eliminates non-controlling Xs discovered during reset in gate-level simulation  SimXACT eliminates all false Xs in gate-level simulation, exposing real X problems  The proposed methodology is in commercial production use and helped resolve X issues in dozens of chips