Разработка специализированного процессора с помощью высокоуровневых САПР и языков проектирования

Руководитель от корпоративного партнера: Николай Терновой (Syntacore)
Руководитель от Университета ИТМО: Антонов Александр Александрович

Открытых вакансий: 1

Подать заявку в этот проект

Краткая аннотация

Проект посвящен апробации перспективных методологий высокоуровневого проектирования аппаратуры для разработки процессорных ядер и их элементов. Технологические ограничения миниатюризации и энергопотребления микроэлектроники заставляют искать новые решения при проектировании процессоров путем глубокой адаптации их архитектуры к особенностям конкретных вычислительных нагрузок. Для эффективного проектирования таких специализированных процессоров востребована разработка языков и САПР аппаратуры, позволяющих абстрактно описывать их функциональность и архитектуру, автоматизировать синтез архитектуры, а также гибко её переконфигурировать для оптимизации под целевые вычислительные нагрузки. При этом в маршруты разработки аппаратуры активно заимствуются технические решения, практики и технологии из области разработки программного обеспечения.

В рамках проекта осуществляется практическое знакомство и освоение технологий высокоуровневого синтеза (High-Level Synthesis, HLS), выполняющих автоматизированный синтез аппаратуры из описаний на языках программирования (чаще всего C/C++, либо проблемно-ориентированные языки), а также стремительно набирающих популярность т.н. “языков конструирования аппаратуры” (Chisel, SpinalHDL, Migen, Clash), встроенных в качестве DSL-библиотеки в языки программирования (Scala, Python, Haskell и пр.). Данные технологии позволяют существенно нарастить продуктивность разработчика специализированной аппаратуры по сравнению с традиционным RTL-проектированием, и их востребованность растет на рынке разработки цифровой аппаратуры.

Направления работы

  1. Разработка специализированного процессора с помощью высокоуровневого синтеза.
    Примеры решаемых задач:
    • разработать синтезируемый дизайн процессора или его элемента на функциональном уровне;
    • определить параметры автоматизированной оптимизации функционального описания процессора или его элемента, позволяющие добиться оптимальной реализации для заданных требований;
    • выполнить интеграцию и прототипирование решения на микросхеме ПЛИС;
    • выполнить практическое сравнение реализаций процессора или его элемента, выполненных на основе традиционной методологии проектирования (RTL) и высокоуровневого синтеза.
  2. Разработка специализированного процессора с помощью встроенного языка высокоуровневого описания аппаратуры.
    Примеры решаемых задач:
    • изучить открытые дизайны процессоров с архитектурой RISC-V на основе встроенных языков высокоуровневого описания аппаратуры (Rocket, SonicBOOM, XiangShan), выполнить прототипирование процессоров на основе ПЛИС и освоить их программирование;
    • выполнить разработку аналога открытого промышленного процессора с архитектурой RISC-V Syntacore SCR1 (реализованного на основе традиционной RTL-методологии) на основе встроенного языка высокоуровневого описания аппаратуры, произвести практическое сравнение эффективности проектирования;
    • разработать библиотеку абстрактных механизмов управления, коммуникации и синхронизации вычислительного процесса внутри процессора.

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

1) User and Organizations

  • Инструменты гибкой разработки Agile, Scrum, Kanban
  • Тайм-менеджмент и планирование временем

2) Software Development

  • Встроенное программирование на языках C/C++
  • Программирование на языках высокого уровня Scala, Python, Haskell

3) Hardware

  • Высокоуровневый синтез с языков С/С++ аппаратных ускорителей
  • Использование “языков конструирования аппаратуры” (Chisel, SpinalHDL, Migen, Clash)
  • Язык описания аппаратуры SystemVerilog HDL
  • Проектирование под ПЛИС/FPGA

Кем станет студент по завершению магистратуры

В зависимости от выполняемых задач внутри проекта выпускник может стать:

  • инженером-проектировщиком цифровой аппаратуры (Hardware Logic Designer)
  • инженером-проектировщиком ASIC frontend
  • инженером-проектировщиком процессоров
  • инженером-проектировщиком систем на ПЛИС/FPGA

Пререквизиты (входные требования)

Для участия в проекте необходимы базовые знания по следующим направлениям:

  • цифровая схемотехника
  • программирование на языке C/C++
  • программирование на языках высокого уровня (Scala, Python, Haskell)
  • архитектура компьютера