UVM Register Modeling for Verification
Instructor: EDA Academy
Resource—All LevelEnglish
Build practical UVM register models from specifications, integrate them with APB-based environments, run built-in checks, create user-defined register stimulus, and use front-door, back-door, update, mirror, predict, peek, and poke operations for efficient DUT verification.
5.0
1students
This offering includes
- 1 module
- 5 lectures
- Access on mobile and computer
- 1.97 hours on-demand video
Description
UVM register modeling provides a practical abstraction layer for verifying register and memory behavior in a design under test. Instead of manually writing bus-level accesses and separate expected-value checks for every register, the register model captures addresses, widths, reset values, fields, access policies, memory regions, address maps, and expected state. This makes register verification more readable, repeatable, and reusable across environments that use different interface protocols.
A memory controller with an APB interface, a 4K memory block, mode registers, a status register, and access counters provides a focused technical target. The register model represents ordinary read/write storage, read-only status behavior, memory access, counter updates, and side effects caused by register operations. Desired values define intended configuration, while mirrored values represent the expected DUT state. These model values support automated checking, model-driven updates, and synchronization between the DUT and the register reference model.
Automatic generation reduces the risk of hand-coded UVM register models. Register specifications can be captured in IP-XACT XML, spreadsheets, proprietary formats, or ad-hoc descriptions, then used to generate register model code. IP-XACT, defined by IEEE 1685, provides a structured XML-based way to describe IP and register information. Vendor extensions can carry practical details such as HDL paths, skip attributes, constraints, and other model-generation metadata required for back-door access and built-in sequence control.
Integration connects the generated model to the UVM testbench, address map, adapter, sequencer, and interface UVC. Front-door access turns register API calls into real APB transactions through the adapter and UVC. Back-door access uses hierarchical paths for direct DUT state inspection or modification. Implicit prediction updates the model for API-generated accesses, while explicit prediction becomes necessary when external UVC traffic must also synchronize the model. Built-in sequences such as reset and access checks can be run once the model is connected correctly.
Register API methods provide the operational foundation for custom simulation stimulus. read() and write() perform standard accesses, while get(), set(), and randomize() prepare model-only desired values. update() writes DUT registers that differ from the model, and mirror() refreshes model state from the DUT. predict() adjusts expected mirrored values for internally updated registers. peek() and poke() provide direct back-door access that ignores normal access policies when needed. These operations make the register model both a reference model and an active verification control mechanism.
Catalogue:
Memory Controller Verification Scenario
Memory Controller Verification Plan
UVM Register Model
UVM Register Access API
UVM Register Model Integration
Automatic Register Model Generation
IP-XACT Register XML Description
Generated mode0 Register Definition
Integrating Register Model
Testbench Register Model Integration
Configuring Built-in Register Sequences
Running Built-in Register Sequences
Register API Simulation Stimulus
Register API Data Semantics
Register Read and Write Operations
Managing Mirrored Register Values
Back-Door Peek and Poke Access
Model-Only Register Access Methods
Updating DUT from Register Model
Mirroring DUT Register Values
Register API Calls in Tests
You might also like
More offerings will load here.
Secure checkout via our payment partner.
