Uploaded by Mullaivanesh A V

UVM Agent: Active, Passive & Reactive - SystemVerilog Verification

advertisement
UVM AGENT
By: Sankalp Dev
What is UVM Agent?
●
●
An Agent encapsulates a Sequencer, Driver and Monitor into a single entity by
instantiating and connecting the components together via TLM interfaces.
An agent can have configuration options lie type of UVM agent
(active/passive) and knobs to turn on features such as functional coverage
and other parameters.
Typical UVM Environment
What does a UVM agent do ?
●
●
●
●
It generates transactions using a driver and send that to DUT via interface.
It also observes DUT responses via monitor and collects data for analysis and
scoreboard comparison.
It can operate in active mode(stimulus Generation) or in the passive mode
(monitor only), making it highly reusable across different environments.
Usually, it makes sense to create an agent that provides protocol specific
tasks to generate transactions, check the results and perform coverage.
Active Agent
●
●
An active agent generates stimulus and drives DUT.
An active agent shall consists of all the three components driver,
sequencer, and monitor
Passive Agent
●
●
A passive agent sample DUT signs but do not drive them.
A passive agent consist of only monitor.
Configuring Agent
●
An agent can be configured as an active or passive agent by using set config
method. The default agent will be active, the set config can be done in
environment or test.
●
get_is_active() Returns UVM_ACTIVE if the agent is acting as an
active agent and UVM_PASSIVE if the agent acting as a passive agent.
Writing a UVM agent
Declare driver, sequencer and monitor instance
Depending on agent type, create agent components in the build phase.
Connect phase
Reactive Agent
●
●
A Reactive UVM Agent monitors activity on the DUT interface and reacts by
generating new transactions based on observed behavior. It combines both
monitoring and driving stimulus, but its stimulus is dependent on the DUT's
activity (reaction-based).
The reactive agent setup makes it possible to dynamically respond to DUT
behavior, making it a flexible solution for complex verification scenarios.
How it Works?
●
●
●
Monitor observes DUT activity and sends transactions to the sequencer.
Sequencer Reacts by generating new transactions based on the observed
activity.
Driver Drives these generated transactions back to the DUT.
Monitor for reactive agent
Sequencer for Reactive agent
Driver for reactive agent
Download