ОГЛАВЛЕНИЕ

ПРЕДИСЛОВИЕ 3

1. ХАРАКТЕРИСТИКА МИКРОПРОЦЕССОРНЫХ ЯДЕР И СРЕДСТВ ПРОЕКТИРОВАНИЯ ВСТРАИВАЕМЫХ МИКРОПРОЦЕССОРНЫХ СИСТЕМ НА ОСНОВЕ ПЛИС ФИРМЫ XILINX 5
1.1. Типы микропроцессорных ядер, предназначенных для разработки встраиваемых систем на основе ПЛИС фирмы Xilinx 5
1.2. Краткая характеристика микропроцессорных ядер семейства PicoBlaze 6
1.3. Краткая характеристика микропроцессорных ядер семейства MicroBlaze 7
1.4. Краткая характеристика микропроцессорных ядер семейства PowerPC 8
1.5. Краткий обзор основных средств проектирования, предоставляемых фирмой Xilinx 10

2. МИКРОПРОЦЕССОРНОЕ ЯДРО PICOBLAZE, ПРЕДНАЗНАЧЕННОЕ ДЛЯ РАЗРАБОТКИ ВСТРАИВАЕМЫХ СИСТЕМ НА ОСНОВЕ ПЛИС ФИРМЫ XILINX СЕМЕЙСТВ SPARTAN-II, SPARTAN-IIE, VIRTEX, VIRTEX-E 15
2.1. Основные характеристики микропроцессорного ядра PicoBlaze (семейства Spartan-II, Spartan-IIE, Virtex, Virtex-E) 15
2.2. Архитектура микропроцессорного ядра PicoBlaze (семейства Spartan-II, Spartan-IIE, Virtex, Virtex-E) 16
2.3. Структура проекта микропроцессорного ядра PicoBlaze
(семейства Spartan-II, Spartan-IIE, Virtex, Virtex-E) 19
2.4. Общая характеристика системы команд, поддерживаемых микропроцессорным ядром PicoBlaze (семейства Spartan-II, Spartan-IIE,
Virtex, Virtex-E) 24

3. СИСТЕМА КОМАНД МИКРОПРОЦЕССОРНОГО ЯДРА PICOBLAZE, РЕАЛИЗУЕМОГО НА ОСНОВЕ ПЛИС СЕМЕЙСТВ SPARTAN-II,
SPARTAN-IIE, VIRTEX, VIRTEX-E 26
3.1. Команды управления последовательностью выполнения операций в программе 26
3.2. Группа логических команд 30
3.3. Группа арифметических команд 34
3.4. Команды сдвига данных 37
3.5. Команды ввода/вывода 39
3.6. Команды обслуживания прерываний 40
3.7. Различия в системе команд микропроцессорных ядер семейства PicoBlaze 42

4. ОСОБЕННОСТИ МИКРОПРОЦЕССОРНОГО ЯДРА PICOBLAZE, ПРЕДНАЗНАЧЕННОГО ДЛЯ ПРИМЕНЕНИЯ В ПРОЕКТАХ, РЕАЛИЗУЕМЫХ НА ОСНОВЕ ПЛИС СЕМЕЙСТВА VIRTEX-II 43
4.1. Основные характеристики микропроцессорного ядра PicoBlaze
(семейство Virtex-II) 43
4.2. Архитектура микропроцессорного ядра PicoBlaze (семейство Virtex-II) 43
4.3. Структура проекта микропроцессорного ядра PicoBlaze
(семейство Virtex-II) 45
4.4. Система команд микропроцессорного ядра PicoBlaze (семейство Virtex-II) 50
4.5. Команды управления последовательностью выполнения операций в программе для ядра PicoBlaze, реализуемого на базе кристаллов
семейства Virtex-II 50
4.6. Группа логических команд микропроцессорного ядра PicoBlaze
(семейство Virtex-II) 52
4.7. Группа арифметических команд микропроцессорного ядра PicoBlaze (семейство Virtex-II) 54
4.8. Команды сдвига данных для микропроцессорного ядра PicoBlaze, реализуемого на основе кристаллов семейства Virtex-II 55
4.9. Команды ввода/вывода микропроцессорного ядра PicoBlaze
(семейство Virtex-II) 56
4.10. Команды обслуживания прерываний микропроцессорного ядра PicoBlaze (семейство Virtex-II) 57

5. ОСОБЕННОСТИ МИКРОПРОЦЕССОРНОГО ЯДРА PICOBLAZE, ПРЕДНАЗНАЧЕННОГО ДЛЯ ПРИМЕНЕНИЯ В ПРОЕКТАХ, РЕАЛИЗУЕМЫХ
НА ОСНОВЕ ПЛИС СЕМЕЙСТВА COOLRUNNER-II 58
5.1. Основные характеристики микропроцессорного ядра PicoBlaze
(семейство CoolRunner-II) 58
5.2. Архитектура микропроцессорного ядра PicoBlaze
(семейство CoolRunner-II) 59
5.3. Структура проекта микропроцессорного ядра PicoBlaze (семейство CoolRunner-II) 60
5.4. Система команд микропроцессорного ядра PicoBlaze
(семейство CoolRunner-II) 64
5.5. Команды управления последовательностью выполнения операций в программе для ядра PicoBlaze, реализуемого на базе кристаллов семейства CoolRunner-II 64
5.6. Группа логических команд микропроцессорного ядра PicoBlaze, предназначенного для использования в кристаллах семейства CoolRunner-II 66
5.7. Группа арифметических команд микропроцессорного ядра PicoBlaze, предназначенного для применения в кристаллах семейства CoolRunner-II 67
5.8. Команды сдвига данных для микропроцессорного ядра PicoBlaze, предназначенного для использования в кристаллах семейства CoolRunner-II 69
5.9. Команды ввода/вывода микропроцессорного ядра PicoBlaze, предназначенного для применения в кристаллах семейства CoolRunner-II 70
5.10. Команды обслуживания прерываний микропроцессорного ядра PicoBlaze, реализуемого на основе кристаллов семейства CoolRunner-II 70

6. ОСОБЕННОСТИ МИКРОПРОЦЕССОРНОГО ЯДРА PICOBLAZE, ПРЕДНАЗНАЧЕННОГО ДЛЯ ПРИМЕНЕНИЯ В ПРОЕКТАХ, РЕАЛИЗУЕМЫХ НА ОСНОВЕ ПЛИС СЕМЕЙСТВ SPARTAN-3, VIRTEX-II, VIRTEX-IIPRO И VIRTEX-4 72
6.1. Основные характеристики микропроцессорного ядра PicoBlaze
(семейства Spartan-3, Virtex-II, Virtex-IIPRO и Virtex-4) 72
6.2. Архитектура микропроцессорного ядра PicoBlaze (семейства Spartan-3, Virtex-II, Virtex-IIPRO и Virtex-4) 73
6.3. Структура проекта микропроцессорного ядра PicoBlaze
(семейства Spartan-3, Virtex-II, Virtex-IIPRO и Virtex-4) 75
6.4. Общая характеристика системы команд микропроцессорного
ядра PicoBlaze (семейства Spartan-3, Virtex-II, Virtex-IIPRO и Virtex-4) 79
6.5. Команды управления последовательностью выполнения операций в программе для ядра PicoBlaze, реализуемого на базе кристаллов семейств Spartan-3, Virtex-II, Virtex-IIPRO и Virtex-4 80
6.6. Группа логических команд микропроцессорного ядра PicoBlaze, предназначенного для использования в кристаллах семейств Spartan-3,
Virtex-II, Virtex-IIPRO и Virtex-4 82
6.7. Группа арифметических команд микропроцессорного ядра PicoBlaze, предназначенного для использования в кристаллах семейств Spartan-3,
Virtex-II, Virtex-IIPRO и Virtex-4 85
6.8. Команды сдвига данных для микропроцессорного ядра PicoBlaze, реализуемого в кристаллах семейств Spartan-3, Virtex-II, Virtex-IIPRO
и Virtex-4 88
6.9. Команды ввода/вывода микропроцессорного ядра PicoBlaze, предназначенного для использования в кристаллах семейств Spartan-3,
Virtex-II, Virtex-IIPRO и Virtex-4 89
6.10. Команды обслуживания прерываний микропроцессорного ядра PicoBlaze, предназначенного для использования в кристаллах семейств Spartan-3,
Virtex-II, Virtex-IIPRO и Virtex-4 90
6.11. Команды чтения и записи данных в сверхоперативное запоминающее устройство микропроцессорного ядра PicoBlaze, предназначенного для использования в кристаллах семейств Spartan-3, Virtex-II, Virtex-IIPRO и Virtex-4 90
6.12. Загрузчик программ для микропроцессорного ядра PicoBlaze (семейства Spartan-3, Virtex-II, Virtex-IIPRO и Virtex-4) 92

7. РАЗРАБОТКА ПРОГРАММ НА ЯЗЫКЕ АССЕМБЛЕРА ДЛЯ МИКРОПРОЦЕССОРНЫХ ЯДЕР СЕМЕЙСТВА PICOBLAZE 95
7.1. Подготовка исходного текста программы (семейство PicoBlaze) 95
7.2. Директивы ассемблера (семейство PicoBlaze) 97
7.3. Трансляция программ, написанных на языке ассемблера
(семейство PicoBlaze) 101
7.4. Файлы, формируемые ассемблером (семейство PicoBlaze) 102
7.5. Типовые ошибки при написании программ на языке ассемблера 106

8. ПРОЕКТИРОВАНИЕ ВСТРАИВАЕМЫХ СИСТЕМ НА ОСНОВЕ МИКРОПРОЦЕССОРНЫХ ЯДЕР СЕМЕЙСТВА PICOBLAZE 108
8.1. Этапы проектирования встраиваемых систем на основе
микропроцессорных ядер семейства PicoBlaze 108
8.2. Структура проекта встраиваемой микропроцессорной системы
на основе ядра семейства PicoBlaze в САПР серии Xilinx ISE 111
8.3. Создание нового проекта встраиваемой микропроцессорной системы на основе ядра семейства PicoBlaze в САПР серии Xilinx ISE 112
8.4. Выполнение основных этапов проектирования встраиваемых систем
на основе микропроцессорных ядер семейства PicoBlaze в САПР
серии Xilinx ISE 125
8.5. Загрузка конфигурационной последовательности разработанной микропроцессорной системы в ПЛИС 132
8.6. Генерация файлов программирования ПЗУ/ППЗУ
с помощью модуля iMPACT 136
8.7. Программирование ППЗУ серий XC18V00 и Platform Flash
помощью модуля iMPACT 142
8.8. Проектирование контроллера на основе микропроцессорного
ядра PicoBlaze, предназначенного для реализации в ПЛИС
семейства Spartan-3 143

9. MICROBLAZE-СЕМЕЙСТВО 32-РАЗРЯДНЫХ МИКРОПРОЦЕССОРНЫХ
ЯДЕР, ПРЕДНАЗНАЧЕННЫХ ДЛЯ ПРОЕКТИРОВАНИЯ ВСТРАИВАЕМЫХ СИСТЕМ НА ОСНОВЕ ПЛИС СЕРИЙ FPGA ФИРМЫ XILINX 168
9.1. Основные характеристики микропроцессорных ядер
семейства MicroBlaze 168
9.2. Архитектура микропроцессорных ядер семейства MicroBlaze 170
9.3. Структура регистров статуса MSR и FSR микропроцессорных ядер
семейства MicroBlaze 175
9.4. Шинные интерфейсы микропроцессорных ядер семейства MicroBlaze 177
9.5. Периферийные компоненты для проектирования встраиваемых систем на основе микропроцессорных ядер семейства MicroBlaze 181
9.6. Ограничения адресного пространства, производительности
и объема памяти для микропроцессорных ядер семейства MicroBlaze 182
9.7. Распределение адресного пространства памяти микропроцессорных ядер семейства MicroBlaze 183
9.8. Размещение исполняемого кода программ в памяти
микропроцессорных ядер семейства MicroBlaze 184
9.9. Организация хранения данных в памяти и регистрах общего назначения микропроцессорных ядер семейства MicroBlaze 185

10. СИСТЕМА КОМАНД МИКРОПРОЦЕССОРНЫХ ЯДЕР
СЕМЕЙСТВА MICROBLAZE 190
10.1. Общая характеристика команд, поддерживаемых микропроцессорными ядрами семейства MicroBlaze 190
10.2. Форматы команд, поддерживаемых микропроцессорными
ядрами семейства MicroBlaze 191
10. 3. Группа арифметических команд 192
10. 4. Группа логических команд 203
10. 5. Команды сдвига данных 208
10. 6. Команды преобразования типов данных 212
10. 7. Команды передачи данных 215
10. 8. Команды управления последовательностью выполнения операций в программе 221
10. 9. Группа инструкций ввода/вывода 235
10.10. Группа специальных команд 237
10.11. Инструкции записи в кеш-память 240
10.12. Инструкции поразрядного сравнения двух операндов 240
10.13. Группа команд, предназначенных для выполнения операций
с плавающей запятой 242

11. EMBEDDED DEVELOPMENT KIT – СИСТЕМА ПРОЕКТИРОВАНИЯ ВСТРАИВАЕМЫХ 32-РАЗРЯДНЫХ МИКРОПРОЦЕССОРНЫХ СИСТЕМ НА ОСНОВЕ ПЛИС СЕРИЙ FPGA ФИРМЫ XILINX 247
11.1. Основные характеристики пакета Xilinx Embedded Development Kit 247
11.2. Структура средств разработки встраиваемых микропроцессорных систем Embedded System Tools 249
11.3. Краткая характеристика и пользовательский интерфейс управляющей оболочки Xilinx Platform Studio 254
11.4. Этапы проектирования микропроцессорных систем на основе ПЛИС семейств FPGA фирмы Xilinx с применением ядер семейства MicroBlaze 258
11.5. Структура проекта в САПР встраиваемых микропроцессорных
систем Xilinx Embedded System Tools 260

12. ПРОЕКТИРОВАНИЕ ВСТРАИВАЕМЫХ 32-РАЗРЯДНЫХ МИКРОПРОЦЕССОРНЫХ СИСТЕМ НА ОСНОВЕ ЯДЕР СЕМЕЙСТВА MICROBLAZE 261
12.1. Создание нового проекта встраиваемой микропроцессорной системы
в среде управляющей оболочки Xilinx Platform Studio 262
12.2. Синтаксис файла спецификации аппаратной платформы разрабатываемой микропроцессорной системы, реализуемой на базе ПЛИС семейств FPGA фирмы Xilinx 273
12.3. Создание спецификации аппаратной платформы
разрабатываемой микропроцессорной системы в среде
управляющей оболочки Xilinx Platform Studio 278
12. 4. Подготовка файла временных и топологических ограничений проекта аппаратной платформы разрабатываемой микропроцессорной системы 300
12.5. Формирование списка соединений аппаратной платформы
разрабатываемой микропроцессорной системы 303
12.6. Реализация проекта аппаратной части разрабатываемой
микропроцессорной системы в кристалле FPGA 304
12. 7. Генерация конфигурационной последовательности для проекта
аппаратной части разрабатываемой 32-разрядной
микропроцессорной системы 311
12.8. Синтаксис и структура файла спецификации программной платформы разрабатываемой 32-разрядной микропроцессорной системы,
реализуемой на базе ПЛИС семейств FPGA фирмы Xilinx 315
12.9. Создание спецификации программных средств разрабатываемой
32-разрядной микропроцессорной системы в среде управляющей
оболочки Xilinx Platform Studio 320
12.10. Генерация программной платформы разрабатываемой 32-разрядной микропроцессорной системы, реализуемой на основе ПЛИС семейств FPGA фирмы Xilinx 326
12.11. Создание проекта прикладной программы для разрабатываемой
32-разрядной микропроцессорной системы в среде управляющей
оболочки Xilinx Platform Studio 326
12.12. Формирование исходных модулей прикладной программы для разрабатываемой 32-разрядной микропроцессорной системы 333
12.13. Создание файла директив для компоновщика (linker script) 334
12.14. Компиляция и компоновка прикладной программы
для разрабатываемой 32-разрядной микропроцессорной системы 338
12.15. Запись исполняемого кода прикладной программы в конфигурационную последовательность проекта аппаратной части микропроцессорной системы, и загрузка конфигурационных данных в кристалл FPGA 338

13. РАЗРАБОТКА ВСТРАИВАЕМЫХ 32-РАЗРЯДНЫХ МИКРОПРОЦЕССОРНЫХ СИСТЕМ НА ОСНОВЕ ЯДЕР СЕМЕЙСТВА MICROBLAZE С ПОМОЩЬЮ МАСТЕРА BASE SYSTEM BUILDER WIZARD 341
13.1. Выбор способа создания проекта разрабатываемой микропроцессорной системы в САПР Xilinx EST 341
13.2. Формирование исходных файлов описания разрабатываемой
32-разрядной микропроцессорной системы с помощью
мастера Base System Builder Wizard 344
13.3. Формирование конфигурационной последовательности для проекта аппаратной части разрабатываемой 32-разрядной
микропроцессорной системы 372
13.4. Создание программного обеспечения для разрабатываемой
32-разрядной микропроцессорной системы 373
13.5. Включение исполняемого кода прикладной программы
в конфигурационную последовательность проекта аппаратной части микропроцессорной системы и загрузка конфигурационных данных
в кристалл FPGA 373

14. АППАРАТНЫЕ СРЕДСТВА РАЗРАБОТКИ ВСТРАИВАЕМЫХ МИКРОПРОЦЕССОРНЫХ СИСТЕМ НА СНОВЕ ПЛИС ФИРМЫ XILINX 375
14.1. Инструментальный комплект CoolRunner-II Design Kit 375
14.1.1. Назначение и основные характеристики инструментального комплекта CoolRunner-II Design Kit 375
14.1.2. Структура инструментального модуля Digilab XC2
(Digilab XC2-XL) 377
14.1.3. Организация питания инструментального модуля Digilab XC2 (Digilab XC2-XL) 382
14.1.4. Формирование цепочки периферийного сканирования ПЛИС в составе инструментального модуля Digilab XC2 (Digilab XC2-XL) 383
14.1.5. Работа с инструментальным модулем Digilab XC2
(Digilab XC2-XL) 384
14.1.6. Краткая характеристика ПЛИС семейства CoolRunner-II, используемых в инструментальном модуле Digilab XC2
(Digilab XC2-XL) 385
14.2. Инструментальный комплект Spartan-3 Starter Kit 387
14.2.1. Назначение и основные характеристики инструментального комплекта Spartan-3 Starter Kit 387
14.2.2. Структура инструментального модуля Spartan-3 Starter Board 389
14.2.3. Краткая характеристика ПЛИС XC3S200, используемой в инструментальном модуле Spartan-3 Starter Board 395
14.2.4. Описание структуры тестового проекта 397
14.2.5. Использование инструментального модуля
Spartan-3 Starter Board 398

Приложение 1. VHDL-ОПИСАНИЕ ИСПОЛНИТЕЛЬНОГО МОДУЛЯ МИКРОПРОЦЕССОРНОГО ЯДРА PICOBLAZE, РЕАЛИЗУЕМОГО
НА ОСНОВЕ ПЛИС СЕМЕЙСТВ SPARTAN-II, SPARTAN-IIE,
VIRTEX, VIRTEX-E 399

Приложение 2. VHDL-ОПИСАНИЕ МИКРОПРОЦЕССОРНОГО
ЯДРА PICOBLAZE, ПРЕДНАЗНАЧЕННОГО ДЛЯ ИСПОЛЬЗОВАНИЯ В ПРОЕКТАХ, ВЫПОЛНЯЕМЫХ НА ОСНОВЕ ПЛИС СЕМЕЙСТВА COOLRUNNER-II 443

Приложение 3. VHDL-ОПИСАНИЕ ИСПОЛНИТЕЛЬНОГО МОДУЛЯ МИКРОПРОЦЕССОРНОГО ЯДРА PICOBLAZE, РЕАЛИЗУЕМОГО
НА ОСНОВЕ ПЛИС СЕМЕЙСТВ SPARTAN-3, VIRTEX-II, VIRTEX-IIPRO, VIRTEX-4 478

ЛИТЕРАТУРА 512