一个返回值:可以是有符号的,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
文章评论(0条评论)
登录后参与讨论