Синтаксис основных конструкций и операторов языка VHDL

Структура описания интерфейса объекта

entity имя объекта is

Generic (список настроечных параметров);

Port (список входных сигналов: in bit;

список выходных сигналов: out bit;

список входных/выходных сигналов: inout bit);

Begin

пассивные параллельные операторы вызова процедур, операторы

сообщения или операторы процесса

end имя объекта;

У каждого объекта проекта может быть только интерфейс и соответственно только одно описание интерфейса. Настроечные параметры после ключевого слова generic нужны в случае необходимости передачи в интерфейс объекта таких параметров, как ширина шины, временная задержка и т.д.

Описание интерфейса объекта в некоторых случаях может быть вообще пустым (например, если объект является тестирующей программой).

Структура архитектурного тела

Architecture имя архитектурного тела of имя объекта is

Описание компонент;

Описание внутренних сигналов и переменных;

Begin

операторы и команды

end имя архитектурного тела;

У одного объекта может быть несколько архитектурных тел. Если никакие компоненты в архитектурном теле не используются, то и их описание отсутствует.

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

Примеры операторов назначения сигнала:

имя сигнала <= inertial логическое выражение after K ns

имя сигнала <= transport логическое выражение after K ns

Ключевые слова inertial и transport определяют соответственно инерционную и транспортную задержку передачи сигнала по времени. После ключевого слова after указывается длительность К временной задержки в долях секунды (например, наносекунды, ns).

Если ключевые слова inertial и transport отсутствуют, то это значит, что задержка является инерционной! Кроме того, если отсутствует ключевое слово after с указанием длительности временной задержки, то считается, что временная задержка отсутствует.

Оператор объявления компонента в объекте

Component имя компонента

Port (список входных сигналов: in bit;

список выходных сигналов: out bit;

список входных/выходных сигналов: inout bit);

End component;

Оператор конкретизации компонента

Вид оператора конкретизации компонента следующий:

Метка: имя компонента port map (список портов);

Список портов в скобках может быть указан двумя способами:

- ключевое соответствие.

- позиционное соответствие.

При ключевом соответствии для описания соответствия каждого сигнала компонента сигналу объекта используется следующая конструкция:

имя сигнала компонента => имя сигнала объекта

Пример:

P1: task port map (x1=>a, y=>c, x2=>b);

x1, x2, y – сигналы компонента task; a, b, c – сигналы объекта, который содержит указанный компонент

При позиционном соответствии указываются только сигналы объекта, содержащего компонент, строго в том порядке, в котором описаны сигналы компонента, соответствующие им. Например:

Пусть компонент task содержит три сигнала, описанных в следующем порядке: x1, x2, y. Этим сигналам соответствуют сигналы объекта a, b, c в указанном порядке. Тогда правильным вариантом описания будет следующий:

P1: task port map (a, b, c);


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: