我正在做一个练习,我必须找到VHDL代码的错误,我不会直接在这里粘贴代码,因为它是一个打印。是否存在运算符| Vhdl
在时刻,存在这部分代码:
与E选择 小号< = “001” 时, “110” | “100” | “000”,
如果这个操作符“ |”存在,我可以注意到|之间的区别和“或”。
但它存在吗?
我正在做一个练习,我必须找到VHDL代码的错误,我不会直接在这里粘贴代码,因为它是一个打印。是否存在运算符| Vhdl
在时刻,存在这部分代码:
与E选择 小号< = “001” 时, “110” | “100” | “000”,
如果这个操作符“ |”存在,我可以注意到|之间的区别和“或”。
但它存在吗?
它存在。它不是一个操作员,它是一个分隔符。 (IEEE标准1076-1993,13.2词汇元素,分隔符和分隔符)。
从你的问题看来,你会发现很难在LRM中找到支持。在包含语法摘要的附录之外的标准文本中,BNF有不同的地方是规范性的。
从IEEE标准1076-1993:
8.8 Case语句
....
case_statement_alternative ::=
when choices =>
sequence_of_statements
....
的小号在case语句 中作为选项给出的实现表达式和离散范围必须是本地静态的。由分立范围定义的选择代表相应范围内的所有 值。其他人的选择只适用于 最后的替代选择,并作为其唯一选择;它表示所有的值(可能是 无)在以前的选择中没有给出。一个元素简单的 名称(见7.3.2)不允许作为case语句的替代选择。
7.3.2骨料
...
choices ::= choice { | choice }
choice ::=
simple_expression
| discrete_range
| element_simple_name
| others
分隔符竖线( '|')用于分隔选择。案例陈述中的选择不能是简单的元素名称。你的例子显示了简单表达式的选择。
我还没有看到它,运营商呢。正如你所说,最可能的应该是“或” –