现代测控体系和通讯范畴对数据传输速率的要求越来越高。比较PC 中其他技能的开展,总线技能的开展显得相对缓慢,总线功用已经成为限制体系功用发挥的瓶颈。传统的ISA, EISA 总线等已无法习惯高速数据传输的要求,PCI 总线技能尽管经过了不断的修正和开展,可是因为它固有的缺点,使其运用范畴受到限制。PCI Express 总线以其优异的功用和低价的造价引起了业界的广泛重视,具有宽广的运用远景。本文介绍PCI Express 总线接口的规划办法,,并完结一个依据IP核的PCI Express 总线接口。
1 PCI Express 总线简介
PCI Express 总线是Intel 公司于1997 年提出的第3 代I/O 技能,是种全新的串行总线技能。与PCI 总线比较,PCI Express 总线具有以下特色:
(1)在数据传输办法上,PCI Express 总线选用双工串行传输办法,一条PCI Express 通道由2 对LVDS 差分线对组成:
一对担任发送,另一对担任接纳,单向数据传输速率为2.5 Gb/s。
(2)具有很好的灵活性,一个PCI Express 物理衔接能够依据实践需求装备成×1,×2,×4,×8,×16,×32 个并行的数据通
道,满意不同设备之间通讯带宽的要求。
(3)在软件层与PCI 总线彻底兼容,原有PCI 总线的驱动程序能够彻底移植到PCI Express 总线架构的体系中。
(4)串行衔接选用自同步时钟技能,时钟内嵌于串行数据的8 bit/10 bit 编码中,可完结数据传输率的自习惯调整。
PCI Express 协议界说了3 层结构:物理层,数据链路层和业务层。每个层次依照协议中规则的内容,完结相应的数据处理功用。
2 PCI Express 接口规划办法
PCI Express 总线的接口的规划办法大体有2 种:运用专用接口芯片或许运用能够完结PCI Express 物理接口的可编程器材。
专用接口芯片完结了 PCI Express 总线的物理层、数据链路层和业务层的操控逻辑。例如,PEX 8311 是PLX 公司推出的第1 款本地总线到PCI Express×1 的桥接芯片,契合PCI Express 1.0 标准,支撑主动极性回转、CRC 校验、链路设备电源办理,具有直接主办法、直接从办法、DMA 和数据预取等功用。
运用 PEX 8311 完结PCI Express 接口,用户仅需完结相对简略的本地总线接口即可,降低了开发难度。可是这种办法受限于专用接口芯片的功用,用户无法依据本身的需求进步接口的功用。
可编程器材规划方案的基本思想是由 FPGA 完结PCI Express 的上层电路,运用Philip 公司或TI 公司供给的PHY(物理层)器材完结物理层接口,一般需求购买Xilinx 公司或Altera 公司供给的IP 核与PHY 器材合作运用。在有些FPGA 产品中,集成有PCI Express 接口的硬核模块,能够选用相应的产品完结PCI Express 接口的功用。例如,Xilinx 公司Virtex-5 LXT/SXT/FXT/TXT 系列FPGA 器材中,集成有PCI Express 硬核端点模块,能够主动完结数据链路层和物理层的数据处理功用。选用这种办法,用户只需求规划处理业务层数据包的逻辑电路即可。还能够依据自己的需求,规划具有特别功用的电路结构,发挥接口的功用,可是这种办法的开发难度较大,开发周期相对较长。
3 PCI Express 接口完结
本规划选用 Xilinx 公司Virtex-5 系列xc5vlx30t 芯片,运用该芯片内部的PCI Express Endpoint 硬核端点模块,规划了处理业务层数据的逻辑电路,完结了计算机内存与用户逻辑之间数据的正确传输。其间,操控状况机的规划和DMA 操控器的规划是要点、难点,下面详细介绍详细的完结进程。
3.1 接口电路的规划
在接口电路中,PCI Express 物理层和数据链路层的电路选用Xilinx 公司的PCI Express Endpoint Block plus v1.5 硬核端点模块完结,能够有用完结接口物理层和数据链路层的数据处理功用,供给给上层一个业务层数据接口。
上层电路首要由 5 部分电路构成,别离是核装备与辅佐操控模块、数据发送操控器、数据接纳操控器、数据输入FIFO和数据输出FIFO,如图1 所示,终究供给给用户FIFO 类型的用户逻辑接口。
图 1 PCI Express 接口电路结构
核装备与辅佐操控模块与硬核端点模块紧密联系,完结硬核端点模块中通道宽度、时钟频率、设备号、版本号、存储空间类型与巨细等一系列可操控参数的装备与一些基本功用的操控。
硬核端点模块供给的业务层数据接口为 64 bit 的数据发送接口和64 bit 的数据接纳接口以及操控数据发送和接纳的一系列操控信号接口。数据接纳操控器将收到的业务层包进行解析,依据数据包的类型进行相应的处理。数据发送操控器用于将所要发送的数据依照业务层包的格局进行封装后,发送到硬核端点模块。
数据输入 FIFO 和数据输出FIFO 一起构成了数据通道,均为双端口FIFO,用于衔接PCI Express 接口和用户逻辑。数据输入FIFO 用于保存从接口收到的数据;用户逻辑电路输出的数据保存到数据输出FIFO 中后发送到接口电路。
3.2 操控状况机的规划
数据发送操控器和数据接纳操控器担任业务层数据的封装和解析作业,是本规划中的要害电路模块。这两个模块均选用有限状况机办法进行规划,下面详细介绍这2 个模块状况机的规划。
接纳操控器从硬核端点模块中收到业务层包(TLP),依据TLP 的格局,第56 bit~第62 bit 为表明数据包类型的标志位。依照标志位中的信息,对TLP 的内容进行解析,进行相应的数据操作。所规划的状况机的状况转换图如图2 所示,各个状况的阐明如表1 所示。
图2 接纳操控器状况机
体系复位后,接纳操控器状况机处于闲暇状况,等候接纳数据包,收到TLP 后跳转到相应的状况进行存储器或许I/O的读写操作。在操作进程中,对存储器或许I/O 的状况进行监控,假如方针设备没有准备好,则进入等候状况直到方针设备安排妥当。在存储器或许I/O 的读写操作完结后,状况机又回来闲暇状况。在各个状况中接纳操控器发生相应的操控信号完结数据的写入以及对发送操控器的操作。
与接纳操控器状况机比较,发送操控器状况机相对简略,只要3 个状况,状况转换图见图3,各个状况的阐明见表2。
体系复位后,发送操控器状况机处于复位状况。当从接纳操控器收到发送数据的指令后,假如需求发送的是一个载荷数据,则将从存储器或许I/O 中取出的载荷数据填充到TLP中的相应方位后发送到端点模块;假如需求发送的仅仅一个呼应或许标志信息,则直接封装成一个TLP 发送到端点模块。
3.3 DMA 操控器的规划
因为串行总线结构与传统的并行总线结构不同,因而存储器的读写操作都是以数据包的办法传输。一般的读写操作一次最多只能进行64 bit 数据的读写,使得总线大都时刻处于等候状况,严重影响了PCI Express 总线的数据传输速率。本文规划出相应的DMA 操控器,完结了DMA 办法的数据传输。
DMA 操控器的首要电路结构为14 个与DMA 操作相关的寄存器,经过对这些操控寄存器的读写,设定DMA 办法数据读写操作的地址规模和数据巨细,完结DMA 数据读写操作。这些寄存器的界说和功用描绘如表3 所示。
在规划了上述14 个DMA 操控寄存器后,接纳操控器和发送操控器的状况机也要进行相应的调整,以习惯DMA 操作的需求。在接纳操控器状况机中加入了2 个状况,别离用于接纳数据传输进程中的第1 个DMA 数据包和剩下的DMA数据包。在发送操控器状况机中也加入了2 个状况,别离用于发送数据传输进程中的第1 个DMA 数据包和剩下的DMA数据包。为了到达尽可能高的数据传输速率,在接纳和发送进程中都运用了64 bit 数据传输办法。
在规划了如上所述的 DMA 操控器后,PCI Express 总线接口就能够用DMA 办法进行数据的读写操作。进行DMA 读/写操作的详细进程如下:(1)写中止操控寄存器,翻开中止;(2)写读/写地址寄存器,设置读/写数据的开始地址;(3)写读/写包长度寄存器,设置读/写数据包的巨细;(4)写读/写包数量寄存器,设置读/写数据包的数量;(5)写操控寄存器,发动DMA 读/写操作;(6)等候中止服务寄存器宣布中止;(7)收到中止,读中止服务寄存器;(8)写中止操控寄存器,封闭中止。
4 仿真与功用测验
运用 Verilog 言语编写代码完结本规划,运用Modelsim SE 6.2g 对该规划进行功用仿真。从数据写入FIFO 的仿真波形图中能够看到,未选用DMA 办法时,每次只能够将一个数据写入到FIFO 中,在2 次写操作之间存在较长的等候时
间;选用DMA 办法时,能够依据用户的设置接连写入多个数据,消除了2 次操作之间的等候时刻,大大进步了数据传输速率。
自行规划了选用Xilinx 公司xc5vlx30t 芯片的PCI Express×4 接口数据传输卡;运用Xilinx 公司的ISE 9.2 对规划代码进行归纳和布局布线, 生成装备文件, 下载到xc5vlx30t 芯片中;运用DELL Precision 690 作业站,在Windows 环境下编写测验程序对数据传输卡PCI Express 接口数据传输的速率进行测验。
选用多种数据量对 PCI Express 接口进行DMA 办法读数据测验,得到的成果如图4 所示,硬件层数据传输速率稳定在840 Mb/s。
图4 实践测验读数据速率
选用多种数据量对 PCI Express 接口进行DMA 办法写数据测验,得到的成果如图5 所示,硬件层数据传输速率稳定在720 Mb/s。
图5 实践测验写数据速率
从图 4、图5 能够看出,DMA 操控器有用减少了数据传输进程中的等候时刻,大幅度地进步了数据传输速率,发挥了PCI Express 总线的优胜功用。
5 结束语
本文选用依据 Xilinx 公司硬IP 核的办法规划完结了PCI Express 总线接口及数据的传输。关于DMA 操控器的规划,能进步数据传输的速率,使PCI Express 总线的功用得到充分发挥。