Arrays VHDL:函数可以用数组作为参数调用吗?它可以返回数组吗?

Arrays VHDL:函数可以用数组作为参数调用吗?它可以返回数组吗?,arrays,function,vhdl,Arrays,Function,Vhdl,我相信这是可以做到的,但是我被困在类型命名中了 VHDL函数= 函数函数名称(参数:类型)返回类型为 VHDL数组= typetype\u name是元素类型的数组(范围) 数组定义自己的类型 如何将其指定为函数的参数类型 在函数中使用数组时,如何将其指定为函数的返回值 有人能提供一个或一些例子吗 提前谢谢 VHDL的一大优点是它是一种经过深思熟虑且一致的语言。如果做某事有意义,你通常可以;如果你能在一个地方做某事,你通常可以在另一个地方做。一个函数的所有输入都必须有一个类型;函数的返回值必须具

我相信这是可以做到的,但是我被困在类型命名中了

VHDL函数= 函数函数名称(参数:类型)返回类型为

VHDL数组= typetype\u name是元素类型的数组(范围)

数组定义自己的类型

如何将其指定为函数的参数类型

在函数中使用数组时,如何将其指定为函数的返回值

有人能提供一个或一些例子吗


提前谢谢

VHDL的一大优点是它是一种经过深思熟虑且一致的语言。如果做某事有意义,你通常可以;如果你能在一个地方做某事,你通常可以在另一个地方做。一个函数的所有输入都必须有一个类型;函数的返回值必须具有类型。正如您所说,数组是一种类型。因此,函数的输入和返回值可以是数组。以下是一个例子:

  type MY_ARRAY is array (0 to 9) of integer;

  function MY_ARRAY_FUNC (I : MY_ARRAY) return MY_ARRAY is
  begin
    return (9,8,7,6,5,4,3,2,1,0);
  end function;

据我记忆所及,
std\u logic\u vector
是一个数组。是否有一种方法可以在不事先定义类型的情况下从函数返回数组,我必须支持包中的函数,数组大小由泛型决定,这样我就不必将函数放在特定的模块中。。。其他库需要访问该函数,因此我试图找出如何根据传递给该函数的参数返回数组
    *range* = The range of elements the array is going to occupy.
    *element_type* = The type of each element in the array. "type" is like the type discussed for the function.
  type MY_ARRAY is array (0 to 9) of integer;

  function MY_ARRAY_FUNC (I : MY_ARRAY) return MY_ARRAY is
  begin
    return (9,8,7,6,5,4,3,2,1,0);
  end function;