config_rtl - 2023.2 简体中文

Vitis 高层次综合用户指南 (UG1399)

Document ID
UG1399
Release Date
2023-12-18
Version
2023.2 简体中文

描述

配置输出 RTL 的各种属性以及所使用的复位类型。它还允许您在 RTL 中使用特定标识。默认情况下,这些选项适用于顶层设计以及设计中的所有 RTL 块。

语法

config_rtl [OPTIONS]

选项

-deadlock_detection <none | sim | hw | hw_diagnosis>
在已导出的 IP/XO 文件的顶层 RTL 中启用仿真或综合死锁检测。其中选项如下:
  • none:禁用死锁检测
  • sim:仅对仿真启用死锁检测(默认选项)
  • hw:在已综合及可仿真的 RTL IP 中已启用死锁检测。将 ap_local_deadlockap_local_block 信号添加到 IP 以启用局部和全局死锁检测。
  • hw_diagnosis:在生成的 RTL 代码中已启用死锁检测并包含额外的诊断逻辑。
-header <string>
将文件 <string> 的内容置于所有输出 RTL 和仿真文件的顶部(作为注释)。
提示: 该选项可用于确保输出 RTL 文件包含用户指定的标识。
-kernel_profile
添加内核剖析所需的顶层事件和停滞端口。
-module_auto_prefix
指定顶层函数名称作为前缀值。如果同时指定 config_rtl -module_prefix,则忽略该选项。默认情况下,已启用该选项。
-module_prefix <string>
指定要添加到所有 RTL 实体/模块名称的用户定义的前缀。
-mult_keep_attribute
启用 keep 属性。
-register_all_io
默认寄存所有 I/O 信号。默认值为 false。指定该选项时启用此设置。
-register_reset_num <int>
指定要添加到复位信号的寄存器数量。在 Vivado IP 流程中,默认值为 0。对于 Vitis 内核流程,默认值为 3。
-reset [none | control | state | all]
C/C++ 语言代码中变量的初始化值与 RTL 中初始化的值始终相同,因此与比特流中初始化值也始终相同。此初始化在上电时执行,对设计应用复位时不会重复此操作。

通过 -reset 选项应用的置位操作用于判定寄存器和存储器的复位方式。

none
在设计中不添加复位。
control
复位控制寄存器,例如,状态机中使用的寄存器和用于生成 I/O 协议信号的寄存器。这是默认设置。
state
复位控制寄存器和从 C/C++ 语言代码中的静态变量或全局变量衍生的寄存器或存储器。C/C++ 语言代码中已初始化的任意静态变量或全局变量都复位为其初始值。
all
复位设计中的所有寄存器和存储器。C/C++ 语言代码中已初始化的任意静态变量或全局变量都复位为其初始值。
-reset_async
这导致所有寄存器都使用异步复位。如果不指定该选项,则使用同步复位。
-reset_level (low | high)
允许复位信号的极性设置为低电平有效或高电平有效。默认值为 High
提示: AXI 协议要求采用低电平有效复位。如果您的设计使用 AXI 接口,那么该工具将定义此复位级别并显示警告,前提是 config_rtl -reset_level 设为高电平有效。

示例

将输出 RTL 配置为以异步低电平有效复位对所有寄存器进行复位。

config_rtl -reset all -reset_async -reset_level low

my_message.txt 的内容作为注释添加到所有 RTL 输出文件中。

config_rtl -header my_mesage.txt