Импульс С

Соразработчик
РазработаноИмпульсные ускоренные технологии
РазработчикИмпульсные ускоренные технологии
Впервые появился2003
Стабильный релиз
3.60.a.8 / 2009-09-30
ОСПЛИС и связанные с ними встроенные процессоры
ЛицензияКомпилятор FPGA продается и распространяется компанией Impulse Accelerated Technologies
Веб-сайтwww.ImpulseC.com [ мертвая ссылка ]
Под влиянием
Язык программирования C , Streams-C

Impulse C — это подмножество языка программирования C , объединенное с библиотекой функций, совместимой с C, поддерживающей параллельное программирование , в частности, для программирования приложений, ориентированных на устройства FPGA . Разработано компанией Impulse Accelerated Technologies из Киркленда, штат Вашингтон.

Обзор

Инструмент высокоуровневого синтеза CoDeveloper включает компилятор Impulse C и связанную с ним библиотеку функций, предназначенную для разработки приложений на базе FPGA. Impulse C совместим со стандартом ANSI C , что позволяет использовать стандартные инструменты C для проектирования и отладки приложений, ориентированных на FPGA. Компилятор Impulse C принимает подмножество C и генерирует оборудование FPGA в виде файлов языка описания оборудования (HDL) . Impulse C позволяет разработчикам встраиваемых систем и программистам программного обеспечения нацеливать устройства FPGA на ускорение приложений на языке C.

Impulse C отличается от стандартного C тем, что он предоставляет модель параллельного программирования для смешанных процессоров и ПЛИС-платформ. Для этой цели Impulse C включает расширения C в виде функций и типов данных, что позволяет приложениям, написанным на стандартном C, отображаться на крупнозернистых параллельных архитектурах, которые могут включать стандартные процессоры вместе с программируемым оборудованием ПЛИС.

Инструменты Impulse C включают в себя инструменты совместного аппаратного и программного моделирования, а также технологию планирования и оптимизации C-to -RTL , используемую для сопоставления элементов приложения с оборудованием с помощью инструментов синтеза логики ПЛИС .

Модель программирования

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

В потоковом приложении Impulse C аппаратные и программные процессы взаимодействуют в основном через буферизованные потоки данных, которые реализованы непосредственно в оборудовании. Эта буферизация данных, которая реализована с использованием двухтактовых FIFO, сгенерированных компилятором, позволяет писать параллельные приложения на относительно высоком уровне абстракции, без циклической синхронизации, которая в противном случае потребовалась бы.

Используя Impulse C, приложение может быть разделено для создания многопроцессной реализации, которая разделена на аппаратные и программные компоненты, или реализована полностью в устройстве FPGA. Например, приложение для фильтрации изображений может быть описано с помощью Impulse C как набор параллельных конвейерных процессов, каждый из которых был описан с использованием одной или нескольких подпрограмм C.

На программной стороне приложения, например, во встроенном процессоре FPGA, функции библиотеки Impulse C используются для открытия и закрытия потоков данных, чтения или записи данных в потоках и, при желании, отправки сообщений о состоянии или опроса результатов. Для связи процессор-FPGA потоковые чтения и записи могут быть указаны как операции, которые используют преимущества специфичных для FPGA внутренних или внешних интерфейсов шины.

На аппаратной стороне приложения функции библиотеки Impulse C и другие операторы C компилируются для генерации эквивалентных параллельных аппаратных реализаций в форме синтезируемых файлов HDL. Эти файлы обрабатываются инструментами FPGA для создания аппаратных битовых карт FPGA.

В основе потоковой модели программирования Impulse C лежат процессы и потоки. Процессы независимо синхронизируются, параллельно выполняя сегменты приложения. Аппаратные процессы написаны с использованием подмножества стандартного C и выполняют работу приложения, принимая данные, выполняя вычисления и генерируя выходные данные. В типичном приложении данные передаются от процесса к процессу посредством буферизованных потоков или, в некоторых случаях, посредством сообщений и/или общей памяти. Характеристики каждого потока, включая ширину и глубину сгенерированных FIFO, могут быть указаны в приложении C.

Приложения

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

Целевые платформы

Impulse C поддерживает ПЛИС от Xilinx и Altera, включая их программные и аппаратные процессоры Altera Nios II , а также MicroBlaze и PowerPC от Xilinx .

Ссылки

  • Лицензии для стартапов Streams-C
  • Импульсные ускоренные технологии
Взято с "https://en.wikipedia.org/w/index.php?title=Impulse_C&oldid=1022782392"