Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Проектирование встраиваемых систем на ПЛИС

Покупка
Артикул: 816621.01.99
Доступ онлайн
590 ₽
В корзину
Темой данной книги является проектирование встраиваемых систем на программируемых логических интегральных схемах (ПЛИС). Издание предоставляет всю информацию, которая необходима для проектирования сложных встраиваемых систем и ядер. В первой части определяется, чем является встраиваемая система, и знание каких аспектов цифрового проектирования полезно при проектировании таких систем. Затем обсуждается язык проектирования Verilog на уровне регистровых передач и применение этого языка для RTL-моделирования и RTL-синтеза. Далее приводится описание проектирования цифровых систем, архитектуры компьютеров и разработка программной части. После рассмотрения основ показывается, как эти темы совместить вместе в проекте законченной системы с аппаратными и программными ядрами. Издание предназначено студентам старших курсов вузов, а также разработчикам аппаратуры, знакомым с основами логического проектирования и желающим заняться автоматизированным проектированием на системном уровне.
Наваби, З. Проектирование встраиваемых систем на ПЛИС : практическое пособие / З. Наваби ; пер. с англ. В. В. Соловьева - 2-е изд. - Москва : ДМК Пресс, Додэка-XXI, 2023. - 465 с. - ISBN 978-5-89818-425-4. - Текст : электронный. - URL: https://znanium.com/catalog/product/2104728 (дата обращения: 22.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Проектирование  
встраиваемых систем на ПЛИС

Заиналабедин Наваби

Embedded Core Design with FPGAs

Zainalabedin Navabi

McGraw-Hill
New York Chicago San Francisco Lisbon London Madrid
Mexico City Milan New Delhi San Juan Seoul
Singapore Sydney Toronto

Проектирование  
встраиваемых систем на ПЛИС

Москва, 2023

Заиналабедин Наваби

2-е издание, электронное

УДК 004.2/.3
ББК 32.971
Н15

Н15
Наваби, Заиналабедин.
Проектирование встраиваемых систем на ПЛИС / З. Наваби ; пер. с англ. В. В. Соловьева — 2-е изд., эл. — 1 файл pdf : 465 с. — Москва : ДМК Пресс, Додэка-XXI, 2023. — 
Систем. требования: Adobe Reader XI либо Adobe Digital Editions 4.5 ; экран 10". — Текст : 
электронный.
ISBN 978-5-89818-425-4

Темой данной книги является проектирование встраиваемых систем на программируемых 
логических интегральных схемах (ПЛИС). Издание предоставляет всю информацию, которая 
необходима для проектирования сложных встраиваемых систем и ядер. В первой части определяется, чем является встраиваемая система, и знание каких аспектов цифрового проектирования 
полезно при проектировании таких систем. Затем обсуждается язык проектирования Verilog на 
уровне регистровых передач и применение этого языка для RTL-моделирования и RTL-синтеза. 
Далее приводится описание проектирования цифровых систем, архитектуры компьютеров и разработка программной части. После рассмотрения основ показывается, как эти темы совместить 
вместе в проекте законченной системы с аппаратными и программными ядрами.
Издание предназначено студентам старших курсов вузов, а также разработчикам аппаратуры, 
знакомым с основами логического проектирования и желающим заняться автоматизированным 
проектированием на системном уровне.

УДК 004.2/.3 
ББК 32.971

Электронное издание на основе печатного издания: Проектирование встраиваемых систем на ПЛИС / З. Наваби ; пер. с англ. В. В. Соловьева. — Москва : ДМК Пресс, Додэка-XXI, 2016. — 464 с. — ISBN 978-5-97060174-7. — Текст : непосредственный.

Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы 
то ни было средствами без  письменного разрешения владельцев авторских прав.
Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с 
этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги.

В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты авторских 
прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации.

ISBN 978-5-89818-425-4
© 2007 by The McGraw-Hill Companies
© Оформление, перевод, ДМК Пресс, 2016

СодержанИе

Об авторе ........................................................................................................................................13
Предисловие ..................................................................................................................................14
Введение .........................................................................................................................................16
Благодарности ..............................................................................................................................18

1
 Элементы проектирования встраиваемых систем  .................................................19
1.1. Уровни абстрагирования ............................................................................................20
1.1.1. От транзисторов к программам .....................................................................20
1.1.2. Смешение уровней абстакции .......................................................................22
1.1.3. Описание проекта ..............................................................................................23
1.2. Маршрут проектирования встраиваемых систем ..............................................23
1.2.1. Разделение на аппаратную и программную части ..................................23
1.2.2. Аппаратная часть ................................................................................................24
1.2.3. Программная часть ............................................................................................24
1.2.4. Спецификация межсоединений ....................................................................25
1.2.5. Совместное аппаратно-программное моделирование ...........................25
1.2.6. Синтез аппаратной части ................................................................................25
1.2.7. Компиляция программной части .................................................................26
1.2.8. Генерация межсоединений  .............................................................................27
1.2.9. Интеграция проекта ..........................................................................................27
1.3. Средства проектирования ..........................................................................................27
1.3.1. Описание структурной схемы .......................................................................28
1.3.2. Языки описания аппаратуры и другие программы  
моделирования аппаратной части ...........................................................................28
1.3.3. Компиляторы языков программирования ................................................28
1.3.4. Программа моделирования системы, описанной в виде списка  
цепей ..................................................................................................................................28
1.3.5. Эмулятор системы команд ..............................................................................28
1.3.6. Программы синтеза аппаратной части .......................................................29
1.3.7. Компилятор в машинные коды .....................................................................29
1.3.8. Программы сборки и отладки программной части ................................29
1.3.9. Программа-интегратор  ....................................................................................29
1.4. Новые тенденции проектирования аппаратуры ................................................29
1.4.1. Конфигурируемые процессоры .....................................................................29
1.4.2. Стандартные шины ............................................................................................30
1.4.3. Программирование ............................................................................................30
1.4.4. Программное обеспечение ..............................................................................30
1.5. Выводы .............................................................................................................................30

2
 Основы проектирования логических схем ................................................................31
2.1. Системы счисления ......................................................................................................32
2.1.1. Двоичные числа ..................................................................................................33

содержание
6

2.1.2. Шестнадцатеричные числа .............................................................................33
2.2. Двоичная арифметика .................................................................................................34
2.2.1. Числа со знаком ..................................................................................................34
2.2.2. Двоичное сложение ...........................................................................................35
2.2.3. Двоичное вычитание .........................................................................................35
2.2.4. Система дополнения до двух .........................................................................35
2.2.5. Переполнение ......................................................................................................36
2.2.6. Числа с фиксированной запятой ..................................................................37
2.2.7. Числа с плавающей запятой ...........................................................................37
2.3. Базовые логические вентили и структуры...........................................................39
2.3.1. Система логических значений .......................................................................39
2.3.2. Представление логических функций ..........................................................39
2.3.3. Транзисторы .........................................................................................................40
2.3.4. КМОП-инвертор ................................................................................................41
2.3.5. КМОП-вентиль И-НЕ......................................................................................41
2.3.6. КМОП-вентиль ИЛИ-НЕ ..............................................................................42
2.3.7. Вентили И и ИЛИ .............................................................................................43
2.3.8. Вентиль ИСКЛЮЧАЮЩЕЕ ИЛИ ............................................................43
2.3.9. Мультиплексоры ................................................................................................44
2.3.10. Вентили с тремя состояниями выходов ...................................................45
2.3.11. Функциональный генератор (LUT-элемент) ........................................46
2.4. Проектирование комбинационных схем ..............................................................47
2.4.1. Булева алгебра .....................................................................................................47
2.4.2. Карты Карно ........................................................................................................49
2.4.3. Неопределенные значения ..............................................................................53
2.4.4. Минимальное покрытие ..................................................................................54
2.4.5. Итеративная аппаратура .................................................................................55
2.4.6. Мультиплексоры и дешифраторы ................................................................58
2.4.7. Уровни активности ............................................................................................60
2.4.8. Входы разрешения/запрета ............................................................................61
2.4.9. Высокоуровневое проектирование  .............................................................61
2.5. Запоминающие элементы ..........................................................................................62
2.5.1. Простой триггер-защелка ................................................................................63
2.5.2. Тактируемый D-триггер ...................................................................................64
2.5.3. D-триггер (триггер с задержкой) ..................................................................65
2.5.4. Управление триггером ......................................................................................66
2.5.5. Регистры ................................................................................................................68
2.6. Проектирование последовательностных схем ....................................................68
2.6.1. Конечные автоматы ...........................................................................................68
2.6.2. Проектирование конечных автоматов ........................................................70
2.6.3. Автоматы Мили и Мура ..................................................................................75
2.6.4. Унарное кодирование состояний ..................................................................76
2.6.5. Часто используемые последовательностные схемы ..............................77
2.7. Запоминающие устройства .......................................................................................80
2.7.1. Структура статического оперативного запоминающего  
устройства ........................................................................................................................81

содержание
7

2.8. Двунаправленные выводы .........................................................................................82
2.9. Обобщающий пример: последовательный сумматор .......................................82
2.9.1. Постановка задачи .............................................................................................83
2.9.2. Разбиение проекта на блоки ...........................................................................83
2.9.3. Проектирование операционного устройства ............................................84
2.10. Выводы ...........................................................................................................................87

3
 Проектирование на уровне регистровых передач с использованием  
 
языка Verilog ..........................................................................................................................89
3.1. Основные структуры языка Verilog ........................................................................90
3.1.1. Модули...................................................................................................................92
3.1.2. Структура модуля ..............................................................................................93
3.1.3. Порты модуля ......................................................................................................94
3.1.4. Переменные модуля ..........................................................................................95
3.1.5. Система логических значений .......................................................................97
3.1.6. Вычисление значений проводных соединений (цепей) .......................97
3.2. Комбинационные схемы .............................................................................................99
3.2.1. Комбинационные схемы на уровне вентилей ..........................................99
3.2.2. Синтез на вентильном уровне .................................................................... 104
3.2.3. Описания с использованием логических уравнений ......................... 105
3.2.4. Создание других модулей  ........................................................................... 109
3.2.5. Синтез операторов присваивания  ............................................................ 111
3.2.6. Описания с использованием процедурных операторов .................... 112
3.2.7. Правила описания комбинационных схем ............................................. 117
3.2.8. Синтез процедурных блоков  ...................................................................... 117
3.2.9. Соединения с шиной ...................................................................................... 119
3.3. Последовательностные схемы ............................................................................... 119
3.3.1. Основные элементы памяти на вентильном уровне ........................... 120
3.3.2. Элементы памяти, использующие процедурные операторы  .......... 121
3.3.3. Синтез триггеров ............................................................................................. 125
3.3.4. Регистры, сдвиговые регистры и счетчики ............................................ 127
3.3.5. Синтез сдвиговых регистров и счетчиков .............................................. 130
3.3.6. Кодирование конечных автоматов ............................................................ 130
3.3.7. Синтез конечных автоматов ........................................................................ 140
3.3.8. Запоминающие устройства .......................................................................... 142
3.4. Написание тестовых примеров ............................................................................. 144
3.4.1. Генерация периодических данных............................................................. 145
3.4.2. Случайные входные данные ........................................................................ 146
3.4.3. Привязка данных ко времени ..................................................................... 147
3.5. Спецификация последовательного умножителя ............................................ 148
3.5.1. Процесс умножения путем сдвига и сложения .................................... 148
3.5.2. Проектирование последовательного умножителя .............................. 151
3.5.3. Тестирование умножителя ........................................................................... 156
3.6. Синтез результатов .................................................................................................... 160
3.7. Выводы .......................................................................................................................... 160

содержание
8

4
 Аппаратное и программное обеспечение компьютера ...................................... 162
4.1. Аппаратное и программное обеспечение компьютера .................................. 163
4.2. Программное обеспечение компьютера ............................................................. 166
4.2.1. Машинный код ................................................................................................. 166
4.2.2. Язык ассемблера .............................................................................................. 166
4.2.3. Язык высокого уровня ................................................................................... 166
4.2.4. Язык программирования С .......................................................................... 168
4.3. Архитектура множества команд ........................................................................... 179
4.3.1. Аппаратное обеспечение  .............................................................................. 179
4.3.2. Программное обеспечение  .......................................................................... 180
4.3.3. Аппаратно-программный интерфейс  ...................................................... 180
4.4. Проектирование процессора SMPL-CPU ......................................................... 181
4.4.1. Описание процессора .................................................................................... 181
4.4.2. Одноцикловая реализация .......................................................................... 183
4.4.3. Многоцикловая реализация ........................................................................ 196
4.5. Проектирование и тестирование компьютера SAYEH ................................. 207
4.5.1. Детали функционирования процессора .................................................. 207
4.5.2. Операционное устройство процессора SAYEH .................................... 210
4.5.3. Описание процессора SAYEH на языке Verilog ................................... 212
4.5.4. Тестовый пример/ассемблер верхнего уровня процессора  
SAYEH ........................................................................................................................... 213
4.5.5. Реализация аппаратной части процессора SAYEH ............................. 215
4.6. Выводы .......................................................................................................................... 215

5
 Программируемые логические интегральные схемы (ПЛИС) ...................... 216
5.1. Постоянные запоминающие устройства ............................................................ 217
5.1.1. Основная структура ПЗУ ............................................................................ 217
5.1.2. Реализация на вентилях ИЛИ-НЕ ........................................................... 219
5.1.3. Распределенные вентили.............................................................................. 219
5.1.4. Программируемость матриц ....................................................................... 221
5.1.5. Обзор памяти .................................................................................................... 221
5.1.6. Разновидности ПЗУ ....................................................................................... 222
5.2. Программируемые логические матрицы ........................................................... 226
5.2.1. Логическая структура PAL .......................................................................... 228
5.2.2. Расширение промежуточных шин ............................................................ 229
5.2.3. Выходы с тремя состояниями ..................................................................... 230
5.2.4. Регистровые выходы ...................................................................................... 231
5.2.5. Коммерческие устройства ............................................................................ 231
5.3. Сложные программируемые логические устройства .................................... 234
5.3.1. CPLD семейства MAX 7000S фирмы Altera.......................................... 235
5.4. Программируемые пользователем вентильные матрицы............................ 237
5.4.1. FPGA семейства FLEX 10K фирмы Altera ............................................ 238
5.4.2. FPGA семейства Cyclone фирмы Altera .................................................. 245
5.5. Выводы .......................................................................................................................... 264

содержание
9

6
 Средства для проектирования и макетирования ................................................. 265
6.1. Маршрут проектирования аппаратной части .................................................. 266
6.1.1. Операционное устройство последовательного сумматора ............... 267
6.1.2. Контроллер последовательного сумматора ........................................... 268
6.2. HDL-моделирование и HDL-синтез ................................................................... 270
6.2.1. Моделирование перед синтезом ................................................................ 271
6.2.2. Синтез модуля .................................................................................................. 277
6.2.3. Моделирование после выполнения синтеза .......................................... 281
6.3. Смешанно-уровневое проектирование в системе QuartusII ...................... 284
6.3.1. Описание проекта ........................................................................................... 286
6.3.2. Файл структурной схемы проекта ............................................................ 287
6.3.3. Создание и вставка элементов проекта ................................................... 288
6.3.4. Элементы проводных соединений проекта ............................................ 294
6.3.5. Компиляция проекта ..................................................................................... 295
6.3.6. Моделирование проекта ............................................................................... 296
6.3.7. Результаты синтеза ......................................................................................... 299
6.4. Макетирование проекта........................................................................................... 304
6.4.1. Описание платы UP3 ..................................................................................... 304
6.4.2. Спецификация платы DE2 .......................................................................... 311
6.4.3. Программирование устройства Cyclone II на плате DE2 ................. 320
6.5. Выводы .......................................................................................................................... 324

7
 Проектирование аппаратных утилитных ядер  ..................................................... 325
7.1. Управление библиотекой ........................................................................................ 326
7.2. Руководство по основным устройствам ввода-вывода ................................. 327
7.2.1. Устройство устранения дребезга ................................................................ 327
7.2.2. Устройство формирования одного импульса  ....................................... 331
7.2.3. Использование основных элементов ввода-вывода платы UP3 .... 333
7.2.4. Использование основных элементов ввода-вывода платы DE2 .... 335
7.3. Делители частоты ...................................................................................................... 336
7.4. Семисегментные дисплеи ....................................................................................... 336
7.4.1. Дешифратор для семисегментного дисплея .......................................... 337
7.4.2. Тестирование дешифратора для сегментного дисплея платы  
DE2 .................................................................................................................................. 337
7.5. Адаптер жидкокристаллического дисплея ....................................................... 337
7.5.1. Запись в жидкокристаллический дисплей ............................................. 338
7.5.2. Инициализация жидкокристаллического дисплея  ............................ 340
7.5.3. Драйвер дисплея с инициализацией ........................................................ 342
7.5.4. Тестирование драйвера жидкокристаллического дисплея  
на плате UP3 ................................................................................................................ 342
7.5.5. Тестирование драйвера жидкокристаллического дисплея  
на плате DE2 ................................................................................................................ 343
7.6. Логика интерфейса клавиатуры ........................................................................... 344
7.6.1. Передача последовательных данных ........................................................ 344

содержание
10

7.6.2. Алгоритм включения напряжения питания .......................................... 346
7.6.3. Коды и команды ............................................................................................... 347
7.6.4. Проектирование интерфейса клавиатуры .............................................. 350
7.7. Логический интерфейс VGA .................................................................................. 355
7.7.1. Функционирование драйвера VGA .......................................................... 355
7.7.2. Аппаратура синхронизации монитора ..................................................... 358
7.7.3. Дисплей символов .......................................................................................... 359
7.7.4. Драйвер VGA для текстовых данных ....................................................... 363
7.7.5. Макетирование драйвера VGA на плате UP3 ....................................... 364
7.7.6. Макетирование драйвера VGA на плате DE2 ....................................... 364
7.8. Выводы .......................................................................................................................... 366

8
 Проектирование со встраиваемыми процессорами ............................................ 367
8.1. Этапы встраиваемого проектирования .............................................................. 368
8.1.1. Выбор процессора ........................................................................................... 368
8.1.2. Сопряжение процессора ............................................................................... 371
8.1.3. Разработка программного обеспечения .................................................. 372
8.2. Проектирование фильтра ........................................................................................ 372
8.2.1. Концепции фильтров ..................................................................................... 372
8.2.2. Аппаратная реализация КИХ-фильтра ................................................... 376
8.2.3. Встраиваемая реализация КИХ-фильтра ............................................... 378
8.2.4. Построение КИХ-фильтра ........................................................................... 383
8.3. Проектирование микроконтроллера ................................................................... 385
8.3.1. Системная платформа  .................................................................................. 385
8.3.2. Архитектура микроконтроллера ................................................................ 386
8.4. Выводы .......................................................................................................................... 387

9
 Проектирование встраиваемой системы ................................................................. 388
9.1. Проектирование встраиваемой системы ........................................................... 389
9.2. Процессор Nios II ....................................................................................................... 390
9.2.1. Свойства конфигурируемости процессора Nios II .............................. 392
9.2.2. Архитектура процессора ............................................................................... 394
9.2.3. Система команд ............................................................................................... 400
9.2.4. Альтернативные ядра процессора Nios II ............................................... 403
9.3. Переключательная структура Avalon .................................................................. 403
9.3.1. Спецификация Avalon ................................................................................... 403
9.3.2. Логика дешифрации адреса ......................................................................... 406
9.3.3. Мультиплексирование маршрутов данных ........................................... 406
9.3.4. Вставка состояния ожидания...................................................................... 407
9.3.5. Конвейерная обработка ................................................................................ 407
9.3.6. Преобразование порядка байтов ............................................................... 408
9.3.7. Собственное выравнивание адреса и динамический размер  
шины ............................................................................................................................... 408
9.3.8. Арбитраж для многомастерных систем ................................................... 409

Доступ онлайн
590 ₽
В корзину