task:任务就是一段封装在“task-endtask”之间的程序。任务是通过调用来执行的,而且只有在调用时才执行,如果定义了任务,但是在整个过程中都没有调用它,那么这个任务是不会执行的。调用某个任务时可能需要它处理某些数据并返回操作结果,所以任务应当有接收数据的输入端和返回数据的输出端。另外,任务可以彼此调用,而且任务内还可以调用函数。
1、task 的定义
task <task_name>;
input <input_name>;
<more_inputs>
output <output_name>;
<more_outputs>
begin
<statements>;
end
endtask
举例子:
task task_demo ; //任务定义结构开头,命名为task_demo
input [7:0] x,y ; //输入端口说明
output [7:0] tmp ; //输出端口说明
if(x>y) //给出任务定义的描述语句
tmp = x;
else
tmp = y;
endtask
2.task的调用
<task_name>(<comma_separated _inputs>, <comma_separated _outputs>);
举例子:
initial begin
barker=7'b111_0010;
head=8