【发布时间】:2019-03-19 07:05:49
【问题描述】:
随着 VHDL '93 引入直接实例化,当您的实体在 VHDL 中时,您现在何时实际使用组件?以下是我能想到的唯一需要组件的情况:
- 组件映射到非 VHDL 源代码(Verilog、网表等)
- 你还没有源代码,需要一些东西来编译(例如,同事还没有完成他们的代码)
- 您正在通过配置将不同的实体/架构对绑定到特定实体中的特定组件。 (但谁真正做到了这一点?也许如果你有一个模拟拱门和合成拱门 - 但同样 - 从未见过它以任何有意义的方式使用)
我不赞成那些说“一个组件让我看到同一个文件中的端口映射”或“拥有一个组件库让我看到一切”的人。这主要是人们已经习惯的老式方法。在我看来,在两个地方维护相同的代码是没有意义的。
还有其他我错过的吗?
【问题讨论】:
-
括号中的 cmets 和最后一段征求使用意见。参见 IEEE Std 1076-2008 6.8 组件声明“组件声明声明了一个与虚拟设计实体的接口,该接口可用于组件实例化语句中。组件配置或配置规范可用于将组件实例与设计实体相关联位于图书馆中。”
-
但是我在一个需要组件声明的例子之后,而不是可以选择使用的地方。对于我提到的那些实例,在文件或包中包含组件声明通常只是一种编码风格,而不是代码要求(撇开编码指南要求的公司)。
-
我想你已经回答了你自己的问题。除了 2 和 3 之外,我想不出任何其他原因(并且没有遇到需要 1 的模拟器,但我没有做过调查)。
-
组件声明有什么用处? 11.7.2 组件的实例化 “组件实例化语句,其实例化单元包含一个名称,表示一个组件相当于一对嵌套块语句,它们将包含设计单元中的块层次结构耦合到另一个设计单元中包含的块层次结构的唯一副本......外部块代表组件声明;内部块代表组件绑定到的设计实体。每个都由块语句定义。此处需要组件声明。
-
@MatthewTaylor 请查看我对其他用例的回答。
标签: vhdl