# uvm_event_callback

The uvm_event_callback class is an abstract class that is used to create callback objects which may be attached to uvm_event#(T)s. To use, you derive a new class and override any or both pre_trigger and post_trigger.

Callbacks are an alternative to using processes that wait on events. When a callback is attached to an event, that callback object’s callback function is called each time the event is triggered.

Summary

uvm_event_callback
The uvm_event_callback class is an abstract class that is used to create callback objects which may be attached to uvm_event#(T)s.
Class Hierarchy
uvm_void
uvm_object
uvm_event_callback
Class Declaration
> virtual class uvm_event_callback#(
> | type | T | = | uvm_object
> ) extends uvm_object
Methods |
new | Creates a new callback object.
pre_trigger | This callback is called just before triggering the associated event.
post_trigger | This callback is called after triggering the associated event.

### Methods

### new

> function new (
> | string | name | = | ""
> )

Creates a new callback object.

### pre_trigger

> virtual function bit pre_trigger (
> | uvm_event#(T) | e,
> | T | data
> )

This callback is called just before triggering the associated event. In a derived class, override this method to implement any pre-trigger functionality.

If your callback returns 1, then the event will not trigger and the post-trigger callback is not called. This provides a way for a callback to prevent the event from triggering.

In the function, e is the uvm_event#(T) that is being triggered, and data is the optional data associated with the event trigger.

### post_trigger

> virtual function void post_trigger (
> | uvm_event#(T) | e,
> | T | data
> )

This callback is called after triggering the associated event. In a derived class, override this method to implement any post-trigger functionality.

In the function, e is the uvm_event#(T) that is being triggered, and data is the optional data associated with the event trigger.

> virtual class uvm_void

The uvm_void class is the base class for all UVM classes.

> virtual class uvm_object extends uvm_void

The uvm_object class is the base class for all UVM data and hierarchical classes.

> virtual class uvm_event_callback#(
> | type | T | = | uvm_object
> ) extends uvm_object

The uvm_event_callback class is an abstract class that is used to create callback objects which may be attached to uvm_event#(T)s.

> class uvm_event#(
> | type | T | = | uvm_object
> ) extends uvm_event_base

The uvm_event class is an extension of the abstract uvm_event_base class.

> function new (
> | string | name | = | ""
> )

Creates a new callback object.

> virtual function bit pre_trigger (
> | uvm_event#(T) | e,
> | T | data
> )

This callback is called just before triggering the associated event.

> virtual function void post_trigger (
> | uvm_event#(T) | e,
> | T | data
> )

This callback is called after triggering the associated event.