Abstract

Universal Verification Methodology (UVM) is a standardized approach of verifying integrated circuit designs, targeting a Coverage-Driven Verification (CDV). It combines automatic test generation, self-checking testbenches, and coverage metrics to indicate progress in the design verification. The flow of the CDV differs from the traditional directed-testing approach. With the CDV, a testbench developer, by setting the verification goals, starts with an structured plan. Those goals are targeted further by a developed testbench, which generates legal stimuli and sends them to a device under test (DUT). The progress is measured by coverage monitors added to the simulation environment. In this way, the non-exercised functionality can be identified. Moreover, the additional scoreboards indicate undesired DUT behaviour. Such verification environments were developed for three recent ASIC and FPGA projects which have successfully implemented the new work-flow: (1) the CLICpix2 65 nm CMOS hybrid pixel readout ASIC design; (2) the C3PD 180 nm HV-CMOS active sensor ASIC design; (3) the FPGA-based DAQ system of the CLICpix chip. This paper, based on the experience from the above projects, introduces briefly UVM and presents a set of tips and advices applicable at different stages of the verification process-cycle.

Highlights

  • A Universal Verification Methodology (UVM) testbench is composed of verification components — encapsulated, reusable, ready-to-use, configurable elements checking an interface protocol, a design sub-module, or a full system

  • Unlike the tests based on a fully random generation of transactions and the device under test (DUT) stimulation, the UVM suggests a targeted randomization of transaction fields by use of System Verilog constraints

  • The UVM sequencer has the ability to react on the current state of the DUT for every generated transaction

Read more

Summary

Testbench architecture

A UVM testbench is composed of verification components — encapsulated, reusable, ready-to-use, configurable elements checking an interface protocol, a design sub-module, or a full system. The architecture of each component is logical. It includes a complete set of elements enabling the stimulation, check and collection of coverage information related to the specific protocol or design. An example of a test environment is presented in figure 1. A developer reuses three interface verification components from a common set, instantiating and configuring them in a required operational mode. The timing and data correlation between the different interfaces, as well as control of the test environment in the particular testbench, is obtained through a multi-channel sequence mechanism — a virtual sequencer

Transactions
Driver
Sequencer
Monitor
Scoreboard
Verification
Verification platform
Actual verification
Summary
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call