区别:
1.函数可以返回一个值而任务可以返回多个值
2.函数一经调用必须立即执行,里面不能包含任何的时序控制,而task中可以有时序控制
3.函数可以调用函数,但不可以调用任务,任务既可以调用函数也可以调用任务
4.函数必须要有一个输入参数,而任务可以没有参数输入。
4.任务输出的信号,在模块中必须定义为reg信号
任务和函数的共同点:
1.任务和函数必须在模块内定义,其作用范围仅适用于该模块,可以在模块内多次调用。
2.任务和函数中可以声明局部变量,如寄存器,时间,整数,实数和事件,但是不能声明线网类型的变量。
3.任务和函数中只能使用行为级语句,但是不能包含always和initial块,设计者可以在always和initial块中调用任务和函数。
常用的系统任务与函数:
1.显示任务 display write
2.文件输入输出任务 fopen, fclose, readmemb, readmemh
3.仿真控制任务
4.时序验证任务
5.PLA建模任务
6.随即建模任务
7.仿真时间函数 time, stime
8.实数变换函数
9.随即函数
任务和函数能不能综合,取决于是否有延时控制,或者时间控制的语句则是不能综合的,其他情况可以综合