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

3.6. Задержки сигналов

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

Для моделирования такого рода задержек в распространении сигнала и используется оператор инерционной задержки after. Например, запись Y <= X1&X2 after 20 ns, означает, что значение сигнала Y изменится через 20 нс после изменения одного из сигналов X.

Транспортная задержка предполагает, что все изменения на входе будут передаваться на выход независимо от времени существования входного сигнала. В этом ее главное отличие от инерционной, работающей по принципу фильтра. Фактически при быстром изменении сигнал на входе логической схемы будет обнаружено только то значение, которое будет присутствовать по истечении задержки. При транспортной задержке временная диаграмма «вход-выход» будет более полной, но со сдвигом по времени на значение задержки.

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

Y <= transport X after 3 ns.

3.7. Моделирование схемных соединений

В языке VHDL модель соединений компонентов для передачи и приема представляется в виде архитектурного тела с описанием интерфейса компонентов. Рассмотрим пример системы, состоящей из двух компонентов А и В, соединенных локальной шиной . Пусть локальная шина имеет восемь проводников. Система имеет 8 входных линий и 16 выходных.

Интерфейс компонентов А и В имеет следующий вид:

entity A is

port (Ax : in bit_vector(0 to 7); Ay : out bit_vector(0 to 7));

end A;

entity B is

port (Bx : in bit_vector(0 to 7); By : out bit_vector(0 to 15));

end B;

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

entity System is

port (X : in bit_vector(0 to 7); Y : out bit_vector(0 to 7));

end System;

architecture System_AB of System is

signal Lab : bit_vector(0 to 7); -- описание линий связи

component A is -- описание компонента A

port (Ax : in bit_vector(0 to 7); Ay : out bit_vector(0 to 7));

end component;

component B is -- описание компонента В

port (Bx : in bit_vector(0 to 7); By : out bit_vector(0 to 15));

end component;

begin

---- выполнение процессов, блоков

A port map(X, Lab); -- конкретизация компонента системы

B port map(Lab, Y); -- конкретизация компонента системы

End System_AB;

Таким образом, объединения компонентов в систему моделируется описанием интерфейсов и передачей соответствующих значений сигналов.

Если для соединения используются отдельные единичные линии, то соответствующие им переменные могут иметь битовый тип. Все дальнейшие действия аналогичны. Но следует заметить, что групповое представление сигналов, когда оно соответствует схеме, выгоднее, чем битовое.

В тексте программы операторы port map записываются внутри архитектурного тела за операторами процессов. Приведенная в примере запись оператора определяется позиционным сопоставлением элементов отображения портов в описании компонентов. Тоже самое можно сделать при помощи ключевого соответствия, например:

S1: A port map(Ay => Lab, Ax => X);

S2: B port map(By => Y, Bx => Lab);