Fork

LRM §9.8.2.

The fork-join groups statements together, so that they execute concurrently.

Syntax:

fork [ : label
  [ local_declarations ] ]
  statements
join 

Description:

The fork-join groups statements together concurrently. The order of statements within a fork-join block does not matter. Timing controls are relative to the time at which the block was entered. The fork-join block completes when all statements have been completed.

A fork-join must have a label (name) when it contains local declarations, or will be disabled with the disable keyword.

The local declarations must be a register data type or parameter.

Example:

fork: Stimuli
  #20 Data = 4'h0;
  #30 Data = 4'hF;   // This is executed last
  Reset = 0;         // This is executed first
  #10 Reset = 1;
join                 // It completes at time 30

Notes:

See also:

Always, Begin, Initial