基于EP2SGX系列FPGA的PCI接口设计
时间:11-09
来源:互联网
点击:
在现代雷达数据处理系统和其他应用系统中,传统的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
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
总线 FPGA 电路 PCB LTE 收发器 Quartus 仿真 USB 嵌入式 连接器 电阻 相关文章:
- 基于FPGA的片上系统的无线保密通信终端(02-16)
- 基于FPGA的DVI/HDMI接口实现(05-13)
- 基于PLB总线的H.264整数变换量化软核的设计(03-20)
- FPGA 重复配置和测试的实现(08-14)
- 经I/O优化的FPGA(04-23)
- 基于Actel FPGA的PWM IP的应用(09-17)