Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PROGRAMMIRUEMYE_TsIFROVYE_USTROJSTVA.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.86 Mб
Скачать
  1. Основные операторы языка vhdl.

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

Их состав включает:

• оператор присваивания переменной (:=);

• оператор назначения сигналу (<=);

• оператор утверждения (assert);

• условный (if);

• выбора (case);

• цикла (loop);

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

• оператор возврата процедуры - функции (return);

• оператор ожидания (wait)

Оператор условия if оператор выбора case позволяют описывать совокупности действий, некоторые из которых исполняются при возникновении определенных условий.

Исполнение операторов, записанных в теле процесса, приостанавливается, если очередной оператор является оператором ожидания (фактически — оператором приостанова) wait. Прекращения состояния приостанова процесса зависит от условий, определенных в операторе wait.

Операторы повторения loop позволяют сокращенно записывать совокупность однотипных действий.

Оператор проверки assert служит для выявления специфических ситуаций, которые могут возникать в процессе компиляции и моделирования и выдачи в этих ситуациях сообщения разработчику.

  1. Оператор условия языка vhdl. Пустой оператор.

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

Их состав включает:

• оператор присваивания переменной (:=);

• оператор назначения сигналу (<=);

• оператор утверждения (assert);

• условный (if);

• выбора (case);

• цикла (loop);

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

• оператор возврата процедуры - функции (return);

• оператор ожидания (wait)

Оператор условия if позволяет описывать совокупности действий, некоторые из которых исполняются при возникновении определенных условий.

Синтаксис:

IF <логическое выражение>

ТНЕN <операторы>

ELSE <логическое выражение>

THEN <операторы>

END IF;

Пустой оператор null используется в операторах if или case чтобы обозначить варианты не требующие действий при определении условий

Пример:

case flag is

when true=>

Q:=null; - величина

when false

null; - оператор

end case.

  1. Оператор case языка vhdl.

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

case выражение is

{when выборы =>

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

end case;

Выражение, стоящее после case (селектор), должно принимать дискретный набор значений. Значение этого выражения сравнивается со значениями, стоящими после when (их тип должен совпадать). Выполняется последовательность действий, стоящая после первого же when, для которого было обнаружено совпадение. Если необходимо, чтобы выполнялась некоторая последовательность действий при отсутствии совпадений, то используется конструкция when others, после которой и задаётся эта последовательность. Эта конструкция должна быть последней в операторе.

Например:

type alu_func is (pass1, pass2, pass3, pass4);

variable func: alu_func;

case func is

when pass1 => result:=operand1;

when pass2 => result:=operand2;

when others => result:=0;

end case;

Если нескольким значениям селектора соответствует одна и та же последовательность действий, они могут быть перечислены после одного when. Разделителем служит вертикальная черта.

Например:

when load | add | subs =>operand:=mem_operand;

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