Сегодня прошел вебинар (веб + семинар) фирмы Mentor Graphics на тему «Hardware Designs Reuse Using C++ and High Level Synthesis». Лекция в тезисах:

  • поддерживается синтез ANSI C++ в RTL;

  • повышение производительности инженеров в 10—20 раз, а также сокращение времени на верификацию;

  • качество синтеза эквивалентно ручному;

  • доступны различные параметризируемые типы данных, которые хорошо синтезируются в аппаратуру;

  • объектно-ориентированная архитектура устройства, например, можно делать устройства с одним интерфейсом, но с разной реализацией;

  • можно посмотреть результаты планирования выполнения микроопераций на диаграмме Ганта: временные задержки, распределение по тактам.

В целом, ничего нового с весны не услышал. В конце была возможность задать вопросы лектору пальцем по клавиатуре, а ответ послушать ухом из динамика. Спросил следующие вопросы и получил конкретные ответы.

Вопрос: как обстоит дело с поддержкой SystemC? Ответ*: наши пользователи в основном используют чистый С++, потому что они программисты и совсем не знают SystemC.

Вопрос: как происходит совместный программно-аппаратный синтез? Ответ: никак. На данный момент это всего-лишь инструмент для C++ в RTL синтеза и всё.

Вопрос: необходимо ли использование каких-то С++ расширений или директив? Ответ: нет, не нужно. Наши С++ модели можно легко скормить любому компилятору и вы получите те же самые результаты моделирования. Директивы могут быть использованы в случаях, когда необходимо указать параллелизм в цикле и т. п.

здесь и далее вольный пересказ*

Есть возможность посмотреть более подробные демонстрации на сайте Ментор Графики.

Продолжаем работу над нашим транслятором. Среди ближайших задач: встраивание функций, оптимизация выражений.