Рекомендуем

Разработка цифровых устройств на основе ПЛИС Xilinx<sup>®</sup> с применением языка VHDLТарасов И.Е. Разработка цифровых устройств на основе ПЛИС Xilinx® с применением языка VHDL170 р.
Архитектуры ПЛИС фирмы Xilinx: CPLD и FPGA 7-й серииСоловьев В.В. Архитектуры ПЛИС фирмы Xilinx: CPLD и FPGA 7-й серии
Современные семейства ПЛИС фирмы XilinxКузелин М.О., Кнышев Д.А., Зотов В.Ю. Современные семейства ПЛИС фирмы Xilinx

Книга

ПЛИС Xilinx. Языки описания аппаратуры VHDL и Verilog, САПР, приемы проектирования

2019 г.
538 стр.
Тираж 500 экз.
Формат 60х90/16 (145x215 мм)
Исполнение: в мягкой обложке
ISBN 978-5-9912-0802-4
ББК 32.852.3
УДК 681.3
Аннотация

Рассмотрен широкий спектр вопросов, связанных с разработкой цифровых устройств с применением ПЛИС Xilinx. Изложение материала основано на ПЛИС серии 7, концентрируясь на проектировании систем начального и среднего уровня. Сведения могут быть использованы и для проектирования на базе семейств UltraScale и UltraScale+. Рассмотрены также семейство Spartan-6 и САПР ISE. Кроме основных сведений о цифровых устройствах и ПЛИС, изложены сведения об основных языках описания аппаратуры – VHDL и Verilog. Приведены необходимые сведения для быстрого освоения САПР ПЛИС, включая настройку процессорных систем и подробные сведения о настройке САПР для оптимизации проектов. В отдельной главе рассмотрены примеры разработки цифровых модулей. Материал сопровождается аналитическими обзорами и рекомендациями, включающими выбор инструментов проектирования, семейства ПЛИС, отладочных плат и организации повышения квалификации.

Для специалистов в области проектирования цифровых систем, студентов, аспирантов и преподавателей учебных заведений, а также энтузиастов.

Оглавление

От автора

Введение
1. Начальные сведения о цифровой электронике и архитектуре ПЛИС Xilinx
1.1. Основы схемотехники цифровых устройств
1.2. Архитектуры ПЛИС SPLD и CPLD
1.3. Архитектура ПЛИС FPGA
1.4. Аппаратный состав и области применения ПЛИС FPGA
1.5. Логические ячейки ПЛИС FPGA
1.6. Блоки ввода-вывода
1.7. Блочная память
1.8. Секции DSP48
1.9. Тактовые ресурсы
1.10. Высокоскоростные последовательные приемопередатчики
1.11. Аппаратные контроллеры PCI Express
1.12. Модуль DeviceDNA
1.13. Модуль AMS (Agile Mixed Signal, только для серии 7)
1.14. Таблицы характеристик ПЛИС Xilinx
1.15. ПЛИС с архитектурой CPLD
1.16. Условное обозначение микросхем ПЛИС Xilinx

2. САПР ISE и Vivado — быстрый старт
2.1. Быстрый старт в САПР Vivado
2.2. Быстрый старт в САПР ISE

3. Язык описания аппаратуры VHDL
3.1. Основы языка VHDL
3.2. Структура модуля на VHDL
3.3. Соединение модулей
3.4. Типы данных
3.4.1. Скалярные типы
3.4.2. Композитные типы
3.4.3. Преобразования типов
3.4.4. Указатели
3.4.5. Файлы (указатели на файлы)
3.5. Операторы языка VHDL
3.5.1. Логические операторы
3.5.2. Операторы отношения
3.5.3. Арифметические операторы
3.5.4. Операторы сдвига
3.5.5. Операторы сцепления
3.6. Конкурирующие (concurrent) операции
3.7. Процедурные блоки
3.8. Управляющие структуры
3.8.1. Оператор if
3.8.2. Оператор case
3.8.3. Оператор with..select
3.8.4. Оператор for..loop
3.8.5. Оператор while..loop
3.9. Процедуры и функции
3.9.1. Процедуры
3.9.2. Функции
3.10. Условная и множественная генерация
3.11. Организация проекта и параметризованные модули
3.12. Пакеты и библиотеки
3.13. Моделирование на VHDL
3.13.1. Основы моделирования
3.13.2. Использование файловых операций

4. Язык описания аппаратуры Verilog
4.1. Основы языка Verilog
4.2. Типы данных
4.3. Формат представления значений
4.4. Массивы
4.5. Порты
4.6. Соединение модулей
4.7. Операторы языка Verilog
4.7.1. Побитовые операторы (bitwise)
4.7.2. Арифметические операторы (arithmetic)
4.7.3. Логические операторы (logical)
4.7.4. Операторы отношения (relational)
4.7.5. Операторы равенства/тождества (equality)
4.7.6. Операторы свертки (reduction)
4.7.7. Условный оператор (conditional)
4.7.8. Операторы сцепления/повторения (concatenation/replication)
4.7.9. Операторы сдвига (shift)
4.8. Приоритет операторов
4.9. Процедурные блоки
4.10. Блокирующее и неблокирующее присваивание в процедурных блоках
4.11. Управляющие структуры
4.11.1. Условный оператор if/then
4.11.2. Оператор case
4.11.3. Оператор for
4.12. Задачи и функции
4.13. Организация проекта и параметризованные модули
4.14. Условная генерация
4.15. Моделирование на Verilog
4.16. Создание отчетов и сообщений

5. Дополнительные инструменты проектирования на базе ПЛИС
5.1. IP Integrator
5.2. Работа с процессорной системой ARM
5.3. Порядок разработки программного проекта в SDK
5.4. Софт-процессоры
5.4.1. Процессор MicroBlaze
5.4.2. Процессор PicoBlaze
5.4.3. Перспективы применения многоядерных процессорных систем в проектах на ПЛИС
5.5. Vivado HLS (High-Level Synthesis)
5.5.1. Циклы в Vivado HLS
5.5.2. Массивы и работа с памятью
5.5.3. Поддержка языков высокого уровня
5.5.4. Быстрый старт в Vivado HLS
5.5.5. Vivado HLS в сравнении с другими средствами проектирования Xilinx
5.6. Отладка в реальном времени с помощью приложения ChipScope
5.7. Заключение

6. Примеры реализации схем на базе ПЛИС
6.1. Комбинационная логика
6.2. Мультиплексоры
6.3. Арифметические операции
6.4. Триггеры и регистры
6.5. Сдвиговые регистры
6.6. Счетчики
6.7. Делители частоты
6.8. Таймеры
6.9. Широтно-импульсная модуляция
6.10. Модули памяти
6.11. Конечный автомат
6.11.1. Конечные автоматы Мили и Мура
6.11.2. Особенности описания конечных автоматов для проектов в ПЛИС
6.12. Контроллер UART
6.13. Тактовый генератор
6.13.1. Настройка тактового генератора
6.13.2. Формирование выходного тактового сигнала
6.14. Синхронизация асинхронных сигналов
6.15. Подключение SPI
6.16. Параллельные интерфейсы, синхронизированные с источником — АЦП и CPI
6.17. Интерфейс VGA
6.18. Планирование сигналов сброса
6.19. Учет наборов управляющих сигналов для серии 7
6.20. Умножение
6.20.1. Умножение с помощью компонентов DSP48
6.20.2. Умножение с помощью таблиц
6.20.3. Умножение на константу
6.20.4. Последовательное умножение
6.20.5. Реализация параллельного умножения на базе логических ячеек ПЛИС
6.21. Деление
6.22. Операции с плавающей точкой
6.23. Трансцендентные функции
6.23.1. Табличное представление трансцендентных функций
6.23.2. Алгоритм CORDIC
6.24. Вычисление экспоненты
6.25. Простое процессорное ядро
6.25.1. Представление процессора в виде конечного автомата
6.25.2. Проектирование простого процессорного ядра
6.25.3. Примеры задач для простых процессорных ядер
6.26. Фильтр с конечной импульсной характеристикой
6.27. Сложные для самостоятельной разработки интерфейсы
6.27.1. Контроллер памяти DDR3/4
6.27.2. USB
6.27.3. Ethernet MAC
6.28. Выводы по главе

7. Оптимизация проекта
7.1. Методология оптимизации проекта
7.2. Использование аппаратных компонентов
7.3. Правила описания синхронных схем
7.4. Управление настройками САПР
7.4.1. Настройки синтеза
7.4.2. Настройки размещения и трассировки (implementation)
7.4.3. Оптимизация проекта с помощью изменения настроек САПР
7.5. Анализ проекта в САПР Vivado
7.5.1. Анализ результатов синтеза
7.5.2. Анализ результатов размещения и трассировки
7.6. Использование проектных ограничений формата xdc в САПР Vivado для работы с ПЛИС Xilinx
7.6.1. Роль проектных ограничений в маршруте проектирования для ПЛИС
7.6.2. Проектные ограничения для закрепления выводов ПЛИС
7.6.3. Описание временных ограничений
7.6.4. Описание временных исключений (exceptions)
7.6.5. Описание топологических ограничений
7.7. Применение языка Tcl для автоматизации процессов САПР Vivado

8. Проектирование устройств с применением ПЛИС
8.1. Питание
8.2. Сопряжение ПЛИС с другими микросхемами
8.3. Загрузка конфигурации
8.4. Источники тактовых сигналов
8.5. Трассировка печатной платы и целостность сигналов
8.5.1. Целостность сигналов
8.5.2. САПР печатных плат
8.5.3. Особенности трассировки печатных плат для ПЛИС
8.6. Охлаждение
8.7. Организационные аспекты проектирования
8.7.1. Подготовительные организационно-технические мероприятия
8.7.2. Порядок разработки
8.8. Отладочные платы
8.8.1. Платы на базе Spartan-6 (устаревающие)
8.8.2. Платы на базе Spartan-7
8.8.3. Платы на базе Artix-7
8.8.4. Платы на базе Zynq-7000
8.8.5. Платы на базе Kintex-7
8.8.6. Платы на базе Zynq UltraScale+ MPSOC
8.8.7. Другие производители отладочных плат
8.9. Оценка квалификации разработчика
8.9.1. Приблизительный перечень общих навыков
8.9.2. Навыки работы с проектными ограничениями
8.9.3. Навыки планирования выводов ПЛИС
8.9.4. Навыки работы с инструментами проектирования
8.9.5. Навыки моделирования
8.10. Учебные курсы компании Xilinx
8.11. Старт с ПЛИС Xilinx
8.11.1. Старт для индивидуального разработчика
8.11.2. Старт для учебной организации
8.11.3. Старт для проектной организации

Заключение

Приложение 1. Проектирование для ПЛИС Xilinx на языке System Verilog в САПР Vivado

Приложение 2. Примерный перечень самостоятельных и учебных проектов

Литература