【发布时间】:2015-11-08 01:30:51
【问题描述】:
我在建筑中有这些信号:
signal sign1: STD_LOGIC_VECTOR (21 downto 0);
signal sign2: STD_LOGIC;
然后在某些过程中我有这个任务。这是什么意思? sign2 中的值是多少?向量的第 21 位?
sign2 <= sign1(21);
【问题讨论】:
-
VHDL也有所谓的属性,所以可以
sign2 <= sign1(sign1'left),比硬编码的幻数更容易阅读和维护。 -
信号赋值的右手表达式是一个索引名称,表示数组的元素 (
sign1)。数组类型 std_logic_vector 的元素类型的基本类型与 std_logic 的基本类型相同,允许分配给目标sign2。数字文字21表示一个通用整数 值,该值被转换为整数类型,它是std_logic_vector 索引类型的基本类型,并且是一个指定数组元素的索引。如果索引值不在sign1的索引范围内,则为错误。
标签: vhdl