码迷,mamicode.com
首页 > 其他好文 > 详细

task

时间:2018-06-13 19:42:35      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:pos   integer   IV   case语句   类型   之间   TE   非阻塞   case   

任务就是一段封装在“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

标签:pos   integer   IV   case语句   类型   之间   TE   非阻塞   case   

原文地址:https://www.cnblogs.com/zhongguo135/p/9179322.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!