Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VHDL.doc
Скачиваний:
8
Добавлен:
22.08.2019
Размер:
272.38 Кб
Скачать

8 Последовательные операторы языка vhdl.

В VHDL последовательные операторы подобны операторам языков высокого уровня.

Оператор присваивания значения переменной

Определение: variablc_assignment_statement::= [label] target := expression ; Данный оператор заменяет текущее значение (target) перемен­ной новым значением, которое определяется выражением (expression). Переменная и выражение должны быть того же базово­го типа.

Оператор присваивания значения сигналу

В языке VHDL в операторах назначения сигналов используются два вида задержек: 1). инерционная задержка; 2). транспортная задержка; Ключевое слово inеrtial определяет инерционную задержку, ключевое слово transport определяет транспортную задержку.

Пример.

Х<= inertial Y after 3 ns; - инерционная задержка

Х<= transport Y after 3ns; - транспортная задержка.

Оператор if

Подобен операторам if в других языках программирования. Выражение, представляющее собой “условие” должно иметь тип BOOLEAN. В одном if операторе может быть одна (ни одной) либо более частей elsif.

Оператор case

Оператор case выбирает одну из альтернатив, избранная альтернатива (случай) определяется значением выражения. Выражение должно быть дискретного типа или типа одноразмерного массива символов.

Оператор next

next [метка цикла][when условие]

Оператор употребляется для завершения итераций цикла.

Оператор exit

exit [метка цикла][when условие]

Оператор употребляется, чтобы завершить выполнение и закрыть оператор цикла. Если условие (condition) есть TRUE, то осуществляется выход из цикла.

Оператор null (пустой)

Оператор null не представляет действий. Он употребляется, чтобы точно специфицировать, что нет действий.

Оператор вызова процедуры

Состоит из имени процедуры с аргументами (если они есть) в скобках.

Оператор return (возврат)

return [выражение]

Употребляется, чтобы завершить выполнение самой внутренней функции или процедуры. Он используется только внутри тела функции или процедуры.

Оператор assert (сообщение)

assert условие [report выражение][severity выражение]

Операторы сообщений проверяют является ли условие истинным, и сообщают об ошибке, если условие является ложным.

9 Операторы цикла в языке vhdl.

Этот оператор (loop) несколько раз выполняет последовательность операторов. Его синтаксис:

\оператор цикла\::=[\метка\:][\схема итерации\]loop

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

       {next[\метка\][when \условие\];}

       {exit[\метка\][when \условие\];}

end loop [\метка\];

\схема итерации\::=while \условие\  | for \переменная цикла \ in \диапазон\

Метка \метка\ необязательна, она отмечает начало цикла и используется для организации вложенных циклов или для указания в каком цикле начать новую итерацию по оператору next или из какого цикла выйти по оператору exit.

variable vec: bit_vector(1 to n);

variable or_vec:bit;

       ….

     or_vec:='0';

for i in 1 to n loop

          or_vec:= or_vec or vec(i);

     end loop;

Оператор loop часто применяется без схемы итерации, т.е. когда цикл может выполняться неопределенно большое число раз.

signal clk: bit;

signal numb:natural;

numb<=0;

loop

    wait until clk='1';

    numb<=numb+1;

end loop;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]