VHDL 'range => '0' 命令
VHDL 'range => '0' command
希望有人能回答我的问题。我在 VHDL 代码中遇到了这个命令,但不确定它到底做了什么。有人可以澄清以下内容吗?
if ( element1 = (element1'range => '0')) then
鉴于 element1 是 4 位 std_logic_vector,这个条件说明了什么?我无法在我拥有的几本书中或 google 上找到直接的答案。
谢谢!
如果 element1
仅包含 '0'
,则条件 return 为真。这是一种不依赖于 element1
大小的写法。在这种情况下 element1'range
是 3 downto 0
。例如,如果您将其更改为 5 downto 0
,if
条件仍然有效。
意思是,创建一个临时数组聚合指定范围的大小,并将每个元素设置为“0”。无论那个范围是什么。
防止element1大小变化时发生意外。
每次看到 3 downto 0
或 for i in 0 to 3 loop ...
之类的幻数时,请尝试用此或等价物替换它们,因为 for i in element1'range loop ...
永远不会在数组末尾循环。
定义的范围是必要的,因为关系运算符 =
(如 <、> 和其他)不会将其参数限制为相同的长度,因此更简单的聚合形式 (others => '0')
不起作用,因为它的大小未定义。
(element1'range => '0')
是一个数组聚合,其元素选择范围为 element1
,并将这些元素与值 '0'
相关联,创建一个从上下文中获取其类型的复合值 - “=”运算符的左侧(IEEE Std 1076-2008 9.3.3 聚合,9.3.3.3 数组聚合)。
if语句(10.8 If语句)条件element1 = (element1'range => '0')
判断element1
是否全部'0'
以范围独立的方式,相等关系运算符(9.2.3关系运算符) 返回布尔值。
这种评估 element1
值的方法不受 element1
更改声明的影响(6.4.2 对象声明,6.4.2.3 信号声明,6.4.2.4 变量声明,6.5。 2 接口对象声明)。
条件(表达式)的外括号对在 VHDL 中是多余的(10.2 Wait 语句,条件的 BNF,9. 表达式,9.1 通用,中间目标 primary 的 BNF 允许它们)。
希望有人能回答我的问题。我在 VHDL 代码中遇到了这个命令,但不确定它到底做了什么。有人可以澄清以下内容吗?
if ( element1 = (element1'range => '0')) then
鉴于 element1 是 4 位 std_logic_vector,这个条件说明了什么?我无法在我拥有的几本书中或 google 上找到直接的答案。 谢谢!
如果 element1
仅包含 '0'
,则条件 return 为真。这是一种不依赖于 element1
大小的写法。在这种情况下 element1'range
是 3 downto 0
。例如,如果您将其更改为 5 downto 0
,if
条件仍然有效。
意思是,创建一个临时数组聚合指定范围的大小,并将每个元素设置为“0”。无论那个范围是什么。
防止element1大小变化时发生意外。
每次看到 3 downto 0
或 for i in 0 to 3 loop ...
之类的幻数时,请尝试用此或等价物替换它们,因为 for i in element1'range loop ...
永远不会在数组末尾循环。
定义的范围是必要的,因为关系运算符 =
(如 <、> 和其他)不会将其参数限制为相同的长度,因此更简单的聚合形式 (others => '0')
不起作用,因为它的大小未定义。
(element1'range => '0')
是一个数组聚合,其元素选择范围为 element1
,并将这些元素与值 '0'
相关联,创建一个从上下文中获取其类型的复合值 - “=”运算符的左侧(IEEE Std 1076-2008 9.3.3 聚合,9.3.3.3 数组聚合)。
if语句(10.8 If语句)条件element1 = (element1'range => '0')
判断element1
是否全部'0'
以范围独立的方式,相等关系运算符(9.2.3关系运算符) 返回布尔值。
这种评估 element1
值的方法不受 element1
更改声明的影响(6.4.2 对象声明,6.4.2.3 信号声明,6.4.2.4 变量声明,6.5。 2 接口对象声明)。
条件(表达式)的外括号对在 VHDL 中是多余的(10.2 Wait 语句,条件的 BNF,9. 表达式,9.1 通用,中间目标 primary 的 BNF 允许它们)。