上传者: u011565038
|
上传时间: 2025-06-19 11:52:40
|
文件大小: 1.13MB
|
文件类型: PDF
### 7 Series FPGAs Integrated Block for PCI Express IP核中基于64位事务层接口的AXI4-Stream接口设计
#### 概述
本文旨在深入解析7 Series FPGAs集成块中的PCI Express (PCIe) IP核所采用的64位事务层接口的AXI4-Stream接口设计。该设计主要用于实现高速数据传输,特别是针对大数据量的传输场景。AXI4-Stream接口设计主要包括信号定义、数据传输规则及接口行为等内容。
#### 一、TLP格式
**事务层数据包**(Transaction Layer Packet, TLP)是PCI Express协议中用于在事务层上传输数据的基本单元,它由多个部分组成:
- **TLP头**:包含关于TLP的重要信息,如总线事务类型、路由信息等。
- **数据有效负载**:可选的,长度可变,用于传输实际的数据。
- **TLP摘要**:可选的,用于提供数据的完整性检查。
数据在AXI4-Stream接口上以**Big-Endian**顺序进行传输和接收,这是遵循PCI Express基本规范的要求。Big-Endian是指数据表示方式中高位字节存储在内存的低地址处,低位字节存储在内存的高地址处。
#### 二、基于64位事务层接口的AXI4-Stream接口设计
1. **数据传输格式**:当使用AXI4-Stream接口传输TLP时,数据包会在整个64位数据路径上进行排列。每个字节的位置根据Big-Endian顺序确定。例如,数据包的第一个字节出现在s_axis_tx_tdata[31:24](发送)或m_axis_rx_tdata[31:24](接收)上,第二个字节出现在s_axis_tx_tdata[23:16]或m_axis_rx_tdata[23:16]上,以此类推。
2. **数据有效性**:用户应用程序负责确保其数据包的有效性。IP核不会检查数据包是否正确形成,因此用户需自行验证数据包的正确性,以避免传输格式错误的TLP。
3. **内核自动传输的数据包类型**:
- 对远程设备的配置空间请求的完成响应。
- 对内核无法识别或格式错误的入站请求的错误消息响应。
4. **用户应用程序负责构建的数据包类型**:
- 对远程设备的内存、原子操作和I/O请求。
- 对用户应用程序的请求的完成响应,例如内存读取请求。
5. **配置空间请求处理**:当配置为端点时,IP核通过断言tx_cfg_req(1位)通知用户应用程序有待处理的内部生成的TLP需要传输。用户应用程序可以通过断言tx_cfg_gnt(1位)来优先处理IP核生成的TLP,而不考虑tx_cfg_req的状态。这样做会阻止在用户交易未完成时传输用户应用程序生成的TLP。
6. **优先级控制**:另一种方法是,用户应用程序可以在用户交易完成之前通过反断言tx_cfg_gnt(0位)来为生成的TLP保留优先级,超过核心生成的TLPs。用户交易完成后,用户应用程序可以断言tx_cfg_gnt(1位)至少一个时钟周期,以允许待处理的核心生成的TLP进行传输。
7. **Base/Limit寄存器处理**:IP核不会对Base/Limit寄存器进行任何过滤,确定是否需要过滤的责任在于用户。这些寄存器可以通过配置接口从Type 1配置头空间中读取。
8. **发送TLP**:为了发送一个TLP,用户应用必须在传输事务接口上执行以下事件序列:
- 用户应用逻辑断言s_axis_tx_tvalid信号,并在s_axis_tx_tdata[63:0]上提供TLP的第一个QWORD(64位)。
- 如果IP核正在断言s_axis_tx_tready信号,则这个QWORD会立即被接受;否则,用户应用必须保持呈现这个QWORD,直到IP核准备好接收为止。
通过上述详细的介绍可以看出,基于64位事务层接口的AXI4-Stream接口设计为PCI Express IP核提供了高效的数据传输机制,尤其是在处理大数据量传输时具有显著优势。用户应用程序需要遵循特定的指导原则,以确保与PCI Express集成块的有效交互,并管理出站数据包的传输,同时处理与配置空间相关的请求。