- •8.4. Средства и методы разработки программного обеспечения
- •8.4.2. Программные средства поддержки проектирования/
- •8.5.1. Программные системы моделирования
- •8.5.2. Прототипные платы
- •8.5.3. Эмуляторы пзу
- •8.5.4. Внутрисхемные эмуляторы
- •8.5.5. Интегрированные среды разработки (оболочки)
- •8.6.1. Программаторы
- •8.6.2. Логические анализаторы
- •8.6.3. Встроенные в мп средства отладки
- •8.7. Операционные системы реального времени
- •8.8. Jtag-интерфейс и системные функции на его основе
- •8.9. Процедура проектирования и сведения
- •8.9.2. Последовательность проектирования для бис пл
- •8.10. Базовые сведения о языке vhdl
- •8.10.1. Исторический обзор и проблемная ориентация языка
- •8.10.2. Базовые понятия языка и архитектура программ
- •8.10.3. Синтаксическая организация проекта
- •8.10.4. Общеалгоритмическая составляющая языка
- •8.10.5. Проблемно составляющая языка
- •8.10.6. Структурное описание
- •8.10.7. Описание поведения
- •8.11. Описание проектов на языке vhdl примеры, иллюстрирующие основные конструкции vhdl
- •8.11.1. Структурное описание
- •8.11.2. Поведенческое описание
- •8.11.3. Сравнение структурного и поведенческого способов
- •8.11.4. Описание типовых фрагментов вычислительной техники
- •8.12. Пример автоматизированного проектирования
- •Описания аппаратуры
- •8.12.1. Варианты реализации и выбор элементной базы
- •8.12.2. Проектирование бис пл
- •8.12.3.Разработка микропроцессорной системы
- •8.12.4. Особенности процедуры проектирования
- •Этап 1. Этап конфпгурпрованпя аппаратных ресурсов кристалла
- •Этап 3. Разработка программной части проекта
- •Этап 4. Кодовая симуляция и отладка
- •Этап 5. Компиляция и создание объектного кода
- •Этап 7. Загрузка проекта
- •Этап 8. Натурная отладка проекта
- •9.1. Архитектуры с разделяемой общей памятью
- •9.2. Архитектуры с распределенной областью памяти
- •9.3. Матричные системы
- •9.4. Машины, управляемые потоком данных
- •9.5. Систолические системы
- •9.6. Обобщенная архитектура параллельных систем
- •Глава 1. Основы микропроцессорной техники
- •Глава 2. Процессоры общего назначения и системы на их основе
- •Глава 4. 8-разрядные микроконтроллеры
- •Глава 5. Коммуникационные микроконтроллеры и системы на их основе
- •Глава 7.Программируемая логика и ее применение в микропроцессорных системах
- •Глава 8. Проектирование мпс
- •8.4. Средства и методы разработки программного обеспечения
- •8.4.1. Средства индивидуальных и интегрированных пакетов
- •Глава 9. Архитектуры параллельных вычислительных систем
8.11. Описание проектов на языке vhdl примеры, иллюстрирующие основные конструкции vhdl
8.11.1. Структурное описание
Проиллюстрируем структурные варианты описаний на простейших примерах. Пусть требуется описать на языке VHDL комбинационную схему, реализующую функцию У = not(not(in1^in2)^in3) под наименованием exemple1, опирающуюся на поведенческое описание функционирования двухвходового элемента типа 2И-НЕ. Схема приведена на рис. 8.11.
Листинг примера может иметь вид:
ENTITY example1 IS
РОRТ (in1 ,in2,in3: IN BIT;y:OUT BIT;
END example1;
ARCHITECTURE struct OF example1 IS
COMPONENT nand2
РОRТ (x1 ,x2: IN BIT;q: OUT BIT);
ЕND СОМРОNЕМТ;
SIGNAL z: ВIТ;
ВЕGIN
Unit1: nand2 РОRТ МАР (iп1, in2,z);
Unit2: nand2 РОRТ МАР (q=>y, х1=>in3, х2=>z );
В примере описан интерфейс устройства, имеющего три входа и один выход, и структура устройства, когда оно состоит из соединения компонентов под названием nand2. Предполагается, что в проекте имеется описание интерфейса и поведения элемента типа 2 И-НЕ, по смыслу совпадающее с фрагментом:
ЕNТIТY nand2 IS
РОRТ (in1 ,in2: IN ВIТ;
out:OUT BIT;
END nand2;
ARCHITECTURE behave OF nand2 IS
BEGIN
Out<=not(in1 and in2);
END behave;
В состав устройства входят два компонента типа nand2 с именами unit1 и unit2 подсо- единяемые при помощи сигналов in1, in2, in3 и Y к внешним контактам устройства и соеди-няемые между собой при помощи сигнала (цепи) под именем Z. Устройство unit1 подкяючается при помощи позиционного соответствия между формальными и фактическими именами входных и выходных сигналов. Подключение устройства unit2 выполнено с применением ключевого соответствия между формальными и фактическими именами. Ключевое соответствие позволяет отобразить отсутствие соединения у выходного контакта при помощи ключевого слова ОРЕN.
Рассмотрим пример описания структуры 16-разрядного регистра, используя понятие Component и опираясь на конструкцию Generate.Предполагается, что в проекте поведение триггера D описано ранее и может совпадать с примером, приведенным далее в листинге.
ЕNТIТY reg16 IS
РОRТ (input:IN bit_VECTOR(0 TO 15);
clock:IN ВIТ;
output:IN BIT VEKTOR(0 TO 15);
END reg16;
ARCHITECTURE struct OF reg16 IS
СОМРОNЕNТ dff
РОRТ (d, clk: IN BIT;q:OUT BIT);
END СОМРОNЕNТ;
BEGIN
g1: FOR I IN1 TO 16 GENERATE
dff PORT MAP(input(i),clock,output(i));
END GENERATE g1;
Из примера очевидна компактность записи структуры устройства при применении син- таксической конструкции Generate.
8.11.2. Поведенческое описание
Проиллюстрируем поведенческие варианты описаний на том же простейшем примере. Начиная с раздела Enity Declaration, описание может иметь следующий вид:
ENTITY input3_nand IS-entity declaration
РОRТ (in1,in2,in3:IN BIT; — port statement
y:OUT BIT);
END input3_orand1;
ARCHITECTURE one OF input3_nand IS
-architecture "one" of entity input3_nand1
BEGIN
nand3:PROCESS
BEGIN
IF (in3='1') THEN y<=NOT (in1 AND in2);
ELSE y<='1';
END IF;
WAIT ON in1,in2,in3;
END PROCESS;
END;
Описание поведения 8-разрядного счетчика с тактируемым входом сброса (в архитектурном теле) можно задать следующим образом:
Synch_count: PROCESS
BEGIN
WAIT UNTIL clock='1';
IF(reset='1') ТНЕN count<="00000000";
ELSE count <= count+'1';
END IF;
END PROCESS;
Возможность различными способами описать поведение одной и той же системы или объекта, оставаясь в рамках одного архитектурного тела, приводит к понятию стиля опи- сания (Программирования). Традиционно выделяют следующие типы стилей:
• последовательный, когда преобразование потока входных данных в поток выходных данных осуществляется с использованием только последовательных операторов;
• параллельный (процессный), когда описание поведения задано в виде параллельно вы- полняемых процессов;
• потоковый, когда описание задано в виде последовательности параллельных операторов языка.
К специфическому стилю описания можно отнести автоматный способ описания, когда функционирование устройства задано в форме описания набора состояний устройства, правил переходов и действий, выполняемых в определенных состояниях и на определенных переходах. Распространенным вариантом автоматной формы является описание в форме конечного автомата Мура или Мили.
Введение понятия стиля и наличие различных стилей отнюдь не означает, что какой-либо стиль позволяет описать функционирование определенной системы, а другой стиль нет. Каждый стиль характеризует систему с Определенной точки зрения, и события, происхо- дящие в ней (с точки зрения проектировщика), лучше всего отражаются при помощи выбран ного стиля. Вместе с тем необходимо отметить, что для САПР, синтезирующих структуру БИС ПЛ из VHDL-описания, варианты, синтезируемые различными стилями, описания, могут давать различные варианты реализации. Более того, синтезирующие компиляторы моiуг даже не поддерживать компиляции при определенных способах описания поведения системы.
Процессная форма описания благодаря списку инициализирующих сигналов и едино временности выполнения последовательных операторов в теле каждого процесса может наиболее точно описывать функционирование последовательно-параллельного взаимодей- ствия обрабатывающих устройств. Возможность последовательного оператора назначения сигнала (находящегося в теле процесса) использовать синтаксическую конструкцию АРТЕВ позволяет описывать (или задавать) взаимодействие процессов со сложным распределением во времени.
Потоковый стиль наиболее точно отражает процесс изменения потоков данных в системе от входа до выхода. Опираясь на свойства параллельного исполнения параллельных операторов языка и правила назначения значения сигналам, потоковый стиль позволяет описывать функционирование конвейерных структур. Наибольшее распространение, естественно, имеет смешанное описание проектов, в которых классические стили описания переплетаются в произвольных комбинациях.