仅对英特尔可见 — GUID: ewa1421444776771
Ixiasoft
3.7. 创建OpenCL Kernel的FPGA硬件配置文件
- 验证QUARTUS_ROOTDIR_OVERRIDE用户环境变量是否指向 Intel® Quartus® Prime软件。打开一个shell,然后在命令提示符处输入echo $QUARTUS_ROOTDIR_OVERRIDE。
如果没有返回 Intel® Quartus® Prime软件的安装目录的路径,那么将其添加到QUARTUS_ROOTDIR_OVERRIDE设置。
- 选择目标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 Guide的Listing the Available FPGA Boards in Your Custom Platform (-list-boards and -list-board-packages)部分。
- 在命令提示符处,转到hello_world设计目录,此目录包含仿真时使用过的hello_world.cl文件。
- 要对目标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 Guide的Compiling 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 Guide的Generating Compilation Progress Report (-v)部分。
关于aoc命令的 -o <filename> 选项的详细信息,请参考 Intel® FPGA SDK for OpenCL™ Pro Edition Programming Guide的Specifying the Name of an Intel® FPGA SDK for OpenCL™ Offline Compiler Output File (-o <filename>)部分。