自动重启模式 - 2023.2 简体中文

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

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

Vitis HLS 设计可以是控制驱动的模块或数据驱动的模块,如 HLS 抽象并行编程模型 中所述。这意味着,HLS 设计的执行是通过控制信号来管理的,并由外部软件应用或软件驱动程序来管理,或者由输入是否存在数据来驱动。

数据驱动的模块仅根据有更多数据需要处理这一事实来自动重启设计。HLS 设计完成一项传输事务的执行,然后有数据可用时即开始执行下一项传输事务。如不存在数据,则执行停滞,存在数据时则重新启动。本节并不涉及这些数据驱动的设计。

但对于控制驱动的模块,负责管理的软件应用或者已连接的 HLS 设计必须触发模块的 ap_start 信号才能开始处理,如 块级控制协议 中所述。虽然默认情况下,这些设计不会自动重启,但可按此处所述方式使用自动重启机制来实现。当 HLS 设计使用串流 I/O 进行数据输入或输出时,此自动重启模式对于控制驱动的 TLP 很有用,但其中也有控制信号,使其可供软件应用进行管理。在此情况下,软件应用会启动一次内核,而后内核就会按指定的次数运行传输事务,或者持续运行直至复位或由软件应用显式停止为止。

这种控制驱动的自动重启设计对于如下设计很有用:设计内具有串流数据并且这些数据进出 AMD 器件的 I/O 管脚(以太网、SerDes),或者设计内具有串流数据并且这些数据往来于已连接的 HLS 设计模块之间。换言之,HLS 设计以数据驱动的设计为主,但并非全部如此。