How to make use of ovm_event for synchronization?

Can anybody show a small example for the use of ovm_event for synchronization between two components, e.g. i want to generate one event in my driver and i have to sample it in receiver component, or is there any other way apart from event synchronization (but i d’nt wnt to make use of interface signals).

the most conveninet implementation is using global pool:

in the driver:

ovm_event_pool p1 = p1.get_global_pool();
ovm_event e1 = p1.get("ABC");
p1.trigger();
p1.reset();

in the receiver:

ovm_event_pool p1 = p1.get_global_pool();
ovm_event e1 = p1.get("ABC");
p1.wait_trigger();

hope it helps.

It might help to explain a little bit more about the what the purpose of the communication is. In general, you shouldn’t have drivers communicating with anything other than the component generating the transactions they are translating. i.e. the sole purpose of a driver is to translate one abstraction layer to another.

If the communication is soley betwen these two components, I would recommend one of the TLM mechanisms for synchronization.

Dave

Dave