Применение языка VHDL при проектировании специализированных СБИС. Ивченко В.Г. - 21 стр.

UptoLike

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

22
...
end if;
Условия должны быть типа boolean. Допускается наличие любого числа конструкций elsif, причем
конструкции elsif и else не являются обязательными.
Операторы цикла организуют циклический порядок выполнения операторов:
for i in 5 downto 0 loop
Sum(i):=S*i;
end loop
S_count: while i<=N loop
SumT:=SumT+i;
i:=i+1;
end loop S_count;
Оператор выбора case выполняет оценку условия и, в зависимости от его значения, выполняет
соответствующие группы операторов. Он удобен при небольшом количестве возможных значений условия:
case Par is
when '1' => out:=1;
when '0' => out:=0;
when 'Z' => out:=3;
end case;
Управляющее выражение может иметь любой скалярный тип, либо быть одномерным массивом.
Оператор wait применяется для приостановки процесса на определенный период времени или до момента
наступления определенного события. Оператор wait может содержать любую комбинацию из трех
дополнительных операторов: on, until, for. Указанный оператор приостанавливает процесс до момента, пока не
изменится некоторый сигнал в списке чувствительности, расположенном после on. В это время будет
произведено вычисление условия, расположенного после until. Условие - выражение типа boolean. Если
получается истинное значение, то выполнение процесса возобновляется. Таймаут, следующий после for,
устанавливает интервал времени, через который процесс возобновится. Оператор wait может применяться как
со всеми тремя дополнительными условиями, так и с любыми их сочетаниями. При этом условия, проверяемые
с помощью on, until и for, проверяются последовательно. Например:
WAIT on X,Y until (Z=0) for 100ns;
WAIT on X,Y until (Z=0);
WAIT on X,Y;
WAIT for 100ns;
Оператор возврата return (return_statement) используется для завершения выполнения самого внутреннего
объемлющего тела функции или процедуры.
Оператор возврата разрешен только внутри тела функции или процедуры и применяется к самой внутренней
объемлющей функции или процедуре.
Оператор возврата, стоящий в теле процедуры, не должен содержать выражение. Оператор возврата,
стоящий в теле функции, должен содержать выражение.
Значение этого выражения определяет результат, возвращаемый этой функцией. Типом этого выражения
должен быть базовый тип обозначения типа, заданного после зарезервированного слова return в спецификации
этой функции. Считается ошибкой, если выполнение функции завершается средством, отличным от оператора
возврата.
При выполнении оператора возврата сначала вычисляется выражение (если оно задано) и делается проверка
на принадлежность значения выражения подтипу результата. Если проверка имеет успех, то на этом
выполнение оператора возврата завершается; также заканчивается выполнение объемлющей подпрограммы.
Если проверка не имеет успеха, возникает ошибка.
1.6. Пакеты
В языке VHDL предусмотрен механизм пакетов для часто используемых описаний, констант, типов,
сигналов. Эти описания помещаются в объявлении пакета (package declaration). Если пользователь использует
нестандартные процедуры или функции, их интерфейсы описываются в объявлении пакета, а тела содержатся в
теле пакета (package body). Ссылку на описания, содержащиеся в пакете, можно сделать, указав имя пакета, и
через точку ту его часть, которая используется. Для использования всего пакета применяют полную ссылку с
помощью расширителя .all :
package full_p is -- объявление пакета
subtype mem is sparse_memory;
procedure pow (S: inout mem);
end full_p;
package body full_p is -- тело пакета
... -- тело пакета
end full_p;