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

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

13.1. Intel® HLS Compiler Pro版i++命令行参数

使用i++命令行参数来影响组件的编译和链接方式。

常规i++命令选项

选项 描述
--debug-log 生成编译器诊断日志。
-h, --help 编译器命令选项列表及其简短描述
-o result 将编译器输出置入 <result> 可执行文件和 <result>.prj目录。
-v 显示描述编译进度的消息。
--version 显示编译器版本信息。

影响编译的命令选项

选项 默认值 描述
-c   预处理、解析并生成目标文件
--component component name   编译RTL的函数名称清单,名称用逗号隔开。
要使用此选项,您的组件必须以使用extern "C"规范的C-linkage(C链接)配置。例如:
extern "C" int myComponent(int a, int b)

使用component函数属性优于使用--component命令选项来指示您想要编译到RTL的函数。

-D macro [= val ]   <val>作为值来定义<macro>
-g   生成调试信息(默认选项)。
-g0   不生成调试信息。
--gcc-toolchain=<GCC_dir>  

指定需要用于编译的GCC安装路径。该路径应该是包含GCC libbininclude文件夹的目录的绝对路径(absolute path)。

--hyper-optimized-handshaking=[auto|off] auto

此选项仅适用于 Intel Agilex® 7 Intel® Stratix® 10器件。

使用此选项可以修改设计中某些区域里使用的握手协议。

-I dir   将目录 <dir> 添加到主包含路径的末尾。
-march=[x86-64 | FPGA_family | FPGA_part_number] x86-64 为模拟器流程(x86-64)或指定的FPGA系列又或者FPGA部件编号生成代码。
--quartus-compile   运行通过Intel Quartus Prime生成的HDL以便生成准确的fMAX和面积估算。预计您的组件无法干净地收敛时序。
--quartus-seed <seed>   当您的组件通过Intel Quartus Prime编译到硬件时,请指定要使用的Fitter seed。
--simulator simulator_name modelsim 指定您用来执行验证的模拟器。
此命令选项可以为<simulator_name>采用以下值:
modelsim
使用Siemens* EDA ModelSim*或者Questa*进行组件验证。
none
禁用验证。即,在无测试台的情况下为组件生成RTL。

如果不指定此选项, 则假定为--simulator modelsim

-ffp-contract=[ fast | on ]

  对于双精度数据类型,控制编译器是否可以将浮点乘法和加法或减法运算合并为单个融合乘加(fused multiply-add,FMA),并控制编译器是否跳过中间舍入和转换,但由#pragma clang fp contract(off)守护程序隔离的代码块除外。

此选项对涉及单精度数据类型的操作无效。

-ffp-contract选项可以采用下列值之一:
fast
可以将多个相邻代码行进行融合的数学运算。

仅由#pragma clang fp contract(on)守护程序以代码隔离的数学运算才在单个行代码之中进行融合。

on
数学运算只能在单个行代码中融合。

#pragma clang fp contract(fast)守护程序以代码隔离的数学运算仍然可以在多个相邻代码行之中进行融合。

要了解更多信息,请查看以下教程:
  • <quartus_installdir>/hls/examples/tutorials/best_practices/floating_point_contract
  • <quartus_installdir>/hls/examples/tutorials/best_practices/floating_point_ops

-ffp-reassociate

  放宽浮点算术运算的顺序,被#pragma clang fp reassociate(off)隔离的代码块除外

要了解更多信息,请查看以下教程: <quartus_installdir>/hls/examples/tutorials/best_practices/floating_point_ops

--daz   仅限于double数据类型,禁用双精度浮点计算中的亚正常(subnormal)支持。
--rounding= [ieee | faithful]  

仅限于double数据类型,控制双精度加法器、乘法器和除法器的舍入方案。

如果您未指定此选项,则加法器和乘法器将根据IEEE-754四舍五入到最接近数,即,向偶数舍入(even (RNE) rounding (0.5 ULP)),而除法器则使用忠实舍入(faithful rounding (1 ULP))。

--rounding选项可以采用下列值:
ieee
所有加法器、乘法器和除法器均使用IEEE-754 RNE舍入。

IEEE-754 RNE舍入将结果舍入为最接近的值。如果数字位于中间,则将其舍入为最接近的偶数位值。这是IEEE 754-2008标准定义的默认舍入模式。

faithful
所有加法器、乘法器和除法器均采用忠实舍入。

忠实舍入将结果舍入为最接近的单精度数的上限或下限。因此,忠实舍入会产生两个可能值之一。两者之间的选择没有定义。

忠实舍入的最大误差为一个ULP。不保证误差均匀分布。

IEEE-754标准未定义忠实舍入模式。

--clock clock target 240 MHz 针对指定的时钟频率或周期优化RTL。

clock target值必须包含一个单元。

例如:
i++ -march="Arria 10" test.cpp --clock 100MHz
i++ -march="Arria 10" test.cpp --clock 10ns
--dsp_mode= [prefer-dsp | prefer-softlogic | default] 默认值 对于支持的数据类型和数学运算,控制全局范围内数学函数的硬件实现。
prefer-dsp
编译器尝试通过DSP实现支持的数学运算。
prefer-softlogic
编译器尝试通过使用ALM的软逻辑来实现支持的数学运算。
default
编译器根据数据类型和操作来实现支持的数学运算。

该值是默认值。

关于硬件中数学函数实现的详细信息,请参阅数学函数硬件实现总结

要了解更多信息,请参考以下教程: <quartus_installdir>/hls/examples/tutorials/best_practices/control_of_dsp_usage

影响链接的命令选项

选项 默认值 描述
-ghdl[=<depth>]   在模拟中实现HDL信号的完整调试可视性和记录。

请使用可选的 <depth>属性指定记录的层次结构层数。如果没有指定 <depth>属性的值,所有信号都被记录。

请使用-ghdl=1仅记录顶层信号。

-L dir

-L dir

  (仅限Linux)将目录<dir>添加到要以-l选项搜索的特定库文件的目录列表。
-l library   (仅限 Linux)链接时使用库名称<library>
--x86-only   仅创建测试台可执行文件( <result>.out/ <result>.exe)。
--fpga-only   仅创建 <result>.prj目录及其内容。