2014-02-15 36 views
1

我正在做一个练习,我必须找到VHDL代码的错误,我不会直接在这里粘贴代码,因为它是一个打印。是否存在运算符| Vhdl

在时刻,存在这部分代码:

与E选择 小号< = “001” 时, “110” | “100” | “000”,

如果这个操作符“ |”存在,我可以注意到|之间的区别和“或”。

但它存在吗?

+0

我还没有看到它,运营商呢。正如你所说,最可能的应该是“或” –

回答

3

它存在。它不是一个操作员,它是一个分隔符。 (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 

分隔符竖线( '|')用于分隔选择。案例陈述中的选择不能是简单的元素名称。你的例子显示了简单表达式的选择。

相关问题