是否存在运算符| VHDL

时间:2014-02-15 11:47:36

标签: vhdl fpga

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

此刻,代码的这一部分:

用E选择    当“110”|“100”|“000”时,S< =“001”,

如果此运算符“|”存在,我可以注意到|之间的区别和“或”。

但是它存在吗?

1 个答案:

答案 0 :(得分:3)

它存在。它不是运营商,而是分界线。 (IEEE Std 1076-1993,13.2词法元素,分隔符和分隔符)。

从您的问题来看,您会发现很难在LRM中找到支持。 BNF在附录中包含语法摘要的标准文本中有各种规范。

来自IEEE Std 1076-1993:

  <8> 8.8案例陈述

     

...

case_statement_alternative ::=  
    when choices =>
         sequence_of_statements  
  

...

     

在case语句中作为选项给出的简单表达式和离散范围   必须是本地静态的。由离散范围定义的选择代表所有   相应范围内的值。选择其他人只允许   最后的选择,作为唯一的选择;它代表所有价值观(可能       没有)在以前的替代选择中没有给出。一个简单的元素       名称(见7.3.2)不允许作为案例陈述备选的选择。

     

7.3.2汇总
  ...

 choices ::=  choice { | choice }

 choice ::=
       simple_expression
     | discrete_range
     | element_simple_name
     | others

分隔符垂直条('|')用于分隔选项。 case语句替代选项不能是元素简单名称。您的示例显示了简单表达式的选择。