原创 function用法

2010-6-7 19:34 1925 4 4 分类: FPGA/CPLD

一个返回值:可以是有符号的,signed,可以是automatic类型,每次调用局部变量单独分配存储空间。


一个或多个输入变量,通过input声明,


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


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


module fun_test;
    parameter WIDTH = 8;
    reg [WIDTH-1:0] data_in;
    wire [WIDTH-1:0] data_out;
   
    function automatic signed [WIDTH-1:0] 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[k];
           
        end
   endfunction
  
   initial
   begin
       data_in = 8'b1111_0000;
   end


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


endmodule


4e5b7a8c-099a-45c7-9f39-c1400cfd6257.jpg

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
4
关闭 站长推荐上一条 /3 下一条