VHDL 函数是否必须 return 一个值?
Does a VHDL function have to return a value?
我想创建一个函数来通过 TEXTIO 库写入文件。这是一个自然而然地编写的非常简单的例程,但为了代码的清晰性,我更愿意将它写成一个函数。
我知道函数的典型写法如下
标题类型
function my_func(my_arg : my_arg_type) return return_type;
Body类型
function my_func(my_arg : my_arg_type) return return_type is
但是,如果我对退回任何东西不感兴趣,有没有办法避免严重警告 -
return type is not specified
没有。但是,您可以改用 过程 :
procedure my_func (my_arg : my_arg_type) is
你可以把一个过程放在一个包中:
package P is
procedure my_func (my_arg : my_arg_type);
end package P;
package body P is
procedure my_func (my_arg : my_arg_type) is
begin
// blah blah blah
end procedure my_func;
end package body P;
SystemVerilog 有 void 函数 没有 return 类型,但这不能使用 VHDL 完成。
没有。一个函数必须总是 return 一个已知类型的值。
您应该改用程序。
我想创建一个函数来通过 TEXTIO 库写入文件。这是一个自然而然地编写的非常简单的例程,但为了代码的清晰性,我更愿意将它写成一个函数。
我知道函数的典型写法如下
标题类型
function my_func(my_arg : my_arg_type) return return_type;
Body类型
function my_func(my_arg : my_arg_type) return return_type is
但是,如果我对退回任何东西不感兴趣,有没有办法避免严重警告 -
return type is not specified
没有。但是,您可以改用 过程 :
procedure my_func (my_arg : my_arg_type) is
你可以把一个过程放在一个包中:
package P is
procedure my_func (my_arg : my_arg_type);
end package P;
package body P is
procedure my_func (my_arg : my_arg_type) is
begin
// blah blah blah
end procedure my_func;
end package body P;
SystemVerilog 有 void 函数 没有 return 类型,但这不能使用 VHDL 完成。
没有。一个函数必须总是 return 一个已知类型的值。 您应该改用程序。