赞
踩
补发以下以前学习PCIe总结的知识。
PCIe学习笔记系列:
PCI Express总线是为了取代PCI总线的第三代I/O技术,但是对于系统软件,PCIe是向前兼容PCI总线的,理解PCIe总线必须建立在深刻理解PCI总线的基础志上,这里由于我也是初学者,不深入展开。
为了完成XDMA的测试,有一些基本的概念就可以,如果需要后面的开发应用,就需要系统的学习一下。
数据报文首先经过事务层(Transaction layer),数据链路层(data link layer),和物理层(physical layer),最终发送出去。接收则相反,这里面每一层都会对数据进行处理。我们只是调通DMA的话暂时不用关注这个,但是如果要应用则必须深入学习。
各层的包结构:
现在知道我们的板卡需要作为拓扑网络中的一个Endpoint与CPU进行通信。
在Vivado IDE 中的 IP Catalog 中搜索 PCIe,有三个结果:
这三个Ip核对应的产品手册分别为:
7 Series FPGAs Integrated Block for PCI Express 是一个可靠的、高带宽的、可扩展的串行互连构建块。这个IP 核简化了设计过程,缩短了上市时间。它是可配置的Endpoint和Root Port应用。
这个IP核是实现最底层的PCIe数据收发的模块。
AXI Memory Mapped to PCI Express IP核 提供了一个【AXI4用户自定义接口】和【Integrated Block for PCI Express】之间的接口。IP 核提供了AXI4内嵌系统到PCI Express 系统之间的转换。将AXI4 内存读写转换成PCIe 的事务层数据包( Transaction Layer Packets ,TLP ),以及将PCIe内存读写的TLP包转换成AXI4接口控制。
结构:
可以看出,这个IP核实在底层核的基础上加上一些转换的桥模块,实现AXI4的内存映射功能。
Xilinx DMA/Bridge Subsystem for PCI Express(PCIe)利用PCI Express 2.1 或 3.x 集成块实现了高性能、可配置的Scatter Gather DMA。IP提供了可选的AXI4或AXI4-Stream用户接口。
结构:
可以看出DMA Subsystem fpr PCIe是在一个配置为Endpoint的Integrated Block for PCI Express IP 核的基础上加上一些实现DMA操作的模块。外围的很多功能模块都已经做好直接用就行,如果自己在Integrated Block for PCI Express IP 核的基础上开发一个XDMA应用。我们应用的时候注意,这个IP核已经把TLP相关的寄存器读写事务解析过了,与我们用户逻辑直接使用AXI4 或 AXI4-Stream 接口连接。关于AXI4接口,当然需要提前有个概念,所以我也是提前去稍微学习了一下:AXI4协议学习:架构、信号定义、工作时序和握手机制
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。