CN105515587A - 基于8b/10b编码规范的8b/10b编码生成集实现方法 - Google Patents
基于8b/10b编码规范的8b/10b编码生成集实现方法 Download PDFInfo
- Publication number
- CN105515587A CN105515587A CN201510895144.2A CN201510895144A CN105515587A CN 105515587 A CN105515587 A CN 105515587A CN 201510895144 A CN201510895144 A CN 201510895144A CN 105515587 A CN105515587 A CN 105515587A
- Authority
- CN
- China
- Prior art keywords
- coding
- code table
- data
- word
- run
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 230000010287 polarization Effects 0.000 claims description 24
- 230000005540 biological transmission Effects 0.000 abstract description 5
- 230000008901 benefit Effects 0.000 abstract description 4
- 230000001360 synchronised effect Effects 0.000 abstract 1
- 238000005516 engineering process Methods 0.000 description 7
- 230000009182 swimming Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 239000008280 blood Substances 0.000 description 1
- 210000004369 blood Anatomy 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000002203 pretreatment Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M9/00—Parallel/series conversion or vice versa
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明提供了一种基于8b/10b编码规范的8b/10b编码生成集实现方法,包括:对8b/10b编码码表中的码字进行编码并对编码结果的极性状态进行标记;根据8b/10b编码规范,建立16b/20b编码的游程受限约束关系,形成16b/20b编码的游程受限约束表;对16b/20b编码的游程受限约束表进行查表、翻转和替换操作,完成16b/20b编码。本发明具有逻辑简单开销低、速度快传输带宽高优点;通过将本发明16b/20b编码技术方案的CRD计算提前至编码器之前并增加一级同步延迟时钟,本发明技术方案可推广至32b/40b等更大规模8b/10b编码生成集实现。
Description
技术领域
本发明涉及数字通讯技术领域,具体地,涉及一种基于8b/10b编码规范的8b/10b编码生成集实现方法。
背景技术
8b/10b编码制式由IBM在1982年发明,广泛应用于诸如G/XGbps以太网、光纤通信、服务器网络、FICON、IEEE1394b、InfiniBand等结构中。编码的主要目的是将串行数据的位发送时钟嵌入到串行位流中,在链路上省去随数据一起发送的时钟信号线,从而避免高频时钟信号产生的EMI噪声。8b/10b编码器保证发送位流中不会出现含有多于5个连续的1或0,并且同时保证在任意时间检测尺度内,0或者1数目的差值不会超过5。8b/10b编码器保证每个10位符号中含有相近的1、0个数,且连同10位符号给出当前流动差异CRD(currentrunningdisparity)。CRD反映了自从链路初始化以来发送链路所发送的1和0个数的差异,然后8b/10b编码器根据CRD选取下一个字符的两个10位编码之一输出,目的是保持被发送的1和0的个数尽可能地接近相等,维持发送信号上1和0个数的平衡,以此维持信号的直流平均值为信号阀值电压的一半,使接收信号不含DC成分,减少位间干扰。因为通路信号是通过电容耦合的,如果信号所含DC成分高,通路耦合电容或内部的线电容被过充电,将会使信号不能从一种逻辑电平正确地切换到另一种。在具体实现方法上,8b/10b编码是将一组8位数据分解成高5位和低3位两组数据(假定编码顺序从高位到低位,同数据传输顺序),分别编码为6位和4位的两组,然后合成为10位的编码,这样做的好处是将编码任务并行化,尽量减少组合逻辑延时,节省存储器空间,提高编码器性能。除以上提到的数据字编码过程,8b/10b编码规范还定义了12个特殊控制字符或称为有序集。由于控制字符比较少,可以不采用分组编码而作为一个整体进行编码。
申请号为200410002290.X的中国专利申请《基于8b/10b编码器的16b/20b编码器逻辑实现方法》中提到,由于DDR技术的出现,当8b/10b编码方案用于双沿器件时,会给硬件设计带来困难。具体表现是,双沿工作的8b/10b编码器本质上由两个分别工作于时钟上升沿和下降沿的单沿8b/10b编码器组合而成。每一个编码器的游程平衡偏移输出与另一个编码器的游程平衡偏移输入相连,从而实现游程偏移在时间上的相互继承。实现游程继承的这条连线实际上跨越两相时钟域,成为时序的关键路径。在时钟频率为100MHz的情况下,这条连线上的信号的送出延迟时间和输入建立时间之和必须小于5ns,两项操作如果按均分估算则各为2.5ns。2.5ns的建立时间要求在时钟周期为10ns的情况下明显苛刻,成为关键路径。为了解决这个问题,该中国专利申请提出了一种基于双8b/10b编码器的16b/20b编码器逻辑实现方法,技术方案是基于已有的8b/10b编码器(可编程逻辑器件供应商提供的成熟8b/10bIP-core)加一级编码前处理预测单元,用于提前生成游程平衡偏移以控制8b/10b编码器的游程偏移输入端,实现及时的正确编码。该中国专利申请同时在文中提到,采取基于已有的8b/10bIP-core,是为了减少设计开销和降低设计成本。由于该中国专利申请基于已有的8b/10bIP-core,存在如下缺陷:非完全自主知识产权,核心设计基于IP-core。
发明内容
针对现有技术中存在的上述不足,本发明的目的是提供一种基于8b/10b编码规范的8b/10b编码生成集实现方法,基于8b/10b编码规范构造新的8b/10b编码生成集实现技术,提供全新的8b/10b编码生成集实现方案,解决由于DDR技术的出现导致的时钟频率较难满足问题,解决8b/10b编码游程平衡控制和提高传输带宽之间的矛盾。
为实现上述目的,本发明是通过以下技术方案实现的。
一种基于8b/10b编码规范的8b/10b编码生成集实现方法,包括如下步骤:
对8b/10b编码码表的码字极性状态进行标记;
根据8b/10b编码规范,建立16b/20b编码的游程受限约束关系,形成16b/20b编码的游程受限约束表;
对16b/20b编码的游程受限约束表进行查表、翻转和替换操作,完成16b/20b编码。
优选地,所述对8b/10b编码码表码字极性状态进行标记,具体为:
使用rd_current表示码字极性状态;
所述8b/10b数据字编码码表通过5b/6b数据字码表和3b/4b数据字码表实现,控制字编码则通过一张码表实现,其中:
所述5b/6b数据字码表和3b/4b数据字码表中,rd_current用一位表示;
所述控制字码表中,将8b/10b作为一个整体标记,rd_current用两位表示,两位中的低位和高位分别表示码字低6位和高4位的极性状态;
当码字中1比0多或者0比1多时,为极性不平衡,标记为1;当码字中0和1数量相等时,为极性平衡,标记为0。
优选地,所述建立16b/20b编码的游程受限约束关系具体为:
包括如下步骤:
步骤S2.1,对5b/6b数据字码表和3b/4b数据字码表进行并行查表过程;所述5b/6b数据字码表和3b/4b数据字码表的每一个输入均包括两个可供选择的表项,其中,5b/6b数据字码表编码结果根据CRD现行状态来选择;3b/4b数据字码表编码结果除了根据CRD现行状态外,还要根据5b/6b编码结果的极性状态数据字码表编码后码字中的0和1的个数来选择,进而形成8b/10b编码码表;
步骤S2.2,建立两个8b码字的游程受限约束关系。此游程受限约束关系与CRD现行状态、待编码数据高8位和低8位的编码结果极性情况有关,探索并建立16b/20b编码游程受限约束关系,并将这种约束关系建立成16b/20b编码的游程受限约束表。
优选地,所述16b/20b编码的游程受限约束关系具体为:
记待编码数据为TXD[15:0],控制信息为TXC[1:0];其中,TXC[1:0]中的0表示8位的TXD是数据字,TXC[1:0]中的1表示8位的TXD是控制字;编码顺序从高位到低位;编码输出tx_data[19:0];存在如下关系:
rd_ctrl[4:0]=[rd_ind6b_temp_H[6]d4b_temp_H[4]d6b_temp_L[6]d4b_temp_L[4]];
其中:
rd_ctrl[4:0]表示待编码数据的极性状态控制信息;
rd_in表示输入极性,0表示极性为负,1表示极性为正;
d6b_temp_H[6]、d4b_temp_H[4]、d6b_temp_L[6]、d4b_temp_L[4]分别表示输入高8和低8位数据的5b/6b和3b/4b编码结果的极性状态,所述5b/6b和3b/4b编码结果的极性状态通过rd_current表项得到;
rd_out通过rd_ctrl[4:0]的5bits数据模2加得到;
控制字码表编码结果的高10位和低10位分别表示为c10b_H[9:0]和c10b_L[9:0],5b/6b数据字码表的编码结果表示为:d6b_H[5:0]、d6b_L[5:0],3b/4b数据字码表的编码结果表示为:d4b_H[3:0]、d4b_L[3:0];缺省选择码表中极性为正的码字,即码表CRD为“-”列;编码结果是否需要翻转表示为reversal_flag,其中,reversal_flag标记为0表示不翻转,reversal_flag标记为1表示翻转;遵照8b/10b编码规范,建立16b/20b编码游程受限约束关系。
优选地,所述对16b/20b编码的游程受限约束表进行查表、翻转和替换操作具体为:
-查表操作,由待编码数据TXD[15:0]和控制信息TXC[1:0]查编码码表得到rd_ctrl[4:0];
-翻转操作:由rd_ctrl[4:0]和TXC[1:0]得到翻转控制信息reversal_flag,由TXD[15:0]和TXC[1:0]得到初步的编码结果defaultcodeword。两者做异或运算,reversal_flag标示编码结果是否需要做翻转操作。
当reversal_flag=1时,进行翻转操作;
当reversal_flag=0时,不进行翻转操作;
-替换操作(特殊情况处理):码表中存在一些特殊情况需要对defaultcodeword编码结果进行处理。D7.y和Dx.3的编码结果极性平衡,但有两个表项可选,仍需根据CRD情况判断是否需要翻转,Dx.7的编码结果有连续的3个0或者1,8b/10b编码规范关于游程受限约束的说明中规定,码字发送位流不出现连续的5个0或者1。为了避免出现连续的5个1或者0,需根据前一码字编码结果的低2位情况判断是否需要替换操作。
优选地,所述基于8b/10b编码规范的8b/10b编码生成集实现方法,还包括如下步骤:
由16b/20b编码过程的rd_ctrl[4:0]得到rd_out,作为下一次16b/20b编码过程的CRD输入。通过增加一级缓存器,两个16b/20b编码器并行工作完成32b/40b编码,依此方法,本发明技术方案推广到更大规模的8b/10b编码生成集实现。
与现有技术相比,本发明具有如下的有益效果:
1、本发明符合8b/10b编码通用规范、逻辑简单开销低、速度快传输带宽高;
2、本发明基于8b/10b编码规范,提供一种全新的8b/10b编码生成集实现方法,具备完全自主知识产权;
3、通过将本发明16b/20b编码实现方法的CRD计算提前至编码器之前并增加一级同步延迟时钟,本发明技术方案可推广至32b/40b等更大规模编码生成集实现。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明实现方法流程图;其中S0~S4表示状态1~4,S0表示待编码数据TXD[15:0]和控制信息TXC[1:0]就绪,S1表示由待编码数据TXD[15:0]和控制信息TXC[1:0]查编码码表得到rd_ctrl[4:0],S2表示由待编码数据TXD[15:0]和控制信息TXC[1:0]查编码码表得到缺省码字,S3表示由rd_ctrl[4:0]和defaultcodeword[19:0]得到一个中间状态的编码结果tempcodeword[19:0],S4表示编码结束;
图2为本发明硬件实现的逻辑时序图;
图3为本发明扩展至更大规模8b/10b编码生成集实现方法。
具体实施方式
下面对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
实施例
本实施例涉及数字通信技术领域,提供了一种基于8b/10b编码规范的8b/10b编码生成集实现方法。基于8b/10b编码规范构造,16b/20b编码游程受限约束关系,并将这种关系建立表格。两个8b/10b编码器之间的游程受限约束关系通过查表得到,编码器可同时并行工作完成编码,解决了由于DDR技术的出现导致两编码器之间时序紧张问题,解决了8b/10b编码游程平衡控制和提高传输带宽之间的矛盾。本实施例16b/20b编码结果的CRD在编码过程的第一个时钟可得到,它是下一次编码过程的输入,通过增加一级的同步延迟时钟和CRD逻辑运算,两个16b/20b编码器并行工作完成32b/40b编码,依此方法,本发明技术方案推广到了更大规模的8b/10b编码生成集实现。
下面结合具体实例对本实施例进一步描述。
本实施例提供的基于8b/10b编码规范的8b/10b编码生成集实现方法,从原理上阐述可以分为以下三个步骤:
步骤一:对8b/10b编码码表中的码字极性状态进行标记,1表示极性不平衡(1比0多或者0比1多),0表示极性平衡(码字中的0和1数量相等)。
使用rd_current表示码字的极性状态。数据字码表分5b/6b、3b/4b编码表标记,例如,D0的5b/6b编码输出011000/100]111,极性为不平衡,标记为1;D3的5b/6b编码输出110001,极性平衡,标记为0。控制字由于数量较少,8b/10b作为一个整体标记,rd_current用两位表示,高位和低位分别表示码字低6位和高4位的极性状态。D7的极性标记为平衡;Dx.3的极性标记为平衡。如表1、表2、表3。
表1数据字5b/6b编码表
表2数据字3b/4b编码表
Note:A7replacesP7if[(rd>0)and(e=i=0)]or[(rd<0)and(e=i=1)]
表3控制字编码表
步骤二:根据8b/10b编码规范,建立16b/20b编码的游程受限约束关系。
8b/10b编码操作通过两个并行的查表过程来完成。码表中的每一个输入有两个表项可供选择,5b/6b编码根据CRD现行状态来选择;3b/4b编码除了根据CRD现行状态外,还要根据5b/6b编码结果的0、1个数。本发明技术方案的16b/20b编码,除了8b/10b编码内部的子编码模块存在上述游程受限约束关系,两个8b码字之间也存在游程受限约束关系。而这个游程受限约束关系与以下因素有关:CRD现行状态,待编码数据高8位和低8位的编码结果极性情况。在本发明技术方案中,探索并建立16b/20b编码游程受限约束关系,并将这种约束关系建立成表。
记待编码数据TXD[15:0],控制信息TXC[1:0]。TXC中的0表示8位的TXD是数据字,1表示8位的TXD是控制字。编码顺序是从高位到低位。编码输出tx_data[19:0]。在表4中,rd_ctrl[4:0]=[rd_ind6b_temp_H[6]d4b_temp_H[4]d6b_temp_L[6]d4b_temp_L[4]];rd_in表示输入极性,0表示极性为负,1表示极性为正;6b_temp_H[6]d4b_temp_H[4]d6b_temp_L[6]d4b_temp_L[4]分别表示输入高8和低8位数据的5b/6b和3b/4b编码结果的极性状态,通过查表1、表2和表3中的rd_current表项得到;rd_out通过rd_ctrl[4:0]的5bits数据模2加得到;c10b_H[9:0],c10b_L[9:0]表示控制字编码结果的高10位和低10位,d6b_H[5:0],d4b_H[3:0],d6b_L[5:0],d4b_L[3:0]表示数据字的编码结果。缺省选择码表中极性为正的码字(码表CRD为‘-’列),Dx.7缺省选1110;reversal_flag标示这些编码结果是否需要翻转,0表示不翻转,1表示翻转。遵照8b/10b编码规范,研究并建立如表4所示的16b/20b编码游程受限约束关系。
通常情况,码字极性状态为平衡,表明它的编码输出只有一个,无需进一步判断是否要进行翻转的操作。但码表有一些特殊情况。D7.y和Dx.3的码字极性状态rd_current为平衡,但它们的编码输出(码字)有两个,仍需根据CRD和最近编码输出的极性状态判断是否要进行翻转的操作。再有,Dx.7的编码输出为0001/1110,码字本身存在连续的3个0或者1;8b/10b编码规范关于游程受限约束的说明中规定发送位流不出现连续的5个0或者1,故需判断Dx.7高6位输出的低2位是否出现了连续的0或者1;如果出现了连续的5个0或者1,需将0001替换成1000或者1110替换成0111。
表4编码极性控制表
续表4编码极性控制表
步骤三:查表、翻转和替换操作,完成16b/20b编码
表4reversal_flag[5:0]的6个bit用来表示编码输出是否需做翻转操作,从高到低位分别控制高8位控制字、低8位控制字、高8位数据字的5b/6b编码输出、高8位数据字的3b/4b编码输出、低8位数据字的5b/6b编码输出、低8位数据字的3b/4b编码输出。TXC[1:0]控制reversal_flag[5:0]的选择。00选择reversal_flag[3:0],11选择reversal_flag[5:4],10选择reversal_flag[5]&reversal_flag[1:0],01选择reversal_flag[3:2]&reversal_flag[4]。
由rd_ctrl[4:0]和TXC[1:0]得到16b/20b编码输出极性约束关系reversal_flag,将其与表1、表2和表3查到的极性为正的码字做异或操作,即得编码输出。
码表中存在一些特殊情况需做特殊处理。D7.y和Dx.3的编码结果极性平衡,但有两个表项可选,根据CRD情况作是否需要翻转的判断,Dx.7的编码结果为了避免出现连续的5个1或者0,需根据前一码字编码结果的低2位情况判断是否需要替换操作:
1)如果5b/6b编码输入为D7.y,5b/6b编码结果为xor([111000],rd_ctrl_temp),其中rd_ctrl_temp=rd_ctrl(4)。
2)如果3b/4b编码输入为Dx.3,3b/4b编码结果为xor([1100],rd_ctrl_temp),其中rd_ctrl_temp=xor(rd_ctrl(4),rd_ctrl(3))。
3)如果D7.y和Dx.3位于低8位,上式运算中的rd_ctrl_temp分别为mod(rd_ctrl(4)+rd_ctrl(3)+rd_ctrl(2),2),mod(rd_ctrl(4)+rd_ctrl(3)+rd_ctrl(2)+rd_ctrl(1),2)。
4)如果D_H=Dx.7&&reversal_flag(d4b_H)=0&&d6b_H[1:0]=‘11’,做替换d4b_H[3:0]=‘0111’;如果D_H=Dx.7&&reversal_flag(d4b_H)=1&&d6b_H[1:0]=‘00’,做替换d4b_H[3:0]=‘1000’。
5)如果D_L=Dx.7&&reversal_flag(d4b_L)=0&&d6b_L[1:0]=‘11’,做替换d4b_L[3:0]=‘0111’;如果D_L=Dx.7&&reversal_flag(d4b_L)=1&&d6b_L[1:0]=‘00]’,做替换d4b_L[3:0]=‘1000’。D_H表示高8位输入,D_L表示低8位输入。
其中,4)和5)中的d6b_H[5:0],d4b_H[3:0],d6b_L[5:0],d4b_L[3:0]表示数据的S3编码结果。
图2从逻辑实现角度阐述本发明技术方案,如下:
在第一个时钟,根据CRD、TXD[15:0]和TXC[1:0]查表1、表2、表3得到5bits的rd_ctrl[4:0];由TXD[15:0]和TXC[1:0]查表得到的编码结果,缺省情况下选择极性为正的码字。
在第二个时钟,将第一个时钟得到的码字与由rd_ctrl[4:0]与TXC[1:0]共同决定的reversal_flag做异或运算,得到初步的编码结果。
在第三个时钟,处理步骤三提到的特殊情况,得到最终的编码结果。
注意到在上述16b/20b编码器逻辑实现方案的第一个时钟可得编码输出的极性状态控制信息rd_out,它是下一次16b/20b编码过程的CRD输入。因此若加一级缓存器,两个16b/20b编码器可并行工作完成32b/40b编码。利用此方法,本实施例技术方案可推广至更大规模的8b/10b编码生成集实现。
本实施例具有逻辑简单开销低、速度快传输带宽高优点;通过将本发明16b/20b编码技术方案的CRD计算提前至编码器之前并增加一级同步延迟时钟,本实施例技术方案可推广至32b/40b等更大规模8b/10b编码生成集实现。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。
Claims (6)
1.一种基于8b/10b编码规范的8b/10b编码生成集实现方法,其特征在于,包括如下步骤:
对8b/10b编码码表中的码字极性状态进行标记;
根据8b/10b编码规范,建立16b/20b编码的游程受限约束关系,形成16b/20b编码的游程受限约束表;
依据待编码数据TXD[15:0]、控制信息TXC[1:0]以及当前流动差异CRD,对16b/20b编码的游程受限约束表进行查表、翻转和替换操作,完成16b/20b编码。
2.根据权利要求1所述的基于8b/10b编码规范的8b/10b编码生成集实现方法,其特征在于,所述对8b/10b编码码表中的码字进行编码并对编码结果的极性状态进行标记,具体为:
使用rd_current表示码字极性状态;
所述8b/10b编码码表,数据字编码通过5b/6b数据字码表和3b/4b数据字码表实现,控制字编码则通过一张码表实现,其中:
所述5b/6b数据字码表和3b/4b数据字码表中,rd_current用一位表示;
所述控制字码表中,将8b/10b作为一个整体标记,rd_current用两位表示,两位中的低位和高位分别表示码字低6位和高4位的极性状态;
当码字中1比0多或者0比1多时,为极性不平衡,标记为1;当码字中0和1数量相等时,为极性平衡,标记为0。
3.根据权利要求1所述的基于8b/10b编码规范的8b/10b编码生成集实现方法,其特征在于,所述建立16b/20b编码的游程受限约束关系具体为:
包括如下步骤:
步骤S2.1,对5b/6b数据字码表和3b/4b数据字码表进行并行查表过程;所述5b/6b数据字码表和3b/4b数据字码表的每一个输入均包括两个可供选择的表项,其中,5b/6b数据字码表编码结果根据CRD现行状态来选择;3b/4b数据字码表编码结果除了根据CRD现行状态外,还要根据5b/6b编码结果的极性状态数据字码表编码后码字中的0和1的个数来选择,进而形成8b/10b编码码表;
步骤S2.2,建立两个8b码字的游程受限约束关系;此游程受限约束关系与CRD现行状态、待编码数据高8位和低8位的编码结果极性情况有关,探索并建立16b/20b编码游程受限约束关系,并将这种约束关系建立成16b/20b编码的游程受限约束表。
4.根据权利要求3所述的基于8b/10b编码规范的8b/10b编码生成集实现方法,其特征在于,所述16b/20b编码的游程受限约束关系具体为:
记待编码数据为TXD[15:0],控制信息为TXC[1:0];其中,TXC[1:0]中的0表示8位的TXD是数据字,TXC[1:0]中的1表示8位的TXD是控制字;编码顺序从高位到低位;编码输出tx_data[19:0];存在如下关系:
rd_ctrl[4:0]=[rd_ind6b_temp_H[6]d4b_temp_H[4]d6b_temp_L[6]d4b_temp-L[4]];
其中:
rd_ctrl[4:0]表示待编码数据的极性状态控制信息;
rd_in表示输入极性,0表示极性为负,1表示极性为正;
d6b_temp_H[6]、d4b_temp_H[4]、d6b_temp_L[6]、d4b_temp_L[4]分别表示输入高8和低8位数据的5b/6b和3b/4b编码结果的极性状态,所述5b/6b和3b/4b编码结果的极性状态通过rd_current表项得到;
rd_out通过rd_ctrl[4:0]的5bits数据模2加得到;
控制字码表编码结果的高10位和低10位分别表示为c10b_H[9:0]和c10b_L[9:0],5b/6b数据字码表的编码结果表示为:d6b_H[5:0]、d6b_L[5:0],3b/4b数据字码表的编码结果表示为:d4b_H[3:0]、d4b_L[3:0];缺省选择码表中极性为正的码字,即码表CRD为“-”列;编码结果是否需要翻转表示为reversal_flag,其中,reversal_flag标记为0表示不翻转,reversal_flag标记为1表示翻转;遵照8b/10b编码规范,建立16b/20b编码游程受限约束关系。
5.根据权利要求1所述的基于8b/10b编码规范的8b/10b编码生成集实现方法,其特征在于,所述对16b/20b编码的游程受限约束表进行查表、翻转和替换操作具体为:
-查表操作,由待编码数据TXD[15:0]和控制信息TXC[1:0]查编码码表得到rd_ctrl[4:0];
-翻转操作:由rd_ctrl[4:0]和TXC[1:0]得到翻转控制信息reversal_flag,由TXD[15:0]和TXC[1:0]得到初步的编码结果defaultcodeword;两者做异或运算,reversal_flag标示编码结果是否需要做翻转操作;
当reversal_flag=1时,进行翻转操作;
当reversal_flag=0时,不进行翻转操作;
-替换操作:码表中存在一些特殊情况需要对defaultcodeword编码结果进行处理;D7.y和Dx.3的编码结果极性平衡,但有两个表项可选,仍需根据CRD情况判断是否需要翻转,Dx.7的编码结果有连续的3个0或者1,为了避免出现连续的5个1或者0,需根据前一码字编码结果的低2位情况判断是否需要替换操作。
6.根据权利要求1至5中任一项所述的基于8b/10b编码规范的8b/10b编码生成集实现方法,其特征在于,还包括如下步骤:
由16b/20b编码过程的rd_ctrl[4:0]得到rd_out,作为下一次16b/20b编码过程的CRD输入;通过增加一级缓存器,两个16b/20b编码器并行工作完成32b/40b编码,依此方法,本发明技术方案推广到更大规模的8b/10b编码生成集实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510895144.2A CN105515587B (zh) | 2015-12-07 | 2015-12-07 | 基于8b/10b编码规范的8b/10b编码生成集实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510895144.2A CN105515587B (zh) | 2015-12-07 | 2015-12-07 | 基于8b/10b编码规范的8b/10b编码生成集实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105515587A true CN105515587A (zh) | 2016-04-20 |
CN105515587B CN105515587B (zh) | 2019-05-31 |
Family
ID=55723302
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510895144.2A Active CN105515587B (zh) | 2015-12-07 | 2015-12-07 | 基于8b/10b编码规范的8b/10b编码生成集实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105515587B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6617984B1 (en) * | 2001-03-30 | 2003-09-09 | Xilinx, Inc. | 16B/20B encoder |
CN1558582A (zh) * | 2004-01-16 | 2004-12-29 | 中国科学院计算技术研究所 | 基于双8b/10b编码器的16b/20b编码器逻辑实现方法 |
US7064683B1 (en) * | 2005-01-19 | 2006-06-20 | Seagate Technology Llc | Speed optimized encoder with running disparity constraint |
CN104579583A (zh) * | 2015-02-09 | 2015-04-29 | 浪潮电子信息产业股份有限公司 | 一种对8b/10b编码方式的改进方法 |
-
2015
- 2015-12-07 CN CN201510895144.2A patent/CN105515587B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6617984B1 (en) * | 2001-03-30 | 2003-09-09 | Xilinx, Inc. | 16B/20B encoder |
CN1558582A (zh) * | 2004-01-16 | 2004-12-29 | 中国科学院计算技术研究所 | 基于双8b/10b编码器的16b/20b编码器逻辑实现方法 |
US7064683B1 (en) * | 2005-01-19 | 2006-06-20 | Seagate Technology Llc | Speed optimized encoder with running disparity constraint |
CN104579583A (zh) * | 2015-02-09 | 2015-04-29 | 浪潮电子信息产业股份有限公司 | 一种对8b/10b编码方式的改进方法 |
Non-Patent Citations (2)
Title |
---|
M.S.SUMA等: "16B/20B CODEC Development and Its ASIC Implementation", 《2009 INTERNATIONAL CONFERENCE ON FUTURE COMPUTER AND COMMUNICATION》 * |
舒志兴等: "一种新的8B/10B编码器设计", 《微电子学和计算机》 * |
Also Published As
Publication number | Publication date |
---|---|
CN105515587B (zh) | 2019-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101674089B (zh) | 一种高速8b/10b编码器和解码器及其对错误输入的处理方法 | |
US20130266046A1 (en) | 8B/9B Encoding For Reducing Crosstalk on a High Speed Parallel Bus | |
JP2016514430A (ja) | クロック情報を信号状態の遷移に組み込むマルチワイヤシグナリングのためのトランスコーディング方法 | |
CN102857324B (zh) | 基于查找表的深空通信中ldpc串行编码器和编码方法 | |
CN104579583A (zh) | 一种对8b/10b编码方式的改进方法 | |
CN103118251A (zh) | 多电平数据传输的方法和系统 | |
CN105356891B (zh) | 一种高资源利用率的极性译码批处理方法 | |
US9270417B2 (en) | Devices and methods for facilitating data inversion to limit both instantaneous current and signal transitions | |
CN101540158A (zh) | 用于发送和接收数据位的装置和方法 | |
JP5564896B2 (ja) | 符号化装置、符号化方法、及びプログラム | |
CN102799410B (zh) | 基于李氏制约竞争计数编码的异步fifo地址转换电路 | |
US8798076B2 (en) | Method of transporting data with embedded clock | |
US8223041B2 (en) | Information processing apparatus, and signal processing method | |
CN109936441A (zh) | 一种基于数据存储的流水sha256硬件实现方法 | |
CN105515587A (zh) | 基于8b/10b编码规范的8b/10b编码生成集实现方法 | |
CN102868495B (zh) | 基于查找表的近地通信中ldpc串行编码器和编码方法 | |
CN102394640A (zh) | 延时锁定环电路及快速锁定算法 | |
CN105006222A (zh) | 面板及信号编码方法 | |
CN102594371B (zh) | 一种Turbo编码交织处理的方法及装置 | |
CN105049057B (zh) | 一种面向128位并行输入的crc‑32校验电路 | |
US12066965B2 (en) | Encoding of symbols for a computer interconnect based on frequency of symbol values | |
CN204143430U (zh) | 弹性先进先出存储器 | |
CN106951212A (zh) | 一种快速、低功耗和省面积的极化码解码器中f、g运算单元的硬件架构 | |
JPH01295533A (ja) | ビタビ復号器 | |
CN100428632C (zh) | 一种组合编码器和组合解码器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |