Что делают в офисе инженеры в Apple и Intel: профориентационный онлайн-курс современной микроэлектроники для школьников
Недавно вышел бесплатный онлайн-курс в трех частях под названием «Как работают создатели умных наночипов» (1, 2, 3). Он предназначен для профориентации школьников и отличается максимальной конкретностью: вот так выглядит распределение работы в команде проектирования микросхемы, вот на таких концепциях проектирования на уровне регистровых передач построена разработка, и вот такие алгоритмы используются для определения, на сколько мегагерц будет работать проектируемый процессор для компьютера или автомобильной электроники.
Кроме теоретической профориентации, курс можно использовать для отбора школьников на практические летние школы по ПЛИС-ам и проектированию процессоров. Такая школа планируется в этом году в Зеленограде, ее прототип был опробован на Летней школе юных программистов в Новосибирске и на Неделе электроники для школьников в Киеве в позапрошлом году. Можно также попробовать сделать хакатон по аппаратно-реализуемым нейросетям и аппаратной реализации игр с выводом на VGA дисплей (об этом дальше в посте).
Кратко о том, что входит в каждый из трех модулей — «От транзистора до микросхемы», «Логическая сторона цифровой схемотехники» и «Физическая сторона цифровой схемотехники».
Курс «Как работают создатели умных наночипов» начинается с абсолютного нуля, поэтому его первая часть, «От транзистора до микросхемы», во многом повторяет другие материалы по электронике для школьников, которые создавались в последние 50 лет — что такое транзистор, логические элементы, двоичные числа и триггеры. Концепция D-триггера внутри современного айфона осталась той же, что в журнале «Квант» 1986 года. Транзисторы уменьшились в тысячу раз, но суть их не изменилась.
Единственный блок информации, которого не было в предыдущих курсах — это про так называемые стандартные ячейки (standard cells), на технологии которых строится подавляющее количество современных специализированных микросхем. Они выглядят вот так:
Попробуйте ответить на вопрос из тестирования ниже, и если вы знаете ответ, то вы можете первый модуль курса пропустить:
Почему стандартные ячейки современных микросхем (ASIC standard cells) называются стандартными?
- О, я знаю! Это потому что они реализуют стандартные логические функции И, ИЛИ, НЕ
- Элементы транзистора в стандартных ячейках имеют стандартный химический состав
- Стандартные ячейки работают на стандартной тактовой частоте
- Они имеют стандартную высоту (размерность на площади), что упрощает подвод к ним питания и автоматическое соединение их между собой
- Структура стандартных ячеек была когда-то стандартизована каким-то Европейским комитетом по стандартам
Правильный ответ:
4. Стандартные ячейки (ASIC standard cells) имеют стандартную высоту (размерность на площади), что упрощает подвод к ним питания и автоматическое соединение их между собой
Если не знаете, можете пройти первый модуль курса — «От транзистора до микросхемы». Вот его содержание:
Если большая часть первого модуля курса «Как работают создатели умных наночипов» говорит о тех же вещах, которые были в популярных текстах для школьников еще с 1970-х, то во второй части, «Логическая сторона цифровой схемотехники» мы входим в область, которой в журнале «Квант» не было, и которая вообще в российском образовании была заброшена из-за коллапса СССР. Речь идет о так называемом маршруте RTL-to-GDSII, методах проектирования плана размещения миллиардов транзисторов и дорожек микросхемы на основе компиляции/синтеза кода на языках описания аппаратуры Verilog и VHDL. Провал в этой области необходимо преодолеть, начиная с уровня продвинутых школьников. Иначе — никаких действительно российских айфонов, роботов и самоуправляемых автомобилей.
В последние несколько лет в России произошел толчок к популяризации проектирования цифровых схем с помощью синтеза из языков описания аппаратуры, в том числе из-за выхода на русском языке бесплатного (в электронном варианте) учебника Дэвида Харриса и Сары Харрис «Цифровая схемотехника и архитектура компьютера». Посты на Хабре об этом учебнике получили более 300 тысяч просмотров, а скачивания дважды завалили британский сайт Imagination Technologies. Недавно вышла окончательно исправленная версия учебника, которую вы можете скачать по ссылке c сайта MIPS. Правда ссылка работает только под Windows, а на Маке и под Линуксом глючит. Если у вас с ней проблемы, можете скачать эту же версию отсюда.
Модуль «Логическая сторона цифровой схемотехники» курса «Как работают создатели умных наночипов» использует пример «улыбающейся улитки» из Харрисов. «Улитка» — это конечный автомат, который распознает последовательности нулей и единиц. В курсе разбирается исходный текст автомата «улитки» на языке описания аппаратуры Verilog, а также вводятся концепции диаграмм состояний конечного автомата и временных диаграмм сигналов. После этого демонстрируется синтезированная из описания электронная схема, с логическими элементам и и D-триггерами для хранения состояния конечного автомата «улитки».
На основе примера «улитки» школьники на хакатонах могут синтезировать для плат ПЛИС разнообразные «кодовые замки». В экзамене к курсу «Как работают создатели умных наночипов» есть вопрос про диаграмму состояний конечного автомата так называемой «китайской комнаты» — популярного примера из области искуственного интеллекта. Вот диаграмма простого конечного автомата для ведения диалога китайскими иероглифами. Если дать ему на входе комбинацию из нескольких иероглифов «дерево» и «медведь», с последуюшими иероглифами «наука», то автомат выдаст последовательность иероглифов «Сибирь» — это пример родился во время проведения семинара для школьников в Новосибирском академгородке:
Третья часть, «Физическая сторона цифровой схемотехники» расписывает, как граф из логических элементов, синтезированный во второй части, раскладывается на микросхеме и превращается в чертеж в формате GDSII который собственно и отправляется на фобрику, где пекут микросхемы. В этой части также обсуждаются алгоритмы размещения и трассировки, которые будут интересны математически-ориентированным школьникам. Исследования в области автоматизации проектирования микросхем — популярная область среди бывших победителей матолимпиад.
Вот как выглядит проект чипа после размещения и трассировки с помощью программы Synopsys IC Compiler:
А вот эта изящная фрактальная структура — это дерево тактового сигнала внутри чипа, построенное так, чтобы тактовый сигнал приходил ко всем D-триггерам примерно в одно и то же время. Ширина «ветвей» этого дерева меняется от толстых до тонких металлических соединений на микросхеме, чтобы удовлетворить физическим ограничениям медных проводников на нанометровом уровне полупроводниковой технологии:
А вот иллюстрация к так называемому алгоритму волновой трассировке (по английски Maze Routing — «Поиск путей в лабиринте»). Этот алгоритм использовался в ранних программах автоматизации проектирования для соединения логических элементов схемы. Алгоритм волновой трассировки настолько прост, что его может сам написать на Си, Питоне или Джаве способный старшеклассник. Это полезное упражнение для тех, кто собирается в будущем писать гораздо более сложные алгоритмы, например для будущих трехмерных чипов:
Что же делать школьникам после освоения концепций проектирования цифровых схем на Verilog? Упражнения в симуляторе или с мигающими огоньками на плате ПЛИС хотя и необходимы, но довольно быстро надоедают, а проектирование простых процессоров и нейровычислителей интересно только небольшому проценту учеников, которые решили освоить компьютерную архитектуру. К счастью, этими двумя областями возможные для школьников упражнения не исчерпываются.
Всего два месяца назад вышла книжка Designing Video Game Hardware in Verilog by Steven Hugg, в которой описывается проектирование схем игр на Verilog, с реализацией в ПЛИС, подключенной к дисплею VGA. Речь идет о видеоиграх 1970-х и 1980-х, с генерацией развертки, фрейм-буфером, спрайтами. Atari пинг-понг, space wars, танчики. Игровые автоматы для этих игр сначала, еще в 1970-х, собирали на микросхемах малой степени интеграции, потом на PAL и микроконтроллерах, в том числе Motorola 6502, которую использовали в первых Apple. В книжке Стивена Хагга также разбирается аппаратная реализация спрайтов, знакомых советским программистам и игроманам второй половины 1980-х по видеопроцессору Texas Instruments TMS9918, который стоял в японских компьютерах Yamaha MSX, импортированных в то время в советские школы.
Книжка Хагга полезна отнюдь не только и даже не столько ностальгирующим чудакам. Это отличный набор задач для современных студентов и школьников, которые начинают изучать электронику. Так как задачи старые, но вот технологии — Verilog, logic synthesis, FPGA prototyping — новые, те же самые, которые изучают сейчас в 2018-2019 учебном году в MIT в курсе 6.111. Без простых упражнений с Verilog и ПЛИС не выросли бы инженеры, которые сейчас сидят в Санта-Кларе в Интеле, NVidia и AMD, в Купертино в Apple и в других электронных компаниях.
Подвожу итог. Было бы хорошо, если бы сейчас некоторое количество школьных и вузовских преподавателей проверили бы вышедший курс «Как работают создатели умных наночипов», после чего направили бы на него интересующихся школьников. Потом для школьников, которые получат сертификат этого курса, можно пригласить на практический семинар с платами ПЛИС (часть из которых раздать в качестве призов за успешные проекты). Такие семинары сейчас обсуждаются в Зеленограде, Москве, есть также интерес в Сочи, Минске и других местах. В долговременной перспективе в России вырастит сообщество разработчиков чипов, которое сложилось в Кремниевой Долине, Японии, Тайване, Южной Корее, Великобритании, сейчас складывается в Шанхае и других местах. Это то, что должно существовать в каждой крупной технически продвинутой стране, и в России достаточно традиций в математике, физике и инженерных науках, чтобы поддержать такое развитие.
Что вас больше всего заинтересовало?
Общая профориентация в проектировании цифровой электроники
Логическая сторона цифровой схемотехники
Физическая сторона цифровой схемотехники
Алгоритмы автоматизации проектирования
Графические игры на ПЛИС
Я преподаватель и готов пройти курс для его проверки
Я школьник или студент и готов пройти курс, чтобы прийти к практическим занятиям с ПЛИС
Мне интересна тематика цифровой схемотехники в качестве хобби