Катапульта C - Catapult C

Катапульта C Синтез, реклама автоматизация проектирования электроники продукт Наставник Графика, это синтез высокого уровня инструмент, иногда называемый алгоритмическим синтезом или синтезом ESL. Катапульта C занимает ANSI C /C ++ и SystemC входы[1] и генерирует зарегистрировать уровень передачи (RTL) код, ориентированный на ПЛИС и ASIC.[2]

История

В 2004 году Mentor Graphics официально анонсировала свой продукт для синтеза высокого уровня Catapult C, предлагающий поддержку иерархического проектирования для синтеза конвейерных, многоблочных подсистем из не привязанных к времени описаний ANSI C / C ++. Основная функция Catapult C заключалась в создании RTL (VHDL и Verilog ), предназначенные для ASIC и FPGA. Пользователи указали ограничения для времени и зоны, а также указали период времени и технологию назначения. Mentor также анонсировал конструктор библиотеки Catapult C для разработчиков ASIC для сбора подробных данных о характеристиках.[3]

В 2005 году Mentor анонсировал расширения Catapult C для автоматического создания моделей и оболочек уровня транзакций SystemC для моделирования проекта в средах проверки, поддерживающих SystemC. Mentor также представил синтез интерфейса для сопоставления передачи данных, подразумеваемой передачей аргументов функции C ++ в аппаратные интерфейсы, такие как провода, регистры, регистры установления связи, памяти, шины или более сложные пользовательские интерфейсы.[4]

В 2006 году Mentor анонсировал Catapult SL (системный уровень) для автоматического создания подсистем обработки сигналов. Catapult SL может координировать разделение последовательных операций C на несколько блоков внутри подсистемы, включая разделение на несколько доменов часов. Catapult SL автоматически вставляет соответствующие межблочные каналы и буферы памяти для сборки подсистемы.[5]

В январе 2009 года Mentor объявил об интеграции между Catapult C и его средой проектирования и моделирования Vista SystemC для автоматического создания моделей уровня транзакций (TLM). В этом процессе несвязанный вход ANSI C ++ в Catapult инкапсулируется в оболочку TLM; информация о времени извлекается из результатов синтеза и аннотируется в результирующей модели. Поток совместим со стандартом TLM-2.0 от Open SystemC Initiative (OSCI).[6]

В июне 2009 года Mentor объявил, что он усовершенствовал Catapult C, добавив в него возможность синтезировать управляющую логику, создавать списки соединений RTL с оптимизированным энергопотреблением, с автоматическим многоуровневым стробированием часов и автоматическим потоком проверки, чтобы включить отладку RTL по сравнению с исходным C ++. Вход.[7]

В январе 2010 года Mentor объявил о способности Catapult C принимать прямые входные данные SystemC, включая поддержку как на основе цикла, так и на уровне транзакций (TLM).[8]

В мае 2011 года Mentor объявил, что Catapult C поддерживает синтез TLM. Абстрактные модели TLM преобразуются в модели SystemC с точным выводом, зависящие от протокола, а оттуда синтезируются в код RTL. Существующие синтезируемые описания могут быть преобразованы в TLM.[9]

В августе 2011 года Catapult C была приобретена Calypto Design Systems.[10]

В сентябре 2015 года Mentor Graphics приобрела Calypto Design Systems,[11] таким образом, вновь приобретая Catapult C.

Функции

CatapultC синтезирует ANSI C / C ++ без проприетарных расширений. Поддержка языка C / C ++ включает указатели, классы, шаблоны, специализацию шаблонов и перегрузку операторов, которые облегчают методологию повторного использования дизайна над кодом RTL.[12]

Catapult C поддерживает синтез как алгоритмической, так и управляющей логики.[13]

Дизайнеры проводят итерации с CatC, чтобы выбрать предпочитаемую микроархитектуру с учетом указанных ограничений производительности и площади.[14] Catapult имеет графический пользовательский интерфейс с визуальным представлением схемы аппаратного обеспечения, которую она планирует запланировать, а также привязку часов между кодом C и кодом Verilog RTL. В Catapult C есть 3 типа моделирования с использованием оригинальной тестовой среды C / C ++: на основе цикла, на основе RTL и на основе уровня шлюза.[15]

Catapult C поддерживает создание модели SystemC, предназначенной для виртуальных платформ, и тестовую среду SystemC для проверки сгенерированного RTL по сравнению с исходным C ++ с использованием исходного средства тестирования C ++.

Catapult C поддерживает синтез моделей уровня транзакций (TLM), включая стандартные стандартные шинные интерфейсы и пользовательские протоколы.[16]

Конкурирующие продукты HLS

Рекомендации

  1. ^ Чип Дизайн Соединение ESL и синтеза высокого уровня
  2. ^ Университет Оулу Быстрое планирование эффективных архитектур VLSI для беспроводной системы HSDPA следующего поколения с использованием синтеза C
  3. ^ EETimes: Внедрение синтеза высокого уровня позволяет использовать ESL[постоянная мертвая ссылка ]
  4. ^ SOCCentral Mentor Graphics расширяет продукт Catapult C Synthesis В архиве 2006-02-05 на Wayback Machine
  5. ^ SOCCentral Mentor представляет высокоуровневый синтез для создания высокопроизводительных подсистем из чистого ANSI C ++ В архиве 2012-09-13 в Archive.today.
  6. ^ EETimes Схема проектирования Mentor TLM 2.0
  7. ^ SCDsource Mentor Catapult C синтезирует контроль и управление питанием В архиве 2011-10-09 на Wayback Machine
  8. ^ Чип Дизайн Соединение ESL и синтеза высокого уровня
  9. ^ EETimes TLM Synthesis от Mentor связывает виртуальное прототипирование и аппаратную реализацию
  10. ^ EETimes Calypto приобретает Mentor's Catapult C
  11. ^ PR Newswire Mentor Graphics приобретает Calypto Design Systems
  12. ^ Университет Оулу Быстрое планирование эффективных архитектур VLSI для беспроводной системы HSDPA следующего поколения с использованием синтеза C
  13. ^ SCDsource Mentor Catapult C синтезирует контроль и управление питанием В архиве 2011-10-09 на Wayback Machine
  14. ^ ICASSP Архитектурный дизайн и реализация алгоритма детектора сферы увеличивающегося радиуса - списка
  15. ^ Deepchip Разработка микросхем C / C ++ с использованием высокоуровневого синтеза
  16. ^ EETimes TLM Synthesis от Mentor связывает виртуальное прототипирование и аппаратную реализацию

внешняя ссылка