Why dont we use uvm_component instead of uvm_driver, uvm_sequencer, uvm_test, uvm_monitor?
A number of classes derived from uvm_component
like uvm_driver
, uvm_sequencer
, uvm_subscriber
have class properties required for implementation. A few classes like uvm_test
and uvm_monitor
are just empty extensions of uvm_component
.
At one time it was thought these classes might have some future functionality in their respective base classes, but they do help organize your testbench. For example, it becomes easy to show all your tests as being derived from uvm_test
.