Intel® FPGA SDK for OpenCL™: Stratix® V Network Reference Platform Porting Guide

ID 683645
Date 11/06/2017
Document Table of Contents

2.9. Programming Your FPGA Quickly Using CvP

After you verify that the host can program you FPGA device successfully, establish the CvP programming capability of your Custom Platform.
  1. Invoke the following command to generate the CvP files:
    quartus_cpf -c --cvp <revision_name>.sof <revision_name>.rbf
    You may include this command in the <your_custom_platform_name>/hardware/<board_name>/scripts/post_flow.tcl file so that it generates the CvP files automatically after each compilation.
    Your Intel® Quartus® Prime compilation directory should contain the files <revision_name>.sof, <revision_name>.periph.rbf, and <revision_name>.core.rbf files.
  2. Program the base.sof file and then reboot your machine.
  3. (Optional) You may use the Intel® Quartus® Prime Programmer to verify basic CvP functionality. Invoke the quartus_cvp command to program the base.core.rbf file.
  4. Define the contents of your fpga.bin file by adding Tcl code to the <your_custom_platform_name>/hardware/<board_name>/scripts/post_flow.tcl file that generates the fpga.bin file. Then, modify the MMD source code and the program utility so that you can use the file.
    You may use the existing format if you remove the proprietary host-to-flash programming over the cpld_bridge component from both the hardware and software.
  5. If you set the environment ACL_PCIE_FORCE_USB_PROGRAMMING earlier, unset it. Then, set the environment variable ACL_PCIE_FORCE_PERIPH_REPLACE_USB to a value of 1. Alternatively, modify the <your_custom_platform_name>/source/host/mmd/acl_pcie_device.cpp file to use CvP but not flash memory for reprogramming periphery changes. Flash programming is unavailable because of the removal of the cpld_bridge component.
  6. Navigate to the directory containing the boardtest.aocx file. Invoke the command aocl program <device_name> boardtest.aocx to reprogram the device. Confirm that the message Program succeed appears.
    Note: By default, <device_name> is the acl number. If you have retained the default naming convention, invoke the aocl program command using acl0 as <device_name>. Alternatively, if you use another naming convention for <device_name>, use that in your aocl utility command.