Послідовний оператор case

Зміст

Наступна

Вивчення VHDL

Послідовні оператори

Оператор case

Цей оператор дозволяє виконання одного з ланцюжків послідовних операторів залежно від значення виразу селектора. Його спрощений синтаксис:

\оператор case\::=case \простий вираз\ іs
       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