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

ID 683398
Date 9/24/2018
Public
Document Table of Contents

2.3.13.1. Reprogram Support

For Intel® FPGA SDK for OpenCL™ Standard Edition users who program their FPGAs with the clCreateProgramWithBinary flow (that is, reprogram-on-the-fly), the aocl_mmd_reprogram 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_reprogram.

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 simply passes the file contents through the host and to the aocl_mmd_reprogram call via the user_data argument.

For more information on 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™ Standard Edition Programming Guide.