摘要:通过对LBS控制器的控制信号、LBS总线读写操作时序、LBS状态机进行分析,设计并实现了一个高效、可靠的LBS控制器来实现FPGA和PEX8311的通信系统,在PEX8311和FPGA接口中运行状态正常,稳定性强,成功应用于某视频采集卡、某PCIe数据采集卡等,基于FPGA设计的LBS控制器具有灵活性强、可编程能力强、适应性强等优点。
关键词:FPGA;PCIe;PEX8311;LBS;状态机
引言
PLX的一款桥芯片PEX8311可将标准处理器、DSP和FPGA总线接口升级为PCI Express(PCIe)。PEX8311单道PCIe至32位、66 MHz通用局部总线桥可在两种标准间转换协议,它可用于通讯线路卡、监视系统、工业控制、IP媒体服务器和医疗成像系统,以实现可升级的高带宽互联。采用根联合体或终端点的PCI嵌入式系统设计可采用PEX8311桥芯片移植到PCIe。本文就是基于PEX8311和FPGA来实现PCIe标准1x传输。
1 系统介绍
FPGA和PEX8311之间通过LBS(LOCalBus)来连接、发送和接收命令及数据,其中FPGA主要控制LBS的运行,本文通过设计一个高效、可靠的LBS控制器来实现FPGA和PEX8311的通信。如图1所示。
本系统的控制的核心是LBS控制器,该控制器是通过FPGA采用VerilogHDL实现的,其优点是稳定性强、不会造成死机,避免了常规的PC I,PCIe板卡类经常死机的问题,其次是传输速率高,充分利用LBS的时序,减少无用的等待时间。
FPGA采用ALTEra公司的Cyclone3系列的3C120款FPGA芯片。Cyclone3是功耗最低、成本最低的高性能FPGA产品,鉴于上述特点本设计采用它来实现PCIe的传输功能。
PEX8311是PLX公司的一款x1的PCI Express接口芯片,本地端总线频率最高可达66 MHz,数据位宽为32 b。PEX8311有主模式、从模式和DMA三种数据传输模式,可灵活、方便地与各CPU,FPGA和ASIC无缝连接,实现高速传输。
2 LBS控制器设计
2.1 控制信号介绍
Hold信号:请求控制总线的信号,FPGA向PEX8311发出控制总线的请求。
Holda信号:PEX8311响应FPGA请求的信号。
LCLK信号:时钟输入信号。
ADS信号:地址选通信号。
BLAST信号:最后一个数据的同步信号。
LA[31:2]信号:地址线。
LD[31:0]信号:数据线。
LW/R信号:读写控制。
Ready信号:数据有效信号。
2.2 LBS总线读写操作时序介绍
LBS总线操作有单次读写和Burst读写方式,本设计中采用单次读写设计用来传输FPGA内部的寄存器读写控制,这些寄存器是用于配置各逻辑模块的功能控制,通过CPU或软件来实时控制;Burst读写方式主要用于大批量数据传输,本文中主要是传输高速的DDR数据,利用Burst传输方式可以实现高速自动大容量数据传输,充分利用LBS的传输带宽,提高传输效率。
2.3 PEX8311芯片介绍
PEX8311芯片的LBS端具有32位数据总线宽度和66 MHz时钟频率,PEX8311支持三种LBS总线接口模式:C模式,J模式和M模式,可方便地与多种微处理器连接。接口模式由MODE0和MODE1两管脚确定。本设计采用时序逻辑相对简单的C模式,即非复用的地址/数据总线模式。PEX8 311支持三种局部总线数据传输模式:单周期模式、四周期突发模式、连续突发模式。
DMA传输数据使传输任务从主控设备中解脱出来,由短且有效的传输描述符来承担,让主控设备可以有时间去处理其他事件。PEX8311有两个DMA通道,可以同时处理两侧总线上要求的传输,免去外部设备的等待。另外,DMA传输可以与主模式和从模式传输同步操作,但后两者比DMA传输优先级高。考虑到DMA传输有以上优点,本设计中PCI Express接口部分采用连续突发模式DMA块传输模式,LBS总线接口采用C模式。