仅对英特尔可见 — GUID: khc1506020779207
Ixiasoft
仅对英特尔可见 — GUID: khc1506020779207
Ixiasoft
2.3. 编译器互操作性(Interoperability)
GCC/MSVC | i++ | |
---|---|---|
Testbench | X | X |
Component (emulation) | X | X |
Component (RTL) | X |
要查看 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
- 初始化您的环境,通过使用 Intel® HLS Compiler初始化脚本:
<quartus_installdir>/hls/init_hls.sh
- 使用-l命令选项将 Intel® HLS Compiler头文件的链路添加到包含链路的g++命令。
头文件位于 quartus_installdir/hls/include目录。
- 通过-L命令选项将HLS仿真库的链路添加到链接器搜索路径(linker search path)中。
该仿真库位于 quartus_installdir/hls/host/linux64/lib目录。
- 请将hls_emul库添加到链接器命令(即指定-lhls_emul作为命令选项)。
- 请确保您指定g++命令的-std=c++17选项。
- 如果要生成调试符(debug symbols),请指定g++命令的-g选项。
- 如果您在任务系统中使用HLS任务(ihc::launch和ihc:collect),请指定 g++命令的-pthread选项。
- 如果您使用任意精度数据类型,请在源代码中包含引用版本,而不是随 Intel® HLS Compiler提供的FPGA优化版本。您可以使用__INTELFPGA_COMPILER__宏功能来控制需要包含的变体。例如,如果您使用任意精度整数,则可以使用以下宏代码
#ifdef __INTELFPGA_COMPILER__ #include "HLS/ac_int.h" #else #include "ref/ac_int.h" #endif
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代码:
- 请初始化您的环境,且使用的 Intel® HLS Compiler初始化脚本为:
<quartus_installdir>/hls/init_hls.bat
- 请使用/l命令选项将 Intel® HLS Compiler头文件及其路径添加到编译器命令。
该头文件位于 quartus_installdir\hls\include目录。
- 添加/Zi选项以在编译时生成调试符。
- 添加/wd4068选项以消除告警,由于MSVC代码无法识别 Intel® HLS Compiler预处理指令(pragmas)。
- 通过/libpath命令选项将HLS仿真库添加到链接器搜索路径。
该仿真库位于 quartus_installdir\hls\host\windows64\lib目录。
- 请将hls_emul库添加到链接器命令。
- 如果您使用的是任意精度数据类型,请包含引用版,而非随 Intel® HLS Compiler提供的FPGA优化版。您可以使用__INTELFPGA_COMPILER__宏来控制需要包含的版本:
#ifdef __INTELFPGA_COMPILER__ #include "HLS/ac_int.h" #else #include "ref/ac_int.h" #endif
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