你能别名一个实体吗?
Can you alias an entity?
通读 LRM,它似乎暗示任何东西都可以别名,但是当我尝试以下操作时,ActiveHDL 告诉我需要一个设计单元:
entity some_entity is
.....
end entity;
alias another_name is some_entity;
LRM 指出(在 6.6.1 中)
对象别名是别名指示符表示对象(即常量、变量、信号或
文件)。非对象别名是别名指示符表示某个命名实体而不是对象的别名。
可以为除标签、循环参数和生成参数之外的所有命名实体声明别名。
或者只是因为别名是声明项,所以它必须存在于声明区域中?但是考虑到别名与别名项目具有相同的 class,它肯定应该被允许在同一地区使用吗?这似乎可以编译:
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] ;.
一个新的设计单元以可选的上下文项开始(以保留字 library、use 或 context) 后跟主要单元声明或次要单元主体(由保留字之一表示 entity、architecture、package、configuration、context(这里忽略PSL、工具指令和评论)。
设计单位独立分析。
别名的类是object和non-object。别名声明以命名实体的声明为目标(有些名称声明是隐式的)。
Is this worthy of a request for the next LRM?
这个问题是在没有明确用例的情况下征求主观意见(提供示例,特别是在设计层次结构中)。原因尚不清楚。你想避免什么工作?
作为意见,否。
标准的某些部分也没有得到综合供应商的支持,这些供应商已经通过异常解决了从默认设置修改绑定的问题(包含上下文规范的配置声明或带有保留字 configuration[= 的组件实例化) 43=]).
通读 LRM,它似乎暗示任何东西都可以别名,但是当我尝试以下操作时,ActiveHDL 告诉我需要一个设计单元:
entity some_entity is
.....
end entity;
alias another_name is some_entity;
LRM 指出(在 6.6.1 中)
对象别名是别名指示符表示对象(即常量、变量、信号或 文件)。非对象别名是别名指示符表示某个命名实体而不是对象的别名。 可以为除标签、循环参数和生成参数之外的所有命名实体声明别名。
或者只是因为别名是声明项,所以它必须存在于声明区域中?但是考虑到别名与别名项目具有相同的 class,它肯定应该被允许在同一地区使用吗?这似乎可以编译:
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] ;.
一个新的设计单元以可选的上下文项开始(以保留字 library、use 或 context) 后跟主要单元声明或次要单元主体(由保留字之一表示 entity、architecture、package、configuration、context(这里忽略PSL、工具指令和评论)。
设计单位独立分析。
别名的类是object和non-object。别名声明以命名实体的声明为目标(有些名称声明是隐式的)。
Is this worthy of a request for the next LRM?
这个问题是在没有明确用例的情况下征求主观意见(提供示例,特别是在设计层次结构中)。原因尚不清楚。你想避免什么工作?
作为意见,否。
标准的某些部分也没有得到综合供应商的支持,这些供应商已经通过异常解决了从默认设置修改绑定的问题(包含上下文规范的配置声明或带有保留字 configuration[= 的组件实例化) 43=]).