羽蒙 发表于 2014-8-15 15:16:00

function用法





个返回值:可以是有符号的,signed,可以是automatic类型,每次调用局部变量单独分配存储空间。
一个或多个输入变量,通过input声明,

调用,函数作为等号右侧表达式,可以对函数内部参数进行参数改变。

以下是一个函数的定义和调用举例,最后有验证波形。

module fun_test;
    parameter WIDTH = 8;
    reg data_in;
    wire data_out;
   
    function automatic signed reverse_bits;//函数定义

      parameter INPUTWIDTH = 8;
      input [ INPUTWIDTH -1:0] data_in;
      integer k;
      begin
            for(k = 0;k< INPUTWIDTH ;k = k+1)
            reverse_bits[ INPUTWIDTH -k-1] = data_in;
            
      end
   endfunction
   
   initial
   begin
       data_in = 8'b1111_0000;
   end

   defparam reverse_bits.INPUTWIDTH = WIDTH;
   assign data_out = reverse_bits(data_in);//函数调用

endmodule

Sunlife 发表于 2014-8-15 21:43:18

最后有验证波形。
页: [1]
查看完整版本: function用法