Intel® FPGA SDK for OpenCL™ Pro Edition: 入门指南

ID 683188
日期 3/28/2022
Public
文档目录

3.7. 创建OpenCL Kernel的FPGA硬件配置文件

$INTELFPGAOCLSDKROOT/examples_aoc目录复制hello_world OpenCL™设计示例。 使用 Intel® FPGA SDK for OpenCL™ Offline Compiler编译hello_world kernel程序来创建hello_world.aocx可执行文件。 .aocx文件是FPGA硬件配置文件。
成功安装FPGA板级和仿真kernel后,您可以创建一个在器件上执行的.aocx文件。 以下步骤描述了从hello_world示例设计创建.aocx文件的过程。
注: Intel® FPGA SDK for OpenCL™ Offline Compiler对目标FPGA板级编译OpenCL kernel。 Intel® FPGA SDK for OpenCL™ 对已安装的板级包进行编译。如果还没有安装FPGA板级,那么请参考安装FPGA板级来了解更多信息。如果不安装板级包,那么使用 -board-package=<board_package_path> 选项来指向OpenCL BSP,否则 Intel® FPGA SDK for OpenCL™ 将报告错误。关于详细信息,请参考以下步骤。
  1. 验证QUARTUS_ROOTDIR_OVERRIDE用户环境变量是否指向 Intel® Quartus® Prime软件。打开一个shell,然后在命令提示符处输入echo $QUARTUS_ROOTDIR_OVERRIDE

    如果没有返回 Intel® Quartus® Prime软件的安装目录的路径,那么将其添加到QUARTUS_ROOTDIR_OVERRIDE设置。

  2. 选择目标FPGA板级。要列出Custom Platform中的FPGA板级,需在命令提示符处调用命令 aoc -list-boards 。如果未安装OpenCL BSP,那么会显示No board support packages installed消息。使用 -board-package=<board_package_path> 选项以指向OpenCL BSP。

    如果安装了多个OpenCL BSP,那么您可以使用 -board-package=<custom_platform_path> 选项和 -board=<board_name> 从一个特定的Custom Platform中选择一个板级变体编译kernel。在命令提示符处,调用以下命令:

    aoc -board-package=<board_package_path> -board=<board_name> kernel.cl

    Intel® FPGA SDK for OpenCL™ Offline Compiler使用<board_package_path>中指定的板级编译kernel。若要列出系统中可用的Custom Platform,需在aoc命令中包含-list-board-packages选项。

    关于aoc命令的-list-boards-board-package-list-board-packages选项的详细信息,请参考 Intel® FPGA SDK for OpenCL™ Pro Edition Programming GuideListing the Available FPGA Boards in Your Custom Platform (-list-boards and -list-board-packages)部分。

  3. 在命令提示符处,转到hello_world设计目录,此目录包含仿真时使用过的hello_world.cl文件。
  4. 要对目标FPGA板级编译kernel,需调用以下命令:
    aoc -v -board-package=<board_package_path> -board=<board_name> device/hello_world.cl -o bin/hello_world.aocx

    此命令执行以下任务:

    • 从OpenCL源代码生成 Intel® Quartus® Prime设计工程文件。
    • 检查初始语句(syntax)错误。
    • 执行基本优化。
    • 创建一个包含必要的中间文件的hello_world目录。
    • 创建.aocx文件。
    提示:
    • 如果您只安装了一个FPGA板级,那么 -board=<board_name> 是可选的。
    • 如果您只安装了一个OpenCL BSP,那么 -board-package=<board_package_path>是可选的。
    注意:

    .aocx文件可能需要数小时才能构建,具体取决于kernel的复杂性。要在屏幕上查看编译进度,需在aoc命令中包含-v标志。一个示例输出如下所示。

    aoc: Environment checks are completed successfully.
    You are now compiling the full flow!!
    aoc: Selected target board <board_name>
    aoc: Running OpenCL parser....
    aoc: OpenCL parser completed successfully.
    aoc: Compiling....
    aoc: Linking with IP library ...
    aoc: First stage compilation completed successfully.
    aoc: Setting up project for CvP revision flow....
    aoc: Hardware generation completed successfully.
    

    offline compiler显示aoc: Hardware generation completed successfully.,表示编译完成。

关于aoc命令的 -board=<board_name> 选项的详细信息,请参考 Intel® FPGA SDK for OpenCL™ Pro Edition Programming GuideCompiling a Kernel for a Specific FPGA Board and Custom Platform (-board=<board_name>) and (-board-package=<board_package_path>)部分。

关于aoc命令的-v选项的详细信息,请参考 Intel® FPGA SDK for OpenCL™ Pro Edition Programming GuideGenerating Compilation Progress Report (-v)部分。

关于aoc命令的 -o <filename> 选项的详细信息,请参考 Intel® FPGA SDK for OpenCL™ Pro Edition Programming GuideSpecifying the Name of an Intel® FPGA SDK for OpenCL™ Offline Compiler Output File (-o <filename>)部分。