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

Catapult C Synthesis, коммерческий продукт автоматизации электронного проектирования компании Mentor Graphics , представляет собой инструмент синтеза высокого уровня , иногда называемый алгоритмическим синтезом или синтезом ESL. Catapult C принимает входные данные ANSI C / C ++ и SystemC и генерирует код уровня передачи регистров (RTL), предназначенный для FPGA и ASIC .

История

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

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

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

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

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

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

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

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

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

Функции

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

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

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

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

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

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

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

Внешние ссылки