0

我正在尝试在包体内做一个 PORT MAP。我不确定这是否有意义,但我希望有人能告诉我那里的逻辑。谢谢

4

3 回答 3

1

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

legal Component instantiation placement:

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

ARCHITECTURE Arc OF Ent IS
  ...
BEGIN
  ...  <====
END ARCHITECTURE Arc;
于 2013-09-15T01:08:47.713 回答
0

当您“创建”或“实例化”“真实”的东西时使用端口映射 - 例如加法器。

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

于 2013-09-16T12:24:25.410 回答
0

不,不可能在包体内移植 MAP。

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

但是,您可以在包中声明一个组件,这样就无需在每次需要执行 PORT MAP 时声明相同的组件。函数和过程是您可以在包中执行的替代方案。

于 2013-09-14T21:06:55.793 回答