RocketIOTM GTP在串行高速接口中的位宽设计

发布者:ArtisticSoul最新更新时间:2010-07-01 来源: 电子元器件应用 关键字:RocketI0TM  GTP  串行高速  位宽转换 手机看文章 扫描二维码
随时随地手机看文章

      摘要:Virtex-5 RocketI0TM GTP是Xilinx公司根据高速串行接口开发市场对高性能GTP的特殊要求而开发的一款具有通用性、易用性、低功耗和低成本特性的GTP收发器。文章针对Virtex-5 RocketIOTM GTP收发器的串行高速系统接口开发过程中位宽转换的几个技术问题提出了解决方案,并以SATA2.0开发为例,通过Xilinx Virtex-5 XC5VLX50T FPGA验证方案进行了可行性验证。

      0 引言

      二十世纪六七十年代,集成电路技术取得了大幅进步,大量元件可以集成到一个小小的芯片上,因此,当时的计算机系统便开始普遍采用并行通讯处理机制。但是,随着技术进步和速度需求的提升,人们发现,并行通讯也存在很多弊端,比如码间串扰,时钟混乱,传输距离受限,传输线造价高等。

      最近几年,在接口互联技术范围内,高速串行接口正在迅速取代并行拓扑结构而成为流行的接口标准。当今很多公用互连标准(如USB,PCIExpress,Serial ATA)都是基于串行传输来实现速度的跃升。串行接口技术的开发也迅速在全世界走红。

      为了迎合串行高速接口技术开发的广阔前景,Xilinx公司在推出的Virtex-5 FPGA以及配套的Virtex-5 RocketIOTM GTP收发中开始支持多种协议,如SATA2.0传输协议。SATA (Serial ATA),即串行高级技术附加装置,该协议于2001年发布,是目前主流的主机硬盘互联标准,该标准采用差分信号串行传输数据,进而解决了IDE硬盘由于串扰而导致的传输速率受限问题。2002年,Serial ATA委员会确立的Serial ATA 2.0规范可对外提供3.0Gb/s的传输速率,并支持热插拔NCO,磁盘阵列等功能。2005年,SATA2.0产品正式上市。此外,Virtex-5 Rock-etI0TM GTP收发器还可以完成内部8B/10B转换,但是,Virtex-5 RocketIOTMGTP进行8B/10B转换时,处理的目标数据以字节为单位,即并行数据接收端的最大位宽为16bit,而SATA2.0协议中定义的数据处理单位是双字(DW:Double Words),同时,FPGA中设计的数据处理逻辑也是根据协议的要求而定义为75MHz的时钟域来进行处理,因此,在将数据交给FPGA中的数据处理主体逻辑之前,还必须进行等速率的时钟域和位宽的转换。

      为此,本文在对Virtex-5 RocketIOTM GTP进行了解的基础上,针对串行高速接口开发中位宽不匹配的问题,提出了一种位宽转换方法,以解决Virtex-5 RocketI0TM GTP无法直接应用于某些串行高速接口开发的问题,并就SATA2.0接口开发中该问题的解决方案进行详细阐述。

      1 SATA2.0协议数据的相关操作结构

      根据SATA2.0协议规定,系统进行数据操作和传输时的基本单位是Dword (Double、word),共计32 bit,由低有效字wordO和高有效字wordl组成,也可以看做是由byte0~byte3四个有效字节组成。其相互关系如图1所示。

      原语(primitive)是主机与设备间链路层交互的载体,一般由一个带有控制字符byteO和附加字符bvtel—byte3的Dword组成,SATA2.0协议将原语的byte0称为K字符,将附加字符bytel一byte3称为D字符,由不同的K字符和D字符可以构成原语组。字符内容由8B/10B转换中的6—4分组确定。其原语组的编码如表1所列。

      无论是在传输还是在操作过程中,都要保证每个Dword的正确性和完整性,否则将导致数据出错或原语流失。

      另外,目前高速数据传输接口或总线常用8B/10B编码来编码,其根本目的是实现直流平衡(DC Balance)。当高速串行流的逻辑1或逻辑0有多个位没有变化时,信号的转换就会因为电压位阶的关系而造成信号错误。直流平衡的最大好处便是可以克服以上问题。8B/10B编码是目前许多高速串行总线采用的一种编码机制,如1394b、Serial ATA、PCI Express、Infini-band、Fiber Channel、RapidIO等总线或网络,都是8B/10B编码的拥护者。该编码技术的基本精神很简单,就是将8个位经过映射的机制转化为10个位的字码,但它平衡了位流中0与l的数量。

      8B/10B编码是将一组连续的8位数据分解成两组数据,一组3位,一组5位,经过编码后分别构成一组4位代码和一组6位代码,从而组成一组10位的数据发送出去。相反,解码是将l组10位的输入数据经过变换得到8位数据位。其8B/10B编解码过程如图2所示。

      Xilinx公司推出的Virtex-5 FPGA以及配套的Virtex-5 RocketI0TM GTP收发器只支持16bit接口位宽的数据传输,即该GTP收发器是以word为数据处理单位。由于这与SATA2.0协议的相关规定出现了偏差,因而要求在数据进入设计主体逻辑前后要进行合并以及分解。同时,FPGA中设计的数据处理逻辑是根据协议的要求而定义为75 MHz的时钟域来进行处理的,因此,在将数据交给FPGA中的数据处理主体逻辑之前,也必须进行位宽的转换。

      由于GTP附带的2 bit控制字节指示信号rxcharisk可用以表征接收到了K字符,故实际的数据需要从150 MHz (16+2) bit转换为75 MHz(32+4)bit。但由于16 bit和32 bit的并行数据是主体。因此,笔者仍称之为16 bit到32 bit位宽转换和32bit到16 bit位宽转换,它们实际上都包含了指示信号,用来标示该字符是否是控制字符。[page]

      2 位宽转换

      根据SATA2.0协议的规定和Virrex-5 RocketIOTM GTP的特性,以及SATA2.0接口逻辑中需要提取原语(primitive)进行逻辑控制的要求,16bit和32 bit位宽的相互转换不能简单的进行word合并拆解,而是需要实现图1中wordO和wordl的正确组合,否则将导致原语或数据受损,使控制逻辑无法获得有效的交互原语,数据处理逻辑组帧传输错误,文件损坏的状况发生。这就要求系统能够在提取原语和数据组帧之前,及时进行Dword边界校正,以保证后续处理的正确。

      2.1 16bit至32bit位宽转换模块

      该模块将GTP接收后的150 MHz 16 bit并行数据转换成数据处理逻辑可以工作的75 MHz 32 bit的并行数据。图3所示为其位宽转换要求示意图。

      由于在转换开始时,必须正确地将2个相关的16 bit Word组合成一个32bit DW,但不能将一个DW的低字跟相邻的一个DW的高字组合成一个DW,否则逻辑处理时就会出错。图4所示是16Bit转32 bit的实现逻辑示意图。

      对于这个问题,Xilinx提供了非对称的异步FIFO,但这样又会造成较大的延时,同时无法避免图4所示的DW组合转换不当的问题。这样就使得FIF0的控制逻辑比较复杂,而数据的延时又较大,又会致使性能下降,有些得不偿失,也不符合SATA2.0的高速低延迟要求。

      为了降低延时,同时简化逻辑,笔者设计了一个滑动窗口位宽转换器,其中滑动窗口的作用就在于寻找到正确的DW边界,避免不当的DW组合转换。150 MHz时钟和75 MHz时钟的相位一致是这种转换稳定进行的保障,而xilinx Virtex-5xc5vlx50t FPGA恰恰通过DCM提供了这样两个稳定时钟,因此,这两个时钟必须接到DCM响应频率的输出。

      利用3个18bit寄存器可以组成一个右移的寄存器组,输入按[rxcharisk,rxdata]的形式组合成18 bit输入数据。在位宽转换开始后,通过判别中间寄存器的最高2 bit rxcharisk是否为2’bOl可判别DW的边界,并选择输出数据来自哪个窗口。如果75 MHz时钟有效沿检测到中间寄存器最高2 bit rxcharisk是2’b01,则输出reg2和regl重组后的36 bit数据。否则,就会输出regl和reg0重组后的36 bit数据。但由于150 MHz时钟和75 MHz时钟存在着有效沿不一致的情况(即150 MHz时钟的上升沿可能对应着75 MHz时钟的下降沿),75MHz时钟有效沿可能会检测到rxcharisk=2’b01,也可能永远检测不到,这取决于复位之后初始输入数据的特性。数据重组的作用是将2个相邻的寄存器中的16bit数据(rxdata)及其2 bit类型指示(rxcharisk)信号重组为32 bit数据及其4 bit类型指示信号。DW边界判别的依据是:在PHY连接建立之后,主机和设备之间会相互发送SYNC原语,表明两端处于空闲状态,而SYNC就是一个控制(K)字节,其低字接收后的xcharisk是2’bol,通过这个即可识别DW的边界。

      2.2 32 bit至16 bit位宽转换模块

      根据上面16 bit至32 bit位宽转换分析,需要将数据处理逻辑输出的32 bit数据拆分成两个16bit数据交给GTP进行发送。同时在转换的开始时刻,要求先发送一个DW的低字,然后发送其高字,而不能先发送一个DW的高字,否则接收端将无法正确恢复出DW。另外,150 MHz时钟和75MHz时钟的相位一致,同样是这种转换稳定进行的保障,因此,这两个时钟也必须接到DCM响应频率的输出。其32 bit转16 bit的实现逻辑示意图如图5所示。

      用2个18 bit的寄存器组寄存经数据重组后的36 bit输入数据时,可根据输入数据的控制字节(rxcharisk)指示位来判别数据的写入和读出。由于150 MHz时钟和75 MHz时钟存在着有效沿不一致的情况,即150 MHz时钟的上升沿可能对应着75 MHz时钟的下降沿,因此,要准确地进行读写控制,就必须对wr_en和rd_en信号进行同步。同步方法是利用75 MHz时钟的有效沿(上升沿)与150 MHz时钟有效沿一致的特性来同步产生wr-en和rd_en信号。而产生wr_en和rd_en信号的依据是在系统复位后,由数据处理逻辑向外发送SYNC信号来表明系统处于空闲(Idle)状态。事实上,SYNC就是一个控制(K)字节,其响应的rxcharisk是4’b0001,通过这个可以正确地将DW写入和读出。DW的发送要求先发送低字,然后发送高字。数据读出控制块会利用rd-en信号使能2 bit的计数器,然后利用计数值将DW的低高字依次选择读出。

      3 仿真及验证

      通过对位宽转换模块的Verilog HDL描述,可在ModelSim se以及Xilinx ISE集成开发环境下进行功能仿真和综合布局布线后的时序仿真,也可在Xilinx Virtex-5 xc5vlx50t FPGA上进行验证。图6所示为16 bit转32 bit逻辑仿真图。而其32 bit转16 bit逻辑仿真图如图7所示。

    4 结束语

      本设计可实现Virrex-5 RocketI0TM GTP进行SATA2.0相关开发过程中的位宽匹配转换功能,而且具有处理延迟小、差错率低等优点,并通过了Xilinx ISE综合布线以及Virtex-5 FPGA上的验证,结果证明:本设计能够完全满足SATA2.0相关开发时序及功能上的要求。实际上,逻辑设计人员利用Virrex-5 RocketIOTM GTP进行其他高速串行传输接口的开发时,也可以借鉴此设计思想。

 

 

关键字:RocketI0TM  GTP  串行高速  位宽转换 引用地址:RocketIOTM GTP在串行高速接口中的位宽设计

上一篇:基于TLl6C550C的DSP异步串行通信的实现
下一篇:Xelerated发布100Gbps网络处理器

推荐阅读最新更新时间:2024-05-07 16:06

泰克展示最新的高速串行测试解决方案
泰克公司日前宣布将在2009年4月8日北京富力万丽酒店举行的2009年英特尔信息技术峰会(IDF 2009 Beijing)上展示最新的高速串行测试解决方案。作为领先的先进高速串行技术测试解决方案提供商,泰克将演示其为USB3.0、PCI Express 3.0、第三代串行ATA和10G以太网开发的尖端测试解决方案。 泰克在信号完整性及复杂的高速测量和分析中拥有业内无可比拟的技术力量。英特尔公司最近授予了泰克首选优质供应商(PQS)奖,以表彰其在2008年为英特尔作出的重要贡献。泰克一直为英特尔提供验证测试设备,帮助英特尔产品开发团队向市场上推出下一代产品。 SuperSpeed USB (USB 3.0)一致性测试解决方案
[测试测量]
AT89C51单片机高速串行输出口设计
    摘要: 介绍使用AT89C51单片机扩展高速串行同步移位输出口的方法,给出基于分立TTL元器件和可编程逻辑器件PLD两种电路的实现方案,在LED点阵显示屏系统中已得到应用。     关键词: 串行口 单片机 可编程逻辑器件 AT89C51(与MCS-51兼容)单片机的串行口在方式0工作状态下,使用移位寄存器芯片可以扩展多个8位并行I/O口。在LED点阵显示屏应用系统中,一般都采用数据同步移位输出方式,并使用移位寄存器芯片(如74LS595)扩展并行I/O口驱动LED点阵显示。LED点阵显示采用扫描方式,为不产生闪烁感,每秒需要传送50屏点阵显示数据,因此有大量的数据要通过同步移位的方式送到显示驱动电路部
[应用]
高速串行总线的常用测试码型
   高速串行总线的常用测试码型   在当今的电信和计算机产品上,相比传统的并行总线,电路中的串行总线越来越多,速率越来越快。比如通信产品中的10GBase-KR、CPRI2代,计算机中的PCIeGen2、SATA6G,存储产品中的SAS6G、FC8.5G,这些串行总线都陆续的跨过了5Gbps。由于速率比较高,使得串行总线上的相关的收发器芯片(SERDES)、连接器、单板、背板的设计面临着越来越多的挑战。对于这些高速串行总线的物理层测试,测试码型的选用至关重要,在很多串行总线的规范中对测试码型有严格的要求。本文将对此进行探讨。   首先,串行总线的物理层测试通常分为发射机测试和接收机测试,又称为TX测试和RX测试。发射机测
[嵌入式]
安捷伦经典方案:如何应对高速串行测试?
  随着人们对信息需求的不断提高,高速串行传输凭借传输高的特性越来越受到市场的青睐,各种高速串行传输标准层出不穷,串行总线的传输速率也已经达到甚至超过了5Gbit/s。然而,传输速率提升的背后带来的是设计传输路径的难度增加和测试传输系统的全新挑战,如保障传输质量、更精确地信号分析、保持信号完整性等。有鉴于此,安捷伦科技推出了多款新的仪器,帮助用户构建完整的高速串行测试解决方案。   PCIe(PCI EXPRESS)需要开发更可靠的系统,并确保这些系统能够与飞速增加的PCIe设备实现互通。Agilent N5323A PCIe Jammer(干扰发射机)可以部署在两个设备之间,而不会对系统产生任何影响;并能实时修改实际的PCIe数据
[测试测量]
安捷伦经典方案:如何应对<font color='red'>高速</font><font color='red'>串行</font>测试?
利用TL16C750实现DSP与PC机的高速串行通信
    摘要: TL16C750是TI公司生产的异步通信芯片,在通信系统的实时性要求较高时,可通过扩展异步通信芯片TL16C750来实现系统的高速串行通信,从而增强系统的通信接口控制能力。文中介绍了TL16C750的性能及与通信有关的寄存器,给出了TL16C750在TMS320C50与PC机通信系统中的硬件应用电路及TMS320C50初始化TL16C750的软件编程。      关键词: 数字信号处理  通信接口  扩展  异步通信  TL16C750     通用数字信号处理器(DSP)以其很强的数据处理能力使其在高速数字信号处理方面得到广泛的应用,但是它的通信接口控制能力比较弱
[工业控制]
小广播
最新网络通信文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved