我正在尝试在包体内进行端口映射。我不确定它是否有意义,但我希望有人可以告诉我那里的逻辑。谢谢
答案 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中的组件声明有点像数据表 - 与手中的芯片不同,它只是告诉您引脚的名称。