基于EP2SGX系列FPGA的PCI接口设计

基于ep2sgx系列fpga的pci接口设计
0 引 言
在现代雷达数据处理系统和其他应用系统中,传统的isa、eisa等总线已逐渐无法适应高速数据传输的要求。而pci局部总线以其高性能、低成本、使用方便和适应性等优点成为大多数系统的主流总线。其中常用的33 mhz、32位的pci总线尖峰传输速率为132 mb/s。pci总线接口相对其他总线接口来说是比较复杂的,它有着严格的同步时序要求,且为了实现即插即用和自动配置,pci总线的配置空间有许多配置寄存器需要设置。本文在简要介绍pci总线及其特点的基础上,介绍了如何利用fpga设计pci总线的接口电路,并给出了设计pci总线接口时应注意的一些问题。
1 pci总线与数据传输规范
pci总线信号可划分为如图1所示的几种类型。其中64位总线扩展信号、资源锁存信号和边界扫描信号是可选的。
pci总线上的数据传送是基于猝发传送的机制,一个猝发传送包括一个地址相和一个或多个数据相。基本的pci传输由frame#、irdy#和trdy#信号控制。当数据有效时,数据资源需要无条件设置xrdy#信号(写操作为irdy#,读操作为trdy#)。接收方可在适当时间发出它的xrdy#信号。frame#信号有效后的第一个时钟上升沿是地址周期的开始,此时传送地址信息和总线命令。下一个时钟上升沿开始一个(或多个)数据周期,当irdy#和trdy#同时有效时,数据在主、从设备之间传送。在此期间,可由主设备或从设备分别利用irdy#和trdy#的无效而插入等待周期。pci总线传输包含读、写和中止3个内容,图2和图3所示的时序图显示了pci总线读、写操作的传输过程。
2 设计考虑及芯片选择
目前pci接口主要有2种实现方式:使用专用接口芯片和采用可编程器件。专用芯片如plx公司的9050等,专用芯片可以实现完整的pci主控模块和目标模块接口功能,将复杂的pci总线接口转换为相对简单的用户接口。缺点是缺少灵活性,用户可能只用到了部分的pci接口功能,造成了一定的逻辑资源浪费。采用fpga的优点在于其灵活的可编程性,首先pci接口可以依据插卡功能进行最优化设计,而不必实现所有的pci功能,可以节约系统的逻辑资源。其次可以将pci插卡上的其他用户逻辑与pci接口逻辑集成在一个芯片上,实现紧凑设计。再者当系统升级时,只需对可编程器件重新进行逻辑设计,而无需更新pcb版图。
pci总线是同步总线,时序要求比较严格,比如:tval最大为11 ns,tprop最大为10 ns,tsu最小为7 ns,th为0 ns,此外,pci总线接口还需要一定数量的宏单元和i/0引脚。在本设计中,为了同时实现光纤数据传输等其他的逻辑功能,选用了altera公司stratixiigx系列中型号为ep2sgx90ef1152的一款fpga芯片。该芯片主要性能如下:片内90 960个逻辑单元;4.5 mb的ram资源;支持12路高速串行收发器通道,每路传输速率高达6.375 gb/s;接口电平支持:lvttl、lvds、lvpecl。3.3-v pci等众多i/o标准。ep2sgx系列芯片内部有专门支持pci电气特性的区域(bank),非常适合于pci接口的开发。
3 pci接口设计实现
本设计利用altera公司的quartusil7.2软件和硬件描述语言,采用自顶向下的设计方法进行pci接口的逻辑设计,并利用quartusii软件对设计进行了功能和时序仿真。
设计的具体流程如下:首先从总体上考虑:pci接口作为一个功能模块,嵌入在fpga内部,内侧面向用户逻辑,外侧通过芯片的i/o管脚与pci总线相连。在用户端,需要把复杂的pci总线命令转换为便于用户使用的类似isa总线的命令格式,把地址线与数据线分离,并产生单独的读写控制信号。其次,根据总体要求,进行顶层设计和内部模块划分。最后,对具体的功能模块用软件编程实现并进行功能仿真。
本设计中pci接口的总体框图如图4所示。由图4可知,pci接口主要由地址/命令锁存和译码、内部通信、外部通信和总线状态机、中断处理等模块组成。
3.1 地址/命令锁存和译码
由于pci总线为地址和数据复用型总线,在使用中需将地址和数据进行分离,首先要对pci总线上的32位地址/数据总线锁存。译码是对来自主机的pci总线命令信号cbe[3..0]和idsel信号进行识别,并相应地向内部逻辑发出配置空间读写操作、i/o读写操作、存储器读写操作等信号。
3.2 外部通信
外部通信接口主要完成对pci总线的应答,并发出相应的信号。对于渎写操作,接口发出devsel#信号响应pci的frame#信号,完成握手。pci协议规定了在交易期间对地址/数据总线和命令/字节使能总线进行奇偶校验。读交易期间,接口被要求驱动par信号线;写交易期间,目标将计算ad[31..0]和cbe[3..0]上的奇偶性,并把perr信号送给pci。
3.3 内部通信
内部通信接口主要产,丰面向用户端,便于用户使用的一信号,包括复位信号、分离的读和写信号、地址总线、32位的数据读写总线。
3.4 总线状态机
该模块足本设计的关键部分,其主要功能是根据pci协议产生总时序来控制总线交易。总线状态机包含的状态主要有总线空闲状态、总线停靠状态、主设备数据传输状态、从设备数据传输状态、配置空间读写状态、目标i/o空间读写状态、主设备读写状态、总线翻转状态、数据传输终止状态等。以上各状态主要依据输入的pcirst、frame#、idsel、cbe [3..0 ]、gnt#、irdy#、trdy#、stop#等信号变化进行状态转换。
3.5 中断处理
本模块主要实现各种外部中断源的输入处理、中断允许寄存器和中断状态寄存器的控制和管理、inta#信号的输出处理等。
4 工具软件在pci总线调试中的使用
在板卡的调试过程中使用了windriver软件,该软件是美国jungo公司出品用于编写驱动程序的一种工具,是主要针对pci、isa、usb的一种开发工具。该软件对于调试pci板卡很方便。用户不需要复杂的编程就能控制pci没备进行读写操作,从而在硬件刚设计调试时,就能测试板卡性能的好坏,可测试的功能具体包括venderid、device id的识别、基地址的分配、中断的分配、i/o端口的读写测试等。
另外,在调试过程中还利用了quartus软件自带的signaltap嵌入式逻辑分析仪软件。该工具软件只需要通过编程电缆将jtag口与调试计算机连接后,便可在线采集各种信号波形,验证逻辑设计是否正确。
5 pci接口板卡设计体会
设计的cpci板卡经过多次试验和测试,验证了配置空间访问、i/o空间访问、外部中断等功能均正确。目前已经成功应用于产品中,下面简要介绍设计开发过程中的一些体会。
(1)pci接口在板卡设计中需注意的问题
①板卡上的一些信号都必须在靠近连接器j1的地方串行放置阻值为10 ω的终端电阻。必须端接电阻的信号有:ad[31:0]、c/be[3:0]、par、frame#、irdy#、trdy#、stop#、lock#、idsel#、devsel#、perr#、serr#、rst#、inta#。电阻应放置在距pci信号连接器引脚15.2 mm以内,以减少信号经过板卡端接后对背板的影响。不需要使用终端电阻的信号有:clk,req#和gnt#。在实际设计中,必须按以上要求将信号进行端接处理,否则pci总线会工作不正常。
②从连接器j1到端接电阻的信号线的长度不应超过15.2 mm。
③从连接器儿经端接电阻到fpga的信号线的长度不应超过38.1 mm。
(2)配置空间的简化设计
pci总线的配置空间为2,56个字节。在设计中,只需对用到的参数进行配置。一般对venderid、deviceid、commandstatus、revisicmid、classcode、headertype、interruptline及interruptpin等寄存器进行配置即可满足大多场合下的使用要求。
(3)总线命令的简化设计
pci规范中规定了16种总线命令,设计者只需埘其中有用的命令进行响应即可。总线命令的简化可减少总线对话的种类,从而可减少硬件没计的复杂性。一般来说,只要有配置空间读写、i/o空间读写及存储器的读写,便可满足一般的使用。
6 结束语
本文介绍了在stratixⅱgx系列fpga上实现pci接口的设计技术,具有较强的灵活性,可以方便地移植到其他可编程器件上,有一定的通用性。随着计算机技术的不断发展,计算机总线在pci总线基础上逐渐发展为更高带宽和频率的pci-x总线和拥有2.5g传输速率的pci-express总线。从当前发展趋势来看,pci-express总线正得到越来越广泛的应用,必将成为下一代的总线标准。

AT32讲堂042 | AT32F435/437 ADC使用指南
单相电压型PWM整流电路原理分析与仿真
清风侠S60ATX机箱高清图集
LED恒流源的电子负载测试电路设计
USB2.0智能读卡器芯片——RTS5169-VEC-GR
基于EP2SGX系列FPGA的PCI接口设计
半导体产业今年起面临库存调整压力 硅晶圆厂获利表现开始走缓
红杉资本与芯片颇具渊源
苹果,华为都这么大牌,为什么我会选择唐麦W5?
关于立锜电机控制技术的介绍
华硕ZenFone2怎么样 值不值得买
安科瑞电力监控系统的应用案例
泰克和Optametra共同挑战解决100G光测量
Xilinx Zynq All Programmable SoC:Smarter Vision的最明智选择
称重传感器精度等级的测试及确定
华为WatchGT2 42mm版评测 紧跟女性需求的旗舰级智能手表
德勤、第四范式联合发布数字化转型过程中面临的困惑与难题解决方法
动环监控系统设计原则
给电冰箱增设冷凝器风道
端子线是什么,优质的端子线有什么特征