In reply to dave_59:
Hi Dave, thanks for your explanation and the options how to modify the code.
But if we use a blocking assignment and an intermediate variable, then the Task becomes kindof a function in the sense that it will have no temporal dimension. In the above example it does not matter, but where I came to this question in the first place was actually to kickoff a Task (like sending out a UART character) while the other parts of the always block can continue. But it turned out that Tasks first have to “return” to where they were called. No problem. The rest can wait. But what I wonder now is, can you put any kind of potential blocking event in a Task at all? The tutorials say yes. But maybe they all think of simulation and not synthesis. You said in many posts that most synthesizers accept only one blocking event (usually a posedge clk), and if a Task is like in-line code then it cannot have a potential blocking event, can it?
(By the way, what language construct would suit me in activating a UART process?)
Thank you.
Miklos