Please explain the difference between ->> and -> named event triggers in System Verilog?

Named events in System Verilog have two event triggers:
β†’
->>

Not able to understand the difference in their working

In reply to Dhruv Upadhyay:

It’s to remove race conditions, the same as the difference between blocking and nonblocking assignments.

event done;
initial fork
          begin
            // stuff to do without delays
            ->done; // ->> schedules trigger in NBA region
          end
          begin
             @done;
             // more stuff to do
          end
        join

This is a race condition, depending on the ordering between the trigger and event control. The nonblocking trigger ->> schedules in a NBA region, the event control is guaranteed to appear before the trigger event.

1 Like