首页 文章

是否存在运算符| VHDL

提问于
浏览
1

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

在某个时刻,有这部分代码:

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

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

但它存在吗?

1 回答

  • 3

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

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

    来自IEEE Std 1076-1993:

    8.8案件陈述......

    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
    

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

相关问题