环球网校是美国纳斯达克上市企业欢聚时代(NASDAQ:YY)旗下品牌 | 住房和城乡建设部 建筑人才培训合作单位
您现在的位置在: > 学历考试 > 考研 > 考研动态 >

gsgbpx 高速收发器的64B66B编码原理及优点,相比8B10B更简单

2026-01-09 来源:网络 作者:佚名

点击进入高速收发器系列文章导航界面

前面的内容讲解了8B10B这一事物的原理,8B10B存在着开销比较大的情况,每一次的传输,要发送10位内容的数据时,就必然需要发送2位属于无效范畴的数据,为了达成减小8B10B编码所产生的开销这一目的,并且同时还能保留编码方案所具有的优点,于是提出了编码。

#

其具有与8B10B编码方式的本质区别,8B10B编码,可从码表当中获取一个数据编码的结果,并且在发送之前,需要借助白噪声来对数据进行加扰操作,在接收数据的阶段 ,同样也要先针对数据做解扰处理。 #

当用户处于实际动用的情形下,GTX的编码在复杂度方面会比8B10B更低,这是由于它能够给出控制帧以及数据帧,经对比8B10B而言,其在编码上会略微简单那么一些些。

#

1、编码原理 #

下述图示呈现的乃是万兆网的涉及数据编码相关的框图,此框图会把两个具有32位的TXD数据互相拼接从而形成一个总值为64位的数据,而后借助加扰这种方式,用以达成保证零一均衡这一目的,进而避免出现直流失调以及时钟恢复面临困难的状况。

#

此后,于表示64位的数据之前加入2位的同步头(Sync),此同步头用于指示后续的64位数据究竟是数据帧还是控制帧,每当用户发送64位数据时,高速收发器都要传输64位数据以及2位同步头,。 #

图1 编码框图

#

变速器,它能够当作一个深度为64位的存储器,每一个用户时钟会输入64位数据,高速收发器在一个 user 时钟之内仅仅能够发送64位编码之后的数据,如此一来就会致使每个时钟会存在2位数据未被发送出去,而是暂时存放在变速器当中 。 #

连续历经32个时钟之后,变速器里头就将会存满64位 data,紧接着在下一时期,用户得停止一下输入data,随后高速收发器针对变速器里头呈现出来的64位 data予以,并继而用户能够接着去输入想要传输的data。周而复始延续如此这般。

#

加扰器()负责完成编码过程,从而使得经加扰的相同数据会产生不同数据,编码后的那部分数据是无法进行预测的。

#

设有2位同步头,其存在两个作用,其一作用是能够用来指示帧类型,其二作用是接收端依照这个可以实现数据对齐,该同步头取值仅有2’b01以及2’b10这两种,除此之外的其余两种系无效取值,。 #

若同步头呈现为2’b01这种状态,那就意味着后续的64位数据属于纯数据范畴 ,其中并不涵盖任何控制字符 ,情形如同下面所展示的图片那样 。 #

图2 纯数据帧格式 #

要是同步头呈现为2’b10,那就意味着后续的64位数据属于控制帧,它有可能是起始帧,也有可能是结束帧,就那般如图所示,需留意同步码后面的首个字节数据展现控制帧的类型,按照该数据的值来确定此帧数据内容。

#

图3 控制帧格式

#

下述图示呈现的是上面提及的几种帧的部分格式,其中,D代表数据,C代表空闲字符,此空闲字符带有7位数据,S代表帧起始字符,T代表帧结束字符。当中同步码为2’b01之际,8字节均为数据。编码的起始帧存在两种格式,其一为起始位处在第一个字节,与之对应的类型字符是8’h78,其二为起始位处在第五字节,与之对应的类型字符是8’h33。 #

图4 帧格式的组成 #

因为用户每一次能够进行任意字节数据的传输,致使停止位有可能出现在数据的任意一个字节处,所以结束帧会存在 8 种类型,且类型字符不一样,接收端能够依据结束帧的类型来判断这一帧拥有多少有效数据。 #

这儿有个表,它呈现的是这些控制字符的具体取值情况,举例来说,起始位S的那些取值是8’hfb,有个停止位T,这个停止位T的取值是8’hfd,还有空闲字符C这种情况,空闲字符C的取值为8’h07 。 #

图5 控制字符取值

#

加扰,以及解扰,通常所运用的表达式乃X{58}+X{19}+1,这一部分的内容能够于后续所涉及的示例工程当中直接获取到,而且还较为简单,其实现方式跟M序列相类似。 #

图6 加扰实现框图 2、GTX的编码发送原理

#

已讲解过的原理,自此开启GTX相关内容的讲解,首先要清楚,GTX内部是不可以对要发送的数据加以扰处理的,同时也不能对于接收的数据进行解扰操作,而是需要用户在FPGA逻辑当中自行去完成加扰以及解扰。

#

从下图能够知道,8B10B通过蓝色走线之后抵达FIFO,然而编码仅仅经过了一个TX,并未经过任何编码模块,所以加扰以及解扰相关操作需要用户在IP外部自行完成。 #

图7 发送通道框图 #

存在于此处的 TX 的用途,是方才在前文被说及的处于那种工况的变速器这般,所表现出来的工作方式,像下述之地图谱所示这般,此图谱将用户数据的位元宽度做这样的设定,设定成 32 位物业经理人,而且呢,PCS 这个部分每逢单一之时只能传递 32 位的数据,只有历经两个时钟的时长,才能够发送出一个 64 位的数据。

#

故而要是需两个时钟用户之时,方可去发送64位数据,头一个时钟朝着GTX馈送2位同步码与32位数据,其先被发送于变速箱,变速箱率先发送2位同步码及高30位数据,第2位数据置身于TX之内停驻。紧接着第二个时钟用户去发送剩余的32位数据,TX得要先将上个时钟所剩余的2位数据予以发送出去,随后再发送本次所接收的高30位数据,最终依旧会留存2位数据。

#

所以,每经历2个时钟之时,TX里便会增添2位数据,在历经64个时钟后,TX当中存有64位数据,这与一个用户数据位宽相契合。而后两个时钟周期,用户无法向GTX传送数据,TX会把内部64位数据发送出去,达成清空。

#

以使用编码的情形来说,通常状况下,用户端口位宽选取64位这种方式,会更具便利性,其原理都是相同的 。 #

图8 TX 工作原理 #

那上述会存在这么一个问题gsgbpx,怎样去知晓到底应不应该清除内部数据呢?要知道用户又怎么能清楚晓得何时停止发送数据呀?这里就需要用到这么一个计数器,GTX的内部能够提供出这个计数器,用户同样也能够给GTX提供计数器,只是后续像GTH这类高速收发器全都不支持内部计数器这个方案,所以在使用期间依旧是推荐去使用外部计数器,从而与其他收发器达成统一。 #

带有外部计数器的框图为下图了 ,数据传输采用编码方式 ,这需要用到若干信号 ,其中用户要发送 64 位数据 :此 64 位数据用于传输 2 位同步码 ,最高位不用 ,接地就行 ,这是全部情况了 。

#

是用户给GTX提供的外部计数器,在使用编码之际,计数器的取值范围所指的是,要进行接地处理,在使用编码之时,计数器取值范围是 。

#

图9 外部计数器框图

#

在编码不同数据位宽的情形下,存在着这样一种情况,即用户数据停止发送数据时所对应的时钟周期数,被以下表呈现出来。其中一种情况是,表示用户数据位宽,它与用户时钟()处于对齐的状态。还有另一种情况是,表示PCS内部传输并行数据位宽,这种情况之下,它能够被理解成TX输出数据位宽,并且它与处于对齐的状态。 #

在处于相同情况时,针对计数器而言,一定得是每两个用户时钟就进行一次递增操作,而数据则要暂停两个用户时钟周期 。 #

在处于两倍的情形下,计数器会针对每一个用户时钟进行一次递增,此时数据会暂停一个时钟周期,紧接着有效数据传输会于下一个用户时钟得以恢复。究竟几个用户时钟能够将TX内部数据清空,那么用户就需要暂停等同于该数量的时钟周期 。

#

图10 64B/66B编码暂停位置 #

有这样一张图,它表示的是运用外部计数器的情况,此时用于计数的数据位中的那些用户数据,其位宽是64位,而PCS所进行的内部传输之中的并行数据,它的位宽是4字节,这里采用的是经过编码的时序图所示情景,当这个用于计数的计数器计数到32的时候,这当中的用户数据就会停止进行向外发送,另外的Dd数据则会一直延续下去,直到这个计数器等于0之后才可以发生变化。 #

图11 正常模式下在外部计数器值32处暂停 #

GTX是支持内部计数器模式的,GTH对这个模式是不予以支持的,鉴于它是存在着的,所以还是对其进行讲解一番吧,与之对应的框图呈现如下情形,跟图⑨相比较而言,信号在此情形下是有所减少的,并且与和方面相比较是有所增加的。 #

图12 使用内部计数器框图

#

能够用来指示复位之后的首个有效字节数据,一开始是处于低电平状态的,在高速收发器进行复位操作实现完成以后,当用户着手开始传输第一个数据之际被拉高,在这之后能够保持为任意一种数值 。

#

实际上呢,是内部的计数器,当计数达到固定的数值之后,所产生的,用于告知用户,要暂停发送数据的,这样的一个信号 。 #

在内部计数器计数至固定数值之后,要是用户数据位宽与PCS传输数据位宽相等,那么就会拉低三个时钟,要是用户数据位宽为PCS传输数据位宽的两倍,那么就会拉低两个时钟。 #

第一个时钟被拉低时,用户能够给GTX发送数据,从第二个时钟被拉低起,用户数据要保持恒定,直至被拉高。就如同下面所呈现的,拉低之后首个时钟,用户数据持续变动,拉高一个时钟后,用户数据才开始发生改变。

#

图13 GTX 收发器中的 TX 内部序列模式

#

有关发送通道的编码相关方面,就讲解完了,所涉及到的信号比较少,主要是变速箱的计数器,有外置和内置两种情况,也较为简单。

#

3、GTX的编码接收原理 #

GTX的接收通道之中,存在着一个RX,它会将接收而来的66位数据,转换成为2位同步头以及64位数据,进而输出给用户,在下图里边,红色的走线是运用编码信号的路径,蓝色的则是不使用编码信号时的路径。

#

要留意,接收通道的内部,是不存在解扰器的,这就要求用户,在GTX的外部,自行去进行解扰。 #

图14 GTX接收通道框图 #

GTX在运用编码之际,并同时,接收端跟用户端口信号相连接,呈现出如下的图示状况,其中涵盖了数据信号,还有数据有效那得以进行指示的信号,另外,存在同步头,以及同步头有效那能够指示的信号,并且,还有滑块对齐信号 。

#

图15 在正常模式下的信号连接框图

#

输出数据的含义清晰,同步头的含义清晰,有效指示信号的含义也清晰,相关时序,如下图示,有效指示信号为高电平时,对应数据是有效的。图中,PCS在每个用户时钟,只能传输64位数据,然而每个时钟,需要输出2位同步头和64位数据,总共66位数据,所以没经过32个时钟,就需要先缓存64位数据,此时不输出数据,方可维持这种数据差。

#

图16 输出数据时序

#

要明白,在下图里,RX的工作原理会变得特别容易理解,其中,用户端口的位宽是32位,PCS内部数据的位宽同样是32位,并且,每两个时钟周期才能够输出一个为64位的数据。

#

在第N个时钟之际,内部已然存满了64位数据,此时钟会输出第1个64位用户数据,先是输出2位同步码,接着输出32位数据,与此同时接收PCS传输而来的32位数据,在这个时钟结束之后内部尚有62位数据。第N+1个时钟仍然要接收32位数据,同时输出剩余的32位数据,并不输出同步码,经由两个时钟达成一个64位数据的输出。

#

在第N加2的那个时钟以及第N加3的那个时钟之内,是需要去输出第2个64位的那些数据的,经历了一番操作以后,内部剩余下来的是60位数据,通过这样即可知道,在经过64个时钟之后,内部的数据会被清空,进而需要暂停一个时钟来输出数据以此补充数据。

#

图17 RX 工作原理 #

接收通道仅可运用内部计数器,高电平意味着内部计数器的值是0,然而用户实际上不太在意内部计数器的取值,用户需明确转换的起始方位,以此保障输出并行数据的确切性,也就是输出数据对齐 。

#

GTX所采用的8B10B编码,于接收端借助设置检测K码,以此达成字节对齐,然而其接收通道并不具备提供对齐功能这一特点,而需要用户凭借拉高信号以及检测同步头的状态,从而实现手动对齐,这与另一者的手动对齐颇为相像呢,至于其中涉及到为何要进行对齐这一问题,能够点击查看相关讲解gsgbpx,二者原理是一致的。

#

处于正常传输数据的状况下,同步码存在2’b01以及2’b10这两种取值情况,并且控制帧,也就是同步码为2’b10的那些,不会接连出现多字节的情形。 #

下列为对齐策略,于复位成功后,先检测同步码状态。若同步码呈现2’b00或2’b11,且连续多个时钟周期浮现控制帧(2’b10),将信号拉高一个时钟周期,以此调整输出数据转换的起始位置。历经32个时钟后再度检测同步码状态(因需等待调整位置成功且转换完成后进而判断),要是同步码仍然保持先前状态,便重复上述操作。 #

倘若同步码在诸多个时钟周期内持续保持正常状态,那就意味着输出数据对齐已然成功,在这个时候所输出的数据为正确数据,而后一旦再次出现错误同步码,照样还是得重新进行对齐,关于这部分内容能够于官方示例工程当中予以查看(示例工程编写得颇为繁杂,建议自行编写,可参照工程)。

#

图18 对齐过程的时序

#

就这部分对齐的内容而言,官方手册当中存在着一个针对状态机的讲解,其涉及的情况太过繁杂,没有必要去看,不妨瞧一瞧最后这张时序图。在进行复位操作之后,同步头出现了多次失效的状况,又有多次处于被拉高的情形,一直持续到连续经由多个时钟检测到正确的同步头才停止,最终拉高则意味着对齐达成。 #

达到此处,关于 GTX 的相关原理便解说完毕了,要是有了先前针对 GTX 的某些基础,IP 的其余设定与 8B10B 大致相同。因而后续配置 IP 相对较为简便,用户运用接收数据之时的困难相较 8B10B 会低许多。 #

源出于手册的是本文所关联的框图,欲获取手册的人员,于后台回复为”手册”(此引号不涵盖在内哟),在文件夹以及GTX文件夹里头便能寻觅到与本文相关的手册。

#

要是对于文章内容的理解存在疑惑,或者对代码不理解,能够在评论区留言,或者在后台留言,被看到之后都会给予回复!

#

责编:admin 返回顶部  打印

关于我们联系我们友情链接网站声明网站地图广告服务帮助中心