FPGA|CPLD|ASIC论坛
直播中

xianuser2012

12年用户 274经验值
擅长:可编程逻辑
私信 关注
[经验]

NVMe高速传输之摆脱XDMA设计26: 驱动器设计

驱动器负责 TLP 事务与接口信号的转换, 驱动器的程序结构如图 1 所示。 在本IP中使用的接口为 PCIE 集成块的接口, 分别是 cfg_mgmt 接口、axis_rq 接口、axis_rc接口、 axis_cq 接口、 axis_cc 接口。

图 1  驱动器的程序结构图  

cfg_mgmt 接口仅用来传递 RC 端发起的 PCIe Type0 配置事务, axis_rq 接口是 RC端发起 TLP 请求的接口, axis_rc 接口是 RC 端接收 TLP 请求响应的接口, axis_cq 接口是 PCIe 下游设备发送 TLP 请求的接口, axis_cc 接口是 PCIe 下游设备接收请求响应的接口。 对应接口的接收器在从接口接收到请求时, 首先提取 TLP 报文头部信息到 TLP 事务类中, 当请求类型为写请求时, 将数据存入 TLP 事务类中, 否则等待下一个接口事务。 驱动器在接收到下游设备的 TLP 包后, 根据包类型选择接口驱动器,再将 TLP 事务类中的数据结构整合为对应接口的数据形式发送。


更多回帖

发帖
×
20
完善资料,
赚取积分