Что делать, когда мигать лампочками уже скучно, а проектировать процессор еще сложно
ПЛИС и Verilog — естественная платформа для обучения будущего проектировщика процессоров, так же как Си и микроконтроллеры — естественная платформа для обучения будущего программиста встроенных систем.
И один, и другой путь начинается с мигания огоньками на недорогой плате, но дальше пути расходятся. Встроенный программист смотрит в сторону самоуправляющихся авто, с задачами на RTOS и распознаванием ситуации с помощью AI в GPU. Проектировщик микросхем на уровне регистровых передач смотрит в сторону групп, разрабатывающих CPU, GPU, NPU и сетевые чипы, но какие упражнения он может делать между миганием огоньками и трудоустройством в Интел?
С встроенным программированием понятно — студенты и школьники могут развлекаться и соревноваться в роботике. От простых роботов на Ардуине до продвинутых подводных роботов в коледже Харви-Мадд, где преподает Дэвид Харрис, автор известного учебника Харрис & Харрис (см. PDF с предисловием к новому изданию для RISC-V).
Студенты в Харви-Мадд с подводным роботом-торпедой
А как развлекаться и соревноваться юному схемотехнику? Конечно роботов можно строить и кодируя конечные автоматы в FPGA, но это более муторно, чем делать это программой на микроконтроллере. Можно задизайнить собственный процессор, но для этого нужно инвестировать много внимания в компьютерную архитектуру (ассемблер) и микроархитектуру (конвейеры, кэши), и кайф там получается сильно не сразу, скажем простейший однотактовый процессор мало кого впечатляет. Вот когда дело доходит до алгоритма Томасуло — там да, но до этого надо дойти.
Учить проектировать майнеры критповалюты? Это тоже не всем интересно и есть порог входа. Кроме этого, если мы скажем организуем десять команд хакатона по майнингу на FPGA, чем мы будем давать им призы? Подарочными картами «Эльдорадо»? А зачем, если они уже намайнили.
Этот вопрос уже лет пять обсуждается в МИЭТ, Роснано и вот сейчас на Сколковской Школе Синтеза Цифровых Схем. Пока мы нашли две темы, которые сложнее мигания и проще процессоров:
Создание видео-игр со спрайтами.
Распознавание и генерация звуков и мелодий.
До школы в Сколково мы делали такую школу в Зеленограде, и когда я показал видео с школьником, который спроектировал собственную игру, менеджеру образовательных программ компании Intel Ларри Ландису, у него была вот такая реакция:
Larry Landis / Ларри Ландис:
«Nice work by that kid, thats quite a bit of work, quite impressive! He looks like he is what maybe 14? Do you think he would be interested in an Intel internship:^) ?»
«Хорошая работа этого паренька, это довольно много работы, весьма впечатляюще! Похоже, ему лет 14? Как вы думаете, он будет заинтересован в стажировке в Intel: ^)?»
Если вы хотите посмотреть, как написать на языке описания аппаратуры Verilog код, который синтезируется в цифровую схему, которая конфигурируется в ПЛИС, вы можете просто заехать в эту субботу в 12 часов в Сколково. И не только посмотреть, но и поучаствовать — вам выдадут FPGA плату.
Сообщение от Александра Биленко, организатора ChipEXPO и Сколковской Школы Синтеза Цифровых Схем:
Занятие состоится 11 декабря в Технопарке Сколково, Капсула № 2 с 12:00 до 15:00. (Если кто не знает, как добираться в Сколково: проще всего по МЦД-1 (с Белорусского или пересадка на станциях метро Беговая, Славянский бульвар, Кунцево) , остановка «Инновационный Центр». Далее пешком 10 минут до БЦ «Амальтея», пройти сквозь БЦ до входа в Технопарк.) Для записи на занятие, пришлите на адрес info@chipexpo.ru свои Ф.И. О., а также наличие платы FPGA и ноутбука с установленным ПО. Получение каждого такого письма я буду подтверждать отправителю. На занятии будут также платы для выдачи тем, кому они нужны.
А вот фрагмент позапрошлого занятия, с распознаванием и генерацией мелодий. Для него мы пригласили, помимо преподавателей МФТИ и МИРЭА, преподавательницу флейты Марию Беличенко. Вот как ее игра распознавалась FPGA платой:
Вот текущее расписание на следущие субботы:
30 октября 2021: 1. Введение в маршрут проектирования и упражнения с комбинационной логикой.
13 ноября 2021: 2. Архитектура: вид процессора с точки зрения программиста.
20 ноября 2021: 3. Последовательностая логика и конечные автоматы.
27 ноября 2021: 4. Разбор учебного проекта: распознавание и генерация звуков и мелодий.
4 декабря 2021: 5. Конвейеры и систолические массивы, с приложением для искуственного интеллекта.
11 декабря 2021: 6. Разбор учебного проекта: модульная графичеcкая игра со спрайтами.
18 декабря 2021: 7. Микроархитектура однотактового процессора.
25 декабря 2021: 8. Микроархитектура конвейерного процессора.
15 января 2022: 9. Проектирование процессорного кэша и измерение его производительности.
22 января 2022: 10. Стандартные блоки и приемы проектирования: очереди FIFO и кредитные счетчики.
29 января 2022: 11. Стандартные блоки и приемы проектирования: арбитры, банки и разделение памяти.
5 февраля 2022: 12. Пробуем маршрут RTL2GDSII: как разрабатываются массовые микросхемы. Часть I.
12 февраля 2022: 13. Пробуем маршрут RTL2GDSII: как разрабатываются массовые микросхемы. Часть II.
19 февраля 2022: 14. Имитиция собеседования на позицию проектировщика цифровых микросхем.
26 февраля 2022: 15. Разбор имитации интервью с вручением поощрительных призов.