К чему готовиться на хакатоне по проектированию SoC и созданию процессоров?

Трек UVM-верификации — результат эволюции и переосмысления задач SoC Design Challenge предыдущих лет. В этом году участники работали с конфигурируемым AXI Stream маршрутизатором, который по заданным правилам распределяет транзакции с входных каналов на выходные, избегая коллизий. Для конфигурации блока предусмотрены регистры, доступные по шине APB.
Несмотря на упоминание UVM в названии трека, окружение было несколько упрощено относительно «честного» варианта методологии. Это позволило опытным участникам проявить себя, а начинающим инженерам познакомиться с основными аспектами UVM — объектно-ориентированным подходом в SystemVerilog, модульностью и абстрагированием через моделирование на уровне транзакций.
Задача хакатона охватила наиболее «творческие» этапы верификации, существующие в департаменте разработки SoC YADRO: подготовка плана верификации и разработка эталонной модели устройства. В сжатые сроки нужно было не просто усвоить спецификацию устройства, но и грамотно расставить приоритеты в разработке — чтобы успеть найти максимальное количество ошибок в дизайне.
Для хакатона подготовили 20 вариантов дизайна с ошибками разной сложности — от несоответствия значения регистра по сбросу до действительно нетривиальных краевых случаев нарушения маршрутизации или арбитрации, что проявляются лишь при определенном стечении обстоятельств. Что же сломано на самом деле, дизайн или их эталонная модель — с таким вопросом приходилось сталкиваться каждой команде после моделирования очередного дизайна.
Это описание лишь одного из четырех треков SoC Design Challenge — совместного хакатона YADRO и МИЭТ, который в этом году прошел в четвертый раз. Подробное описание остальных треков и знакомство с командами — в нашем репортаже.