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

10 Операторы процесса языка vhdl.

Оператор процесса – это параллельный оператор, представляющий основу языка VHDL.

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

Его упрощенный синтаксис:

\оператор процесса\ ::=[postponed] process [(\имя сигнала\ {,\имя сигнала\})] [is]

     {\объявление в процессе\}

begin

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

end process;

Метка процесса необязательна, однако, если она есть в конце (после слов end process), то она должна быть и вначале перед словом process. В декларативной части процесса могут быть: тела подпрограмм; декларации подтипов; декларация констант; декларация файлов; декларация альтернативных точек входа в подпрограмму; декларация атрибутов; спецификации атрибутов.

Все процессы в программе выполняются параллельно. Процессы обмениваются сигналами, которые выполняют синхронизацию процессов и переносят значения между ними. Если над сигналами определена функция разрешения, то выходы источников сигнала могут объединяться. Сигналы нельзя объявлять в процессах. Процесс невозможно поместить в процесс, так как там есть место только для последовательных операторов.

В круглых скобках заголовка процесса указывается множество сигналов, по которым процесс запускается – список чувствительности.

Это форма оператора процесса, альтернативная процессу с оператором wait on, стоящим последним в цепочке последовательных операторов тела процесса.

В операторе процесса со списком чувствительности ставить операторы wait не допускается. Так как отложенный процесс запускается последним в цепочке процессов с дельта-задержкой, то он сам должен исполняться с ненулевой задержкой, т.е. в нем должен быть оператор wait for.

11 Процедуры и функции в языке vhdl. Атрибуты.

Подпрограммы имеют две формы - функции и процедуры. Вызов процедуры есть оператор, в то время как вызов функций воз­вращает значение в выражении.

Функции. Общий вид оператора декларации функции:

[pure | impure] function имя функции (параметр {, параметр})

return тип возвращаемого функцией значения is раздел деклараций

begin

тело функции

end [имя функции];

Функция имеет только входные параметры. Функция может содержать последовательные операторы, ис­ключая операторы ожидания и назначения сигналов. В теле функции могут декларироваться локальные переменные.

Функция разрешения - это функция определения значения сигнала по его значениям из различных источников.

Процедуры. Общий вид оператора декларации процедуры:

procedure имя процедуры ( параметр {, параметр}) is

раздел деклараций

begin

тело процедуры

end [имя процедуры];

Процедура может иметь входные (in), выходные (out) и вход/выходные (inout) параметры. Это могут быть сигналы, переменные или константы. По умолчанию входные параметры - константы, выходные и вход/выходные параметры - переменные.

Общий вид оператора вызова процедуры:

имя процедуры ( фактический параметр {, фактический параметр});

Атрибуты - это значения, связанные с поименованным элементом - объектом языка VHDL.В VHDL имеются предопределенные атрибуты и определенные пользователем атрибуты. Для построения моделей и моделирования важную роль играют атрибуты сигналов. Например предопределенный атрибут event ассоциируется с каким-либо сигналом (например, с сигналом СLК). Атрибут записывается СLK’event. Этот атрибут имеет тип BOOLEAN с значением TRUE когда значение CLK изменилось.

Атрибут S’last_value' (прошлое значение S) - предыдущее значение, которое сигнал имел непосредственно перед последним изменением S. Относится к тому же самому типу, что и S.

Атрибут S’transaction имеет тип bit атрибут изменяет свое значение в циклах моделирования в которых происходит изменение (транзакция) S.

Атрибут S’stable(Т) имеет тип BOOLEAN. Атрибут имеет истинное значение, если сигнал S стабилен в течение последних Т единиц времени. Если Т=0, атрибут записывается S’stable.

Атрибуты сигналов, в том числе и такие, как S’delayed(t), S’quiet(t), S’transaction, S’active(t), S’last_event, S’driving, S’driving_value используются главным образом при моделировании.

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