fpga: выбор c ++ для программирования fpga - PullRequest
4 голосов
/ 21 декабря 2009

Я продолжаю слышать в основном от инженеров-электриков, что C используется для работы FPGA.

А как насчет C ++? Есть ли недостатки в использовании C ++? Я думаю, что желаемый параллелизм при программировании для аппаратного обеспечения будет лучше обслуживаться C ++, чем C, нет?

Кроме того, что я могу использовать после этого для совместимости c ++ с аппаратным обеспечением?

Ответы [ 15 ]

1 голос
/ 21 декабря 2009

Два из них, которые я могу придумать: «С ++ гораздо сложнее в написании компиляторов (в данном случае HDL-трансляторов) и имеет слишком много функций, которые просто не будут полезны в таком низкоуровневом программировании, как fpga. программирование требует.

0 голосов
/ 10 декабря 2016

Вы можете использовать C / C ++ для программирования FPGA. Xilinx имеет SDSoC, инструмент, основанный на затмениях, для программирования ваших FPGA с использованием C / C ++. Это в основном создает аппаратный ускоритель для части кода, помеченной для синтеза. Предполагается, что устройства zynq на базе ARM + FPGA, код хоста работает на ARM

Существует еще одно решение SDAccel для ПК. С кодом хоста на X86 и ускорителем на ПЛИС, подключенным к вашему слоту PCIe.

0 голосов
/ 04 мая 2016
  1. Вы можете использовать программный процессор, работающий на FPGA, и код на C оттуда (NIOS от Altera, Microblaze от Xilinx и т. Д.).
  2. SOC FPGA с использованием OpenCL для взаимодействия с FPGA от процессора ARM.
0 голосов
/ 17 ноября 2012

Не уверен, что это было сказано (я не прочитал все ответы), но есть вероятность, что вы слышите работающее программное обеспечение в мягком ядре ... Например, у Altera есть Nios II, который может запустить ядро ​​linux (uCLinux), которое позволит некоторым предварительно загруженным программам на C работать на том программном ядре, которое, в свою очередь, обменивается данными с FPGA. Таким образом, FPGA по-прежнему будет запрограммирована с VHDL / Verilog для аппаратной части, и тогда любые данные, которые они хранят, могут быть доступны небольшому приложению, работающему в ОС в программном ядре. Я уверен, что C ++ будет разрешен до тех пор, пока uCLinux / любое ядро, которое работает, поддерживает язык.

~ Doddy

0 голосов
/ 21 декабря 2009

Обычно вы получаете большую стандартную библиотеку с C ++ и с C, и C ближе к тому, как работает аппаратное обеспечение, то есть проще для инженеров-электриков.

...