gpt4 book ai didi

vhdl - 你可以给一个实体起别名吗?

转载 作者:行者123 更新时间:2023-12-03 23:04:18 26 4
gpt4 key购买 nike

通读 LRM,它似乎暗示任何东西都可以被别名,但是当我尝试以下操作时,ActiveHDL 告诉我应该有一个设计单元:

entity some_entity is
.....
end entity;

alias another_name is some_entity;
LRM 声明(在 6.6.1 中)
对象别名是其别名指示符表示对象(即常量、变量、信号或
文件)。非对象别名是一个别名,其别名指示符表示某个命名实体而不是对象。
可以为除标签、循环参数和生成参数之外的所有命名实体声明别名。
或者只是因为别名是声明性项目,它必须存在于声明性区域中?但是鉴于别名与别名项具有相同的类,那么肯定应该允许在同一区域中使用它吗?这似乎可以编译:
package alias_package is
alias another_name is work.some_entity;
end package;
上述请求的解释:假设我要重命名 some_entity ,但它在我的设计中使用。为其创建别名将允许这样做,将旧名称保留为新名称的别名。在这里使用包不合适,因为它仍然需要在实例化时修改名称。
这值得对下一个 LRM 提出要求吗?

最佳答案

Or is it just the case that because an alias is a declarative item, it must exist in an declarative region?


是的。一个设计文件由一个或多个设计单元组成,一个实体声明就是一个设计单元。一个设计单元由一个或多个嵌套的声明区域组成。根声明区域(带有可选的上下文子句)包含设计单元本身和任何从属的二级设计单元。
除了设计单元的结尾之外,声明性区域没有分隔符。

But given that an alias takes on the same class as the aliased item, surely it should be allowed in the same region?


不,声明在声明完成之前不会生效(它的名称不可见)。在这里,在 end [entity_simple_name] ; 之后。
A new design unit begins with optional context items (beginning with reserved words library , use or context ) followed by a primary unit declaration or secondary unit body (indicated by one of the reserved words entity , architecture , , 配置 , 上下文 (此处忽略 PSL、工具指令和注释)。
设计单元是独立分析的。
别名的类别是对象和非对象。别名声明以命名实体的声明为目标(某些名称声明是隐式的)。

Is this worthy of a request for the next LRM?


这个问题是一个没有明确用例的主观意见请求(提供示例,特别是在设计层次结构中)。原因尚不清楚。你想避免什么工作?
否则,没有意见。
还有一些标准的部分内容受到综合供应商的不良支持,这些部分已经解决了通过异常修改默认绑定(bind)的问题(包含上下文规范的配置声明或使用保留字 配置 的组件实例化)。

关于vhdl - 你可以给一个实体起别名吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63618298/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com