基于8b/10b编码规范的8b/10b编码生成集实现方法_2

文档序号:9754067阅读:来源:国知局
括如下步 骤:
[0036] 由16b/20b编码过程的rd_ctrl[4:0]得到rd_out,作为下一次16b/20b编码过程的 CRD输入。通过增加一级缓存器,两个16b/20b编码器并行工作完成32b/40b编码,依此方法, 本发明技术方案推广到更大规模的8b/10b编码生成集实现。
[0037] 与现有技术相比,本发明具有如下的有益效果:
[0038] 1、本发明符合8b/10b编码通用规范、逻辑简单开销低、速度快传输带宽高;
[0039] 2、本发明基于8b/10b编码规范,提供一种全新的8b/10b编码生成集实现方法,具 备完全自主知识产权;
[0040] 3、通过将本发明16b/20b编码实现方法的CRD计算提前至编码器之前并增加一级 同步延迟时钟,本发明技术方案可推广至32b/40b等更大规模编码生成集实现。
【附图说明】
[0041] 通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、 目的和优点将会变得更明显:
[0042] 图1为本发明实现方法流程图;其中S0~S4表示状态1~4,S0表示待编码数据TXD [15:0 ]和控制信息TXC[ 1:0 ]就绪,S1表示由待编码数据TXD [ 15:0 ]和控制信息TXC[ 1:0 ]查 编码码表得到"_(:杜1[4:0],32表示由待编码数据1乂0[15:0]和控制信息1乂(:[1 :0]查编码 码表得到缺省码字,S3表示由rd_ctrl[4:0]和default codeword[ 19:0]得到一个中间状态 的编码结果temp codeword[ 19:0],S4表示编码结束;
[0043]图2为本发明硬件实现的逻辑时序图;
[0044]图3为本发明扩展至更大规模8b/10b编码生成集实现方法。
【具体实施方式】
[0045] 下面对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行 实施,给出了详细的实施方式和具体的操作过程。应当指出的是,对本领域的普通技术人员 来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保 护范围。
[0046] 实施例
[0047]本实施例涉及数字通信技术领域,提供了一种基于8b/10b编码规范的8b/10b编码 生成集实现方法。基于8b/10b编码规范构造,16b/20b编码游程受限约束关系,并将这种关 系建立表格。两个8b/10b编码器之间的游程受限约束关系通过查表得到,编码器可同时并 行工作完成编码,解决了由于DDR技术的出现导致两编码器之间时序紧张问题,解决了 8b/ 10b编码游程平衡控制和提高传输带宽之间的矛盾。本实施例16b/20b编码结果的CRD在编 码过程的第一个时钟可得到,它是下一次编码过程的输入,通过增加一级的同步延迟时钟 和CRD逻辑运算,两个16b/20b编码器并行工作完成32b/40b编码,依此方法,本发明技术方 案推广到了更大规模的8b/10b编码生成集实现。
[0048]下面结合具体实例对本实施例进一步描述。
[0049]本实施例提供的基于8b/10b编码规范的8b/10b编码生成集实现方法,从原理上阐 述可以分为以下三个步骤:
[0050] 步骤一:对8b/10b编码码表中的码字极性状态进行标记,1表示极性不平衡(1比0 多或者0比1多),〇表示极性平衡(码字中的0和1数量相等)。
[0051 ] 使用rd_current表示码字的极性状态。数据字码表分5b/6b、3b/4b编码表标记,例 如,D0的5b/6b编码输出011000/100]111,极性为不平衡,标记为1;03的513/613编码输出 110001,极性平衡,标记为0。控制字由于数量较少,8b/10b作为一个整体标记,rd_current 用两位表示,高位和低位分别表示码字低6位和高4位的极性状态。D7的极性标记为平衡; Dx. 3的极性标记为平衡。如表1、表2、表3。
[0052] 表1数据字5b/6b编码表 [0053]
[0054] 表2数据字3b/4b编码表
[0055]
[0056] Note:A7replaces P7if[(rd>0)and(e = i = 0)]or[(rd<0)and(e = i = 1)]
[0057] 表3控制字编码表
[0058]
[0059] 步骤二:根据8b/10b编码规范,建立16b/20b编码的游程受限约束关系。
[0060] 8b/10b编码操作通过两个并行的查表过程来完成。码表中的每一个输入有两个表 项可供选择,5b/6b编码根据CRD现行状态来选择;3b/4b编码除了根据CRD现行状态外,还要 根据5b/6b编码结果的0、1个数。本发明技术方案的16b/20b编码,除了 8b/10b编码内部的子 编码模块存在上述游程受限约束关系,两个8b码字之间也存在游程受限约束关系。而这个 游程受限约束关系与以下因素有关:CRD现行状态,待编码数据高8位和低8位的编码结果极 性情况。在本发明技术方案中,探索并建立16b/20b编码游程受限约束关系,并将这种约束 关系建立成表。
[0061 ] 记待编码数据TXD[ 15:0],控制信息TXC[ 1:0] JXC中的0表示8位的TXD是数据字,1 表示8位的TXD是控制字。编码顺序是从高位到低位。编码输出tx_data[19:0]。在表4中,rd_ ctrl[4:0]=[rd_in d6b_temp_H[6]d4b_temp_H[4]d6b_temp_L[6]d4b_temp_L[4]];rd_in 表示输入极性,〇表示极性为负,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_ctr 1 [ 4:0 ]的5bi ts数据模2加 得到;(31013_!1[9:0],(31013_1^[9:0]表示控制字编码结果的高10位和低10位,(1613_!1[5 :0], d4b_H[3:0],d6b_L[5:0],d4b_L[3:0]表示数据字的编码结果。缺省选择码表中极性为正的 码字(码表CRD为列),Dx. 7缺省选1110;reversal_f lag标示这些编码结果是否需要翻 转,0表示不翻转,1表示翻转。遵照8b/10b编码规范,研究并建立如表4所示的16b/20b编码 游程受限约束关系。
[0062]通常情况,码字极性状态为平衡,表明它的编码输出只有一个,无需进一步判断是 否要进行翻转的操作。但码表有一些特殊情况。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。
[0063] 表4编码极性控制表 [0064]
[0065] 续表4编码极性控制表
[0066]
[0067] 步骤三:查表、翻转和替换操作,完成16b/20b编码
[0068] 表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]〇
[0069] 由rd_ctrl [4:0]和TXC[ 1:0 ]得到 16b/20b 编码输出极性约束关系 reversal_flag, 将其与表1、表2和表3查到的极性为正的码字做异或操作,即得编码输出。
[0070] 码表中存在一些特殊情况需做特殊处理。D7. y和Dx. 3的编码结果极性平衡,但有 两个表项可选,根据CRD情况作是否需要翻转的判断,Dx.7的编码结果为了避免出现连续的 5个1或者0,需根据前一码字编码结果的低2位情况判断是否需要替换操作:
[0071 ] 1)如果5b/6b编码输入为D7 · y,5b/6b编码结果为xor ([ 111000],rd_ctrl_temp), 其中;rd_ctrl_temp = ;rd_ct;rl(4) 〇
[0072] 2)如果3b/4b编码输入为Dx · 3,3b/4b编码结果为xor([ 1100],rd_ctrl_temp),其 中rd_ctrl_temp = xor(rd_ctrl(4),rd_ctrl(3)) 〇
[0073] 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_c
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1