Xilinx PCI Express核总线接口Master DMA设计与实现
- UID
- 871057
- 性别
- 男
|
Xilinx PCI Express核总线接口Master DMA设计与实现
Xilinx公司Virtex-5/6/7系列FPGA提供了PCIE的IP核,在核中固化了物理层和数据链路层的相关设计,向用户开放事务层接口,在进行PCI-Express相关设计时,用户只需要配置相关参数来完成物理层和数据链路层的设计,从而只专注于事务层设计与开发,缩短了产品的研发周期。
DMA采用第一方DMA则完全由接口卡上的逻辑电路来完成,与快取内存结合在一起,提高了数据的存取及传输性能。使用Verilog HDL语言编写,实现了处理器内存与用户逻辑之间数据的高效传输。
釆用Xilinx开发板ML555和ML605,进行HOST内存与FPGA之间的数据传输,实际测试中,采用Windows 2000/XP/Win7操作系统,Windriver PCIE驱动,性能指标如下:
x4通道,PCIE Gen1 2.5Gbps/lane:FPGA传输数据到HOST内存的速率稳定后达到0.85GB/s达到理论带宽的85%;HOST内存传输数据到FPGA的速率稳定后达到0.81 GB/s,达到理论带宽的81%。
x8通道,PCIE Gen1 2.5Gbps/lane:FPGA传输数据到HOST内存的速率稳定后达到1.6GB/s达到理论带宽的80%;HOST内存传输数据到FPGA的速率稳定后达到1.5 GB/s,达到理论带宽的75%。
x4通道,PCIE Gen2 5.0Gbps/lane:FPGA传输数据到HOST内存的速率稳定后达到1.65GB/s达到理论带宽的82%;HOST内存传输数据到FPGA的速率稳定后达到1.57 GB/s,达到理论带宽的76%。
技术交流和合作邮箱:neteasy163z@163.com
DMA方式硬件结构如图所示,采用自顶向下设计方法,将FPGA内部逻辑划分为7个模块。
(1)PCIE核接口模块:该模块完成与Xilinx PCIE核接口信号的对接及对PCIE核的初始化配置
(2)发送引擎模块:该模块按照PCIE协议将待发送的数据和寄存器信息封装成事务包传输到PCIE核接口模块
(3)接收引擎模块:该模块按照协议将从PCIE核接口模块接收下来的事务包解封装,并根据TLP头标中的信息将数据分流,分别写入接收控制寄存器或是接收FIFO中
(4)DMA控制模块:DMA控制寄存器由中断寄存器、接收控制寄存器和发送控制寄存器构成
(5)输入输出缓存模块:两个独立的FIFO数据通道,一个用于PCIE发送引擎模块到用户逻辑模块传输数据时的缓存(称为发送FIFO);另一个用于用户逻辑模块到PCIE接收引擎模块传输数据时的缓存(称为接收FIFO)
(6)用户逻辑模块:配置和读取DMA控制寄存器及控制数据的输入输出。用户逻辑通过读取寄存器的值来控制中断和数据的传输
(7)用户接口模块:提供用户简单的数据接口通道和控制信号,屏蔽复杂的控制操作并简化用户操作 |
|
|
|
|
|