2.6.2. Programming the Flash Memory of an FPGA
Preloading an OpenCL image into the flash memory is necessary for the proper functioning of many Custom Platforms. For example, most PCIe®-based boards require a valid OpenCL image in flash memory so that hardware on the board can use the image to configure the FPGA device when the host system powers up for the first time. If the FPGA is not configured with a valid OpenCL image, the system fails to enumerate the PCIe endpoint, or the driver does not function.
Before running any designs, ensure that the flash memory of your board has a valid OpenCL image that is compatible with the current OpenCL software version. Consult your board vendor's documentation for board-specific requirements.
To load your hardware configuration file into the flash memory of your FPGA board, perform the following tasks:
- Install any drivers or utilities that your Custom Platform requires.
For example, some Custom Platforms require you to install the Intel® FPGA Download Cable driver to load your hardware configuration file into the flash memory. For installation instructions, refer to the Intel® FPGA Download Cable II User Guide.
- To load the hardware configuration file into the flash memory, invoke the aocl flash <device_name> <design_example_filename>.aocx command, where <device_name> refers to the acl number (e.g. acl0 to acl127) that corresponds to your FPGA device, and <design_example_filename>.aocx is the hardware configuration file you create from the <design_example_filename>.cl file in the design example package.
For more information about compiling an aocx file, refer to Creating the FPGA Hardware Configuration File of an OpenCL kernel in the Intel FPGA SDK for OpenCL Getting Started Guide.
- Power down your device or computer and then power it up again.
Power cycling ensures that the FPGA configuration device retrieves the hardware configuration file from the flash memory and configures it into the FPGA.Warning: Some Custom Platforms require you to power cycle the entire host system after programming the flash memory. For example, PCIe-based Custom Platforms might require a host system restart to re-enumerate the PCIe endpoint. Intel® recommends that you power cycle the complete host system after programming the flash memory.