In reply to ben@SystemVerilog.us:
Hi Ben,
A final question to conclude the discussion.
Consider the following code: edalink1
As @(seq) unblocks in loopback from Observed to Active region, the $display() within always@(seq) executes before $display() in action block ( which executes in Reactive region )
So this essentially tells us that loopback from Observed to Active occurs before Reactive region.
Now consider the code at the top of this thread: edalink2
The void function executes in Reactive region similar to action block ( as we discussed in the last 2 replies ).
Hence the $display() within always@(seq) executes before void function ‘Length’ executes.
Therefore I believe ‘length’ would be unassigned when $display() executes within always@(seq).
Would like to hear on your thoughts on this.