对于 AXI4‑Stream,设计示例为环回设计。对于所有其它通道,通道 H2C_0 环回至 C2H_0(以此类推)。首先,测试案例启动 C2H 引擎。C2H 引擎会等待由 H2C 引擎发射的数据。随后,测试案例会启动 H2C 引擎。H2C 引擎会从主机读取数据并将其发送至卡,随后此数据会环回至 C2H 引擎。然后,C2H 引擎会将此数据写回主机存储器。仿真步骤如下所示:
- 测试案例为 H2C 引擎设置 1 个描述符。
- 在主机存储器中创建 H2C 描述符。H2C 描述符提供数据长度(128 字节)、源地址(主机)和目标地址(卡)。
- 测试案例在主机源地址空间内写入数据(128 字节的增量数据)。
- 测试案例还会在主机存储器中为 C2H 引擎设置 1 个描述符。
- C2H 描述符提供数据长度(128 字节)、源地址(卡)和目标地址(主机)。
- 将 C2H 描述符起始地址写入寄存器(
0x5080
和0x5084
)。 - 写入 C2H 控制寄存器,这样即可首先启动 C2H 传输。
- C2H 引擎将启动并等待来自 H2C 端口的数据。
- 将 H2C 描述符起始地址写入寄存器(
0x4080
和0x4084
)。 - 写入 H2C 控制寄存器,这样即可启动 H2C 传输。
- H2C 引擎会将来自主机源地址的数据发送至卡目标地址。
- 此数据将环回至 C2H 引擎。
- C2H 引擎会从卡读取数据,并将其写回主机存储器目标地址。
- 测试案例会检查 H2C 和 C2H 描述符的完成计数(值为 1)。
- 随后,测试案例会比较数据,确认是否正确。
- 随后,测试案例会停用 H2C 和 C2H 引擎的控制寄存器
0x0004
和0x1004
中的 Run 位(位 0),以禁用传输。