这个“vector(vector'HIGH)='1'”的含义是什么?

时间:2013-12-03 01:55:27

标签: vhdl

我知道'HIGH它是一个数据属性,它返回上面的数组索引,但是括号中的向量我没有得到它。它与vector'HIGH ??

相同

告诉我是否有人需要更多信息

3 个答案:

答案 0 :(得分:6)

让我们按部分去做:

  • vector'high:如果在数组上使用,则属性“high”返回可用于索引到该数组的最高值。更正式的定义是:它是highest subscript of array A or constrained array type。因此,如果vector具有范围(7 downto 0),vector'high等于7
  • vector( 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 - > '-'

答案 1 :(得分:3)

它只是矢量的正常索引。

vector'high为您提供一个数字,该数字被定义为向量中的最高位位置。

所以像vector(2)给出了向量位置2的位,所以vector(vector'high)返回最高位的值。

答案 2 :(得分:2)

它将vector中最高下标的元素与'1'进行比较。为了进行比较,vector(3)将是恰好具有下标3的向量元素。