The Various Kinds of UVM Component
Although we introduced the class uvm_component above, that class is not used directly very much in practice. Instead, UVM provides several alternative kinds of component for use in various contexts. Each of these component types is a different SystemVerilog class, and each of these classes extends uvm_component, which means that each inherits all the methods and properties of their base class uvm_component.
Here is a list of the main kinds of UVM component. There are others, but they are less important.
- uvm_agent
- uvm_driver
- uvm_env
- uvm_monitor
- uvm_scoreboard
- uvm_sequencer
- uvm_subscriber
- uvm_test
Easier UVM recommends that you select components from the list above rather than just using the vanilla uvm_component. This will make your intent clearer to the reader.
The expected role of each kind of component has been described extensively elsewhere. See for example the Getting Started tutorial.
Next: From HDL Processes to the UVM Run Phase
Previous: From Design Entities and Modules to the UVM Component
Back to Easier UVM - for VHDL and Verilog Users
Back to the full list of UVM Resources