在Quartus 16.0中,我有一个bar.vhd
和foo
个文件,每个文件都包含一个有效/工作的实体和相应的体系结构。我正在尝试创建一个包含bar
和library ieee;
use ieee.std_logic_1164.all;
package my_package is
component foo
port(
a, b : in std_logic;
out : out std_logic);
end component;
component bar
port(
a, b : in std_logic;
out : out std_logic);
end component;
end package my_package;
的包。我有这样的事情:
Error (12007): Top-level design entity "my_package" is undefined
尝试编译它,我收到错误:IEnumerable<T>
。我不确定问题出在哪里,初学者还不知道如何调试它。
答案 0 :(得分:2)
您实际上正在使用包作为设计的顶级。这两件事情是不同的。包存储有用的常量,函数等...而顶层(它是一个实体)实例化并在彼此之间映射组件。请查看此链接,了解如何实施顶级实体:
https://www.altera.com/support/support-resources/design-examples/design-software/vhdl/v_hier.html
在VHDL中,您无需在包中添加实体(或组件)。您只需要在同一个库中编译它们 - 通常是WORK
。
在编译实现设计所需的所有组件的顶级实体时,Quartus会查找包含实例化调用的实体的vhdl文件。