Осенью стартовал новый поток Школы синтеза цифровых схем — нашей бесплатной образовательной программы о современных приемах проектирования цифровых микросхем. От серийных 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, в учебных кластерах других городов России и даже в Минске. По итогам выполнения домашних заданий в ноябре состоится отбор на второй, углубленный уровень программы, который продлится до апреля и будет организован только офлайн. После прохождения углубленной программы мы выдаем сертификаты об участии в школе.
Узнать подробности и требования к абитуриентам, а также оставить заявку на обучение вы можете на странице Школы синтеза цифровых схем.
Комментарии (16)
sdy
31.10.2024 15:01Почему в статье нет https://marsohod.org/ и их замечательного курса по Verilog HDL
yadro_team Автор
31.10.2024 15:01Подборка все же больше про книги) Но спасибо вам за то, что поделились отличным ресурсом!
GospodinKolhoznik
31.10.2024 15:01Ну вот. Теперь помимо вайтишных курсов появились курсы для вкатунов в микроэлектронику. А значит в скором времени и в электронике начнется такая же попа с рынком труда. С откликами по 1000 человек на место, неадекватными собеседованиями, представляющими из себя полу-экзамен полу-олимпиаду, и всеми прочими сопутствующими перегибами.
Gay_Lussak
31.10.2024 15:01Не будет, в электроники зп всю жизнь были ниже. 250к в вайти можно получать уже через пару лет перекладывая джсоны, тут нужно иметь серьёзную квалификацию.
yadro_team Автор
31.10.2024 15:01Ситуация меняется! Как минимум есть YADRO, где инженеры получают конкурентную зарплату)
Gay_Lussak
31.10.2024 15:01Инженеры то получают, только сколько времени нужно потратить, чтобы стать конкурентным инженером, вдобавок к тому что у вас высокий порог по квалификации? А сколько крудошлепом?
eugenk
31.10.2024 15:01Если Вам действительно это интересно, если для Вас не очень важен режим работы, которая Вам действительно нравится, и если Вы действительно имеете к этому склонность, то год. Я FPGA впервые увидал где-то году так в 1997-м. И на меня это произвело впечатление маленького чуда. С тех пор этим заболел. Потом в начале 2000-х подвернулась некая халтурка. Сам спаял для неё железку ещё на Spartan-2, подцепил к ней мегабайт RAM и жесткий диск, реализовал всю нужную схемотехнику и управляющий процессор со своим ассемблером. Через год всё это задышало абсолютно приемлемо. Так что не бойтесь. Глаза страшат, а руки делают. Тем более сейчас в это войти куда легче чем тогда.
Gay_Lussak
31.10.2024 15:01У меня есть промышленный опыт в FPGA, и я прекрасно знаю, что никто человеку без вышки через год норм платить не будет. Чему научится за год человек? Поморгать светодиодиком, дешифратор на семисегментник или какой нибудь SPI? Вот только попробуй спросить такого человека, хотя-бы зачем нужно ставить FIFO между блоком последовательного интерфейса и внутренней логикой, и послушать, что он скажет. Только после полноценной вышки с матаном, физикой и электроникой получается личинка фпгашника, которая может через годика 3 начнет превращаться в бабочку.
eugenk
31.10.2024 15:01Всё зависит от человека. У меня вот бэкграунд МФТИ. И до FPGA лет 10 занятий быстродействующей электроникой для экспериментальной физики. У выпускника ПТУ согласен, вряд ли получится. Кстати FIFO между блоком последовательного интерфейса и внутренней логикой нужно ставить далеко не всегда и не везде. Хотя конечно да, бывает что и нужно. Всё зависит от конкретной задачи. Если Вам это не понятно, то извините, но Ваш опыт вызывает некоторые сомнения. Ну а насчет "в бабочку" - через год упорного труда (даже если только по вечерам и выходным) Вы с нуля дорастете до хорошего джуна или средненького мидла. И сможете претендовать на какую-то работу. Если конечно есть соответствующая база. Дальше - Ваше дело.
Gay_Lussak
31.10.2024 15:01Так смысл вкатунов, что у них нет никакой базы. И где я дал понять что мне что-то не понятно?
eugenk
31.10.2024 15:01Так смысл вкатунов, что у них нет никакой базы
Спорно. Я вот помню как родился, так ходить не умел. При желании и некоторых способностях всё достигается. Да за счет времени. Но при некотором упорстве - неизбежно.
И где я дал понять что мне что-то не понятно?
Ваше утверждение об обязательности FIFO между последовательным интерфейсом и внутренней логикой. Оно прозвучало слишком категорично. С убежденностью неофита, неделю назад прочитавшего учебник, причем не очень хорошо его усвоив. Впрочем возможно я Вас не понял. В таком случае искренне прошу прощения.
eugenk
31.10.2024 15:01А возможность удаленной работы в не особо напрягающем режиме там есть ??? А то я бы с радостью, даже на зарплату несколько ниже рынка. И опыт более чем соответствует. Но офис, либо удаленка с жестким контролем присутствия это явно не моё. Наигрался я уже в эти игры. Почему и хочу выкатиться из электроники и вкатиться в инди-геймдев. Хотя душа конечно лежит к электронике.
yadro_team Автор
31.10.2024 15:01Школа существует с 2020 года! Очень надеемся, что желающих «вкатиться в микроэлектронику» когда-нибудь будет не меньше тех, кто учит Python))
Tsimur_S
31.10.2024 15:01Ну будет и будет, вы как предлагаете? Гильдии и правило один мастер один ученик?
eugenk
31.10.2024 15:01Спасибо за наводку ! Скачал Modern Processor Design: Fundamentals of Superscalar Processors. Глянул сейчас выборочно - действительно великолепная книга !
P.S. Знаю что Хабр этого не одобряет, однако подскажу небольшой лайфхак для обладателей российских, иранских, северокорейских и т.п. банковских карт. Нужные нам книги на английском языке, по ряду причин следует искать на Яндексе, а не на Гугле, и тем более в Амазоне. Попробуйте ! И с большой вероятностью у Вас не спросят вообще никакой банковской карты.
aystarik
https://github.com/arm-university -- здесь есть modern-soc упомянутый выше и недоступный