An event is like a doorbell. One process rings it (triggers), and another process waiting for it wakes up. Events have no data - they just signal "something happened".
event done; // Declare an event
initial begin
fork
// Process 1: Wait for event
begin
$display("[%0t] Waiting for event...", $time);
@(done); // Block until event triggers
$display("[%0t] Event received!", $time);
end
// Process 2: Trigger event
begin
#10;
$display("[%0t] Triggering event!", $time);
-> done; // Trigger the event
end
join
end
// Output:
// [0] Waiting for event...
// [10] Triggering event!
// [10] Event received!