如何用组件创建VHDL包而没有包体?

时间:2017-07-11 14:38:12

标签: vhdl quartus

在Quartus 16.0中,我有一个bar.vhdfoo个文件,每个文件都包含一个有效/工作的实体和相应的体系结构。我正在尝试创建一个包含barlibrary 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>。我不确定问题出在哪里,初学者还不知道如何调试它。

1 个答案:

答案 0 :(得分:2)

您实际上正在使用包作为设计的顶级。这两件事情是不同的。包存储有用的常量,函数等...而顶层(它是一个实体)实例化并在彼此之间映射组件。请查看此链接,了解如何实施顶级实体:

https://www.altera.com/support/support-resources/design-examples/design-software/vhdl/v_hier.html

在VHDL中,您无需在包中添加实体(或组件)。您只需要在同一个库中编译它们 - 通常是WORK

在编译实现设计所需的所有组件的顶级实体时,Quartus会查找包含实例化调用的实体的vhdl文件。