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

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

Покупка
Артикул: 712385.01.99
Доступ онлайн
699 ₽
В корзину
Темой данной книги является проектирование встраиваемых систем на программируемых логических интегральных схемах (ПЛИС). Издание предоставляет всю информацию, которая необходима для проектирования сложных встраиваемых систем и ядер. В первой части определяется, чем является встраиваемая система, и знание каких аспектов цифрового проектирования полезно при проектировании таких систем. Затем обсуждается язык проектирования Verilog на уровне регистровых передач и применение этого языка для RTL-моделирования и RTL-синтеза. Далее приводится описание проектирования цифровых систем, архитектуры компьютеров и разработка программной части. После рассмотрения основ показывается, как эти темы совместить вместе в проекте законченной системы с аппаратными и программными ядрами. Издание предназначено студентам старших курсов вузов, а также разработчикам аппаратуры, знакомым с основами логического проектирования и желающим заняться автоматизированным проектированием на системном уровне.
Заиналабедин Наваби, Наваби, 3. Проектирование встраиваемых систем на ПЛИС / пер. с англ. В.В. Соловьева. - Москва : ДМК Пресс, 2016. - 464 с. - ISBN 978-5-97060-174-7. - Текст : электронный. - URL: https://znanium.com/catalog/product/1027491 (дата обращения: 24.04.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Заиналабедин Наваби

Интернет-магазин: 
www.dmkpress.com

Книга - почтой:
orders@alians-kniga.ru

Оптовая продажа:
“Альянс-книга”. 
Тел.: (499)782-3889
books@alians-kniga.ru

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

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

www.дмк.рф

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

Издание предназначено студентам старших курсов 
вузов, а также разработчикам аппаратуры, знакомым 
с основами логического проектирования 
и желающим заняться автоматизированным 
проектированием на системном уровне.

9 785970 601747

ISBN 978-5-97060-174-7

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

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

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

Проектирование  

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

Москва, 2016

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

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

 
Наваби З.
Н15 Проектирование встраиваемых систем на ПЛИС / пер. с англ. Соловьева В.

В. – М.: ДМК Пресс, 2016. – 464 с.
ISBN 978-5-97060-174-7

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

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

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

ISBN 978-0-07-148470-1 
Copyright © 2007 by The McGraw-Hill Companies
ISBN 978-5-97060-174-7 
© Оформление, перевод, ДМК Пресс, 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

содержание
11

9.3.9. Управление пакетами ..................................................................................... 411
9.3.10. Пересечение областей синхронизации .................................................. 412
9.3.11. Контроллер прерываний ............................................................................ 412
9.3.12. Распределение сигнала сброса ................................................................. 413
9.4. Обзор программы SOPC Builder  ......................................................................... 414
9.4.1. Архитектура систем, создаваемых программой SOPC Builder ....... 414
9.4.2. Функции программы SOPC Builder ......................................................... 416
9.5. Интегрированная среда проектирования IDE ................................................ 417
9.5.1. Менеджер проекта IDE ................................................................................. 417
9.5.2. Редактор исходного кода .............................................................................. 418
9.5.3. Компилятор языка C/C++ ........................................................................... 418
9.5.4. Отладчик ............................................................................................................ 418
9.5.5. Программатор flash-памяти ......................................................................... 419
9.6. Проект встраиваемой системы: калькулятор ................................................... 419
9.6.1. Описание системы .......................................................................................... 420
9.6.2. Вычислительное устройство ....................................................................... 420
9.6.3. Интерфейс ввода-вывода калькулятора ................................................. 421
9.6.4. Проектирование вычислительного устойства ...................................... 422
9.6.5. Построение программного обеспечения калькулятора ..................... 430
9.6.6. Программа калькулятора ............................................................................. 435
9.6.7. Завершение проекта системы «калькулятор» ....................................... 439
9.7. Выводы .......................................................................................................................... 441

Приложение А. Множество команд процессора Nios II .......................................... 442
A.1. Команды передачи данных .................................................................................... 442
A.2. Арифметические и логические команды .......................................................... 443
A.3. Команды пересылки ................................................................................................. 443
A.4. Команды сравнения.................................................................................................. 444
A.5. Команды сдвига и ротации .................................................................................... 444
A.6. Команды управления программой ...................................................................... 445
A.7. Другие команды управления ................................................................................ 445
A.8. Пользовательские команды ................................................................................... 446
A.9. Команда нет операции............................................................................................. 446
A.10. Потенциально нереализованные команды .................................................... 447

Приложение B. Литература для дополнительного чтения ...................................... 448

Предметный указатель ........................................................................................................... 450

В память о моей сестре, Шахла (Фами) Наваби 

об авторе

Доктор Заиналабедин Наваби является профессором электротехники и вычислительной техники Северо-восточного университета. Доктор Наваби является 
автором нескольких учебников и электронных учебных пособий по языкам проектирования VHDL и Verilog, а также соответствующих средств и программных 
пакетов. Доктор Наваби был вовлечен в проблему языков описания аппаратуры 
в 1976 году, когда он начал разрабатывать программу моделирования на уровне 
регистровых передач (Register-Transfer Level – RTL) для одного из первых языков описания аппаратуры (Hardware Description Languages – HDLs). В 1981 году он завершил разработку средства синтеза, которое генерировало рисунок 
МОП-структуры (МОП – металл-оксид-полупроводник – Metal-Oxide-Silicon – 
MOS) из HDL-описания. Начиная с 1981 года, доктор Наваби был вовлечен 
в проектирование, определение спецификаций и реализацию языков описания 
аппаратуры. Ему принадлежат многочисленные статьи по применению языков 
описания аппаратуры при моделировании, синтезе и тестировании цифровых 
систем. В 1990 году он был одним из первых, кто начал читать полные курсы лекций по языкам описания аппаратуры в Северо-восточном университете. 
С тех пор он провел много кратких курсов и консультаций по данной тематике 
в США и за границей. В дополнение к должности профессора он также является консультантом компаний по автоматизации проектирования электроники 
(Electronic Design Automation – EDA). Доктор Наваби получил степень магистра 
и доктора философии (Ph. D. – Philosophy Doctor) от Университета в Аризоне 
в 1978 и 1981 годах соответственно, а также степень бакалавра от Техасского 
университета города Остина (США) в 1975 году. Он является старшим членом 
общества IEEE (The Institute of Electrical and Electronics Engineers – Институт 
инженеров по электротехнике и радиоэлектронике), а также членом следующих обществ: IEEE по вычислительной технике, ASEE и ACM (Association for 
Computing Machinery – Ассоциация по вычислительной технике). Доктор Наваби является автором шести книг по различным аспектам автоматизации проектирования цифровых систем. 

ПредИСЛовИе

Темой данной книги является проектирование встраиваемых систем на программируемых логических интегральных схемах (ПЛИС). Проектирование встраиваемых систем включает в себя проектирование функций, которые могут быть 
реализованы в аппаратной части системы или могут реализовываться как выполнение программы на встраиваемом процессоре. Природа встраиваемых систем 
базируется на нескольких дисциплинах. Поэтому проектирование встраиваемых 
систем включает концепции цифровых систем, архитектур компьютеров, разработку программного обеспечения, а также проектирование компьютерных систем и систем на базе микропроцессоров. Кроме того, реализация встраиваемых 
систем на ПЛИС требует дополнительного знания программируемых устройств, 
а также соответствующих средств и языков проектирования (например, VHDL 
или Verilog). 
Очевидно, что полное освещение всех этих тем в одной книге невозможно. 
С другой стороны, нет необходимости углубляться в каждую из этих тем для 
того, чтобы стать разработчиком встраиваемых систем. Разработчик цифровой 
системы смотрит на проектирование цифровой системы с точки зрения системы, 
при этом ему требуется знание основ всех упомянутых предметов. 
Книга «Проектирование встраиваемых систем на базе ПЛИС» предоставляет 
всю информацию, которая необходима для проектирования сложных встраиваемых систем и ядер. Первая часть определяет, чем является встраиваемая система 
и знание каких аспектов цифрового проектирования полезно при проектировании таких систем. Затем мы совместим логическое проектирование с современным проектированием на уровне регистровых передач (Register Transfer Level – 
RTL). Потом обсудим язык проектирования Verilog на уровне регистровых 
передач и покажем применение этого языка для RTL-моделирования1 и RTLсинтеза2. После обсуждения аппаратной части на уровне регистровых передач 
и соответствующих методологий проектирования мы перейдем к аппаратной 
и программной частям компьютеров. Поскольку материал уровня регистровых 
передач является полезным для аппаратной части проектов встраиваемых систем, материал компьютерных систем и их архитектур предназначается для программной части таких проектов. После рассмотрения основ мы покажем, как эти 
темы совместить вместе в проекте законченной системы с аппаратными и программными ядрами. На всем протяжении этой презентации вводятся и используются современные средства проектирования встраиваемых систем на уровне 
регистровых передач. 
Эта книга может использоваться профессиональными разработчиками аппаратуры, кто уже знаком с основами логического проектирования и желает заняться автоматизированным проектированием на системном уровне. Для этой 
аудитории книга включает разделы проектирования цифровых систем, архитектуры компьютеров и разработку программной части системы. Она также содер
1 
RTL-моделирование – моделирование на уровне регистровых передач. – Прим. перев.

2 
RTL-синтез – синтез на уровне регистровых передач. – Прим. перев.

ПредисЛоВие
15

жит программы, показывающие использование языка проектирования Verilog, 
а также компиляторы и ассемблеры для проектов встраиваемых систем. Дополнительно для индустриального применения мы покажем, как существующие аппаратные и программные проектные компоненты, а также библиотечные ядра 
используются на верхнем уровне проектов. Используя отладочные платы фирмы 
Altera, эта книга дает руководящие знания по охватывающим темам. 
В учебном процессе книга может использоваться на верхнем уровне факультативных технических курсов для студентов специальностей вычислительная техника и электротехника, а также других инженерных специальностей. Совместно с отладочными платами фирмы Altera эта книга помогает студентам видеть 
свои проекты в процессе разработки: как проекты реализуются и тестируются, 
вследствие чего студенты получают понимание, как данные вещи работают. Для 
студентов других инженерных направлений, например механической или химической, книга является полезным средством для проектирования и реализации 
контроллеров и интерфейсов. 

Заиналабедин Наваби
navabi@ece.neu.edu
Бостон, Массачусетс, США
Июль, 2006

введенИе

Проектирование встраиваемых систем, которое стало новой тенденцией в создании аппаратуры, использует встраиваемые ядра и процессоры как компоненты 
цифровых систем. Разработчик встраиваемой системы для представления различных частей своего проекта использует соединение высокоуровнего программного обеспечения и описания аппаратной части на уровне регистровых передач. 
Разработчик аппаратуры должен сознавать, что абстрактные связи между различными частями системы также становятся результатом проектирования. Кроме того, важно, чтобы разработчик знал обо всех средствах, которые доступны 
для проектирования и реализации аппаратуры. 
Ранняя практика проектирования цифровых систем на основе отдельных 
транзисторов сменилась проектированием на вентильном уровне, а в конце 
80-х годов доминирующей технологией становится проектирование на уровне 
ре гист ровых передач. Сегодня мы видим, что уровень регистровых передач является слишком детальным, поэтому требуется более высокий уровень абстрагирования. Уровень электронной системы (Electronic System Level – ESL) и является этим следующим уровнем абстрагирования. На этом уровне разработчики 
описывают свои аппаратные компоненты и с помощью средств проектирования 
транслируют свои описания на более детальный уровень регистровых передач 
или уровень вентилей. 
По мере усложнения проектов и повышения уровня описания аппаратуры соединения между ее компонентами становятся более изощренными. В то время 
как простые проводные связи используются для соединений между транзисторами, логические сигналы (с большим функциональным значением) становятся 
межсоединениями для проектов на вентильном уровне. Межсоединения становятся более сложными (превращаясь в шины), когда мы переходим от вентильного уровня к уровню регистровых передач. Продолжая эту тенденцию, сегодня 
мы можем видеть, что межсоединения системного уровня становятся даже более 
сложными и сами содержат сложные RTL-компоненты. Простые шинные межсоединения уровня регистровых передач стали интеллектуальными системами 
шин или переключательными структурами, которые управляют передачами блоков данных, арбитражем и различными формами коммуникаций «главный–подчиненный» (master–slave). Понимание этой функции межсоединений является 
критически важным для сегодняшних разработчиков системного уровня. 
Сегодняшним разработчикам аппаратуры требуются умение создавать программы для реализации аппаратных функций; понимание архитектур процессоров, на которых выполняются эти программы; знание основ проектирования 
аппаратуры на уровне регистровых передач, а также навыки описания межсоединений системных компонент. 
Данная книга освещает уровень регистровых передач, методологию проек-
тирования на системном уровне, программируемые логические интегральные 
схемы (ПЛИС), а также средства и интегрированные среды, которые имеются 
в распоряжении разработчика системного уровня. Книга может использоваться в академических или индустриальных средах студентами или инженерами. 

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