基于Xilinx公司硬IP核的方法实现PCI Express总线接口及数据的传输设计.docx

上传人:lao****ou 文档编号:841756 上传时间:2024-06-17 格式:DOCX 页数:8 大小:164.08KB
下载 相关 举报
基于Xilinx公司硬IP核的方法实现PCI Express总线接口及数据的传输设计.docx_第1页
第1页 / 共8页
基于Xilinx公司硬IP核的方法实现PCI Express总线接口及数据的传输设计.docx_第2页
第2页 / 共8页
基于Xilinx公司硬IP核的方法实现PCI Express总线接口及数据的传输设计.docx_第3页
第3页 / 共8页
基于Xilinx公司硬IP核的方法实现PCI Express总线接口及数据的传输设计.docx_第4页
第4页 / 共8页
基于Xilinx公司硬IP核的方法实现PCI Express总线接口及数据的传输设计.docx_第5页
第5页 / 共8页
亲,该文档总共8页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《基于Xilinx公司硬IP核的方法实现PCI Express总线接口及数据的传输设计.docx》由会员分享,可在线阅读,更多相关《基于Xilinx公司硬IP核的方法实现PCI Express总线接口及数据的传输设计.docx(8页珍藏版)》请在第一文库网上搜索。

1、基于Xi1inx公司硬IP核的方法实现PCIExpress总线接口及数据的传输设计现代测控系统和通信领域对数据传输速率的要求越来越高。相比PC中其他技术的发展,总线技术的发展显得相对缓慢,总线性能已经成为制约系统性能发挥的瓶颈。传统的ISA,EISA总线等已无法适应高速数据传输的要求,PCI总线技术虽然经过了不断的修正和发展,但是由于它固有的缺陷,使其应用领域受到限制。PCIExpress总线以其优异的性能和低廉的造价引起了业界的广泛关注,具有广阔的应用前景。本文介绍PC1Express总线接口的设计方法,并实现一个基于IP核的PC1Express总线接口。1PCIExpress总线简介PCI

2、Express总线2是InteI公司于1997年提出的第3代I/O技术,是种全新的串行总线技术。与PC1总线相比,PCIExpress总线具有以下特点:(1)在数据传输模式上,PCIEXPreSS总线采用双工串行传输模式,一条PCIExpress通道由2对1VDS差分线对组成:一对负责发送,另一对负责接收,单向数据传输速率为2.5Gb/s。(2)具有很好的灵活性,一个PC1Express物理连接可以根据实际需要配置成XI,2,4,X8,16,32个并行的数据通道,满足不同设备之间通信带宽的要求。(3)在软件层与PC1总线完全兼容,原有PC1总线的驱动程序可以完全移植到PC1Express总线架

3、构的系统中。(4)串行连接采用自同步时钟技术,时钟内嵌于串行数据的8bit/10bit编码中,可实现数据传输率的自适应调整。PCIExpress协议定义了3层结构:物理层,数据链路层和事务层。每个层次按照协议中规定的内容,完成相应的数据处理功能。2 PCIExpress接口设计方法PCIExpress总线的接口的设计方法大体有2种:使用专用接口芯片或者使用可以实现PC1Express物理接口的可编程器件。专用接口芯片实现了PCIExpress总线的物理层、数据链路层和事务层的控制逻辑。例如,PEX8311是P1X公司推出的第1款本地总线到PC1ExpressX1的桥接芯片3-4,符合PC1Ex

4、press1.0规范,支持自动极性反转、CRC校验、链路设备电源管理,具有直接主模式、直接从模式、DMA和数据预取等功能。使用PEX8311实现PC1Express接口,用户仅需实现相对简单的本地总线接口即可,降低了开发难度。但是这种方法受限于专用接口芯片的性能,用户无法根据自身的需求提升接口的性能。可编程器件设计方案的基本思想是由FPGA实现PC1Express的上层电路,利用Phi1iP公司或公司提供的PHY(物理层)器件实现物理层接口,通常需要购买XiIinX公司或要tera公司提供的IP核与PHY器件配合使用。在有些FPGA产品中,集成有PC1Express接口的硬核模块,可以采用相应

5、的产品实现PC1Express接口的功能。例如,Xi1inx公司VirteX-51XT/SXT/FXT/TXT系列FPGA器件中,集成有PC1Express硬核端点模块,能够自动完成数据链路层和物理层的数据处理功能。采用这种方法,用户只需要设计处理事务层数据包的逻辑电路即可。还可以根据自己的需求,设计具有特殊功能的电路结构,发挥接口的性能,但是这种方法的开发难度较大,开发周期相对较长。3 PCIExpress接口实现本设计采用Xi1inx公司VirteX-5系列xc5v1x30t芯片,使用该芯片内部的PC1ExpressEndpoint硬核端点模块,设计了处理事务层数据的逻辑电路,实现了计算机

6、内存与用户逻辑之间数据的正确传输。其中,控制状态机的设计和DMA控制器的设计是重点、难点,下面详细介绍具体的实现过程。4 .1接口电路的设计在接口电路中,PCIExpress物理层和数据链路层的电路采用XiIinX公司的PC1ExpressEndpointB1ockp1usv1.5硬核端点模块实现,能够有效完成接口物理层和数据链路层的数据处理功能,提供给上层一个事务层数据接o上层电路主要由5部分电路构成,分别是核配置与辅助控制模块、数据发送控制器、数据接收控制器、数据输入FIFO和数据输出FIFO,如图1所示,最终提供给用户FIFO类型的用户逻辑接口。greEadpom:B1ockP1m硬楂冷

7、点模块PIO_TO_CTR1核配与情6控制模块、忠8、於RXengA敬疝收控制器EP_TXenpae数.发送控制器FIFQJtaraout雷怡出FIFO=OFffO_daum数据G入FIFoS1PCIE工PIeSS接口电路结N核配置与辅助控制模块与硬核端点模块紧密联系,完成硬核端点模块中通道宽度、时钟频率、设备号、版本号、存储空间类型与大小等一系列可控制参数的配置与一些基本功能的控制。硬核端点模块提供的事务层数据接口为64bit的数据发送接口和64bit的数据接收接口以及控制数据发送和接收的一系列控制信号接口。数据接收控制器将收到的事务层包进行解析,根据数据包的类型进行相应的处理。数据发送控制

8、器用于将所要发送的数据按照事务层包的格式进行封装后,发送到硬核端点模块。数据输入FIFO和数据输出FIFO共同构成了数据通道,均为双端口FIFO,用于连接PC1Express接口和用户逻辑。数据输入F1Fo用于保存从接口收到的数据;用户逻辑电路输出的数据保存到数据输出FIFO中后发送到接口电路。3.2控制状态机的设计数据发送控制器和数据接收控制器负责事务层数据的封装和解析工作,是本设计中的关键电路模块。这两个模块均采用有限状态机方式进行设计,下面详细介绍这2个模块状态机的设计。接收控制器从硬核端点模块中收到事务层包(T1P),根据T1P的格式,第56bit”第62bit为表示数据包类型的标志位

9、。按照标志位中的信息,对T1P的内容进行解析,进行相应的数据操作。所设计的状态机的状态转换图如图2所示,各个状态的说明如表1所示。RX_RST_STATERX_MEM_RD32.DW1DW2RX-MEMCR32_D*IDW2RX_IO_WR_DWIDW2RX_MEM_RD64_DW1DW2RX.MEM.WR6DWIDW2RX_MEM_WR64_DW3RXWAITSTATE表1接收控制器状态说明状态说明状一机空闲状态存储器读操作,32bit模式,收到第I和第2个双字存储器写操作,32bit模式,收到第1和第2个双字I。写操作,收到第1和第2个双字存储器读操作,64bit模式,收到第1和第2个双字

10、存储器读操作,64bit模式,收到第1和第2个双字存储找写操作,64bit模式J1i钟磐3个冏充状一机等待其他操作完成夕Z系统复位后,接收控制器状态机处于空闲状态,等待接收数据包,收到T1P后跳转到相应的状态进行存储器或者I/O的读写操作。在操作过程中,对存储器或者I/O的状态进行监控,如果目标设备没有准备好,则进入等待状态直到目标设备就绪。在存储器或者I/O的读写操作完成后,状态机又返回空闲状态。在各个状态中接收控制器产生相应的控制信号完成数据的写入以及对发送控制器的操作。与接收控制器状态机相比,发送控制器状态机相对简单,只有3个状态,状态转换图见图3,各个状态的说明见表2。表2发送控制器状

11、态说明状态说明TX,RST.STATE状态机空闲状态TX.CP1D.QW1杓找荷数步?发送名方一TX.CP1.QW1无栽荷数”/乂隹寿系统复位后,发送控制器状态机处于复位状态。当从接收控制器收到发送数据的命令后,如果需要发送的是一个载荷数据,则将从存储器或者I/O中取出的载荷数据填充到T1P中的相应位置后发送到端点模块;如果需要发送的只是一个响应或者标志信息,则直接封装成一个T1P发送到端点模块。3.3DMA控制器的设计由于串行总线结构与传统的并行总线结构不同,因此存储器的读写操作都是以数据包的形式传输。普通的读写操作一次最多只能进行64bit数据的读写,使得总线多数时间处于等待状态,严重影响

12、了PC1Express总线的数据传输速率。本文设计出相应的DMA控制器,实现了DMA方式的数据传输。DMA控制器的主要电路结构为14个与DMA操作相关的寄存器,通过对这些控制寄存器的读写,设定DMA方式数据读写操作的地址范围和数据大小,完成DMA数据读写操作。这些寄存器的定义和功能描述如表3所示。表3DMA控制寄存器说明编号名称说明0*复位寄存器1#控制寄存器2#写地址寄存器3#写包长度寄存罂4#写包数量寄存器5#保部用于复位DMA控制器Obit用于自动DMA写操作,8bit表示DMA写操作完成,16bit用于目动DMA读掾作,24bit表示DMA读操作完成设置写数抠的起始地址设置写数据包的大

13、小设置写数据包的数量6#保留15谈地址寄存器读包长度寄存器读包数量寄存器写性能寄存器读性能寄存器N二一一珞成状态寄存器读完成数据检酒寄存器读完成数据大小寄存器中断服务及中断控制寄存器设置读数据的起蛤地址设置帙型的大小磔总数前包的数量只读,检测写操作性能只读,检溜读操作性能只读,可读出DMA读掾作完成时有关寄存器的状态只读,可读出DMA读操作完成时的豉后一个数据只读,可读出DMA读操作企成时传送数据的多少用于椅涌、设置和右。XiA操件的中曲在设计了上述14个DMA控制寄存器后,接收控制器和发送控制器的状态机也要进行相应的调整,以适应DMA操作的需要。在接收控制器状态机中加入了2个状态,分别用于接

14、收数据传输过程中的第1个DMA数据包和剩余的DMA数据包。在发送控制器状态机中也加入了2个状态,分别用于发送数据传输过程中的第1个DMA数据包和剩余的DMA数据包。为了达到尽可能高的数据传输速率,在接收和发送过程中都使用了64bit数据传输模式。在设计了如上所述的DMA控制器后,PCIExpress总线接口就可以用DMA方式进行数据的读写操作。进行DMA读/写操作的具体过程如下:(1)写中断控制寄存器,打开中断;(2)写读/写地址寄存器,设置读/写数据的起始地址;(3)写读/写包长度寄存器,设置读/写数据包的大小;(4)写读/写包数量寄存器,设置读/写数据包的数量;(5)写控制寄存器,启动DM

15、A读/写操作;(6)等待中断服务寄存器发出中断;(7)收到中断,读中断服务寄存器;(8)写中断控制寄存器,关闭中断。4仿真与性能测试使用Yeri1og语言编写代码头现本设计,使用ModeISinISE6.2g对该设计进行功能仿真。从数据写入FIFO的仿真波形图中可以看到,未采用DMA方式时,每次只能够将一个数据写入到FIFO中,在2次写操作之间存在较长的等待时间;采用DMA方式时,可以根据用户的设置连续写入多个数据,消除了2次操作之间的等待时间,大大提高了数据传输速率。自行设计了采用XiIinX公司xc5v1x30t芯片的PC1ExpressX4接口数据传输卡;使用XiIinX公司的ISE9.2对设计代码进行综合和布局布线,生成配置文件,下载到xc5v1x30t芯片中;使用DE11Precision690工作站,在WineioWS环境下编写测试程序对数据传输卡PC1Express接口数据传输的速率进行测试。采用多种数据量对PCIExpress接口进行DMA方式读数据测试,得到的结果如图4所示,硬件层数据传输速率稳定在840Mb/sO2DMA读操作傲据传输A系统)OIOO200500400500600

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 工作总结

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服