![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
В общем случае if представляет собой последовательность выражений, оговаривающих условия. В качестве условий применимы любые выражения, при вычисление которых получается булевская величина (FALSE и TRUE).
if булевское_выражение then
последовательностные_выражения
[elsif булевское_выражение then
последовательностные_выражения ]
[else
последовательностные_выражения]
end if;
Выражение if вычисляется путем просмотра условий одного за другим, пока не будет найдено истинное. Затем вычисляется набор последовательностных выражений, связанных с этим условием. Предложений вида elsif в выражении if может быть от 0 и более. Может использоваться и предложение else. Выражения if могут вкладываться одно в другое без ограничений.
Рассмотрим простой пример.
if CTRL = '1' then
MUX_OUT<= "10";
else
MUX_OUT<= "01";
end if;
Если управляющий сигнал CTRL1 равен ‘1’, то выходной сигнал MUX_OUT принимает значение "10", иначе MUX_OUT примет значение "01". На этом оператор if завершается.
Рассмотрим более сложный пример.
if CTRLI = '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;
end if;
Если управляющий сигнал 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, а также завершается и наружный.
Дата публикования: 2015-03-29; Прочитано: 184 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!