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

Цифровой синтез: RISC-V

Покупка
Новинка
Артикул: 856473.01.99
Доступ онлайн
2 099 ₽
В корзину
Данная книга продолжает серию «Книжная полка Истового инженера», которая издается при поддержке компании YADRO. Издание подготовлено к публикации Московским институтом электроники и математики им. А. Н. Тихонова НИУ ВШЭ совместно с издательством «ДМК Пресс». Перед вами расширенный курс, ориентированный на язык Verilog и обеспечивающий возможность выполнения практических задач на недорогой отладочной плате или виртуальном/удаленном стенде при ее отсутствии. Этот практикум дополняет и объединяет теоретические курсы по цифровой логике, языкам описания аппаратуры, компьютерной архитектуре и микроархитектуре, а также подготавливает студентов к работе с промышленными процессорными ядрами, к созданию специализированных вычислителей (например, ускорителей нейросетей) и курсов VLSI по проектированию массовых микросхем ASIC. Материал каждой главы можно изучать автономно. В конце глав приводятся вопросы и упражнения, позволяющие преподавателям встраивать данный материал в любой учебный курс, а читателям книги — закрепить новые знания, самостоятельно выполнив предлагаемые задания. Издание предназначено для студентов технических вузов, разработчиков аппаратно-программных систем, а также специалистов в области прикладной математики, интересующихся алгоритмами САПР.
Цифровой синтез: RISC-V : практическое руководство / под общ. ред. А. Ю. Романова. – Москва : ДМК Пресс, 2024. - 638 с. – (Книжная полка Истового инженера). - ISBN 978-5-93700-282-2. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2205070 (дата обращения: 08.04.2025). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Книжная полка Истового инженера 
Под общей редакцией А. Ю. Романова
Цифровой синтез: 
RISC-V
Москва, 2024


УДК 004.01
ББК 32.972
	
 Р69
Рецензенты
Бибило П. Н., Иванников А. Д., Тарасов И. Е.
Коллектив авторов
Американов А. А., Антонов А. А.,  Барабанов А. В., Жельнио С. Л.,  
Зунин В. В., Иванец С. А., Коробков М. А., Куделина Л. А., Кудрявцев И. А.,   
Маршутина Е. Н., Панчул Ю. В., Романов А. Ю., Романова И. И.,  
Силантьев А. М., Телятников А. А., Шуплецов М. С.
Р69	
Цифровой синтез: RISC-V / под общ. ред. А. Ю. Романова. – М.: ДМК Пресс, 
2024. – 636 с.: ил. – (Книжная полка Истового инженера).
	
ISBN 978-5-93700-282-2
Данная книга продолжает серию «Книжная полка Истового инженера», которая 
издается при поддержке компании YADRO. Издание подготовлено к публикации 
Московским институтом электроники и математики им. А. Н. Тихонова НИУ ВШЭ 
совместно с издательством «ДМК Пресс».
Перед вами расширенный курс, ориентированный на язык Verilog и обеспечивающий возможность выполнения практических задач на недорогой отладочной 
плате или виртуальном/удаленном стенде при ее отсутствии. Этот практикум дополняет и объединяет теоретические курсы по цифровой логике, языкам описания 
аппаратуры, компьютерной архитектуре и микроархитектуре, а также подготавливает студентов к работе с промышленными процессорными ядрами, к созданию 
специализированных вычислителей (например, ускорителей нейросетей) и курсов 
VLSI по проектированию массовых микро-схем ASIC.
Материал каждой главы можно изучать автономно. В конце глав приводятся вопросы и упражнения, позволяющие преподавателям встраивать данный материал в любой учебный курс, а читателям книги – закрепить новые знания, самостоятельно выполнив предлагаемые задания.
Издание предназначено для студентов технических вузов, разработчиков аппаратно-программных систем, а также специалистов в области прикладной математики, интересующихся алгоритмами САПР.
УДК 004.01
ББК 32.972
Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав.
Материал, изложенный в данной книге, многократно проверен. Но, поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи 
с этим издательство не несет ответственности за возможные ошибки, связанные 
с использованием книги.
	
© Коллектив авторов, 2024 
	
© НИУ ВШЭ, 2024 
ISBN 978-5-93700-282-2	
© Оформление, ДМК Пресс, 2024


Оглавление
Введение		
0-1
Глава 1.  Основы комбинационной логики. Маршрут разработки цифровых схем	
1-1
Глава 2.  Виртуальная лаборатория DESim	
2-1
Глава 3.  Удаленная лаборатория: когда отладочной платы нет под рукой	
3-1
Глава 4.  Основы последовательностной логики. Управление энергопотреблением 
цифровой схемы	
4-1
Глава 5.  Шифраторы и дешифраторы. Скорость работы комбинационных блоков	
5-1
Глава 6.  Мультиплексор, демультиплексор и селектор. Построение иерархических 
модулей	
6-1
Глава 7.  Сумматор, компаратор, устройство сдвига и АЛУ . Повышение скорости 
арифметических операций	
7-1
Глава 8.  Последовательностная логика. Счетчики и сдвиговые регистры	
8-1
Глава 9.  Память: регистровый файл и стек	
9-1
Глава 10.  Конечные автоматы: основы	
10-1
Глава 11.  Использование конечных автоматов для связи с периферийными 
устройствами	
11-1
Глава 12.  Конвейерная обработка данных	
12-1
Глава 13.  Софт-процессор RISC-V: основы микроархитектуры	
13-1
Глава 14.  Систолический массив	
14-1
Глава 15.  Тестирование больших проектов	
15-1
Приложение А.  Истовый инженер	
А-1
Приложение Б.  Инженерный хакатон SoC Design Challenge	
Б-1
Приложение В.  Школа синтеза цифровых схем	
С-1
Приложение Г. Комьюнити FPGA-Systems	
Г-1
Предметный указатель	
У-1




Александр Романов, Юрий Панчул
Цифровой синтез: 
RISC-V
Введение


Введение
0-2
Предисловие А. Ю. Романова
История создания книги, которую вы держите в руках
История создания книги «Цифровой синтез: RISC-V» традиционно (для таких проектов) не проста. После успеха переводной русскоязычной версии учебника «Цифровая схемотехника и архитектура компьютера» стало понятно, что необходимо его продолжение в виде расширенного практического курса, ориентированного 
на Verilog и обеспечивающего возможность выполнения практических задач на 
дешевых отладочных платах. Ясно было также и то, что одному человеку (и да-же 
коллективу университетской кафедры) создать такой курс – непосильная задача, 
притом что издание книги требовало финансирования. У истоков идеи подготовки 
такой книги стоял Юрий Панчул, сумевший объединить для ее воплощения множество преподавателей и инженеров со всего мира. Идея была поддержана Евгением Аврамовичем Круком, руководителем Московского института электроники 
и математики Национального университета «Высшая школа экономики» (МИЭМ 
НИУ ВШЭ). Несмотря на экономический уклон НИУ ВШЭ, МИЭМ в прошлом был 
отдельным техническим вузом, осуществлявшим подготовку студентов в области электроники и математики. Сейчас же, опираясь на необходимые технические 
и человеческие ресурсы, МИЭМ является одним из ведущих центров компетенций, 
в том числе и по цифровому синтезу. Со стороны МИЭМ к работе подключился я 
(Романов Александр Юрьевич), руководитель учебной лаборатории САПР. Далее 
началась работа по подготовке книги, сбору и редактированию глав от разных авторов, рецензированию и разработке дополнительных материалов. 
Так родилась книга «Цифровой синтез: практический курс», ставшая настоящим событием в инженерном сообществе и достигшая статуса бестселлера издательства «ДМК Пресс». Выход этой книги дал начало изданию целой серии оригинальных книг и переводов зарубежных бестселлеров под брендом «Книжная 
полка Истового инженера», поддержку которых осуществляет компания YADRO. 
Прошло четыре года, многое поменялось, и назрела необходимость в создании 
новой книги: 
•	 широчайшее распространение приобрела архитектура RISC-V – она практически полностью заняла нишу MIPS, которой была посвящена базовая книга, 
и сильно подвинула ARM;
•	 вышла книга «Цифровая схемотехника и архитектура компьютера: 
RISC-V», адаптированная под новую архитектуру;
•	 ряд глав базовой книги устарел, и у авторов накопился внушительный список 
необходимых исправлений;
•	 сам практический курс, отработанный на нескольких поколениях студентов, 
был улучшен и приведен в соответствие современным потребностям – были 
разработаны новые средства, позволяющие изучать материалы курса, не имея 
отладочной платы, с помощью виртуальных и удаленных стендов.
Все вышеперечисленное и стало основанием для создания книги «Цифровой 
синтез: RISC-V», которую вы держите в руках.


Введение
0-3
Чем эта книга отличается от других?
Следует отметить, что данная книга – отдельное произведение, значительно отличающееся от предыдущего издания. Часть глав подверглась небольшим изменениям, другие были заменены, устаревшие главы – удалены. Были добавлены 
новые главы и приложения, охватывающие следующую проблематику: новые технологии виртуальных и удаленных стендов; простое ядро с архитектурой RISC-V; 
разработку средств аппаратного искусственного интеллекта на основе систолических массивов; новые возможности для продолжения обучения читателей, освоивших материалы книги. 
Особенностью книги является то, что во всех главах каждый пример кода сопровождается листингом и тестбенчем, которые находятся в дополнительных материалах (https://github.com/RomeoMe5/ddlm_riscv). Это позволяет читателю легко 
использовать уже готовые исходные коды, проводить моделирование и прототипирование на учебной плате с ПЛИС, а также модифицировать работающие примеры программ. Появилась также возможность выполнять отладку кода на виртуальном или удаленном стенде.
Несколько слов об отладочных платах: поскольку участники команды, разрабатывавшей книгу, находились в разных по уровню дохода населения странах, одна из 
целей курса состояла в том, чтобы сделать его максимально доступным для людей даже самого скромного достатка. Изначально книга ориентирована на плату 
DE10-Lite от компании Terasic на основе ПЛИС MAX 10K производства Altera 
(после покупки компанией Intel некоторое время называлась Intel FPGA, пока 
ей снова не было возвращено исходное имя). Выбор платы обусловлен ее относительно небольшой стоимостью (около $82 по академической цене) и доступностью, а также тем, что она обладает достаточной периферией, функционалом, емкостью ресурсов и даже может быть интегрирована с платформой Arduino. Платы 
на основе ПЛИС Altera, популярные в России и ближнем зарубежье, имеются во 
многих академических организациях. При этом исходные коды примеров могут 
быть легко перенесены и на другие платы. 
Поскольку данный проект ориентирован на широкое сообщество, была реализована возможность выполнять все примеры на виртуальном стенде DESim, обеспечивающем значительную часть функционала платы Terasic DE1-SoC, но при 
этом не требующем наличия самой платы. Также в отдельной главе рассказывается, как можно подключиться к удаленной лаборатории на базе МИЭМ НИУ 
ВШЭ. Это дает возможность работать с различными реальными платами в дистанционном режиме. 
Для выполнения работ не требуется никакого платного программного обеспечения, так как Quartus Prime Lite Edition + Modelsim / GTKWave / DESim распространяются свободно. Таким образом, чтобы приступить к изучению цифрового 
синтеза, достаточно иметь только эту книгу; при желании увидеть результаты не 
только моделирования, но и прототипирования понадобится отладочная плата 
на основе ПЛИС или интернет-соединение для подключения к удаленной лаборатории МИЭМ НИУ ВШЭ.


Введение
0-4
Содержание книги
Еще одна особенность книги – это то, что авторы представили ее главы в виде отдельных независимых разделов: то есть можно изучать тот раздел, который необходим сейчас, а обращаться к другим главам – по необходимости. Главы книги 
создавались, как правило, одним или двумя участниками большого авторского коллектива, поэтому каждая глава имеет свой неповторимый оригинальный 
стиль (подвергшийся, впрочем, единому научному редактированию); в случае 
если какая-то из глав по каким-либо причинам будет восприниматься читателями тяжело, есть надежда на то, что другие будут читаться ими намного легче. 
Поскольку книга задумана как практикум, ее подразделы сопровождаются заданиями для самостоятельной проработки. В конце каждой главы приводятся вопросы и упражнения, позволяющие преподавателям встраивать данный 
материал в любой учебный курс, а читателям книги – закрепить новые знания, 
самостоятельно выполнив предлагаемые задания. Если вы университетский преподаватель, вы можете связаться со мной (Романовым Александром Юрьевичем, 
a.romanov@hse.ru) и получить дополнительные материалы к книге, в том числе 
презентации.
Рассмотрим кратко по главам содержание книги.
Глава 1. Основы комбинационной логики. Маршрут разработки 
цифровых схем
Глава знакомит читателя с типичным циклом разработки цифровой системы на 
примере проектирования простой комбинационной схемы, которая содержит 
всего несколько логических вентилей. Сначала демонстрируется, как описать 
цифровую схему с помощью графического редактора. Далее та же схема проектируется с использованием языка описания аппаратуры. После этого демонстрируются этапы моделирования и прототипирования.
Глава 2.  Виртуальная лаборатория DESim
В этой главе рассказывается о том, как можно использовать инструменты виртуализации плат ПЛИС на примере приложения DESim. Его можно использовать для симуляции схем, разработанных на языках VHDL и Verilog (включая 
SystemVerilog). Приложение DESim обеспечивает графический интерфейс пользователя (GUI), имитирующий работу с периферией отладочной платы DE1-SoC. 
Глава 3. Удаленная лаборатория: когда отладочной платы нет под рукой
В этой главе описана организация и строение удаленной лаборатории, реализованной в МИЭМ НИУ ВШЭ. Читатели книги по запросу могут воспользоваться 
удаленными стендами лаборатории и получить удаленный доступ к различным 
отладочным платам для отработки глав этой книги или реализации собственных 
проектов. 
Глава 4. Основы последовательностной логики.  
Управление энергопотреблением цифровой схемы
Данная глава посвящена разработке последовательностных устройств. Рассматриваются защелки и триггеры на примерах их реализаций на языке Verilog. Гла
Введение
0-5
ва позволяет понять, чем комбинационная логика отличается от последовательностной и как можно управлять энергопотреблением цифровых устройств на 
этапе их проектирования.
Глава 5. Шифраторы и дешифраторы. Скорость работы комбинационных 
блоков
В этой главе приводятся примеры реализаций таких важных комбинационных 
блоков, как шифраторы и дешифраторы, а также дается методика оценки временных характеристик цифровых блоков и их оптимизации. 
Глава 6. Мультиплексор, демультиплексор и селектор. Построение 
иерархических модулей
В главе на примере разработки различных вариантов реализаций таких комбинационных блоков, как мультиплексор, демультиплексор и селектор, демонстрируется иерархический подход к проектированию цифровых устройств. Также вводятся понятие параметризации модулей и конструкция generate. В конце главы 
демонстрируются некоторые приемы использования мультиплексоров на практических примерах.
Глава 7. Сумматор, компаратор, устройство сдвига и АЛУ. Повышение 
скорости арифметических операций
В главе рассматриваются примеры всевозможных реализаций комбинационной 
арифметики (сумматоров, компараторов, устройств сдвига и АЛУ на их основе). 
Отдельный раздел посвящен повышению скорости арифметических блоков на 
этапе их проектирования.
Глава 8. Последовательностная логика. Счетчики и сдвиговые регистры
В данной главе изложение возвращается к последовательностной логике и особенностям ее разработки на Verilog (блокирующие/неблокирующие присваивания, понятие защелок и т. д.) на примере разработки счетчиков и сдвиговых регистров. В конце главы даны примеры организации взаимодействия цифровых 
систем с простыми периферийными модулями.
Глава 9. Память: регистровый файл и стек
Эта глава посвящена различным вариантам реализации памяти (регистровая память, однопортовая/многопортовая память, стек, очередь и т. д.). В конце главы приводится небольшой пример проектирования на HDL памяти с привязкой 
к библиотекам фабрик-производителей ASIC.
Глава 10. Конечные автоматы: основы
В главе приводятся основные понятия и приемы для проектирования конечных 
автоматов. Иллюстрируются особенности проектирования конечных автоматов 
Мили и Мура и рассматриваются наиболее оптимальные случаи их использования. Также демонстрируется использование специальных инструментов для проектирования и анализа конечных автоматов.
Глава 11. Использование конечных автоматов для связи  
с периферийными устройствами
Эта глава расширяет тему проектирования конечных автоматов путем формализации академического подхода к проектированию автоматов; также демонстри
Введение
0-6
руются и другие автоматы – например, на основе счетчика. Глава обосновывает применение конечных автоматов в проектировании цифровых устройств как 
ключевого блока управления ими.
Глава 12. Конвейерная обработка данных
Глава посвящена описанию конвейерного подхода к обработке данных и особенностям разработки на Verilog. Приводится сравнение комбинационного, многотактного и конвейерного подходов на примере разработки арифметического 
блока; описываются дополнительные приемы повышения эффективности конвейерных схем.
Глава 13. Софт-процессор RISC-V: основы микроархитектуры
Глава посвящена пошаговому проектированию очень простого софт-микропроцессора с последующим запуском на нем нескольких несложных программ, разработанных на ассемблере. Для этого используется schoolRISCV – ядро, представляющее собой упрощенный вариант процессора Сары Харрис. 
Глава 14. Систолический массив
Глава призвана сформировать понимание современного состояния разработки аппаратного обеспечения вычислений, в частности для задач машинного 
обуче-ния. Систолический массив интересен как одна из наиболее применяемых 
и успешных концепций в этой области. В главе рассматривается базовая реализация систолического массива, а также пример его применения для задач машинного обучения (линейная классификация).
Глава 15. Тестирование больших проектов
Глава посвящена возможным способам тестирования систолического массива, 
требующего большего количества ресурсов ПЛИС, чем есть в наличии на отладочной плате. Описан способ тестирования масштабного проекта с использованием DESim. Рассмотрены компиляция проекта под плату DE1-SoС, требования по 
различным ресурсам, а также тестирование на плате. В конце главы показана возможность использования удаленной лаборатории МИЭМ НИУ ВШЭ для тестирования больших проектов.
Приложение А. Истовый инженер
Данное приложение является кратким экскурсом в контент, который доступен на 
портале Истовый инженер (engineer.yadro.com).
Приложение Б. Инженерный хакатон SoC Design Challenge
Приложение посвящено хакатону SoC Design Challenge, который ежегодно проводится компанией YADRO в партнерстве с НИУ МИЭТ и другими вузами. Здесь 
рассказывается об особенностях мероприятия и основных треках. Приводятся 
примеры заданий и их решений.
Приложение В. Школа синтеза цифровых схем
Приложение посвящено Школе синтеза цифровых схем – месту, где можно закрепить и расширить знания, полученные в результате изучения этой и других книг 
из серии «Истовый инженер»; школа проводится на ежегодной основе и обеспечивает более глубокое изучение проектирования процессорных ядер и их верификации.


Похожие

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