2014-02-15 3 views
1

Я выполняю упражнение, чтобы найти эры кода VHDL, я не буду вставлять код прямо здесь, потому что это печать.Существует ли оператор | Vhdl

В момент, есть эта часть кода:

с E выберите S < = "001", когда "110" | "100" | "000",

, если этого оператора " |» существует, я могу заметить разницу между | и "или".

Но он существует?

+0

Я еще не видел этого оператора. Скорее всего, как вы сказали, это должно быть "или" –

ответ

3

Существует. Это не оператор, это разделитель. (IEEE Std 1076-1993, 13.2 Лексические элементы, разделители и разделители).

С вашего вопроса, похоже, вам трудно найти поддержку в LRM. Существуют различные места, которые BNF является нормативным в тексте стандарта за пределами Приложения, содержащего резюме синтаксиса.

От IEEE Std 1076-1993:

8,8 заявления Case

....

case_statement_alternative ::= 
    when choices => 
     sequence_of_statements 

....

s imple выражение и дискретные диапазоны, заданные как выбор в случае case должны быть локально статическими. Выбор, определенный дискретным диапазоном, означает все значения в соответствующем диапазоне. Выбор других разрешен только для последней альтернативы и как единственного ее выбора; он обозначает все значения (возможно, нет), не указанные в вариантах предыдущих альтернатив. Элемент simple имя (см. 7.3.2) не допускается в качестве альтернативы варианта case.

7.3.2 Агрегаты
...

choices ::= choice { | choice } 

choice ::= 
     simple_expression 
    | discrete_range 
    | element_simple_name 
    | others 

Ограничитель вертикальная черта ('|') используется для разделения выбора. Выбор в альтернативе case-case не может быть простым именем элемента. В вашем примере показаны варианты, которые являются простыми выражениями.

Смежные вопросы