Программируемые логичеcкие интегральные схемы
Покупка
Основная коллекция
Тематика:
Программирование и алгоритмизация
Издательство:
Сибирский федеральный университет
Авторы:
Сиротинина Наталья Юрьевна, Непомнящий Олег Владимирович, Постников Александр Иванович, Недорезов Дмитрий Александрович
Год издания: 2020
Кол-во страниц: 224
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-7638-4244-9
Артикул: 765946.01.99
Рассмотрены архитектуры программируемых логических интегральных схем, маршруты проектирования на их основе, средства разработки ПЛИС-проектов на языке описания аппаратуры Verilog. Представлены практические работы, позволяющие освоить разработку ПЛИС-проектов. Предназначено для студентов бакалавриата всех форм обучения по направлению подготовки 09.03.01 «Информатика и вычислительная техника» в качестве основной литературы по дисциплине «Программируемые логические интегральные схемы». Может использоваться в качестве основной и дополнительной литературы при изучении дисциплин «Программируемые логические интегральные схемы. Дополнительные главы», «Прикладная теория цифровых автоматов», «Схемотехника ЭВМ» и др.
Тематика:
ББК:
УДК:
- 004: Информационные технологии. Вычислительная техника...
- 620: Испытания материалов. Товароведение. Силовые станции. Общая энергетика
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Министерство науки и высшего образования Российской Федерации Сибирский федеральный университет ПРОГРАММИРУЕМЫЕ ЛОГИЧЕ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. Архитектура фон Неймана