【问题标题】:How to declare output array in VHDL?如何在 VHDL 中声明输出数组?
【发布时间】:2015-01-28 08:25:36
【问题描述】:

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

【问题讨论】:

  • 输出数组到底是什么?函数、过程、组件、块...的输出数组?如果你声明了一个数组类型(通常称为向量),你可以在任何可以使用类型的地方使用这个新类型。

标签: arrays syntax vhdl


【解决方案1】:

如果你想声明一个新类型的数组用于模块输出,那么 不使用一些现有的数组类型,如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;

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

【讨论】:

    猜你喜欢
    • 2012-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-06
    相关资源
    最近更新 更多