Сегодня прошел вебинар (веб + семинар) фирмы Mentor Graphics на тему «Hardware Designs Reuse Using C++ and High Level Synthesis». Лекция в тезисах:
-
поддерживается синтез ANSI C++ в RTL;
-
повышение производительности инженеров в 10—20 раз, а также сокращение времени на верификацию;
-
качество синтеза эквивалентно ручному;
-
доступны различные параметризируемые типы данных, которые хорошо синтезируются в аппаратуру;
-
объектно-ориентированная архитектура устройства, например, можно делать устройства с одним интерфейсом, но с разной реализацией;
-
можно посмотреть результаты планирования выполнения микроопераций на диаграмме Ганта: временные задержки, распределение по тактам.
В целом, ничего нового с весны не услышал. В конце была возможность задать вопросы лектору пальцем по клавиатуре, а ответ послушать ухом из динамика. Спросил следующие вопросы и получил конкретные ответы.
Вопрос: как обстоит дело с поддержкой SystemC? Ответ*: наши пользователи в основном используют чистый С++, потому что они программисты и совсем не знают SystemC.
Вопрос: как происходит совместный программно-аппаратный синтез? Ответ: никак. На данный момент это всего-лишь инструмент для C++ в RTL синтеза и всё.
Вопрос: необходимо ли использование каких-то С++ расширений или директив? Ответ: нет, не нужно. Наши С++ модели можно легко скормить любому компилятору и вы получите те же самые результаты моделирования. Директивы могут быть использованы в случаях, когда необходимо указать параллелизм в цикле и т. п.
здесь и далее вольный пересказ*
Есть возможность посмотреть более подробные демонстрации на сайте Ментор Графики.
Продолжаем работу над нашим транслятором. Среди ближайших задач: встраивание функций, оптимизация выражений.