task
Posted zhongguo135
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了task相关的知识,希望对你有一定的参考价值。
任务就是一段封装在“task-endtask”之间的程序。任务是通过调用来执行的,而且只有在调用时才执行,如果定义了任务,但是在整个过程中都没有调用它,那么这个任务是不会
执行的。
定义任务的语法如下:
任务:
task <任务名>;
<端口及数据类型声明语句>
<语句1>
<语句2>
...
<语句n>
endtask
task程序的一些写法
task send_data(len);//任务名字和长度,任务的声明,类似C语言 integer len,i;//变量声明区 begin//必须加begin和end for(i=0;i<len;i=i+1)//循环语句 begin @(posedge sclk);//for循环的时候一定要按照节拍来工作。如果注视掉本行,在波形图上i_data和i_addr都为零不动了。因为瞬间溢出成0 i_addr<=i[7:0];//可以用阻塞赋值也可以用非阻塞赋值。阻塞赋值就是直接赋过去,非阻塞赋值会延时一拍。 i_data<=i[7:0];//截取低8位 //用case语句产生一个协议,当地址为0时,i_data=0xff; //当地址为1时,i_data=0x55; //当地址为2时,i_data=0x00; //其他地址全部保留赋值为0xff; end i_addr<=0; i_data<=0; end endtask
以上是关于task的主要内容,如果未能解决你的问题,请参考以下文章