Search Results

Filters
Reset All

Filters

Topic

Show More

Show Less

Content Type

Show More

Show Less

Audience

Resource Type

Show More

Show Less

Tags

Show More

Show Less

1987 Results

  • Back Pointers

    In the original single top bidirectional driver example, all driver activity is initiated from the testbench domain.

  • Defining an API

    As the timed portion of the traditional UVM transactor must be moved over to the HDL domain.

  • Emulation-Ready Testbench Examples

    This article steps through the process of converting a comprehensive traditional single top UVM example testbench to an equivalent one with a dual domain partitioned structure that is ready for co-emulation with Veloce.

  • Sequence Priority

    The UVM sequence use model allows multiple sequences to access a driver concurrently.

  • Overriding Sequences and Sequence Items

    Sometimes, during stimulus generation, it is useful to change the behavior of sequences or sequence items.

  • Layering Sequences

    Many protocols have a hierarchical definition - for example, PCI express, USB 3.0, and MIPI LLI all have a Transaction Layer, a Transport Layer, and a Physical Layer.

  • Locking or Grabbing a Sequencer

    There are a number of modeling scenarios where one sequence needs to have exclusive access to a driver via a sequencer.

  • Hierarchical Sequences

    When dealing with sequences, it helps to think in layers when considering the different functions that a testbench will be asked to perform.

  • Register-Level Stimulus

    Stimulus that accesses memory mapped registers should be made as abstract as possible.

  • Register Model & Structure

    In order to be able to use the UVM register model effectively, it is important to have a mental model of how it is structured in order to be able to find your way around it.

  • Register Sequence Examples

    To illustrate how the different register model access methods can be used from sequences to generate stimulus, this page contains a number of example sequences developed for stimulating the SPI master controller DUT.

  • Generating Register Models

    A register model can be written by hand, following the pattern given for the SPI master example.

  • Integrating a UVM Register Model in a Testbench - Implementation

    The integration process for the register model involves constructing it and placing handles to it inside the relevant configuration objects, and then creating the adaption layers.

  • Memory-Level Stimulus

    The UVM register model also supports memory access. Memory regions within a DUT are represented by memory models which have a configured width and range and are placed at an offset defined in a register map

  • "Quirky" Registers

    Quirky registers are just like any other register described using the register base class except for one thing.

  • Integrating a UVM Register Model in a Testbench - Overview

    Within an UVM testbench a register model is used either as a means of looking up a mirror of the current DUT hardware state or as means of accessing the hardware via the front or back door and updating the register model database.

  • Register Model Coverage

    Which covergroups get built within a register block object or a register object is determined by a local variable called m_has_cover.

  • The Sequence Library

    UVM provides a class for randomly creating and running sequences. This class is called uvm_sequence_library.

  • Stopping a Sequence

    Once started, sequences should not be stopped.

  • Virtual Sequences

    A virtual sequence is a sequence which controls stimulus generation using several sequencers.

  • Slave Sequences (Responders)

    A slave sequence is used with a driver that responds to events on an interface rather than initiating them. This type of functionality is usually referred to as a responder.

  • Wait for a Signal

    In the general case, synchronizing to hardware events is taken care of in UVM testbenches by drivers (proxy & BFM) and monitors (proxy & BFM).

  • Interrupt Sequences

    In hardware terms, an Interrupt is an event which triggers a new thread of processing.

  • Virtual Sequencers (Not Recommended)

    A virtual sequence is a sequence which controls a stimulus generation process using several sequencers.

  • Command Line Processor

    The UVM command line processor is used to interact with plusargs. Several plusargs are pre-defined and part of the UVM standard.