ПЛИС фирмы Altera: элементная база, система проектирования и языки описания аппаратуры
Покупка
Тематика:
Системы автоматического проектирования
Издательство:
ДМК Пресс
Автор:
Стешенко Владимир Борисович
Год издания: 2023
Кол-во страниц: 575
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Профессиональное образование
ISBN: 978-5-89818-615-9
Артикул: 817111.01.99
В книге рассмотрены вопросы практического применения ПЛИС фирмы «Altera» при разработке цифровых устройств. Приведены краткие сведения об особенностях архитектуры и временных параметрах устройств. Рассмотрены САПР MAX+PLUS II и Quartus, языки описания аппаратуры AHDL, VHDL, VERILOG HDL. Приводятся примеры описания цифровых устройств на языках высокого уровня, а также примеры реализации некоторых алгоритмов. Приведены сведения о современных интерфейсах передачи данных, даны рекомендации по разработке печатных плат.
Цель книги — помочь начинающему разработчику в выборе элементной базы и дать представление о технологии проектирования устройств на ПЛИС.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
МИРОВАЯ ЭЛЕКТРОНИКА В. Б. Стешенко ПЛИС фирмы ALTERA: элементная база, система проектирования и языки описания аппаратуры 4-е издание, электронное ОДЭКА Москва ДМК Пресс, Додэка-XXI 2023
УДК 621.3.049.77 ББК 32.844-02 C79 Стешенко, Владимир Борисович. C79 ПЛИС фирмы Altera: элементная база, система проектирования и языки описания аппаратуры / В. Б. Стешенко. — 4-е изд., эл. — 1 файл pdf : 575 с. — Москва : ДМК Пресс, Додэка-XXI, 2023. — (Мировая электроника). — Систем. требования: Adobe Reader XI либо Adobe Digital Editions 4.5 ; экран 10". — Текст : электронный. ISBN 978-5-89818-615-9 В книге рассмотрены вопросы практического применения ПЛИС фирмы «Altera» при разработке цифровых устройств. Приведены краткие сведения об особенностях архитектуры и временных параметрах устройств. Рассмотрены САПР MAX+PLUS II и Quartus, языки описания аппаратуры AHDL, VHDL, VERILOG HDL. Приводятся примеры описания цифровых устройств на языках высокого уровня, а также примеры реализации некоторых алгоритмов. Приведены сведения о современных интерфейсах передачи данных, даны рекомендации по разработке печатных плат. Цель книги — помочь начинающему разработчику в выборе элементной базы и дать представление о технологии проектирования устройств на ПЛИС. УДК 621.3.049.77 ББК 32.844-02 Электронное издание на основе печатного издания: ПЛИС фирмы Altera: элементная база, система проектирования и языки описания аппаратуры / В. Б. Стешенко. — 3-е изд. — Москва : ДМК Пресс, Додэка-XXI, 2015. — 574 с. — (Мировая электроника). — ISBN 978-597060-342-0. — Текст : непосредственный. Все права защищены. Никакая часть этого издания не может быть воспроизведена в любой форме или любыми средствами, электронными или механическими, включая фотографирование, ксерокопирование или иные средства копирования или сохранения информации, без письменного разрешения издательства. В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации. ISBN 978-5-89818-615-9 © Стешенко В.Б. © Макет, Издательский дом «Додэка-XXI» © Издание, ДМК Пресс, 2016
ПРЕДИСЛОВИЕ Программируемые логические интегральные схемы (ПЛИС) — удобная в освоении и применении элементная база, альтернативы которой зачастую не найти. Структурно книга разбита на семь глав и три приложения. В главе 1 дается обзор перспективных семейств ПЛИС фирмы «Altera» и краткие сведения об особенностях их архитектуры и временных параметрах устройств. В главе 2 рассмотрена САПР MAX+PLUS II. Глава 3 посвящена языку описания аппаратуры AHDL. Язык описания аппаратуры VHDL рассмотрен в главе 4, а аппаратуры VERILOG HDL — в главе 5. В главе 6 приводятся примеры описания цифровых устройств на языках высокого уровня. В главе 7 приведены примеры реализации некоторых алгоритмов. В приложении 1 рассмотрены особенности САПР Quartus. В приложении 2 — современные интерфейсы передачи данных. В приложении 3 даны рекомендации по разработке печатных плат. Следует заметить, что книга ни в коей мере не подменяет собой фирменную документацию, без которой проектирование устройств просто невозможно. Ее цель — помочь начинающему разработчику в выборе элементной базы и дать представление о технологии проектирования устройств на ПЛИС. Автор выражает огромную благодарность фирме «Гамма» и лично ее директору М.А. Кузнеченкову за осуществление издания. Автор также благодарит сотрудников фирмы «Гамма» С.Н. Шипулина, И.Г. Алексеева, А.А.Кулакова и зам. директора центра «Логические системы» В.Ю.Хра-пова за предоставленное программное обеспечение и информацию. 3
Предисловие Автор благодарит редакторов Издательского дома «Додэка-XXI» за чуткое и внимательное отношение к рукописи. Огромный вклад в работу над книгой внесли к.т.н. доцент Д.А. Губанов, аспирант Ю.М.Седякин, студенты А.В. Самохин, Г.В. Шишкин, инженеры Н.Н.Анищенко, А.В.Евстифеев, Р.Б.Гаврилов и др., которым автор выражает искреннюю благодарность. В журнале Chip News (Новости о микросхемах) был опубликован цикл статей «Школа разработки аппаратуры цифровой обработки сигналов на ПЛИС», ставших основой книги. Автор признателен главному редактору журнала А.Г. Биленко и научному редактору А.А. Осипову за полезные дискуссии, способствовавшие появлению книги. Наконец, работа над книгой была бы в принципе невозможна без поддержки и терпения семьи. Автор надеется, что книга найдет понимание у читателя, и будет признателен за все отклики, которые можно присылать по адресу: 107005, Москва, 2-я Бауманская улица, д. 5. Кафедра СМ-5 «Автономные информационные и управляющие системы» МГТУ им. Н.Э. Баумана. E-mail: steshenk@sm.bmstu.ru 4
СОДЕРЖАНИЕ ВВЕДЕНИЕ ................................................13 ГЛАВА 1. ЭЛЕМЕНТНАЯ БАЗА.................................19 1.1. Семейство МАХ3000 ................................. 19 1.2. Семейство FLEX6000 ................................ 33 1.3. Семейство МАХ7000 ................................. 46 1.4. Семейство FLEX8000 ................................ 53 1.5. Семейство МАХ9000 ................................. 58 1.6. Семейство FLEX10K ..................................65 1.7. Семейство APEX20K...................................78 1.8. Семейство Mercury...................................85 1.9. Семейство ACEX.....................................102 1.10. Конфигурационные ПЗУ...............................104 1.11. Программирование и реконфигурирование в системе ..110 ГЛАВА 2. СИСТЕМА ПРОЕКТИРОВАНИЯ MAX+PLUS II.............115 2.1. Общие сведения.....................................115 2.2. Процедура разработки проекта.......................121 2.3. Редакторы MAX PLUS II..............................140 2.4. Процесс компиляции ................................154 2.5. Верификация проекта................................162 ГЛАВА 3. ЯЗЫК ОПИСАНИЯ АППАРАТУРЫ AHDL..................167 3.1. Общие сведения.....................................167 3.2. Использование чисел и констант в языке AHDL .......171 3.2.1. Использование чисел.........................171 3.2.2. Использование констант......................171 3.3. Комбинационная логика .............................172
Содержание 3.3.1. Реализация булевых выражений и уравнений ........172 3.3.2. Объявление NODE (узел) ..........................173 3.3.3. Определение групп ...............................173 3.3.4. Реализация условной логики ......................174 3.3.5. Описание дешифраторов............................177 3.3.6. Использование для переменных значений по умолчанию ... 180 3.3.7. Реализация логики с активным низким уровнем.......182 3.3.8. Реализация двунаправленных выводов...............183 3.4. Последовательностная логика............................184 3.4.1. Объявление регистров.............................184 3.4.2. Объявление регистровых выходов ..................186 3.4.3. Создание счетчиков...............................186 3.5. Цифровые автоматы с памятью (state mashine)............187 3.5.1. Реализация цифровых автоматов (state machine) ...188 3.5.2. Установка сигналов Clock, Reset и Enable ........189 3.5.3. Задание выходных значений для состояний..........189 3.5.4. Задание переходов между состояниями..............190 3.5.5. Присвоение битов и значений в цифровом автомате...190 3.5.6. Цифровые автоматы с синхронными выходами.........191 3.5.7. Цифровые автоматы с асинхронными выходами.........193 3.5.8. Восстановление после неправильных состояний .....194 3.6. Реализация иерархического проекта......................196 3.6.1. Использование макрофункций системы MAX+PLUS II фирмы «Altera» .........................................196 3.6.2. Создание и применение пользовательских макрофункций ..199 3.6.3. Определение пользовательской макрофункции........199 3.6.4. Импорт и экспорт цифровых автоматов (state machine) . . . 201 3.7. Управление синтезом....................................203 3.7.1. Реализация примитивов LCELL и SOFT ..............203 3.7.2. Значения констант по умолчанию...................205 3.7.3. Присвоение битов и значений в цифровом формате ..205 3.8. Элементы языка AHDL ...................................205 3.8.1. Зарезервированные ключевые слова.................205 3.8.2. Символы .........................................207 3.8.3. Имена в кавычках и без кавычек ..................208 3.8.4. Группы...........................................209 3.8.5. Числа в языке AHDL...............................211 3.8.6. Булевы выражения.................................211 3.8.7. Логические операторы ............................212 3.8.8. Выражения с оператором NOT.......................213 6
Содержание 3.8.9. Выражения с операторами AND, NAND, OR, XOR, & XNOR ............................213 3.8.10. Арифметические операторы.......................214 3.8.11. Компараторы (операторы сравнения)..............215 3.8.12. Приоритеты в булевых уравнениях ...............216 3.8.13. Примитивы .....................................216 3.8.14. Порты..........................................226 3.9. Синтаксис языка AHDL..................................229 3.9.1. Лексические элементы ...........................229 3.9.2. Основные конструкции языка AHDL.................230 3.9.3. Синтаксис объявления названия...................233 3.9.4. Синтаксис оператора включения ..................233 3.9.5. Синтаксис задания константы.....................233 3.9.6. Синтаксис прототипа функции.....................233 3.9.7. Синтаксис оператора вариантов...................234 3.9.8. Синтаксис секции подпроекта Subdesign...........236 3.9.9. Синтаксис секции переменных.....................236 3.9.10. Синтаксис объявления цифрового автомата........237 3.9.11. Синтаксис объявления псевдонима цифрового автомата . . . 237 3.9.12. Синтаксис логической секции ...................238 3.9.13. Синтаксис булевых уравнений ...................238 3.9.14. Синтаксис булевых уравнений управления ........238 3.9.15. Синтаксис оператора CASE ......................238 3.9.16. Объявление по умолчанию........................238 3.9.17. Синтаксис условного оператора IF...............239 3.9.18. Синтаксис встроенных (in-line) ссылок на макрофункцию или примитив...........................................239 3.9.19. Синтаксис объявления таблицы истинности .......239 3.9.20. Синтаксис порта ...............................239 3.9.21. Синтаксис группы...............................240 3.9.22. Синтаксические группы и списки.................241 ГЛАВА 4. ЯЗЫК ОПИСАНИЯ АППАРАТУРЫ VHDL ....................243 4.1. Общие сведения........................................243 4.2. Алфавит языка.........................................246 4.2.1. Комментарии.....................................247 4.2.2. Числа ..........................................247 4.2.3. Символы ........................................248 4.2.4. Строки .........................................248 4.3. Типы данных ..........................................248 7
Содержание 4.3.1. Простые типы ..................................248 4.3.2. Сложные типы...................................249 4.3.3. Описание простых типов ........................250 4.4. Операторы VHDL........................................261 4.4.1. Основы синтаксиса..............................261 4.4.2. Объекты........................................262 4.4.3. Атрибуты.......................................263 4.4.4. Компоненты.....................................263 4.4.5. Выражения......................................264 4.4.6. Операторы......................................265 4.5. Интерфейс и тело объекта..............................266 4.5.1. Описание простого объекта .....................270 4.5.2. Объявление объекта проекта F...................270 4.5.3. Поведенческое описание архитектуры.............270 4.5.4. Потоковая форма................................271 4.5.5. Структурное описание архитектуры...............273 4.6. Описание конфигурации ................................274 4.7. Векторные сигналы и регулярные структуры..............275 4.8. Задержки сигналов и параметры настройки...............277 4.9. Атрибуты сигналов и контроль запрещенных ситуаций.....279 4.10. Алфавит моделирования и пакеты.......................280 4.11. Описание монтажного «ИЛИ» и общей шины...............283 4.12. Синтезируемое подмножество VHDL......................285 4.12.1. Общие сведения................................285 4.12.2. Переопределенные типы (Redefined types) ......286 4.12.3. Методика верификации синтезируемого описания (Verification methodology) ...........................286 4.12.4. Моделирование элементов аппаратуры (Modeling hardware elements) .........................288 4.12.5. Директивы компилятора (псевдокомментарии, Pragmas) . . . 295 4.12.6. Синтаксис синтезируемого подмножества VHDL.....297 4.13. Краткое описание синтакиса синтезируемого подмножества VHDL..........................................343 ГЛАВА 5. ЯЗЫК ОПИСАНИЯ АППАРАТУРЫ VERILOG HDL ... 363 5.1. Общие сведения........................................363 5.2. Операторы ............................................365 5.3. Числа в Verilog.......................................365 5.3.1. Целые числа (Integers).........................365 5.3.2. Неопределенное и высокоимпедансное состояния (х and z values)......................................366 8 —
Содержание 5.3.3. Отрицательные числа (Negative numbers) ..............366 5.3.4. Подчеркивание (Underscore)...........................366 5.3.5. Действительные числа (Real) .........................366 5.3.6. Строки (Strings).....................................367 5.4. Цепи в Verilog (Nets) ......................................367 5.5. Регистры (Registers)........................................367 5.6. Векторы (Vectors)...........................................369 5.7. Массивы (Arrays)............................................370 5.8. Регистровые файлы (Memories)................................370 5.9. Элементы с третьим состоянием (Tri-state)...................370 5.10. Арифметические операторы (Arithmetic operators)............372 5.11. Логические операторы (Logical operators)...................373 5.12. Операторы отношения (Relational operators).................374 5.13. Операторы эквивалентности (Equality).......................374 5.14. Поразрядные операторы (Bitwise operators) .................375 5.15. Операторы приведения (Reduction operator)..................376 5.16. Операторы сдвига (Shift operator) .........................377 5.17. Конкатенация (объединение, Concatenation)..................377 5.18. Повторение (Replication) ..................................378 5.19. Системные директивы (System tasks) ........................378 5.19.1. Директивы вывода результатов моделирования (Writing to standard output)................................379 5.19.2. Контроль процесса моделирования (Monitoring a simulation) ..................................380 5.19.3. Окончание моделирования (Ending a simulation) ......382 5.20. Проектирование комбинационных схем, пример проектирования мультиплексора 4 в 1 ............................................382 5.20.1. Реализация на уровне логических вентилей (Gate level implementation) ................................382 5.20.2. Реализация мультиплексора с помощью логических операторов (Logic statement Implementation) ................384 5.20.3. Реализация с помощью оператора выбора (CASE statement implementation ) ...........................385 5.20.4. Реализация с использованием условного оператора (Conditional operator Implementation) ......................387 5.20.5. Тестовый модуль (The stimulus module)...............387 5.21. Модули проекта (Design blocks modules) ....................390 5.21.1. Тестирование........................................392 5.22. Порты (Ports) .............................................393 5.23. Правила соединения (Connection rules)......................394 9
Содержание 5.23.1. Входы (inputs) ......................................394 5.23.2. Выходы (outputs) ....................................394 5.23.3. Двунаправленные выводы (inouts) .....................394 5.23.4. Соответствие портов (Port matching) .................394 5.23.5. Присоединение портов (Connecting ports) .............394 5.24. Базовые блоки (Basic blocks)................................395 5.24.1. Инициализация (Initial block) .......................395 5.24.2. Конструкция Always (Always block)....................395 5.25. Пример проектирования последовательностного устройства: двоичный счетчик .................................................396 5.25.1. Поведенческая модель счетчика (Behavioural model)....400 5.26. Временной контроль (Timing Control).........................402 5.26.1 .3адержки (delay) ....................................402 5.26.2 .Событийный контроль (event-based control)...........403 5.27. Защелкивание (triggers) ....................................403 5.28. Список сигналов возбуждения (sensitivity list) .............404 5.29. Задержка распространения в вентиле (Gate delays) ...........404 5.30. Операторы ветвления (Branch statements).....................404 5.30.1.Оператор IF (IF statement) ...........................404 5.30.2.Оператор выбора (CASE statement) .....................406 5.30.3.Оператор ветвления (Conditional operator).............406 5.31. Циклы (Looping constructs) .................................407 5.31.1. Цикл WHILE (WHILE LOOP)..............................407 5.31.2. Цикл FOR (FOR LOOP)..................................408 5.31.3. Цикл REPEAT (REPEAT LOOP)............................408 5.31.4. Вечный цикл (FOREVER LOOP) ..........................409 5.32. Файлы в Verilog ............................................409 5.32.1.О ткрытие файла (Opening a file).....................409 5.32.2.3 апись в файл (Writing to a file) ...................410 5.32.3.3 акрытие файла (Closing a file)......................410 5.32.4.И нициализация регистровых файлов (памяти) (Initialising memories) .....................................410 5.33. Задание векторов входных сигналов для моделирования (Verilog input vectors) ..........................................412 5.34. Список операторов Verilog...................................414 5.35. Приоритет операторов........................................415 5.36. Ключевые слова (keywords)...................................415 5.37. Директивы компилятора ......................................416 5.38. Типы цепей (Net types)......................................416 10