当前位置:首页 > EDA > 电子设计自动化
[导读]8b10b编码作为数字通信领域中的一项重要线路编码方案,其核心理念在于将每8位数据映射到10位编码中。这个映射过程严格按照特定规则进行,旨在保证编码中的电平转换足够,以维持信号的直流平衡,并提供足够的时钟信息,使接收端能够准确无误地解码数据。这种编码技术在多个通信系统中发挥着关键作用,其中包括但不限于Aurora、PCIe、USB、光纤通信、SATA和HDMI等。在这些应用场景中,8b10b编码通过其独特的特性,如电平平衡、时钟恢复和错误检测,确保了高速数字数据的可靠传输。在今天的通信标准中,8b10b编码已经成为确保数据完整性和可靠性的不可或缺的一环。

8b10b编码作为数字通信领域中的一项重要线路编码方案,其核心理念在于将每8位数据映射到10位编码中。这个映射过程严格按照特定规则进行,旨在保证编码中的电平转换足够,以维持信号的直流平衡,并提供足够的时钟信息,使接收端能够准确无误地解码数据。这种编码技术在多个通信系统中发挥着关键作用,其中包括但不限于Aurora、PCIe、USB、光纤通信、SATA和HDMI等。在这些应用场景中,8b10b编码通过其独特的特性,如电平平衡、时钟恢复和错误检测,确保了高速数字数据的可靠传输。在今天的通信标准中,8b10b编码已经成为确保数据完整性和可靠性的不可或缺的一环。

1为什么要使用8b10b编码

由于串行链路中存在交流耦合电容,理想电容的阻抗公式为Zc=1/2πf*C。因此,随着信号频率的增加,阻抗逐渐降低;反之,频率降低时阻抗增加。在这种情况下,当信号频率较高时,传输基本上可以实现零损耗。然而,当码型为连续“0”或“1”时,电容的损耗显著增加,导致信号幅度不断下降。这带来的严重后果是无法准确识别是“1”还是“0”。因此,为了尽量减小低频码型的损耗,8b10b编码技术应运而生。8b10b编码的主要目标是优化低频码型,将其转换为较高频的码型,以确保在传输过程中降低损耗,这就是直流平衡。通过这种方式,我们能够在高频率条件下更可靠地传输数据,提高串行链路的性能和稳定性。8b/10b编码的提出最早应用在光纤的传输技术,8b/10b技术是将8个比特经过某种映射的机制转化为10个比特的字码,分两组分别进行映射的处理,分别是 5B/6B 与 3B/4B 的处理。

FPGA基础:8b/10b编码原理详解

2不均等性——Disparity

8b10b编码产生的输出为10位,经过8b10b编码后只存在三种情况,分别是"+2" "0" "-2",它们代表了三种不均等性(Disparity)。在这里,不均等性通过计算 "1" 的数量减去 "0" 的数量得到,即 Disparity = "1"的数量 - "0"的数量。通过利用这种不均等性与 Disparity 的关系,可以确保发送的 "0" 和 "1" 的数量保持一致,从而有效地限制了连续的 "1" 或 "0" 不超过5位。这种机制有助于维持编码的直流平衡,保障了数据的可靠传输。

· "+2"表示10b内有4b的"0",6b的"1"。

· " 0"表示10b内有5b的"0",5b的"1"。

· "-2"表示10b内有6b的"0",4b的"1"。

3编码原理

8b10b编码会将8b数据分成两组,一组3b(HGF),一组5b(EDCBA),经过8b10b编码后,3b(HGF)经过3b4b编码变成4b(fghj),5b(EDCBA)经过5b6b编码变成6b(abcdefgi),合起来就是10b(abcdefgifghj)。此外,“D.x.y”是数据码(D即是Data),“K.x.y”指控制码(K即是Key),x与y表示输入的原始数据。

FPGA基础:8b/10b编码原理详解

不均等性执行规则

FPGA基础:8b/10b编码原理详解

8b/10b编码是DC-free(直流平衡)的,意味着长时间的传输比特数的1和0的比例恰好为50%。为了实现这一点,传输的1的数量和0的数量之间的差异始终被限制在±2之间,并且在每个符号的末尾,它要么是+1要么是−1。这个差异被称为运行差异(RD,running disparity)

· 当RD = -1时,表示编码后"1"的个数比"0"的个数多2个,表示"1"多;

· 当RD = +1时,表示编码后"0"的个数比"1"的个数多2个,表示"0"多;

这里为什么是2呢,这是由于4 bit和6bit的两个子分组都是偶数个位数,所以不平衡度不可能是“+1” 或“-1”,因此,在8B/10B编码方案中会使用不平衡度为“+2” 和“-2” 的值。

编码的过程就是使得"0"和"1"的数量均衡,防止"0"或"1"过长的现象,因此在"1"多的时候会翻转RD-变为RD+,在"0"多的时候会翻转RD+变为RD-,在编码过程中,RD的初值为-1,当编码为完美平衡编码时,如上表所示不均等性(Disparity of 6 or 4 bit Code)为0,RD的极性(Next RD)不反转;当编码“1”和“0”的数量不等时,如上表所示不均等性为±2,则RD的极性(Next RD)反转。

上表有四种情况,Next RD值依赖于Current RD以及当前6B码或者4B码的Disparity。根据Current RD的值,决定5B/4B和 3B/4B编码映射方式:

· 当前RD为-1,编码"0"和"1"数量相等即不均等性为0,则选择Disparity为0的编码,下次RD的极性不变为-1。

· 当前RD为-1,编码"0"和"1"数量不等即不均等性为±2,根据RD = -1选择Disparity为+2的编码,下次RD的极性翻转为+1。

· 当前RD为+1,编码"0"和"1"数量相等即不均等性为0,则选择Disparity为0的编码,下次RD的极性不变为+1。

· 当前RD为+1,编码"0"和"1"数量不等即不均等性为±2,根据RD = +1选择Disparity为-2的编码,下次RD的极性翻转为+1。

FPGA基础:8b/10b编码原理详解

下表分别为5b6b和3b4b的映射码表,对于每个具有不同数量的1和0的5b/6b和3b/4b编码,都有两种可以用于传输的比特模式:一种是含有两个更多“1”比特,另一种是所有比特取反从而含有两个更多“0”。根据信号的当前的RD,编码引擎会选择对给定数据发送哪两种可能的六位或四位序列之一。

FPGA基础:8b/10b编码原理详解

下面是一个例子:

o 原数据为D.01.3即8b'011_00001

o 当前5b6b编码RD = -1,可以看到EDCBA为D.01,5b6b编码后为5b'011101

o 当前3b4b编码RD = -1,可以看到HGF为D.x.3,3b4b编码后为3'b0011

o 综合起来8b'01100001经过8b10b编码后变成10'b0111010011

o 编码后Disparity = -2,则最终的RD需要由RD-1翻转为RD+1

D.x.7主要编码和备用编码

从上图可以看到,D.x.7有两套编码,分别是D.x.P7(主要,Primary)和D.x.A7(备用,Alternate),这是为了避免与前面的5b/6b代码组合时出现5个连续的0或1.

· 当 RD = -1,5b/6b编码 x = 17,18或20时,如果选择D.x.P7则会出现5个连续的1,所以需要选择备用编码D.x.A7

· 当 RD = -1,5b/6b编码 x = 11,13或24时,如果选择D.x.P7则会出现5个连续的0,使用需要选择备用编码D.x.A7

控制符号(Control Symbols)

在8b/10b编码中,控制符号是10位符号,它们是有效的位序列(包含不超过六个1或0),但没有对应的8位数据字节。这些控制符号主要用于执行低级别的控制功能。例如,在光纤通信中,K28.5 用于执行循环仲裁、填充字、链路重置等功能的四字节序列(称为“有序集”)的开头。

通过引入K.28或备用的D.x.A7输出,可以创建用于控制的12个特殊符号。这些符号不携带实际的数据,而是用于在数据流中标识和控制特定的状态或操作。其中有一些逗号序列,这是一个在数据流中独特且不会与实际数据混淆的位模式。通过检测逗号序列,接收方可以确定字节边界,帮助正确解释和处理数据流中的字节。

只有K.28.1、K.28.5和K.28.7生成包含五个0或1位序列的逗号序列。这些逗号序列的格式是11000001xx或00111110xx,其中xx表示任意两位。

逗号序列中有两个相同的前导位("00","11"),是为了应对当逗号序列跨越两个符号时,可能出现连续五个相同的位。这种设计确保了逗号序列的唯一性,从而在解析数据流时,可以准确识别并用于确定字节边界。例如,D.x.A7(0111)后面可能跟着一个以两个相同位开始的符号,比如D.03(110001)、D.11、D.12、D.19、D.20、D.28或K.28,但是,D.x.A7始终以一个非相同的位作为前导位,因此形成的模式是ifghj_abc = 10111_110或01000_001,如果前导位为非相同位("10","01")则不认为他是逗号序列。

在控制符号中,只有在x等于23、27、29、30时,K.x才能与A7组合使用。对于其他D.x.A7编码,不应该使用,因为这可能导致逗号序列的对齐错误。

FPGA基础:8b/10b编码原理详解

FPGA基础:8b/10b编码原理详解

4带宽利用率

在8b/10b编码中,每8位数据被编码成10位,其中2位用于控制目的。考虑到每8位数据编码成10位,带宽利用率可以计算为8/10 = 80%。这表示在8b/10b编码中,80%的比特用于传输实际的数据,而其余的20%用于控制和维护直流平衡。

5总结

本文主要介绍了8b10b的编码原理,8b/10b编码是一种用于高速数据通信的编码方案,其设计目的是保持直流平衡,并通过控制符号实现一些控制功能。在后续,我们将深入探讨如何在FPGA中实现和优化8b/10b编码,以满足不同应用场景的性能和可靠性需求。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭