Изучение VHDL

       

Оператор if.


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

\оператор if\::=if \условие 1\ then

{\последовательный оператор 1\}

[ { elsif  \условие 2\ then

{\последовательный оператор 2\}]

[else

{\последовательный оператор 3\}]

end if;

Каждое из условий должно быть выражением, вычисляющим результат булевского типа. При выполнении этого оператора условия проверяются последовательно друг за другом пока результат условия не будет true. Тогда выполняется соответствующая этому условию цепочка операторов и выполнение данного оператора if прекращается.

Оператор case.

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

\оператор case\::=case \простое выражение\ is

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



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

end case ;

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

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

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

variable sel, a: integer 0 to 9;

………….

case sel is

when 0 => a <= 0;

when 1½2½3 => a <= 1;

when 4 to 7  => a <= 2;

when  others  => a <= 3;

end case;

Пустой оператор – оператор null – не выполняет никаких действий и может быть вставлен в любом месте программы как последовательный оператор. Например, если в операторе case по каким-то альтернативам не нужно ничего выполнять, то ставится этот оператор:

case sel is

when 0 => a <= 0;

when 1 to 9 => a <= b;

when  others  => null;

end case;



Содержание раздела