This environment is a template for other register test enviornments or may be used as-is.
| UVM Register Environment | |
| This environment is a template for other register test enviornments or may be used as-is. |
An environment that can be used for automated register testing.
It contains a driver, sequencer, bus_driver, monitor and scoreboard.
Once things are built and connected, this env uses the factory to find sequences to run.
| uvm_register_env | |||
| An environment that can be used for automated register testing. | |||
| Class Hierarchy | |||
| |||
| Class Declaration | |||
| |||
| Ports | |||
| bus_transport_port | The “downstream” side of the env. | ||
| bus_rsp_analysis_export | Publishes the register monitor analysis export. | ||
| Variables | |||
| m_sequencer | The sequencer contained in the env. | ||
| m_driver | The driver contained in the env. | ||
| m_bus_driver | The bus_driver contained in the env. | ||
| m_register_monitor | The register monitor contained in the env. | ||
| m_register_map | Convenient place to house the register map for users of this env to reference. | ||
| Methods | |||
| new() | Construct this object. | ||
| build() | Build the components and ports. | ||
| connect() | Connect the upstream side of the driver to the sequencer. | ||
| run() | 1) Find a sequence to run. | ||
The “downstream” side of the env. The register driver transport_port is connected here.
Publishes the register monitor analysis export. This is an “input”. Register transaction responses should come back here to be processed by the uvm_register_monitor (built-in scoreboard).
uvm_register_sequencer #( uvm_register_transaction, uvm_register_transaction ) m_sequencer
The sequencer contained in the env.
uvm_register_driver #( uvm_register_transaction, uvm_register_transaction ) m_driver
The driver contained in the env.
uvm_register_bus_driver #( uvm_register_transaction, uvm_register_transaction ) m_bus_driver
The bus_driver contained in the env.
uvm_register_monitor #( uvm_register_transaction ) m_register_monitor
The register monitor contained in the env. Used to scoreboard register transactions.
uvm_register_map m_register_map
Convenient place to house the register map for users of this env to reference. This is the register map being exercised.
function void connect()
Connect the upstream side of the driver to the sequencer. Connect the bus_driver “downstream” side to the bus_transport_port. Connect the bus monitor analysis port (the output side) to the register monitor (scoreboard).
task run()
1) Find a sequence to run. Either by name or by type. 2) Run it. ie. m_sequence.start(m_sequencer);
An environment that can be used for automated register testing.
class uvm_register_env extends uvm_env
The sequencer contained in the env.
uvm_register_sequencer #( uvm_register_transaction, uvm_register_transaction ) m_sequencer
The driver contained in the env.
uvm_register_driver #( uvm_register_transaction, uvm_register_transaction ) m_driver
The bus_driver contained in the env.
uvm_register_bus_driver #( uvm_register_transaction, uvm_register_transaction ) m_bus_driver
The register monitor contained in the env.
uvm_register_monitor #( uvm_register_transaction ) m_register_monitor
Convenient place to house the register map for users of this env to reference.
uvm_register_map m_register_map
Construct this object.
function new( string name, uvm_component parent = null )
Build the components and ports.
function void build()
Connect the upstream side of the driver to the sequencer.
function void connect()
1) Find a sequence to run.
task run()