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

UptoLike

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

28
которые логически отделены от путей данных. Так как пути данных показаны явно, то потоковое описание не
уделяет внимания структуре возможных реализаций.
Основные методы и приемы потокового описания объекта проекта представлены далее на примере блока
шинного интерфейса простой платы памяти.
Схема блока шинного интерфейса платы памяти показана на рис. 5. Рассмотрим неформальный
комментарий для описания шинного протокола и работы интерфейса, а затем рассмотрим, как этот
комментарий может быть реализован в теле архитектуры VHDL, использующей потоковый тип описания.
Объявление объекта Businterface для шинного интерфейса показано на рис. 6. Объект Businterface разработан
для того, чтобы иметь возможность разместить экземпляр компонента Businterface внутри архитектуры Structure
of MemoryBoard, рассмотренной выше. Объект и компонент имеют одинаковые имена, список портов объекта
совпадает со списком портов в объявлении компонента, и список классов объекта совпадает со списком классов
в объявлении компонента. Объект Businterface использует типы, объявленные в пакете Defs.
Шинный интерфейс имеет три порта, которые присоединены к массиву ROM: ADDR, задающий адресные
входы ROM; MR, присоединенный к линиям выбора микросхем; и DATA, который получает выходные данные
ROM. Остальные порты интерфейса шины Businterface присоединены к внешней шине. АВus присоединена к
адресным линиям внешней шины. Dbus присоединена к линиям данных, а оставшиеся сигналы задействованы в
логике управления шиной. Все сигналы управления шиной имеют активный низкий уровень.
ABus MemReq BusReq BusAck DataRdy DBus
DEC
&
REC
RDY
&
ACK
En DBR
ABR
LD
TM R
1
MRQ
Enable
ADDR MR DATA
MRint
Done
Рис. 5. Схемная диаграмма шинного интерфейса
use Work.Defs.all;
entity Businterface is
generic
( Board_id: in wbit_vector (0 to 2));
port
( ABus: in address;
DBus: out byte;
MemReq: in wbit;
BusReq: out wbit;
BusAck: in wbit;
DataRdy: out wbit;
Addr: out half_word;
Data: in byte;
MR: out wbit );
end Businterface;
Рис. 6. Объявление объекта для шинного интерфейса
Цикл доступа к памяти начинается, когда MemReq переходит в нуль и адрес, хранящийся в 16-18 битах
ABus, равен номеру платы. Эта комбинация событий вызывает установление декодером DEC сигнала MRint на
плате в единичное состояние. MRint управляет загрузочным входом триггера адреса ABR, запускает таймер
TMR и устанавливает буфер MRQ в нуль.