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.

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

Presenter : Ching-Hua Huang 2013/11/4 Temporal Parallel Simulation: A Fast Gate-level HDL Simulation Using Higher Level Models Cited count : 3 Dusung Kim.
ECOE 560 Design Methodologies and Tools for Software/Hardware Systems Spring 2004 Serdar Taşıran.
Automated Method Eliminates X Bugs in RTL and Gates Kai-hui Chang, Yen-ting Liu and Chris Browy.
Xiushan Feng* ASIC Verification Nvidia Corporation Automatic Verification of Dependency 1 TM Jayanta Bhadra
Presenter: PCLee VLSI Design, Automatic and Test, (VLSI-TSA-DAT).
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,
ECE Synthesis & Verification 1 ECE 667 Synthesis and Verification of Digital Systems Formal Verification Combinational Equivalence Checking.
Presenter: PCLee – This paper outlines the MBAC tool for the generation of assertion checkers in hardware. We begin with a high-level presentation.
Introductory Comments Regarding Hardware Description Languages.
Department of Electrical and Computer Engineering M.A. Basith, T. Ahmad, A. Rossi *, M. Ciesielski ECE Dept. Univ. Massachusetts, Amherst * Univ. Bretagne.
The Design Process Outline Goal Reading Design Domain Design Flow
RTL Processor Synthesis for Architecture Exploration and Implementation Schliebusch, O. Chattopadhyay, A. Leupers, R. Ascheid, G. Meyr, H. Steinert, M.
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,
1 Presenter: Chien-Chih Chen Proceedings of the 2002 workshop on Memory system performance.
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
Formal Techniques for Verification Using SystemC By Nasir Mahmood.
USING SAT-BASED CRAIG INTERPOLATION TO ENLARGE CLOCK GATING FUNCTIONS Ting-Hao Lin, Chung-Yang (Ric) Huang Graduate Institute of Electrical Engineering,
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.
Chap. 1 Overview of Digital Design with Verilog. 2 Overview of Digital Design with Verilog HDL Evolution of computer aided digital circuit design Emergence.
COE4OI5 Engineering Design. Copyright S. Shirani 2 Course Outline Design process, design of digital hardware Programmable logic technology Altera’s UP2.
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.
ASIC/FPGA design flow. FPGA Design Flow Detailed (RTL) Design Detailed (RTL) Design Ideas (Specifications) Design Ideas (Specifications) Device Programming.
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.
Presenter : Ching-Hua Huang 2013/7/15 A Unified Methodology for Pre-Silicon Verification and Post-Silicon Validation Citation : 15 Adir, A., Copty, S.
1 H ardware D escription L anguages Modeling Digital Systems.
Institute e-Austria in Timisoara 1 Author: prep. eng. Calin Jebelean Verification of Communication Protocols using SDL ( )
Reporter: PCLee. Although assertions are a great tool for aiding debugging in the design and implementation verification stages, their use.
1 Combinational Logic Design Digital Computer Logic Kashif Bashir
1 Hybrid-Formal Coverage Convergence Dan Benua Synopsys Verification Group January 18, 2010.
© 2012 xtUML.org Bill Chown – Mentor Graphics Model Driven Engineering.
Functional Verification Figure 1.1 p 6 Detection of errors in the design Before fab for design errors, after fab for physical errors.
Problem Solving Techniques. Compiler n Is a computer program whose purpose is to take a description of a desired program coded in a programming language.
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
1 Ch. 1: Software Development (Read) 5 Phases of Software Life Cycle: Problem Analysis and Specification Design Implementation (Coding) Testing, Execution.
Ted Pedersen – CS 3011 – Chapter 10 1 A brief history of computer architectures CISC – complex instruction set computing –Intel x86, VAX –Evolved from.
TOPIC : Different levels of Fault model UNIT 2 : Fault Modeling Module 2.1 Modeling Physical fault to logical fault.
An Overview of Hardware Design Methodology Ian Mitchelle De Vera.
Modern VLSI Design 4e: Chapter 8 Copyright  2008 Wayne Wolf Topics Modeling with hardware description languages (HDLs).
Modern VLSI Design 3e: Chapter 8 Copyright  1998, 2002 Prentice Hall PTR Topics n Modeling with hardware description languages (HDLs).
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
Verification & Validation By: Amir Masoud Gharehbaghi
CSCI1600: Embedded and Real Time Software Lecture 33: Worst Case Execution Time Steven Reiss, Fall 2015.
FPGA-Based System Design Copyright  2004 Prentice Hall PTR Topics n Modeling with hardware description languages (HDLs).
Chapter 11 System-Level Verification Issues. The Importance of Verification Verifying at the system level is the last opportunity to find errors before.
Equivalence checking Prof Shobha Vasudevan ECE 598SV.
Whole Test Suite Generation. Abstract Not all bugs lead to program crashes, and not always is there a formal specification to check the correctness of.
ASIC/FPGA design flow. Design Flow Detailed Design Detailed Design Ideas Design Ideas Device Programming Device Programming Timing Simulation Timing Simulation.
04/21/20031 ECE 551: Digital System Design & Synthesis Lecture Set : Functional & Timing Verification 10.2: Faults & Testing.
Problem: design complexity advances in a pace that far exceeds the pace in which verification technology advances. More accurately: (verification complexity)
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
On the Relation Between Simulation-based and SAT-based Diagnosis CMPE 58Q Giray Kömürcü Boğaziçi University.
DAC50, Designer Track, 156-VB543 Parallel Design Methodology for Video Codec LSI with High-level Synthesis and FPGA-based Platform Kazuya YOKOHARI, Koyo.
1 A hardware description language is a computer language that is used to describe hardware. Two HDLs are widely used Verilog HDL VHDL (Very High Speed.
Code Optimization.
Topics Modeling with hardware description languages (HDLs).
Digital System Verification
Topics Modeling with hardware description languages (HDLs).
CSCI1600: Embedded and Real Time Software
LPSAT: A Unified Approach to RTL Satisfiability
332:437 Lecture 7 Verilog Hardware Description Language Basics
Hardware Description Languages
332:437 Lecture 7 Verilog Hardware Description Language Basics
Chapter 15 Debugging.
HIGH LEVEL SYNTHESIS.
332:437 Lecture 7 Verilog Hardware Description Language Basics
Presented By: Darlene Banta
CSCI1600: Embedded and Real Time Software
Presentation transcript:

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 Chou ; Haiqian Yu ; Kai-Hui Chang ; Dobbyn Dobbyn and Sy-Yen Kuo Electr. Eng. Dept., Nat. Taiwan Univ., Taipei, Taiwan 2010 Design, Automation & Test in Europe Conference & Exhibition (DATE), 2010 National Sun Yat-sen University Embedded System Laboratory

Due to increases in design complexity, routing a reset signal to all registers is becoming more difficult. One way to solve this problem is to reset only certain registers and rely on a software initialization sequence to reset other registers. This approach, however, may allow unknown values (also called X- values) in uninitialized registers to leak to other registers, leaving the design in a nondeterministic state. Although logic simulation can find some X-problems, it is not accurate and may miss bugs. A recent approach based on symbolic simulation can handle Xs accurately; however, it is not scalable. In this work we analyze the characteristics of X-problems and propose a methodology that leverages the accuracy of formal X-analysis and can scale to large designs. This is achieved by our novel partitioning techniques and the intelligent use of waveforms as stimulus. We applied our methodology to an industrial design and successfully identified several Xs unknown to the designers, including three real bugs, demonstrating the effectiveness of our approach. 2

3  Logic simulation ◦ To predict the behavior of digital circuits and hardware description languages by the simulation software. ◦ Simulation can be performed at varying degrees of physical abstraction, such as at the transistor level, gate level, register-transfer level (RTL), electronic system-level (ESL), or behavioral level.  Symbolic simulation ◦ It is involves evaluating circuit behavior using special symbolic values to encode a range of circuit operating conditions. ◦ Simulator can be input symbols or variables and then propagates the Boolean expressions. Logic simulationSymbolic simulation

4 What’s the problem  Some registers that be used to hold intermediate values in an arithmetic unit, may even be left uninitialized. ◦ If those Xs are not handled correctly, they may leak to important registers and leave the design in a nondeterministic state, causing serious problems.  In order to resolve the Xs easily, engineers are desirable to find and fix all Xs in RTL design. ◦ Resolve approach :  (1) To set uninitialized registers and perform logic simulation to check.  (2) Run gate-level simulation and compare result with RTL simulation. ◦ Problem :  (1) Although this way is fast and easy to implement, but the result is often inaccurate due to X-optimism and X-pessimism in logic simulation.  (2) Gate-level simulation is much slower. Furthermore, once a bug is found, identifying the root cause of the problem in the RTL code may be challenging.

5 [2,10] The kind of X- problems [2,10] The kind of X- problems [This paper] [8] SAT-based method [8] SAT-based method [6] Ad-Hoc Translations [6] Ad-Hoc Translations Xs can enabling synthesis tools to perform better optimizations Using symbolic simulation and SAT solvers to find X- problems at the RTL Chou’s [5] Identifying the root cause Chou’s [5] Identifying the root cause [3,10] X-related problems [3,10] X-related problems Computing reset sequences that can be utilized to prevent undesirable X propagations Routing the reset signal to all registers is becoming more difficult [9] Global Routing [9] Global Routing [4] Bridging RTL and Gate [4] Bridging RTL and Gate Identifying the root cause of the problem in the RTL code may be challenging A technique that utilizes automatic RTL code transformation to avoid unexpected X- propagation. X-handling in logic simulation is often inaccurate due to X- optimism and X- pessimism

6  In order to devise practical solutions for the X-problem, this paper performed an analytical study on X-problems in RTL designs.  X-problems have the following characteristics ◦ Xs is often localized and can be traced back to just an if-then block or a case statement  Challenge : Can be easily masked ◦ Xs propagate out and affect many other registers  Challenge : Finding root cause ◦ Xs are allowed after initialization  Challenge : What to check

7  Analyzed the characteristics of X-problems and proposed an novel methodology called “eXact”. ◦ Adopted Chou’s formal X-analysis method due to its accuracy ◦ Applied several partitioning techniques to increase its scalability  An approach that only reports X-problems missed by logic simulation ◦ This approach can reduce X-analysis effort and let designers focus on real problems

8  Goal : Design a practical methodology that can find X- problems in industrial-size circuits. ◦ Fit in the simulation-based verification flow ◦ Must scale to large designs  Problem formulation ◦ The rest of the bugs are those masked by logic simulation due to X-optimism. ◦ It focus on X-problems in designs, not to discuss for  Incorrect software reset sequences  Misinterpreted specifications

9  Generating stimulus ◦ Using simulation waveforms as stimulus ◦ Using waveforms for X-analysis has the following advantages:  (1) It allows designers to partition a design into smaller blocks.  Easy to dump waveforms for any part of the design.  The formal analysis technique will be able to handle the blocks.  Parallel processing.  (2) It fits into verification flows whose testbenches cannot be symbolically simulated.  The testbenches are written in C++, SystemC and Verilog, and they cannot be symbolically simulated.  By dumping waveforms for X-analysis, our verification environment does not need to be changed.  The flow of X-analysis ◦ First, we partition the design and then perform logic simulation of the initialization sequence to dump a waveform for each design block.

 Constrained-Random Simulation ◦ Ideal : Automatically generates random and legal patterns  Advantage : Generate input scenarios that designers didn’t think of ◦ Practical : Writing constraints for DUV can be challenging  Under-constrained testbench  Produce illegal inputs, leading to the analysis of irrelevant states  Increasing verification quality  Over-constrained testbench  Can’t cover the whole valid input space and may miss bugs,  Reducing verification quality 10 Under-Constrainted example Over-Constrainted example

11  Deciding what to check ◦ Face the designs contain a large number of registers  Designers need to specify which registers to check in order to avoid false alarms. ◦ One way is Using SystemVerilog’s $isunknown ◦ This approach may not be practical to specify everything that needs to be verified because the number of such registers may be large.  To address this problem ◦ Only check the registers that don’t have Xs in logic simulation.  It can identify potential problems that are masked due to X-optimism in logic simulation. The functions of right table can be used anywhere in SystemVerilog code.

12  Enhancing Scalability ◦ First, execute symbolic simulation to a checkpoint. ◦ Then perform formal X-analysis. ◦ At the checkpoint  If any X is found, designers should check whether the X is acceptable or not  If the X is not acceptable, then a bug is found.  If the X is acceptable, then the non-X value in the design register should not cause any problem in the future.  So, it can simply execute logic simulation to the current checkpoint The process of X-analysis after temporal partitioning

13  Overall Methodology ◦ (1) Partition the design so that each block can be verified efficiently by the formal X-analysis engine. ◦ (2) For a block, select checkpoints for temporal partitioning. Run logic simulation using the reset sequence to dump a waveform. X-free registers at those checkpoints are also identified. ◦ (3) Use waveform as stimulus to perform X-analysis on X-free registers for every interval according to the method. Potential Xs will be reported. ◦ (4) Repeat step 2 and 3 for all the blocks.

14  I want to see ◦ The content of six-million gate design ◦ The effort of eXact  accuracy  scalability  Experiment setting ◦ Using a commercial symbolic simulator called Insight [12]. ◦ Running on a Linux server  Quad-Core Xeon processors (2.93 to 3.16 GHz)  Memory between 16G and 128G

15  A six-million gate high-speed tester design ◦ Since the design was too large for formal X-analysis, partitioning was necessary.  To select appropriate block sizes for partitioning ◦ (1) Picked a block and ran symbolic simulation for a few cycles. ◦ (2) Measured the run time of symbolic simulation.  If the runtime seems to be reasonable, then the block is suitable for formal X- analysis. ◦ In this case, author found that 200K-300K is the maximum number of gates that symbolic simulation can handle efficiently.

16  Chose checkpoint intervals according to simulation speed ◦ Goal to finish X-analysis of each block in at most two days with as few checkpoints as possible. ◦ There were several FIFOs inside the alp_cmem_eng block that were implemented using memory, so it need more time to simulation.  Provide the percentage of registers that need to be checked. ◦ Focusing only on the registers without X in logic simulation, it reduce the number of registers that need to be analyzed.

17  Conclusions ◦ eXact methodology  To find X-problems, caused by uninitialized registers in RTL designs.  Easily to  Adopted into most simulation-based verification flows  Find potential X-problems  Thus it can significantly  Reducing design verification time  Improve design quality  My comments ◦ The methodology in this paper is useful to our design in gate- level simulation. ◦ We can faster to find X-problems than before.