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

Mac*_*Mac 0 vhdl

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

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

ric*_*ick 7

让我们按部分去做:

  • vector'high:如果在数组上使用,则属性"high"返回可用于索引到该数组的最高值.更正式的定义是:它是数组A或约束数组类型最高下标.所以如果vector有范围(7 downto 0),则vector'high等于7
  • vector( X ):返回位置X中元素的值vector(这是一个简单的数组索引)
  • 所以,vector( vector'high )返回具有最高下标的元素的值vector
  • 最后vector(vector'high)='1'是将该元素的值与文字位值"1"进行比较.

举一个具体的例子,如果你有:

constant vector: standard_logic_vector(7 downto 0) = "1000_000X";
Run Code Online (Sandbox Code Playgroud)

然后:

vector(vector'high) 将是平等的 '1'

就个人而言,我认为如果我们有一个预定义的属性(返回具有最高下标的元素的值)会很好.

最后,为了完整起见,'high可以使用约束数组(似乎是您的情况)或类型.如果在类型标识符上使用,它将提供该类型的最高值.例如:bit'high- > '1',std_logic'high- > '-'.