• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 无线通信 > 技术文章 > RocketIOTM GTP在串行高速接口中的位宽设计

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

录入:edatop.com     点击:

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

关键词:RocketI0TM;GTP;串行高速;位宽转换

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位宽转换,它们实际上都包含了指示信号,用来标示该字符是否是控制字符。

作者:桑 旭,闫 波,卓建亮 电子科技大学 来源:电子元器件应用

上一篇:U-Boot在MPC8265平台上的移植与分析
下一篇:通过路由器NAT来实现IP地址绑定多台应用服务器

手机天线设计培训教程详情>>

手机天线设计培训教程 国内最全面、系统、专业的手机天线设计培训课程,没有之一;是您学习手机天线设计的最佳选择...【More..

射频和天线工程师培训课程详情>>

  网站地图