对于地址对齐模式,PIO 设计会在 FPGA 块 RAM 中实现 1 个 8,192 字节的目标空间,此空间位于 PCIe 端点之后。此 32 位目标空间可通过单 Dword I/O 读取、I/O 写入、存储器读取 64、存储器写入 64、存储器读取 32 和存储器写入 32 TLP 来访问。
对于核向 PIO 设计提供的有效的存储器读取 32 TLP、存储器读取 64 TLP 或 I/O 读取 TLP 请求,PIO 设计会生成 1 个完成包(其有效载荷含 1 个 Dword)以作为响应。此外,此 PIO 设计还会为 I/O 写入 TLP 请求返回无数据完成包(状态为成功)。对于 Dword 对齐模式,PIO 设计会在 FPGA 块 RAM 中实现 2048 字节的目标空间。此目标空间和数据宽度因 AXI4-Stream 接口而异,且等于 AXI4-Stream 接口的宽度。此目标空间可通过存储器写入 32 TLP 和存储器读取 32 TLP 来访问。
对于来自核的有效的存储器读取 32 TLP 请求,PIO 会生成完成包(大小即有效载荷的大小)以作为响应。
PIO 设计可启动:
- 存储器读取传输事务,前提是接收的写入地址为
11'hEA8
、写入数据为32'hAAAA_BBBB
,且目标为 BAR0。 - 遗留中断,前提是接收的写入地址为
11'hEEC
、写入数据为32'hCCCC_DDDD
且目标为 BAR0。 - MSI,前提是接收的写入地址为
11'hEEC
、写入数据为32'hEEEE_FFFF
且目标为 BAR0。 - MSIX,前提是接收的写入地址为
11'hEEC
、写入数据为32'hDEAD_BEEF
且目标为 BAR0。
PIO 设计在地址对齐模式下可处理含单 Dword 有效载荷的存储器或 I/O 写入 TLP,在 Dword 对齐模式下则可处理多 Dword 有效载荷,方法是将有效载荷更新到 FPGA 块 RAM 空间的目标地址中。