SystemVerilog
3.1 adds dynamic processes by enhancing the fork...join construct, in a way
that is more natural to Verilog users. SystemVerilog 3.1 also introduces
dynamic process control constructs that can terminate or wait for processes
using their dynamic, parent-child relationship. These are wait fork and
disable fork.
SystemVerilog final blocks
execute in an arbitrary but deterministic sequential order. This is possible
because final blocks are limited to the legal set of
statements allowed for functions. SystemVerilog does not specify the ordering,
but implementations should define rules that will preserve the ordering between
runs. This helps keep the output log file stable since
Editor’s Note: The preceding paragraph did not match the revised
rules in 5.6. I made the changes shown above to make the tow sections match.