0
点赞
收藏
分享

微信扫一扫

20,verilog之任务与函数用法比较


微信公众号:FPGA动力联盟

​​

首先,博主要说的是,函数和任务都是可以综合成电路的,但有诸多的要求和限制,所以要谨慎使用!

下面总结函数和任务的共性与区别:

  • 共性:

1,函数与任务必须在模块内定义,其作用范围仅适用于该模块,可以在模块内多次调用

2,任务和函数中可以声明局部变量,如寄存器、时间、整数、实数和事件,但不能声明线网类型的变量

3,任务和函数只能使用行为级语句,但是不能包含always和initial,设计者可以在always和initial块中调用任务和函数

  • 区别:

1,函数能调用另一个函数,但不能调用任务

2,任务可以调用函数,也可以调用任务

3,函数一定不能包含任何延迟、事件或时序控制声明,但任务可以

4,函数至少要有一个输入变量,任务可以没有或有多个输入、输出变量

5,函数只能返回一个值,函数不能有output或inout

6,任务不返回任何值

总得来说,函数用于替代纯组合逻辑的verilog代码,而任务可以替代verilog的任何代码。但在电路综合领域,两者没有区别,都只能替代纯组合逻辑的verilog代码。综合器在处理仅含有组合逻辑的函数和任务时,差别是不存在的。这两者的功能都是:简化代码和提高代码的易读性!

参考文献:

1,verilog传奇——从电路出发的HDL代码设计

2,verilog编程艺术


举报

相关推荐

0 条评论