
С 18 по 20 апреля 2025 г. на площадке НИУ МИЭТ в Зеленограде прошёл четвертый инженерный хакатон SoCDesign Challenge, организованный компанией YADRO совместно с Передовой инженерной школой «Средства проектирования и производства электронной компонентной базы» МИЭТ. Более 250 студентов очной формы обучения со всей России собрались, чтобы на практике решить задачи по проектированию и верификации систем на кристалле (SoC) на базе RISCV.
В рамках треков «RTL проектирование», «UVM верификация», «Системная верификация СнК» и «Топологическое проектирование» участникам предстояло не только продемонстрировать знания цифровой и аналоговой схемотехники, но также и получить призы — FPGA платы и другие инженерные гаджеты. Все задачи формировались действующими специалистами отрасли и преподавателями МИЭТ, что делало соревнование максимально приближённым к реальным производственным кейсам.
В хакатоне приняли участие и сотрудники Аквариус - студенты 4го курса НИЯУ МИФИ (каф. 27) - команда «Свидетели ошибок»:
1. Силкин Никита Романович
2. Скворцов Ярослав Максимович
3. Никонов Александр Андреевич
За три дня напряжённой работы «Свидетели ошибок» набрали 76 баллов из максимальных 100 и уверенно опередили ближайших соперников на 28 баллов, заняв 1 место среди всех команд в треке UVM верификации.
Как команда готовилась и добилась победы
Скворцов Я. М.:
«Хакатон длился три дня с 9:00 до 20:00. Сначала мы подробно разработали верификационный план по спецификации устройства, определили ключевые функции и ошибки для проверки. После этого разделили обязанности: каждый взял часть тестового окружения и приступил к реализации. Регулярные обсуждения архитектурных решений позволили быстро интегрировать результаты и довести тестбенч до рабочего состояния. Локализация багов оказалась самой трудоёмкой частью: требовалось крайне внимательно и с пониманием просматривать результаты тестов. Благодаря эффективной коммуникации и сплочённой атмосфере команда справилась с этой задачей, и мы одержали победу.
Никонов А. А.:
«В треке UVM верификации задача заключалась в обнаружении и документировании ошибок в заданном блоке. В дизайн были заложены 20 дефектов, которые предстояло найти. Результат тем выше, чем больше дефектов найдено. В первый день мы составили план верификации, на второй и третий — написали тесты и анализировали полученные несоответствия, чтобы локализовать каждый баг. Опыт, полученный на стажировке, и упорство команды сыграли ключевую роль: мы разбивали работу на мелкие задачи, поддерживали друг друга и не останавливались даже при временных неудачах. В конечном итоге наш труд принёс нам результат!»
Силкин Н. Р.:
«UVM — это промышленный фреймворк для функциональной верификации на основе SystemVerilog. На хакатоне нашей группе выдали спецификацию и зашифрованные дизайнблоки с заложенными ошибками. Мы дополнили базовое тестовое окружение собственными проверками и референсными моделями, запустили тесты и документировали все найденные дефекты. Благодаря чёткому плану и качественной имплементации тестбенчамы опередили соперников и уверенно выиграли.»
Задания хакатона по трекам
UVM верификация
Цель: погрузиться в индустриальный процесс функциональной верификации цифровых устройств с использованием методологии UVM (Universal Verification Methodology).
Задачи:
Ознакомиться со спецификацией устройства.
Составить верификационный план, выделив основные функции дизайна, которые требуется проверить.
Дополнить предоставленное верификационное окружение компонентами, реализующими референсную модель блока и запланированные проверки с помощью конструкций языка SystemVerilog.
Запустить тесты, убедиться в корректности работы окружения, локализовать и задокументировать ошибки, допущенные в дизайне.
Критерии оценки:
Количество и сложность найденных ошибок.
Корректность их локализации.
Качество составленного плана.
Эффективность и качество кода верификационного окружения.
Системная верификация СнК
Цель: проверить соответствие системы на кристалле (СнК) заявленным требованиям на системном уровне.
Задачи:
Разработать тестовый план для проверки внутренних блоков СнК на системном уровне.
Создать тесты на языке C, запустить их и найти ошибки в дизайне.
Подготовить отчёт от верификации по итогам работы.
Особенности:
Участники работают с “черным ящиком” — без доступа к RTL-коду.
Задание включает преднамеренные неисправности, которые необходимо выявить и описать.
Участники самостоятельно определяют формат входных данных и разрабатывают шаблоны тестов.
Критерии оценки:
Корректность и полнота разработки тестового плана.
Найденные ошибки в дизайне СнК.
Качество и структурированность кода разработанных тестов.
RTL-проектирование
Цель: разработать аппаратный ускоритель для выполнения матричных операций, применяемых в нейросетях для распознавания изображений.
Задачи:
Спроектировать и разработать собственный ускоритель матричных операций для исполнения (инференса) нейросети по распознаванию объектов на фото.
Оптимизировать многопортовый коммутатор (interconnect), работающий по определенному протоколу, с целью увеличения пропускной способности и улучшения механизма учета приоритета пакетов данных.
Критерии оценки:
Время исполнения эталонного теста (производительность).
Площадь дизайна на кристалле (эффективность использования ресурсов).
Максимальная тактовая частота.
Утилизация ресурсов ПЛИС (сколько LUT и FF занимает дизайн).
Задержка (latency) при прохождении данных через коммутатор.
Топологическое проектирование
Цель: пройти полный цикл физического проектирования системы на кристалле (SoC), включая размещение, трассировку и оптимизацию.
Задачи:
Используя готовое окружение, пройти цифровой маршрут физического проектирования системы на кристалле (SoC) с помощью средств логического и физического синтеза.
Провести оценку проекта по критериям быстродействия и энергопотребления, а также качества топологии (QoR, Quality of Results).
Внести корректировки в маршрут физического проектирования для повышения характеристик проекта.
Провести проверки на соответствие временным ограничениям, технологическим нормам проектирования и корректности соединений.
Выполнить анализ шин питания в разработанном проекте.
Критерии оценки:
Отсутствие критических нарушений по отчетам QoR.
Отсутствие ошибок в проекте, кроме заранее известных.
Временные характеристики.
Потребляемая мощность и IRdrop.
Площадь, занимаемая стандартными ячейками.
Модификация представленного окружения.
Эти задания предоставили участникам возможность погрузиться в реальные инженерные задачи и продемонстрировать свои навыки в различных аспектах проектирования и верификации систем на кристалле.
Так же предлагаем прочитать следующие статьи, которые помогут погрузиться в микроэлектронику и начать ей заниматься при желании.
🔹 Обзор литературы для начинающих разработчиков микроэлектроники
В этой статье наш руководитель отдела системной верификации Максим Ратников делится проверенным списком книг и ресурсов, которые помогут вам разобраться с архитектурой ЭВМ, цифровой схемотехникой, HDL-описанием (SystemVerilog и не только), методологиями верификации (SVA и UVM) и даже физическим дизайном (бэкендом). От классики Таненбаума и Харрисов до современных практических руководств по UVM и Python-ориентированным подходам — мы собрали всё самое важное, чтобы вы могли сразу выбрать полезное и не тратить часы на бесполезный поиск литературы.
Ссылка на статью → https://habr.com/ru/companies/aquarius/articles/848334/
🔹 Как мы снижаем порог входа студентов в микроэлектронику
Вторая статья рассказывает о нашей двухнедельной летней школе в НИЯУ МИФИ, где мы предоставили студентам готовую среду разработки, ноутбуки и материалы, провели лекции и лабораторные по Verilog, RISC-V и SystemVerilog. Вы узнаете, как мы организовали занятия (от декодера 3в8 до тестбенчей), какие трудности преодолели (консольный Linux, настройка симуляторов) и как пять лучших участников получили предложение о стажировке в «Аквариус». Полезный кейс для всех, кто хочет наладить взаимодействие между вузами и индустрией.
Ссылка на статью → https://habr.com/ru/companies/aquarius/articles/846628/
Полезные практические материалы:
1. Тренажер по Verilog прямо в браузере: https://hdlbits.01xz.net/wiki/Main_Page
2. Базовый курс по работе с linux: https://itproger.com/course/linux
3. Гит Сергея Чусова. Курс по верификации https://github.com/serge0699/verif_elective_miet
5. Курс Архитектура процессорных систем МИЭТ: https://github.com/MPSU/APS