Universal Verification Methodology (UVM) Module 5

Similar documents
Verification of Digital Systems, Spring UVM Basics

Advanced Verification Topics. Bishnupriya Bhattacharya John Decker Gary Hall Nick Heaton Yaron Kashai Neyaz Khan Zeev Kirshenbaum Efrat Shneydor

Multicore MESI Based Cache Design HAS

Contents 1 Introduction 2 Functional Verification: Challenges and Solutions 3 SystemVerilog Paradigm 4 UVM (Universal Verification Methodology)

Making it Easy to Deploy the UVM by Dr. Christoph Sühnel, frobas GmbH

width: 10, 20 or 40-bit interface maximum number of lanes in any direction

Development of UVM based Reusabe Verification Environment for SHA-3 Cryptographic Core

Maximize Vertical Reuse, Building Module to System Verification Environments with UVMe

Integrate Ethernet QVIP in a Few Hours: an A-to-Z Guide by Prashant Dixit, Questa VIP Product Team, Mentor Graphics

Design and Verification of Slave Block in Ethernet Management Interface using UVM

Stacking UVCs Methodology. Revision 1.2

An Evaluation of the Advantages of Moving from a VHDL to a UVM Testbench by Shaela Rahman, Baker Hughes

DDR SDRAM Bus Monitoring using Mentor Verification IP by Nikhil Jain, Mentor Graphics

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

Tough Bugs Vs Smart Tools - L2/L3 Cache Verification using System Verilog, UVM and Verdi Transaction Debugging

UVM for VHDL. Fast-track Verilog for VHDL Users. Cont.

UVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER CORE

Simplified UVM for FPGA Reliability UVM for Sufficient Elemental Analysis in DO-254 Flows by Shashi Bhutada, Mentor Graphics

UVM in System C based verification

Making the Most of your MATLAB Models to Improve Verification

NoC Generic Scoreboard VIP by François Cerisier and Mathieu Maisonneuve, Test and Verification Solutions

Course Profile Assertions in UVM

Universal Verification Methodology(UVM)

Complex Signal Processing Verification under DO-254 Constraints by François Cerisier, AEDVICES Consulting

Formal Contribution towards Coverage Closure. Deepak Pant May 2013

Comprehensive CDC Verification with Advanced Hierarchical Data Models

IOT is IOMSLPT for Verification Engineers

DEVELOPMENT AND VERIFICATION OF AHB2APB BRIDGE PROTOCOL USING UVM TECHNIQUE

Sunburst Design - SystemVerilog UVM Verification Training by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc.

Graph-Based IP Verification in an ARM SoC Environment by Andreas Meyer, Verification Technologist, Mentor Graphics Corporation

Verifying a low power design

Verification of Advanced High Speed Bus in UVM Methodology

Responding to TAT Improvement Challenge through Testbench Configurability and Re-use

Test Scenarios and Coverage

LEVERAGING A NEW PORTABLE STIMULUS APPROACH Graph or rule based stimulus descriptions

SVA in a UVM Class-based Environment by Ben Cohen, author, consultant, and trainer

UVM-SystemC Standardization Status and Latest Developments

Accelerating RTL Simulation Techniques by Lior Grinzaig, Verification Engineer, Marvell Semiconductor Ltd.

System-Level Verification Platform using SystemVerilog Layered Testbench & SystemC OOP

Easy migration between frameworks using UVM Multi- Language (UVM-ML) Dr. Mike Bartley, Test and Verification Solutions

Creating a Complete Low Power Verification Strategy using the Common Power Format and UVM

Assertion and Model Checking of SystemC

Verification of Cache Coherency Formal Test Generation

FORMAL SPECIFICATION, SYSTEM VERILOG ASSERTIONS & COVERAGE. By Calderón-Rico, Rodrigo & Tapia Sanchez, Israel G.

SVA Alternative for Complex Assertions

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

Verification of AHB Protocol using UVM

Génération de tests basés sur les modèles pour des systèmes sur puce avec cohérence de caches

EECS 4340: Computer Hardware Design Unit 4: Validation

Assertion-Based Verification

Will Everything Start To Look Like An SoC?

Universal Verification Methodology (UVM) 10:05am 10:45am Sharon Rosenberg UVM Concepts and Architecture

Formal Verification: Not Just for Control Paths

Next Generation Verification Process for Automotive and Mobile Designs with MIPI CSI-2 SM Interface

Sunburst Design - Comprehensive SystemVerilog Design & Synthesis by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc.

A comprehensive approach to scalable framework for both vertical and horizontal reuse in UVM verification

Transactional Memory Subsystem Verification for an ARMv8 server class CPU

SystemVerilog UVM. Student Workbook

Stitching UVM Testbenches into Integration-Level

VERIFICATION OF RISC-V PROCESSOR USING UVM TESTBENCH

Graph-Based Verification in a UVM Environment

4 Chip Multiprocessors (I) Chip Multiprocessors (ACS MPhil) Robert Mullins

Verifying big.little using the Palladium XP. Deepak Venkatesan Murtaza Johar ARM India

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

PG DIPLOMA COURSE IN VERIFICATION USING SYSTEMVERILOG & UVM NEOSCHIP TECHNOLOGIES

Small, Maintainable Tests

Lecture 3: Snooping Protocols. Topics: snooping-based cache coherence implementations

Assertion Based Verification of AMBA-AHB Using System Verilog

Verification at ARM. Overview. Alan Hunter

Assertion-Based Verification

Verification Prowess with the UVM Harness

Reuse MATLAB Functions and Simulink Models in UVM Environments with Automatic SystemVerilog DPI Component Generation

Formal Technology in the Post Silicon lab

Leveraging Formal Verification Throughout the Entire Design Cycle

6 Month Certificate Program in VLSI Design & Verification" with Industry Level Projects. Tevatron Technologies Prívate Limited

INDUSTRIAL TRAINING: 6 MONTHS PROGRAM TEVATRON TECHNOLOGIES PVT LTD

The SystemC Verification Standard (SCV) Stuart Swan Senior Architect Cadence Design Systems, Inc.

Sunburst Design - Advanced SystemVerilog for Design & Verification by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc.

Applying Design Patterns to accelerate development of reusable, configurable and portable UVCs. Accellera Systems Initiative 1

Simulation-Based FlexRay TM Conformance Testing an OVM success story

Fast Track to Productivity Using Questa Verification IP by David Aerne and Ankur Jain, Verification Technologists, Mentor Graphics

OVM/UVM Update. Universal Verification Methodology. Open Verification Methodology. Tom Fitzpatrick Verification Technologist Mentor Graphics Corp.

Will Everything Start To Look Like An SoC?

Configuring a Date with a Model

UVM hardware assisted acceleration with FPGA co-emulation

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

User Experience with UVM

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

Practical experience in automatic functional coverage convergence and reusable collection infrastructure in UVM verification

Integrating MATLAB with Verification HDLs for Functional Verification of Image and Video Processing ASIC

Assertion Checker Synthesis for FPGA Emulation

A Generic UVM Scoreboard by Jacob Andersen, CTO, Kevin Seffensen, Consultant and UVM Specialist, Peter Jensen, Managing Director, SyoSil ApS

SystemC Standardization Update Including UVM for SystemC Accellera Systems Initiative SystemC Standards Update. Andy Goodrich, Cadence Design Systems

Mastering Unexpected Situations Safely. Chassis & Safety Vehicle Dynamics

Vertical Reuse of functional verification from subsystem to SoC level (with seamless SoC emulation)

VERIFICATION OF AHB PROTOCOL USING SYSTEM VERILOG ASSERTIONS

Three Steps to Unified SoC Design and Verification by Shabtay Matalon and Mark Peryer, Mentor Graphics

Title: Using Test-IP Based Verification Techniques in a UVM Environment

THE DEVELOPMENT OF ADVANCED VERIFICATION ENVIRONMENTS USING SYSTEM VERILOG

Verification of I2C module for Multiprotocol Serial Controller

Transcription:

Universal Verification Methodology (UVM) Module 5 Venky Kottapalli Prof. Michael Quinn Spring 2017

Agenda Assertions CPU Monitor System Bus Monitor (UVC) Scoreboard: Cache Reference Model Virtual Sequencer Test Coverage

Assertions An Assertion is a check embedded in the design Monitor and report: Expected behavior Forbidden behavior Example: cpu_rd and cpu_wr should not be high at the same time Used in: Static verification: formal verification techniques Dynamic verification: simulation Assertions are not new: always @(posedge clk) if (cpu_rd && cpu_wr) $error( read and write cannot be high );

Need for Assertions Improved observability: Close to source of bug -> lesser debug Automatically and constantly checks behavior Improved efficiency Verif engineers can focus on system-level issues Concisely documents design intent Improved reuse Perfect for IP methodology Tool independent

Types of Assertions Immediate assertions Placed within procedural code Example: within an always block Suitable only for simulation (dynamic verification) Concurrent assertions Placed outside all procedural code Must include a clocking event Suitable for both formal and simulation

Assertions Evaluation uses sampled values i.e. pre-clock values Sequences: Temporal property that spans multiple clock cycles Delay operator (##) @(posedge clk) A ##1 B ##3 C Replication operator [*n] @(posedge clk) B ##1 A[*2] Refer to A Practical Guide for SystemVerilog Assertions ebook available for download from the library

Overlapping Implication Operator

Non-overlapping Implication Operator

Assertions Where to place them in our TB? CPU-lv1 interface System bus interface Examples? Uses: simple protocol checks

Demo Exercise Write sample assertions for Cpu level1 interface System bus interface DIY exercise: Additional assertions for both interfaces

Arbiter Recap: Intermediate TestBench Transaction Sequencer for CPU0 CPU 0 Driver Sequence Test cases/sequences Cache Lv1 Cache Lv1 Cache Lv1 Cache Lv1 Cache Lv2 Main Memory

Recap: Our Objective CPU Agent Scoreboard Checkers tlm Sequencer tlm Monitor tlm Driver tlm Coverage vi vi Cache LV1 (core x)

Arbiter Sequence Virtual Sequencer Test cases/sequences Sequencer for CPU0 Sequencer for CPU1 Sequencer for CPU2 Sequencer for CPU3 Transaction CPU 0 Driver CPU 1 Driver CPU 2 Driver CPU 3 Driver CPU0 monitor Checker Cache Reference Model CPU1 monitor Cache Lv1 Cache Lv1 Cache Lv1 Cache Lv1 CPU2 monitor CPU3 monitor Coverage Collector System Bus Monitor Cache Lv2 Main Memory

CPU Monitor Observe the interface between the CPU and level-1 cache Capture the observations into the CPU monitor packet Transfer the packet to the scoreboard once complete What fields must we populate? Data Address Request Type etc.

CPU Monitor Packet

Demo Exercise Define the cpu monitor Capture the transaction on the cpu-level1 interface into a cpu monitor packet Include the monitor into the cpu agent DIY exercise: Complete the code for the monitor All fields in the cpu monitor packet must be populated

System Bus Monitor Observe the activity on the system bus Which core raised the processor request? Which core received grant? What other fields must be populated? Proc core Snoop core Address Data Transaction type? bus_rd, bus_rdx, invalidate?

System Bus Monitor Packet

Demo Exercise Define the system bus monitor Capture the transaction on the system bus interface into a packet Define a environment (uvm_env) that includes: Agent (CPU0) System bus monitor DIY exercise: Complete the code for the monitor All fields in the sbus packet must be populated

Scoreboard Functions of the scoreboard Transfer function (reference model): transaction level model Expected data storage: expected activity on system bus Elaborate checkers (system level checks) CPU0 monitor Scoreboard CPU0 monitor CPU0 monitor Reference model Expected data storage Checking System bus Monitor CPU0 monitor

Analysis Interface

Implementation

Analysis Interface Example

Analysis Interface Connection

Multiple Analysis Imp Connections

Demo Exercise Connect the analysis TLM interface between the monitors and the scoreboard Walk-through the reference model code What to do when we receive CPU monitor packet? What to do when we receive a Sbus packet? When/what do we check? Sbus packet: expected vs received Data When to update cache model?

Arbiter Recap: Intermediate TestBench Transaction Sequencer for CPU0 CPU 0 Driver Sequence Test cases/sequences CPU 0 Monitor Cache Lv1 Cache Lv1 Cache Lv1 Cache Lv1 Scoreboard System Bus Monitor Cache Lv2 Main Memory

Virtual Sequences

Why Virtual Sequences?

Virtual Sequencer

Connecting the handles

p_sequencer variable Allows a sequence to access properties of its sequencer Virtual sequencer has handles for each of the CPU sequencers Control the transaction on each of the CPU cores Temporal control: read on cpu0 Delay of 10 clock cycles read on cpu2

Virtual Sequence Example

Demo Exercise Create 4 CPU agents corresponding to each of the level1 caches Include these agents within the env Provide Virtual interfaces for all CPU agents Connect all CPU monitors to the scoreboard Create a virtual sequencer with handles for each of the cpu sequencers Assign handles within env Create a sequence for read hit Dcache Modify the test to set default sequence for the virtual sequencer

Coverage Example

Project Instructions How to add a new test, sequence? To-do Driver Monitor Sequences Assertions Checkers Coverage Minimal info required for bug report

References Verification Excellence by Ramdas Cadence SV Tutorial (most slides from here) Cadence UVM Tutorials Udemy Course on SoC Verification Testbench.in Verification Academy Courses Duolos Video Tutorials Accellera UVM Standard Verification Academy UVM Cookbook SystemVerilog for verification by Chris Spear

Feedback https://goo.gl/forms/im0nl97kbh1muyfi3

Thank You Introduction to Hardware Design Verification CSCE/ECEN 489/689