端口映射可以在VHDL包体中完成吗?

端口映射可以在VHDL包体中完成吗?,vhdl,Vhdl,我正在尝试在包体中进行端口映射。我不确定这是否合理,但我希望有人能告诉我其中的逻辑。谢谢否,无法在包体中进行端口映射 端口映射,顾名思义,将信号映射到指定组件的端口。 组件始终具有相同的端口名,但实例化该特定端口的单元除外 组件不必总是具有相同的信号名称。因此,在打算由多个单元(文件)使用的包中包含PORT MAP子句是不符合逻辑的 但是,您可以在包中声明组件,这样就不需要 每次需要执行端口映射时都声明相同的组件。 函数和过程是可以在包内执行的替代方法。不,不能在包体内实例化组件 法律组件实例化

我正在尝试在包体中进行端口映射。我不确定这是否合理,但我希望有人能告诉我其中的逻辑。谢谢

否,无法在包体中进行端口映射

端口映射,顾名思义,将信号映射到指定组件的端口。 组件始终具有相同的端口名,但实例化该特定端口的单元除外 组件不必总是具有相同的信号名称。因此,在打算由多个单元(文件)使用的包中包含PORT MAP子句是不符合逻辑的

但是,您可以在包中声明组件,这样就不需要 每次需要执行端口映射时都声明相同的组件。
函数和过程是可以在包内执行的替代方法。

不,不能在包体内实例化组件

法律组件实例化位置:

Blk: BLOCK
  ...
BEGIN
  ...  <====
END BLOCK Blk;
Blk:块
...
开始

... 端口映射用于“创建”或“实例化”某个“真实”对象,例如加法器

包和包体只包含更抽象的东西,如类型、常量、过程和函数。它们可以包含组件,但VHDL中的组件声明有点像数据表——与手中的芯片不同,它只是告诉您管脚的名称

ARCHITECTURE Arc OF Ent IS
  ...
BEGIN
  ...  <====
END ARCHITECTURE Arc;