如何在 VHDL 中声明输出数组?
How to declare output array in VHDL?
在 VHDL 中我们如何声明输出数组。我知道如何通过首先声明类型然后将信号定义为此类型来将信号声明为数组。是否可以对输出做同样的事情?
如果你想声明一个新类型的数组用于模块输出,这样
不使用某些现有的数组类型,如 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;
类似的方法适用于其他声明的类型,例如记录,
或其他类型的接口类型共享,如输入。
在 VHDL 中我们如何声明输出数组。我知道如何通过首先声明类型然后将信号定义为此类型来将信号声明为数组。是否可以对输出做同样的事情?
如果你想声明一个新类型的数组用于模块输出,这样
不使用某些现有的数组类型,如 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;
类似的方法适用于其他声明的类型,例如记录, 或其他类型的接口类型共享,如输入。