ADVANCED DIGITAL IC DESIGN. Digital Verification Basic Concepts

Similar documents
Lab #1: Introduction to Design Methodology with FPGAs part 1 (80 pts)

ECE 587 Hardware/Software Co-Design Lecture 11 Verification I

ASIC world. Start Specification Design Verification Layout Validation Finish

Definitions. Key Objectives

Verification of Clock Domain Crossing Jitter and Metastability Tolerance using Emulation

Digital Design Methodology (Revisited) Design Methodology: Big Picture

Digital Design Methodology

The Application of Formal Technology on Fixed-Point Arithmetic SystemC Designs

Assertive Verification: A Ten-Minute Primer

SPECMAN-E TESTBENCH. Al. GROSU 1 M. CARP 2

Mapping Multi-Million Gate SoCs on FPGAs: Industrial Methodology and Experience

CS/ECE 5780/6780: Embedded System Design

Test and Verification Solutions. ARM Based SOC Design and Verification

Leveraging Formal Verification Throughout the Entire Design Cycle

Administrivia. ECE/CS 5780/6780: Embedded System Design. Acknowledgements. What is verification?

101-1 Under-Graduate Project Digital IC Design Flow

Advanced FPGA Design Methodologies with Xilinx Vivado

Hardware Design Environments. Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University

Hardware Modeling using Verilog Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Module 4. Design of Embedded Processors. Version 2 EE IIT, Kharagpur 1

Overview of Digital Design with Verilog HDL 1

VERIFICATION OF RISC-V PROCESSOR USING UVM TESTBENCH

Mixed Signal Verification Transistor to SoC

Functional Verification in 8-bit Microcontrollers: A Case Study

EEL 4783: Hardware/Software Co-design with FPGAs

Reset and Initialization, the Good, the Bad and the Ugly

CS 250 VLSI Design Lecture 11 Design Verification

Transaction-Based Acceleration Strong Ammunition In Any Verification Arsenal

Design Process. Design : specify and enter the design intent. Verify: Implement: verify the correctness of design and implementation

Logic Verification 13-1

Efficient Failure Triage with Automated Debug: a Case Study by Sean Safarpour, Evean Qin, and Mustafa Abbas, Vennsa Technologies Inc.

Bibliography. Measuring Software Reuse, Jeffrey S. Poulin, Addison-Wesley, Practical Software Reuse, Donald J. Reifer, Wiley, 1997.

EECS 4340: Computer Hardware Design Unit 4: Validation

CREATIVE ASSERTION AND CONSTRAINT METHODS FOR FORMAL DESIGN VERIFICATION

Evolution of CAD Tools & Verilog HDL Definition

World Class Verilog & SystemVerilog Training

SoC Verification Methodology. Prof. Chien-Nan Liu TEL: ext:

Bulletproofing FSM Verification Automated Approach to Detect Corner Case Issues in an FSM Design

Functional Programming in Hardware Design

EECS150 - Digital Design Lecture 7 - Computer Aided Design (CAD) - Part II (Logic Simulation) Finite State Machine Review

Four Best Practices for Prototyping MATLAB and Simulink Algorithms on FPGAs by Stephan van Beek, Sudhir Sharma, and Sudeepa Prakash, MathWorks

The Need for Speed: Understanding design factors that make multicore parallel simulations efficient

Addressing Verification Bottlenecks of Fully Synthesized Processor Cores using Equivalence Checkers

The Optimization of a Design Using VHDL Concepts

TKT-1212 Digitaalijärjestelmien toteutus. Lecture 7: VHDL Testbenches Ari Kulmala, Erno Salminen 2008

Accelerating CDC Verification Closure on Gate-Level Designs

DESIGN AND VERIFICATION ANALYSIS OF APB3 PROTOCOL WITH COVERAGE

Synthesizable Verilog

Test Scenarios and Coverage

FishTail: The Formal Generation, Verification and Management of Golden Timing Constraints

Choosing an Intellectual Property Core

Intelligent Coverage Driven, modern verification for VHDL based designs in native VHDL with OSVVM

Hardware Synthesis. References

CSE Verification Plan

DESIGN STRATEGIES & TOOLS UTILIZED

Shortest path to the lab. Real-world verification. Probes provide observability

Computers: Inside and Out

Advanced VLSI Design Prof. Virendra K. Singh Department of Electrical Engineering Indian Institute of Technology Bombay

INDUSTRIAL TRAINING: 6 MONTHS PROGRAM TEVATRON TECHNOLOGIES PVT LTD

VCS AMS. Mixed-Signal Verification Solution. Overview. testing with transistor-level accuracy. Introduction. Performance. Multicore Technology

ZeBu : A Unified Verification Approach for Hardware Designers and Embedded Software Developers

Speed up Emulation Debugging using Whitebox Assertions

DO-254 Testing of High Speed FPGA Interfaces by Nir Weintroub, CEO, and Sani Jabsheh, Verisense

The Veloce Emulator and its Use for Verification and System Integration of Complex Multi-node SOC Computing System

CMSC 611: Advanced Computer Architecture

Hardware Design Verification: Simulation and Formal Method-Based Approaches William K Lam Prentice Hall Modern Semiconductor Design Series

FPGA Implementation and Validation of the Asynchronous Array of simple Processors

Cost-efficient Formal Block Verification for ASIC Design

Digital System Design with SystemVerilog

EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis

DVCon India 2016 Abstract submission template. Taking UVM to wider user base the open-source way Name: Nagasundaram Thillaivasagam

Certitude Functional Qualification with Formal Verification. Jean-Marc Forey November 2012

HARDWARE/SOFTWARE CODESIGN OF PROCESSORS: CONCEPTS AND EXAMPLES

Formal Technology in the Post Silicon lab

EE595. Part VIII Overall Concept on VHDL. EE 595 EDA / ASIC Design Lab

RTL Coding General Concepts

Verification of Power Management Protocols through Abstract Functional Modeling

Custom Design Formal Equivalence Checking Based on Symbolic Simulation. Overview. Verification Scope. Create Verilog model. Behavioral Verilog

Hardware describing languages, high level tools and Synthesis

Portable Stimulus vs Formal vs UVM A Comparative Analysis of Verification Methodologies Throughout the Life of an IP Block

TOPIC : Verilog Synthesis examples. Module 4.3 : Verilog synthesis

A Deterministic Flow Combining Virtual Platforms, Emulation, and Hardware Prototypes

SpecC Methodology for High-Level Modeling

Digital VLSI Design with Verilog

Chapter 9. Software Testing

EE 4755 Digital Design Using Hardware Description Languages

Verifying the Correctness of the PA 7300LC Processor

Integrated Workflow to Implement Embedded Software and FPGA Designs on the Xilinx Zynq Platform Puneet Kumar Senior Team Lead - SPC

Introduction to Verilog HDL

Designing Procedural-Based Behavioral Bus Functional Models for High Performance Verification

EDA: Electronic Design Automation

Test Match Partnering Specialist Boundary-Scan with ICT

EEL 5722C Field-Programmable Gate Array Design

PG DIPLOMA COURSE IN VERIFICATION USING SYSTEMVERILOG & UVM NEOSCHIP TECHNOLOGIES

Next-generation Power Aware CDC Verification What have we learned?

For a long time, programming languages such as FORTRAN, PASCAL, and C Were being used to describe computer programs that were

Introduction. White Paper. Author

תכן חומרה בשפת VERILOG הפקולטה להנדסה

Overview of Digital Design Methodologies

DESIGN A APPLICATION OF NETWORK-ON-CHIP USING 8-PORT ROUTER

Transcription:

1 ADVANCED DIGITAL IC DESIGN (SESSION 6) Digital Verification Basic Concepts

Need for Verification 2 Exponential increase in the complexity of ASIC implies need for sophisticated verification methods to be incorporated in the ASIC design process. 70% of time spent in verification Catch the bug as early as possible So catch it in simulation saves time and money. Imagine respin of a chip if the same bug is caught in Silicon the famous FDIV bug in Intel

Tradeoffs 3 Building test benches involves Tradeoffs between: Performance How fast we can test? Efficiency Test coverage and fault grading? Extensibility Evolution with the design Design and verification go together.

What is verification? 4 A process that ensures conformance of a design to some predefined set of expectations. The expectations defined by the specifications

Types of Verification 5 Functional verification of RTL Gate-level simulation, to verify that the synthesized netlist matches the expected functionality Formal Verification (equivalence checking) to make sure that the gate level netlist is equivalent to the RTL. Timing Verification, to verify that the design can run at speed this usually involves a static timing tool.

Functional Verification 6 Run at RTL level and Gate Level too. It involves at RTL level Specifying test cases Creating a test environment Creating the actual tests Ensure that all interesting cases are covered At gate level in addition to above it involves Gates to RTL equivalence checking (Formal Verification) Gates-to-RTL equivalence checking (Formal Verification), reset conditions, clocks, race conditions etc. are checked.

Test Benches 7 With invention of HDLs like Verilog, simulators can compute the responses which could be manually tested. t Use of bus functional models which read stimulus from files or procedurally created the stimulus and applied it to the DUT. The bus models and the environment around the DUT are collectively known as the test bench.

Functional Verification Flow 8 Design Specification Strategy Phase Verification Plan Test Bench Phase Regression and Coverage Regression and Coverage Phase

Strategy Phase 9 Identify Test Cases Level of abstraction of Test bench Stimulus Generation Policy Results monitoring Policy E.g. Cycle accurate, packet accurate. What level of stimulus does it receive? E.g. random, directed, directed random Real-time or post-processing

Strategy Phase (continued) 10 Finding Interesting test cases The exhaustive set of test cases for a million gate design may be in billions!!! The challenge is in narrowing that test space to manageable and practical set without compromising the functionality

Regression and Coverage 11 Regression Ability to run tests periodically in batches, so the stimulus must be easily reproducible and pass/fail be automatically detected. Coverage How much of the design has been tested. Back annotation The Verification engineer may look at coverage to modify The Verification engineer may look at coverage to modify or add more test cases. Get very close to 100% coverage is the objective.

Verification Flows 12 Depends on complexity of design Unit-level checks functionality Chip/system level checks the interconnection between different units. Stimulus generation and result-checking strategies depend on the level of abstraction on which verification is done.

Functions of the Test Bench 13 Generate the stimulus Apply stimulus to the DUT Check the results to verify that the test was successful that is, the output of the DUT conformed to expectations.

Generating Stimulus 14 Binary Stimulus sequence of 0s and 1s driven into the inputs of the DUT User Stimulus a directive from the user to a test bench Finally translates to binary stimulus If the binary stimulus is got from user-specified data then it is called directed testing If the binary stimulus is generated randomly then it is called If the binary stimulus is generated randomly then it is called random testing

15 Checking Results (visual checking) Always useful Works for simple designs Prone to human errors Not suitable for large design debug environment.

16 Checking Results (Post-processing of logs ) This is good because it does not affect the simulation performance, as it is post simulation. Logging outputs at different levels a very effective technique to locate faults without excessive log sizes. Difficulty is that the bug is located only after the whole test is completed. Necessary state information at time of the bug need not be necessarily available.

17 Checking Results (real-time monitoring ) Implementing real-time monitors that check results in a fly. Useful for debugging, as it may flag an error as soon as it is detected and hence state information can be easily inferred. Slows down the simulation

Test cases 18 Test cases for each test bench has to be identified. Three main ways for this: Test by features Test by interfaces Test by corner cases

Test by Features 19 Developed eloped by listing all the design features specified in the document for the DUT a complete functionality list for the DUT. Eliminating Redundancy The major time-reducing factor in feature testing Limitation: Missing interesting cases that are very hardware specific Challenges: Ensure that the specification used to generate the test-by-features test plan is complete and accurate Invent the test cases that best verify the features being tested.

Testing by Interfaces 20 Best suited for protocol testing Limitations: i i An interface test does not account for all possible states of the interfaced components. For a given test t sequence the interfaced components may behave differently in different states. To overcome the limitations a use of test-by-features test plan in coordination with test-by-interfaces test plan is highly beneficial.

Testing by corner cases 21 The boundary conditions of a DUT feature The boundary conditions of the DUT implementation of a feature

Summary of Test Plan Methodologies Testing by Features Testing by Interfaces Testing by corner cases To Generate the test plan List the documented feature of the DUT List all combinations of transactions on all interfaces Study the implementation of DUT features Advantages of the Test Plan Guarantees that advertised features are tested. Testing is not complete without full test-by-features coverage Exposes transactions implied by protocols supported at interfaces but not explicitly named in the DUT feature list. Uncovering test cases not easily inferred from specifications or protocols. Disadvantages of the Test Plan Missing corner cases Missing DUT features that require a sequence of transactions Requires detailed knowledge of DUT implementation 22

Which Test Plan to use? 23 Use all three as one complements the other in advantages and disadvantages All three methods helps achieve the ultimate goal for the verification engineer: A Fully tested bug-free design

Test Generation Schemes 24 Once test plan is listed, the next step is to generate stimulus to perform the test. Test generation schemes are the general methodologies used to generate this stimulus. The main schemes are: Exhaustive Directed Random and Directed Random Sliding window (sweep) The Zeroth Law of Test Generation: Any generated test should yg successfully run to completion and pass on an non-erroneous DUT

Reproducibility 25 A must for both passing and failing tests Debugging failed tests Regression for passing tests Reproducing random tests the randoms are only pseudo-random (Verilog random facilities are also pseudo random in nature).

26 Overview of Test Generation Schemes Complete Test Space Exhaustive Testing Directed Testing Random Testing Directed random Testing Sliding Window

Exhaustive Testing 27 All possible input combinations covered Generated Algorithmically Guarantees complete test space coverage I ibl ith d d i d t hibiti l Impossible with modern designs due to prohibitively large test spaces

Directed Testing 28 Testing of simple and completely unrelated features of a DUT is where this testing excels. Important test cases (Corner cases) have to kept in mind for Directed testing. Expected results must be known in advance.

29 Random and Directed Random Testing Unearthing the unexpected The most closest to a real-time in-field test Random tests are long Long Tests to be re-run on a bug being unearthed. They are necessary say to fill up a long FIFO. A generic framework generating different tests based on random seeds and hence reproducible. Careful initialization of random tests finds bugs more quickly starting at some known context Directed Random testing needs: Parameters and constraints Intelligent test generators with feedback

Sliding Window 30 Used in directed environment or random environment Sweep across parameters and transactions whose result depend upon ordering of them sweep across all possible permutations Sweeping all parameters in a large design is outof-reach and that is the biggest disadvantage.

Logging and Error Checking 31 Human testing of log dumps and waveforms Automated Checking Running tests all throughout without human intervention is a big advantage. Regression tests requires automated checking facility Log information hierarchical dump sufficient enough to retrieve the context of a system

Formal Verification 32 How to ensure full coverage Model Checking: Define a property like fairness and ensure that a model confirms to this property Equivalence checking: Checks whether all models are equivalent functionally