While SystemVerilog native event types are useful for
simple thread triggers, they are transient and difficult to
share across OVM/UVM hierarchies. uvm_event is a class-based
wrapper that transforms a simple trigger into a powerful communication
object.
Why use uvm_event?
- Persistence: The event is an object. Its state (triggered or not) can be checked at any time.
- Payload Sharing: You can attach any
uvm_objectas data to the trigger. - Callback Hooks: You can trigger logic automatically when an event occurs.