《基于XilinxFPGA高速串行接口的设计与实现课件.ppt》由会员分享,可在线阅读,更多相关《基于XilinxFPGA高速串行接口的设计与实现课件.ppt(29页珍藏版)》请在三一办公上搜索。
1、基于Xilinx FPGA高速串行接口的设计与实现,Design and implementation of high-speed serial interface based on Xilinx FPGA,基于Xilinx FPGA高速串行接口的设计与实现Desig,摘 要,在数字系统互连设计中,高速串行IO技术取代传统的并行IO技术成为当前发展的趋势。与传统并行IO技术相比,串行方案提供了更大的带宽、更远的距离、更低的成本和更高的扩展能力,克服了并行IO设计存在的缺陷。在实际设计应用中,采用现场可编程门阵列(FPGA)实现高速串行接口是一种性价比较高的技术途径。Xilinx的最新一代FPG
2、A芯片Virtex.5版本,是Virtex产品线的第五代产品,采用先进的65nm三栅极氧化层工艺、新ExpressFabrie技术和ASMBL架构。Virtex5 LXT分别针对高速逻辑、数字信号处理、嵌入式处理和串行连接等应用领域进行优化。与前一代FPGA相比, Virtex一5在性能和密度方面取得了巨大进步:速度平均提高30,容量增加65,动态功耗降低35,静态功耗保持相同的低水平,占用面积减少45。 Virtex 5 LXT芯片内置了最多24个RocketIO收发器,支持从100Mbps到375Gbps串行数据传输速率,并支持目前流行的高速串行IO接口标准。本文从时钟、复位、电源控制、发
3、送和接收逻辑等关键方面,论述了采用Virtex5 LXT芯片内的RocketIO实现高速串行传输接口设计。基于Xilinx ML505开发平台实现了高速串行数据传输系统,重点说明了RocketIO特性和125Gbps高速串行传输的实现技术。,摘 要在数字系统互连设计中,高速串行IO技术取代传,高速串行技术发展现状,今天,多数计算机、嵌入式处理设备和通信设备仍然采用并行总线,最流行总线形式包括PCI、VME及它们扩展。目前广泛使用的几种通信标准都是基于并行总线标准。并行总线可分为两大类:系统同步并行总线标准,主要包括PCI-X和Compact PCI;源同步并行总线标准,包括RapidIO、Hy
4、perTransport等其他类似标准。但随着芯片性能的增加,以及更大带宽需求,这些多路并行总线结构遇到了令系统设计者头疼限制。并行接口限制有:码间干扰、信号偏移、串音干扰和直流偏置等问题,这些因素严重地影响了并行接口频率的提高和传输距离的增长。为了解决并行接口在数据传输时所面临的极限问题,国内外都将更多的研究焦点放在高速串行接口电路上。,高速串行技术发展现状 今天,多数计算机、嵌入式处理设备和通信,1.2.1 LVDS技术简介,LVDS(Low Voltage Differential Signal)是一种低摆幅的差分信号技术,使用非常小幅度信号通过一对差分PCB走线来传输数据,在两条平行的
5、差分信号线上流经电流和电压幅度相反,噪声同时耦合到两条线上,于是噪声被抵消。从而实现高速度、远距离传输,并且其低压幅和低电流驱动输出实现了低噪声和低功耗。LVDS在两个标准中定义:一个是IEEE P1596.3(1996年3月通过),主要面向SCI(Scalable Coherent Interface),定义了LVDS电特性,还定义了SCI协议中包交换时的编码;另一个是ANSI/EIA/EIA-644(1995年11月通过),主要定义了LVDS电特性,并建议了655Mbps最大速率和1823Gbps无失真媒质上的理论极限速率。在两个标准中都指定了与物理媒质无关的特性,这意味着只要媒质在指定的
6、噪声边缘和歪斜容忍范围内发送信号到接收器,接口都能正常工作。,简单的单工LVDS接口连接图Fig Simplex LVDS interface simple connected graph,1.2.1 LVDS技术简介LVDS(Low Voltag,CML技术简介,CML(Current Modc Logic)是继ECL、LVDS之后的又一种采用低电压差分信号传输技术高速串行接口。该技术采用了低电压摆幅,差分信号传输以及电流驱动模式,从而具有了高速度、低噪声、低功耗和低成本等优点。CML串行数据传输速率一般在1Gbps一10Gbps,并且可以通过通道绑定技术、制造工艺改善等方法,还可以达到更高
7、速率。CML所具有这些优点,尤其是其超高的数据传输能力使其应用需求大大增加,目前数据传输速率超过25Gbps串行传输系统一般均采用CML技术。CML主要有两种传输连接方式:DC耦合和AC耦合,如下图所示。当收发两端器件使用相同电源时,CML到CML可以采用直流耦合方式,不用添加任何器件;当收发两端器件采用不同电源时,一般要考虑交流耦合,中间加耦合电容(注意这时选用的耦合电容要足够大,以避免在较长连0或连1情况出现时,接收端差分电压变小)。,CML直接耦合,CML交流耦合,CML技术简介 CML(Current Modc Logic,FPGA的设计方法,一般说来,完整的FPGA设计流程包括RTL
8、设计输入、功能仿真、综合优化、布局布线、时序分析、时序仿真,以及下载调试验证这几个阶段,如下图所示。,FPGA的设计方法 一般说来,完整的FPGA设计流程包括R,FPGA与TS20l的硬件连接及可行性分析,在FPGA中仿真设计TS201的链路口功能,需要在电路板上将DSP的链路口部分与FPGA进行连接,从而在后期进行联合调试。下面就把连接的示意图和注意事项给出:,FPGA与TS20l的硬件连接及可行性分析在FPGA中仿真,Xilinx硬件部分,Xilinx硬件部分,FPGA+DSP硬件仿真部分,FPGA+DSP硬件仿真部分,基于FPGA的高速链路口仿真设计发送链路口的仿真测试,在XC5VLX5
9、0T中仿真发送链路口功能时,发送缓冲器中输出的8bit并行数据为xk_index,通过DDR模块的转换后,经由0BUFDS,输出了所需要的差分数据和差分时钟。从下面的功能仿真图中,可以看到发送链路口所完成的功能是正确的。,基于FPGA的高速链路口仿真设计发送链路口的仿真测试 在X,下图所示为经过布局布线后,发送链路口功能的时序后仿真图,可以从图中看出,经过布局布线后,时钟和数据的对应关系稍有移位,但并不影响功能的实现。,下图所示为经过布局布线后,发送链路口功能的时序后仿真图,可以,接收链路口的仿真测试,在XC5VLX50T中仿真接收链路口功能时。接收模块通过IBUFDS将输入的差分数据和时钟转
10、换成单端的数据和时钟。再通过两级缓冲机制将接收到的LinkPort协议的数据进行拼接,从而得到8bit的并行数据rxdata,而rxdata的值与链路口直接接收到的DDR的数据是相同的。从下面的功能仿真图中,可以看到接收链路口所完成的功能是正确的。,接收链路口的仿真测试在XC5VLX50T中仿真接收链路口功能,对于链路口的接收部分,实际调试中需要与DSP进行配合调试,由DSP链路口发送数据,FPGA模拟接收部分。在实际的调试中,链路几发送的数据为4e4e4e4e和e4e4e4e4,下图为用chipscope软件进行抓图的实际结果18。,对于链路口的接收部分,实际调试中需要与DSP进行配合调试,
11、由,实际硬件调试中的注意事项,在实际的硬件连接中,FPGA部分除了要把对应的管脚通过板上走线与DSP对应的管脚连接起来,还要特别注意链路口时钟的管脚分配问题。最好把时钟信号分配到BANK3和BANK4的全局时钟管脚上,这样做时钟走线就可以通过全局时钟网络,获得更好的稳定性。,另外,在FPGA模拟接收链路口功能时,需要对接收到的时钟和数据部分进行约束,从而保证接收到的链路口时钟可以正确地对数据进行采样。时序约束部分的程序如下:NET “lx_clkin_p” TNM_NET = lx_clkin_p;TIMESPEC TS_lx_clkin_p = PERIOD “lx-clkin_p” 115
12、.5MHz HIGH 50%;NET “lx_clkin_n” TNM_NET = lx_clkin_n;TIMESPEC 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”;,实际硬件调试中的注意事项在实际的硬件连接中,FPGA部分除了,DSP部分的注意事项,DSP部分的链路口功能是上电后自动复位初始化和引导的,不需要额外的软件控制。但当DSP与FPGA进行连接时,则系统在有些情况下不能完成自动初始化
13、功能,而需要在DSP的软件中进行链路口软件初始化。DSP链路口的接收部分,如果在复位后想要正常使用,通常情况下需要一个初始化握手信号。而在一般的DSP与DSP直接互连的系统中,多是通过西面丽管脚完成初始化的功能,在初始化结束后才把这一管脚释放作为块完成标志。而当DSP与FPGA连接并且是DSP进行接收时,这一管脚不再完成这个初始化的任务,所以系统必须通过软件进行初始化。,DSP部分的注意事项 DSP部分的链路口功能是上电后自动复位,DSP部分的注意事项,软件初始化则是通过改变接收控制寄存器LRCTLx中的对应位来实现功能的。下面,就对这些位的功能进行一个介绍:如果 REN=1,则链路口的接收部
14、分使能,但链路口强制初始化被禁止。如果 REN =0, RINIF=0,则链路口的接收部分和链路口强制初始化都被禁止。如果REN=0,RINIF=1,而RINIV =0,则链路口的接收部分被禁止,而链路口初始化被强制置为0。这种置位就相当于利用LxBCMPI进行初始化时,LxBCMPI=0。如果REN=0,RINIF =l,而RINIV= l,则链路口的接收部分被禁止,而链路口初始化被强制置为1。这种置位就相当于利用LxBCMPI进行初始化时,LxBCMPI=l。因此,要实现软件初始化,处理器应该实现如下操作:l、首先写REN=0,RINIF=1,RINIV=1,初始化链路口的接收部分2、再写
15、REN=1,链路口接收使能以上操作步骤,在Visual DSP+软件中对应的程序为:yr0=0 xDO;LRCTL0=yr0;yr0=0 x11;LRCTL0=yr0;,DSP部分的注意事项软件初始化则是通过改变接收控制寄存器LR,B3G TDD系统MAC层高速串口的实现与仿真测试 整体架构设计,由于AP端和MT端MAC处理板的功能比较类似,只是MT端架构相对简单一些因此下面我们主要以AP端的MAC处理板的实现与测试为例进行分析。 MAC 协议层算法处理由软件组完成本,项目组负责硬件部分主要负责MAC处理/接口板硬件平台的设计,主要任务如下:RocketIO 设计与实现、Turbo 码解码器设
16、计与实现、PCI 桥路设计与实现(64-bit 66MHz) 、GigaEthernet 驱动等19。 设计AP 端MAC 接口/处理板硬件平台的思路如下; (1)以商业工控主板CPCI6U 为核心设计集成解决方案; (2)自主设计符合AdvancedTCA 协议的前插板(有源母板),套接商业工控主板连接RocketIO 总线; (3)有源母板带PCI 桥接器RocketIO 成帧器和RocketIO 的PHY 以及其他配套电路。,B3G TDD系统MAC层高速串口的实现与仿真测试 整体架,AP 端MAC 处理/接口板的整体框图,AP 端MAC 处理/接口板的整体框图,RocketIO接口的仿
17、真与测试,在进行 FPGA 设计的时候,仿真是贯穿设计的整个过程的,是保证设计最终正确运行的的关键,由于ISE6 集成化设计开发工具,中不提供仿真设计工具因此需要利用ModleSim 仿真来完成功能仿真和时序仿真。ISE6.138和Modelsim 工具的使用方法参见文档, 在此就不详细介绍了。“功能仿真”是直接对设计者的HDL 代码进行的仿真,目的是保证设计的功能逻辑描述是否正确,“时序仿真”以确保设计的电路能以正确的时序工作。本节将具体介绍采用ISE6.1 和ModelSim 对RocketIO 串行收发器进行仿真的方法和步骤。,RocketIO接口的仿真与测试 在进行 FPGA 设计的,
18、定制MGT模块运行 ISE6.1 开发环境选择Project - New Source;选择IP Coregen & Architecture Wizard 输入模块名称MGT_Module;打开I/O Interface 文件夹选择RocketIO;进入Select the transceiver 后选用用户自定义模式coustom ,定义数据宽度data width 为2 ;因为我们采用的为3.125Gbps 的数据传输速率(实际测试采用2Gbps) ,因此选择时钟输入方式为BREFCLK/BREFCLK2 ,其他全部采用系统默认值。进入Transmitter setup 设置后均采用默认
19、值。进入Receiver Comma Detect Setup 设置后也采用默认值。进入Receiver setup 设置后选择8B/10B 编码不选择CRC。进入Receiver Clock Correction Setup 后,设置时钟修正序列时钟修正序列长度为2 字节修正序列为CLK_COR_SEQ_1_1 = 00110111100 CLK_COR_SEQ_1_2 = 00010010101。进入Receiver Channel Bonding Setup 后设置通道绑定为0 即不采用通道绑定因为单通道的串行收发器数据传输速率已经能满足系统传输要求。点击完成即生成MGT 模块,模块名M
20、GT_Module。定制DCM 模块选择 IP Coregen & Architecture Wizard 输入模块名称DCM_Module;下一步打开Clocking 文件夹选择Single DCM;在进入参数设置后选择本设计所需要的时钟参数和输入输出信号系统所要求的数据传输速率为2Gbps 时钟倍频数为20 因此输入时钟频率设置成100MHz。CLKIN Source 设置成Internal 即不需要自动分配全局时钟输入脚。点击完成即生成DCM 模块模块名DCM_Module。,定制MGT模块,建立顶层文件,建立一个文件 MGT_Design_Top.v ,并对MGT_Module 和DC
21、M_Module 模块进行例化,如果仅仅进行功能仿真,还可以省除DCM_Module 例化的步骤,采用test_bench,采用直接给时钟端口赋值的方法模仿时钟生成器。 在完成上面三个步骤后,ISE 将生成三个文件MGT_Module.v、DCM_Module.v、MGT_Design_Top.v 。启动ModelsimSE 5.8sc 仿真环境。在此之前,需将Xilinx 的器件库进行编译,这样ModelsimSE 才能进行正常仿真。先将modelsim.ini 文件设置为可存档方式,然后在ModelsimSE 环境中输入如下编译指令: compxlib s mti_se f all l a
22、ll o d:modeltech_5.8cxilinx_lib 即可生成分别为Verilog 和VHDL 的各种功能和时序仿真库。 此外还要将glbl.v 文件拷入该文件可将全局的设置/复位型号和三态信号连接到设计中是 用xilinx 库进行仿真不可缺少的文件。 下一步我们可以进行Modelsim 的功能仿真了将当前目录转换到刚才几个文件所保存的的目录建立一个工作库就可以进行编译仿真了。,建立顶层文件 建立一个文件 MGT_Design_Top.,RocketIO 数据传输仿真图,RocketIO 数据传输仿真图,RocketIO 发送端口的差分信号,RocketIO 发送端口的差分信号,单板
23、测试和板间测试,RocketIO 的测试方案如图所示:,单板测试和板间测试 RocketIO 的测试方案如图所示:,MGT 和DMC 模块在ISE6.1 中生成配置好,发送存储器和接受存储器也可以通过ISE 直接配置XC2VP20 片内的RAM 资源,ISE6.1 还有专门的配置工具,可以对片内RAM 进行配置,使其通过JTAG 接口能直接进行访问。发送数据存储器循环发送一段数据码,测试数据包的长度为2048Bytes ,接收存储器进行接收,比较逻辑和存储器读取发送数据存储器和接收数据存储器的数据,并进行比较,如果有误码则将误码数写入寄存器EREG ,PC 机通过JTAG 接口来读取比较逻辑缓
24、冲器中的寄存器EREG 的数值,来判断误码的数量,该方案既用于单板测试,也适用于板间测试,原理相同只是单板测试时RocketIO 采用的是MAC 板上的一块XC2VP20 片子上的两个RocketIO 通道,而板间测试是采用两块MAC 板上的两块XC2VP20 上的RocketIO 通道。单板测试实验图如图:,MGT 和DMC 模块在ISE6.1 中生成配置好,发送存储,其中接头采用SMA 接插件端子连接线缆采用屏蔽电缆板间互连测试实验如图 所示:,板间互联测试实验图,FPGA Xilinx 的V2P20支持数据传输速率3.125Gbps实际使用传输速率2Gbps经过4 个接插件(SMA)总长
25、度约80CM (32inch ),模拟ATCA 背板接口测试数据包长2048Byte发送:连续循环发送检验:读取比较寄存器中的数据测试:次数10 万次误码率:0 / 16Gbit,其中接头采用SMA 接插件端子连接线缆采用屏蔽电缆板间互连测,结 论,我国在过去第一、二、三代移动通信的发展,比欧、美及日、韩等亚洲国家落后,在欧美等国外大公司专利壁垒的限制下,我国企业不但付出了大量的专利费,而且在产业发展上也时时受困,因此我国要在Beyond 3G 之发展能与先进国家同步,在此背景下国家高技术研究发展计划(863 计划) “Beyond 3G 蜂窝移动通信无线网络试验系统研究开发”被提上日程。首先
26、,第一次引入了基于先进电信计算机构架ATCA 的平台架构ATCA。有更大的规格和容量、更高的背板带宽、对板卡更严格的管理和控制能力、更高的供电能力以及更强的制冷能力等。ATCA 是第一个由电信专家专为电信应用设计的电信平台,其解决B3G TDD 系统的系统带宽问题、高可靠性问题、可扩展性问题、管理性问题以及可互操作问题,大大降低了系统开发的成本。事实证明,采用先进的设计方法、合理的架构可以在保证优良性能的前提下,极大的加速研发进度,缩短开发过程。,结 论 我国在过去第一、二、三代移动通信的发展,比欧、,结 论,其次,在B3G TDD 平台中,本系统没采用ATCA 标准中所定义的交换协议如Inf
27、iniband、 XAUI 等,而是创新性地将RocketIO 高速串行接口引入到ATCA 的交换接口中。首先,系统本身需要采用FPGA 进行算法实现和数据处理,引入内嵌有Rocket IO模块的高性能FPGA 能有高效的将FPGA 的处理功能与数据的高速传输无缝结合,既提高了系统的性能,也提高了系统的开发效率;其次,参与各方都采用RocektIO 作为数据传输接口,既有利于系统各模块的对接,也可以节省了参与各方开发其它通信传输协议所耗费的时间,提高效率的同时,为日后的整个系统平台顺利的联合调试打好了基础;再次,通过采用先进的ATCA 和RocketIO 相结合的全网格的架构方式,可以降低系统
28、设计复杂度、优化系统结构、提高系统可靠性,使系统更加模块化也有利于易于进行系统的扩充和更新;最后本项目采用Virtex-II Pro 器件,实现了最小的资源消耗(包括加扰处理物理层部分只消耗了约 400 个LUT), FPGA 嵌入的Rocket IO模块使互连总线达到了每通道2.5Gbps 的传输速率,在保证通信带宽的前提下简化了板级设计的难度。最后一章的仿真与测试结果表明:RocketIO 接口在设计和布线合理的条件下,在2Gbps 的工作速率下能达到零误码,同时还能通过通道绑定提高速率,完全能满足B3G系统各处理模块之间高速数据传输的需要。,结 论其次,在B3G TDD 平台中,本系统没采用AT,谢谢!,谢谢!,