Катапульта С
Catapult C Synthesis, коммерческий продукт для автоматизации электронного проектирования от Mentor Graphics , представляет собой инструмент синтеза высокого уровня , иногда называемый алгоритмическим синтезом или ESL-синтезом. Catapult C принимает ANSI C / C++ и SystemC. входные данные [1] и генерирует код уровня передачи регистров (RTL), предназначенный для FPGA и 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 (System Level) для автоматического создания подсистем обработки сигналов. Catapult SL может координировать разделение последовательных операций C на несколько блоков внутри подсистемы, включая разделение на несколько тактовых доменов. Catapult SL автоматически вставляет соответствующие межблочные каналы и буферы памяти для сборки подсистемы. [5]
В январе 2009 года Mentor объявила об интеграции Catapult C со средой проектирования и моделирования Vista SystemC для автоматического создания моделей уровня транзакций (TLM). В этом процессе несинхронизированный ввод ANSI C++ в Catapult инкапсулируется в оболочку TLM; Информация о времени извлекается из результатов синтеза и обратно аннотируется в полученной модели. Этот поток совместим со стандартом TLM-2.0 инициативы Open SystemC (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 имеет три типа моделирования с использованием оригинального тестового стенда C/C++: на основе цикла, на основе RTL и на уровне шлюза. [15]
Catapult C поддерживает генерацию модели SystemC, предназначенной для виртуальных платформ, а также тестовую среду SystemC для проверки сгенерированного RTL на соответствие исходному C++ с использованием исходного тестового стенда C++.
Catapult C поддерживает синтез моделей уровня транзакций (TLM), включая стандартные готовые интерфейсы шины и специальные протоколы. [16]
Конкурирующие продукты HLS
[ редактировать ]- Stratus HLS от Cadence Design Systems
- Vivado HLS от Xilinx (ранее AutoPilot от AutoESL )
- Intel HLS от Intel (ранее a++ от Altera)
- Компилятор BlueSpec от BlueSpec
- Соразработчик Impulse C из Impulse Accelerated Technologies
- Компилятор Synphony C от Synopsys
- LegUp из Университета Торонто. Архивировано 24 июля 2020 г. в Wayback Machine.
- CyberWorkBench от NEC [1]
- C-to-Verilog с C-to-Verilog.com
- eXCite из Y Explorations, заархивировано 17 сентября 2019 г. в Wayback Machine.
- ParC C++ расширен для параллельной обработки и описания оборудования.
- HDL Coder от MathWorks
- Панда-Бамбу HLS из Миланского политехнического университета [2]
Ссылки
[ редактировать ]- ^ Проектирование микросхем, соединяющее ESL и синтез высокого уровня
- ^ Университет Оулу Быстрое планирование эффективных архитектур СБИС для беспроводной системы HSDPA следующего поколения с использованием синтеза C
- ^ EETimes: внедрение высокоуровневого синтеза позволяет использовать ESL
- ^ SOCCentral Mentor Graphics расширяет продукт Catapult C Synthesis. Архивировано 5 февраля 2006 г. на Wayback Machine.
- ^ SOCCentral Mentor представляет высокоуровневый синтез для создания высокопроизводительных подсистем на основе чистого ANSI C++. Архивировано 13 сентября 2012 г. на archive.today .
- ^ EETimes Mentor TLM 2.0 Процесс проектирования
- ^ SCDsource Mentor Catapult C синтезирует контроль и управление питанием. Архивировано 9 октября 2011 г. на Wayback Machine.
- ^ Проектирование микросхем, соединяющее ESL и синтез высокого уровня
- ^ TLM Synthesis от EETimes Mentor связывает виртуальное прототипирование и аппаратную реализацию.
- ^ EETimes Calypto приобретает катапульту Mentor C.
- ^ PR Newswire Mentor Graphics приобретает Calypto Design Systems
- ^ Университет Оулу Быстрое планирование эффективных архитектур СБИС для беспроводной системы HSDPA следующего поколения с использованием синтеза C
- ^ SCDsource Mentor Catapult C синтезирует контроль и управление питанием. Архивировано 9 октября 2011 г. на Wayback Machine.
- ^ Архитектурный проект ICASSP и реализация алгоритма детектора сферы с увеличением радиуса
- ^ Разработка чипа Deepchip C/C++ с использованием высокоуровневого синтеза
- ^ TLM Synthesis от EETimes Mentor связывает виртуальное прототипирование и аппаратную реализацию.
Внешние ссылки
[ редактировать ]- Страница продукта Calypto Design Systems Catapult C Synthesis
- Страница продукта Mentor Graphics Catapult C Synthesis
- ESL и сообщества синтеза высокого уровня
- Преобразование кода ANSI C с помощью директив OpenMP в описание SystemC.
- Автоматизированный синтез и верификация встроенных систем: желаемое за действительное или реальность?