Overview
A UVM virtual sequence is used in a UVM verification environment to coordinate stimulus across multiple interfaces or sub-interfaces. In the cited RISC-V Vector Processing Unit (VPU) verification setup, each virtual sequence creates interface-specific transactions that are sent to the corresponding interface agent.[1]
The environment described in the evidence used the Universal Verification Methodology (UVM) because it supports modular, scalable, and reusable verification environments.[2]
Role in a multi-interface UVM environment
In the VPU verification environment, the design exposed several semi-independent sub-interfaces. The verification team created one UVM agent per sub-interface. Each agent contained a sequencer, a driver, and a monitor connected to the relevant virtual interface.[3]
The virtual sequence sends transactions to the appropriate interface. The driver then stimulates the corresponding sub-interface using the values from the incoming transaction.[4]
Because the virtual sequence does not directly know when a transaction has been driven, the environment includes a monitor that captures the interface state and sends that information back to the virtual sequence through the sequencer. The virtual sequence can then react to the observed transaction and produce new stimulus.[5]
Synchronization and inter-sequence communication
The cited VPU environment had seven unique sub-interfaces that communicated with each other. To keep the sub-interfaces synchronized, the verification environment used UVM events, including their ability to transmit data along with an event trigger. This mechanism helped virtual sequences communicate with one another.[6]
Example: RISC-V Vector Processing Unit verification
In the VPU verification flow, constrained-random stimulus generation was complicated by dependencies among sub-interfaces. The team therefore randomized only the instructions sent to the issue sub-interface, while the other sub-interfaces reacted according to the driven instructions.[7]
After an instruction was supplied through the issue agent, the UVM environment followed the VPU instruction execution flow. The evidence identifies two observed or stimulated interfaces in this flow: DISPATCH, where the environment confirms or discards instruction execution in instruction order, and COMPLETED, where a monitor observes completion of a confirmed instruction and creates a transaction.[8]
Key characteristics from the cited use case
- Creates interface-specific transactions for corresponding interfaces.
- Works with UVM agents composed of sequencers, drivers, and monitors.
- Receives observed interface state through monitor-to-sequencer feedback.
- Reacts to observed transactions by producing additional stimulus.
- Uses UVM events for synchronization and communication when multiple dependent sub-interfaces are present.