На рынке разработчиков микроэлектроники катастрофическая нехватка кадров и на пороге этого сегмента не стоит очереди желающих. Для обучения базовым навыкам использования языков описания аппаратуры (HDL) нужен минимальный набор инструментов,но при попытке студента установить его впервые, как правило, всплывает куча дополнительных проблем. И первая из них — это Linux. Можете не верить, но не все студенты сейчас горят желанием работать в непонятной консоли, когда рядом есть удобные «окна», на которых с тем же успехом можно изучить Python и SQL по готовым и понятным курсам и жить долго и счастливо. А ведь придется еще столкнуться с выбором симулятора, поиском для него дополнительных библиотек и т. п. Короче, даже для простой симуляции схемы порог входа получается очень высокий.
В этой статье рассказываем, как мы попытались снизить этот порог с помощью летней школы в Национальном исследовательском ядерном университете МИФИ и каких удалось добиться результатов. Обучающимся мы предоставляли готовую среду и учебные материалы. Читали лекции и проводили лабораторные, чтобы ввести в курс именно микроэлектроники.
Привет, Хабр!
Как разработчик железа, мы постоянно сталкиваемся с нехваткой разработчиков микроэлектроники. Это направление непопулярно среди студентов из-за высокого порога входа. Отчасти также играют роль стереотипы о перспективах и зарплатах в данной отрасли в России (особенно по сравнению с другими IT отраслями). Мы пришли в МИФИ показать реальную картину на примере нашей компании, познакомить студентов с требованиями работодателей, дать источники информации и научить пользоваться доступными инструментами, да и в целом показать маршрут разработки микроэлектроники и микропроцессорных систем.
Зачем нужна была эта «экскурсия»
В культуре разработчиков микроэлектроники есть негласное правило, что тот, кто хочет, учится самостоятельно. В интернете действительно много источников на тему разработки. К примеру, замечательный курс АПС МИЭТ, материалы, подготовленные Юрием Панчулом и командой, а также материалы Станислава Жельнио.
Чтобы начать их проходить, нужна среда для симуляции. Уже на старте возникает вопрос «Какой мне выбрать Linux?».
Симуляторы чувствительны к версии линукса больше, чем этого хотелось бы. Часть симуляторов будет работать из коробки, однако другим могут потребоваться дополнительные библиотеки. Разобраться с этим не всегда удается быстро. При этом навыки администрирования Linux в ракурсе микроэлектроники на самом деле вторичны.
Чтобы обойти эти вопросы, мы разработали двухнедельную летнюю программу для студентов третьего курса специалитета, знакомых со схемотехникой, где практиковались в запуске симуляций, изучали азы языка Verilog для описания цифровых схем и разбирали состав простейших процессоров. В программу также вошло посещение офиса, экскурсия по нашему музею и знакомство с представителями команды.
Как проходило обучение
В рамках проекта «Больше чем старт» в нашу группу прошли отбор 14 человек. Для них мы читали лекции и проводили лабораторные работы.
В рамках своей летней школы мы предложили студентам на время обучения ноутбуки нашего производства с необходимой средой разработки и набором материалов.
Всего было запланировано девять теоретических занятий:
первые 3 занятия посвящены изучению функционала описания логических микросхем,
следующие 3 — про основы микропроцессорных систем, в частности про ISA RISC‑V,
заключительные 3 — про изучение языка SystemVerilog.
Но по итогу занятия получились следующими:
3 занятия — на изучение основ языка Verilog
2 занятия — на изучение маршрута разработки и экскурсию в компанию
4 занятия на изучение микропроцессорных систем
Занятия по SystemVerilog уже не поместились в отведенное время.
Старались не давать материал одним монолитным куском на протяжении полутора часов, а разбивать материал на части. Кроме того, в каждой презентации были вопросы к аудитории, благо предмет практический. Вопросы были составлены с учетом пройденной программы, что позволяло студентам блеснуть своими знаниями.
На лабораторных работах студентам предлагался набор заданий разного уровня сложности. Каждый студент должен был самостоятельно запустить симуляцию и проанализировать её результаты. Задания начального уровня должны были быть выполнены всеми студентами. Остальные – в индивидуальном порядке на занятии или дома.
Пример задания:
Опишите декодер 3в8, используя:
а) И, НЕ
б) логический сдвиг
в) if-else
г) case
д) тернарный оператор
Начальный уровень сложности — выполнить один из предложенных вариантов.
На дом остаются остальные варианты.
Требования к тестбенчу:
а) Тестбенч, производящий последовательное воздействие на входы устройства всех возможных комбинаций сигналов. Оценка корректности работы устройства производится путем просмотра временных диаграмм.
б) Тестбенч, с функционалом, описанным в пункте а, но содержащий функцию проверки и выводящий сообщения о корректной и некорректной обработке сигналов в терминал.
Преподавателями и консультантами выступили сотрудники компании. Конечно, для проведения практики пришлось отвлекать инженеров от основной работы. В долгосрочной перспективе это окупается, однако несет некоторые риски, связанные со сроками сдачи проектов. Мы это осознавали на 100%. Не получится отвлечь человека наполовину, на ¾ и т.д. Разработка курса, подготовка материалов и проверка заданий требует огромного количества времени и сил.
Но участие инженеров было необходимо. SystemVerilog — это новый язык для студентов и первое время больше всего проблем возникало с ошибками синтаксиса. Open source симуляторы, такие как Icarus, не всегда четко указывают на допущенную ошибку, поэтому наличие опытного человека рядом значительно упрощает работу.
Что дальше
Тех студентов, кто успешно прошел летнюю программу и подошел под требования наших отделов (верификации, разработки и топологии), мы пригласили на собеседование в компанию. В итоге взяли на стажировку пятерых практикантов.
В МИФИ мы провели пилотный проект по взаимодействию с ВУЗами, который далее будем развивать и дорабатывать.
Для читателей Хабра доступна возможность отправить своё резюме на start@aq.ru для прохождение практики или стажировки. В зависимости от цели и степени подготовки кандидата последующее собеседование может быть разделено на 2 части: знакомство, на котором мы оценим кандидата и ознакомим с требованиями к стажировке на интересующее направление, и техническое собеседование.
В условиях нехватки кадров сотрудничество индустрии с профильными ВУЗами абсолютно необходимо. Это позволяет актуализировать программу ВУЗа и показать студентам реальную ситуацию на рынке: как живут компании, в каких условиях работают сотрудники.