XRT 管理的内核的控制要求 - 2023.2 简体中文

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

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 简体中文
重要: 用户管理的内核无需下述控制寄存器和信号,但可在 s_axilite 接口中使用寄存器来实现控制结构,如 创建用户管理的 RTL 内核 中所述。如果您的 RTL 模块实现不同的控制结构,那么您可将其定义为 user_managed 内核,或者必须对其进行调整以使其符合 XRT 管理的要求。

下表概括了 XRT 管理的内核所需的寄存器映射,这些内核将在 Vitis 工具和 XRT 中使用。指定 ap_ctrl_hsap_ctrl_chain 控制协议的内核需要控制寄存器,如 执行模式 中所述。实现 ap_ctrl_noneuser_managed 控制协议的内核则不需要下述控制寄存器。

提示: 仅限实现中断的设计才需要中断相关的寄存器。

所有用户定义的寄存器必须从位置 0x10 开始;此位置以下的位置均为保留位置。这些寄存器包括用于内核实参的寄存器,例如传递给存储器映射接口的标量值和地址偏移。

表 1. 寄存器地址映射
偏移 名称 描述
0x0 控制 控制并提供内核状态。
0x4 Global Interrupt Enable 用于启用对主机的中断。
0x8 IP Interrupt Enable 用于控制使用哪个 IP 生成的信号来生成中断。
0xC IP Interrupt Status 提供中断状态。
0x10 Kernel arguments 包含标量和全局存储器实参等。

下表显示了通过控制寄存器 (offset 0x0) 访问的控制信号。控制寄存器及其信号由内核执行模式(ap_ctrl_hsap_ctrl_chain)来确定。

可用信号供不同控制协议使用,如 XRT 文档中的受支持的内核执行模型中所述。例如,对于顺序执行模式 ap_ctrl_hs,主机通常将 0x00000001 写入偏移 0 控制寄存器,这样即可设置位 0、清除位 1 和 2,并在读取 ap_done 信号时轮询,直至此信号为 1 为止。

表 2. 控制寄存器信号
名称 描述
0 ap_start 当内核可以开始处理数据时,此信号断言有效。握手时清除此信号,同时 ap_done 断言有效。
1 ap_done 当内核已完成操作时,此信号断言有效。读取时清除此信号。
2 ap_idle 当内核处于空闲状态时,此信号断言有效。
3 ap_ready 当内核准备好接受新数据时,内核会将此信号断言有效
4 ap_continue 此信号由 XRT 断言有效以允许内核继续保持运行
7 auto_restart 此信号用于启用自动内核重启,如 Vitis 高层次综合用户指南(UG1399) 中的“自动重启内核”所述。
31:5 保留 保留

仅当内核有中断时,才需要以下与中断相关的寄存器。

表 3. Global Interrupt Enable (0x4)
名称 描述
0 Global Interrupt Enable 当此信号断言有效时,中断随 IP Interrupt Enable 位一起启用。
31:1 保留 保留
表 4. IP Interrupt Enable (0x8)
名称 描述
0 Interrupt Enable 当此信号断言有效时,中断随 Global Interrupt Enable 位一起启用。
31:1 保留 保留
表 5. IP Interrupt Status (0xC)
名称 描述
0 Interrupt Status 写入时切换。
31:1 保留 保留