在Verilog中,函数与任务
发布时间
阅读量:
阅读量
在同一个module内部定义函数和task,并将较大的程序模块划分为较小的任务和函数单元,有助于提高可维护性和理解性
function
- 定义
function [返回值类型或位宽] function_id;
input_declaration
other_declarations
begin
procedural_statement;
end
endfunction
AI写代码c
运行
函数返回值的数据类型或位宽是一个可选参数,在未指定时,默认设置为1位宽度的寄存器数据。
每个被定义过的函数都有一个唯一的标识符function_id,在其结构体内隐式地生成一个内部寄存器变量。这个寄存器变量与函数具有相同的名称以及相同的位宽,并且在显式赋值后即可用于传递计算结果。
对于函数调用而言,则是通过直接引用函数名来实现;而被调用后的返回结果则会通过目标变量接收。
定义时需注意:
(1)与模块定义不同,在函数定义的第一行不需要列出端口名称;
(2)函数定义必须嵌入到模块内完成,在函数定义结构体中禁止插入always或initial等过程块语句;
(3)该结构体必须至少拥有一个输入端口,并且禁止同时包含输出端口或双向端口;
(4)在该
全部评论 (0)
还没有任何评论哟~
