内容管理网站,百度电商平台,网站源码和模板,微信小程序商城制作v3学院教你学习-task和function的异同 task#xff08;任务#xff09;与function#xff08;函数#xff09;的不同 任务与函数主要有以下四点不同#xff1a; l 函数只能与主模块共用一个仿真时间单位#xff0c;而任务定义自己的仿真时间单位。 l 函数不能启动任务任务与function函数的不同 任务与函数主要有以下四点不同 l 函数只能与主模块共用一个仿真时间单位而任务定义自己的仿真时间单位。 l 函数不能启动任务任务可以启动其他任务和函数。 l 函数至少要有一个输入变量而任务可以没有或有多任何类型的变量。 l 函数返回一个值而任务不返回值。 task语句说明 l 任务的定义 定义任务的语法如下 task任务名 端口及数据类型声明语句 语句1 语句2 ………… 语句n endtask l 任务的调用及变量的传递 任务的调用 任务名(端口1端口2…..端口n); 下面举例子说明怎么定义任务与调用任务 任务定义 task my_task; input a,b; output c; 语句 …. endtask 任务调用my_task(v,w,x); 任务调用变量(v,w,x)和任务定义的I/O变量(a,b,c)之间是一一对应的当任务启动时由v和w传入的变量赋给了a和b而当任务完成之后的输出又通过c赋给x下面举一个具体程序来介绍 代码如下测试代码如下 仿真波形图如下 当start信号变成高电平的时候即当state状态由0跳变到1时 调用load任务把data_in的值寄存在save_data的同时状态机状态跳转到2当状态跳转到2的时候调用shift任务把save_data的值往左移一位的同时状态机状态跳转到3当状态跳转到3的时候调用out任务把save_data的值往data_out赋值的同时状态机状态跳转到0仿真的波形跟设计的完全一样。 function说明语句 l 定义函数的语法 function返回值的类型或范围(函数名) 端口说明语句 变量类型说明语句 begin 语句 ……… end endfunction 注意返回值的类型或范围这一项是可选项如缺省则返回值位一位寄存器类型数据 l 举例说明 下面举一个实际程序的例子来说明一下function函数的实际定 义与如何调用。 程序代码如下测试代码如下 仿真波形图如下 当start信号变成高电平的时候即当state状态有0跳变到1时调用load_data(data_in)函数把data_in的值寄存在save_data的同时状态机状态跳转到2当状态跳转到2的时候调用shift(save_data)函数把save_data的值往左移一位的同时状态机状态跳转到3当状态跳转到3的时候调用load_data(save_data)函数把save_data的值往data_out赋值的同时状态机状态跳转到0仿真的波形跟设计的完全一样。 此文章为原创出自 V3学院 www.v3edu.org posted on 2017-03-02 09:20 老凯 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/laokai/p/6488866.html