基于Xilinx FPGA高速串行接口的设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

高速串行技术发展现状
今天,多数计算机、嵌入式处理设备和通信设备仍然采用并行总线, 最流行总线形式包括PCI、VME及它们扩展。目前广泛使用的几种通 信标准都是基于并行总线标准。并行总线可分为两大类:系统同步并 行总线标准,主要包括PCI-X和Compact PCI;源同步并行总线标准, 包括RapidIO、HyperTransport等其他类似标准。但随着芯片性能的 增加,以及更大带宽需求,这些多路并行总线结构遇到了令系统设计 者头疼限制。并行接口限制有:码间干扰、信号偏移、串音干扰和直 流偏置等问题,这些因素严重地影响了并行接口频率的提高和传输距 离的增长。为了解决并行接口在数据传输时所面临的极限问题,国内 外都将更多的研究焦点放在高速串行接口电路上。
DSP部分的注意事项
软件初始化则是通过改变接收控制寄存器LRCTLx中的对应位来实现功能的。下面,就 对这些位的功能进行一个介绍: 如果 REN=1,则链路口的接收部分使能,但链路口强制初始化被禁止。 如果 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、再写REN=1,链路口接收使能 以上操作步骤,在Visual DSP++软件中对应的程序为: yr0=0xDO;; LRCTL0=yr0;; yr0=0x11;; LRCTL0=yr0;;
1.2.1 LVDS技术简介
LVDS(Low Voltage Differential Signal)是一种低摆幅的差分信号技术,使用非常小幅度 信号通过一对差分PCB走线来传输数据,在两条平行的差分信号线上流经电流和电压 幅度相反,噪声同时耦合到两条线上,于是噪声被抵消。从而实现高速度、远距离传 输,并且其低压幅和低电流驱动输出实现了低噪声和低功耗。 LVDS在两个标准中定义:一个是IEEE P1596.3(1996年3月通过),主要面向 SCI(Scalable Coherent Interface),定义了LVDS电特性,还定义了SCI协议中包交换 时的编码;另一个是ANSI/EIA/EIA-644(1995年11月通过),主要定义了LVDS电特性, 并建议了655Mbps最大速率和1.823Gbps无失真媒质上的理论极限速率。在两个标准 中都指定了与物理媒质无关的特性,这意味着只要媒质在指定的噪声边缘和歪斜容忍 范围内发送信号到接收器,接口都能正常工作。
B3G TDD系统MAC层高速串口的实现与仿真测试 整体架构设计
由于AP端和MT端MAC处理板的功能比较类似,只是MT端架构相对 简单一些 因此下面我们主要以AP端的MAC处理板的实现与测试为例进行分析。 MAC 协议层算法处理由软件组完成本,项目组负责硬件部分主要 负责MAC处理/接口板硬件平台的设计,主要任务如下:RocketIO 设 计与实现、Turbo 码解码器设计与实现、PCI 桥路设计与实现(64bit@ 66MHz) 、GigaEthernet 驱动等[19]。 设计AP 端MAC 接口/处理板硬件平台的思路如下; (1)以商业工控主板CPCI@6U 为核心设计集成解决方案; (2)自主设计符合AdvancedTCA 协议的前插板(有源母板), 套接商业工控主 板连接RocketIO 总线; (3)有源母板带PCI 桥接器RocketIO 成帧器和RocketIO 的PHY 以及其他配套电路。
基于Xilinx FPGA高速串行接口的 设计与实现
Design and implementation of high-speed serial interface based on Xilinx FPGA


在数字系统互连设计中,高速串行I/O技术取代传统的并行I/O技术成为当 前发展的趋势。与传统并行I/O技术相比,串行方案提供了更大的带宽、更 远的距离、更低的成本和更高的扩展能力,克服了并行I/O设计存在的缺陷。 在实际设计应用中,采用现场可编程门阵列(FPGA)实现高速串行接口是一种 性价比较高的技术途径。 Xilinx的最新一代FPGA芯片Virtex.5版本,是Virtex产品线的第五代产品,采 用先进的65nm三栅极氧化层工艺、新ExpressFabrie技术和ASMBL架构。 Virtex.5 LXT分别针对高速逻辑、数字信号处理、嵌入式处理和串行连接等 应用领域进行优化。与前一代FPGA相比, Virtex一5在性能和密度方面取得 了巨大进步:速度平均提高30%,容量增加65%,动态功耗降低35%,静态 功耗保持相同的低水平,占用面积减少45%。 Virtex .5 LXT芯片内置了最 多24个RocketIO收发器,支持从100Mbps到3.75Gbps串行数据传输速率, 并支持目前流行的高速串行I/O接口标准。本文从时钟、复位、电源控制、 发送和接收逻辑等关键方面,论述了采用Virtex.5 LXT芯片内的Rocket—IO 实现高速串行传输接口设计。基于Xilinx ML505开发平台实现了高速串行数 据传输系统,重点说明了RocketIO特性和1.25Gbps高速串行传输的实现技 术。

定制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 设置后均采用默认值。 进入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 模块,模块名MGT_Module。 定制DCM 模块 选择 IP Coregen & Architecture Wizard 输入模块名称DCM_Module; 下一步打开Clocking 文件夹选择Single DCM; 在进入参数设置后选择本设计所需要的时钟参数和输入输出信号系统所要求的数据传 输速率为2Gbps 时钟倍频数为20 因此输入时钟频率设置成100MHz。 CLKIN Source 设置成Internal 即不需要自动分配全局时钟输入脚。 点击完成即生成DCM 模块模块名DCM_Module。
简单的单工LVDS接口连接图 Fig Simplex LVDS interface simple connected graph
CML技术简介
CML(Current Modc Logic)是继ECL、LVDS之后的又一种采用低电压差 分信号传输技术高速串行接口。该技术采用了低电压摆幅,差分信号传 输以及电流驱动模式,从而具有了高速度、低噪声、低功耗和低成本等 优点。CML串行数据传输速率一般在1Gbps一10Gbps,并且可以通过通 道绑定技术、制造工艺改善等方法,还可以达到更高速率。CML所具有 这些优点,尤其是其超高的数据传输能力使其应用需求大大增加,目前 数据传输速率超过2.5Gbps串行传输系统一般均采用CML技术。 CML主要有两种传输连接方式:DC耦合和AC耦合,如下图所示。当收 发两端器件使用相同电源时,CML到CML可以采用直流耦合方式,不用 添加任何器件;当收发两端器件采用不同电源时,一般要考虑交流耦合, 中间加耦合电容(注意这时选用的耦合电容要足够大,以避免在较长连0 或连1情况出现时,接收端差分电路口功能的时序后仿真图,可以从 图中看出,经过布局布线后,时钟和数据的对应关系稍有移位,但并不 影响功能的实现。
接收链路口的仿真测试
在XC5VLX50T中仿真接收链路口功能时。接收模块通过IBUFDS将输 入的差分数据和时钟转换成单端的数据和时钟。再通过两级缓冲机制 将接收到的LinkPort协议的数据进行拼接,从而得到8bit的并行数据 rxdata,而rxdata的值与链路口直接接收到的DDR的数据是相同的。从 下面的功能仿真图中,可以看到接收链路口所完成的功能是正确的。
对于链路口的接收部分,实际调试中需要与DSP进行配合调试,由DSP 链路口发送数据,FPGA模拟接收部分。在实际的调试中,链路几发送 的数据为4e4e4e4e和e4e4e4e4,下图为用chipscope软件进行抓图的 实际结果[18]。
实际硬件调试中的注意事项
在实际的硬件连接中,FPGA部分除了要把对应的管脚通过板上走线 与DSP对应的管脚连接起来,还要特别注意链路口时钟的管脚分配问 题。最好把时钟信号分配到BANK3和BANK4的全局时钟管脚上,这 样做时钟走线就可以通过全局时钟网络,获得更好的稳定性。
AP 端MAC 处理/接口板的整体框图
RocketIO接口的仿真与测试
在进行 FPGA 设计的时候,仿真是贯穿设计的整个过程的,是保证设 计最终正确运行的的关键,由于ISE6 集成化设计开发工具,中不提 供仿真设计工具因此需要利用ModleSim 仿真来完成功能仿真和时序 仿真。ISE6.1[38]和Modelsim 工具的使用方法参见文档, 在此就不 详细介绍了。“功能仿真”是直接对设计者的HDL 代码进行的仿真, 目的是保证设计的功能逻辑描述是否正确,“时序仿真”以确保设计 的 电 路 能 以 正 确 的 时 序 工 作 。 本 节 将 具 体 介 绍 采 用 ISE6.1 和 ModelSim 对RocketIO 串行收发器进行仿真的方法和步骤。
Xilinx硬件部分
FPGA+DSP硬件仿真部分
基于FPGA的高速链路口仿真设计 发送链路口的仿真测试
在XC5VLX50T中仿真发送链路口功能时,发送缓冲器中输出的8bit并 行数据为xk_index,通过DDR模块的转换后,经由0BUFDS,输出了 所需要的差分数据和差分时钟。从下面的功能仿真图中,可以看到发 送链路口所完成的功能是正确的。
DSP部分的注意事项
DSP部分的链路口功能是上电后自动复位初始化和引导的,不需要额 外的软件控制。但当DSP与FPGA进行连接时,则系统在有些情况下 不能完成自动初始化功能,而需要在DSP的软件中进行链路口软件初 始化。 DSP链路口的接收部分,如果在复位后想要正常使用,通常情况下需 要一个初始化握手信号。而在一般的DSP与DSP直接互连的系统中, 多是通过西面丽管脚完成初始化的功能,在初始化结束后才把这一管 脚释放作为块完成标志。而当DSP与FPGA连接并且是DSP进行接收 时,这一管脚不再完成这个初始化的任务,所以系统必须通过软件进 行初始化。
CML交流耦合 CML直接耦合
FPGA的设计方法
一般说来,完整的FPGA设计流程包括RTL设计输入、功能仿真、综 合优化、布局布线、时序分析、时序仿真,以及下载调试验证这几个 阶段,如下图所示。
FPGA与TS20l的硬件连接及可行性分析
在FPGA中仿真设计TS201的链路口功能,需要在电路板上将DSP的 链路口部分与FPGA进行连接,从而在后期进行联合调试。下面就把 连接的示意图和注意事项给出:
另外,在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; 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”;
相关文档
最新文档