基于XilinxFPGA高速串行接口的设计与实现_第1页
基于XilinxFPGA高速串行接口的设计与实现_第2页
基于XilinxFPGA高速串行接口的设计与实现_第3页
基于XilinxFPGA高速串行接口的设计与实现_第4页
基于XilinxFPGA高速串行接口的设计与实现_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于Xilinx FPGA高速串行接口的设计与实现Design and implementation of high-speed serial interface based on Xilinx FPGA摘 要p 在数字系统互连设计中,高速串行IO技术取代传统的并行IO技术成为当前发展的趋势。与传统并行IO技术相比,串行方案提供了更大的带宽、更远的距离、更低的成本和更高的扩展能力,克服了并行IO设计存在的缺陷。在实际设计应用中,采用现场可编程门阵列(FPGA)实现高速串行接口是一种性价比较高的技术途径。p Xilinx的最新一代FPGA芯片Virtex.5版本,是Virtex产品线的第五代产品

2、,采用先进的65nm三栅极氧化层工艺、新ExpressFabrie技术和ASMBL架构。Virtex5 LXT分别针对高速逻辑、数字信号处理、嵌入式处理和串行连接等应用领域进行优化。与前一代FPGA相比, Virtex一5在性能和密度方面取得了巨大进步:速度平均提高30,容量增加65,动态功耗降低35,静态功耗保持相同的低水平,占用面积减少45。 Virtex 5 LXT芯片内置了最多24个RocketIO收发器,支持从100Mbps到375Gbps串行数据传输速率,并支持目前流行的高速串行IO接口标准。本文从时钟、复位、电源控制、发送和接收逻辑等关键方面,论述了采用Virtex5 LXT芯片

3、内的RocketIO实现高速串行传输接口设计。基于Xilinx ML505开发平台实现了高速串行数据传输系统,重点说明了RocketIO特性和125Gbps高速串行传输的实现技术。高速串行技术发展现状 p 今天,多数计算机、嵌入式处理设备和通信设备仍然采用并行总线,最流行总线形式包括PCI、VME及它们扩展。目前广泛使用的几种通信标准都是基于并行总线标准。并行总线可分为两大类:系统同步并行总线标准,主要包括PCI-X和Compact PCI;源同步并行总线标准,包括RapidIO、HyperTransport等其他类似标准。但随着芯片性能的增加,以及更大带宽需求,这些多路并行总线结构遇到了令系

4、统设计者头疼限制。并行接口限制有:码间干扰、信号偏移、串音干扰和直流偏置等问题,这些因素严重地影响了并行接口频率的提高和传输距离的增长。为了解决并行接口在数据传输时所面临的极限问题,国内外都将更多的研究焦点放在高速串行接口电路上。1.2.1 LVDS技术简介pLVDS(Low Voltage Differential Signal)是一种低摆幅的差分信号技术,使用非常小幅度信号通过一对差分PCB走线来传输数据,在两条平行的差分信号线上流经电流和电压幅度相反,噪声同时耦合到两条线上,于是噪声被抵消。从而实现高速度、远距离传输,并且其低压幅和低电流驱动输出实现了低噪声和低功耗。pLVDS在两个标准

5、中定义:一个是IEEE P1596.3(1996年3月通过),主要面向SCI(Scalable Coherent Interface),定义了LVDS电特性,还定义了SCI协议中包交换时的编码;另一个是ANSI/EIA/EIA-644(1995年11月通过),主要定义了LVDS电特性,并建议了655Mbps最大速率和1823Gbps无失真媒质上的理论极限速率。在两个标准中都指定了与物理媒质无关的特性,这意味着只要媒质在指定的噪声边缘和歪斜容忍范围内发送信号到接收器,接口都能正常工作。简单的单工LVDS接口连接图Fig Simplex LVDS interface simple connecte

6、d graphCML技术简介 p CML(Current Modc Logic)是继ECL、LVDS之后的又一种采用低电压差分信号传输技术高速串行接口。该技术采用了低电压摆幅,差分信号传输以及电流驱动模式,从而具有了高速度、低噪声、低功耗和低成本等优点。CML串行数据传输速率一般在1Gbps一10Gbps,并且可以通过通道绑定技术、制造工艺改善等方法,还可以达到更高速率。CML所具有这些优点,尤其是其超高的数据传输能力使其应用需求大大增加,目前数据传输速率超过25Gbps串行传输系统一般均采用CML技术。p CML主要有两种传输连接方式:DC耦合和AC耦合,如下图所示。当收发两端器件使用相同电

7、源时,CML到CML可以采用直流耦合方式,不用添加任何器件;当收发两端器件采用不同电源时,一般要考虑交流耦合,中间加耦合电容(注意这时选用的耦合电容要足够大,以避免在较长连0或连1情况出现时,接收端差分电压变小)。CML直接耦合 CML交流耦合 FPGA的设计方法 p 一般说来,完整的FPGA设计流程包括RTL设计输入、功能仿真、综合优化、布局布线、时序分析、时序仿真,以及下载调试验证这几个阶段,如下图所示。FPGA与TS20l的硬件连接及可行性分析p 在FPGA中仿真设计TS201的链路口功能,需要在电路板上将DSP的链路口部分与FPGA进行连接,从而在后期进行联合调试。下面就把连接的示意图

8、和注意事项给出:Xilinx硬件部分FPGA+DSP硬件仿真部分基于FPGA的高速链路口仿真设计发送链路口的仿真测试 p 在XC5VLX50T中仿真发送链路口功能时,发送缓冲器中输出的8bit并行数据为xk_index,通过DDR模块的转换后,经由0BUFDS,输出了所需要的差分数据和差分时钟。从下面的功能仿真图中,可以看到发送链路口所完成的功能是正确的。下图所示为经过布局布线后,发送链路口功能的时序后仿真图,可以从图中看出,经过布局布线后,时钟和数据的对应关系稍有移位,但并不影响功能的实现。接收链路口的仿真测试p 在XC5VLX50T中仿真接收链路口功能时。接收模块通过IBUFDS将输入的差

9、分数据和时钟转换成单端的数据和时钟。再通过两级缓冲机制将接收到的LinkPort协议的数据进行拼接,从而得到8bit的并行数据rxdata,而rxdata的值与链路口直接接收到的DDR的数据是相同的。从下面的功能仿真图中,可以看到接收链路口所完成的功能是正确的。对于链路口的接收部分,实际调试中需要与DSP进行配合调试,由DSP链路口发送数据,FPGA模拟接收部分。在实际的调试中,链路几发送的数据为4e4e4e4e和e4e4e4e4,下图为用chipscope软件进行抓图的实际结果18。实际硬件调试中的注意事项p 在实际的硬件连接中,FPGA部分除了要把对应的管脚通过板上走线与DSP对应的管脚连

10、接起来,还要特别注意链路口时钟的管脚分配问题。最好把时钟信号分配到BANK3和BANK4的全局时钟管脚上,这样做时钟走线就可以通过全局时钟网络,获得更好的稳定性。另外,在FPGA模拟接收链路口功能时,需要对接收到的时钟和数据部分进行约束,从而保证接收到的链路口时钟可以正确地对数据进行采样。时序约束部分的程序如下:NET “lx_clkin_p” TNM_NET = lx_clkin_p;TIMESPEC TS_lx_clkin_p = PERIOD “lx-clkin_p” 115.5MHz HIGH 50%;NET “lx_clkin_n” TNM_NET = lx_clkin_n;TIME

11、SPEC TS_lx_clkin_p = PERIOD “lx-clkin_n”TS_lx_clkin_p PHASE 4.329 ns HIGH 50%;OFFSET = IN 2 ns valid 3.5 ns BEFORE “lx_clkin_p”;DSP部分的注意事项 p DSP部分的链路口功能是上电后自动复位初始化和引导的,不需要额外的软件控制。但当DSP与FPGA进行连接时,则系统在有些情况下不能完成自动初始化功能,而需要在DSP的软件中进行链路口软件初始化。p DSP链路口的接收部分,如果在复位后想要正常使用,通常情况下需要一个初始化握手信号。而在一般的DSP与DSP直接互连的系

12、统中,多是通过西面丽管脚完成初始化的功能,在初始化结束后才把这一管脚释放作为块完成标志。而当DSP与FPGA连接并且是DSP进行接收时,这一管脚不再完成这个初始化的任务,所以系统必须通过软件进行初始化。DSP部分的注意事项p软件初始化则是通过改变接收控制寄存器LRCTLx中的对应位来实现功能的。下面,就对这些位的功能进行一个介绍:p如果 REN=1,则链路口的接收部分使能,但链路口强制初始化被禁止。p如果 REN =0, RINIF=0,则链路口的接收部分和链路口强制初始化都被禁止。p如果REN=0,RINIF=1,而RINIV =0,则链路口的接收部分被禁止,而链路口初始化被强制置为0。这种

13、置位就相当于利用LxBCMPI进行初始化时,LxBCMPI=0。p如果REN=0,RINIF =l,而RINIV= l,则链路口的接收部分被禁止,而链路口初始化被强制置为1。这种置位就相当于利用LxBCMPI进行初始化时,LxBCMPI=l。p因此,要实现软件初始化,处理器应该实现如下操作:pl、首先写REN=0,RINIF=1,RINIV=1,初始化链路口的接收部分p2、再写REN=1,链路口接收使能p以上操作步骤,在Visual DSP+软件中对应的程序为:pyr0=0 xDO;pLRCTL0=yr0;pyr0=0 x11;pLRCTL0=yr0;B3G TDD系统MAC层高速串口的实现与

14、仿真测试 整体架构设计 p 由于AP端和MT端MAC处理板的功能比较类似,只是MT端架构相对简单一些p 因此下面我们主要以AP端的MAC处理板的实现与测试为例进行分析。p MAC 协议层算法处理由软件组完成本,项目组负责硬件部分主要负责MAC处理/接口板硬件平台的设计,主要任务如下:RocketIO 设计与实现、Turbo 码解码器设计与实现、PCI 桥路设计与实现(64-bit 66MHz) 、GigaEthernet 驱动等19。p 设计AP 端MAC 接口/处理板硬件平台的思路如下;p (1)以商业工控主板CPCI6U 为核心设计集成解决方案;p (2)自主设计符合AdvancedTCA

15、 协议的前插板(有源母板),套接商业工控主p 板连接RocketIO 总线;p (3)有源母板带PCI 桥接器RocketIO 成帧器和RocketIO 的PHY 以及其他配套电路。AP 端MAC 处理/接口板的整体框图 RocketIO接口的仿真与测试 p 在进行 FPGA 设计的时候,仿真是贯穿设计的整个过程的,是保证设计最终正确运行的的关键,由于ISE6 集成化设计开发工具,中不提供仿真设计工具因此需要利用ModleSim 仿真来完成功能仿真和时序仿真。ISE6.138和Modelsim 工具的使用方法参见文档, 在此就不详细介绍了。“功能仿真”是直接对设计者的HDL 代码进行的仿真,目

16、的是保证设计的功能逻辑描述是否正确,“时序仿真”以确保设计的电路能以正确的时序工作。本节将具体介绍采用ISE6.1 和ModelSim 对RocketIO 串行收发器进行仿真的方法和步骤。p定制MGT模块p运行 ISE6.1 开发环境选择Project - New Source;p选择IP Coregen & Architecture Wizard 输入模块名称MGT_Module;p打开I/O Interface 文件夹选择RocketIO;p进入Select the transceiver 后选用用户自定义模式coustom ,定义数据宽度data width 为2 ;因为我们采用

17、的为3.125Gbps 的数据传输速率(实际测试采用2Gbps) ,因此选择时钟输入方式为BREFCLK/BREFCLK2 ,其他全部采用系统默认值。p进入Transmitter setup 设置后均采用默认值。p进入Receiver Comma Detect Setup 设置后也采用默认值。p进入Receiver setup 设置后选择8B/10B 编码不选择CRC。p进入Receiver Clock Correction Setup 后,设置时钟修正序列时钟修正序列长度为2 字节修正序列为CLK_COR_SEQ_1_1 = 00110111100 CLK_COR_SEQ_1_2 = 000

18、10010101。p进入Receiver Channel Bonding Setup 后设置通道绑定为0 即不采用通道绑定因为单通道的串行收发器数据传输速率已经能满足系统传输要求。p点击完成即生成MGT 模块,模块名MGT_Module。p定制DCM 模块p选择 IP Coregen & Architecture Wizard 输入模块名称DCM_Module;p下一步打开Clocking 文件夹选择Single DCM;p在进入参数设置后选择本设计所需要的时钟参数和输入输出信号系统所要求的数据传输速率为2Gbps 时钟倍频数为20 因此输入时钟频率设置成100MHz。pCLKIN S

19、ource 设置成Internal 即不需要自动分配全局时钟输入脚。p点击完成即生成DCM 模块模块名DCM_Module。建立顶层文件 p 建立一个文件 MGT_Design_Top.v ,并对MGT_Module 和DCM_Module 模块进行例化,如果仅仅进行功能仿真,还可以省除DCM_Module 例化的步骤,采用test_bench,采用直接给时钟端口赋值的方法模仿时钟生成器。p 在完成上面三个步骤后,ISE 将生成三个文件MGT_Module.v、DCM_Module.v、MGT_Design_Top.v 。启动ModelsimSE 5.8sc 仿真环境。在此之前,需将Xilin

20、x 的器件库进行编译,这样ModelsimSE 才能进行正常仿真。先将modelsim.ini 文件设置为可存档方式,然后在ModelsimSE 环境中输入如下编译指令:p compxlib s mti_se f all l all o d:modeltech_5.8cxilinx_libp 即可生成分别为Verilog 和VHDL 的各种功能和时序仿真库。p 此外还要将glbl.v 文件拷入该文件可将全局的设置/复位型号和三态信号连接到设计中是 用xilinx 库进行仿真不可缺少的文件。p 下一步我们可以进行Modelsim 的功能仿真了将当前目录转换到刚才几个文件所保存的的目录建立一个工作

21、库就可以进行编译仿真了。RocketIO 数据传输仿真图 RocketIO 发送端口的差分信号 单板测试和板间测试 p RocketIO 的测试方案如图所示:p MGT 和DMC 模块在ISE6.1 中生成配置好,发送存储器和接受存储器也可以通过ISE 直接配置XC2VP20 片内的RAM 资源,ISE6.1 还有专门的配置工具,可以对片内RAM 进行配置,使其通过JTAG 接口能直接进行访问。p 发送数据存储器循环发送一段数据码,测试数据包的长度为2048Bytes ,接收存储器进行接收,比较逻辑和存储器读取发送数据存储器和接收数据存储器的数据,并进行比较,如果有误码则将误码数写入寄存器ER

22、EG ,PC 机通过JTAG 接口来读取比较逻辑缓冲器中的寄存器EREG 的数值,来判断误码的数量,该方案既用于单板测试,也适用于板间测试,原理相同只是单板测试时RocketIO 采用的是MAC 板上的一块XC2VP20 片子上的两个RocketIO 通道,而板间测试是采用两块MAC 板上的两块XC2VP20 上的RocketIO 通道。单板测试实验图如图:p 其中接头采用SMA 接插件端子连接线缆采用屏蔽电缆板间互连测试实验如图 所示:板间互联测试实验图FPGA Xilinx 的V2P20支持数据传输速率3.125Gbps实际使用传输速率2Gbps经过4 个接插件(SMA)总长度约80CM

23、(32inch ),模拟ATCA 背板接口测试数据包长2048Byte发送:连续循环发送检验:读取比较寄存器中的数据测试:次数10 万次误码率:0 / 16Gbit结 论 p 我国在过去第一、二、三代移动通信的发展,比欧、美及日、韩等亚洲国家落后,在欧美等国外大公司专利壁垒的限制下,我国企业不但付出了大量的专利费,而且在产业发展上也时时受困,因此我国要在Beyond 3G 之发展能与先进国家同步,在此背景下国家高技术研究发展计划(863 计划) “Beyond 3G 蜂窝移动通信无线网络试验系统研究开发”被提上日程。p 首先,第一次引入了基于先进电信计算机构架ATCA 的平台架构ATCA。有更大的规格和容量、更高的背板带宽、对板卡更严格的管理和控制能力、更高的供电能力以及更强的制冷能力

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论