可以在VHDL包体中完成PORT MAP吗?

时间:2013-09-14 18:22:58

标签: vhdl

我正在尝试在包体内进行端口映射。我不确定它是否有意义,但我希望有人可以告诉我那里的逻辑。谢谢

3 个答案:

答案 0 :(得分:1)

不,您无法在包体内实例化组件。

legal Component instantiation placement:

Blk: BLOCK
  ...
BEGIN
  ...  <====
END BLOCK Blk;

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

答案 1 :(得分:0)

不,无法在包体内部进行PORT MAP。

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

但是,您可以在包中声明一个组件,从而无需使用 每次需要执行端口映射时声明相同的组件。 函数和过程是您可以在包中执行的替代方法。

答案 2 :(得分:0)

PORT MAPs用于“创建”或“实例化”某些“真实”的东西 - 例如加法器。

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