Price 3030 + VAT
DURATION 2 Days

Course Overview

The Verification Methodology Manual for SystemVerilog (VMM) specifies a functional verification methodology, and defines the VMM Standard Library implemented in SystemVerilog. VMM includes constrained random stimulus generation, functional coverage collection, assertions, and transaction-level modelling. VMM’s layered structure and channel-based communication model make it suitable for building both very simple and very complex functional verification environments.
Delegates for this course must start with a working knowledge of SystemVerilog, including its object-oriented programming (class-based) features. This course takes delegates through to full VMM verification project readiness by focussing on the verification principles and the in-depth practical application of the VMM.
Workshops comprise approximately 50% of class time, and are based around carefully designed exercises to reinforce and challenge the extent of learning. In the hands-on workshops, delegates will progressively build a complete VMM verification environment for a small example system.

Level:

Advanced Level

Who should attend?

• Verification engineers who need to develop, deploy or configure SystemVerilog verification environments based on the VMM

Prerequisite:

A sound working knowledge of SystemVerilog, including some experience with its object-oriented programming features, is essential. For engineers new to SystemVerilog the Comprehensive SystemVerilog course, or equivalent, is an essential pre-requisite.
For team-based courses, precursor training in SystemVerilog can be tailored to the team’s specific profile using our Modular SystemVerilog portfolio.

What will you learn?

The course is structured into four distinct sections.

• The principles of effective functional verification using SystemVerilog
• How to understand the VMM Standard Library classes, documentation and examples
• How to build complete, powerful, reusable VMM-compliant verification environments

Course Outline:

1. Introduction
• The evolution of VMM from the VMM book through VMM 1.1 to VMM 1.2
• overview of the VMM testbench architecture
• main features of VMM 1.2

2. Transaction Communication
• Defining transactions using vmm_data
• shorthand macros
• vmm_channel
• the active slot
• transaction completion models
• TLM 2.0 communication
• TLM ports and exports
• analysis ports  sockets
• the generic payload
• VMM recommended guidelines
• implicit phasing
• vmm_xactor
• starting and stopping transactors
• master and slave transactors
• the atomic generator
• running a test
• programs

3. The VMM Environment
• Virtual interfaces
• clocking blocks
• Using vmm_env
• Using vmm_group
• explicit phasing

4. Configurability
• Hierarchical name matching
• searching object instances
• class factory
• factory overrides
• callbacks
• extending a callback façade
• registering callbacks
• order of callback execution
• configuration database
• vmm_opts
• configuration macros
• setting a virtual interface
• command line options

5. Messaging
• vmm_log
• using the message service
• built-in message macros
• types and serverities
• message handling
• message catching
• redirecting to a file
• notifications
• vmm_notify
• indicate and wait_for
• synchronization mode
• notify callbacks
• built-in notifications
• using vmm_consensus
• explicit vs. implicit consensus mechanism6. The Datastream Scoreboard
• Using the datastream scoreboard
• overriding transform and compare
• comparison modes
• creating monitors
• using TLM analysis exports
• defining export implementations
• handling multiple streams
• using iterators7. The Scenario Generator
• Understanding scenarios
• vmm_scenario_gen
• using the apply method
• the scenario set
• scenario identifiers
• executing a scenario
• using scenarios in tests
• configuring scenario generators
• using the configuration database with scenarios
• creating hierarchical scenarios
• single stream scenarios
• multi-stream scenarios
• registering channels with a generator
• exclusive channel access8. The Register Abstraction Layer
• The RAL register model
• RALF and ralgen
• RAL-based environments
• predefined register tests
• register coverage9. vmm_subenv and vmm_consensus
• Reusing verification environments
• using vmm_subenv
• using vmm_group
• scalable end-of-test mechanism
• using explicit phasing
• using implicit phasing
• the memory allocation manager

Close Menu