Импульс C - Impulse C
Эта статья не цитировать любой источники.Июль 2009 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Разработано | Импульсные ускоренные технологии |
---|---|
Разработчик | Импульсные ускоренные технологии |
Впервые появился | 2003 |
Стабильный выпуск | 3.60.a.8 / 2009-09-30 |
Операционные системы | FPGA и связанные встроенные процессоры |
Лицензия | Компилятор FPGA продается и распространяется Impulse Accelerated Technologies |
Интернет сайт | www.ImpulseC.com[мертвая ссылка ] |
Под влиянием | |
Язык программирования C, Streams-C |
Импульс C является подмножеством Язык программирования C в сочетании с C-совместимым библиотека функций поддерживающий параллельное программирование, в частности для программирования приложений, ориентированных на FPGA устройств. Он разработан Импульсные ускоренные технологии Киркленд, Вашингтон.
Обзор
В Синтез высокого уровня инструмент CoDeveloper включает Impulse C компилятор и связанная библиотека функций, предназначенная для разработки приложений на базе FPGA. Impulse C совместим со стандартными ANSI C, позволяя использовать стандартные инструменты C для разработки и отладки приложений, ориентированных на FPGA. Компилятор Impulse C принимает подмножество C и генерирует оборудование FPGA в виде Язык описания оборудования (HDL) файлы. Impulse C позволяет разработчикам встроенных систем и программистам настраивать устройства FPGA для ускорения приложений на языке C.
Импульс C отличается от стандартного C тем, что обеспечивает параллельное модель программирования для смешанных процессоров и платформ FPGA. Для этой цели Impulse C включает в себя расширения для C в форме функций и типов данных, позволяя отображать приложения, написанные на стандартном C, на крупнозернистые параллельные архитектуры, которые могут включать стандартные процессоры вместе с программируемым оборудованием FPGA.
Инструменты Impulse C включают инструменты совместного моделирования аппаратного и программного обеспечения, а также C-to-RTL технология планирования / оптимизации, используемая для сопоставления элементов приложения с оборудованием через FPGA логический синтез инструменты.
Модель программирования
Impulse C поддерживает вариант связь последовательных процессов (CSP), оставаясь совместимой со стандартными инструментами C, такими как отладчики и профилировщики. Impulse C разработан для потоковых приложений, ориентированных на потоки данных, но также разработан для поддержки альтернативных моделей программирования, включая использование общей памяти в качестве механизма связи.
В потоковом приложении Impulse C аппаратные и программные процессы обмениваются данными в основном через буферизованные потоки данных, которые реализованы непосредственно в оборудовании. Это буферизация данных, которая реализована с использованием двойных часов. ФИФО сгенерированный компилятором, позволяет писать параллельные приложения на относительно высоком уровне абстракции, без циклической синхронизации, которая в противном случае потребовалась бы.
Используя Impulse C, приложение может быть разделено для создания многопроцессорной реализации, которая разделена на аппаратные и программные компоненты или полностью реализована в устройстве FPGA. Например, приложение фильтрации изображений может быть описано с использованием Impulse C как совокупность параллельных конвейерных процессов, каждый из которых был описан с использованием одной или нескольких подпрограмм C.
На программной стороне приложения, например, во встроенном процессоре FPGA, функции библиотеки Impulse C используются для открытия и закрытия потоков данных, чтения или записи данных в потоках и, при желании, отправки сообщений о состоянии или опроса результатов. Для обмена данными между процессором и ПЛИС потоковые чтения и записи могут быть определены как операции, использующие специфические для ПЛИС, внутренние или внешние интерфейсы шины.
На аппаратной стороне приложения функции библиотеки Impulse C и другие операторы C скомпилированы для создания эквивалентных параллельных аппаратных реализаций в форме синтезируемых файлов HDL. Эти файлы обрабатываются инструментами FPGA для создания аппаратных растровых изображений FPGA.
В основе модели потокового программирования Impulse C лежат процессы и потоки. Процессы независимо синхронизируются, одновременно выполняя сегменты приложения. Аппаратные процессы написаны с использованием подмножества стандарта C и выполняют работу приложения, принимая данные, выполняя вычисления и генерируя выходные данные. В типичном приложении данные передаются от процесса к процессу посредством буферизованных потоков или, в некоторых случаях, посредством сообщений и / или общей памяти. Характеристики каждого потока, включая ширину и глубину сгенерированных FIFO, могут быть указаны в приложении C.
Приложения
Impulse C используется для приложений, в том числе обработка изображений и цифровая обработка сигналов на встроенные системы, а также для ускорения высокопроизводительных вычислительных приложений, в том числе финансовых аналитика, биоинформатика и научные вычисления.
Целевые платформы
Impulse C поддерживает ПЛИС от Xilinx и Altera, включая их доступные программные и аппаратные процессоры. Альтера Ниос II и Xilinx с MicroBlaze и PowerPC.