Курсовая работа: Основы языка VHDL
[elsifбулевское_выражение then
последовательностные_выражения ]
[else
последовательностные_выражения]
endif;
Выражение ifвычисляется путем просмотра условий одного за другим, пока не будет найдено истинное. Затем вычисляется набор последовательностных выражений, связанных с этим условием. Предложений вида elsifв выражении ifможет быть от 0 и более. Может использоваться и предложение else. Выражения ifмогут вкладываться одно в другое без ограничений.
Рассмотрим простой пример.
ifCTRL= '1' then
MUX_OUT<= "10";
else
MUX_OUT<= "01";
endif;
Если управляющий сигнал CTRL1 равен ‘1’, то выходной сигнал MUX_OUTпринимает значение "10", иначе MUX_OUTпримет значение "01". На этом оператор ifзавершается.
Рассмотрим более сложный пример.
ifCTRLI= '1' then
if CTRL2 = '0' then
MUX_OUT<= "0010";
else
MUX_OUT<= "0001";
end if;
else
if CTRL2 = '0' then
MUX_OUT <= "1000";
else
MUX_OUT <= "0100";
end if;
endif;
Если управляющий сигнал CTRL1 равен ‘1’, тогда при условии (открывается вложенное if) CTRL2=’0’ выходной сигнал MUX_OUT<= "0010", иначе (т.е. при любых других значениях сигнала CTRL2) MUX_OUT<= "0001". Здесь завершается внутренний (вложенный) оператор if. Иначе (т.е. при любых других значениях сигнала CTRL1), если (открывается новый вложенный оператор if) CTRL2=’0’, тогда MUX_OUT<= "1000", иначе (т.е. при любых других значениях сигнала CTRL2) MUX_OUT<= "1000". Здесь завершается внутренний (вложенный) оператор if, а также завершается и наружный.
Оператор case
Операторcaseимеет следующий формат: