|
驱动器负责 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 事务类中的数据结构整合为对应接口的数据形式发送。
|