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

2183 Results

  • 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.

  • Portable VHDL Testbench Automation with Intelligent Testbench Automation

    We've come a long way since digital designs were sketched as schematics by hand on paper and tested in the lab by wiring together discrete integrated circuits, applying generated signals and checking for proper behavior. Design evolved to gate-level on a workstation and on to RTL, while verification evolved from simple directed tests to directed random, constrained-random, and systematic testing

  • 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.

  • Transaction Methods

    When working with data object classes derived from uvm_objects, including ones derived from uvm_transactions, uvm_sequence_items and uvm_sequences, there are a number of methods which are defined for common operations on the data objects properties.

  • End of Test

    A UVM testbench, if is using the standard phasing, has a number of zero time phases to build and connect the testbench, then a number of time consuming phases, and finally a number of zero time cleanup phases.

  • UVM Driver

    The UVM driver is responsible for communicating at the transaction level with the sequence via TLM communication with the sequencer and converting between the sequence_item on the transaction side and pin-level activity in communicating with the DUT via a virtual interface.