Advertisement

在Verilog中,函数与任务

阅读量:

在同一个module内部定义函数和task,并将较大的程序模块划分为较小的任务和函数单元,有助于提高可维护性和理解性

function

  1. 定义
复制代码
    function [返回值类型或位宽] function_id;
      input_declaration
      other_declarations
      begin
    procedural_statement;
      end
    endfunction
    
    
    AI写代码c
    
    运行

函数返回值的数据类型或位宽是一个可选参数,在未指定时,默认设置为1位宽度的寄存器数据。
每个被定义过的函数都有一个唯一的标识符function_id,在其结构体内隐式地生成一个内部寄存器变量。这个寄存器变量与函数具有相同的名称以及相同的位宽,并且在显式赋值后即可用于传递计算结果。
对于函数调用而言,则是通过直接引用函数名来实现;而被调用后的返回结果则会通过目标变量接收。

定义时需注意:
(1)与模块定义不同,在函数定义的第一行不需要列出端口名称;
(2)函数定义必须嵌入到模块内完成,在函数定义结构体中禁止插入always或initial等过程块语句;
(3)该结构体必须至少拥有一个输入端口,并且禁止同时包含输出端口或双向端口;
(4)在该

全部评论 (0)

还没有任何评论哟~