Языки описания аппаратуры, методические указания по лабораторным работам, страница 12

Лабораторная работа №3. Исследование стандартных алгоритмических средств языка VHDL

Цели и задачи. Исследовать применение стандартных алгоритмических средств языка VHDL при проектировании моделей цифровых устройств.

Общие положения. Оператор присваивания. Как в любом языке программирования, значение переменной можно изменять с помощью оператора присваивания, который имеет следующий синтаксис:

 
оператор_присваивания::= < получатель >:= ;
получатель::= имя объекта | агрегат
 

 В простейшем случае получатель - это имя объекта, и результат выражения будет присвоен названному объекту. Объект и результат выражения должны быть одного типа. Если получатель - агрегат, то перечисленные в нем имена должны быть именами объектов, а тип выражения должен быть составным типом, таким же, как агрегат. Вначале такой оператор обрабатывает имена перечисленных в агрегате переменных, далее вычисляется выражение, и значение выражения присваивается перечисленным переменным. Это очень эффективная форма для параллельного присваивания. Например, если переменная r является записью, имеющей два поля a и b, то значения этих полей можно обменять с использованием такой конструкции:

 
        (a => r.b, b => r.a) := r;
 

 (Обратите внимание, что это только пример использования оператора присваивания, но ни в коем случае не пример хорошей техники программирования). Операторы присваивания для переменных не имеют временного параметра, т.е. результат их выполнения сказывается немедленно. Переменные в VHDL, если они не описаны как локальные в подпрограммах, являются статическими, т.е. их значение сохраняется не только внутри одного такта моделирования, но и на протяжении любого количества тактов до тех пор, пока для переменной не выполнится какой-либо оператор присваивания. Условный оператор IF. Условные операторы предназначены для выбора к исполнению определенных ветвей программы в зависимости от некоторых условий. В качестве условия используется значение логического выражения. Полный формат условного оператора имеет вид:

 
оператор_условия ::=
if  then  ;
     elseif  then   ;