Заведующий лабораторией: к.ф.-м.н. Александр Сергеевич Камкин
Число сотрудников: около 50 человек

Проектирование цифровых устройств (процессоров, контроллеров, специализированных вычислителей и др.) — сложный процесс, который включает разработку исходного кода на Verilog/SystemVerilog/VHDL, синтез логической схемы, генерацию топологии микросхемы и верификацию. Для реализации данного процесса используются системы автоматизации проектирования (САПР). Разработкой таких систем и занимается команда Лаборатории технологий проектирования цифровой аппаратуры. Лаборатория входит в состав Отдела технологий программирования ИСП РАН.

НаправленияЗадачи
Логический синтез
Трансляция HDL-описаний и конструирование логических схемКак построить схему из логических вентилей по высокоуровневому описанию?
Технологически независимая оптимизацияКак минимизировать число логических вентилей в схеме и/или её глубину?
Технологическое отображениеКак выразить схему в терминах технологических ячеек? Можно ли улучшить схему, синтезированную для конкретной фабрики?
Проверка корректности (верификация)
Проверка логической эквивалентностиКак проверить, что разные схемы на одинаковых данных всегда возвращают один и тот же результат? А если в схемах есть память? А если в схемах миллион элементов?
Функциональная верификацияКак эффективно искать ошибки в микропроцессорах ARM или RISC-V? А если это процессор с новой архитектурой?
Статический анализКак научить программу искать ошибки в аппаратуре? А если описание аппаратуры состоит из сотен миллионов строк на языке SystemVerilog?
Машинное обучение в САПР
ПрогнозированиеМожно ли предсказать результат синтеза заранее?
Логическая оптимизацияМожем ли мы научить нейросеть оптимизировать схемы? Можно ли из RL-агента сделать тополога?
Генерация описаний аппаратурыСнятся ли нейросетям микропроцессоры?
Высокоуровневый синтез
Синтез потоковых вычислителейКак разработать процессор на C++? Можно ли его сделать самым быстрым в мире и изготовить на фабрике?
Поддержка процессов разработки
ТестированиеКак помочь команде, занимающейся разработкой промышленной САПР из большого числа компонентов? Как разработать набор тестовых примеров, который будут использовать ученые и инженеры во всем мире?

Стек технологий

Языки разработки — C/C++, Python, Java
Языки проектирования — Verilog, SystemVerilog, VHDL
Сборка — CMake
DevOps — Docker, GitLab CI/CD (YAML)
Управление разработкой — Git, GitLab, Jira/Confluence/Nextcloud
ОС — Linux
Используемые открытые решения — Yosys, OpenLane, Slang

Наши открытые проекты

Наши ключевые публикации

Темы защищенных квалификационных работ

Примеры тем курсовых работ:
— Курганская А.С. Исследование и разработка методов оптимизации комбинационных логических схем с использованием обучения с подкреплением;
— Литвинов М.Ю. Разработка средств высокоуровневого синтеза и оптимизации потоковых вычислителей, реализующих алгоритмы блочного шифрования.

Примеры тем дипломных работ:
— Козмин И.А. Разработка модели автокодировщика логических схем;
— Ершов М.А. Исследование и разработка средств извлечения конечных автоматов из синхронных схем;
— Вершков М.Д. Разработка и исследование методов оптимизации аппаратных реализаций алгоритмов блочного шифрования на этапе логического синтеза.

Кандидатские диссертации:
— Татарников А.Д. Автоматизация конструирования генераторов тестовых программ для микропроцессоров на основе формальных спецификаций;
— Чупилко М.М. Метод автоматизации динамической верификации цифровой аппаратуры на основе формальных спецификаций разного уровня абстракции;
— Камкин А.С. Метод автоматизации имитационного тестирования микропроцессоров с конвейерной архитектурой на основе формальных спецификаций.