基于IP核的PCI接口与具体功能的FPGA芯片设计

基于IP核的PCI接口与具体功能的FPGA芯片设计,第1张

摘 要:采用IP核的设计方法,将外设组件互连标准(PCI)总线接口与具体功能应用集成在一个FPGA上芯片, 提高了系统的集成度。在对PCI IP核进行概述的基础上,介绍了IP核的设计方法,实现了PCI总线接口,并设计DMA 控制器解决了接口和主机间的数据传输瓶颈问题,最后说明了驱动程序的设计方法。通过在PCI机箱的实验测试,设计在功能和时序上均符合PCI技术规范,而且硬件工作稳定可靠,达到预期目标。

0引言

外设组件互连标准(PeripheralComponenTInterconnecTIon,PCI)是一种由Intel公司1991年推出的用于局部总线的标准。PCI总线位宽32bit工作频率33MHz,数据速率132Mbps,同时支持总线宽度扩展到64bit, 工作频率66MHz,数据速率528Mbps。PCI总线具有即插即用,中断共享,高速 数据传输等功能 [1,2] 。

PCI总线系统可以满足通信与网络的需求,在 嵌入式系统中具有广泛的应用前景。尤其是很多其 他的总线,如PXI和PCIE都是由PCI总线发展而来的。嵌入式系统可以在PCI总线上安装各种扩展卡以实现不同的功能。总线的定义对协议、时序、负载、电器性能和机械性能都有严格的规定,充分保证运行的可靠性和兼容性。

PCI总线接口的主要完成不同信号环境间的转换,使得数据传输可以顺畅进行。

1PCI总线接口

PCI总线接口的实现方法有很多种。设计者可 以根据实现的难度, 成本以及板卡的尺寸限制等实际情况加以选择[3,4]

1.1 专用接口芯片
如PLX公司的PCI9054、 PCI9656等。采用这些芯片的优点是可靠性高,设计者可以避开复杂的PCI 总线接口关系。缺点是用户可能只是用到部分功能, 会造成一定的资源浪费,并且设计上也缺乏灵活性。

1.2 专用IP核
优点是开发速度快,灵活性好,缩短开发周期。缺点是IP核价格昂贵。例如Xilinx公司的LogiCore。

1.3自行开发
CPLD或FPGA自行设计。优点是可以灵活实现PCI功能。节省系统的逻辑资源,方便系统升级。缺点是需要详细了解PCI总线协议,实现难度大。

2 XilinxPCIIP核概述

PCIIP核对FPGA设备是预先实现和经过验证的模型。在FPGA芯片内的管脚定义和资源的相关位置是定义好的,利用用户约束文件控制关键路径以确保设计的PCI接口的时序满足要求。用户通过选择合适的芯片和用户约束文件,包括管脚定义约 束和时序约束, 以满足运行在33/66MHzPCI时钟下的时序要求。每种芯片和封装都有特定的时序约束来保证接口的性能,所以用户约束文件最好是在IP核推荐文件的基础上增加用户部分的时序约束。

此IP核文件还提供仿真测试文件,用户可以改 变参数和时序, 完成应用设计后对顶层文件进行仿真验证设计功能的正确性。

其主要的功能是将左边复杂的PCI接口信号转换成右边的用户接口数据和控制信号,完成用户设备与PCI总线的信息传递。具体应用时只需要关心 用户侧的信号, 具有很强的灵活性。根据用户性质的不同,用户侧的信号分为相对简单的2组独立的Target(被动)模式和IniTIator(主动)模式的信号。用户根据实际需要来确定应用哪种模式,并选用相应控制信号和状态机信号作为接口。

3 应用说明

3.1 Target *** 作
PCIIP核支持Target模式下的单个数据传输和多个数据传输。而且只要涉及到IniTIator模式的数据传输就必须用到Target模式的接口,反之是不需要的。下面对Target模式下用户侧重要信号进行简 单介绍[6] 。
ADDR_VLD:地址总线上的地址有效;
S_DATA_VLD:ADIO_OUT总线上的数据有效;
S_WREN:‘1’标志Target写,‘0’标志Target读;
S_CBE[3:0]:总线命令和字节有效;
BASE_HIT[7:0]:基地址寄存器译码;
S_READY:数据传输准备好; S_DATA:设备处于数据传输状态。

3.2 Initiator *** 作
IP核作为PCI总线主设备进行Initiator写 *** 作时, DMA控制器与Initiator控制逻辑模块共同将FIFO缓存输出的数据通过DMA *** 作发送到IP核 的本地端;Initiator读 *** 作时, Initiator控制逻辑模块将IP核本地端的数据通过DMA *** 作发送到FIFO缓存的输入端。下面对Initiator模式下用户侧重要信号进行简单介绍。
REQUEST:用来请求Initiator传输;
M_DATA_VLD:总线发生数据传输;
M_SRC_EN:数据指针增加;
M_READY:准备好传输数据;
M_ADDR_N:表示当前 *** 作的地址;
M_DATA:表示数据传输的状态。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2607248.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-09
下一篇 2022-08-09

发表评论

登录后才能评论

评论列表(0条)

保存