Осенью стартовал новый поток Школы синтеза цифровых схем — нашей бесплатной образовательной программы о современных приемах проектирования цифровых микросхем. От серийных ASIC и микропроцессоров общего назначения до реконфигурируемых FPGA и специализированных вычислителей. По этим и связанным темам выпущено немало профессиональной литературы. Мы попросили преподавателей Школы — Юрия Панчула и Александра Рябова — выбрать книги, которые помогут при обучении в школе и самостоятельном освоении синтеза цифровых схем.
«Цифровая схемотехника и архитектура компьютера: RISC-V», Дэвид Харрис, Сара Харрис
Это новая версия популярной книги «Цифровая схемотехника и архитектура компьютера», ставшей одним из основных учебников во многих технических вузах России. Мы писали о ней в подборке книг по схемотехнике.
У «Цифровой схемотехники и архитектуры компьютера» есть три версии, с уклоном в архитектуры MIPS, ARM и RISC-V. Первые пять глав у них различаются незначительно, они посвящены основам цифровой схемотехники и языкам описания аппаратуры SystemVerilog и VHDL. Далее идут главы про конкретную архитектуру (систему команд, интерфейс процессора для программиста), микроархитектуру (аппаратную организацию процессора в ракурсе специалиста по электронике) и использование готовых чипов на основе конкретной архитектуры. В разделе про микроархитектуру описана реализация простейшего процессорного ядра на языках описания аппаратуры. Это важное достоинство учебника.
В 1990-2000-е годы многие западные вузы использовали для обучения архитектуру MIPS, но в 2010-е ядра ARM стали так доминировать в коммерческих продуктах, что преподаватели стали переходить на учебники про ARM. К сожалению, компания ARM не разрешала университетским исследователям свободно экспериментировать с архитектурой, поэтому, когда появилась открытая архитектура RISC-V, именно она стала новым стандартом для образования.
Юрий Панчул
микроархитектор и проектировщик цифровых схем на уровне регистровых передач
В дополнение к труду по цифровой схемотехнике и архитектуре RISC-V сейчас Дэвид и Сара Харрисы заканчивают новую книгу RISC-V Microprocessor System-On-Chip Design — «Проектирование микропроцессорной СнК с архитектурой RISC-V». Она выйдет в издательстве Elsevier в январе.
Книга предназначена для студентов, которые хотят больше узнать про разработку микропроцессоров общего назначения. В ней авторы разбирают открытое процессорное ядро Wally из проекта OpenHW Group. В этом ядре есть устройство управления виртуальной памятью, контроллер прерываний. Реализованы команды с плавающей точкой. Книга демонстрирует процесс верификации таких ядер и запуска на них Linux. Сиквел Харрисов — это не обязательное чтение для всех студентов-электронщиков: некоторым интереснее углубиться в микроархитектуру ускорителей для машинного обучения, компьютерной графики, в сетевые чипы или другие типы микросхем.
«Программирование FPGA для начинающих», Фрэнк Бруно
В самостоятельной работе также поможет книга Фрэнка Бруно, которая охватывает весь процесс программирования FPGA и проектирования аппаратных схем. Расширяя знания комбинационной логики и ПЛИС, вы начнете с переключения светодиодов, а в финале уже создадите целую подсистему вывода с использованием контроллера VGA. На этот увлекательный путь вы можете ступить даже с минимальными знаниями о языке SystemVerilog и FPGA-разработке.
«Логическое проектирование и верификация систем на SystemVerilog», Дональд Томас
Совершенствоваться в SystemVerilog — языке описания и верификации аппаратуры — поможет труд Дональда Томаса. SystemVerilog упрощает передачу инженерного замысла в моделях, включает программные абстракции, облегчающие тестирование, а также средства измерения функционального покрытия в процессе верификации.
Книга содержит не только описание SystemVerilog, но и дополнительные материалы по логическому проектированию. Для усвоения потребуется как минимум базовая подготовка в схемотехнике и программировании.
Юрий Панчул: Дональд Томас с Филиппом Мурби — авторы самого первого учебника по Verilog, The Verilog Hardware Description Language, который вышел в 1991 году и выдержал пять изданий. Эту книгу сравнивали с трудом Кернигана и Ритчи для языка программирования C. Но «Логическое проектирование и верификация систем на SystemVerilog» — это не переиздание классики, а совершенно новая книга.
В отличие от других авторов, Дональд Томас не пересказывает стандарты синтаксиса, а объясняет смысл языка: зачем были введены те или иные конструкции. Он также касается методологий верификации, статического анализа временных задержек и организации интерфейсов между блоками. Наконец, книга включает главу про работу симулятора Verilog, без понимания которой многие элементы языка, например неблокирующие присваивания, выглядят для новичка как непонятные заклинания черной магии.
Digital Design: A Systems Approach, Билл Далли, Р. Кертис Хартинг
Книга охватывает все темы, необходимые для работы с цифровыми схемами: создание и применение комбинационных и последовательных схем, тайминги, синхронизацию, эффективную разработку на Verilog. Теоретические материалы дополняются многочисленными примерами, ссылками на код и информативные слайды.
Юрий Панчул: Книга Далли и Хартинга — это качественный учебник, который используют как основной в Стэнфорде. В книгу включены важные темы, которым не хватило места во вводной книге Харрисов, — в их числе аппаратная реализация арифметических операций с плавающей точкой или двойная буферизация данных в конвейерах обработки данных. Помимо микроархитектурных диаграмм, здесь есть и ясно написанный код на Verilog.
Читателю же стоит помнить, что эта книга покрывает не все. Например, в ней не описан контроль потока данных с помощью кредитных счетчиков, который предпочитают использовать во многих промышленных компаниях вместо конвейеров с двойной буферизацией. Но найти статьи на такие микроархитектурные темы можно самостоятельно, отталкиваясь от книги Далли и Хартинга.
SystemVerilog for Verification: A Guide to Learning the Testbench Language Features, Крис Спир, Грег Тамбуш
Верификации на SystemVerilog стоит посвятить отдельную книгу. Спир и Тамбуш подробно рассказывают обо всех фичах, связанных с верификацией, разбирают основные концепции и предлагают сотни примеров. Кроме того, авторы объясняют разные подходы к верификации, позволяя читателям выбрать подходящие для их кейсов. В конце каждой части предусмотрены упражнения для самопроверки.
Юрий Панчул: Книга Спира и Тамбуша, вероятно, лучшая из вводных книг по верификации. Она сочетает ясность изложения и огромный опыт авторов, которые четко понимают, зачем нужны те или иные языковые средства, и передают эти знания читателю. Авторы не пытаются создать энциклопедию верификации: в книге нет ни библиотеки UVM, ни темпоральной логики в виде подъязыка SystemVerilog Assertions (SVA), ни формальной верификации. Но если вы хотите твердо понять, как функционируют главные «рабочие лошадки» промышленности — динамическая верификация с помощью симуляции, генерация тестовых сценариев с помощью решателей ограничений и контроль функционального покрытия — эта книга для вас.
Освоив проектирование на уровне регистровых передач (RTL, Register Transfer Level) с помощью языка описания аппаратуры SystemVerilog, вы можете подробно рассмотреть, как проектировать широкий класс схем процессоров общего назначения, а также интегрировать их со специализированными вычислителями и структурами памяти в СнК и сетях на кристалле.
Modern Processor Design: Fundamentals of Superscalar Processors, Джон Пол Шен, Микко Липасти
Используя единый подход, авторы сравнивают в книге множество мобильных, настольных и серверных процессоров — их архитектуру, конвейеры, реализацию памяти, систем ввода-вывода и другие параметры. Сравнение дополняют два реальных кейса разработки процессорных архитектур. Кроме того, книга включает обзор продвинутых технологий обработки инструкций и вопросы для самостоятельного размышления.
Юрий Панчул: Чтобы получить максимум пользы от книги Шена и Липасти, сделайте с ее помощью несколько небольших проектов на Verilog. Реализуйте предсказатель переходов, демонстрацию интерлока в конвейере или алгоритм переименования регистров. В книге достаточно информации, чтобы писать такие блоки самостоятельно, а потом сравнивать свой код с реализациями в открытых процессорах.
Modern System-on-Chip Design on Arm, Дэвид Дж. Гривз
Если вы хотите сфокусироваться на дизайне однокристальных систем, эта книга вполне может стать для вас настольной. Начиная с концепции СнК в целом, автор в подробностях разбирает каждый аспект их работы, освещает последние достижения в этой сфере и в заключении обобщает всю основную информацию. Таким образом, книга подойдет даже тем, кто имеет лишь базовое представление об однокристальных системах.
Юрий Панчул: Книга Дэвида Гривза может быть полезна не только проектировщикам систем на кристалле и пользователям ядер ARM, но и проектировщикам блоков. В частности, это первый известный мне учебник, где разобран контроль потока данных с помощью счетчиков кредитов — прием, который широко используется в промышленности. Хоть в книге Гривза нет кода, самостоятельное написание примеров на основе текста — отличное упражнение для читателя.
Microarchitecture of Network-on-Chip Routers: A Designer’s Perspective, Йоргос Димитракопулос, Анастасиос Псаррас, Иоаннис Сейтанидис
Александр Рябов
RTL-разработчик, контрибьютор в BGM
Сегодня при разработке SoC важно учитывать не только процессорные ядра, кеши, ускорители и периферийные устройства, но и архитектуру сетей на кристалле.
Сети на кристалле (Network-On-Chip, NOC) пришли на смену традиционной шине данных с увеличением количества и сложности IP-блоков в современных электронных схемах. Топология и микроархитектура NOC определяют, насколько эффективно процессорные ядра и прочие устройства смогут взаимодействовать друг с другом.
Авторы детально рассматривают эту подсистему, начиная с основ — valid-ready handshake и credit-based flow control — и доходя до более сложных концепций. Эти аспекты изложены настолько доступно, что будут понятны даже специалистам с небольшим опытом в отрасли. Если вы интересуетесь сетями компонентов в цифровых схемах и их проектированием, то эта книга для вас.
Бонус: статьи Дэна Гисселквиста на zipcpu.com
Александр Рябов: Статьи из блога ZipCPU представляют собой ретроспективу работы над коммерческими проектами, описывают опыт и подходы автора к решению сложных задач в области проектирования и верификации цифровых систем.
Отдельно рекомендую две статьи из этого блога. В Lessons learned while building an ASIC design автор делится решениями проблем, с которыми он столкнулся при проектировании микросхемы. An Overview of a 10Gb Ethernet Switch раскрывает детали разработки высокоскоростного Ethernet-коммутатора, поднимает вопросы производительности, оптимизации и ключевых решений, принятых при проектировании.
Книги — это полезно, но, чтобы в вашем образовании было меньше пробелов, не помешает системный подход. Последовательно освоить непростую разработку цифровых микросхем вы сможете в бесплатной Школе синтеза цифровых схем.
Программа обучения рассчитана на полгода и состоит из двух уровней. Первый, базовый, пройдет онлайн и офлайн в московском офисе YADRO, в учебных кластерах других городов России и даже в Минске. По итогам выполнения домашних заданий в ноябре состоится отбор на второй, углубленный уровень программы, который продлится до апреля и будет организован только офлайн. После прохождения углубленной программы мы выдаем сертификаты об участии в школе.
Узнать подробности и требования к абитуриентам, а также оставить заявку на обучение вы можете на странице Школы синтеза цифровых схем.
ссылка на оригинал статьи https://habr.com/ru/articles/855050/
Добавить комментарий