对于卡到主机传输,数据接收自 AXI4‑Stream 接口并写入目标地址。数据包可跨多个描述符。C2H 通道启用时即可接受数据,并具有有效的描述符。接收到数据后,就会按顺序填充描述符。当描述符完成填充或者由于接口上出现包结束而导致描述符关闭后,C2H 通道会将信息写回含预定义的 WB Magic 值 16'h52b4
(表 2) 的主机上的写回地址,并对 EOP 和长度 (Length) 进行相应的更新。对于 C2H AXI4‑Stream 接口上的有效数据周期,与给定数据包关联的所有数据都必须连续。
tkeep
位必须全部为 1(包的最后一次数据传输除外)。在执行数据包的最后一次传输时,当 tlast
断言有效时,可指定 tkeep
不全为 1,以指定该数据周期并非完整的数据路径宽度。断言有效的 tkeep
位需打包到 lsb 中以表示连续数据。如果 tlast
断言有效并且 tkeep
全部为 0,这并非有效组合,无法使 DMA 正常工作。
C2H 串流描述符的长度(目标缓冲器的大小)必须始终为 64 字节的倍数。
偏移 | 字段 | ||
---|---|---|---|
0x0 | WB Magic[15:0] | Reserved [14:0] | Status[0] |
0x04 | Length[31:0] |
字段 | 位索引 | 子字段 | 描述 |
---|---|---|---|
状态 | 0 | EOP | 包结束 |
保留 | 14:0 | 保留 | |
WB Magic | 15:0 | 16'h52b4。此代码用于验证 C2H 写回是否有效。 | |
Length | 31:0 | 数据长度(以字节为单位)。 |
注释: C2H 串流写回地址无法跨越 4K 边界。