совместное моделирование с использованием VIVADO HLS

Генератор системы Xilinx можно использовать для совместного моделирования между исходной эталонной моделью MATLAB и фактической платой HW. Можем ли мы следовать аналогичной процедуре для совместного моделирования между исходной эталонной моделью C++ (до оптимизации типов данных и алгоритмов для HDL) и фактической аппаратной платой в VIVADO HLS?


person Cindy    schedule 10.06.2020    source источник


Ответы (1)


Да мы можем! Если у вас уже есть эталонная модель C++, вы можете сравнить ее результаты с кодом на стороне хоста и устройства, ускоренным на FPGA. Я использую терминологию хост/устройство, как в OpenCL, которую Vitis в настоящее время использует для ядер FPGA C++. Обычно вся обработка буфера между PCIe и/или FPGA выполняется кодом на стороне хоста, а данные обрабатываются кодом на стороне устройства. Потоки Vitis и SDAccel (более ранняя версия) имеют программную эмуляцию кода для FPGA, а также аппаратную эмуляцию, которая фактически представляет собой совместную симуляцию xsim частей кода хоста и устройства. Наконец, вы можете запустить FPGA, скомпилированный в битовый поток, на реальной аппаратной плате (например, экземпляр AWS F1). У вас есть исходная модель C++ для сравнения с двумя эмуляциями и фактическим выполнением на FPGA.

person My Name    schedule 22.06.2020
comment
Извините, но какие две эмуляции вы упомянули здесь? - person Cindy; 26.06.2020
comment
Я много использовал OpenCL для программирования GPU. Может кто-нибудь пояснить, как OpenCL связан с FPGA? - person Cindy; 27.06.2020
comment
В главе 13 этого руководства пользователя рассматриваются 2 эмуляции и 1 реальная цель для ядер OpenCL и HLS C/C++ на ПЛИС Xilinx xilinx.com/support/documentation/sw_manuals/xilinx2019_2/… Intel OpenCL также имеет эмуляцию ЦП, рассматриваемую в этом руководстве: intel .com/content/www/us/en/programmable/documentation/… OpenCL де-факто является высокоуровневой моделью выполнения, если не языком де-факто для запуска параллельных рабочих нагрузок на FPGA. Некоторые могут предположить, что для Xilinx это HLS C/C++, хотя текущий Vitis использует хост-API OpenCL. - person My Name; 27.06.2020