如何在VHDL中声明输出数组?

tol*_*ose 2 arrays syntax vhdl

在VHDL中我们如何声明输出数组.我知道如何将信号声明为数组,首先声明类型,然后将信号定义为此类型.是否有可能在输出上做同样的事情?

Mor*_*mer 9

如果要声明要在模块输出上使用的新类型的数组,因此不要使用某些类似的现有数组类型std_logic_vector,则必须在包中声明类型,以使类型可用于实例化模块的位置.示例如下:

library ieee;
use ieee.std_logic_1164.all;

package pkg is
  type slv8_array_t is array (natural range <>) of std_logic_vector(7 downto 0);
end package;

package body pkg is
end package body;


library ieee;
use ieee.std_logic_1164.all;
library work;
use work.pkg.all;

entity mdl is
  port(
    array_o : out slv8_array_t(0 to 3));
end entity;

architecture syn of mdl is
begin
  array_o <= (others => (others => '0'));
end architecture;
Run Code Online (Sandbox Code Playgroud)

类似的方法适用于其他声明的类型,例如记录,或其他类型的接口类型共享,如输入.