Professional Documents
Culture Documents
level
Rohit Jindal
ST Microelectronics
Agenda
General Overview of UVM
2
What is UVM?
Universal Verification Methodology
Testbenches for HDL designs
UVM has SystemVerilog Base Class Library
Based on constrained Random Verification approach
Industry standard developed by Accellera
Apache 2.0 open-source license
3
The Goal : Automation
4
Key Features of UVM [1]
Built-in automation
Transaction manipulation (Print / Pack / [Deep] Copy / Record)
TLM communication
Modular and Language independent
Supports reuse
Module-to-system
Project-to-project
5
Key Features of UVM [2]
Sequences or Testcases
UVM Tests or sequences separated from TestBench environment
Uniformity
Standard structure for all Testbench components
UVM factories
UVM factories give flexibility
Easy to update or modify components without changing original code
Configuration
UVM configuration helps in customizing the environment from Top or anywhere
And more…
Messaging utilities with on-the-fly control over verbosity
Ensures random stability
Compile once and run many times using snapshot
6
Reusable UVM Component Architecture
Env • Encapsulates the
(UVC)Agent • An env encapsulates and
Agent configurescomponents for
multiple agents
Agent
a device
• Also referred on UVM
to as an the bus
• Verification
Independently
• Containscollects
shared
Component config
(UVC)
Sequencer
Config: • Generates sequences
transactions information of
sequences
active_passive from the transactions
DUT interface
tlm i/f
and passes
• Contains them
itemstofrom
• Pullsevents, the the
driver
status,
• Connected• A checking
bus to the driver
protocol
sequencer via a
can have
tlm i/f
tlm i/f variable
and
• Implements number
TLMcoverage
interface of devices
signal-level
Monitor
• Each •isVirtual
represented
Coverage Driver • Sends transactions
protocol toasaan– agent
Interface
Checking
and sendsConnection
scoreboard to the DUT
vif vif
viafrom
TLM the testbench
write port to the
• SystemVerilog DUT Interface
••Contains
ContainsDUT DUTsignals
bus signals
for a
APB IF
device
DUT
7
What Are the Benefits Of This
Architecture?
Encapsulating components makes “Virtual” sequences enable
it modular and simplifies maintenance control at the system level
APB IF
DUT
Architecture exactly the
same across all languages!
Each component has an UVM parent class
with built-in utilities and automation …
8
Agenda
General Overview of UVM
9
Challenges for SoC verification
Quick setup of SoC verification env (integration of
all verification component)
Synchronization or Control of verification
components
More emphasize is on system scenarios/
integration rather than on randomization
Should able to reuse configuration of IP from IP
or sub-system testcases
Should able to re-produce validation issues
10
IO Injector
TLM Platform Receiver
Reference
SoC IP
User Code
Integration Verification
Seqs
Seqs Sequencer
Reference IP
Seqs
Reference IP
I/O UVC RTL IP
Monitor Protocol
TLM
Monitor
TLM Port Driver
Driver
ICN
Seqs
Memory Seqs Sequencer
Seqs
Virtual Register Virtual
Sequence ICN UVC
Monitor Protocol
TLM
Monitor
TLM Port Driver
Driver
IO Injector
TLM Platform Receiver
Reference
SoC IP
User Code
Integration Verification
Seqs
Seqs Sequencer
Seqs
RTL IP
I/O UVC
Monitor Driver
ICN
Seqs
Memory Seqs Sequencer
Seqs Processor
Virtual Register
ICN UVC
Monitor Driver
No Simple way to control UVC from C
Challenges in using UVM at SoC level
13
IO Injector
TLM Platform Receiver
Reference
SoC IP
User Code
Integration Verification
Seqs Sequencer
Seqs
TLM Reg
Monitor Processor
Driver Controlled Seq
Sequence Name Reg Reg
Control Reg
Work done
Developed a wrapper to connect TLM port
between SystemC and UVM
Added TLM export in sequencer
Added a sequence with registers which can be
controlled through TLM port
Developed Test platform to demonstrate
controlling of sequence from TLM IP
15
IO Injector
TLM Platform Receiver
Reference
SoC IP
User Code
Integration Verification
SOC
IO RTL IP3
Injector UVC
Receiver
Ethernet UVC
Ether
USB UVC
USB
net
BFM
EMI LMI
Transactor SLM
ISS
18
Wishlist for UVM 2.0
Seamless connection between UVM and SystemC ports
TLM export in sequencer library
Sequence with registers which can be written from TLM
port in sequencer
Event queue in sequencer for synchronization
Standard name for some of the sequences like
generate_interrupt, clear_interrupt, dma_data_transfer
etc
19
Thanks
20