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

Программируемые логичеcкие интегральные схемы

Покупка
Основная коллекция
Артикул: 765946.01.99
Рассмотрены архитектуры программируемых логических интегральных схем, маршруты проектирования на их основе, средства разработки ПЛИС-проектов на языке описания аппаратуры Verilog. Представлены практические работы, позволяющие освоить разработку ПЛИС-проектов. Предназначено для студентов бакалавриата всех форм обучения по направлению подготовки 09.03.01 «Информатика и вычислительная техника» в качестве основной литературы по дисциплине «Программируемые логические интегральные схемы». Может использоваться в качестве основной и дополнительной литературы при изучении дисциплин «Программируемые логические интегральные схемы. Дополнительные главы», «Прикладная теория цифровых автоматов», «Схемотехника ЭВМ» и др.
Программируемые логичеcкие интегральные схемы : учебное пособие / Н. Ю. Сиротинина, О. В. Непомнящий, А. И. Постников, Д. А. Недорезов. - Красноярск : Сиб. федер. ун-т, 2020. - 224 с. - ISBN 978-5-7638-4244-9. - Текст : электронный. - URL: https://znanium.com/catalog/product/1819355 (дата обращения: 27.04.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Министерство науки и высшего образования Российской Федерации
Сибирский федеральный университет

ПРОГРАММИРУЕМЫЕ ЛОГИЧЕCКИЕ 
ИНТЕГРАЛЬНЫЕ СХЕМЫ

Учебное пособие

Красноярск 
СФУ 
2020

УДК 621.3.049.77:004.42(07)
ББК 32.844.15я73
П784

Р е ц е н з е н т ы: 
В. А. Хабаров, кандидат технических наук, ведущий инженер- 
конструктор отдела систем управления АО «НПП “Радиосвязь’’»;
В. В. Прудков, кандидат технических наук, начальник группы отдела проектирования и испытания бортовой РЭА систем управления 
КА АО «ИСС» им. акад. М. Ф. Решетнева

П784 
 
Программируемые логичеcкие интегральные схемы :  
учеб. 
пособие 
/ 
Н. Ю. Сиротинина, 
О. В. Непомнящий, 
А. И. Постников, Д. А. Недорезов. – Красноярск : Сиб. федер. 
ун-т, 2020. – 224 c.
ISBN 978-5-7638-4244-9

Рассмотрены архитектуры программируемых логических интегральных 
схем, маршруты проектирования на их основе, средства разработки ПЛИСпроектов на языке описания аппаратуры Verilog. Представлены практические 
работы, позволяющие освоить разработку ПЛИС-проектов.
Предназначено для студентов бакалавриата всех форм обучения по направлению подготовки 09.03.01 «Информатика и вычислительная техника» в качестве основной литературы по дисциплине «Программируемые логические 
интегральные схемы». Может использоваться в качестве основной и дополнительной литературы при изучении дисциплин «Программируемые логические 
интегральные схемы. Дополнительные главы», «Прикладная теория цифровых 
автоматов», «Схемотехника ЭВМ» и др.

Электронный вариант издания см.: 
УДК 621.3.049.77:004.42(07)
http://catalog.sfu-kras.ru 
ББК 32.844.15я73

Разработано в рамках проекта Erasmus+ 573545-EPP-1-2016-1-DE-EPPKA2-CBHE-JP Applied 
curricula in space exploration and intelligent robotic systems / Прикладные образовательные программы в области освоения космоса и интеллектуальных робототехнических систем.

Co-funded by the Erasmus+ Programme of the European Union: Joint project Capacity Building 
in the field of Higher Education 573545-EPP-1-2016-1-DE-EPPKA2-CBHE-JP Applied 
curricula in space exploration and intelligent robotic systems.

The European Commission support for the production of this publication does not constitute an 
endorsement of the contents which reflects the views only of the authors, and the Commission 
cannot be held responsible for any use which may be made of the information contained therein.

ISBN 978-5-7638-4244-9 
© Сибирский федеральный университет, 2020

ОГЛАВЛЕНИЕ

Введение .......................................................................................................6

1. Общие сведения о ПЛИС ......................................................................9
1.1. История вычислительной техники и предпосылки  
появления ПЛИС ...................................................................................9
1.2. Классификация ПЛИС ....................................................................... 15
1.3. Области применения ПЛИС ............................................................. 25
1.4. Архитектура ПЛИС класса FPGA .................................................... 26
1.4.1. Программируемая коммутирующая среда FPGA ................. 31
1.4.2. Способ хранения конфигурации FPGA ................................. 34
1.4.3. Специализированные блоки современных FPGA ................ 35
1.4.4. Аппаратные и программные встроенные  
микропроцессорные ядра  ...................................................... 38
1.4.5. Дерево синхронизации и диспетчер синхронизации  .......... 40
1.5. Основные производители ПЛИС и их продукция .......................... 42
1.5.1. ПЛИС Altera (Intel FPGA) ...................................................... 43
1.5.2. ПЛИС фирмы Xilinx ............................................................... 48
1.5.3. ПЛИС фирмы Lattice .............................................................. 49
Вопросы и задания .................................................................................... 51

2. Разработка ПЛИС-проектов. Синтезируемые описания  
на языке Verilog  ...................................................................................... 53
2.1. Маршруты и технологии проектирования изделий  
на базе ПЛИС ..................................................................................... 53
2.2. Языки описания аппаратуры: общие сведения ............................... 61
2.3. Язык описания аппаратуры Verilog .................................................. 66
2.4. Verilog: основные конструкции ........................................................ 69
2.4.1. Имена и комментарии ............................................................. 69
2.4.2. Типы переменных ................................................................... 70
2.4.3. Особые типы данных: цепи и регистры ................................ 72
2.4.4. Многоразрядные переменные – шины  ................................. 74
2.5. Структура ПЛИС-проекта. Модуль  ................................................. 75
2.5.1. Порты в описании модуля ...................................................... 77
2.5.2. Параметры в описании модуля .............................................. 80
2.5.3. Создание экземпляра модуля – инстанса .............................. 81
2.6. Структурное описание модулей........................................................ 82

Оглавление

2.7. Функциональное описание модулей ................................................ 92
2.7.1. Операции языка Verilog .......................................................... 92
2.7.2. Приоритет операций ............................................................. 104
Вопросы и задания .................................................................................. 105

3. Синтезируемое описание асинхронных  
(комбинационных) схем  ...................................................................... 107
3.1. Оператор непрерывного присваивания (назначения) assign ........ 108
3.2. Поведенческий блок always в описаниях  
комбинационных схем ..................................................................... 114
3.3. Синтезируемая конструкция цикла  for ......................................... 116
3.4. Описание условной логики в комбинационных схемах ............... 118
3.4.1. Тернарная операция ?: .......................................................... 119
3.4.2. Условная конструкция if  ...................................................... 119
3.4.3. Конструкция множественного выбора case  ....................... 124
3.5. Пример разработки асинхронной схемы:  
арифметико-логическое устройство ............................................... 127
Вопросы и задания .................................................................................. 130

4. Синтезируемое описание синхронных схем  ................................ 131
4.1. Поведенческий блок always при описании  
синхронных схем .............................................................................. 131
4.2. Синхронные и асинхронные управляющие сигналы ................... 134
4.2.1. Синхронный сброс ................................................................ 134
4.2.2. Асинхронный сброс .............................................................. 136
4.3. Блокирующее и неблокирующее присваивание ........................... 138
4.4. Синтезируемое описание типовых синхронных схем,  
используемых в ПЛИС-проектах .................................................... 142
4.4.1. Модули памяти ...................................................................... 143
4.4.2. Регистры с расширенной функциональностью .................. 147
4.4.3. Таймеры-счетчики ................................................................. 148
4.5. Пример разработки модуля памяти:  
регистровый файл для АЛУ ............................................................ 152
4.6. Пример разработки иерархического проекта: процессор  ........... 155
4.7. Синтезируемое описание цифровых автоматов ............................ 160
4.7.1. Формы задания конечных автоматов ................................... 163
4.7.2. Кодирование состояний ........................................................ 164
4.7.3. Описание конечного автомата Мура ................................... 167
4.7.4. Описание конечного автомата Мили ................................... 170

Оглавление

4.7.5. Сравнительный анализ выходных сигналов  
автоматов Мура и Мили ....................................................... 173
4.8. Пример разработки цифрового автомата:  
устройство управления процессором ............................................. 173
Вопросы и задания .................................................................................. 177

5. Библиотеки модулей. IP-ядра ......................................................... 179
5.1. Применение IP-ядер в ПЛИС-проектах ......................................... 179
5.1.1. Виды IP-ядер.......................................................................... 179
5.1.2. Требования к IP-ядрам .......................................................... 181
5.2. Soft-процессоры ............................................................................... 182
Вопросы и задания .................................................................................. 186

6. Практикум по курсу «Программируемые логические  
интегральные схемы» .......................................................................... 187
6.1. Аппаратное обеспечение для выполнения работ .......................... 187
6.2. Программное обеспечение для выполнения работ ....................... 187
6.3. Общие требования к выполнению практических работ ............... 189
6.4. Тематические практические работы  ............................................. 189
6.5. Итоговый ПЛИС-проект по разделу «Синтезируемые описания  
на языке Verilog» .............................................................................. 216

Заключение ............................................................................................. 218

Список литературы .............................................................................. 219

ВВЕДЕНИЕ

Цель преподавания дисциплины «Программируемые логические 
интегральные схемы» (ПЛИС) – обучение студентов использованию методов и средств проектирования цифровых устройств на базе программируемых интегральных схем.
Разработка  и создание цифровых устройств различного назначения на базе ПЛИС  является одним из наиболее активно развивающихся 
направлений развития цифровой элементной базы. Основными областями применения ПЛИС в настоящее время являются: 
• цифровая обработка сигналов;
• высокопроизводительные вычисления;
• криптографические системы, системы защиты информации;
• мосты (коммутаторы) между системами с различной логикой, 
напряжением питания, с несовместимыми или нестандартными интерфейсами;
• нейронные сети и прочие разработки из области искусственного интеллекта;
• системы с перестраиваемой (реконфигурируемой) архитектурой;
• прототипирование заказных интегральных схем. 
Обширный список областей применения ПЛИС позволяет предположить, что специалисты в области разработки ПЛИС-проектов будут 
востребованы на рынке труда.
Пособие содержит базовый объем информации, достаточный для 
того, чтобы студент получил представление об особенностях организации современных ПЛИС с различными архитектурами, их преимуществах и недостатках, применимости для решения различных типов прикладных задач, проблемах эффективного использования. Практическая 
часть пособия позволяет освоить базовые навыки применения средств 
разработки и отладки ПЛИС-проектов. 
После освоения курса студент должен уметь:
• выполнять декомпозицию проектируемого цифрового устройства на модули; 
• описывать отдельные модули  и ПЛИС-проект в целом средствами 
схемного ввода и с использованием языка описания аппаратуры Verilog; 

Введение

• разрабатывать тестовое окружение ПЛИС-проекта;
• выполнять моделирование, тестирование и отладку ПЛИСпроектов средствами среды разработки Quartus и ModelSim; 
• программировать целевую ПЛИС;
• тестировать полученное изделие.
Пособие состоит из пяти глав и практической части.
Первая глава содержит общие сведения о ПЛИС, предпосылки 
появления ПЛИС в контексте истории развития вычислительной техники. Приведена классификация ПЛИС, и охарактеризованы основные 
области их применения. Особое внимание уделено архитектурам ПЛИС 
класса FPGA. Перечислены основные производители ПЛИС, и дана 
краткая характеристика их продукции. Дано представление о маршруте 
проектирования цифровых устройств на базе ПЛИС. Введено понятие 
языков описания аппаратуры.
Во второй главе рассмотрены общие вопросы разработки ПЛИСпроектов и создания синтезируемых описаний на языке Verilog. Рассмотрены основные конструкции Verilog, соглашения о порядке именования. Описаны основные типы переменных, как универсальные, так 
и специфические для языков описания аппаратуры, такие как цепи и регистры. Перечислены основные операции Verilog. Рассмотрена структура ПЛИС-проекта. Введены понятия модуля и экземпляра модуля (инстанса), даны основные способы и правила описания модулей.
Третья глава посвящена вопросам синтезируемого описания асинхронных (комбинационных) схем. Рассмотрены операция непрерывного присваивания (назначения)  assign и особенности ее применения 
в синтезируемых ПЛИС-проектах , способы описания условной логики 
в комбинационных схемах.
Четвертая глава посвящена синтезируемым описаниям синхронных схем. Дано понятие поведенческого блока always, рассмотрены 
особенности описания синхронных и асинхронных управляющих сигналов. Особое внимание уделено специфическим операциям блокирующего и неблокирующего присваивания. Рассмотрены синтезируемые 
описания типовых синхронных схем, используемых в ПЛИС-проектах: 
модулей памяти, регистров с расширенной функциональностью, таймер-счетчиков. Описаны подходы к проектированию цифровых автоматов Мура и Мили.

Введение

В последней главе дано общее представление о возможности повторного использования разработанных компонентов, о библиотечных 
и IP-ядрах различной сложности, в частности, о soft-процессорах.
Курс практических работ состоит из двух видов заданий: тематических практических работ и заключительного проекта.
Цель тематических работ – изучение особенностей организации 
ПЛИС, средств и инструментов разработки ПЛИС-проектов, подходов 
к описанию модулей различных типов.
Цель итогового проекта – получение навыков применения инструментов и приемов разработки ПЛИС-проекта в комплексе.
Для того чтобы успешно усвоить материал курса, необходимо 
иметь навыки программирования на языке высокого уровня, представление о математической логике, прикладной теории цифровых автоматов, схемотехнике ЭВМ.
Материал курса далее будет востребован в дисциплинах «Микропроцессорные системы», может оказаться полезным при выполнении 
выпускной квалификационной работы и при дальнейшем обучении 
в магистратуре. Пособие может использоваться в качестве основной 
и дополнительной литературы для таких дисциплин, как «Программируемые логические интегральные схемы. Дополнительные главы» (магистратура), «Прикладная теория цифровых автоматов», «Схемотехника ЭВМ» и др.

1. ОБЩИЕ СВЕДЕНИЯ О ПЛИС

1.1. История вычислительной техники  
и предпосылки появления ПЛИС

В 1937 году американский математик, специалист в области теории шифрования Клод Шеннон (Claude Elwood Shannon) показал, что 
существует соответствие «один к одному»  между конструкциями булевой логики и некоторыми электронными схемами, которые получили 
название «логические вентили». Он продемонстрировал, что комбинационные схемы – логические вентили, объединенные связями, – эквивалентны выражениям булевой алгебры. Своей работой “A Symbolic 
Analysis of Relay and Switching Circuits” он создал основу для практического проектирования цифровых схем, которые могли осуществлять 
вычисления [1, 2]. 
Одним из основных кандидатов на роль первой электронной 
вычислительной машины, воплотившей принципы Шеннона, считается программируемый электронный калькулятор общего назначения 
ENIAC (Electronic Numerical Integrator and Computer – электронный цифровой интегратор и вычислитель), который был создан в период с 1942 
по 1946 год в университете  Пенсильвании математиками и инженерами Джоном Мочли (John J. Mauchly) и Преспером Эккертом (J. Presper 
Eckert). Важной особенностью этой вычислительной системы являлось 
то, что порядок выполнения вычислений задавался схемой коммутации 
компонентов на 40 наборных полях. Таким образом, для каждой прикладной задачи вычислительная система фактически конфигурировалась заново. Процесс коммутации занимал длительное время – от нескольких часов до нескольких суток [3]. В проекте принимал активное 
участие американский физик и математик Джон фон Нейман (John von 
Neumann). Фон Нейман в своей работе представил научному миру свои 
идеи по организации компьютера [4]. Именно эти идеи, получившие 
название «принципы фон Неймана», в основном определили развитие 
вычислительной техники на длительный период. Одним из принципов 
фон Неймана является принцип программного управления.

1. Общие сведения о ПЛИС

Принцип программного управления гласит, что все вычисления, 
предусмотренные алгоритмом решения задачи, должны быть представлены в виде программы, состоящей из последовательности управляющих слов – команд. Каждая команда предписывает некоторую операцию 
из набора операций, реализуемых вычислительной машиной. Команды 
программы хранятся в последовательных ячейках памяти вычислительной машины и выполняются в естественной последовательности, т. е. 
в порядке их положения в программе. При необходимости эта последовательность может быть изменена с помощью специальных команд. 
Была сформирована архитектура вычислительной машины, выполненной согласно принципам фон Неймана. Позднее в архитектуре ЭВМ 
был выделен процессор (рис. 1).
Процессор (центральный процессор, ЦП; от англ. central processing 
unit, CPU) – электронный блок, исполняющий машинные команды, 
главная часть аппаратного обеспечения компьютера.
В то же время Аланом Тьюрингом было доказано, что программируемая вычислительная машина является универсальным инструментом, т. е. способна реализовать любой алгоритм обработки информации. 
Далее история развития цифровой техники стала прежде всего историей развития программируемых электронных вычислительных машин. 
Эту историю принято разбивать на поколения [3]. 

Рис. 1. Архитектура фон Неймана

1.1. История вычислительной техники и предпосылки появления ПЛИС 

Первое поколение  (1945–1954), представителем которого был 
упомянутый ENIAC, было реализовано на электронных лампах. 
Во втором поколении (1955–1964) вместо электронных ламп использовались транзисторы, а в качестве устройств памяти стали применяться магнитные сердечники и магнитные барабаны. 
В третьем поколении (1965–1974) впервые стали использоваться 
интегральные схемы, выполняющие как функции обработки информации, так и функции ее хранения.
Интегральная схема (микросхема) – микроэлектронное изде лие, 
выполняющее определенную функцию преобразования, об работки 
сигнала, накапливания информации и имеющее высокую плотность 
электрически соединенных элементов (или элементов и компонентов), 
которые с точки зрения требований к испытаниям, приемке, поставке 
и эксплуатации рассматриваются как 
единое целое.
Для оценки сложности цифровых СБИС используется единица 
«эквивалентный вентиль» (например, 2-входовый элемент «И-НЕ»), 
который соответствует четырем эквивалентным транзисторам (рис. 2). 
На первых этапах для реализации процессоров использовались 
микросхемы низкой и средней степени интеграции и сам процессор 
представлял собой сложный многокомпонентный модуль. По мере развития технологии и роста степени 
интеграции микросхем количество 
элементов и соединений между ними, 
реализуемых на одном кристалле, 
постоянно росло. В 1970-е годы интегральные схемы содержали уже тысячи транзисторов, что позволило 
реализовать в одной микросхеме  отдельные элементы цифровой схемотехники: логические элементы, затем более сложные модули – регистры, счётчики, сумматоры. Позднее появились микросхемы, содержа
Рис. 2. Пример эквивалентного вентиля 
2-входового И-НЕ

1. Общие сведения о ПЛИС

щие функциональные блоки процессора: микропрограммное устройство, 
арифметико-логическое устройство, устройства работы с шинами данных и команд [2, 3]. 
Наконец, в 1971 году фирма Intel выпустила первый микропроцессор, который положил начало четвертому поколению ЭВМ. 
Микропроцессор – это программно-управляемое устройство, которое отвечает за выполнение арифметических, логических операций 
и операций управления, записанных в машинном коде, конструктивно 
выполненное в виде одной большой интегральной схемы (БИС) [5].
Многие исследователи считают, что на этом смена поколений 
ЭВМ прекратилась, прогресс идет в основном по пути развития того, 
что уже изобретено. Основным направлением развития долгое время 
оставалось уменьшение размеров электронных компонент, увеличение их числа на отдельном кристалле. К настоящему моменту это направление развития вплотную приблизилось к физическому пределу, 
а каждый следующий шаг становится все более затруднительным. 
В то же время запросы потребителей и рынка к вычислительной технике постоянно растут. В основном это касается таких характеристик, как производительность, автономность и энергонезависимость, 
компактность вычислительных устройств. Ведется поиск новых архитектур, в основном в направлении параллельной организации вычислительных систем, но это не снимает остроты проблемы. Ситуация 
требует поиска резервов для повышения перечисленных характеристик и принципиально новых решений.
Программно-управляемые устройства универсальны, т. е. способны решить практически любую задачу за счет реализации принципа 
программного управления, описанного выше. Программное управление 
позволяет изменить алгоритм работы и выполняемые функции за счет 
замены программного обеспечения, не затрагивая аппаратную часть. 
Однако выполнение программы требует значительных затрат времени 
на обработку машинных команд, обмен с памятью команд и данных 
и прочие этапы командного цикла, а сами программно-управляемые системы имеют достаточно сложную архитектуру. Большинство специальных задач может быть успешно решено с использованием программноуправляемых устройств (ЭВМ, микроконтроллеров) за счет разработки 
и оптимизации соответствующего программного обеспечения. Но если 

1.1. История вычислительной техники и предпосылки появления ПЛИС 

накладываются жесткие критические ограничения на объем аппаратуры 
и время выполнения вычислений, программно-управляемые устройства 
часто не обеспечивают нужные характеристики. Аппаратная реализация 
функций в подавляющем большинстве случаев является более быстродействующей, хотя и лишена свойства универсальности. По этой причине перед разработчиками вычислительной техники, наряду с задачей 
проектирования универсальных вычислительных машин, всегда стояли 
проблемы создания специализированной аппаратуры, предназначенной 
для выполнения конкретных, специфических операций. Долгое время для подобного применения разрабатывались специализированные 
многокомпонентные устройства из отдельных элементов и микросхем 
малой и средней степени интеграции, а в настоящее время с этой целью 
применяются специализированные интегральные микросхемы.
Специализированные (заказные) интегральные микросхемы 
(Application Specific Integrated Circuit, ASIC) – микросхемы, которые 
имеют жестко заданную на этапе разработки структуру, проектируются 
и изготавливаются под заказ и предназначены для выполнения конкретной задачи или круга задач [6]. Специализированные интегральные схемы выполняют строго ограниченные функции, характерные только для 
данного устройства, причем эффективность реализации этих функций 
обычно очень высока.
Микросхемы класса ASIC получили широкое распространение, 
поскольку они являются практически единственным приемлемым решением при реализации сложных изделий микроэлектроники для портативной и носимой аппаратуры. ASIC широко используются в различных 
отраслях микроэлектроники, включая телеметрию, коммуникационные 
системы, глобальные навигационные системы, мультимедиа, автомобильную и бытовую электронику и т. д. Основное преимущество таких 
микросхем – быстродействие. При этом современные ASIC настолько сложны, что их проектирование даже с применением современных 
инструментов САПР является серьезной проблемой и часто требует 
значительных трудозатрат и недопустимо много времени. При мелкосерийном и единичном производстве ASIC стóят значительно дороже 
массово изготавливаемых микросхем, а в случае даже незначительных 
изменений в алгоритме функционирования требуют повторной разработки в полном объеме. Поэтому применение ASIC становится эконо