Структура описания интерфейса объекта
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);