--advanced 选项 - 2023.2 简体中文

Vitis 统一软件平台文档 应用加速开发 (UG1393)

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 简体中文

--advanced.param--advanced.prop 选项用于指定供 v++ 命令使用的参数和属性。执行编译或链接时,这些选项可以为 Vitis 核开发套件所生成的硬件以及硬件仿真 (emulation) 进程提供细化的控制。

--advanced.xxx 选项的实参按如下方式来指定:<param_name>=<param_value>。例如:

v++ --link -–advanced.param compiler.enableXSAIntegrityCheck=true 
-–advanced.prop kernel.foo.kernel_flags="-std=c++0x"
提示: 如需获取命令行与配置文件之间的优先顺序以及配置文件中的多个条目的描述,请参阅 Vitis 编译器配置文件。但此处描述的 --advanced 命令具有相反的优先顺序:配置文件命令优先于命令行实惨,遇到的最后一条命令优先于先前出现的任何命令。

--advanced.param

--advanced.param <param_name>=<param_value>

按下表所述指定高级参数。

参数选项

表 1. 参数选项
参数名称 有效值 描述
compiler.acceleratorBinaryContent 类型:字符串

默认值:<empty>

表示要在生成的 xclbin 文件中插入的设计内容。有效选项包括 bitstreampdidcp

bitstreampdi 互斥。pdi 适用于 Versal 平台,bitstream 则适用于非 Versal 平台。

提示:

您可指定两个值,使 v++ 生成 2 个 xclbin 文件:其中一个包含 DCP 文件,另一个则包含比特流或 PDI 文件。例如:

--advanced.param compiler.acceleratorBinaryContent=dcp,bitstream
--advanced.param compiler.acceleratorBinaryContent=dcp,pdi

此参数在构建硬件目标时使用,该选项适用于:

  • v++ --link
  • vpl.impl
  • xclbinutil
compiler.addOutputTypes 类型:字符串

默认值:<empty>

表示由 Vitis 编译器生成的其他输出类型。有效值包括:xclbinhw_exporthw_export 可用于创建固定 XSA(源自动态硬件平台)以供在嵌入式软件开发流程中使用。

适用于:

  • v++ --link
  • vpl.impl
  • XSA 生成
compiler.axiDeadLockFree 类型:布尔值

默认值:TRUE

用于避免死锁。Vitis HLS 默认启用该选项。
compiler.​deadlockDetection 类型:布尔值

默认值:FALSE

支持在硬件仿真 (emulation) 过程中,运行仿真 (simulation) 期间检测内核死锁。当应用发生死锁时,该工具会向控制台和 log 日志文件发布 1 条错误消息:
// ERROR!!! DEADLOCK DETECTED at 42979000 ns! SIMULATION WILL BE STOPPED! //

此消息将重复直至死锁终止为止。您必须手动终止应用以结束死锁状况。

提示: 仿真期间遇到死锁时,您可在 Vitis HLS 中打开内核代码以使用其他死锁检测和调试功能。

适用于:

  • v++ --compile
  • Vitis HLS
  • config_export
compiler.emulationMode=<mode> 类型:字符串

func | rtl

指示内核应编译为 RTL 代码以供在硬件仿真和硬件设计中使用,或者编译为 C 语言功能模型并包含 SystemC 封装文件,以供在硬件仿真内使用,如 处理 HLS 内核的功能模型 中所述。

该选项适用于 v++ --compile。默认情况下,将内核编译为 RTL 代码。

compiler.enableIncrHwEmu 类型:布尔值

默认值:FALSE

需对平台进行某些次要更改时,该选项用于支持对硬件仿真 xclbin 进行增量编译。当平台完成更新后,该选项支持对硬件仿真的器件二进制文件进行快速重构。

适用于:

  • v++ --link
  • vpl.impl
compiler.​errorOnHoldViolation 类型:布尔值

默认值:TRUE

完成 Vivado 实现的最后一步之后,在时序分析检查期间,如需进行时钟缩放,则可使用该选项。如果发现保持时间违例,v++ 默认会退出并返回错误,且不生成 xclbin。此参数允许您覆盖默认行为。

适用于:

  • v++ --link
  • vpl.impl
compiler.​fsanitize 类型:字符串

默认值:<empty>

支持对 OpenCL 内核执行额外的存储器访问,如 调试 OpenCL 内核 中所述。有效值包括:address 和 memory。

适用于软件仿真和调试 (Software Emulation and Debug)。

compiler.​interfaceRdBurstLen 类型:整数范围

默认值:0

用于指定内核 AXI 接口上期望的 AXI 读取突发长度。该选项搭配 compiler.interfaceRdOutstanding 选项一起使用可判定硬件缓冲器大小。有效值为 1 到 256。

适用于:

  • v++ --compile
  • Vitis HLS
  • config_interface
compiler.​interfaceWrBurstLen 类型:整数范围

默认值:0

用于指定内核 AXI 接口上期望的 AXI 写入突发长度。该选项搭配 compiler.interfaceWrOutstanding 选项一起使用可判定硬件缓冲器大小。有效值为 1 到 256。

适用于:

  • v++ --compile
  • Vitis HLS
  • config_interface
compiler.​interfaceRdOutstanding 类型:整数范围

默认值:0

指定内核 AXI 接口上未完成的缓冲器读取数。有效值为 1 到 256。

适用于:

  • v++ --compile
  • Vitis HLS
  • config_interface
compiler.​interfaceWrOutstanding 类型:整数范围

默认值:0

指定内核 AXI 接口上未完成的缓冲器写入数。有效值为 1 到 256。

适用于:

  • v++ --compile
  • Vitis HLS
  • config_interface
compiler.​maxComputeUnits 类型:整数

默认值:-1

系统内允许的最大计算单元数。默认值为 60 个计算单元,或者在硬件平台 (.xsa) 内通过 numComputeUnits 属性来指定。

指定的值将覆盖硬件平台的默认值。默认值 -1 表示保留默认值。

适用于 v++ --link

compiler.skipTimingCheckAndFrequencyScaling 类型:布尔值

默认值:FALSE

此参数可导致 Vivado 工具在完成实现进程的最后一步(route_design 或布线后 phys_opt_design)之后,跳过时序检查和可选时钟频率缩放。

适用于:

  • v++ --link
  • vpl.impl
​compiler.userPreCreateProjectTcl 类型:字符串

默认值:<empty>

指定在 Vitis 构建进程中创建 Vivado 工程之前要运行的 Tcl 脚本。

适用于:

  • v++ --link
  • vpl.create_project
​compiler.userPreSysLinkOverlayTcl 类型:字符串

默认值:<empty>

指定在 Vitis 构建进程中,打开 Vivado IP integrator 块设计后,在运行编译器生成的 dr.bd.tcl 脚本之前要运行的 Tcl 脚本。

适用于:

  • v++ --link
  • vpl.create_bd
​compiler.userPostSysLinkOverlayTcl 类型:字符串

默认值:<empty>

指定运行编译器生成的 dr.bd.tcl 脚本之后要运行的 Tcl 脚本。

适用于:

  • v++ --link
  • vpl.update_bd
​compiler.userPostDebugProfileOverlayTcl 类型:字符串

默认值:<empty>

指定在 vpl.update_bd 步骤中,在 Vivado IP integrator 块设计中调试剖析数据覆盖插入之后要运行的 Tcl 脚本。

适用于:

  • v++ --link
  • vpl.updated_bd
compiler.​worstNegativeSlack 类型:浮点

默认值:0

在执行时序分析检查期间,该选项可指定设计可接受的最差负时序裕量(以纳秒 (ns) 为单位)。当负时序裕量超过指定的值时,该工具可能会尝试通过缩放时钟频率来达成时序结果。这样会指定可接受的负时序裕量值,以代替零 (0) 裕量。

适用于:

  • v++ --link
  • vpl.impl
compiler.​xclDataflowFifoDepth 类型:整数

默认值:-1

指定内核数据流区域内使用的 FIFO 深度。

适用于:

  • v++ --compile
  • Vitis HLS
  • config_dateflow
hw_emu.aie_shim_sol_path 类型:字符串

默认值:<empty>

该选项供 Versal 平台使用,用于指定到 AI 引擎接口拼块解决方案约束文件的路径,此文件由 aiecompiler 生成。

此文件在仿真 (simulation)、编译和细化期间使用,可提供到物理接口的逻辑映射。此映射对于第三方仿真器(如 Mentor Graphics Questa Advanced Simulator 或 Cadence Xcelium Logic Simulation)而言是必需的。

hw_emu.​compiledLibs 类型:字符串

默认值:<empty>

将所提及的 clibs 用于指定的仿真器 (simulator)。

适用于硬件仿真和调试 (Hardware Emulation and Debug)。

hw_emu.​debugMode wdb

默认值:wdb

默认值为 WDB,以波形模式运行仿真 (simulation)。

该选项只能搭配 -g--debug 选项一起使用。

适用于硬件仿真和调试 (Hardware Emulation and Debug)。

hw_emu.​enableProtocolChecker 类型:布尔值

默认值:FALSE

支持在硬件仿真期间运行 Lightweight AXI Protocol Checker (LAPC)。该选项用于确认设计中任意 AXI 接口的精度。

适用于硬件仿真和调试 (Hardware Emulation and Debug)。

hw_emu.json_device_file_path 类型:字符串

默认值:<empty>

该选项供 Versal 平台使用,可指定到 AI 引擎 JSON 器件文件的路径,此文件位于 Vitis 软件安装区域内。

此文件在仿真 (simulation)、编译和细化期间使用,可指定 AI 引擎阵列的大小。此映射对于第三方仿真器(如 Mentor Graphics Questa Advanced Simulator 或 Cadence Xcelium Logic Simulation)而言是必需的。

hw_emu.platformPath 类型:字符串

默认值:<empty>

指定到定制平台目录的路径。<platformPath> 目录应满足以下要求才能在平台创建时使用:
  • 此目录应包含名为 ip_repo 的子目录。
  • 此目录应包含名为 scripts 的子目录,并且该 scripts 目录应包含 hw_em_util.tcl 文件。hw_em_util.tcl 文件中应定义以下 2 个过程:
    • hw_em_util::add_base_platform
    • hw_em_util::generate_simulation_scripts_and_compile

适用于硬件仿真和调试 (Hardware Emulation and Debug)。

hw_emu.post_sim_settings 类型:字符串 指定到 Tcl 脚本的路径,此脚本用于在运行硬件仿真之前配置 Vivado 仿真器的设置。完成默认工具配置后,启动仿真之前运行此脚本。您可使用此 Tcl 脚本来覆盖特定设置或者按需对仿真器 (simulator) 进行定制配置。

适用于硬件仿真和调试 (Hardware Emulation and Debug)。

hw_emu.reduceHwEmuCompileTime 类型:布尔值

默认值:FALSE

将顶层块设计移入 v++ --link 的“生成目标”步骤。

适用于硬件仿真和调试 (Hardware Emulation and Debug)。

hw_emu.​scDebugLevel none | waveform | log | waveform_and_log

默认值:waveform_and_log

设置 Vivado 逻辑仿真器 (xsim) 的 TLM 传输事务调试级别。
  • 设为 NONE 表示禁用 TLM 调试
  • 设为 LOG 表示将 TLM 传输事务 log 日志转储到报告文件中
  • 设为 WAVEFORM 即可启用 TLM 传输事务波形视图
  • 设为 WAVEFORM_AND_LOG 即可启用“Log Messages”(日志消息)和“Waveform”(波形)视图

适用于硬件仿真和调试 (Hardware Emulation and Debug)。

hw_emu.simulator XSIM | QUESTA

默认值:XSIM

使用指定仿真器 (simulator) 来运行硬件仿真 (hardware emulation)。

适用于硬件仿真和调试 (Hardware Emulation and Debug)。

例如:
--advanced.param compiler.addOutputTypes="hw_export"
提示: 在配置文件中的 [advanced] 节头下可使用如下格式指定该选项:
[advanced]
param=compiler.addOutputTypes="hw_export"

--advanced.prop

--advanced.prop <arg>

为内核编译指定高级内核或解决方案属性,其中 <arg> 取下表中所述值之一。

表 2. 属性选项
属性名称 有效值 描述
kernel.<kernel_name>.​kernel_flags 类型:字符串

默认值:<empty>

<kernel_name> 内核上设置特定编译标志。
solution.​device_repo_path 类型:字符串

默认值:<empty>

指定到硬件平台的存储库的路径。应改为使用 --platform 选项(含指向 .xpfm 平台文件的完整路径)。
solution.​kernel_compiler_margin 类型:浮点

默认值:内核时钟周期的 12.5%。

内核的时钟裕度(以 ns 为单位)。在综合前,将内核时钟周期减去该值即可为布局布线延迟提供一些裕度。

--advanced.misc

--advanced.misc <arg>

指定用于内核编译的高级工具指令。