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

问题描述 投票:0回答:3

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

告诉我,如果有人需要更多信息或其他东西

vhdl
3个回答
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 - > '-'


3
投票

它只是矢量的正常索引。

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

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


2
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.