Intel® FPGA SDK for OpenCL™ Pro Edition: Custom Platform Toolkit User Guide

ID 683085
Date 3/28/2022
Public
Document Table of Contents

2.3.14.1. Program Support

For Intel® FPGA SDK for OpenCL™ Pro Edition users who program their FPGAs with the clCreateProgramWithBinary flow (that is, program-on-the-fly), the aocl_mmd_program subroutine is used to configure the FPGA from within the host applications. The host ensures that this call executes only when the FPGA is idle, meaning that no kernels are running and no transfers are outstanding. The MMD layer must then reconfigure the device with the data in the user_data argument of aocl_mmd_program.

The data in the user_data argument is the same fpga.bin data created during Intel® Quartus® Prime compilation. The Intel® FPGA SDK for OpenCL™ Offline Compiler packages the exact contents of fpga.bin into the .aocx file during compilation. The contents of the fpga.bin is irrelevant to the offline compiler. It passes the file contents through the host and to the aocl_mmd_program call via the user_data argument.

For more information about the clCreateProgramWithBinary function, refer to the OpenCL Specification version 1.0 and the Programming an FPGA via the Host section of the Intel® FPGA SDK for OpenCL™ Pro Edition Programming Guide.