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 一个已知类型的值。 您应该改用程序。