Intel® 高层次综合编译器专业版Pro版: 参考手册

ID 683349
日期 12/04/2023
Public
文档目录

2.3. 编译器互操作性(Interoperability)

您可以使用GCC或Microsoft Visual Studio编译测试台代码,但为生成支持您组件的RTL和仿真始终需要 Intel® HLS Compiler
下表显示了在您设计的各部分中进行编译时可使用的编译器:
  GCC/MSVC i++
Testbench X X
Component (emulation) X X
Component (RTL)   X
限制: 您不能使用GCC和Microsoft Visual Studio 编译由 Intel® HLS Compiler提供头文件的代码,HLS/hls.h除外。对于某些任意精度的数据类型, Intel® HLS Compiler提供的引用头文件可以与FPGA优化头文件一起通过GCC和Microsoft Visual Studio编译。请参阅任意精度数学支持获得详细信息。

要查看 Intel® HLS Compiler支持的GCC和Microsoft Visual Studio版本,请参阅“ Intel® High Level Synthesis Compiler入门指南”中的 Intel® High Level Synthesis Compiler先决条件

要使用本机编译器(GCC或Microsoft Visual Studio)编译您的 Intel® HLS Compiler代码,就必须从初始化 Intel® HLS Compiler环境的终端会话(terminal session)中运行本机编译器。初始化脚本为您的系统选择正确的本机编译器。

GCC

要使用GCC编译您的 Intel® HLS Compiler代码:
  1. 初始化您的环境,通过使用 Intel® HLS Compiler初始化脚本:
    <quartus_installdir>/hls/init_hls.sh
  2. 使用-l命令选项将 Intel® HLS Compiler头文件的链路添加到包含链路的g++命令。

    头文件位于 quartus_installdir/hls/include目录。

  3. 通过-L命令选项将HLS仿真库的链路添加到链接器搜索路径(linker search path)中。

    该仿真库位于 quartus_installdir/hls/host/linux64/lib目录。

  4. 请将hls_emul库添加到链接器命令(即指定-lhls_emul作为命令选项)。
  5. 请确保您指定g++命令的-std=c++17选项。
  6. 如果要生成调试符(debug symbols),请指定g++命令的-g选项。
  7. 如果您在任务系统中使用HLS任务(ihc::launchihc:collect),请指定 g++命令的-pthread选项。
  8. 如果您使用任意精度数据类型,请在源代码中包含引用版本,而不是随 Intel® HLS Compiler提供的FPGA优化版本。您可以使用__INTELFPGA_COMPILER__宏功能来控制需要包含的变体。例如,如果您使用任意精度整数,则可以使用以下宏代码
    #ifdef __INTELFPGA_COMPILER__ 
    #include "HLS/ac_int.h" 
    #else 
    #include "ref/ac_int.h" 
    #endif 
如果要实现这些步骤,您的g++命令类似于以下实例命令:
g++ myFile.cpp -g -I"$(HLS_INSTALL_DIR)/include" 
               -L"$(HLS_INSTALL_DIR)/host/linux64/lib" -lhls_emul 
               -pthread -std=c++17 

Microsoft Visual C++

以下指令通过Microsoft Visual Studio 2017 Professional测试。

使用Microsoft Visual C++编译您的 Intel® HLS Compiler代码:

  1. 请初始化您的环境,且使用的 Intel® HLS Compiler初始化脚本为:
    <quartus_installdir>/hls/init_hls.bat
  2. 请使用/l命令选项将 Intel® HLS Compiler头文件及其路径添加到编译器命令。

    该头文件位于 quartus_installdir\hls\include目录。

  3. 添加/Zi选项以在编译时生成调试符。
  4. 添加/wd4068选项以消除告警,由于MSVC代码无法识别 Intel® HLS Compiler预处理指令(pragmas)。
  5. 通过/libpath命令选项将HLS仿真库添加到链接器搜索路径。

    该仿真库位于 quartus_installdir\hls\host\windows64\lib目录。

  6. 请将hls_emul库添加到链接器命令。
  7. 如果您使用的是任意精度数据类型,请包含引用版,而非随 Intel® HLS Compiler提供的FPGA优化版。您可以使用__INTELFPGA_COMPILER__宏来控制需要包含的版本:
    #ifdef __INTELFPGA_COMPILER__ 
    #include "HLS/ac_int.h" 
    #else 
    #include "ref/ac_int.h" 
    #endif 
您的Microsoft Visual C++编译器命令应类似于以下实例命令:
cl myFile.cpp /I "%HLS_INSTALL_DIR%\include" /nologo /EHsc /wd4068 /MD 
              /std:c++17 /Zi 
              /link "/libpath:%HLS_INSTALL_DIR%\host\windows64\lib" 
              hls_emul.lib