探究RocketIOTM GTP在串行高速接口中的位宽设计_第1页
探究RocketIOTM GTP在串行高速接口中的位宽设计_第2页
探究RocketIOTM GTP在串行高速接口中的位宽设计_第3页
探究RocketIOTM GTP在串行高速接口中的位宽设计_第4页
探究RocketIOTM GTP在串行高速接口中的位宽设计_第5页
全文预览已结束

下载本文档

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

文档简介

【Word版本下载可任意编辑】探究RocketIOTMGTP在串行高速接口中的位宽设计0引言

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

High-SpeedSerialInterface(HSSI)高速串行接口(HSSI)HSSI是一个由CiscoSystem和T3plusNetworking公司共同推出的串行接口标准。它的数据传输率为52Mbps,远的传输距离为15米(50英尺)。它类似于通常连接计算机和调制解调器的RS-232和V.35接口,但是传输速度更高。

近几年,在接口互联技术范围内,高速串行接口正在迅速取代并行拓扑构造而成为流行的接口标准。当今很多公用互连标准都是基于串行传输来实现速度的跃升。

为了迎合串行高速接口技术开发的广阔前景,Xilinx公司在推出的Virtex-5FPGA以及配套的Virtex-5RocketIOTMGTP收发中开始支持多种协议,如SATA2.0传输协议。SATA(SerialATA)。

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

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

根据SATA2.0协议规定,系统开展数据操作和传输时的基本单位是Dword(Double、word),共计32bit,由低有效字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编码来编码,其根本目的是实现直流平衡。当高速串行流的逻辑1或逻辑0有多个位没有变化时,信号的转换就会因为电压位阶的关系而造成信号错误。直流平衡的好处便是可以克服以上问题。8B/10B编码是目前许多高速串行总线采用的一种编码机制。该编码技术的基本精神很简单,就是将8个位经过映射的机制转化为10个位的字码,但它平衡了位流中0与l的数量。

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

Xilinx公司推出的Virtex-5FPGA以及配套的Virtex-5RocketI0TMGTP收发器只支持16bit接口位宽的数据传输。由于这与SATA2.0协议的相关规定出现了偏差,因而要求在数据进入设计主体逻辑前后要开展合并以及分解。

由于GTP附带的2bit控制字节指示信号rxcharisk可用以表征接收到了K字符,故实际的数据需要从150MHz(16+2)bit转换为75MHz(32+4)bit.但由于16bit和32bit的并行数据是主体。

2位宽转换

根据SATA2.0协议的规定和Virrex-5RocketIOTMGTP的特性,以及SATA2.0接口逻辑中需要提取原语(primitive)开展逻辑控制的要求,16bit和32bit位宽的相互转换不能简单的开展word合并拆解,而是需要实现图1中wordO和wordl的正确组合。这就要求系统能够在提取原语和数据组帧之前,及时开展Dword边界校正,以保证后续处理的正确。

2.116bit至32bit位宽转换模块

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

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

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

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

利用3个18bit存放器可以组成一个右移的存放器组,输入按的形式组合成18bit输入数据。在位宽转换开始后,通过判别中间存放器的2bitrxcharisk是否为2'bOl可判别DW的边界,并选择输出数据来自哪个窗口。数据重组的作用是将2个相邻的存放器中的16bit数据及其2bit类型指示信号重组为32bit数据及其4bit类型指示信号。DW边界判别的依据是:在PHY连接建立之后,主机和设备之间会相互发送SYNC原语,说明两端处于空闲状态,而SYNC就是一个控制(K)字节,其低字接收后的xcharisk是2'bol,通过这个即可识别DW的边界。

2.232bit至16bit位宽转换模块

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

用2个18bit的存放器组存放经数据重组后的36bit输入数据时,可根据输入数据的控制字节(rxcharisk)指示位来判别数据的写入和读出。由于150MHz时钟和75MHz时钟存在着有效沿不一致的情况。同步方法是利用75MHz时钟的有效沿(上升沿)与150MHz时钟有效沿一致的特性来同步产生wr-en和rd_en信号。而产生wr_en和rd_en信号的依据是在系统复位后,由数据处理逻辑向外发送SYNC信号来说明系统处于空闲(Idle)状态。3仿真及验证

通过对位宽转换模块的VerilogHDL描述,可在ModelSimse以及XilinxISE集成开发环境下开展功能仿真和综合布局布线后的时序仿真,也可在XilinxVirtex-5xc5vlx50tFPGA上开展验证。图6所示为16bit

温馨提示

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

评论

0/150

提交评论