task 与 function的区别

+-------------------------------------------+--------------------------------------------+
|任务可以有input、output和inout,数量不限; |  函数只有input参数,且至少有一个input      |
|-------------------------------------------+--------------------------------------------|
|任务可以包含有时序控制(如延时等);       |  函数不能包含有任何延迟,仿真时间为0;     |
|-------------------------------------------+--------------------------------------------|
|任务可以用disable中断;                    |  函数不允许disable、wait语句;             |
|-------------------------------------------+--------------------------------------------|
|任务可以通过I/O端口实现值传递;            |  函数名即输出变量名,通过函数返回值;      |
|-------------------------------------------+--------------------------------------------|
|任务可以调用其他任务和函数;               |  函数只能调用其他函数,不能调用任务;      |
|-------------------------------------------+--------------------------------------------|
|任务可以定义自己的仿真时间单位;           |  函数只能与主模块共用一个仿真时间单位;    |
|-------------------------------------------+--------------------------------------------|
|任务能支持多种目的,能计算多个结果值,结   |  函数通过一个返回一个值来响应输入信号的值。|
|果值只能通过被调用的任务的输出端口输出或   |                                            |
|总线端口送出;                             |                                            |
|-------------------------------------------+--------------------------------------------|
|                                           |  函数中不能有wire型变量。                  |
+-------------------------------------------+--------------------------------------------+
posted @ 2012-10-29 14:08  poiu_elab  阅读(1014)  评论(0编辑  收藏  举报