概述
注:学习、交流就在博主的个人weixin公众号 “FPGA动力联盟” 留言或直接+博主weixin “fpga_start” 私信~
首先,博主要说的是,函数和任务都是可以综合成电路的,但有诸多的要求和限制,所以要谨慎使用!
下面总结函数和任务的共性与区别:
-
共性:
1,函数与任务必须在模块内定义,其作用范围仅适用于该模块,可以在模块内多次调用
2,任务和函数中可以声明局部变量,如寄存器、时间、整数、实数和事件,但不能声明线网类型的变量
3,任务和函数只能使用行为级语句,但是不能包含always和initial,设计者可以在always和initial块中调用任务和函数
-
区别:
1,函数能调用另一个函数,但不能调用任务
2,任务可以调用函数,也可以调用任务
3,函数一定不能包含任何延迟、事件或时序控制声明,但任务可以
4,函数至少要有一个输入变量,任务可以没有或有多个输入、输出变量
5,函数只能返回一个值,函数不能有output或inout
6,任务不返回任何值
总得来说,函数用于替代纯组合逻辑的verilog代码,而任务可以替代verilog的任何代码。但在电路综合领域,两者没有区别,都只能替代纯组合逻辑的verilog代码。综合器在处理仅含有组合逻辑的函数和任务时,差别是不存在的。这两者的功能都是:简化代码和提高代码的易读性!
参考文献:
1,verilog传奇——从电路出发的HDL代码设计
2,verilog编程艺术
最后
以上就是忐忑小懒猪为你收集整理的20,verilog之任务与函数用法比较的全部内容,希望文章能够帮你解决20,verilog之任务与函数用法比较所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复