I'm implementing a verification environment according to e UVM user guide
.
My question is - why should my_monitor
unit to inherit from uvm_monitor
(same for other UVM components)?
What exactly logic do every uvm_*
have? Can I implement UVM environment without inheriting from uvm_*
units?
Thank you for your help
First - yes, since 99% of the advanced capabilities are part of Specman and not in a library, you can implement UVM environment without loading the UVM-e.
The UVM-e contains VR_AD, Testflow, Scoreboard, Low Power, Unit testing, UVM-debug-window. If you do not care to use any of these - no need to import UVM-e.
About the UVM base types - there is a no big reason to use them. The main reason is for other tools to be able to parse the environment and recognize that a specific unit is like a UVM base type. A linter is an example of an advance tool that can care about things like this (and then report that "you have a monitor without a port" and things like that).