Задача 11.2.4 - Чувашский государственный университет имени

advertisement
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«Чувашский государственный университет имени И.Н. Ульянова»
ПРОЕКТИРОВАНИЕ ЦИФРОВЫХ УСТРОЙСТВ НА ПЛИС
ФИРМЫ XILINX В СРЕДЕ WEBPACK ISE
Лабораторный практикум
Чебоксары
2013
УДК 621.382
ББК 32.973.26-018.1
Составители: Г.В. Малинин,
С.В.Абрамов
А.В. Серебрянников
Проектирование цифровых устройств на ПЛИС фирмы
Xilinx в среде WebPACK ISE / сост. Г.В. Малинин, С.В. Абрамов, А.В. Серебрянников. Чебоксары: Изд-во Чуваш. ун-та,
2013. 106 с.
Содержат необходимый справочный материал и задания для выполнения лабораторных работ по основам проектирования цифровых
устройств на ПЛИС фирмы Xilinx на языке VHDL.
Для студентов I и II курсов по направлениям обучения 210100.68 –
«Электроника и наноэлектроника», 220400.68 – «Управление в технических системах», изучающих дисциплины «Цифровые устройства на программируемых логических интегральных схемах», «Аппаратные и программные средства программируемых логических интегральных схем» .
Могут быть использованы при изучении аналогичных дисциплин по
другим направлениям подготовки.
Ответственный редактор канд. техн. наук, доцент Г.В. Малинин
Утверждено Учебно-методическим советом университета
1. Сведения о лабораторной установке
Предлагаемые методические указания ориентированы на
работу с лабораторной установкой по программированию
ПЛИС фирмы National Instruments. В состав лабораторной установки входят:
- настольная рабочая станция NI ELVIS II+;
- отладочная плата NI Digital Electronics FPGA Board;
- стандартный кабель USB тип А – мини B;
- источник питания 15 В постоянного тока.
Настольная рабочая станция NI ELVIS II+ - это образовательная платформа для учебного проектирования и создания
прототипов систем различного направления, реализованная на
базе среды графического программирования NI LabVIEW. Лабораторная станция работает под управлением персональным
компьютером с операционной средой Windows и включает в
себя 12 основных приборов: осциллограф на 100 МГц, цифровой мультиметр, генератор функций, настраиваемый источник
питания, анализатор динамических сигналов, анализатор
АЧХ/ФЧХ, двух и трех проводной анализатор тока и напряжения, генератор произвольных сигналов, цифровое устройство
записи/чтения и анализатор импеданса [1]. Открытая архитектура позволяет проводить и использовать макетные платы третьих
производителей. Лабораторная станция имеет возможность программироваться в графической среде программирования
LabVIEW, Multisim.
Отладочная плата NI Digital Electronics FPGA Board - это инструмент разработки электронных схем, построенный на основе
микросхемы ПЛИС XC3S500E Xilinx Spartan-3E. Помимо
ПЛИС, отладочная плата содержит движковые переключатели,
светодиоды, два семисегментных индикатора, нажимные кнопки, а также нажимную поворотную кнопку для выбора внешнего
синхросигнала и светодиоды для отображения выбранного режима работы, разъёмы Diglent Pmod для подключения внешних
устройств, интерфейс USB, предназначенный для программирования микросхемы ПЛИС, а также широкий инструментарий для
разработки электронных устройств.
3
1.1. Компоненты, сигналы и режимы работы
отладочной платы NI Digital Electronics FPGA Board
Режимы работы отладочной платы
Отладочная плата NI Digital Electronics FPGA Board может
работать в двух режимах.
Автономный режим (Stand-alone Mode).
Отладочная плата NI Digital Electronics FPGA Board может
быть использована в автономном режиме в качестве автономного
или независимого устройства. Отладочной плате требуется персональный компьютер для загрузки новой управляющей программы,
контроля за выполнением программы. Для установки и настройки
отладочной платы NI Digital Electronics FPGA Board в автономном
режиме необходимо выполнить следующие действия:
1. Подключить разъём USB тип A прилагаемого кабеля к
соответствующему гнезду персонального компьютера.
2. Подключить разъём USB тип мини B прилагаемого кабеля к соответствующему гнезду отладочной платы.
3. Подключить 15-ти вольтовый источник питания постоянного тока к разъёму питания отладочной платы, затем подключить источник питания к сети переменного тока.
4. Включить питание отладочной платы, переведя клавишу
управления питанием в положение «ON». Операционная система
Windows автоматически распознаёт вновь подключенные устройства при перезагрузке после подключения устройства. В некоторых операционных системах семейства Windows при первом подключении оборудования NI запускается мастер установки оборудования (Found New Hardware Wizard). В этом случае необходимо
выбирать по умолчанию пункт «Установка программного обеспечения автоматически (рекомендуется)». Нажмите «Да» или «Далее» для установки программного обеспечения устройства и порта USB. Зелёный светодиод LD-G (рис. 1.1) должен светиться,
указывая на правильную работу соединения.
Режим NI ELVIS
В режиме NI ELVIS отладочная плата NI Digital Electronics
FPGA Board может быть использована как дополнительная макетная плата к рабочей станции NI ELVIS II.
4
В части установки макетной платы необходимо выполнить
следующие действия:
1. Установить отладочную плату NI Digital Electronics FPGA
Board в качестве макетной платы.
2. Подключить один конец прилагаемого USB кабеля к USB
разъёму отладочной платы NI Digital Electronics FPGA Board,
второй разъём кабеля подключить к USB разъёму персонального компьютера.
3. Включить питание рабочей станции NI ELVIS II.
4. Включить питание отладочной платы NI Digital
Electronics FPGA Board, переведя соответствующий переключатель в положение «ON». Зелёный светодиод LD-G должен светиться, указывая на правильную работу соединения.
Компоненты отладочной платы
На рис. 1.1 показана верхняя сторона отладочной платы NI
Digital Electronics FPGA Board. На этом же рисунке показано
позиционное обозначение компонентов отладочной платы:
1. Разъём подключения источника питания;
2. Разъёмы общего назначения зоны макетирования;
3. Сигнальный разъём BB2 зоны макетирования;
4. Выключатель питания;
5. Сигнальный разъём BB3 зоны макетирования;
6. Кнопка сброса;
7. Семисегментные индикаторы;
8. Разъём USB;
9. Светодиод LD-G;
10. Светодиоды;
11. ПЛИС;
12. Переключатель SW 9;
13. Вращающийся нажимной переключатель;
14. Кнопки;
15. Движковые переключатели;
16. Разъёмы Digilent Pmod;
17. Сигнальный разъём BB1 зоны макетирования;
18. Сигнальный разъём BB4 зоны макетирования;
19. Разъём для подключения к NI ELVIS;
20. Сигнальный разъём BB5 зоны макетирования.
5
Рис. 1.1. Отладочная плата NI Digital Electronics FPGA Board
Описание сигналов отладочной платы
В табл. 1.1 приведено описание сигналов, выведенных на
разъёмы BB1, ВВ2 и ВВ3 зоны макетирования отладочной платы NI Digital Electronics FPGA Board. В подразделе Зона макетирования приведена более подробная информация о разъёмах
зоны макетирования.
В табл. 1.2 описаны сигналы, выведенные на разъёмы BB4,
BB5. Эти сигналы активны только при использовании отладочной платы NI Digital Electronics FPGA Board в режиме NI
ELVIS.
6
Таблица 1.1
Сигналы отладочной платы NI Digital Electronics FPGA Board
Разъём
зоны
макетирования
Наименование сигнала
Опорный
уровень
1
DAC <0..3>
2
3
GROUND Выводы цифро-аналогового
преобразователя
4
ВВ1
ADC <0..1>
GROUND Выводы аналого-цифрового
преобразователя
ВВ1
Описание
BTN <0..3>
-
Двунаправленные выводы, соединенные с четырьмя кнопками. Кнопки также соединены с
выводами ПЛИС
ВВ1
SW <0..7>
-
Двунаправленные выводы соединенные с восемью движковыми переключателями. Движковые переключатели также
соединены с выводами ПЛИС
ВВ1
RotCLK
GROUND Внешний тактирующий сигнал с
частотой, задаваемой пользователем. Выходная линия источника синхросигнала не подключена к ПЛИС
ВВ1
GPIO <24..31> GROUND Линии ввода/вывода общего
назначения микросхемы ПЛИС
ВВ1
GPIO <0..23>
GROUND Линии ввода/вывода общего
назначения микросхемы ПЛИС
ВВ2
+5 V
GROUND Подключение источника питания + 5 В постоянного тока
ВВ2
СОМ <0.. 1>
-
Лини управления семисегментными индикаторами - линии
разрешения/запрета работы
соответствующего индикатора
(разрешение - лог. «0»). Обе
линии подключены к ПЛИС
7
ВВЗ
1
SEGA <0..1>
SEGB <0..1>
SEGC <0..1>
SEGD <0..1>
SEGE <0..1>
SEGF <0..1>
SEGG <0..1>
2
-
3
Сигналы управления семисегментными индикаторами. Каждый из этих сигналов управляет
выделенным светодиодом в
семисемисегментном индикаторе. Сигналы, обозначенные как
SEGxO, управляют семисегментным индикатором 0, а сигналы, обозначенные как SEGxl,
управляют семисегментным
индикатором 1. Все линии
управления сегментами подключены к ПЛИС
4
ВВЗ
LD <0..7>
-
Двунаправленные линии управления восемью светодиодами.
Светодиоды подключены к
ПЛИС
BB3
+15 V
GROUND Источник питания +15 В постоянного тока
BB3
+15 V
GROUND Источник питания -15 В постоянного тока
BB3
GROUND
-
Точка заземления источника
постоянного напряжения
BB2, BB3
Таблица 1.2
Сигналы в режиме NI ELVIS
Разъём
зоны
макетирования
Наименование сигнала
Опорный
уровень
1
BASE
2
-
3
Основной DMM сигнал
4
ВВ4
DUT+
-
Положительная линия сигнала
тестирования устройства (DMM)
ВВ4
DUT-
-
Отрицательная линия сигнала
тестирования устройства (DMM)
ВВ4
Описание
8
1
2
АО <0.. 1>
AIGND
FGEN
3
4
Аналоговые входные сигналы
ВВ4
-
Функциональный генератор
сигналов
ВВ4
SYNC
-
Функциональный генератор
синхросигналов
ВВ4
AM
-
Функциональный генератор AM
сигналов
ВВ4
FM
-
Функциональный генератор ЧМ
сигналов
ВВ4
+ 15 V
GROUND Постоянное напряжение +15 В
ВВ4
-15 V
GROUND Постоянное напряжение - 15 В
ВВ4
Заземление источников постоянного напряжения
ВВ4
GROUND
+5V
-
GROUND Постоянное напряжение +5 В
ВВ4
AI <0.5> +
AIGND
Положительные аналоговые
входы - эти контакты соединяются с положительными входами соответствующих канальных
усилителей
ВВ4
AI <0.5>
AIGND
Отрицательные аналоговые входы
- эти контакты соединяются с отрицательными входами соответствующих канальных усилителей
ВВ4
AI SENSE
-
Входной аналоговый опорный
сигнал - в режиме NRSE опорным уровнем для аналоговых
входов является сигнал
AISENSE
ВВ4
AIGND
-
Аналоговая земля - опорный
уровень для сигналов аналоговых входов и выходов
SUPPLY+
GROUND Линия подключения к положительному выходу источника
питания с изменяемым выходным напряжением
9
ВВ5
1
GROUND
2
-
3
Общая точка выхода источника
питания с изменяемым выходным напряжением
4
ВВ5
GROUND Линия подключения к отрицательному выходу источника
питания с изменяемым выходным напряжением
ВВ5
DIO <0.. 15>
GROUND Двунаправленные цифровые
линии ввода/вывода
ВВ5
PFI <3..4>
PFI <8..9>
PFI <12..13>
GROUND Линии с программируемым
функциональным назначением при назначении этих выводов
входами они могут быть использованы для подачи внешнего
сигнала на таймеры/счётчики,
при назначении этих выводов
выходами они могут быть использованы для вывода выходных сигналов таймеров / счётчиков на каждый вывод PFI
ВВ5
SUPPLY-
GROUND
-
Общая точка - общая точка для
сигналов
ВВ5
Движковые переключатели
Отладочная плата NI Digital Electronics FPGA Board имеет
восемь движковых переключателей, обозначенных SW0-SW7 и
показанных на рис. 1.1. На рис. 1.2 показана схема включения
движковых переключателей в отладочной плате.
Длительность дребезга контактов составляет 2 нс, в отладочной плате не имеется схем защиты от дребезга контактов.
Выходное сопротивление движковых переключателей – 2 кОм.
При нахождении движкового переключателя в верхнем положении (положение «ON») переключатель подключает соответствующую линию к линии с напряжением 3,3 В («лог. 1»). При
нахождении движкового переключателя в нижнем положении
10
(положение «OFF») переключатель подключает соответствующую линию к общей точке (земле) – «лог.0».
Рис. 1.2. Схема включения движковых переключателей
Линии SW <0..7>, на которых выставлено напряжение
«лог.1» или «лог. 0» с помощью движковых переключателей,
выведены на разъём BB1 зоны макетирования. Информация о
сигнальных линиях, выведенных на разъёмы зоны макетирования, приведена в подразделе Зона макетирования. Также движковые переключатели напрямую подключены к соответствующим выводам ПЛИС. В подразделе Параметры UCF файлов
раздела 1.3 Программирование с помощью программного обеспечения Xilinx iMPACT приведены рекомендации по доступу к
выходным сигналам ПЛИС с помощью программного обеспечения iMPACT.
Кнопки
Отладочная плата NI Digital Electronics FPGA Board имеет
четыре кнопки BTN0 – BTN3 с моментальным установлением
контакта, показанные на рис. 1.1. На рис. 1.3 показана схема
включения кнопок в отладочной плате.
Нажатие на кнопку соединяет общую точку схемы со входом логического инвертора, поэтому на выходе логического
инвертора, включённого в линию, соответствующей той или
иной кнопке, появляется напряжение уровня «лог.1». Когда
кнопка не нажата, на вход каждого из инверторов подаётся
напряжение уровня «лог.1» с источника питания, что вызывает
11
появление на выходе логического инвертора напряжения уровня
«лог.0». Схема защиты от дребезга контактов состоит из резистора и конденсатора, включенных в линию каждой кнопки.
Рис. 1.3. Схема включения кнопок
Линии BTN <0..3>, на которых выставлено напряжение
«лог.1» или «лог. 0» с помощью соответствующих кнопок, выведены на разъём BB1 зоны макетирования. Также кнопки
напрямую подключены к соответствующим выводам ПЛИС.
Светодиоды
Отладочная плата NI Digital Electronics FPGA Board имеет
восемь дискретных светодиодов LD0-LD7 с планарными выводами, показанных на рис. 1.1. На рис. 1.4 показана схема включения светодиодов на отладочной плате.
К катоду каждого светодиода подключен токозадающий резистор номиналом 390 Ом, к катоду каждого светодиода подключен КМОП-драйвер (рис. 1.4). Линии управления каждым из
светодиодов выведены на разъём ВВ3 зоны макетирования. Для
того, чтобы вызвать свечение требуемого светодиода, необходимо подать сигнал «лог.1» (3,3 В или 5 В) на линию управления выбранного Вами светодиода. В подразделе Параметры
UCF файлов раздела 1.3 Программирование с помощью программного обеспечения Xilinx iMPACT приведены рекомендации по доступу к выходным сигналам ПЛИС с помощью программного обеспечения iMPACT.
12
Рис. 1.4. Схема включения светодиодов
Семисегментный индикатор с двумя знакоместами
Отладочная плата NI Digital Electronics FPGA Board имеет
семисегментный индикатор DISP1 с двумя знакоместами, включенный по схеме с общим катодом. На рис. 1.1 показано расположение индикатора на плате. На рис. 1.5 показана схема включения индикатора на отладочной плате.
Каждая цифра индикатора состоит из семи сегментов, в
каждый из которых встроен светодиод. Светодиоды сегментов,
составляющие нулевую цифру сегмента, на рис. 1.5 обозначены
как SEGx0, а первую цифру индикатора – SEGx1.
13
Рис. 1.5. Схема включения индикатора
Схема включения индикатора позволяет вызвать свечение
каждого светодиода независимо, что позволяет расширить количество символов, которые можно отобразить с помощью индикатора. Для того чтобы вызвать свечение отдельного светодиода, на соответствующую линию управления нужно подать
сигнал «лог.1» (3,3 В или 5 В). Линии управления COM0 и
COM1 предназначены для выдачи сигнала разрешения/запрещения работы соответствующей цифры индикатора,
что позволяет использовать индикатор в мультиплексном режиме. Информация о сигнальных линиях, выведенных на разъёмы
зоны макетирования, приведена в разделе Зона макетирования.
Линии управления светодиодами сегментов и линии управления
COM0 и COM1 подсоединены к ПЛИС. В подразделе Параметры UCF файлов раздела 1.3 Программирование с помощью программного обеспечения Xilinx iMPACT приведены рекомендации по доступу к выходным сигналам ПЛИС с помощью программного обеспечения iMPACT.
14
Двунаправленные линии общего назначения
Отладочная плата NI Digital Electronics FPGA Board имеет
32 двунаправленные линии общего назначения GPIO0-GPIO31.
На рис. 1.7 показана схема подключения этих линий.
Рис. 1.7. Схема подключения двунаправленных линий общего назначения
Каждая двунаправленная линия общего назначения соединена с ПЛИС через токозадающий резистор номиналом 200 Ом.
Двунаправленные линии общего назначения выведены на разъёмы BB2 и BB3 зоны макетирования. Информация о сигнальных линиях, выведенных на разъёмы зоны макетирования, приведена в подразделе Зона макетирования.
Двунаправленные линии общего назначения могут быть индивидуально сконфигурированы программным способом на
ввод или вывод сигналов. Вводами/выводами сигналов для описываемых линий являются КМОП устройства, поэтому уровнем
«лог.1» будет напряжение +3,3 В, допустима подача сигналов с
уровнем «лог.1» + 5 В.
Вращающаяся нажимная кнопка и светодиоды
Отладочная плата NI Digital Electronics FPGA Board имеет
вращающуюся нажимную кнопку ROT1, используемую для задания с помощью микроконтроллера частотного диапазона и
значения частоты выходного сигнала генератора синхросигнала
внутри выбранного диапазона. Нажатие на вращающуюся
нажимную кнопку выбирает частотный диапазон, указываемый
соответствующим светодиодом. На рис. 1.1 показаны вращающаяся нажимная кнопка и светодиоды. Свечение соответству-
15
ющего светодиода указывает на выбор одного из следующих
частотных диапазонов:
LD-LOW – при выборе этого диапазона генератор синхросигналов генерирует сигнал в диапазоне 1 Гц- 100 Гц, конкретное значение задаётся вращением кнопки;
LD-MID – при выборе этого диапазона тактовый генератор
генерирует сигнал в диапазоне 100 Гц- 100 кГц, конкретное значение задаётся вращением кнопки;
LD-HIGH – при выборе этого диапазона генератор синхросигналов генерирует сигнал в диапазоне 100 кГц- 5 MГц, конкретное значение задаётся вращением кнопки.
Вывод генератора синхросигналов соединен с линией
RotClk, выведённой на разъём BB1 зоны макетирования. Информация о сигнальных линиях, выведенных на разъёмы зоны
макетирования, приведена в подразделе Зона макетирования.
Выход генератора синхросигналов не подсоединён к ПЛИС.
Тактовый генератор с частотой выходного сигнала 50 МГц
Отладочная плата NI Digital Electronics FPGA Board имеет
встроенный тактовый генератор с частотой выходного сигнала.
Выход этого генератора присоединен к выводу B8 ПЛИС. В
подразделе Параметры UCF файлов раздела 1.3 Программирование с помощью программного обеспечения Xilinx iMPACT
приведены рекомендации по доступу к выходным сигналам
ПЛИС с помощью программного обеспечения iMPACT.
Выбор способа загрузки ПЛИС
Способ загрузки ПЛИС выбирается с помощью переключателя SW9, показанного на рис. 1.1. Режимы загрузки ПЛИС
описаны в табл. 1.3.
Отладочная плата NI Digital Electronics FPGA Board поддерживает конфигурацию микросхемы ПЛИС через интерфейс
USB-JTAG. В этом случае переключатель SW9 должен быть
установлен в соответствующее положение. В микросхему загружается конфигурация по умолчанию, заменяемая затем конфигурацией, загружаемой через интерфейс USB-JTAG. Загру-
16
женная конфигурация сохраняется до выключения питания,
сброса микросхемы ПЛИС или загрузки новой конфигурации.
Таблица 1.3
Способы загрузки ПЛИС
Положение
переключателя
Способ загрузки ПЛИС
Загрузка из ПЗУ (по умолчанию) – конфигурация ПЛИС программой, записанной во
встроенное в микросхему ЭСППЗУ (флэшпамять)
Загрузка через JTAG-интерфейс – из встроенного ЭСППЗУ (флэш-память) загрузки не
происходит, микросхема ожидает загрузки
конфигурации через интерфейс USB-JTAG
Зоны макетирования
Отладочная плата NI Digital Electronics FPGA Board содержит две зоны макетирования:

сигнальная зона макетирования;

зона макетирования общего назначения.
На рис. 1.1 показано расположение этих зон.
Сигнальная зона макетирования
Сигнальная зона макетирования включает в себя разъёмы
BB1, BB2, BB3, BB4 зоны макетирования. На рис. 1.1 показано
расположение этих разъёмов. В табл. 1.1 и табл. 1.2 приведено
описание сигналов, выведенных на эти разъёмы.
 BB1 – зона макетирования для подключения к ЦАП,
АЦП, кнопкам, движковым переключателям, внешнему синхросигналу и линиям общего назначения ПЛИС;
 BB2 - зона макетирования для подключения к линиям
общего назначения ПЛИС и источникам питания;
 BB3 - зона макетирования для управления семисегментным индикатором на два знакоместа, светодиодами, подключения к источникам питания;
 BB4 - зона макетирования для подключения к сигналам
NI ELVIS, включая аналоговые входные сигналы, аналоговые
17
выходные сигналы, функциональные генераторы, источники
питания, цифровые входные/выходные сигналы;
 ВВ5 – зона макетирования для подключения к сигналам
NI ELVIS, включая регулируемые источники питания, цифровые входные/выходные сигналы, выходные сигналы счётчиков,
общие точки сигналов.
Зона макетирования общего назначения
Зона макетирования общего назначения состоит из двух
разъёмов. Эти разъёмы не подключены к каким-либо электронным компонентам платы. На рис. 1.1 показано расположение
разъёмов зоны макетирования общего назначения. Разъёмы BB4 и
ВВ5 сигнальной зоны макетирования могут быть использованы в
качестве разъёмов общего назначения при работе отладочной
платы NI Digital Electronics FPGA Board в автономном режиме.
Разъёмы Digilent Pmod
Для расширения функциональных возможностей отладочной
платы NI Digital Electronics FPGA Board могут быть использованы модули Digilent Pmod, для подключения которых имеется
шесть разъёмов Digilent Pmod. Эти разъёмы показаны на рис. 1.1.
К отладочной плате NI Digital Electronics FPGA Board можно подключить до шести одинарных (16) или двойных (26)
модулей Digilent Pmod.
Разъём для подключения к NI ELVIS
Отладочная плата NI Digital Electronics FPGA Board имеет
PCI-подобный соединитель, показанный на рис. 1.1. Этот соединитель подключается к рабочей станции NI ELVIS II при
работе отладочной платы NI Digital Electronics FPGA Board в
режиме NI ELVIS.
1.2. Программирование с помощью программного
обеспечения Xilinx iMPACT
В состав программного обеспечения лабораторной установки входит пакет Xilinx iMPACT, доступный для скачивания по
адресу www.xilinx.com/ise. После установки программного
18
обеспечения и настройки отладочной платы для работы в автономном режиме (см. раздел 1.2) можно приступить к программированию отладочной платы.
Параметры в UCF файлах
В этом подразделе приведены параметры UCF (.ucf) файлов
(файл временных и топологических ограничений – User Constraints File) присвоенные различным аппаратным средствам
отладочной платы NI Digital Electronics FPGA Board.
Движковые переключатели
Здесь перечислены параметры UCF файла, присвоенные
движковым переключателям SW0-SW7. В приведённых ниже
параметрах Swx (x = 0…7) относится к цепи соответствующего
движкового переключателя, LOC указывает расположение линии ПЛИС, IOSTANDARD указывает используемый стандарт
линий ввода/вывода.
Net "SW0"
Net "SW1"
Net "SW2"
Net "SW3"
Net "SW4"
Net "SW5"
Net "SW6"
Net "SW7"
LOC="J11"
LOC="J12"
LOC="H16"
LOC="H13"
LOC="G12"
LOC="E14"
LOC="D16"
LOC="B16"
|
|
|
|
|
|
|
|
IOSTANDARD = LVCMOS33;
IOSTANDARD = LVCMOS33;
IOSTANDARD = LVCMOS33;
IOSTANDARD = LVCMOS33;
IOSTANDARD = LVCMOS33;
IOSTANDARD = LVCMOS33;
IOSTANDARD = LVCMOS33;
IOSTANDARD = LVCMOS33.
Кнопки
Здесь перечислены параметры UCF файла, присвоенные
кнопкам BTN0-BTN7. В приведённых ниже параметрах BTNx
(x = 0…3) относится к цепи соответствующей кнопки, LOC указывает расположение линии ПЛИС, IOSTANDARD указывает
используемый стандарт линий ввода/вывода.
Net "BTN0"
Net "BTN1"
Net "BTN2"
Net "BTN3"
LOC="C13"
LOC="D12"
LOC="C12"
LOC="C10"
|
|
|
|
IOSTANDARD = LVCMOS33;
IOSTANDARD = LVCMOS33;
IOSTANDARD = LVCMOS33;
IOSTANDARD = LVCMOS33.
19
Светодиоды
В данном подпункте перечислены параметры UCF файла,
присвоенные светодиодам LED0-LED7. В приведённых ниже
параметрах LEDx (x = 0…6) относится к цепи соответствующего светодиода, LOC указывает расположение линии ПЛИС,
IOSTANDARD указывает используемый стандарт линий ввода/вывода, SLEW указывает скорость нарастания выходного
напряжения, DRIVE указывает выходной ток источника тока,
встроенного в ПЛИС, в миллиамперах.
Net "LED0" LOC="C11" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8;
Net "LED1" LOC="D11" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8;
Net "LED2" LOC="B11" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8;
Net "LED3" LOC="A12" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8;
Net "LED4" LOC="A13" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8;
Net "LED5" LOC="B13" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8;
Net "LED6" LOC="A14" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8;
Net "LED7" LOC="B14" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8;
Семисегментные индикаторы
Здесь перечислены параметры UCF файла, присвоенные семисегментным индикаторам. В приведённых ниже параметрах
SEGxx относится к цепи соответствующего сегмента индикатора, COMx (x = 0, 1) относится к относится к цепи анода соответствующей цифры индикатора, LOC указывает расположение
линии ПЛИС, IOSTANDARD указывает используемый стандарт
линий ввода/вывода, SLEW указывает скорость нарастания выходного напряжения, DRIVE указывает выходной ток источника
тока, встроенного в ПЛИС в миллиамперах.
Net "SEGA0" LOC="E3" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8;
Net "SEGB0" LOC="E1" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8;
Net "SEGC0" LOC="G5" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8;
Net "SEGD0" LOC="D1" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8;
Net "SEGE0" LOC="E4" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8;
Net "SEGF0" LOC="C1" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8;
Net "SEGG0" LOC="C2" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8;
Net "COM0" LOC="B2" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8;
Net "SEGA1" LOC="H6" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8;
Net "SEGB1" LOC="K2" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8;
Net "SEGC1" LOC="H3" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8;
20
Net "SEGD1" LOC="K1" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8;
Net "SEGE1" LOC="G4" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8;
Net "SEGF1" LOC="J2" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8;
Net "SEGG1" LOC="G3" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8;
Net "COM1" LOC="G2" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8;
Тактовый генератор с частотой выходного сигнала 50 МГц
Параметр UCF файла, описывающий вывод микросхемы
ПЛИС, предназначенный для ввода в неё тактового синхросигнала, выглядит следующим образом:
Net "sys_clk_pin" LOC="B8";
Net "sys_clk_pin" IOSTANDARD = LVCMOS33;
## System level constraints
Net "sys_clk_pin" TNM_NET = sys_clk_pin;
TIMESPEC TS_sys_clk_pin = PERIOD "sys_clk_pin" 20000 ps.
Программирование ППЗУ
Для загрузки соответствующим образом сформатированного
PROM файла в ЭСППЗУ микросхемы ПЛИС через встроенный в
отладочную плату интерфейс USB-JTAG, подключите к ней USB
кабель, включите питание платы, переведя выключатель питания
в положение ON, и выполните следующие действия:
1) Переведите движковый переключатель SW9 отладочной
платы NI Digital Electronics FPGA Board в положение JTAG.
2) Запустите программу WebPACK ISE.
3) В меню этой программы выберите следующее: File >
Open Project. Затем, передвигаясь по меню проводника, укажите
расположение файла PROM.ise. Нажите на кнопку ОК.
4) На панели Processes окна проекта раскройте иерархический список Configure Target Device.
5) Двойным щелчком раскройте вкладку Manage Configuration Project (iMPACT). На панели Transcript окна проекта будет
отображаться течение процесса конфигурации.
Откроется окно Welcome to iMPACT. Если стартовое окно
Welcome to iMPACT не открывается, можно запустить программный модуль iMPACT, выполнив следующие действия:
Start > Programs > Xilinx ISE Design Suite > ISE >
Accessories > iMPACT.
21
6) Выберите Configure devices using Boundary-Scan (JTAG)
and Automatically connect to a cable and identify Boundary-Scan
chain (этот пункт должен быть выбраy по умолчанию)/ Нажмите
на кнопку Finish.Откроется окно Assign New Configuration File.
7) В окне Assign New Configuration File выберите конфигурационный файл main.bit. Нажмите Open. Имеется возможность
выбрать другие конфигурационные файлы. Если в дополнительных конфигурациях нет необходимости, нажмите Cancel.
Затем раскроется окно Device programming interface.
8) В окне Device programming interface выберите Device 1
(FPGA, xc3s500e) для программирования устройства 1 (Devce 1).
На отладочной плате Digital Electronics FPGA Board установлена микросхема ПЛИС Xilinx XC3S500E Spartan-3E
9) Нажмите на кнопку ОК. В окне проекта раскроется панель Boundary Scan.
10) Нажмите правой клавишей мыши, наведя её, на иконку
xcf04s file ?, в выпадающем меню выберите пункт Assign New
Configuration File для того, чтобы ассоциировать PROM file
(.mcs) с сЭСППЗУ XCF04S в JTAG цепочке. Нажмите Open.
11) Раскройте нажатием правой клавиши мыши иконку
myplatformflash.mcs и в выпадающем меню выберите пункт
Program.
12) В окне Device Programming Properties выберите Device 2
(PROM, xcf04s), тип программируемого ППЗУ.
13) Выберите следующие опции в окне Device Programming
Properties:
Verify. Выбор этой опции позволит программному обеспечению проверить правильность программирования ППЗУ и его
соответствие загруженному битовому потоку. Настоятельно
советуется использовать эту опцию, несмотря на увеличение
длительности программирования при её использовании.
Erase Before Programming. Выбор этой опции позволит программному обеспечению стереть ППЗУ перед программированием, что позволит пользователю быть уверенным, что в ППЗУ
не хранится остатков устаревших конфигурационных данных.
Настоятельно советуется использовать эту опцию, несмотря на
22
увеличение длительности программирования при её использовании.
Load FPGA. Выбор этой опции принуждает ПЛИС к реконфигурации после программирования ЭСППЗУ.
Нажмите ОК. Раскроется окно Progress Dialog, в котором
будет отображаться течение программирования ППЗУ. При
успешном завершении программирования ППЗУ, на панели
Boundary Scan отобразится сообщение Program Succeeded.
14) Выберите File > Close Project и сохраните все изменения.
Для проверки успешности загрузки выполните следующие
действия:
1) Убедитесь, что движковый переключатель SW9 находится в положении ROM.
2) Перезагрузите отладочную плату NI Digital Electronics
FPGA Board нажатием кнопки «Reset».
3) Убедитесь, что ПЛИС выполняет программу, загруженную в её ЭСППЗУ.
2. Основы работы с САПР WebPACK ISE
Пакет WebPACK ISE представляет собой систему сквозного
проектирования, которая обеспечивает полный цикл разработки
ЦУ на основе ПЛИС, включающий этапы создания исходных
описаний проекта с помощью аппаратных языков VHDL, Verilog, ABEL HDL, синтеза, моделирования, размещения и трассировки, а также программирования кристалла [2, 3].
Работа с пакетом WebPACK ISE начинается с запуска
управляющей оболочки – Навигатора проекта (Project Navigator). Навигатор проекта предоставляет разработчику удобный
интерфейс для работы с проектом и управления всеми процессами в ходе проектирования, включая программирования
ПЛИС. Запуск всех необходимых программных модулей пакета
осуществляется непосредственно в среде Навигатора проекта с
помощью основного окна Навигатора.
23
Программные модули (единицы) WebPACK ISE ориентированы на применение языков HDL, однако в случае смешанного
способа описания проектируемого устройства целесообразно
использовать схемотехнический редактор (Engineering Schematic Capture – ECS). При смешанном способе проектирования
функциональные блоки устройства описываются на одном из
языков HDL, а для верхнего уровня иерархии проекта, где производится их объединение, используется схемотехническое
форма описания. Учитывая, что САПР WebPACK ISE укомплектована обширными библиотеками компонентов семейств ПЛИС
Xilinx, описание проектируемого ЦУ можно выполнить в виде
схем, разработанных в среде редактора ECS. Следует отметить,
что, несмотря на простоту и наглядность, графический редактор
имеет один недостаток – сложные проекты получаются громоздкими, и это затрудняет понимание схемы. Поэтому при создании проектов ЦУ на основе ПЛИС рекомендуется использовать HDL-описание, например VHDL-описание.
Модуль программирования iMPACT, о котором упоминалось
в разделе 1.2, предназначен для конфигурирования ПЛИС семейств CPLD и FPGA в различных режимах считывания конфигурационных данных из кристаллов и организации тестирования
разработанного устройства с использованием JTAG-интерфейса.
Программа iMPACT активизируется непосредственно в среде
управляющей оболочки WebPACK ISE – Навигатора проекта.
Система WebPACK ISE комплектуется свободно распространяемой версией программы ModelSim XEII Starter, исходными данными для которой является поведенческая форма описания проекта. Для его составления в САПР используется графическая утилита TestBench, где разработчик указателем типа
мышь «рисует» временные диаграммы, из которых система генерирует поведенческое VHDL-описание.
При запуске выбранного способа моделирования САПР автоматически вызывает ModelSim и в качестве исходных векторов для моделирования подключает создание в TestBench тестовых векторов.
После окончательной отладки VHDL-проекта схемы
устройства переходят к ее физической реализации на ПЛИС.
24
Для этого необходимо произвести операцию имплементации,
состоящую из двух основных этапов: размещение элементов на
ПЛИС и трассировка межсоединений с учетом наложенных
раннее временных и физических ограничений. Создание таких
ограничений происходит под управлением специализированных
утилит. Например, для назначения сигналов на необходимые
выводы используется специальная утилита Xilinx PACE, для
«ручного» размещения требуемых элементов схемы применяется утилита Floorplanner.
2.1. Управляющая оболочка пакета WEBPACK ISE –
Навигатор проекта
Управляющая оболочка пакета WebPACK ISE Навигатор
проекта (Project Navigator) предоставляет пользователю удобный интерфейс для работы с проектом и управления всеми процессами проектирования и программирования ПЛИС. Запуск
всех необходимых программных модулей пакета осуществляется непосредственно в среде Навигатора проекта. Основное окно Навигатора проекта показано на рис. 2.1.
Пользовательский интерфейс пакета WebPACK ISE
В окне исходных модулей (файлов) проекта отображается
иерархическая структура, состоящая из модулей (файлов), в которых содержится описание проектируемого устройства в графической или текстовой форме, а также описание тестовых воздействий, используемых в процессе моделирования. Каждый
тип модуля имеет соответствующее графическое обозначение –
пиктограмму.
Окно процессов показывает маршрут обработки выделенного исходного модуля в процессе проектирования устройства. В
данном окне подробно отображаются все этапы процесса разработки и программирования ПЛИС, делая последний «прозрачным» для пользователя САПР. Последовательность и содержание этапов определяются типом исходного модуля и семейством
ПЛИС. Навигатор проекта автоматически показывает в окне
процессов структуру процесса проектирования, соответствую25
щую выбранному семейству ПЛИС, исключая тем самым возможные ошибки в последовательности действий разработчика.
В этом же окне указывается информация о дополнительных инструментах, которые могут быть использованы на каждом этапе.
Рис. 2.1. Окно Навигатора проекта
Окно консольных сообщений предназначено для вывода информации программных модулей пакета, работающих в консольном режиме. Ряд программных модулей пакета WebPACK
ISE, как, например, программы трансляции, синтеза, автоматической трассировки, являются консольными приложениями, т.е.
не создают собственных окон. Чтобы информация о ходе выполнения этих программ была доступна разработчику непосредственно в процессе работы с проектом, она отображается в окне
консольных сообщений Навигатора проекта. Окно интегрированного текстового редактора становится активным, если для
проектируемого устройства или используемых библиотек выбран способ описания на языке HDL.
Каждое окно может быть изменено либо перемещено в пределах основного окна навигатора проекта.
Заданную по умолчанию схему размещения можно восстанавливать, выбрав View > Restore Default Layout.
26
Главное меню управляющей оболочки пакета обеспечивает
доступ ко всем командам, необходимым для работы с проектом.
Каждый пункт главного меню открывает всплывающее меню, в
котором находится соответствующая группа команд.
Пункт File содержит команды создания, открытия, сохранения и закрытия проектов и файлов. Кроме того, в эту группу
включены команды печати и завершения работы.
Пункт Edit объединяет команды работы со встроенным редактором HDL-кода и изменения параметров конфигурации
Навигатора проекта.
В пункте View сгруппированы команды, определяющие вид
окна Навигатора проекта. Строки этого меню указывают, какие
элементы окна будут выведены на экран, а какие – скрыты.
Пункт Project содержит команды работы с проектом, которые позволяют включать в проект модули исходных описаний,
архивировать файлы проекта, использовать механизм «моментальных снимков», устанавливать параметры проекта по образцу (аналогичные параметрам другого проекта), удалять полученные результаты проектирования.
В пункте Source находятся команды, необходимые для выполнения операций с модулями исходных описаний. Пункты
этого меню позволяют открывать, закрывать, переименовывать,
удалять и помещать в библиотеку исходные модули проекта.
Кроме того, здесь же расположена команда установки параметров проекта.
Пункт Process предоставляет команды управления процессами разработки. Здесь находятся команды активизации процедур, просмотра отчетов об их выполнении и установки параметров процессов.
Пункт Window содержит команды работы с окнами текстового HDL редактора hdl-кода. Расположенные здесь команды
позволяют создавать необходимое количество рабочих окон и
устанавливать их конфигурацию.
Пункт Help основного меню предоставляет справочную информацию о программах пакета и открывает прямой доступ к
ресурсам web-сайта xilinx.com, если используемый компьютер
имеет выход в Internet. Следует обратить внимание на то, что не
27
все команды доступны в тот или иной момент работы с программой. Заблокированные команды обозначаются серым цветом.
Навигатор проекта автоматически определяет область доступности каждой команды, что позволяет исключить неправильное ее использование. Такой механизм, например, позволяет избежать выполнения недопустимых операций над исходными модулями различных типов.
2.2. Схемотехнический редактор пакета WebPACK ISE (ECS)
Схемотехнический редактор ECS предназначен для создания модулей исходного описания проекта в форме принципиальных схем, а также для формирования условных графических
образов (УГО) компонентов и функциональных блоков проектируемого цифрового устройства.
Отличительными особенностями редактора ECS являются:
 возможность одновременного открытия нескольких рабочих окон для создания и редактирования схем и символов;
 использование единой управляющей графической оболочки для создания и редактирования схем и символов;
 удобный механизм создания многостраничных схем;
 эффективные средства разработки многоуровневых иерархических структур;
 двухступенчатый контроль электрических соединений и
целостности схемы;
 возможность внесения дополнительной информации, необходимой в процессе проектирования устройства, в форме атрибутов;
 «мастер» автоматического формирования УГО функциональных блоков и компонентов схем;
 возможность размещения на страницах схемы графических и текстовых элементов оформления.
При создании схем в среде редактора ECS используются
следующие элементы:
 условные графические образы компонентов из библиотек
редактора или созданные пользователем;
28
 элементы соединений (проводники и шины);
 маркеры цепей, предназначенных для подключения
«внешних» элементов и контактов ПЛИС;
 атрибуты (параметры компонентов, цепей и контактов);
 текстовая информация;
 декоративные графические элементы.
Два последних типа элементов не являются обязательными.
Они не оказывают влияния на процесс проектирования и используются лишь для представления схем (документации) в соответствии с предъявляемыми требованиями.
Пользовательский интерфейс схемотехнического редактора ECS
Запуск схемотехнического редактора ECS производится автоматически из управляющей оболочки – Навигатора проекта при выборе команд создания или редактирования модуля схемотехнического описания проекта. При их успешном выполнении
на экране монитора отображается основное окно программы
ECS в режиме редактирования схем, структура которого показана на рис. 2.2.
Основное окно редактора ECS в режиме создания и модификации символов имеет структуру, аналогичную структуре
окна Навигатора проектов, и отличается только составом меню
команд, оперативной и инструментальной панелей.
Структура основного окна схемотехнического редактора
ECS включает следующие элементы:
 заголовок окна;
 главное меню;
 оперативную панель управления;
 панель инструментов редактора;
 область расположения рабочих окон;
 панель библиотек символов и дополнительных параметров;
 строку состояния.
Оперативная панель управления и панель инструментов редактора могут быть выключены в текущей конфигурации. Эти
элементы пользовательского интерфейса ускоряют процесс создания и редактирования схем и символов, поэтому рекоменду29
ется установить режим отображения этих панелей, используя
команды пункта View основного меню редактора ECS.
Рис. 2.2. Окно схемотехнического редактора ECS
В заголовке окна схемотехнического редактора ECS отображается название программы (ECS), имя редактируемого файла схемы или символа.
Основное меню схемотехнического редактора ECS предоставляет доступ к группам команд, используемых для создания
и модификации схем и символов. Каждый пункт главного меню
открывает всплывающее меню, в котором находится соответствующая группа команд.
Пункт File содержит команды создания, открытия, сохранения и закрытия файлов схемотехнического описания проектируемого устройства или его функциональных блоков. Кроме того,
в эту группу включены команды управления печатью, а также
завершения работы со схемотехническим редактором.
30
Пункт Edit объединяет стандартные команды редактирования схем, установки и просмотра атрибутов, выбора объектов
схемы для последующих операций, поиска на чертеже схемы
символов и цепей. В этой же группе находится команда включения режима редактирования выбранного УГО, используемого
в схеме, а также команды переименования шин и цепей. Кроме
того, пункт Edit включает в себя команду контроля и установки
параметров конфигурации схемотехнического редактора ECS.
В пункте View сгруппированы команды, управляющие
изображением в рабочей области окна. Здесь же находятся команды включения и выключения панелей управления: оперативной, инструментальной и дополнительной.
Пункт Add содержит команды, используемые для ввода
всех необходимых элементов схемы.
В пункте Tools находится команда запуска мастера создания символа для представления функционального блока проектируемого устройства, а также команда вывода информации об
элементах схемы. Здесь же содержатся команды контроля целостности и наличия ошибок соединений схемы и установки
маркеров интерфейсных цепей модуля.
Пункт Window содержит стандартные команды управления
рабочими окнами схемотехнического редактора ECS: создания,
закрытия, переключения и установки их взаимного расположения.
Пункт Help основного меню открывает доступ к справочной системе схемотехнического редактора ECS.
Оперативная панель содержит кнопки быстрого доступа,
которые дублируют наиболее часто используемые команды
управления схемотехнического редактора ECS. Фактически
оперативная панель состоит из четырех самостоятельных панелей, каждая из которых включает в себя соответствующую
группу кнопок.
В панели инструментов схемотехнического редактора сгруппированы кнопки быстрого доступа. Некоторые кнопки панели
инструментов являются недоступными и отображаются серым
цветом. Эти кнопки разблокируются только при выполнении операций, для которых они предназначены. Таким образом, исключается возможность выполнения недопустимых операций.
31
На панели Processes закладка Options является расширением инструментальной панели схемотехнического редактора и
используется для ввода вспомогательной информации, необходимой в процессе выполнения выбранной операции. Ее структура зависит от текущего режима работы (выбранного типа операции), устанавливаемого кнопками панели инструментов.
На панели Sources (рис. 2.3) отображается состав библиотек
УГО текущего проекта и обеспечивается механизм быстрого поиска требуемого компонента и размещения его на поле чертежа.
Эта панель содержит четыре поля: Categories, Symbols, Symbol
Name Filter, Orientation. В поле выбора Categories находится список функциональных групп элементов библиотек текущего проекта. Поле выбора Symbols содержит полный список символов
функциональной группы компонентов, название которой выделено в поле Categories. Поле редактирования Symbol Name Filter
предназначено для ввода фильтра названий компонентов. Если в
поле Symbol Name Filter содержится некоторая алфавитноцифровая последовательность, то в поле Symbols будут отображаться только элементы, названия которых начинаются с данной
строки текста. В поле выбора Orientation указывается ориентация
выбранного символа при его размещении на поле чертежа.
Рис 2.3. Панель Sources основного окна редактора ECS
32
Работа с редактором ECS пакета WEBPACK ISE строится
по следующему принципу. Вначале курсором и щелчком левой
кнопки мыши указывается объект, над которым необходимо
осуществить заданную операцию. Затем с помощью команд меню или кнопок оперативной и инструментальной панелей определяется тип операции, которая должна быть выполнена.
Например, для удаления элемента схемы следует поместить
курсор на его изображение и щелкнуть левой кнопкой мыши,
после чего выбрать команду Delete из всплывающего меню Edit
или нажать клавишу Delete (Del) на клавиатуре.
Инструментальная панель схемотехнического редактора ECS
Панель инструментов содержит кнопки, с помощью которых выбирается тип элемента схемы, помещаемого на поле чертежа. Здесь также расположены кнопки активизации вспомогательных средств схемотехнического редактора (рис. 2.4).
Рис. 2.4. Панель инструментов схемотехнического редактора ECS
– включает режим выбора объектов. Этот режим работы
схемотехнического редактора установлен по умолчанию в качестве основного.
– устанавливает режим ввода цепей редактируемой схемы.
– используется для определения названий цепей и шин.
Текст названия указывается в поле редактирования, расположенном в панели дополнительных параметров.
– изменяет название выбранной шины и входящих в нее
проводников. При нажатии этой кнопки выводится диалоговая
панель, в которой отображаются старые названия цепей и шины
и содержится поле ввода нового имени шины.
– включает режим формирования отводов шины. Ориентация символов отводов шин выбирается с помощью кнопок,
расположенных в панели дополнительных параметров.
33
– активизирует режим ввода маркеров интерфейсных
цепей. Для выбора типа маркера и его ориентации на поле чертежа используется панель дополнительных параметров.
– используется для ввода библиотечных компонентов
схемы. Название компонента выбирается из списка, представленного на странице библиотек в панели дополнительных параметров. На этой же странице указывается ориентация выбранного элемента при его установке на поле чертежа.
– используется для определения названия компонентов
схемы. Текст названия указывается в поле редактирования, расположенном в панели дополнительных параметров.
– позволяет создавать изображение дуги на поле чертежа. Точки, по которым строится дуга, указываются с помощью
мыши.
– позволяет сформировать изображение окружности на
поле чертежа. Для выбора метода построения окружности используется панель дополнительных параметров. Расположение
окружности и ее параметры устанавливаются с помощью мыши.
– используется для рисования линий на поле чертежа.
Расположение и размеры линии окружности указываются с помощью мыши.
– позволяет поместить изображение прямоугольника на
поле чертежа. Расположение формируемого изображения и его
размеры устанавливаются с помощью мыши.
– используется для ввода текстовых символов на редактируемом изображении. Содержание текста и размер шрифта
задаются в панели дополнительных параметров.
– позволяет получить информацию о выбранном объекте схемы. Все данные, относящиеся к выделенному элементу
схемы, отображаются в форме диалоговой панели.
– осуществляет поворот выбранного объекта на девяносто градусов по часовой стрелке.
– выполняет зеркальное преобразование выделенного
объекта (заменяет изображение выбранного объекта его зеркальной копией).
34
2.3. Модуль программирования iMPACT ISE
Программа iMPACT предназначена для конфигурирования
ПЛИС семейств CPLD, FPGA и ППЗУ семейства XC18V00 в
различных режимах, считывания конфигурационных данных из
кристаллов и организации тестирования разработанного устройства с использованием JTAG-интерфейса, а также для создания
файлов «прошивки» ПЗУ/ППЗУ в стандартных промышленных
форматах, поддерживаемых различными аппаратными программаторами.
Программа
iMPACT
может быть активизирована
непосредственно в среде
управляющей
оболочки
пакета WebPACK ISE Навигатора проекта или
автономно. Для запуска
модуля iMPACT в среде
Windows следует воспользоваться строкой iMPACT
из меню Программы / Xilinx
ISE / Accessories, доступ к
которому открывается при Рис. 2.5. Запуск программы iMPACT
нажатии кнопки Пуск. В
большинстве случаев наиболее целесообразно использовать
Навигатор проекта для активизации программы iMPACT. Для
этого следует на странице Processes панели Processes дважды
щелкнуть левой кнопкой мыши на строке Manage Configuration
Project (iMPACT), находящейся во вкладке Implement Design –
Configure Target Device (рис. 2.5).
При успешном выполнении операции инициализации на
экране монитора отображается основное окно программы iMPACT, подробная структура которого показана на рис. 2.6.
35
Рис. 2.6. Структура основного окна модуля iMPACT
Пользовательский интерфейс модуля программирования
iМPACT
Основное окно программы iMPACT включает следующие
элементы:
 заголовок окна;
 главное меню;
 оперативную панель управления;
 рабочую область;
 встроенное окно регистрации сообщений;
 строку состояния.
Некоторые из перечисленных элементов могут быть выключены в текущей конфигурации. Для эффективного применения инструментов пользовательского интерфейса рекомендуется
установить режим отображения всех элементов окна программы
iMPACT, используя команды пункта View основного меню.
В заголовке окна программы iMPACT отображается полное
имя файла описания текущей композиции цепочки периферий36
ного сканирования (configuration description file, CDF), которое
включает путь доступа к рабочему каталогу проекта.
Главное меню управляющей оболочки пакета обеспечивает
доступ ко всем командам, необходимым для работы с программой. Каждый пункт главного меню открывает всплывающее
меню, в котором находится соответствующая группа команд.
Пункт File содержит команды создания, открытия и сохранения файлов описания композиции ПЛИС в составе цепочки
периферийного сканирования (CDF) и файлов протокола работы
с программой (LOG). Кроме того, в эту группу включены команды инициализации выбранной цепочки ПЛИС и завершения
работы. Пункт Edit объединяет команды редактирования данных в рабочей области и изменения параметров функционирования программы iMPACT. Пункт Mode обеспечивает возможность переключения между режимами конфигурирования кристаллов и генерации файлов программирования в различных
форматах. В пункте Operations находятся команды, необходимые для выполнения всех операций, реализуемых программой.
Команды этого пункта позволяют осуществить программирование выбранного устройства, обратное чтение данных из кристалла, стирание конфигурационной информации, вычисление
контрольной суммы и проверку загруженной конфигурационной последовательности, считывание идентификационного кода
и сигнатуры, определение состояния кристалла. Пункт Output
предоставляет команды управления процессами подключения и
инициализации загрузочного кабеля и установки необходимых
параметров используемого интерфейса ПК. Здесь также находятся команды, необходимые для создания файлов программирования в формате SVF и STAPL. В пункте View сгруппированы команды, управляющие отображением некоторых элементов
основного окна программы iMPACT, а также регенерацией рабочей области и очисткой окна регистрации сообщений.
Пункт Help основного меню предоставляет справочную
информацию о работе с программой iMPACT и поддерживаемых семействах ПЛИС.
Оперативная панель управления содержит кнопки быстрого
доступа, которые дублируют наиболее часто используемые ко37
манды программы iМPACT. Эти кнопки позволяют ускорить
работу с программой, так как при выполнении какой-либо операции исключается процедура поиска соответствующей команды в системе всплывающих меню.
Рабочая область основного окна представляет в наглядной
форме информацию о кристаллах, которые доступны для конфигурирования, чтения данных или тестирования, и файлах,
которые содержат конфигурационную последовательность для
каждой ПЛИС. Эффективный визуальный механизм управления
рабочей области позволяет быстро получить исчерпывающую
информацию о выбранном кристалле ПЛИС и выполнить необходимые операции конфигурирования и отладки.
Окно регистрации сообщений предназначено для вывода
информации о запуске, ходе и результатах выполнения команд в
текущем сеансе работы с программой. Здесь также отображаются сообщения об ошибках и предупреждения. Содержимое этого
окна заносится в файл протокола работы программы iMPACT,
который впоследствии может быть просмотрен с помощью текстового редактора.
Строка состояния, расположенная в нижней части окна программы iMPACT, служит для вывода сообщений о текущих выполняемых командах и пояснений о назначении выбранной команды. Она также содержит специальные поля, которые используются для отображения информации о текущем режиме
работы программы iMPACT, режиме загрузки конфигурационных данных или типе генерируемых файлов программирования,
типе подключенного загрузочного кабеля и порта ПК, используемом для коммутации.
2.4. Создание нового проекта в среде пакета WebPACK ISE
В процессе разработки цифровых устройств на базе ПЛИС
Xilinx в общем случае можно выделить следующие этапы:
 создание нового проекта (выбор семейства и типа ПЛИС,
а также средств синтеза);
 подготовка описания проектируемого устройства в схемотехнической, алгоритмической или текстовой форме;
38
 синтез устройства;
 функциональное моделирование;
 размещение и трассировка проекта в кристалле;
 временное моделирование;
 программирование ПЛИС (загрузка проекта в кристалл).
Для создания нового проекта следует выполнить команду
File основного меню Навигатора проекта, а затем во всплывающем меню выбрать строку New Project. В результате указанных
действий открываются диалоговые панели, в которых должны
быть представлены исходные данные для создания проекта:
 название проекта;
 диск и каталог, в котором предполагается расположить проект;
 семейство ПЛИС, на базе которого разрабатывается
устройство;
 тип кристалла;
 тип корпуса;
 быстродействие кристалла;
 средства синтеза устройства.
В первую очередь рекомендуется определить раздел (папку), в котором будет располагаться рабочий каталог проекта.
Место расположения проекта на диске указывается в поле редактирования Project Location (рис. 2.7).
Рис. 2.7. Диалоговая панель выбора имени и местоположения проекта
39
Целесообразно хранить все проекты в специально созданном для этих цепей каталоге, например D:\Student\Project. По
умолчанию в поле редактирования Project Location предлагаются диск и каталог, которые использовались в предыдущем проекте. Название (имя) проекта вводится в поле редактирования
Project name. В этой же диалоговой панели в поле Top-level
source type задается способ представления проекта.
Семейство ПЛИС, тип кристалла, корпуса, быстродействие,
маршрут проектирования и средства синтеза представлены в
виде таблицы параметров проекта (рис. 2.8). В первом столбце
этой таблицы отображаются названия параметров (Property
Name), а во втором – значения этих характеристик (Value). Каждая ячейка столбца Value представляет собой поле выбора значения соответствующего параметра. Для определения семейства
ПЛИС, на базе которого проектируется устройство, следует поместить курсор мыши на поле выбора семейства Family и щелкнуть левой кнопкой. После этого в правой части поля выбора
семейства появляется кнопка управления выпадающим списком.
При нажатии на эту кнопку отображается список семейств
ПЛИС, поддерживаемых пакетом WebPACK ISE.
Рис. 2.8. Диалоговая панель выбора ПЛИС
40
В поле выбора типа кристалла для реализации проектируемого устройства автоматически отображается тип ПЛИС, установленный по умолчанию для выбранного семейства (рис. 2.8).
В предложенном списке нужно найти строку, содержащую требуемый тип кристалла, поместить на нее курсор мыши и щелкнуть левой кнопкой. Выделенный элемент списка автоматически отображается в поле выбора типа кристалла Device.
Если разработчик затрудняется определить тип кристалла,
необходимый для реализации проектируемого устройства, то
следует использовать автоматический выбор типа кристалла.
Для этого необходимо в списке ПЛИС выбрать строку Automatic
для требуемого семейства ПЛИС. Программы трассировки
определят кристалл с минимальным количеством ресурсов, необходимых для реализации разрабатываемого устройства.
Тип корпуса кристалла указывается в поле выбора Package.
Если в качестве типа кристалла задано значение Auto, то в этом
поле отображается символ «*», соответствующий режиму автоматического выбора типа корпуса. В этом случае также можно
указать конкретный тип корпуса с неопределенным количеством выводов. Для этого следует выбрать значение <тип корпуса>* из выпадающего списка, который появляется при щелчке левой кнопкой мыши в поле выбора Package. Если в поле
Device указан определенный тип ПЛИС, то выпадающий список
значений поля выбора Package содержит обозначения только
тех типов корпусов, в которых выпускается данный кристалл.
Выбор требуемого типа корпуса осуществляется щелчком левой
кнопки мыши на строке списка, в которой представлено его
условное обозначение (рис. 2.9). Выбранный элемент списка
автоматически отображается в поле типа корпуса кристалла
Package.
Для указания быстродействия выбранного кристалла следует поместить курсор мыши на поле выбора Speed и щелкнуть
левой кнопкой (рис. 2.10). Открывшийся список отображает
выпускаемый ряд градации по быстродействию для выбранного
типа ПЛИС. Если тип кристалла не конкретизирован (в поле
Device указано значение Auto), то список содержит единствен-
41
ное значение «*», соответствующее режиму автоматического
выбора быстродействия ПЛИС.
Рис. 2.9. Выбор типа корпуса
Требуемое быстродействие кристалла устанавливается щелчком левой кнопки мыши на строке, соответствующей строке списка, после чего это значение отображается в поле выбора Speed.
42
Рис. 2.10. Выбор быстродействия кристалла
Процедура определения всех необходимых параметров создаваемого проекта завершается нажатием клавиши Next. В случае успешного создания нового проекта его название отображается в строке заголовка окна Навигатора проекта, а окно исходных модулей приобретает вид, показанный на рис. 2.11.
Окно исходных модулей нового проекта содержит две пиктограммы: заголовка и описания проекта. Только что созданный
проект имеет заголовок, совпадающий с названием проекта.
Рис. 2.11. Рабочая область нового проекта
В строке описания проекта отображаются основные параметры проекта, заданные при его создании. Изменить параметры проекта можно несколькими способами.
Прежде всего, следует выделить строку
заголовка проекта в
окне исходных модулей, поместив на нее
курсор мыши и щелкнув левой кнопкой.
Затем нужно нажать
кнопку просмотра и
изменения характериРис. 2.12. Таблица параметров проекта
стик текущего проекта
, которая находится на оперативной панели Навигатора проекта. В результате чего на экране появляется диалоговая панель,
в которой отображается таблица параметров проекта (рис. 2.12).
43
Для открытия диалоговой
панели редактирования параметров проекта можно также
после выделения строки заголовка использовать команду
Source/Properties
основного
меню Навигатора проекта или
щелчком правой кнопкой мыши открыть всплывающее контекстно-зависимое меню (рис.
2.13), в котором следует выбрать строку Properties. Но
самый быстрый и удобный
способ редактирования заголовка проекта – поместить указатель на строку заголовка
проекта в окне исходных модулей и дважды щелкнуть левой
кнопкой мыши.
Рис. 2.13. Редактирование заголовка проекта
2.5. Подготовка текстового описания проекта
В текстовом формате могут создаваться описания проектируемого устройства и его функциональных блоков на языках
HDL (VHDL, Verilog и Abel HDL), тестовых воздействий, временных и топологических ограничений. Ниже рассматривается
процесс подготовки текстового описания проекта на примере
формирования исходных модулей на языке VHDL.
Создание VHDL описания проектируемого устройства
Процесс создания VHDL-описания разрабатываемого
устройства или его функциональных блоков начинается с выполнения процедуры подготовки основы нового исходного модуля проекта, которая активизируется кнопкой
на оперативной панели или командой New Source из пункта Project основного меню Навигатора проекта. В качестве типа нового модуля
44
в открывшейся диалоговой панели, показанной на рис. 2.14,
необходимо выбрать вкладку VHDL Module.
Рис. 2.14. Создание нового модуля VHDL-описания
После ввода названия создаваемого модуля и нажатия кнопки
Next открывается диалоговая панель определения исходных данных VHDL-описания, вид которой показан на рис. 2.15.
Рис. 2.15. Диалоговая панель определения параметров VHDL-описания
В поле редактирования Entity Name после его активизации
необходимо указать имя описываемого объекта. По умолчанию
предлагается идентификатор, совпадающий с названием создаваемого модуля. Имя архитектурного тела VHDL-описания указы45
вается в поле редактирования Architecture Name. По умолчанию в
качестве имени архитектурного тела предлагается идентификатор
Behavioral. Далее следует заполнить таблицу описания портов,
которая содержит четыре столбца. Ячейки первого столбца представляют собой поле редактирования, в которое с помощью клавиатуры заносится идентификатор порта Port Name. Во второй
колонке указывается тип порта Direction. Каждая ячейка этого
столбца представляет собой поле выбора, выпадающий список
которого содержит три значения, определяющие тип порта: in
(входной), out (выходной) или inout (двунаправленный). Колонки
MSB и LSB заполняются только для портов, представленных в
виде шин и описываемых с помощью векторов. В столбце MSB
указываются значения индекса, соответствующего старшему разряду вектора, а в LSB – младшему. Если описание портов нового
модуля не помещается в видимой части таблицы, следует воспользоваться элементами вертикальной прокрутки, расположенными вдоль правой границы таблицы. После внесения всех необходимых данных следует нажать кнопку Next, в результате чего
открывается информационная панель формирования нового модуля VHDL-описания (рис. 2.16).
Рис. 2.16. Информационная панель нового модуля VHDL-описания
46
Если все данные, необходимые для создания нового VHDLописания, указаны корректно, то далее нужно нажать кнопку
Finish, в результате чего открывается новое рабочее окно встроенного HDL-редактора, в котором отображается автоматически
сформированный код. Этот код включает декларацию используемых библиотек и пакетов, интерфейса описываемого объекта и
основу архитектурного тела VHDL-описания.
Для получения законченного описания на языке VHDL
необходимо основу архитектурного тела дополнить кодом, описывающим внутреннюю структуру или поведение объекта.
Текст описания вводится с помощью клавиатуры или шаблонов
встроенного HDL-редактора пакета WebPACK ISE.
После завершения формирования модуля текстового описания следует сохранить его в виде файла на диске, используя
команды Save или Save As из всплывающего меню File или
кнопку
, расположенную на оперативной панели управления
Навигатора проекта.
2.6. Разработка схемотехнического описания проекта
Для создания принципиальной схемы разрабатываемого
устройства или его функциональных блоков необходимо выполнить процедуру подготовки основы нового модуля исходного описания проекта, нажав кнопку на оперативной панели
или выбрав команду New Source из раздела Project основного
меню Навигатора проекта. В качестве типа нового модуля в
открывшейся диалоговой панели, показанной на рис. 2.17, необходимо выбрать Schematic.
В диалоговой панели параметров нового модуля (рис. 2.17),
в качестве названия схемы выбрано jc2. При нажатии кнопки
Next на экран выводится информационная панель, показанная на
рис. 2.18, в которой указываются исходные параметры создаваемой схемы. После их подтверждения нажатием кнопки Finish
в нижней части информационной панели открывается окно схемотехнического редактора пакета WebPACK ISE, в строке заголовка которого отображается название новой схемы.
47
Рис. 2.17. Создание нового модуля описания проекта
Рис. 2.18. Информационная панель исходных параметров проекта
Создание новой схемы в среде редактора ECS
Процесс создания принципиальной схемы проектируемого
устройства в редакторе ECS включает в себя выполнение следующих операций:
 ввод символов элементов схемы;
 выполнение необходимых соединений в виде проводников и шин;
 ввод имен цепей и шин;
 установка маркеров, определяющих назначение цепей,
используемых для подключения «внешних» элементов или выводов ПЛИС;
48
 ввод необходимых атрибутов;
 формирование вспомогательных графических изображений и текстовых комментариев на страницах схемы.
Последняя из перечисленных операций не является обязательной и используется для оформления документации в соответствии с принятыми нормами. Порядок выполнения операций
может быть произвольным, но приведенная последовательность
является наиболее целесообразной.
Прежде чем непосредственно приступить к созданию схемы, рекомендуется проверить и при необходимости установить
параметры страницы. Для этого следует активизировать диалоговую панель общих параметров схемы, поместив курсор на
поле чертежа и дважды щелкнув левой кнопкой мыши. Эта диалоговая панель содержит два поля: списка параметров и таблицы значений (рис. 2.19).
Рис. 2.19. Диалоговая панель общих параметров схемы
Изначально в панели представлен только один параметр –
Sheets (Страницы). Таблица значений этого параметра состоит
из двух столбцов. В первом столбце указан номер страницы, а
во втором – ее размеры. Для изменения формата страницы
необходимо поместить курсор на поле выбора размеров и щелк49
нуть левой кнопкой мыши, в результате чего будет выведен
список доступных значений этого параметра. Далее следует поместить курсор на строку списка, в которой указан требуемый
формат страницы, и щелкнуть левой кнопкой мыши. После этого новые размеры страницы отображаются в соответствующем
поле таблицы. Выполненные изменения параметров страницы
вступают в силу после нажатия клавиши ОК, расположенной в
нижней части диалоговой панели.
При открытии окна схемотехнического редактора активизирован основной режим – выбор объекта, установленный по
умолчанию. В этом режиме осуществляется выделение, перемещение и удаление элементов схемы, а также просмотр и редактирование их параметров.
Для активизации режима ввода символов компонентов создаваемой схемы предназначена кнопка
на инструментальной
панели, а также команда Symbol, которая находится в меню Add.
Прежде всего, следует выбрать нужную функциональную
группу символов библиотеки компонентов в поле Categories на
странице Symbols, поместив курсор на строку с ее названием и
щелкнув левой кнопкой мыши. Если требуемая категория символов отсутствует в видимой части списка, то нужно воспользоваться элементами вертикальной прокрутки, расположенными с
правой стороны поля выбора. Далее тем же способом в поле
Symbols выбирается искомый компонент, после чего курсор
мыши следует переместить на поле чертежа. При этом к курсору мыши «привязывается» контурное изображение выбранного
компонента, которое перемещается вместе с указателем. Для
получения повернутого и/или зеркального изображения символа
на поле чертежа следует нажать кнопку активизации выпадающего списка возможных типов ориентации в правой части поля
выбора Orientation и выбрать требуемый угол поворота и форму
представления УГО щелчком левой кнопкой мыши на соответствующей строке списка. После этого контурное изображение
символа, «привязанное» к курсору, примет выбранную ориентацию. Тот же результат может быть получен при использовании
соответствующих кнопок инструментальной панели.
50
Если на схеме требуется поместить символ в зеркально отраженном виде, то нужно нажать кнопку
на инструментальной панели. Для получения изображения символа, повернутого
на 90 по часовой стрелке относительно текущей ориентации,
необходимо воспользоваться кнопкой
панели инструментов.
Далее следует поместить указатель с изображением элемента в
соответствующее место страницы схемы и зафиксировать его,
щелкнув левой кнопкой мыши. В случае успешного выполнения
указанных операций на поле чертежа появляется детальное
изображение выбранного компонента (рис. 2.20).
После ввода символа курсор по-прежнему сохраняет контурное изображение элемента, поэтому если в схеме используется
несколько экземпляров текущего выбранного компонента, то
нужно поместить указатель на место предполагаемого расположения следующей копии УГО и вновь щелкнуть левой кнопкой
мыши. Завершив ввод текущего компонента, следует повторить
рассмотренную выше процедуру выбора символа из списка для
следующего элемента схемы, переместив курсор мыши на страницу библиотек символов в панели дополнительных параметров.
Рис. 2.20. Расположение символов компонентов на поле чертежа
Аналогичным образом размещаются на поле чертежа все
компоненты схемы. При попытке выполнения недопустимого
51
расположения символа его изображение не фиксируется на поле
чертежа, и выводится окно сообщения об ошибке. Возможны
следующие ошибки расположения символов: изображение компонента выходит за пределы страницы, один из контактов вводимого символа накладывается на контакт уже имеющегося
компонента или на место пересечения двух не соединяющихся
проводников.
Для выключения режима ввода компонентов нужно нажать
кнопку
на инструментальной панели, в результате чего будет
автоматически установлен основной режим работы схемотехнического редактора.
При вводе символов компонентов схемы следует обратить
внимание на возможность установки входных (IBUF), выходных
(OBUF) или двунаправленных (IOBUF) буферных элементов в
цепях, подключаемых к выводам кристалла. Если эти элементы
не были установлены в схеме, то необходимо при синтезе указать режим их автоматического подключения.
Следующий шаг в процессе создания схемы – выполнение
всех необходимых соединении. Для этих целей в редакторе ECS
используются проводники (Wire) и шины (Bus).
Включение режима ввода проводников производится нажатием кнопки
на инструментальной панели или при выборе
команды Wire из меню Add. Формирование цепи начинается с
фиксации стартовой точки, которая может располагаться на
свободном месте поля чертежа или совпадать с контактом вывода одного из компонентов. Для этого следует поместить курсор мыши в требуемую точку на поле чертежа и щелкнуть левой
кнопкой мыши.
Дальнейшая последовательность действий зависит от режима трассировки цепей на изображении схемы, который выбирается с помощью кнопок на странице Options в панели дополнительных параметров (рис. 2.21). Если опция Use the Manual
method to add single line segments between the points you indicate
включена, то установлен режим ручной трассировки цепей на
изображении схемы. После фиксации начальной точки цепи
следует переместить курсор мыши в позицию, соответствую52
щую точке изгиба, соединения с другим проводником или контактом компонента, а также конечной точке цепи. При этом
формируемый сегмент цепи отображается штриховой линией.
Фиксация сегмента осуществляется щелчком левой кнопкой
мыши в конечной точке, после чего новый фрагмент цепи отображается основной линией. Далее при необходимости следует
продолжить формирование текущей цепи, переместив указатель
мыши на конечную позицию следующего сегмента. Завершение
формирование цепи производится перемещением указателя
мыши по полю чертежа с фиксацией щелчком левой кнопки
мыши всех изгибов и точек соединения с компонентами и другими цепями схемы.
Режим автоматической трассировки цепей на изображении
схемы активизируется при установленной опции Use the
Autorouter to add one or more line segments between the points you
indicate, расположенной на странице Options в панели дополнительных параметров.
Рис. 2.21. Соединение компонентов схемы
В этом режиме фиксируются только начальная и конечная
точки цепи, а точки изгиба формируются автоматически.
53
Чтобы добавить новый сегмент к созданной ранее цепи,
следует расположить курсор на любом ее участке и щелкнуть
левой кнопкой мыши, после чего в этой позиции отобразится
точка, отмечающая соединение двух цепей. Далее следует повторить рассмотренные выше действия. Для соединения формируемой цепи с ранее созданной нужно установить конечную
точку одного из сегментов новой цепи непосредственно на
изображении существующего проводника. После щелчка левой
кнопкой мыши в позиции пересечения появляется точка – символ объединения цепей.
Для формирования соединений элементов схемы в виде
шин необходимо выполнить следующую последовательность
действий. Вначале в режиме ввода проводников создается графическое изображение шины в виде фрагмента одиночной цепи
в соответствии с инструкциями, рассмотренными выше. До тех
пор, пока не задано название шины в соответствующем формате
(с указанием разрядности или перечислением проводников), она
отображается сплошной тонкой линией, как одиночная цепь.
Затем следует перейти в режим формирования отводов шины,
нажав кнопку
на панели инструментов или выполнив команду Bus Тар из меню Add. При этом к курсору присоединяется изображение отвода шины. Символ отвода шины может быть
подключен к вертикальному или горизонтальному сегменту
шины. Для получения нужной ориентации изображения отвода
шины следует воспользоваться группой кнопок, расположенных
на странице Options в панели дополнительных параметров. Если
в нажатом состоянии находится кнопка Left, то изображение
отвода шины сориентировано так, что контакт для подключения
проводника находится справа, а для присоединения к шине –
слева. При нажатии кнопки Right справа располагается сторона
для присоединения к шине, а слева – контакт для подключения
цепи. Нажатое состояние кнопки Тор соответствует ориентации
символа отвода шины, при которой контакт для подключения
проводника располагается внизу, а сторона, присоединяемая к
шине, – вверху. При нажатии кнопки Bottom устанавливается
54
ориентация противоположная по отношению к задаваемой
кнопкой Тоp.
Далее нужно указать точку подключения проводника к
шине, расположив на ней курсор и щелкнув левой кнопкой мыши. При этом символ отвода присоединится к изображению
выбранной шины (рис. 2.22).
Сформировав, таким образом, все отводы шины, производится их соединение с соответствующими цепями схемы. Подключение цепей к отводам шины осуществляется в той же последовательности операций, которая была рассмотрена выше в
процессе выполнения соединений компонентов схемы посредством обычных (одиночных) цепей. Соединение двух шин и
формирование новых сегментов шин осуществляется так же, как
и для обычных цепей, в режиме ввода проводников. После подключения проводников к отводам шины производится присвоение соответствующих названий этих цепей.
Рис. 2.22. Формирование соединений схемы в виде шины
Разрабатывая схему в редакторе ECS, прежде всего необходимо установить названия цепей, входящих в состав шин, используемых для соединений с «внешними» элементами или контролируемых в процессе последующего моделирования и анализа временных соотношений. При создании новой цепи схемо55
технический редактор автоматически устанавливает ее названия
в виде XLNX_number, где number – порядковый номер цепи.
Названия цепей, присвоенные автоматически редактором ECS,
не отображаются на поле чертежа. Рекомендуется присваивать
названия, отражающие функциональное назначение цепи. В
состав названия цепи могут входить прописные и строчные буквы латинского алфавита (А-Z, а-z), цифры (0-9), а также символ
подчеркивания. Название должно начинаться с буквы или цифры и может состоять только из цифр. Длина названия не должна
превышать 255 символов. Чтобы включить режим ввода названия цепей, следует нажать кнопку
на панели инструментов
или выбрать пункт Add в основном меню, а затем в соответствующем всплывающем меню – команду Net Name. В этом режиме страница Options панели дополнительных параметров
схемотехнического редактора имеет вид, показанный на рис.
2.23.
Рис. 2.23. Ввод названия цепей и шин
С помощью кнопок, расположенных на этой странице, следует выбрать способ ввода названий цепей. При этом необходимо
учитывать, что если на схеме присутствуют два или более проводника с одинаковыми названиями, но не имеющие точек соединений, то они объединяются электрически в одну цепь. В этом
случае считается, что цепь состоит из нескольких ветвей. При
56
выбранной опции Name the branch устанавливается название одной (выбранной) ветви цепи. Если опция Name the branch's net не
выбрана, то одно название присваивается всем ветвям цепи. Для
цепей, состоящих из одной ветви, при фиксации любой из этих
двух кнопок получается один и тот же результат. После выбора
одной из этих опций следует активизировать поле ввода имени
цепи, поместив на него курсор и щелкнув левой кнопкой мыши.
Название цепи набирается в этом поле с помощью клавиатуры.
Кнопки, расположенные справа от поля ввода названия цепи, позволяют уменьшить или увеличить значение индекса, если он используется в имени цепи. Введенный текст названия привязывается к курсору мыши при перемещении последнего на поле чертежа схемы. Далее необходимо поместить указатель на изображение соответствующей цепи и щелкнуть левой кнопкой мыши.
При отсутствии ошибок название цепи отображается рядом с ее
изображением, в позиции, зафиксированной при щелчке левой
кнопки мыши (рис. 2.23). Наличие маркера на поле индикатора
Display the name on the branch where you click even if the branch's
net name is already displayed somewhere on the branch указывает на
возможность установки нескольких изображений названия на
различных участках цепи. Расположение нового экземпляра
названия указывается щелчком левой кнопки мыши в соответствующей точке цепи. Для изменения состояния индикатора на
противоположное достаточно щелкнуть левой кнопкой мыши на
его изображении.
Названия шин устанавливаются в том же режиме и той же
последовательности, что и имена цепей. При этом нужно обратить внимание на то, что в схемотехническом редакторе ECS
различаются два типа шин: упорядоченные и неупорядоченные.
В упорядоченной шине все проводники имеют одно и то же
имя, совпадающее с названием шины, и соответствующий порядковый номер. В состав неупорядоченной шины входят цепи
с произвольными названиями. Для упорядоченной шины название задается в формате:
<имя шины> (<конечный номер проводника в шине>:<начальный
номер проводника в шине>),
например, DATA IN(5:0).
57
Названия проводников упорядоченной шины указываются в
формате:
<имя шины> (<номер проводника в шине>),
например, DATA_1N(4).
Формат имени неупорядоченной шины имеет следующий вид
<имя цепи 1>, <имя цепи 2>[, <имя цепи 3>…<имя цепи N>],
например, CLOCK, RESET, SETUP.
Названия отводов неупорядоченной шины совпадают с соответствующими именами цепей, входящими в состав названия шины.
После формирования цепей, предназначенных для соединений с другими схемами и контактами кристалла, и присвоения
им соответствующих названий необходимо установить маркеры, определяющие назначение этих цепей и направление передачи данных по ним. Маркер присоединяется к свободной конечной точке цепи. Для включения режима ввода маркеров цепей следует нажать кнопку
на панели инструментов или
выполнить команду I/O Marker из меню Add, после чего к курсору привязывается изображение маркера. Его тип (входной,
выходной или двунаправленный) указывается с помощью группы опций с зависимой фиксацией, расположенных на странице
Options панели дополнительных параметров.
Для установки маркера нужно поместить указатель на свободную конечную точку цепи и щелкнуть левой кнопкой мыши.
При успешном выполнении операции к цепи присоединяется
изображение маркера, внутри которого отображается ее название. В случае обнаружения ошибки (например, при неправильном расположении маркера) маркер не устанавливается и на
экран выводится окно сообщений об ошибках, в котором отображается соответствующая информация.
Чтобы изменить тип маркера после его установки, следует
перейти в режим выделения объектов, нажав кнопку
на панели инструментов, поместить курсор на его изображение и
дважды щелкнуть левой кнопкой мыши.
При этом на экран выводится диалоговая панель установки
и редактирования атрибутов цепи (рис. 2.24). В таблице атрибутов имеется строка параметра Port Polarity, который определяет
58
характер цепи: входная (Input), выходная (Output) или двунаправленная (Bidirectional). Для выбора нужного типа маркера
необходимо активизировать поле значения параметра
PortPolarity, поместив на него курсор и щелкнув левой клавишей мыши, после чего в его правой части появляется кнопка
управления выпадающим списком. Нажав эту кнопку, следует в
предложенном списке выбрать требуемый тип маркера, щелкнув левой кнопкой мыши на строке с его названием. Выбранный
тип маркера автоматически отображается в поле значения параметра PortPolarity. Выполненные изменения подтверждаются
нажатием кнопки ОК в нижней части диалоговой панели. Если
проводники схемы, используемые для соединений с другими
схемами и контактами кристалла, сгруппированы в шины, то
маркер может быть установлен непосредственно в конечную
точку шины. Последовательность действий, выполняемых в
процессе маркировки шип, аналогична процедуре установки
маркера для одиночной цепи.
Рис. 2.24. Изменение типа маркера цепи
Оформление схем в соответствии с общепринятыми требованиями осуществляется с помощью средств ввода текста и различных графических примитивов. Так как эти элементы не влияют на последующие процессы размещения и трассировки проекта в кристалл (не несут никакой информации) и используются
в основном для подготовки документации, то процесс их создания рассматривается кратко. Режим формирования графических
59
примитивов включается при нажатии соответствующих кнопок
на инструментальной панели или при выборе команд рисования
из меню Add. Кнопка
задает режим вычерчивания линии,
– прямоугольника,
– дуги,
– окружности.
Далее в этих режимах курсором указывается начальная точка и размер графического элемента, а фиксация рисунка производится щелчком левой кнопки мыши. Для ввода текста следует
использовать кнопку
на панели инструментов или выбрать
пункт Add в основном меню, а затем – команду Text. Далее на
странице Options панели дополнительных параметров нужно
активизировать поле редактирования текста Text Value, поместив на него курсор и щелкнув левой кнопкой мыши.
После завершения чертежа схемы необходимо выполнить ее
проверку. Часть возможных ошибок обнаруживается уже в процессе создания схемы. Но полный контроль может быть выполнен только для законченной схемы. Для проверки разработанной схемы предназначена команда Check Schematic, которая
располагается в меню Tools.
В процессе верификации осуществляется контроль целостности схемы и выполнения правил электрических соединений.
На этом этапе выявляются такие ошибки, как неподключенные
цепи, контакты и отводы шины, а также ошибки, возникающие
при соединении выходов нескольких компонентов. После выполнения проверки открывается окно отчета. В этом окне отображаются сообщения об ошибках и предупреждения с указанием цепи или компонента, с которым они связаны.
Заключительным шагом в процессе разработки схемы является ее сохранение в виде файла на диске. Для этого следует
использовать команду Save из всплывающего меню File или
кнопку
, расположенную на оперативной панели управления.
2.7. Подготовка тестового модуля проекта
Для выполнения этапов функционального и временного моделирования необходимо сформировать описание тестовых воздействий, используемых в процессе верификации. Подготовка
60
тестовых модулей может осуществляться как на этапе создания
исходных описаний проектируемого устройства, так и непосредственно перед активизацией процесса моделирования.
Структура тестового модуля проекта
Тестовый модуль проекта фактически содержит представление модели испытательного стенда для разрабатываемого
устройства на языке описания аппаратуры HDL, используемом в
процессе проектирования. В дальнейшем предполагается, что
процесс разработки выполняется при использовании средств
синтеза XST (Xilinx Synthesis Technology) VHDL. В этом случае
тестовый модуль проекта имеет стандартную структуру VHDLописания.
«Мастер» подготовки модулей исходного описания проекта
позволяет автоматически сформировать основу тестового файла, которая содержит все элементы его структуры, за исключением секции, описывающей поведение входных сигналов. Формирование входных тестовых воздействий может выполняться в
текстовом виде (на языке VHDL) при использовании встроенного HDL-редактора или в графической форме (в виде временных
диаграмм) с помощью утилиты генерации тестов HDL Bencher,
которая входит в состав пакета WebPACK ISE. Последний способ является наиболее наглядным и не требует знаний языков
HDL. Программа HDL Bencher автоматически транслирует созданные временные диаграммы тестовых сигналов при их сохранении в текстовый формат.
Создание тестового модуля проекта в текстовом формате
Для автоматического формирования основы файла тестовой
последовательности необходимо активизировать режим создания нового модуля исходного описания проекта, воспользовавшись кнопкой
на оперативной панели или командой New
Source из раздела Project основного меню Навигатора проекта.
В открывшейся диалоговой панели, показанной на рис. 2.17, в
качестве типа нового модуля следует выбрать VHDL Test Bench.
Далее необходимо задать его имя и указать место расположения
файла на диске в поле редактирования Location.
61
Установка значений всех необходимых исходных параметров создаваемого модуля завершается нажатием клавиши Next.
В результате на экране отображается диалоговая панель, содержащая список модулей исходного описания проекта. В предлагаемом списке следует выделить элемент, с которым ассоциируется создаваемый тестовый модуль, поместив курсор на соответствующую строку и щелкнув левой кнопкой мыши. Сделанный выбор подтверждается нажатием клавиши Next.
При успешном создании основы тестового модуля открывается информационная панель, показанная на рис. 2.25.
Рис. 2.25. Информационная панель параметров создаваемого тестового
модуля проекта
В этой панели отображаются значения всех параметров создаваемого модуля. Если необходимо изменить значение какого-либо параметра, то кнопка Back позволяет вернуться к
предыдущей диалоговой панели. Процесс создания основы тестового модуля завершается нажатием кнопки Finish.
После этого в окне исходных модулей Навигатора проекта
добавляется пиктограмма, сопровождаемая названием созданного
тестового модуля. Одновременно автоматически открывается
окно встроенного HDL-редактора, в котором отображается код
сформированного описания модели испытательной системы.
Далее необходимо дополнить сформированный модуль выражениями, описывающими изменение во времени входных сигналов
(более подробно эта операция рассмотрена в [2]). После завершения редактирования тестового файла следует обязательно его со62
хранить, выполнив команду Save из всплывающего меню File или
нажав кнопку
панели управления Навигатора проекта.
Создание тестового модуля проекта в форме временных
диаграмм
Для создания тестового модуля в виде временных диаграмм
сигналов следует повторить последовательность операций, описанную в подразделе «Создание тестового модуля проекта в
текстовом формате». При этом в списке типов исходных модулей диалоговой панели, показанной на рис.2.17, следует выбрать
строку Test Bench Waveform. По окончании работы «мастера»
подготовки тестового модуля автоматически производится запуск программы HDL Bencher, после чего открывается диалоговая панель инициализации временных параметров (рис. 2.26).
Рис. 2.26. Диалоговая панель инициализации временных параметров
утилиты HDL Bencher
63
Временные параметры, необходимые для формирования тестовых сигналов, различаются для синхронных и асинхронных
устройств. Программа HDL Bencher автоматически определяет
тип устройства, для которого разрабатываются тестовые последовательности. Для синхронного устройства необходимо, прежде всего, проконтролировать и при необходимости изменить
выбор основного тактового сигнала в поле Single clock, используя выпадающий список интерфейсных сигналов устройства.
Затем следует выбрать единицы измерения временных параметров, используя выпадающий список возможных значений поля
Time scale. Далее нужно определить длительность состояний
высокого и низкого логических уровней периода тактового сигнала в поле редактирования Clock High Time и Clock Low Time
соответственно. Кроме того, в поле редактирования Input Setup
Time следует указать минимальное значение времени установки
входных сигналов, а в поле Output Valid Delay – максимальное
значение задержки выходных сигналов.
Программа HDL Bencher автоматически определяет, чем
тактируется устройство – фронтом (Rising edge), спадом (Falling
edge) тактового сигнала или тем и другим (Dual edge), но разработчик может выбрать это вручную, используя соответствующие кнопки диалоговой панели (рис. 2.26). При создании тестов
для комбинационных устройств нужно указать только значения
временных интервалов между моментами подачи входных воздействий и контроля выходных сигналов Cheek Outputs и Assign
Inputs (поле Combinatorial Timing Information). Эти параметры
позволяют исключить возможные конфликты в моменты изменения входных и выходных сигналов.
На диалоговой панели параметр Offset (задержка) – это
интервал времени, в рамках которого возникает перепад сигнала. Если перепад сигнала должен быть синхронизирован с тактовым сигналом, необходимо установить значение этого параметра в 0. Значение указанного параметра связано с опциями
GSR/PRLD. Опции Global Signals PRLD (CPLD) и GSR (FPGA)
используются для проектирования на языке Verilog. Установка
этих опций приводит к автоматическому суммированию значения параметра High for Initial с временем задержки Offset. Реко64
мендуется всегда по умолчанию устанавливать значение параметра High for Initial равным 100 нс. В поле Clock Information
задается один или несколько тактовых сигналов. Несколько тактовых сигналов можно задавать комбинированно с указанием
сдвигов между ними. Опция Add Asynchronous Signal Support
добавляет поддержку асинхронных сигналов. Эта опция оказывается полезной, если проект содержит как тактируемые, так и
асинхронные сигналы.
Процесс установки требуемых значений временных параметров завершается нажатием кнопки ОК, расположенной в
нижней части диалоговой панели, после чего в рабочей области
окна программы HDL Bencher отображаются заготовки временных диаграмм (рис. 2.27).
Рис. 2.27. Генерация тестовых сигналов
В верхней строке рабочей области окна программы HDL
Bencher расположена временная шкала, деления которой соответствуют периодам тактового сигнала. В левом столбце отображается список названий интерфейсных сигналов устройства.
Справа от названия сигнала приведена пиктограмма, обозначающая его тип:
– тактовый;
– входной;
– выходной;
– двунаправленный.
Сигналы векторного типа отображаются в виде шин соответствующей разрядности.
Изменить значение сигнала в какой-либо момент времени
можно несколькими способами. Чтобы переключить значение
сигнала на противоположное (из состояния низкого логического
уровня в высокое или наоборот), достаточно поместить курсор в
65
требуемое место временной диаграммы и щелкнуть левой кнопкой мыши. Чтобы выбрать значение сигнала из списка возможных состояний, следует щелчком правой кнопки активизировать
контекстно-зависимое всплывающее меню, в котором выбрать
строку Set Value. В результате выполнения указанных действий
на экран выводится диалоговая панель, содержащая поле выбора значения сигнала (рис. 2.28). Для установки требуемого значения сигнала следует нажать кнопку управления выпадающим
списком возможных состояний, в котором выбрать затем соответствующую строку, после чего подтвердить выбор нажатием
кнопки ОК.
Рис. 2.28. Диалоговая панель выбора значения сигнала
Чтобы сформировать последовательность значений для выбранного сигнала, можно воспользоваться соответствующим
«мастером» Pattern Wizard. Для его активизации необходимо
поместить курсор мыши в исходную точку временной диаграммы и дважды щелкнуть левой кнопкой, после чего воспользоваться появившейся кнопкой Pattern. В диалоговой панели «мастера» Pattern Wizard, показанной на рис. 2.29, следует выбрать
алгоритм переключений сигнала в поле Pattern Type и указать
одно из следующих: Pulse - устанавливает регулярное переключение с нуля на единицу; Random Signal - генерирует ряд случайных значений; Switch - переключение осуществляется при
определенных значениях тактового сигнала; или выбрать один
из возможных вариантов изменения сигналов на шине данных
Bus.
Остальные параметры диалоговой панели Pattern Wizard
имеют следующий смысл:
66
Number of Cycles определяет количество циклов тактового
сигнала, через которое повторится значение выбираемого сигнала
(указывается для случайных сигналов и вариаций сигналов);
Radix (основание системы счисления) – двоичное, десятичное, шестнадцатеричное;
Pattern Parameters - уникальный набор параметров для
каждого типа шаблона.
После нажатия кнопки ОК сформированный фрагмент временной диаграммы отображается в рабочей области. Команды
меню Edit и контекстно-зависимого всплывающего меню позволяют копировать в буфер и затем вставлять в нужное место
выбранные фрагменты временных диаграмм.
Завершив редактирование временных диаграмм тестовых
сигналов, следует сохранить их, используя команду Save
Waveform из меню File или кнопку
на оперативной панели
окна HDL Bencher. При этом если указатель окончания тестовой
последовательности был установлен до момента последнего
изменения входных или контроля формирования выходных сигналов, выводится панель предупреждения, в которой предлагается перенести маркер в соответствующую позицию.
Рис. 2.29. Диалоговая панель мастера Pattern Wizard
67
2.8. Синтез проекта средствами XST VHDL
После создания нового проекта и модулей исходного описания следующим этапом процесса разработки цифровых
устройств на базе ПЛИС Xilinx в среде САПР WebPACK ISE
является функциональное моделирование.
Для того чтобы получить доступ к интерактивному списку
основных этапов процесса разработки цифрового устройства на
базе ПЛИС фирмы Xilinx, следует в окне исходных модулей
Навигатора проекта выделить строку с названием файла описания верхнего уровня иерархии проекта, поместив на нее курсор
и щелкнув левой кнопкой мыши. При этом в окне процессов
отображается маршрут проектирования, соответствующий выбранному типу ПЛИС и средств синтеза (рис. 2.30).
Рис. 2.30. Выбор этапа синтеза в рабочей области Навигатора проекта
В процессе синтеза из файлов HDL-описаний проектируемого устройства формируется файл списка соединений (netlist) в
формате EDIF (Electronic Data Interchange Format). Синтезированный файл представляет собой текстовое (ASCII) описание
проекта, но на более низком логическом уровне в формате, воспринимаемом программами трассировки Xilinx. Если исходные
описания проекта представлены не в HDL-форме, а в графиче-
68
ской, в частности схемотехнической, то автоматически выполняется их преобразование в требуемый HDL-формат.
Прежде чем непосредственно активизировать процесс синтеза, следует проконтролировать и при необходимости установить требуемые значения его параметров. Для этого нужно в
окне процессов (рис. 2.30) щелчком левой кнопки мыши выделить строку Synthesize-XST, после чего нажать кнопку
, расположенную на оперативной панели Навигатора проекта, или
воспользоваться командой Properties контекстно-зависимого
всплывающего меню, которое выводится при щелчке на выделенной строке правой кнопки мыши.
В результате выполненных действий на экране монитора
отображается диалоговая панель параметров синтеза, вид которой показан на рис. 2.31.
Рис. 2.31. Диалоговая панель параметров синтеза
Данная диалоговая панель содержит три страницы, снабженные закладками с их названиями: Synthesis options, HDL
options и Xilinx Specific options. Каждая из этих страниц содержит соответствующую группу параметров, представленных в
виде таблицы. Чтобы изменить значение параметра, следует
щелчком левой кнопки мыши активизировать соответствующее
поле таблицы, а затем воспользоваться кнопкой управления выпадающим списком значений или, если параметр имеет два со69
стояния («включено»/«выключено»), щелкнуть левой копкой
мыши на поле индикатора состояния. Содержание страниц диалоговой панели параметров синтеза зависит от выбранного семейства ПЛИС и языка описания HDL. Подробно параметры
синтеза при использовании семейств ПЛИС CPLD и FPGA и
средств XST VHDL рассмотрены в [2].
Процесс синтеза активизируется двойным щелчком левой
кнопки мыши на строке Synthesize в окне процессов Навигатора
проекта. Информация о ходе его выполнения отображается в
окне консольных сообщений. После завершения этого процесса,
отмеченного соответствующей пиктограммой в строке
Synthesize, можно открыть отчет о результатах синтеза, дважды
щелкнув левой кнопкой мыши на строке View Synthesize Report.
При этом открывается новое окно встроенного HDL-редактора
(в режиме только чтения), в котором отображается сформированный отчет.
Отчет содержит шесть основных разделов, выделенных
двойной штриховой линией. В первом разделе указаны установленные значения параметров синтеза и некоторых общих параметров проекта (семейство и тип ПЛИС), а также форматы
входных и выходных файлов.
Второй раздел содержит информацию о ходе компиляции
объектов исходных описаний в соответствии с иерархией проекта. В третьем разделе представлены результаты HDL-анализа
скомпилированных объектов исходных описаний. В четвертом
разделе содержится информация о последовательности их синтеза. В отдельной секции этого раздела расположены данные об
обнаруженных макросах. Пятый раздел отображает последовательность оптимизации, выполняемой в процессе низкоуровнего
синтеза. В заключительной части отчета приведены данные об
основных параметрах процесса синтеза и статистические данные полученных результатов: количество EDIF-элементов и
блоков ввода/вывода.
Кроме текстового отчета средства пакета WebPACK ISE
позволяют отобразить результаты синтеза на RTL-уровне, т.е. на
уровне функциональной схемы, элементы которой – функциональные узлы, образующие уровни регистров и регистровых
70
связей (Register Transfers Level). Результаты синтеза будут отображены в схемотехнической форме, если перед выполнением
этого процесса для параметра Generate RTL Schematic (рис.2.31)
установлено значение YES или ONLY. Для просмотра этой
формы результатов синтеза следует в окне процессов поместить
курсор на строку View RTL Schematic и дважды щелкнуть левой
кнопкой мыши. При этом открывается окно схемотехнического
редактора, в котором отображается RTL-представление проекта.
3. Лабораторные работы
3.1. Лабораторная работа 1
Знакомство с процедурой проектирования цифровых
устройств в пакете WebPACK ISE
Эта ознакомительная лабораторная работа позволяет студентам познакомиться с пакетом WebPACK ISE 10.1. Цели лабораторной работы состоят в следующем:
 создать новый проект;
 добавить файлы к проекту;
 провести анализ иерархического описания проекта;
 провести анализ выполненных назначений выводов СБИС;
 осуществить моделирование;
 осуществить полную компиляцию проекта с порождением файла для конфигурации СБИС.
Все поставленные цели выполняются пошагово с иллюстрацией промежуточных и итоговых результатов. Предполагается, что рабочим каталогом студентов при выполнении лабораторных работ является D:\Student\.
Шаг 1. Запуск пакета и создание проекта
1. Выполните команду Start > Programs > Design Suite 10.1 >
ISE > Project Navigator.
2. В Навигаторе проекта выполните команду File > New Project. Откроется диалоговая панель помощника - New Project Wizard
(рис. 3.1).
71
Рис. 3.1. Диалоговая панель мастера создания проекта
3. В поле Project Name введите имя проекта – lab1. Используя кнопку для выбора рабочей папки проекта введите
D:\Student\lab1.
В поле Top-Level Source Type укажите способ представления
проекта – Shematic (схемный ввод) или HDL.
Нажмите кнопку Next. Появится диалоговая панель Device
Properties (рис. 3.2).
Рис. 3.2. Диалоговая панель выбора ПЛИС
72
4. Заполните поля указанными ниже значениями, затем
нажмите кнопку Next:
 в поле Device Family: Virtex5;
 в поле Device: xc5vlx30;
 в поле Package: ff324;
 в поле Speed Grade: –1;
 в поле Synthesis Tool: XST (VHDL/Verilog);
 в поле Simulator: ISE Simulator (VHDL/Verilog);
 в поле Preferred Language: VHDL.
Появится диалоговая панель Create New Source (рис. 3.3).
Панель может быть использована для создания файла (например, файла верхнего уровня в иерархии) для описания проектируемого модуля.
Рис. 3.3. Диалоговая панель создания нового источника проекта
В данной лабораторной работе все файлы с описанием модулей уже созданы.
5. Нажмите кнопку Next. Появится диалоговая панель Add
Existing Sources (рис. 3.4). Эта панель позволяет добавить текстовые файлы и схемы в создаваемый проект.
6. Нажмите кнопку Add Source.
7. Укажите папку с исходными описаниями (рабочую папку
проекта): D:\Student\lab1 (папка с именем lab1 создана заранее).
73
Рис. 3.4. Панель добавления новых источников в проект
8. Выберите файлы с текстовыми описаниями *.vhd (кроме
файла clkx2.vhd), схемный файл lab1.sch, файл с настройками core
generator – clkx2.xaw, файл с назначением выводов СБИС lab1.ucf.
Рис. 3.5. Выбор необходимых для проекта файлов
9. Нажмите кнопку Open (Открыть). В появившемся окне
(рис. 3.6) в поле Copy to Project оставьте все файлы неотмеченными, т.к. они уже находятся в рабочей папке проекта. Нажмите
74
кнопку Next. В появившемся окне, содержащим информацию о
сделанных назначениях, нажмите кнопку Finish.
Рис. 3.6. Добавление файлов в проект
10. В появившемся окне (рис. 3.7) Вы можете указать этапы
проектирования, в которых будет использован соответствующий файл. Нажмите кнопку OK.
Рис. 3.7. Этапы проектирования, в которых используются добавленные
в проект файлы
75
Проект создан. Появится окно Навигатора проекта (рис.
3.8).
Рис. 3.8. Окно Навигатора проекта
Шаг 2. Анализ иерархии проекта и назначений выводов
цифрового устройства
1. На странице иерархического отображения проекта закладки Sources (рис. 3.9) представлены:
 имя проекта – lab1;
 СБИС, выбранная для реализации проекта – xc5vlx301ff324;
 файл верхнего уровня иерархии – lab1.sch;
 файлы нижних уровней иерархии;
 файл с установками проекта – lab1.ucf.
Чтобы открыть схемный или текстовый файл необходимо дважды щелкнуть левой клавишей мыши по соответствующей строке.
2. Откройте схемный файл верхнего уровня иерархии описания проекта lab1.sch. Убедитесь, что открытая схема соответствует схеме, приведенной на (рис. 3.10).
3. Выбрав закладку Sources и затем закладку Processes (рис.
3.10), Вы перейдите к окну иерархического отображения проекта и окну этапов реализации проекта (рис. 3.11).
76
Рис. 3.9. Иерархическое отображение проекта
Рис. 3.10. Схемная реализация проекта
4. Выберите файл верхнего уровня в иерархии описаний lab1.sch
(наведите на него курсор и один раз щелкните левой кнопкой мыши).
В окне Processes for: lab1 разверните папку User Constraints (пользовательские установки) и выберите строчку Floorplan IO-Pre-Synthesis
(план выводов предварительного синтеза).
77
Рис. 3.11. Окна иерархического отображения проекта
и этапов реализации проекта
5. Дважды щелкните левой кнопкой мыши в строчке Floorplan IO-Pre-Synthesis – запустится графический редактор назначения выводов. В данной лабораторной работе все выводы уже
заданы. Вам необходимо только проверить их.
Рис. 3.12. Графический редактор назначения выводов
78
6. В окне редактора назначений Design Objects (рис. 3.12)
включите фильтр для отображения только выводов проекта IOs.
7. Проверьте, что выводы, заданные в Вашем проекте, соответствуют назначениям, приведенным на рис. 3.12.
Шаг 3. Моделирование
В рамках данной лабораторной работы будет осуществляться поведенческое моделирование с помощью встроенной в пакет ISE системы моделирования ISE simulation. Моделирование
будет реализовано для модуля проекта mux_unit (рис. 3.10).
1. Выберите модуль mux_unit в закладке Sources (рис. 3.13).
2. В меню Project выберите команду New Source.
3. В диалоговой панели New source Wizard (Мастер создания нового источника) (рис. 3.14) укажите имя создаваемого файла
mux_unit_tb и тип файла Test Bench WaveForm. Нажмите кнопку Next.
Рис. 3.13. Выбор модуля для поведенческого моделирования
Рис. 3.14. Создание модуля для поведенческого моделирования
79
4. В окне Associate Source (рис. 3.15) укажите модуль
mux_unit и нажмите кнопку Next.
Рис. 3.15. Диалоговая панель ассоциации с модулем моделирования
5. Появится окно Summary. Нажмите кнопку Finish.
6. Запустится панель инициализации временных параметров
Initial Timing and Clock Wizard. Установите все параметры так,
как показано на рис. 3.16. Нажмите кнопку Finish.
Рис. 3.16. Диалоговая панель инициализации временных параметров
80
7. Появится окно с редактором временных диаграмм (рис. 3.17).
Рис. 3.17. Окно генерации тестовых сигналов
8. На временной диаграмме сигнала Sel, который является
входным сигналом для модуля mux_unit (рис. 3.18), установите
курсор мыши в зоне до 20 ns, нажмите правую кнопку мыши и
укажите команду Set Value.
Рис. 3.18. Установка сигнала Sel
81
9. В диалоговой панели Set Value (рис. 3.19) нажмите кнопку Pattern Wizard.
Рис. 3.19. Диалоговая панель установки значения сигнала Sel
10. В диалоговой панели Pattern Wizard установите значения параметров в соответствии с образцом, приведенном на рис.
3.20. Нажмите кнопку OK.
Рис. 3.20. Установка значений сигнала Sel
11. На временной диаграмме сигнала A[7:0] установите курсор мыши в зоне до 20 ns, нажмите правую кнопку мыши и укажите команду Set Value.
12. В диалоговой панели Set Value нажмите кнопку Pattern
Wizard.
13. В диалоговой панели Pattern Wizard установите значения параметров соответствии с образцом, приведенном на рис.
3.21. Нажмите кнопку OK.
14. На временной диаграмме сигнала B[7:0] установите курсор мыши в зоне до 20 ns, нажмите правую кнопку мыши и укажите команду Set Value.
82
Рис. 3.21. Установка значений сигнала A[7:0]
15. В диалоговой панели Set Value нажмите кнопку Pattern Wizard.
16. В диалоговой панели Pattern Wizard установите значения параметров соответствии с образцом, приведенном на рис.
3.22. Нажмите кнопку OK.
Рис. 3.22. Установка значений сигнала B[7:0]
17. Полученная временная диаграмм должна соответствовать временной диаграмме приведенной на рис. 3.23. Сохраните
ее (нажатием на пиктограмму дискеты). В окне Sources for: менеджера пакета укажите Behavioral Simulation. В закладке
Sources укажите модуль mux_unit_tb. Выберите закладку
Processes. Выполните двойной щелчок левой клавишей мыши в
разделе Simulate Behavioral Model (закладка Processes, раздел
Xilinx ISE Simulation) – процедура моделирования запущена.
83
Рис. 3.23. Результаты задания тестовых сигналов
18. После окончания процедуры моделирования на экране
будут отображены результаты моделирования
Шаг 4. Реализация проекта
Реализация проекта – полная
компиляция проекта с получением
файла для конфигурации СБИС.
1. В окне Sources for: менеджера
проекта (рис. 3.24) укажите Implementation (реализация). В закладке Sources
укажите модуль lab1 (lab1.sch). Выберите закладку Processes. Выполните
двойной щелчок левой клавишей мыши
в поле Generate programming file - будет
запущена полная процедура реализации
проекта (включая получение битового
файла для загрузки проектируемого
цифрового устройства).
2. После окончания процесса реализации проекта в окне сообщений
(закладка Console) появится надпись: Рис. 3.24. Запуск процедуры реализации проекта
Process "Generate Programming File"
completed successfully (рис. 3.25). Будет создан файл lab1.bit
(расширение bit справедливо для ПЛИС семейства FPGA).
84
Рис. 3.25. Отчет о результатах компиляции
3. Переключитесь на закладку Design Summary, в ней будет
отображен отчет о результатах компиляции.
Задание для самостоятельной работы: проанализировать
таблицу Device Utilization Summary с результатами компиляции
проекта, сделать вывод о затраченных ресурсах ПЛИС.
3.2. Лабораторная работа 2
Создание VHDL-проектов простейших логических элементов
Задание: реализовать VHDL-проект для четырехвходового
логического элемента И.
Покажем шаги реализации проекта. VHDL-проект элемента
4И имеет вид:
-- Заголовок проекта, (раздел подключения библиотек и пакетов).
library ieee; -- Оператор подключения библиотеки.
use ieee.std_logic_1164.all; -- Оператор подключения пакета.
-- Раздел объявлений проекта.
entity gate_and is -- Оператор объявления интерфейса компонента.
port (
-- Оператор объявления портов интерфейса.
x1: in std_logic;
x2: in std_logic;
x3: in std_logic;
85
x4: in std_logic;
y : out std_logic);
end entity;
-- Раздел архитектуры проекта.
architecture gate_arch of gate_and is -- Оператор объявления архитектуры.
-- Раздел объявлений архитектуры проекта.
begin
-- Раздел выполняемых операторов архитектуры проекта.
y <= x1 and x2 and x3 and x4;
end architecture gate_arch;
Шаг 1. Запуск пакета и создание проекта
1. Выполните команду Start > Programs > Design Suite 10.1 >
ISE > Project Navigator;
2. В Навигаторе проекта выполните команду File > New Project. Откроется диалоговая панель помощника - New Project Wizard
(рис. 3.26). Заполняем поля диалоговой панели.
Рис. 3.26. Диалоговая панель мастера создания проекта
3. Нажмите кнопку Next. Появится диалоговая панель Device Properties (рис. 3.27). Заполните поля диалоговой панели.
86
Рис. 3.27. Диалоговая панель выбора ПЛИС
4. Нажмите кнопку Next. Появится диалоговая панель Create
New Source. В данном проекте создание новых источников не
предполагается.
5. Нажмите кнопку Next. Появится диалоговая панель Add
Existing Sources. В данном проекте добавление новых источников не предполагается.
6. Нажмите кнопку Next. В итоге получаем отчет о текущей
спецификации проекта.
7. Нажмите кнопку Finish. Открывается окно Навигатора
проекта, созданный новый проект появляется в закладке Sources.
Шаг 2. Созданию файла программы проекта
1. В закладке Sources for: Навигатора проекта указываем
Behavioral Simulation.
2. Щелкая правой кнопкой мыши на странице Sources, выбираем во всплывающем меню пункт New Sources… (рис. 3.28).
3. В диалоговой панели выбора типа источника Select Source
Type выбираем пункт VHDL Module, задаем имя файла проекта
(например, 4gate) (рис. 3.29). Нажимаем кнопку Next.
87
Рис. 3.28. Выбор нового модуля проекта
Рис. 3.29. Создание нового модуля VHDL-описания
В появившемся окне (рис. 3.30) можно задать порты ввода/вывода. На данном этапе задавать их не будем. Нажимаем
кнопку Next и далее Finish.
88
Рис. 3.30. Диалоговая панель задания портов ввода/вывода
На странице Sources появится добавленный файл проекта,
который представляет собой основную конструкцию VHDLпроекта.
4. Вставьте вместо заготовленной конструкции VHDLпроект элемента 4И.
5. Проверим программу на ошибки. Для этого на странице
Sources выбираем добавленный файл проекта 4gate.vhd, на странице Processes выбираем пункт Xilinx ISE Simulator, в открывшемся списке щелкаем два раза левой кнопкой мыши по пункту
Behavioral Check Syntax (рис. 3.31). После проверки рядом с пунктом Behavioral Check Syntax должен появиться зеленый значок,
означающий успешную компиляцию проекта. В случае наличия
ошибок в программе появляется красный значок. Все предупреждения и ошибки отображаются в закладке Console.
Шаг 3. Моделирование
1. Щелкаем правой кнопкой мыши на странице Sources и
выбираем пункт New Sources….
2. В диалоговой панели выбора типа источника Select Source
Type выбираем пункт Test Bench Waveform, задаем имя файла
тестовых воздействий (например, takty) (рис. 3.32).
3. После нажатия кнопки Next выбираем в открывшемся
окне Associate Source модуль, для которого будет сформировано
тестовое воздействие. Нажимаем кнопку Next и далее Finish.
89
Рис. 3.31. Окно Навигатора проекта со вставленным VHDL-проектом
Рис. 3.32. Создание нового модуля тестового воздействия
4. Запускается диалоговая панель инициализации временных
параметров Initial Timing and Clock Wizard, в которой осуществляется настройка тактового сигнала. В нашем проекте в качестве
тактового будет выступать сигнал на порте x1 (рис. 3.33).
90
Рис. 3.33. Настройка параметров тестовых сигналов
5. После нажатия кнопки Finish запускается редактор тестового воздействия (рис. 3.34), в котором вручную формируем
сигналы на портах x2, x3, x4.
Рис. 3.34. Графическое редактирование тестовых сигналов
91
6. Сохраняем сформированный файл (takty.tbw). На странице Sources появится файл тестовых воздействий. Выбираем его
одним щелчком левой кнопки мыши. На странице Processes
появляется возможность запустить этап функционального моделирования: Xilinx ISE Simulator – Simulate Behavioral Model.
7. Запускаем этап функционального моделирования. В результате появляется окно с временной диаграммой работы логического элемента.
Замечание. По умолчанию время моделирования составляет
1000 нс. Если Вы хотите моделировать в течение другого времени, то на инструментальной панели нажимаем на кнопку Restart Simulation, выставляем необходимое время и нажимаем на
кнопку Run For Specified Time.
Результаты моделирования показаны на рис. 3.35.
Рис. 3.35. Результаты моделирования
Задание для самостоятельной работы: для логических
элементов 4И-НЕ, 3ИсключающееИЛИ привести таблицу истинности, создать VHDL-проект и провести моделирование логических элементов. Привести отчет по работе.
3.3. Лабораторная работа 3
Создание VHDL-проектов мультиплексора и демультиплексора
Задание: реализовать VHDL-проект для мультиплексора
4×1 (3 бита в каждом канале).
Эта лабораторная работа иллюстрирует использование операторов if…then и case. VHDL-проект мультиплексора имеет
вид:
-- -----------------------------------------------------------------------------Проект Mux
-- ----------------------------------------------------------------------------library ieee;
92
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity mux is
port (
EN : in std_logic; -- Сигнал разрешения выбора канала.
IN0 : in std_logic_vector (2 downto 0);
IN1: in std_logic_vector (2 downto 0);
IN2: in std_logic_vector (2 downto 0);
IN3: in std_logic_vector (2 downto 0);
SEL : in std_logic_vector (1 downto 0); -- Выбор канала.
OUT : out std_logic_vector (2 downto 0));
end entity;
architecture mux_arch of mux is
constant NON_ACTIVE : std_logic_vector (2 downto 0) := (others
=> '0');
begin
process (SEL, EN, IN0, IN1, IN2, IN3)
begin
if (EN = '0') then
OUT <= NON_ACTIVE;
else
case CONV_INTEGER(SEL) is
when 0 => OUT <= IN0;
when 1 => OUT <= IN1;
when 2 => OUT <= IN2;
when 3 => OUT <= IN3;
when others => OUT <= NON_ACTIVE;
end case;
end if;
end process;
end architecture;
В этом проекте подключен пакет std_logic_unsigned библиотеки ieee, который содержит определения функций, позволяющих преобразовать тип std_logic_vector в integer.
Покажите в проекте операцию преобразования одного типа в другой.
Объявление
constant NON_ACTIVE : std_logic_vector (2 downto 0) := (others => '0');
93
использует операцию, называемую агрегат, которая объединяет
одно или несколько значений в значение составного типа.
Например, агрегат (i => '1', others => '0') задает вектор, в котором на i-м месте стоит 1, а остальные биты - нулевые.
Задание: реализовать VHDL-проект для 4-канального демультиплексора с сигналом разрешения выбора номера канала.
VHDL-проект демультиплексора имеет вид:
-- -----------------------------------------------------------------------------Проект DMux
-- ----------------------------------------------------------------------------library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity dmux is
port (
EN : in std_logic; -- Сигнал разрешения выбора канала.
SEL : in std_logic_vector (1 downto 0); -- выбор номера канала.
IN1 : in std_logic_vector (7 downto 0); -- входной канал.
OUT0 : out std_logic_vector (7 downto 0); -- выходной канал 0.
OUT1 : out std_logic_vector (7 downto 0); -- выходной канал 1.
OUT2 : out std_logic_vector (7 downto 0)); -- выходной канал 2.
OUT3 : out std_logic_vector (7 downto 0)); -- выходной канал 3.
end entity;
architecture dmux_arch of dmux is
constant NON_ACTIVE : std_logic_vector (7 downto 0):= (others
=> '0');
begin
OUT0 <= IN1 when (SEL = 0) and (EN = '1') else NON_ACTIVE;
OUT1 <= IN1 when (SEL = 1) and (EN = '1') else NON_ACTIVE;
OUT2 <= IN1 when (SEL = 2) and (EN = '1') else NON_ACTIVE;
OUT3 <= IN1 when (SEL = 3) and (EN = '1') else NON_ACTIVE;
end architecture;
Задание для самостоятельной работы: реализовать VHDLпроекты мультиплексора и демультиплексора, провести их
функциональное моделирование. Подумайте, как в проекте для
демультиплексора можно использовать оператор выбора case. В
отчете представить листинги проектов с комментариями, пояс-
94
няющими выполнение каждого оператора, и диаграммы временного моделирования.
3.4. Лабораторная работа 4
Создание VHDL-проектов полусумматора и сумматора
Задание: реализовать VHDL-проект для одноразрядных полусумматора и полного сумматора.
VHDL-проект полусумматора имеет вид:
library ieee;
use ieee.std_logic_1164.all;
entity half is
port ( a,b : in std_logic ;
sum , carry : out std_logic);
end half ;
architecture halfadder of half is
begin
sum <= a xor b;
carry <= a and b;
end halfadder ;
VHDL-проект одноразрядного полного сумматора имеет
вид:
library ieee;
use ieee.std_logic_1164.all;
entity full is
port ( a,b,c : in std_logic ;
sum , carry : out std_logic);
end full ;
architecture fulladder of full is
begin
sum <= a xor b xor c ;
carry <= (a and b) or ( b and c) or (c and a);
end fulladder;
Полный одноразрядный сумматор можно представить как
объединение двух полусумматоров. Первый полусумматор служит для сложения двух чисел, принадлежащих одному разряду,
и обеспечивает формирование промежуточной суммы s i и переноса pi 1 .
95
Второй полусумматор складывает перенос с предыдущего
разряда pi с промежуточной суммой s i .
Задание для самостоятельной работы: 1) реализовать
VHDL-проекты одноразрядных полусумматора и полного сумматора, провести их функциональное моделирование. 2) Предложите другой вариант VHDL-кода для реализации одноразрядного сумматора, основанный на использовании оператора языка,
выражающего условие (например, оператора if). 3) Предложите
и реализуйте проект 4-разрядного сумматора с последовательным переносом. Для реализации этого проекта можно использовать модульное конструирование с помощью операторов component и port map. 4) Изучите, как выглядит проект 4разрядного сумматора на RTL-уровне (см. раздел 2.8).
3.5. Лабораторная работа 5
Создание проекта счетчика Джонсона
Задание: реализовать проект счетчика Джонсона на уровне
VHDL и схемотехническом уровне.
Если коэффициент пересчета счетчика равен М=2N,где Nколичество триггеров в схеме, то такой счётчик называется счётчиком Джонсона. По мере поступления тактовых импульсов счётчик
сначала заполняется единицами, а потом от них освобождается. В
схеме счётчика Джонсона используется перекрестная обратная
связь. Таблица работы счетчика имеет вид
Такт
0
1
2
3
4
5
6
7
Q1
0
1
1
1
1
0
0
0
Q2
0
0
1
1
1
1
0
0
Q3
0
0
0
1
1
1
1
0
Q4
0
0
0
0
1
1
1
1
VHDL – проект счетчика Джонсона имеет вид:
96
Library ieee;
use IEEE.std_logic_1164.all;
entity jc2_top is
port(LEFT, RIGHT, STOP, CLK : in std_logic;
Q : inout std_logic_vector (3 downto 0) := "0000");
end jc2_top;
architecture jc2_top_arch of jc2_top is
signal DIR: std_logic := '0';
signal RUN: std_logic := '0';
begin
process (CLK)
begin
if (CLK' event and CLK='1') then
if (RIGHT='0') then
DIR <= '0';
elsif (LEFT='0') then
DIR <= '1';
end if;
if (STOP='0') then
RUN <= '0';
elsif (LEFT='0' or RIGHT='0') then
RUN <= '1';
end if;
if (RUN= '1') then
if (DIR= '1') then
Q(3 downto 1) <= Q(2 downto 0);
Q(0) <= not Q(3);
else
Q(2 downto 0) <= Q(3 downto 1);
Q(3) <= not Q(0);
end if;
end if;
end if;
end process;
end jc2_top_arch;
Замечание: оператор S’event возвращает значение true типа
boolean, если на сигнале произошло событие, и false в противном случае.
97
При формировании тестового воздействия установите длительность импульсов на входе CLK равной 20 нс, а период повторения – 40 нс.
Рассмотрим этапы создания схемотехнического проекта
счетчика Джонсона.
1. Для создания принципиальной схемы разрабатываемого
устройства или его функциональных блоков необходимо выполнить процедуру подготовки основы нового модуля исходного описания проекта, выбрав команду New Source из раздела
Project основного меню Навигатора проекта. В качестве типа
нового модуля в открывшейся диалоговой панели, показанной
на рис. 3.36, необходимо выбрать Schematic.
Рис. 3.36. Создание модуля схемотехнического описание проекта
2. При нажатии кнопки Next, на экран выводится информационная панель (рис. 3.37), в которой указываются исходные
параметры создаваемой схемы. После их подтверждения нажатием кнопки Finish открывается окно схемотехнического редактора пакета WebPACK ISE, в строке заголовка которого отображается название новой схемы.
3. Если дважды щелкнуть левой кнопке мышки по названию
созданного файла с расширением *.sch в окне Sources for: закладки Sources, то автоматически открывается Окно Схемотехнического Редактора принципиальных схем проекта. Здесь и
создается принципиальная схема проекта для ПЛИС. Разобрать98
ся с ним не сложно, и на сегодняшний день данный способ создания принципиальной схемы проекта является одним из основных и простых для разработчиков.
Рис. 3.37. Исходные параметры создаваемой схемы
Для создания новой схемы необходимо выбрать его элементы.
Для быстрого их нахождения имеется фильтр (рис. 3.38).
Рис. 3.38. Страница Sources с полями выбора элементов схемы
99
Нам понадобятся 4D-триггера (рис. 3.39), инвертор и маркеры ввода/вывода.
Рис. 3.39. Элементы для построения счетчика Джонсона
При прорисовке принципиальной схемы необходимо пользоваться инструментальной панелью Shematic Editor (рис. 3.40).
Рис. 3.40. Инструментальная панель схемотехнического редактора
4. Собираем схему счетчика Джонсона (рис. 3.41), используя для соединения элементов кнопку Add Wire инструментальной панели.
Рис. 3.41. Электрическая схема счетчика Джонсона
5. Выбираем на основной панели инструментов кнопку Добавление маркеров ввода-вывода (Add I/O Marker). С помощью
мышки совмещаем курсор с выводами элементов и нажимаем
левую кнопку мышки для постановки входных и выходных
маркеров в наш проект (рис. 3.42).
100
Рис. 3.42. Добавление маркеров в электрическую схему
Система автоматически дает название всем элементам
принципиальной схемы, в нашем случае входные маркеры получили названия XLXN_8, XLXN_7. Эти названия можно изменить, нажав два раза левой кнопкой мыши по необходимому
элементу (рис. 3.43). Измените названия выходных портов на
O1, O2, O3, O4, входному порту тактовых импульсов дайте
название CLK, а порту сброса – RST.
Рис. 3.43. Изменение названия портов
Далее создаем тестовые воздействия по уже известному методу и запускаем схему на моделирование.
Задание для самостоятельной работы: 1) VHDL-проект
снабдить комментариями, поясняющими выполнение каждого
оператора. 2) Проведите функциональное моделирование двух
реализаций проекта.
101
3.6. Лабораторная работа 6
Создание проекта суммирующего 4-разрядного счетчика
Задание: реализовать проект суммирующего 4-разрядного
счетчика с последовательным переносом на уровне VHDL и
схемотехническом уровне.
Счетчик должен подсчитывать количество поступивших на
него тактовых импульсов clk, когда на его счетном входе en присутствует сигнал 1. Счетчик должен сбрасываться в 0 сигналом
rst=0, не ожидая прихода очередного тактового сигнала clk.
VHDL-проект счетчика с последовательным переносом имеет вид:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
entity counter16 is
port (clk, en, rst : in std_logic;
count : out std_logic_vector (3 downto 0) := "0000");
end counter16;
architecture behav of counter16 is
signal cnt: std_logic_vector (3 downto 0);
begin
process (clk, en, cnt, rst)
begin
if (rst = '0') then
cnt <= (others => '0');
elsif (clk'event and clk = '1') then
if (en = '1') then
cnt <= cnt + 1;
end if;
end if;
end process;
count <= cnt;
end behav;
Программирование и визуализация проекта будет вестись
на отладочной плате NI Digital Electronics FPGA Board в автономном режиме. Поэтому необходимо знать номера ножек ПЛИС, к
102
которым будут подключены переключатели разрешения работы
(порт en), сброса (порт rst) и кнопка тактовых импульсов (порт
clk). Для решения этой задачи необходимо воспользоваться
рис. 1.1 и подразделом «Параметры в UCF-файлах» раздела 1.
Рассмотрим назначение выводов ПЛИС.
1. В закладке Sources укажите файл выполняемого проекта.
В закладке Processes выберите Floorplan IO-Pre-Synthesis.
Двойным щелчком левой клавиши мыши запустите редактор
PACE. В результате будет создан файл *.ucf, в котором будут
храниться все заданные вами назначения.
2. Задаем номера выводов ПЛИС в соответствующих строках столбца LOC (закладка Design Objects List) (рис. 3.44).
Рис. 3.44. Ассоциация портов с ножками ПЛИС
3. После назначения выводов ПЛИС необходимо для каждого вывода задать стандарт ввода\вывода – LVCMOS33. Для
этого в соответствующей строке столбца I/O Std (рис. 3.44)
щелкните левой клавишей мыши и выберите LVCMOS33.
4. Если все правильно, то сохраните назначения, выполненные
в редакторе PACE, если нет – необходимо внести исправления.
103
Следующим этапом реализации проекта является полная
компиляция проекта с получением файла для конфигурации
ПЛИС.
1. В закладке Sources укажите модуль верхнего уровня в
иерархии описания проекта. В закладке Processes выберите пункт
Generate Programming File и дважды щелкните левой клавишей
мыши – будет запущена полная процедура реализации проекта
(включая получение битового файла для загрузки ПЛИС).
2. После окончания процесса реализации проекта в окне
процессора сообщений (закладка Console) появится сообщение:
Process "Generate Programming File" completed successfully. Будет создан файл с расширением bit.
Этап программирования ПЛИС проведите в соответствии с
рекомендациями подраздела «Программирование ППЗУ» раздела 1 «Сведения о лабораторной установке».
Задание для самостоятельной работы: 1) VHDL-проект
снабдить комментариями, поясняющими выполнение каждого
оператора. 2) Реализовать проект на схемотехническом уровне.
3) Провести функциональное моделирование для двух реализаций проекта. 4) Удостовериться в правильности аппаратной реализации проекта.
Список рекомендуемой литературы
1. Отладочная плата NI Digital Electronics FPGA Board: Руководство по эксплуатации // National Instruments Corporation [Электронный
ресурс]. URL: http://www.ni.com
2. Зотов В.Ю. Проектирование цифровых устройств на основе
ПЛИС фирмы Xilinx в САПР WebPACK ISE. / В.Ю. Зотов. – М.: Горячая линия – Телеком, 2003. – 624 с.
3. Агаков В. Г. Основы проектирования цифровых устройств на
ПЛИС: учебное пособие / Агаков В.Г., Иванов П.В., Носов А.А. - Чебоксары: Изд-во Чуваш. ун-та, 2012. - 303с.
4. Бабак В.П. VHDL: справ. пособие по основам языка / В.П. Бабак, А.Г. Короченко, Н.П. Тимошенко, С.Ф. Филоненко. – М.: Издательский дом «Додэка-XXI», 2008. – 224 с.
5. Бибило П.Н. Основы языка VHDL: учеб. пособие / Г.Н. Бибило. – 4-е изд. – М.: Книжный дом «Либроком», 2009. – 328 с.
104
Оглавление
1. Сведения о лабораторной установке ................................................... 3
1.1. Компоненты, сигналы и режимы работы отладочной платы
NI Digital Electronics FPGA Board ............................................ 4
1.2. Программирование с помощью программного обеспечения
Xilinx iMPACT ......................................................................... 18
2. Основы работы с САПР WebPACK ISE ......................................... 23
2.1. Управляющая оболочка пакета WEBPACK ISE – Навигатор
проекта ..................................................................................... 25
2.2. Схемотехнический редактор пакета WebPACK ISE (ECS) .. 28
2.3. Модуль программирования iMPACT ISE .............................. 35
2.4. Создание нового проекта в среде пакета WebPACK ISE ..... 38
2.5. Подготовка текстового описания проекта ............................. 44
2.6. Разработка схемотехнического описания проекта ... ............. 47
2.7. Подготовка тестового модуля проекта ................................... 60
2.8. Синтез проекта средствами XST VHDL... .............................. 68
3. Лабораторные работы... ...................................................................... 71
3.1. Лабораторная работа 1 ............................................................ 71
3.2. Лабораторная работа 2 ............................................................ 85
3.3. Лабораторная работа 3 ............................................................ 92
3.4. Лабораторная работа 4 ............................................................ 95
3.5. Лабораторная работа 5 ............................................................ 96
3.6. Лабораторная работа 6 .......................................................... 102
105
––––––––––––––––
ПРОЕКТИРОВАНИЕ ЦИФРОВЫХ УСТРОЙСТВ НА
ПЛИС ФИРМЫ XILINX В СРЕДЕ WEBPACK ISE
Лабораторный практикум
Редактор М.В. Яковлева
Компьютерная верстка и правка Г.В. Малинина
Согласно Закону № 436-ФЗ от 29 декабря 2010 года
данная продукция не подлежит маркировке
Подписано в печать 19.11.2013. Формат 60×84/16.
Бумага газетная. Печать офсетная. Гарнитура Times.
Усл. печ. л. 2,79.
Уч.-изд. л. 2,76. Тираж 100 экз. Заказ № 807.
Издательство Чувашского университета
Типография университета
428015 Чебоксары, Московский просп., 15
Download