我知道'HIGH它是一个数据属性,它返回上面的数组索引,但是向量外面的括号我得不到它。它和vector'HIGH一样?
告诉我,如果有人需要更多信息或其他东西
让我们按部分去做:
vector'high
:如果在数组上使用,则属性“high”返回可用于索引到该数组的最高值。更正式的定义是:它是highest subscript of array A or constrained array type。因此,如果vector
有范围(7 downto 0),vector'high
等于7vector( X )
:返回vector
中位置X处元素的值(这是一个简单的数组索引)vector( vector'high )
返回vector
中具有最高下标的元素的值vector(vector'high)='1'
将该元素的值与文字位值“1”进行比较。举一个具体的例子,如果你有:
constant vector: standard_logic_vector(7 downto 0) = "1000_000X";
然后:
vector(vector'high)
将与'1'
相等
就个人而言,我认为如果我们有一个预定义的属性(返回具有最高下标的元素的值)会很好。
最后,为了完整起见,'high
可以与受约束的数组(似乎是您的情况)或类型一起使用。如果在类型标识符上使用,它将提供该类型的最高值。例如:bit'high
- > '1'
,std_logic'high
- > '-'
。
它只是矢量的正常索引。
vector'high
为您提供一个数字,该数字被定义为向量中的最高位位置。
所以像vector(2)
给出了向量位置2的位,所以vector(vector'high)
返回最高位的值。
它将vector
中最高下标的元素与'1'
进行比较。为了比较,vector(3)
将是恰好具有下标3的向量元素。