Язык описания электронной аппаратуры VHDL. Берчун Ю.В. - 29 стр.

UptoLike

Составители: 

29
иерархическом вложении операторов. Формальных ограничений на глубину вложений не
вводится, хотя надо иметь в виду, что некоторые компиляторы могут оказаться неспособны
выполнить прямую реализацию в аппаратуре синтаксических конструкций с большим чис-
лом уровней вложения.
Проиллюстрируем применение уловного оператора описанием поведения вентиля И2,
рассмотренного в предыдущем разделе, для которого время задержки для фронта и среза не
совпадают:
architecture and2_if of and2 is
begin
process (X1, X2)
variable Z : bit;
begin
Z := X1 and X2;
if Z='1' and Y='0' then
Y <= '1' after 7 ns; --фронт
elsif Z='0' and Y='1' then
Y <= '0' after 3 ns; --срез
end if;
end process;
end;
Синтаксис оператора выбора имеет вид:
<оператор выбора>::=
case <ключевое выражение> is
when <вариант> {|<вариант>} => <оператор> {<оператор>}
{when <вариант> {|<вариант>} => <оператор> {<оператор>}}
end case;
<вариант>::= <константное выражение> | <диапазон> | others
Разделителем в списках выбираемых вариантов является вертикальная черта, т. е. в оп-
ределении оператора выбора вертикальная черта это не метасимвол БНФ, в отличие от лю-
бых других определений, а синтаксический элемент определяемой конструкции.
Тип константного выражения или диапазона в записи варианта совпадают с типом
ключевого выражения. В частности, в качестве этого выражения может использоваться стро-
ка, которая соответствует значению битового вектора или вектора типа
std_logic.
При каждом исполнении оператора выбора реализуется единственная после-
довательность вложенных операторов, а именно та, которой предшествует вариант, совпа-
дающий со значением ключевого выражения в момент исполнения оператора. Если вариант
представлен диапазоном, то соответствующая последовательность операторов исполняется
при условии, что значение ключевого выражения принадлежит этому диапазону.
Ключевое слово
others определяет операторы, которые исполняются, если значение
ключевого выражения не совпадает ни с одним вариантом и не входит в объявленные диапа-
зоны. Если алгоритм предусматривает варианты, при которых не производится никаких дей-
ствий, то в операторной части таких вариантов записывается пустой оператор.
Практически любой разветвленный фрагмент можно описать с использованием и опе-
ратора условия, и оператора выбора. Применение одного из способов записидело вкуса
иерархическом вложении операторов. Формальных ограничений на глубину вложений не
вводится, хотя надо иметь в виду, что некоторые компиляторы могут оказаться неспособны
выполнить прямую реализацию в аппаратуре синтаксических конструкций с большим чис-
лом уровней вложения.
     Проиллюстрируем применение уловного оператора описанием поведения вентиля И2,
рассмотренного в предыдущем разделе, для которого время задержки для фронта и среза не
совпадают:
architecture and2_if of and2 is
begin
      process (X1, X2)
      variable Z : bit;
      begin
            Z := X1 and X2;
            if Z='1' and Y='0' then
                  Y <= '1' after 7 ns;       --фронт
            elsif Z='0' and Y='1' then
                  Y <= '0' after 3 ns;       --срез
            end if;
      end process;
end;
     Синтаксис оператора выбора имеет вид:
<оператор выбора>::=
case <ключевое выражение> is
when <вариант> {|<вариант>} => <оператор> {<оператор>}
{when <вариант> {|<вариант>} => <оператор> {<оператор>}}
end case;
<вариант>::= <константное выражение> | <диапазон> | others
     Разделителем в списках выбираемых вариантов является вертикальная черта, т. е. в оп-
ределении оператора выбора вертикальная черта это не метасимвол БНФ, в отличие от лю-
бых других определений, а синтаксический элемент определяемой конструкции.
      Тип константного выражения или диапазона в записи варианта совпадают с типом
ключевого выражения. В частности, в качестве этого выражения может использоваться стро-
ка, которая соответствует значению битового вектора или вектора типа std_logic.
     При каждом исполнении оператора выбора реализуется единственная после-
довательность вложенных операторов, а именно та, которой предшествует вариант, совпа-
дающий со значением ключевого выражения в момент исполнения оператора. Если вариант
представлен диапазоном, то соответствующая последовательность операторов исполняется
при условии, что значение ключевого выражения принадлежит этому диапазону.
     Ключевое слово others определяет операторы, которые исполняются, если значение
ключевого выражения не совпадает ни с одним вариантом и не входит в объявленные диапа-
зоны. Если алгоритм предусматривает варианты, при которых не производится никаких дей-
ствий, то в операторной части таких вариантов записывается пустой оператор.
     Практически любой разветвленный фрагмент можно описать с использованием и опе-
ратора условия, и оператора выбора. Применение одного из способов записи — дело вкуса
                                              29