Применение языка VHDL при проектировании специализированных СБИС. Ивченко В.Г. - 26 стр.

UptoLike

Составители: 

27
Каждый экземпляр компонента должен быть ассоциирован с парой объект-архитектура из библиотеки. По
умолчанию программа моделирования (simulator) будет осуществлять поиск объекта (entity) с совпадающим
именем, списком портов и списком классов в библиотеке для использования в экземплярах компонента.
Три объявления сигналов (signal declaration) следуют за объявлениями компонентов. Сигнал специфицирует
путь данных, который может соединять компоненты. Каждый сигнал имеет имя и тип. Если сигнал
присоединяется к порту, то тип сигнала и тип порта должны точно совпадать. Например, сигнал с типом bit не
может быть присоединен к порту типа wbit.
Экземпляры компонентов создаются и соединяются в разделе предложений (statement part) архитектуры,
следующим за словом begin. Каждый экземпляр создается посредством предложения конкретизации
компонента (component instantiation statement). Экземпляр всегда начинается с метки, за которой следует имя
компонента. Допускается установка только предварительно объявленных компонентов.
В каждом экземпляре компонента ROM за предложением конкретизации следует предложение карты портов
(port map). Каждый элемент в списке является либо именем одного из портов платы памяти, либо локально
объявленным сигналом. Если одинаковые имена появляются в картах портов двух экземпляров, то
соответствующие порты экземпляров соединены между собой.
Каждая последующая позиция в списке карты портов соответствует локальному порту в той же позиции
объявления компонента. Например, адресные линии, выходящие из интерфейса шины (Addr), присоединяются к
первому порту каждой микросхемы ROM и однобитовая линия данных от каждой микросхемы ROM
присоединяется к одному из элементов массива сигналов с именем Data.
Интерфейс шины INT наряду с картой портов имеет также и карту класса (generic map). Константа Board_id,
объявленная в объявлении объекта, используется в качестве значения для параметра класса. Значение константы
Board_id будет использоваться внутри реализации шинного интерфейса для определения маски адреса платы.
Из семейства плат, Businterface которых соответствует всем возможным адресам, выберется только одна,
которая соответствует адресу, определенному константой Board_id.
Длинный список экземпляров ROM в предыдущем описании на структурную архитектуру для платы памяти
изменяется только в соответствии с тем, какой индекс используется для выбора элемента массива Data.
Альтернативное представление для массива компонентов ROM показано на рис. 4.
architecture Structure of MemoryBoard is
.
.
component ROM64Kx1
port ( Addr: in half_word;
Data: out wbit;
Chip_select: in wbit );
end component;
signal Addr: half_word;
signal Data: byte;
signal MR: wbit;
begin
INT: Businterface generic map (Board_id)
port map (Abus,DBus,MemReq,
BusReq,BusAck,DataRdy,
Addr,Data,MR);
ROMarray:
for J in 0 to 7 generate
M: ROM64Kx1 port map (Addr,Data(J),MR);
end generate;
end Structure;
Рис. 4. Генерация массива компонентов
В разделе предложений используется предложение generate для создания 8 экземпляров ROM компонентов.
В каждом экземпляре символ J заменяется значением индекса.
2.2. Потоковое описание
При потоковом описании (data-flow description) объекта проекта его архитектура представляется в виде
множества параллельных регистровых операций, каждая из которых управляется вентильными сигналами.
Потоковое описание соответствует стилю описания, используемому в языках регистровых передач.
Структурный тип описания отражает декомпозицию на компоненты и делает акцент на соединениях,
которые должны быть проведены между компонентами. Компоненты могут быть некоторыми абстрактными
функциональными устройствами или они могут соответствовать физическим элементам, микросхемам или
платам в большой системе.
В потоковом описании, наоборот, акцент делается на потоке информации между элементами с вентильным
управлением. Этот поток информационного обмена регулируется и направляется управляющими элементами,