【发布时间】:2021-02-24 18:02:29
【问题描述】:
如果组件上有一个不受约束的 std_logic_vector 端口,它将遵循来自组件实例化的更高级别实体的信号声明(如果信号为 (n down to 0),则端口显然会匹配此)。
但是,如果在实例化时将常量向量(例如“10100001”或 x“A1”)分配给端口,则端口将自动默认为“0 到 7”而不是“7 降到 0”。有什么方法可以“检测”到不受约束的 std_logic_vector 是递增/递减索引格式,所以我可以在必要时适当地翻转这些位?
【问题讨论】:
-
在关联中提供约束。 IEEE Std 1076-2008 5.3.2.2 Index constraints and discrete ranges, paragraph 6 e) 在第 3 小段中列出)。还有 16.2.3 数组的预定义属性,6.5.7.3 端口映射方面,6.5.6.3 端口子句。这里在端口关联
formal => desc8'(x"A1")中使用限定表达式 (9.3.5)subtype desc8 is std_logic_vector(7 downto 0);并使用 5.3.2.2 e) 2) 中规则的最后部分来指定子类型。提供minimal reproducible example,特别是表明需要翻转位,请参阅 6.6.2 对象别名 c) 2)。
标签: vhdl