Оператор case

Cодержание Следующая

Изучение VHDL

Последовательные операторы.

Оператор case.

Этот оператор разрешает выполнение одной из цепочек последовательных операторов в зависимости от значения выражения селектора. Его упрощенный синтаксис:

\оператор case\::=case \простое выражение\ is
       when \альтернативы\ => {\последовательный оператор\}

       {when \альтернативы\ => {\последовательный оператор\}}

end case ;
\альтернативы\:= \альтернативa\{ | \альтернатива\}

В выражении селектора \простое выражение\ должен вычисляться целый результат или значение перечисляемого или регулярного типа. Это должно быть простое выражение, а не, например, конкатенация. Каждая из альтернатив \альтернатива\ должна быть такого же типа, что и \выражение\ и представлена статическим выражением или диапазоном, например, 0 to 4.
Никакие два значения, получаемые из выражений альтернатив, не должны быть равны друг другу, т.е. множества альтернатив не перекрываются. Последней альтернативой может быть ключевое слово others, которое указывает на не перечисленные альтернативы. Если слово others не применяется, то в альтернативах должны быть перечислены все возможные значения, принимаемые в селекторе \выражение\.

Пример оператора case:

varіable sel, a: іnteger 0 to 9;
.............
case sel іs
            when 0 => a <= 0;
            when 1|2|3 => a <= 1;
            when 4 to 7  => a <= 2;
            when  others  => a <= 3;
end case;

Анатолий Сергиенко
E-mail: aser@comsys.kpi.ua