--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"
--advanced
命令具有相反的优先顺序:配置文件命令优先于命令行实惨,遇到的最后一条命令优先于先前出现的任何命令。--advanced.param
--advanced.param <param_name>=<param_value>
按下表所述指定高级参数。
参数选项
参数名称 | 有效值 | 描述 |
---|---|---|
compiler.acceleratorBinaryContent
|
类型:字符串 默认值: |
表示要在生成的 xclbin 文件中插入的设计内容。有效选项包括 bitstream 、pdi 或 dcp 。
提示:
您可指定两个值,使
此参数在构建硬件目标时使用,该选项适用于:
|
compiler.addOutputTypes
|
类型:字符串 默认值: |
表示由 Vitis 编译器生成的其他输出类型。有效值包括:xclbin 和 hw_export 。hw_export 可用于创建固定 XSA(源自动态硬件平台)以供在嵌入式软件开发流程中使用。适用于:
|
compiler.axiDeadLockFree
|
类型:布尔值 默认值:TRUE |
用于避免死锁。Vitis HLS 默认启用该选项。 |
compiler.deadlockDetection
|
类型:布尔值 默认值:FALSE |
支持在硬件仿真 (emulation) 过程中,运行仿真 (simulation) 期间检测内核死锁。当应用发生死锁时,该工具会向控制台和 log 日志文件发布 1 条错误消息:
此消息将重复直至死锁终止为止。您必须手动终止应用以结束死锁状况。 提示: 仿真期间遇到死锁时,您可在 Vitis HLS 中打开内核代码以使用其他死锁检测和调试功能。
适用于:
|
compiler.emulationMode=<mode>
|
类型:字符串 func | rtl |
指示内核应编译为 RTL 代码以供在硬件仿真和硬件设计中使用,或者编译为 C 语言功能模型并包含 SystemC 封装文件,以供在硬件仿真内使用,如 处理 HLS 内核的功能模型 中所述。 该选项适用于 |
compiler.enableIncrHwEmu
|
类型:布尔值 默认值:FALSE |
需对平台进行某些次要更改时,该选项用于支持对硬件仿真 xclbin 进行增量编译。当平台完成更新后,该选项支持对硬件仿真的器件二进制文件进行快速重构。 适用于:
|
compiler.errorOnHoldViolation
|
类型:布尔值 默认值:TRUE |
完成 Vivado 实现的最后一步之后,在时序分析检查期间,如需进行时钟缩放,则可使用该选项。如果发现保持时间违例,v++ 默认会退出并返回错误,且不生成 xclbin 。此参数允许您覆盖默认行为。适用于:
|
compiler.fsanitize
|
类型:字符串 默认值: |
支持对 OpenCL 内核执行额外的存储器访问,如 调试 OpenCL 内核 中所述。有效值包括:address 和 memory。 适用于软件仿真和调试 (Software Emulation and Debug)。 |
compiler.interfaceRdBurstLen
|
类型:整数范围 默认值: |
用于指定内核 AXI 接口上期望的 AXI 读取突发长度。该选项搭配 compiler.interfaceRdOutstanding 选项一起使用可判定硬件缓冲器大小。有效值为 1 到 256。适用于:
|
compiler.interfaceWrBurstLen
|
类型:整数范围 默认值: |
用于指定内核 AXI 接口上期望的 AXI 写入突发长度。该选项搭配 compiler.interfaceWrOutstanding 选项一起使用可判定硬件缓冲器大小。有效值为 1 到 256。适用于:
|
compiler.interfaceRdOutstanding
|
类型:整数范围 默认值: |
指定内核 AXI 接口上未完成的缓冲器读取数。有效值为 1 到 256。 适用于:
|
compiler.interfaceWrOutstanding
|
类型:整数范围 默认值: |
指定内核 AXI 接口上未完成的缓冲器写入数。有效值为 1 到 256。 适用于:
|
compiler.maxComputeUnits
|
类型:整数 默认值: |
系统内允许的最大计算单元数。默认值为 60 个计算单元,或者在硬件平台 (.xsa) 内通过 numComputeUnits 属性来指定。 指定的值将覆盖硬件平台的默认值。默认值 -1 表示保留默认值。 适用于 |
compiler.skipTimingCheckAndFrequencyScaling
|
类型:布尔值 默认值:FALSE |
此参数可导致 Vivado 工具在完成实现进程的最后一步(route_design 或布线后 phys_opt_design )之后,跳过时序检查和可选时钟频率缩放。适用于:
|
compiler.userPreCreateProjectTcl
|
类型:字符串 默认值: |
指定在 Vitis 构建进程中创建 Vivado 工程之前要运行的 Tcl 脚本。 适用于:
|
compiler.userPreSysLinkOverlayTcl
|
类型:字符串 默认值: |
指定在 Vitis 构建进程中,打开 Vivado IP integrator 块设计后,在运行编译器生成的 dr.bd.tcl 脚本之前要运行的 Tcl 脚本。 适用于:
|
compiler.userPostSysLinkOverlayTcl
|
类型:字符串 默认值: |
指定运行编译器生成的 dr.bd.tcl 脚本之后要运行的 Tcl 脚本。 适用于:
|
compiler.userPostDebugProfileOverlayTcl
|
类型:字符串 默认值: |
指定在 vpl.update_bd 步骤中,在 Vivado IP integrator 块设计中调试剖析数据覆盖插入之后要运行的 Tcl 脚本。 适用于:
|
compiler.worstNegativeSlack
|
类型:浮点 默认值:0 |
在执行时序分析检查期间,该选项可指定设计可接受的最差负时序裕量(以纳秒 (ns) 为单位)。当负时序裕量超过指定的值时,该工具可能会尝试通过缩放时钟频率来达成时序结果。这样会指定可接受的负时序裕量值,以代替零 (0) 裕量。 适用于:
|
compiler.xclDataflowFifoDepth
|
类型:整数 默认值: |
指定内核数据流区域内使用的 FIFO 深度。 适用于:
|
hw_emu.aie_shim_sol_path
|
类型:字符串 默认值: |
该选项供 Versal 平台使用,用于指定到 AI 引擎接口拼块解决方案约束文件的路径,此文件由 aiecompiler 生成。 此文件在仿真 (simulation)、编译和细化期间使用,可提供到物理接口的逻辑映射。此映射对于第三方仿真器(如 Mentor Graphics Questa Advanced Simulator 或 Cadence Xcelium Logic Simulation)而言是必需的。 |
hw_emu.compiledLibs
|
类型:字符串 默认值: |
将所提及的 clibs 用于指定的仿真器 (simulator)。适用于硬件仿真和调试 (Hardware Emulation and Debug)。 |
hw_emu.debugMode
|
wdb 默认值: |
默认值为 WDB,以波形模式运行仿真 (simulation)。 该选项只能搭配 适用于硬件仿真和调试 (Hardware Emulation and Debug)。 |
hw_emu.enableProtocolChecker
|
类型:布尔值 默认值:FALSE |
支持在硬件仿真期间运行 Lightweight AXI Protocol Checker (LAPC)。该选项用于确认设计中任意 AXI 接口的精度。 适用于硬件仿真和调试 (Hardware Emulation and Debug)。 |
hw_emu.json_device_file_path
|
类型:字符串 默认值: |
该选项供 Versal 平台使用,可指定到 AI 引擎 JSON 器件文件的路径,此文件位于 Vitis 软件安装区域内。 此文件在仿真 (simulation)、编译和细化期间使用,可指定 AI 引擎阵列的大小。此映射对于第三方仿真器(如 Mentor Graphics Questa Advanced Simulator 或 Cadence Xcelium Logic Simulation)而言是必需的。 |
hw_emu.platformPath
|
类型:字符串 默认值: |
指定到定制平台目录的路径。<platformPath> 目录应满足以下要求才能在平台创建时使用:
适用于硬件仿真和调试 (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 传输事务调试级别。
适用于硬件仿真和调试 (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>
取下表中所述值之一。
属性名称 | 有效值 | 描述 |
---|---|---|
kernel.<kernel_name>.kernel_flags
|
类型:字符串 默认值: |
在 <kernel_name> 内核上设置特定编译标志。 |
solution.device_repo_path
|
类型:字符串 默认值: |
指定到硬件平台的存储库的路径。应改为使用 --platform 选项(含指向 .xpfm 平台文件的完整路径)。 |
solution.kernel_compiler_margin
|
类型:浮点 默认值:内核时钟周期的 12.5%。 |
内核的时钟裕度(以 ns 为单位)。在综合前,将内核时钟周期减去该值即可为布局布线延迟提供一些裕度。 |
--advanced.misc
--advanced.misc <arg>
指定用于内核编译的高级工具指令。