Tasks - 2023.2 English

Vivado Design Suite User Guide: Synthesis (UG901)

Document ID
UG901
Release Date
2023-11-01
Version
2023.2 English

The syntax for a task declaration is:

task name (ports); [optional declarations]; statements;
endtask

Following are the two types of tasks:

Static task
Declarations retain their previous values the next time the task is called.
Automatic task
Declarations do not retain previous values.
CAUTION:
Be careful when using these tasks; Vivado synthesis treats all tasks as automatic.

Many simulators default to static tasks if the static or automatic is not specified, so there is a chance of simulation mismatches. The way to specify a task as automatic or static is the following:

task automatic my_mult... //or 
task static my_mult ...