Verilog HDL 函数与任务的使用
⭐本专栏针对 FPGA 进行入门学习,从数电中常见的逻辑代数讲起,结合 Verilog HDL 语言学习与仿真,主要对组合逻辑电路与时序逻辑电路进行分析与设计,对状态机 FSM 进行剖析与建模。
🔥文章和代码已归档至【Github 仓库:hardware-tutorial】,需要的朋友们自取。或者关注公众号【AIShareLab】,回复 FPGA 也可获取。
函数(function)说明语句
函数的定义
函数定义部分可以出现在模块说明中的任何位置,其语法格式如下:
函数的调用
函数调用是表达式的一部分,其格式如下:
其中输入表达式的排列顺序必须与各个输入端口在函数定义结构中的排列顺序一致。
关于函数的几点说明
函数不能由时间控制语句甚至延迟运算符组成。
函数至少有一个输入参数声明。
函数可以由函数调用组成,但函数不能由任务组成。
函数在零模拟时间内执行,并在调用时返回单个值。
在编写可综合 RTL 时,不建议使用函数。
函数用于编写行为或可仿真模型。
函数不应具有非阻塞赋值。
例 用定义 fu3nction 与调用 function 的方法完成 4 选 1 数据选择器设计。
(1)设计块(Design Block)代码如下:
(2)激励块(Test Bench)
(3)仿真结果:
4 选 1 数据选择器的仿真波形
例:2 选 1 数据选择器(Design Block)
例:使用函数计数 1 的个数的模块。
任务(task)说明语句
任务的定义
任务的调用
一个任务由任务调用语句调用,任务调用语句给出传入任务的参数值和接收结果的变量值,其语法如下:
关于任务的几点说明
例:使用任务从给定字符串中计算 1 的个数。
参考文献:
Verilog HDL 与 FPGA 数字系统设计,罗杰,机械工业出版社,2015 年 04 月
Verilog HDL 与 CPLD/FPGA 项目开发教程(第 2 版), 聂章龙, 机械工业出版社, 2015 年 12 月
Verilog HDL 数字设计与综合(第 2 版), Samir Palnitkar 著,夏宇闻等译, 电子工业出版社, 2015 年 08 月
Verilog HDL 入门(第 3 版), J. BHASKER 著 夏宇闻甘伟 译, 北京航空航天大学出版社, 2019 年 03 月
欢迎关注公众号【AIShareLab】,一起交流更多相关知识,前沿算法,Paper 解读,项目源码,面经总结。
版权声明: 本文为 InfoQ 作者【timerring】的原创文章。
原文链接:【http://xie.infoq.cn/article/11055a68224f7b69e82f974b2】。未经作者许可,禁止转载。
评论