函数任务和模块的区别?
时间:10-02
整理:3721RD
点击:
本人学刚学verilog,一直不明白任务和模块的区别?
模块是描述一个功能的,你可以把他看成一个器件,有input output inout等端口
多个模块通过相互连接组成一个复杂的设计,相当于多个器件通过连线拼接成一个更大的器件。
task是用于描述一个小的功能,也包含input output等,从这一点上看与模块很类似,但是一般用于描述非常单一的功能,而且此功能可能被多次使用(不然的话就不需要用task描述了),比如乘法等。我记得好像task里面不能用always语句,不能例化其他模块。
task一般不用于RTL设计,主要用于验证时写testbench。
自己写一些设计就会慢慢懂得
楼上解释很明白了!任务在特定时候也能用于RTL综合 而且还能达到很好的效果!
二楼正解
二楼正解
二楼正解
谢谢!那函数有啥用?
function和task功能基本一致,但是function里面不能有延时,task可以调用function,function则不能调用task。
看看verilog标准里面关于function和task之间的区别,说的很详细
谢谢!
