仅对英特尔可见 — GUID: ewa1462897780080
Ixiasoft
仅对英特尔可见 — GUID: ewa1462897780080
Ixiasoft
2.1. Intel® HLS Compiler Pro版命令选项
命令选项 | 描述 |
---|---|
-h或 --help | 指示编译器在屏幕上列出所有命令选项及其描述。 |
-o <result> | 指示编译器将其输出放置到 <result> 可执行文件和 <result>.prj目录中。 如果您不指定-o <result>选项,编译器输出 a.out文件用于Linux和 a.exe文件用于Windows。使用 -o <result>命令选项指定编译器输出的名称。 命令实例: i++ -o hlsoutput multiplier.c 调用此实例命令会在您的工作目录中创建一个hlsoutput 可执行文件用于Linux以及hlsoutput.exe用于Windows。 |
--debug-log | 指示编译器生成包含诊断信息的日志文件。debug.log文件位于您当前工作目录内的 <result>.prj子目录中。 如果您的编译失败,无论您是否设置该选项,都会生成debug.log 文件。 |
-v | 详细模式(Verbose mode),指示编译器显示描述编译进度的消息。 命令实例: i++ -v multiplier.cpp,其中multiplier.cpp是输入文件。 |
--version | 命令编译器在屏幕上显示其版本信息。 命令: i++ --version |
选项 | 描述 |
---|---|
-c | 指示编译器预处理、解析并在当前工作目录中生成目标文件(.o/.obj)。链接阶段被省略。 实例命令: i++ -march="Arria 10" -c multiplier.c 调用此实例命令创建一个multiplier.o文件并将 <result>.prj目录的名称设置为multiplier.prj。 稍后连接.o文件时,该-o选项仅影响可执行文件的名称。 <result>.prj目录的名称仍保持通过i++ -c命令调用时设置的目录名称。 |
--component <components> | 允许您指定一个函数名单,名字用逗号隔开。该名单是您需要编译器综合到RTL的函数名称。 实例命令: i++ counter.cpp --component count
要使用此选项,您的组件必须使用extern "C"规范的C-linkage配置。例如:
extern "C" int myComponent(int a, int b) 当您需要指示将函数编译到RTL时,请使用component函数属性来指示,会比使用--component 命令选项更好。 |
-D <macro> [= <val> ] | 允许您将宏定义(<macro>)及其值(<val>)传递给编译器。 如果您未指定值<val>,其默认值为1。 |
-g | 生成调试信息(默认)。 |
-g0 | 不生成调试信息。 |
--gcc-toolchain=<GCC_dir> | 指定需要用于编译的GCC安装路径。该路径应该是包含GCC lib,bin和include文件夹的绝对路径(absolute path) 如果您按照入门指南(Getting Started Guide)中所述配置了系统,则无需使用此功能。 |
--hyper-optimized-handshaking=[auto|off] | 此选项仅适用于 Intel Agilex® 7和 Intel® Stratix® 10器件。 使用此选项可以修改设计中某些区域里使用的握手协议。 默认情况下,--hyper-optimized-handshaking选项设置为auto。 启用此优化后,编译器会将流水线寄存器添加到可停顿节点的握手路径中。此优化可提高fMAX ,但由于增加了寄存器,从而增加了面积和延迟。 禁用此优化通常会减少面积和延迟,但代价是降低fMAX。
限制: 此选项仅适用于 Intel Agilex® 7和 Intel® Stratix® 10器件的设计。如果您在目标器件不是 Intel Agilex® 7和 Intel® Stratix® 10器件时使用该选项,则编译器会因错误而退出。
|
-I <dir> | 添加目录(<dir>)到包含路径列表的末尾。 |
-march= [x86-64 | <FPGA_family> | <FPGA_part_number>] | 指示编译器将组件编译成指定的架构或FPGA系列。
-march编译器选项可以采用下列值之一:
如果不指定此选项,则假设为,-march=x86-64。 如果您指定的参数值包含空格,则请用引号对该参数值加注。 |
--quartus-compile | 使用Intel Quartus Prime编译器编译您的设计。 实例命令: i++ --quartus-compile <input_files> ‑march="Arria 10" 指定此选项时,Intel Quartus Prime编译器会在RTL生成后运行。编译后的Intel Quartus Prime工程被放置于 <result>.prj/quartus目录中,并且 FPGA资源消耗和最大时钟频率的总结被添加到 <result>.prj/reports目录的高层次设计报告中。 此次编译旨在估计您的组件可实现的最佳fMAX。因而预计报告中您组件的时序收敛效果不佳。 |
--quartus-seed <seed> | 指定seed numeric值(生成随机数序列的初始值),该值由位于 <result>.prj/quartus目录中的Intel Quartus Prime工程使用。 在优化设计布局以符合时序要求(fMAX)时,Intel Quartus Prime Fitter使用该seed值获得初始布局配置。 有关Fitter seed的更多信息,请参阅 Intel Quartus Prime Pro Edition用户指南:设计编译中"Fitter设置参考"小节 的Fitter初始布局Seed的内容。 . |
--simulator <simulator_name> | 指定您用来执行验证的仿真器。
此命令选项可以将以下值用于<simulator_name>:
如果不指定此选项,假设为--simulator modelsim。
重要: --simulator命令选项仅与-march命令选项一同使用。
--simulator none选项指示HLS编译器跳过验证流程,并且在不生成相应测试台的情况下为组件生成RTL。如果使用此选项,会更快生成高层设计报告(report.html),但却无法仿真您的设计。如果没有来自仿真的数据,报告一定会省略组件延迟等验证统计数据。 实例命令: i++ -march="<FPGA_family_or_part_number>" ‑‑simulator none multiplier.c |
-ffp-contract=[ fast | on ] | 对于双精度数据类型,控制编译器是否可以将浮点乘法和加法或减法运算合并为单个融合乘加(fused multiply-add,FMA),并控制编译器是否跳过中间舍入和转换,但由#pragma clang fp contract(off)守护程序隔离的代码块除外。 此选项对涉及单精度数据类型的操作无效。 -ffp-contract选项可以采用下列值之一:
要了解更多信息,请查看以下教程:
|
-ffp-reassociate | 控制编译器是否可以重新排列任意精度的浮点算术运算的顺序,如果重新排列可以提高吞吐量、延迟或两者。 由#pragma clang fp reassociate(off)守护程序隔离的代码块未被重新排列。 要了解更多信息,请查看以下教程: <quartus_installdir>/hls/examples/tutorials/best_practices/floating_point_ops |
--daz | 仅限于double数据类型,请禁用本地IEEE-754双精度浮点计算中的亚正常支持。 要了解更多信息,请查看以下教程: <quartus_installdir>/hls/examples/tutorials/best_practices/submnormal_and_rounding |
--rounding= [ieee | faithful] | 仅限于double数据类型,控制本地IEEE-754双精度加法器、乘法器和除法器的舍入方案。 如果您未指定此选项,则加法器和乘法器将根据IEEE-754四舍五入到最接近数,即,向偶数舍入(even (RNE) rounding (0.5 ULP)),而除法器则使用忠实舍入(faithful rounding (1 ULP))。 --rounding选项可以采用下列值:
要了解更多信息,请查看以下教程: <quartus_installdir>/hls/examples/tutorials/best_practices/submnormal_and_rounding |
--clock <clock target> | 针对指定的时钟频率或周期优化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] | 对于支持的数据类型和数学运算,控制全局范围内数学函数的硬件实现。
有关硬件中数学函数实现的详细信息,请参阅数学函数硬件实现总结。 要了解更多信息,请参考以下教程: <quartus_installdir>/hls/examples/tutorials/best_practices/control_of_dsp_usage |
选项 | 描述 |
---|---|
-ghdl[=<depth>] | 运行验证可执行文件时记录信号,以帮助您调试生成的RTL。运行可执行文件后,仿真器会将波形记录到 a.prj/verification/vsim.wlf文件。 使用可选的<depth>属性以指定被记录的层次结构层数。如果未指定<depth>属性,则所有信号都被记录。 使用-ghdl=1仅记录顶层信号。 关于 ModelSim* 波形的详细信息,请查看 Intel® High Level Synthesis Compiler Pro版用户指南中的验证过程中的调试。 |
-L <dir> -L <dir> |
(仅Linux) 将目录(<dir>)添加到库文件搜索路径的末尾。 |
-l <library> | (仅Linux) 将目标文件链接到二进制文件时指定库文件(.a)的名称。 在Windows上,您可以在命令行上列出库文件(.lib),无需指定任何命令选项或标志。 |
--x86-only | 仅创建测试台可执行文件。 编译器输出 Linux的 <result> 文件或Windows的 <result>.exe文件。不创建 <result>.prj目录及其内容。 |
--fpga-only | 仅创建 <result>.prj目录及其内容。 不创建测试台可执行性文件( <result> / <result>.exe)。 在使用此选项从编译输出仿真您的硬件之前,必须先使用--x86-only选项编译您的测试台(或作为完整编译的一部分)。 |