如何将数组信号路由到输入

时间:2015-08-28 21:09:40

标签: vhdl

我有一个顶级VHDL模块,其中包含一个我声明为无符号数组的信号。我在这个顶级模块中有一个实例化组件,我想将顶层模块中的数组路由到这个组件。发表同样的声明

type array_type is array(5 downto 0) of unsigned (15 downto 0);
组件中的

似乎不起作用。我已经知道如何将输入连接到包含数组的输出,但我不知道如何将信号连接到输入/输出。

示例顶级模块

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;

entity top_level is
end top_level;

architecture str_arch of top_level is
   type array_type is array (5 downto 0) of unsigned (15 downto 0);
   signal example_array: array_type;
begin
instantiated_component: entity work.component(Behavioral)
   port map(array=>example_array);
end str_arch;

1 个答案:

答案 0 :(得分:1)

1)在某处宣布:

type array_type is array(5 downto 0) of unsigned (15 downto 0);

在另一个地方:

type array_type is array(5 downto 0) of unsigned (15 downto 0);

声明两种不同类型!即使它们具有相同的名称(它们将具有完整的扩展名:somewhere.array_type和another.array_type)

2)VHDL是一种强类型语言,即使是两种不同的"类型"你声明的具有相同的定义,你可以将一个定义到另一个。

一个简单的解决方案是使用相同类型(来自包):

package pkg is
  type array_type is array(5 downto 0) of unsigned (15 downto 0);
end package pkg;

在子模块和级别模块中:

use work.pkg.all; --if pkg is in the same library