基于FPGA的PCIE接口设计
OS Config
S/W
Transaction
Data Link
图1 PCI Express 层次体系结构
Future speeds and encoding Technologies Only impact physicallaye Physical Point-to-point,serial,differential Data Integnty Packet-based Protocol PCI Software/Driver Model PCI PnP Model(int,enum,config) No OS Impact
1.2 课题研究的背景及意义
随着计算机性能、功能和带宽的日益增长,CPU 的时钟频率以及计算机外围接口的带宽成指数地增长,这导致处理器的数据吞吐量也相应的增加。海量存储,卫星通讯,高速数据采集与记录现以KMbps为量级,计算机系统对带宽的要求和扩展性的要求已经超越了第二代总线技术,作为第二代总线标准代表的 PCI和 PCI-X 总线,其局限性越来越明显,尤其在带宽和扩展性方面,已经不能满足系统日益增长的需求。PCI Express 总线应运而生,其先进的系统架构、灵活的扩展性和超高的带宽,使得 PCI Express 迅速适应高速及实时性要求比较高场合,并且会在未来几年内成为总线领域的佼佼者。
1.3 论文研究的主要内容与意义
本文结合Xilinx Virtex6型号的FPGA芯片的PCI Express接口高速数据传输卡,实现计算机能够通过软件读写PCIE板卡、板卡能够向计算机发送中断、与计算机内存之间数据传输率大于1GB。选用Xilinx公司的ISE软件并采用Verilog硬件描述语言可对该IP核进行行为级描述和逻辑综合,同时可将生成的网表文件设计实现,包括逻辑综合及布局布线。具体设计过程中,需要先加载IPCore,同时要取得IPCore的使用授权。配置IP Core, 需要确定设备的生产厂商Vendor ID,设备编号Device ID,类型Class Code, I/O方式的地址存储器空间BAR,有效载荷大小等信息。在Core Generation之后,根据IPCore提供的文件加载各模块的源文件。利用Modelsim进行仿真,Windriver烧录驱动程序,实现PCIE卡能够与计算机之间进行大数据量传输和中断。
2
基于FPGA的PCIE接口设计
大数据率的传输,可以通过计算机之间的大数据率的传输,同时给予FPGA的IPCore设计PCIE接口,方便灵活,便于修改,基于WinDriver编写的上位机程序,使用MFC语言进行编程,语法简单,功能多样,便于修改。基于中断方式DMA传输,可以实现更快的传输速率,更大的传输带宽,因为使用FPGA芯片,可以外挂很多的光纤口,内存等,可以通过该板子实现与数据采集板之间的连接,从而组成一个由数据采集处理,并最终上传到计算机的完整系统。
3
基于FPGA的PCIE接口设计
第二章基于FPGA的PCI-E高速接口设计
2.1系统总线的设计概念
PCI Express作为一种标准总线协议,本身具有很多优势,但同样也带来了很多需要面对的挑战。对于任何一种新的协议,设计者都是在没有经验的前提下进行设计,所以设计起来很复杂,与此同时,面临着设计复杂,成本等因素的前提下,还需要追求一种快速而且简单的方法在系统中实现PCIE。
(1)提高数据速率带来的设计困难。高速链路设计要求设计者具有很强的高速模拟设计技能,当把设计速率达到1Gbps以上时,很多设计都需要进行重大的改变,例如I/O缓冲器,同时高速率时处理数据所需要的数字逻辑也是不一样的,编码方案和补偿逻辑使物理层与采用较低速率协议的物理层也有非常大的不同,以上这些都是没有任何研发经验可以参考的,需要设计者从零开始。
(2)高数据速率带来的时钟问题。在高数据速率传输中,会产生很多时序裕量的紧张,此时就需要高度的时钟稳定性做保障,这个时候,设计好时钟数据恢复电路就显得十分重要,因为基于数据包的流传输要严格遵循数据流的传输顺序,如果时钟出现混乱,就会产生错误。 (3)高数据率带来的制版问题。当数据速率达到Gbps时,PCB的制版难度会增大,PCB板上的时钟信号不仅要保持稳定性,还要避免相互干扰,PCB板布局及走线技术就显得十分关键,需要避免传统的手工制作板子,使用机械制版。
(4)接口器件短缺。在一种新的协议下,还要完成很高的数据率,几乎是没有现成的接口器件来实现的,所以我们需要从理论出发,找到理论中可能实现的器件,并且把器件变成现实,器件不仅要具备在一定的工作电压和温度范围内的可靠性,更需要具有连接多种设备的兼容性等。
在近些年的发展中,FPGA供应厂商开始使用吉比特收发器模块等硬件IP来实现高数据率的高速I/O接口,例如,Altera公司的Stratix IIGX以及Xilinx公司的Virtex 4、Virtex 5等芯片。在这些吉比特收发器模块中,可以再FPGA中实现高速的串行协议,包括PCI Express,串行Rapid IO、千兆以太网等。 我是已xilinx公司的virtex6 FPGA板卡为例,
[3]
4
基于FPGA的PCIE接口设计
2.2 FPGA内置PCIE硬核
Xilinx FPGA提供Virtex-6端点解决方案PCI Express,配置Virtex-6 FPGA作为PCIE FPGA集成块,包括额外的逻辑为作为PCIE创建一个完整的解决方案。 这对作为PCIE Xilinx块包装器简化了设计过程,减少投放市场的时间。许多易用的特性和最佳配置端点和根端口应用程序可以没有额外的成本。此解决方案可用于通信、多媒体、服务器和移动平台,使应用程序如高端医学影像,图形密集的视频游戏,DVD质量视频流在桌面上和10个千兆以太网接口卡。 这个核心结合其他Xilinx连接性解决方案帮助客户保护他们的投资在旧技术,允许无缝衔接其他标准和专用接口。
PCIE硬核可以向使用者提供以下几个功能,第一:单字读写,当在DMA读写过程中,如果数据长度寄存器定义为1个32bit,此时会变为单字读写操作,所以单字读写是DMA读写中的一部分。第二:DMA读写功能。第三:中断功能。如果用这个内核实现PCIE的DMA读写,仅仅这样是不够的,必须在硬核以上Package一些应用,在这个应用中要有,TX逻辑和状态机,中断逻辑,RX逻辑及状态机也是必不可少的。详细内容见下图。
1) EndpointforPCIE :这个模块式FPGA的硬核模块,不仅仅负责与外边的PCIE设备进行通信,还负责与TX、RX模块进行64bit并行与高速串行的转换。
2) EP_TX:,执行写操作,状态机以及读操作中存储器请求状态机的实现并将TLP中的包头和数据打包,以64bit并行结构传输给硬核。
3) EP_RX: 负责读操作接收完成数据包的状态机的实现以及上位机单字读写FPGA的状态机的实现。
5
基于FPGA的PCIE接口设计
4) EP_MEM:映射为PCIE空间的几个BAR地址空间。
5) PIO_INT:一次读写DMA结束后FPGA向上位机启动一个MSI消息中断或者虚拟INTx中断。
Ipcore的生成步骤:如下图,毕业设计中,我选用的Lane Width是X8的,传输速度是2.5GT/S,并设置了两个Bar,Bar0和Bar1,两个Bar的大小都是128Bytes的。
6
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于FPGA的PCIE接口设计(2)在线全文阅读。
相关推荐: