CN113949388B - 用于串行器/解串器***的编解码器与编解码方法 - Google Patents
用于串行器/解串器***的编解码器与编解码方法 Download PDFInfo
- Publication number
- CN113949388B CN113949388B CN202111565744.4A CN202111565744A CN113949388B CN 113949388 B CN113949388 B CN 113949388B CN 202111565744 A CN202111565744 A CN 202111565744A CN 113949388 B CN113949388 B CN 113949388B
- Authority
- CN
- China
- Prior art keywords
- bit
- code
- code words
- code word
- bits
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M9/00—Parallel/series conversion or vice versa
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0015—Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy
- H04L1/0016—Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy involving special memory structures, e.g. look-up tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/0054—Detection of the synchronisation error by features other than the received signal transition
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明提供一种用于串行器/解串器(SerDes)***的编码器与编码方法,其用于将(M‑1)位码字编码为M位码字,其中M大于等于4的偶数。码表的查找表系经过设计以确保编码的DC平衡与保持一定水平的有效带宽利用率,且编码输出码流的最大游程控制在M‑2。通过查找表:若(M‑1)位码字映像到平衡码字(D=0的码字),其中D的计算规则为D=d‑M/2,d表示为M位码字中1的数目,则直接输出平衡码字作为输出的M位码字;若(M‑1)位码字映射到D=‑1的码字,则根据运行差异值RD选择D=1或D=‑1的码字作为输出的M位码字;若(M‑1)位码字映射到D=‑2的码字,则根据运行差异值RD选择D=2或D=‑2的码字作为输出的M位码字。对应地,本发明还提供对应编码器与编码方法的解码器与解码方法。
Description
技术领域
本发明涉及线路编解码设计领域,且特别是涉及一种用于串行器/解串器(SerDes)***的编码器、编码方法、解码器与解码方法。
背景技术
在串行器/解串器***中,线路编解码是非常重要的模块。线路编码机制将输入的原始数据转变成接收器可以接收的格式,并保证有足够的比特翻转提供给时钟恢复电路。编码后的码流可以保持良好的直流平衡,同时编码器还提供一种将数据对齐到字的方法。线路编码主要实现方式为数值查找法,也就使用码表的查找表查询待编码的码字找出对应的编码码字作为输出码字。目前已经被提出的线路编解码有3B4B、5B6B、8B10B与9B10B,8B10B编码目前被通用串行总线3.0(USB3.0)、序列进阶技术组件(SATA)、高速周边组件互连(PCIE)、快速输入输出(RapidIO)等多数高速串行总线标准所采用,9B10B编码则应用于被动式光网络(PON)***,而在一些较低阶的串行器/解串器***中则使用3B4B与5B6B,其中上述3B4B、5B6B、8B10B与9B10B中的第一个数字与第二个数字分别表示待编码码字的位数与输出的编码码字的位数,例如9B10B表示9位码字会被编码成10位码字。
美国公告专利US6977599 B2一案提供一种8B10B编解码技术方案,其具有游程短、直流(DC)平衡性好、适合并行编码与门电路实现节省了只读存储器(ROM)资源等优点,但其编码效率低,在高速串行器/解串器***中25%的编码冗余将会是提升有效带宽的瓶颈。
论文文献《一种适用于PON***的线路码——9B10B》,登载于《光通信技术》2010年第3期第27-29页,作者为杨小玲、赵彦飞、陈立甲与张钦宇,此论文文献主要提供一种编码游程短且带宽利用率高的编解码技术方案,但此技术方案仍有以下缺点需进一步改良:(1)未考虑串行通信中,K码与D码发生串码的问题,不适用于边界对齐的应用场景;(2)RD+码字和RD-码字不相关,不便于码表优化,其中RD+码字和RD-码字分别表示运行差异值为正时的编码码字与运行差异值为负的编码码字;以及(3)用于实现码表的查找表需要同时存储RD+的编码码字和RD-的编码码字,资源消耗大,不适用于ROM资源紧张的应用场景。
世界知识产权组织公开专利申请案WO 2008/134977 A1一案提出了带宽利用率高且解码实现简单的编解码技术方案,但此技术方案仍有以下缺点需进一步改良:(1)所设计的K码在串行通信中与D码发生串码,不适用于边界对齐的应用场景;以及(2)D码最大游程为10,提高了接收端时钟恢复的难度。
发明内容
本发明提供一种用于串行器/解串器***的编解码技术方案,其主要用于解决下列技术问题:(1)降低编码开销,以提高有效带宽利用率;(2)传输时最大游程控制在8以内,以让接收端时钟恢复更容易;(3)位流中的1和0尽可能地交替出现,确保码流的DC平衡;(4)D+码字由D-码字按位取反得到,以在存储码表时节省大量资源;(5)码表映像规则优化,便于门电路实现,节省ROM资源;以及(6)此编解码技术方案更可以用于设计专用的边界检测K码,以使边界检测K码不会与D码发生串码。
本发明提供一种用于串行器/解串器***的编码方法与执行所述编码方法的编码器,且其特征在于,所述编码方法包括:通过用于实现码表的查找表,根据(M-1)位待编码的码字与对应的1位K码指示信号找出对应的M位码字作为临时码字,其中所述查找表中全部的M位码字的差异值(Disparity)分别为0、-1或-2,或者,分别为0、+1或+2, M为大于等于4的偶数,所述查找表中的所述全部的M位码字包括多个D码码字与多个K码码字,且所述查找表中差异值为0的所述全部的D码码字不包括前M/2位全为0或1以及后M/2位全为0或1的多个M位码字;以及根据所述临时码字的所述差异值与运行差异值决定将所述临时码字作为编码码字或将所述临时码字进行按位取反后的结果作为所述编码码字,并据此更新所述运行差异值。
于上述的编码方法中,其中在所述查找表中所述全部的M位码字的所述差异值分别为0、-1或-2的设计下,在所述临时码字的所述差异值为-1或-2且所述运行差异值为负的情况下,输出将所述临时码字进行按位取反后的结果作为所述编码码字,否则将所述临时码字作为所述编码码字,其中更新后的所述运行差异值为之前的所述运行差异值加上2倍的所述编码码字的差异值。
于上述的编码方法中,其中在所述查找表中,L0个差异值为0的M位D码码字以十进制数值从大到小排列并与十进制数值(2M-1-L0+1)至(2M-1-1)的(M-1)位待编码码字一一对应,L1个差异值为-1的M位D码码字以十进制数值从大到小排列并与十进制数值(2M-1-L0-L1+1)至(2M-1-L0)的(M-1)位带编码码字一一对应,以及L2个差异值为-2的M位D码码字以十进制数值从大到小排列并与十进制数值0至(L2-1)的(M-1)位待编码码字一一对应,其中L0+L1+L2=2M-1。
于上述的编码方法中,其中多个M位码字中差异值为-2且未被做为所述多个D码码字中汉明距离较长者的x个M位码字被选为所述查找表的x个M位普通K码码字,以及前M/2位皆为0且后M/2位皆为1的M位码字“00…011…1”与前(M/2)-1位皆为1、第M/2位为0、第(M/2)+1位为1与其他位都为0的“11…10100…0”被选为所述查找表的两个边界对齐K码。
本发明提供一种用于串行器/解串器***的解码方法与执行所述解码方法的解码器,且其特征在于,所述解码方法包括:根据M位待解码的码字的差异值,对所述M位待解码的码字进行调整,以产生M位调整码字,其中M为大于等于4的偶数,查找表中的全部所述M位码字包括多个D码码字与多个K码码字,且所述查找表中差异值为0的所述全部的D码码字不包括前M/2位全为0或1以及后M/2位全为0或1的多个M位码字;以及通过所述查找表,根据所述M位调整码字找出对应的(M-1)位码字作为解码码字,以及输出对应的1位K码指示信号与1位解码错误指示信号。
于上述的解码方法中,其中在用于实现码表的查找表中全部的M位码字的差异值被设计成分别为0、-1或-2时,若所述M位待解码的码字的差异值为+1或+2,则取所述M位待解码的码字进行按位取反后的结果作为所述调整码字,否则则将所述M位待解码的码字作为所述调整码字,在用于实现码表的查找表中全部的M位码字的差异值被设计成分别为0、+1或+2时,若所述M位待解码的码字的差异值为-1或-2,则取所述M位待解码的码字进行按位取反后的结果作为所述调整码字,否则则将所述M位待解码的码字作为所述调整码字。
于上述的解码方法中,其中在所述查找表中,L0个差异值为0的M位D码码字以十进制数值从大到小排列并与十进制数值(2M-1-L0+1)至(2M-1-1)的(M-1)位码字一一对应,L1个差异值为-1的M位D码码字以十进制数值从大到小排列并与十进制数值(2M-1-L0-L1+1)至(2M-1-L0)的(M-1)位码字一一对应,以及L2个差异值为-2的M位D码码字以十进制数值从大到小排列并与十进制数值0至(L2-1)的(M-1)位码字一一对应,其中L0+L1+L2=2M-1。
于上述的解码方法中,其中多个M位码字中差异值为-2且未被作为做为所述多个D码码字中汉明距离较长者的x个M位码字被选为所述查找表的x个M位普通K码码字,以及前M/2位皆为0且后M/2位皆为1的M位码字“00…011…1”与前(M/2)-1位皆为1、第M/2位为0、第(M/2)+1位为1与其他位都为0的“11…10100…0”被选为所述查找表的两个边界对齐K码。
综合以上所述,本发明中提供的用于串行器/解串器***的编解码技术方案,其具有以下优点:(1)在确保码流DC平衡的同时,维持一定水平的编码效率及有效带宽利用率;(2)由于D+码字由D-码字按位取反得到,码表映射规则被优化,方便逻辑门电路实现,可节省大量资源,故适用于ROM资源紧张的应用场景;以及(3)若有经过边界检测K码的特别设计,在无错误传输的前提下,此编解码技术方案不会有D码和普通K码发生串码的情况,故具有保证了边界同步的正确性的优点。
附图说明
图1为根据本发明实施例串行器/解串器***的功能框图;
图2为根据本发明实施例用于串行器/解串器***的编码方法的流程图;
图3为根据本发明实施例用于串行器/解串器***的编码器、编码方法、解码器与解码方法所使用的码表的示意图;
图4为根据本发明实施例用于串行器/解串器***的编码方法的运行差异值的状态转移的示意图;
图5为根据本发明实施例用于串行器/解串器***的解码方法的流程图。
具体实施方式
现在将详细参考本发明的示范实施例,其示范实施例会在附图中被绘示出。在可能的情况下,在附图和说明书中使用相同的组件符号来指代相同或相似的部件。另外,示范实施例的做法仅是本发明的设计概念的实现方式的一者,下述的该等示范皆非用于限定本发明。
于本发明中,串行器/解串器***是一种时分多路复用(TDM)、点对点(P2P)的串行通信技术。即在发送端多路低速并行信号被转换成高速串行信号,经过传输媒介(光缆或铜线),最后在接收端将高速串行信号重新转换成低速并行信号。这种串行通信技术充分利用传输媒介的信道容量,减少所需的传输信道和器件引脚数目,提升信号的传输速率,从而大大降低通信成本。也就说,本发明的编解码技术方案可以用于采用时分多路复用(TDM)或点对点(P2P)的串行通信技术的***中。
于本发明中,游程(run length)是指码流中连续0或1的个数,最大游程则是指码表中所有编码码字的游程中最大者。当游程越小,则表示0与1分布越均匀,接收端时钟恢复就更容易。DC平衡是指位流中的1和0交替出现,故编码码字可被认为是交流信号,而顺利通过电容。DC不平衡是指位流中出现多个连续的1或0,可认为该时间段内的信号是直流,通过电容时会因为电压位阶的关系导致传输后的编码错误。高速串行总线采用线路编码技术的目的是平衡位流中的1和0,从而达到DC平衡。
于本发明中,数据被对齐K码序列隔开,接收器在数据流中扫描搜寻特定的比特序列(即对齐K码),如果找到序列,解串器调整字符边界以匹配检测到的对齐K码字符序列。扫描是连续进行的,一旦对齐确定,所有后续的K码和D码字符均会发现对齐已经确定。当然,在任意的序列组合中,对齐K码序列必须是唯一的,其他任意的字符序列都不包含该字符。
于本发明中,运行差异值(Running Disparity)简称RD值,表示编码过程中的不平衡度,当编码码字中0比1多,RD值为负;当编码码字中1比0多,RD值为正;当编码码字中0和1数目相等,RD值为0。差异值(Disparity)表示为D=d-M/2,其中d为M位编码码字中1的数量,D值为M位编码码字中0/1的差异情况,D+表示1比0多 ,D-表示0比1多,D=0表示编码码字为平衡码字,也就是0与1一样多。
请参照图1,图1为根据本发明实施例串行器/解串器***的功能框图。串行器/解串器***包括编码器11、串行器12、信道13、解串器14、边界对齐模块15与解码器16。编码器11电连接串行器12,串行器12通过信道13将串行的数据传送给信道13,解串器14通过信道13获取串行的数据,解串器14电连接边界对齐模块15,边界对齐模块15电连接解码器16。
编码器11接收输入于串行器/解串器***的N・(M-1)位的并行数据,并从高到低,分成N路的(M-1)位待编码的码字。编码器11接着将N路(M-1)位的码字进行编码,以产生N路M位的码字,其中N大于等于2,以及M为大于等于4的偶数,例如N=8,且M=4、6或10。另外,编码器11还接收N位的K码指示信号,其中每一路的(M-1)位待编码的码字对应到1位K码指示信号,且每一路的(M-1)位待编码的码字要编码成D码或K码是根据其对应的1位K码指示信号所决定。K码又分为普通K码与边界对齐K码,其中边界对齐K码被设计成特定的比特序列。编码器11包括多个硬件电路,且多个硬件电路包括了用于实现码表的查找表。
串行器12接收N路M位的码字的并行数据,并将此并行数据从高到低依序输出到信道13。于此实施例中,信道13可能是用于传输的有线通道,或者是搭配有电光转换功能的光纤,且本发明不以此为限制。解串器14接收N个M位的码字的串行数据,并将N个的M位码字从高到低组合成输出给边界对齐模块15的N・M位的并行数据。边界对齐模块15用于找出N・M位的并行数据中的边界对齐K码,以对齐N・M位的并行数据中的K码和D码,以输出对齐调整后的N・M位的并行数据。在此请注意,在其他实施例中,边界对齐模块15与解串器14的位置可能互换,即先进行边界对齐,之后才进行解串,且本发明不以此为限制。
解码器16接收对齐调整后的N・M位的并行数据,并将此并行数据从高到低,分成N路的M位待解码的码字。接着,解码器16将N路M位的码字进行解码,以产生N路(M-1)的码字作为串行器/解串器***所输出的并行数据。进一步地,解码器16还可以额外地输出N位K码指示信号与N位解码错误指示信号,其中每一个(M-1)位的码字对应1位K码指示信号与1位解码错误指示信号。解码器16包括多个硬件电路,且多个硬件电路包括了用于实现码表的查找表。
请接着参照图1与图2,图2为根据本发明实施例用于串行器/解串器***的编码方法的流程图。首先,在步骤S21,编码器11接收输入于串行器/解串器***的N・(M-1)位的并行数据,并从高到低,分成N路的(M-1)位待编码的码字。然后,在步骤S22,编码器11接收N位K码指示信号与获取N路的(M-1)位待编码的码字。之后,在步骤S23中,针对每一个(M-1)位待编码的码字,编码器11根据(M-1)位待编码的码字与对应的1位K码指示信号,通过码表的查找表找出对应的M位码字作为相应的临时码字,其中可以设计成临时码字为D≤0(在其他实施例中,也可以设计成临时码字为D≥0)。接着,在步骤S24中,编码器11根据运行差异值与临时码字的差异值,决定将进行按位取反临时码字的结果作为输出的M位码字或直接将临时码字作为输出的M位码字,以及据此更新运行差异值。在步骤S25中,编码器11将N个的M位码字从高到低组合成输出给信道的N・M位的数据。
在步骤S23中,码表是以数值查找表实现,且是经过专门设计得到的,其设计思路说明如下:(1)为了保证编码的DC平衡,需要尽可能选择M位码字中0和1数量相等或相差不大的码字作为备选码字;(2)为了控制编码后位流的游程尽可能短,将备选码字中前(M/2)高位或后(M/2)低位的连续0或1较长的码字删除不使用;(3)为了减少编码查找表的资源占用,D≠0的码字以配对码的形式出现,配对码中D>0的码字可以由D<0的码字按位取反得到,实现时只需要存储D≤0或D≥0的码字即可;(4)为了方便逻辑门实现,码表中0/1分布越集中,卡诺图化简得到的最简与或式就越简单,因此在设计码表的映射规则时,M位码字从大到小排列;(5)设计K码的原则是K码与D码不得重复,且K码与D码集合的平均汉明距离要尽可能大,以降低D码在传输过程中发生错误变成K码的概率;以及(6)为了保证接收机在数据流中对齐的正确性,需要设计对齐K码,此对齐K码序列必须是唯一的,其他任意的D码与K码组合均不包含该序列。
进一步地,根据上面的思路,以临时码字为D≤0为例,码表的设计为先设计D码码表,再设计K码码表,且D码码表的设计步骤如下:步骤(1),在这2M个码字中初步挑选了平衡码字(D=0)、全部的D=±1码字和至少一部分D=±2码字作为码字集合;步骤(2),为了控制编码输出码流的最大游程,删除码字集合中前(M/2)高位为全0或全1与后(M/2)低位为全0或全1的码字,以保证码字集合中,前(M/2)高位或后(M/2)低位最多只存在(M/2-1)位全0或全1的码字,码流中最多只存在(M-2)bit连续的0或1;步骤(3),从码字集合中选择L0个M位平衡码字用十进制数值表示,从大到小排列,再与输入数据值(2M-1-L0+1)至(2M-1-1)的(M-1)位待编码码字一一对应,其中根据卡诺图化简规则,0与1分布越集中,越容易化简,得到的最简与或式就越简单,从而门电路实现越简单;步骤(4),从码字集合中选择L1个D=+1码字和L1个D=-1码字,组成L1组配对码,其中任意一组配对码需满足如下条件,D=+1码字和D=-1码字的每一位均不相同,即D=+1码字可以由D=-1码字按位取反得到;步骤(5),将L1组配对码中D=-1码字用十进制数表示,从大到小排列,再与输入数据值(2M-1-L0-L1+1)至(2M-1-L0)的(M-1)位待编码码字一一对应;步骤(6),选择L2个D=+2码字和L2个D=-2码字,组成L2组配对码,其中任意一组配对码需满足如下条件,D=+2码字和D=-2码字的每一位均不相同,即D=+2码字可以由D=-2码字按位取反得到;以及步骤(7),将L2组配对码中D=-2码字用十进制数表示,从大到小排列,再与输入数据值0至(L2-1)的(M-1)位待编码码字一一对应,其中L0+L1+L2=2M-1。通过上述步骤(1)至(7)便能完成了2M-1个(M-1)位待编码码字编成D码的查找表。以M=10为例,L0可以是247,L1可以是191,以及L2可以是74。
接着,在筛选后的剩余码字中,再进行K码查找表的设计。K码码表的设计步骤如下:步骤(8),选择y个D=+2码字和D=-2码字,组成配对码,其中配对码需满足如下条件,D=+2码字和D=-2码字的每一位均不相同,即D=+2码字可以由D=-2码字按位取反得到;步骤(9),从y组配对码中,选择与所有D码的平均汉明距离尽可能大的x组,作为x组普通K码,其中x≤y;步骤(10),将x组配对码中D<0的码字用十进制数表示,从大到小排列,再与由大至小排列的x个特定输入数据值的(M-1)位待编码码字一一对应;以及步骤(11),将前M/2位皆为0且后M/2位皆为1的M位码字“00…011…1”与前(M/2)-1位皆为1、第M/2位为0、第(M/2)+1位为1与其他位都为0的“11…10100…0”组成配对码,作为特殊K码,用于边界对齐。两个特殊K码拼接,可以构造出一个游程为(M-1)的2M位序列。因为,其他K码和D码的任意组合最大游程为(M-2),保证了边界检测时,对齐K码不会与其他K码和D码发生串码,因此接收端检测到该序列,可以完成边界对齐。通过上述步骤(8)至(11)便能完成了x个特定输入数据值的(M-1)位待编码码字编成一般K码与特定两个输入数据值的(M-1)位待编码码字编成对齐K码的查找表。以M=10为例,x可以是13,且两个边界K码分别是“0000011111”和“1111010000”。
请参照图3,图3为根据本发明实施例用于串行器/解串器***的编码器、编码方法、解码器与解码方法所使用的码表的示意图。图3是根据上述步骤以M=10为例所产生的码表,其中于D码码表中,每一个9位待编码码字对应到RD+与RD-的一组10位编码码字,在十进制数据为265至511的247个9位待编码码字,其RD+与RD-的编码码字的十进制数据相同,在0到264的的247个9位待编码码字,其RD+与RD-的编码码字的十进制数据不相同,但RD+的编码码字为RD-的编码码字进行按位取反的结果。同样地,在K码码表中,除了对齐K码仅有RD-的编码码字,一般K码的RD+与RD-的编码码字的十进制数据不相同,但RD+的编码码字为RD-的编码码字进行按位取反的结果。据此,为了减少ROM资源,码表的查找表仅有存RD-的编码码字。
请参照图4,图4为根据本发明实施例用于串行器/解串器***的编码方法的运行差异值的状态转移的示意图。进一步地,在设计成临时码字为D≤0的实施例下:当临时码字为D=0,则步骤S24直接将临时码字当作编码码字作为输出,且更新后的运行差异值不变,next_RD=pre_RD,其中next_RD表示更新后的运行差异值,pre_RD表示现在的运行差异值;当临时码字为D<0且运行差异值为负,则步骤S24将进行按位取反临时码字的结果当作编码码字作为输出,且更新后的运行差异值为next_RD=pre_RD+2D',其中D'为编码码字的差异值;当临时码字为D<0且运行差异值为正,则步骤S24直接将临时码字当作编码码字作为输出,且更新后的运行差异值为next_RD=pre_RD+2D'。举例来说,当现在的运行差异值RD=-1,且临时码字为D=-1,则将进行按位取反临时码字的结果作为编码码字,且编码码字为D'=1,故更新后的运行差异值为RD=+1;以及当现在的运行差异值RD=-3,且临时码字为D=-2,则将进行按位取反临时码字的结果作为编码码字,且编码码字为D'=2,故更新后的运行差异值为RD=-1。
相反地,在设计成临时码字为D≥0的实施例下:当临时码字为D=0,则步骤S24直接将临时码字当作编码码字作为输出,且更新后的运行差异值不变,next_RD=pre_RD,其中next_RD表示更新后的运行差异值,pre_RD表示现在的运行差异值;当临时码字为D>0且运行差异值为正,则步骤S24将进行按位取反临时码字的结果当作编码码字作为输出,且更新后的运行差异值为next_RD=pre_RD+2D',其中D'为编码码字的差异值;当临时码字为D>0且运行差异值为负,则步骤S24直接将临时码字当作编码码字作为输出,且更新后的运行差异值为next_RD=pre_RD+2D'。由图4的转移图可知,运行差异值随着编码进行不断更新,且保证整个位流中,0和1的数目差异始终控制在-3至+3之间,从而保证了DC平衡。
请参照图1与图5,图5为根据本发明实施例用于串行器/解串器***的解码方法的流程图。首先,在步骤S51中,解码器16将N・M位的并行数据,从高到低,分成N路的M位待解码的码字。然后,在步骤S52中,解码器16获取N路的M位待解码的码字。在步骤S53中,解码器16针对每一个M位待解码的码字,解码器根据M位待解码的码字,取得M位的调整码字。进一步地说,在临时码字设计为D≤0的情况下,若待解码码字D>0,则对其按位取反得到D<0的调整码字,否则不作处理。经过此部分操作,可以保证调整码字D≤0。这样做的好处是,解码时只需要用到码表中D≤0的部分作为查找表(即,只对D≤0的码表用逻辑门实现),从而节省大量的硬件资源。之后,在步骤S24中,通过码表的查找表,针对每一路M位调整码字,解码器16根据M位的调整码字找出对应的(M-1)位的码字、1位的K码指示信号与1位的解码错误指示信号,其中1位的K码指示信号关联于解码解字为K码或D码,以及1位的解码错误指示信号对应M位的调整码字是否存在于码表的查找表中,如果不存在码表的查找表中,则1位的解码错误指示信号为高,以及1位的解码错误指示信号为低。
综上所述,采用本发明实施例中提供的编解码技术方案,具有以下优点:(1)编码效率高((M-1)/M)%,提高串行器/反串器***的带宽利用率;(2)D码和普通K码的最大游程为(M-2),适合接收端时钟恢复;(3)可设计用于边界同步的特殊K码,在无错误传输的前提下,不会与D码和普通K码发生串码,保证了边界同步的正确性;(4)码表映射规则优化,0与1分布尽可能集中,卡诺图化简得到的最简与或式简单,方便逻辑门实现,且特别适用于ROM资源紧张的应用场景;以及(5)设计D码和普通K码的过程中,任意一个(M-1)位输入所对应的D>0码字可以由D<0码字按位取反得到,利用这一特性,实现过程中只需要存储D≤0的码字即可,节省大量资源。
以上所述仅是本发明的优选实施例而已,并非对本发明做任何形式上的限制,虽然本发明已以优选实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案的范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本实用发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (6)
1.一种用于串行器/解串器***的编码方法,且其特征在于,所述编码方法包括:
通过用于实现码表的查找表,根据(M-1)位待编码的码字与对应的1位K码指示信号找出对应的M位码字作为临时码字,其中所述查找表中全部的M位码字的差异值分别为0、-1或-2,或者,分别为0、+1或+2, M为大于等于4的偶数,所述查找表中的所述全部的M位码字包括多个D码码字与多个K码码字,且所述查找表中差异值为0的所述全部的D码码字不包括前M/2位全为0或1以及后M/2位全为0或1的多个M位码字;以及
根据所述临时码字的所述差异值与运行差异值决定将所述临时码字作为编码码字或将所述临时码字进行按位取反后的结果作为所述编码码字,并据此更新所述运行差异值;其中在所述查找表中所述全部的M位码字的所述差异值分别为0、-1或-2的设计下,在所述临时码字的所述差异值为-1或-2且所述运行差异值为负的情况下,输出将所述临时码字进行按位取反后的结果作为所述编码码字,否则将所述临时码字作为所述编码码字,其中更新后的所述运行差异值为之前的所述运行差异值加上2倍的所述编码码字的差异值;在所述查找表中, L0个差异值为0的M位D码码字以十进制数值从大到小排列并与十进制数值(2M-1-L0+1)至(2M-1-1)的L0个(M-1)位待编码码字一一对应, L1个差异值为-1的M位D码码字以十进制数值从大到小排列并与十进制数值(2M-1-L0-L1+1)至(2M-1-L0)的L1个(M-1)位待编码码字一一对应,以及L2个差异值为-2的M位D码码字以十进制数值从大到小排列并与十进制数值0至(L2-1)的L2个(M-1)位待编码码字一一对应,其中L0+L1+L2=2M-1。
2.如权利要求1所述的编码方法,其特征在于,其中所述多个M位码字中差异值为-2且未被做为所述多个D码码字中汉明距离最长的x个M位码字被选为所述查找表的x个M位普通K码码字,其中,10≤x≤20;以及前M/2位皆为0且后M/2位皆为1的M位码字“00…011…1”与前(M/2)-1位皆为1、第M/2位为0、第(M/2)+1位为1与其他位都为0的“11…10100…0”被选为所述查找表的两个边界对齐K码。
3.一种用于串行器/解串器***的编码器,且其特征在于,所述编码器用于执行如权利要求1-2其中任一项所述的编码方法。
4.一种用于串行器/解串器***的解码方法,且其特征在于,所述解码方法包括:
根据M位待解码的码字的差异值,对所述M位待解码的码字进行调整,以产生M位调整码字,其中M为大于等于4的偶数,查找表中的全部所述M位码字包括多个D码码字与多个K码码字,且所述查找表中差异值为0的所述全部的D码码字不包括前M/2位全为0或1以及后M/2位全为0或1的多个M位码字;以及
通过所述查找表,根据所述M位调整码字找出对应的(M-1)位码字作为解码码字,以及输出对应的1位K码指示信号与1位解码错误指示信号;其中在用于实现码表的查找表中全部的M位码字的差异值被设计成分别为0、-1或-2时,若所述M位待解码的码字的差异值为+1或+2,则取所述M位待解码的码字进行按位取反后的结果作为所述调整码字,否则将所述M位待解码的码字作为所述调整码字,在用于实现码表的查找表中全部的M位码字的差异值被设计成分别为0、+1或+2时,若所述M位待解码的码字的差异值为-1或-2,则取所述M位待解码的码字进行按位取反后的结果作为所述调整码字,否则将所述M位待解码的码字作为所述调整码字;在所述查找表中, L0个差异值为0的M位D码码字以十进制数值从大到小排列并与十进制数值L0个(2M-1-L0+1)至(2M-1-1)的(M-1)位码字一一对应, L1个差异值为-1的M位D码码字以十进制数值从大到小排列并与十进制数值(2M-1-L0-L1+1)至(2M-1-L0)的L1个(M-1)位码字一一对应,以及L2个差异值为-2的M位D码码字以十进制数值从大到小排列并与十进制数值0至(L2-1)的L2个(M-1)位码字一一对应,其中L0+L1+L2=2M-1。
5.如权利要求4所述的解码方法,其特征在于,其中所述多个M位码字中差异值为-2且未被做为所述多个D码码字中汉明距离最长的x个M位码字被选为所述查找表的x个M位普通K码码字,其中,10≤x≤20;以及前M/2位皆为0且后M/2位皆为1的M位码字“00…011…1”与前(M/2)-1位皆为1、第M/2位为0、第(M/2)+1位为1与其他位都为0的“11…10100…0”被选为所述查找表的两个边界对齐K码。
6.一种用于串行器/解串器***的解码器,且其特征在于,所述解码器用于执行如权利要求4-5其中任一项所述的解码方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111565744.4A CN113949388B (zh) | 2021-12-21 | 2021-12-21 | 用于串行器/解串器***的编解码器与编解码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111565744.4A CN113949388B (zh) | 2021-12-21 | 2021-12-21 | 用于串行器/解串器***的编解码器与编解码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113949388A CN113949388A (zh) | 2022-01-18 |
CN113949388B true CN113949388B (zh) | 2022-03-11 |
Family
ID=79339426
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111565744.4A Active CN113949388B (zh) | 2021-12-21 | 2021-12-21 | 用于串行器/解串器***的编解码器与编解码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113949388B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114598579B (zh) * | 2022-03-03 | 2023-07-07 | 天津瑞发科半导体技术有限公司 | 一种适用于低通和带通信道的9b/10b编解码方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101729198B (zh) * | 2008-10-27 | 2014-04-02 | 华为技术有限公司 | 一种编解码方法、装置及*** |
CN102780495B (zh) * | 2012-08-23 | 2015-02-04 | 苏州大学 | 一种数据编码及解码方法 |
CN104579583A (zh) * | 2015-02-09 | 2015-04-29 | 浪潮电子信息产业股份有限公司 | 一种对8b/10b编码方式的改进方法 |
-
2021
- 2021-12-21 CN CN202111565744.4A patent/CN113949388B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113949388A (zh) | 2022-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6425107B1 (en) | Data encoder/decoder for a high speed serial link | |
CN1713626B (zh) | 电压电平编码***和方法 | |
US7487426B2 (en) | 64b/66b coding apparatus and method | |
KR100306425B1 (ko) | 런 길이 제한 코드를 실행하기 위한 시스템 | |
US5606317A (en) | Bandwidth efficiency MBNB coding and decoding method and apparatus | |
EP0417072A1 (en) | An encoder/decoder system and methodology utilizing conservative coding with block delimiters, for serial communication | |
US9577788B2 (en) | Coding apparatus, coding method, data communication apparatus, and data communication method | |
US6333704B1 (en) | Coding/decoding system of bit insertion/manipulation line code for high-speed optical transmission system | |
JPH0744570B2 (ja) | ディジタルデータの伝送方法およびそのための装置 | |
CN101847997B (zh) | 一种9b/10b编解码器及其实现方法 | |
US5892466A (en) | Coding scheme for transmitting data | |
KR20060129398A (ko) | 로컬 패리티를 갖는 직류 평형된 6b/8b 송신 코드 | |
CN102523436A (zh) | 发送终端、接收终端、多路视频光纤传输***及传输方法 | |
EP0735728B1 (en) | 5B4T coding scheme | |
US6606328B1 (en) | Look ahead encoder/decoder architecture | |
CN113949388B (zh) | 用于串行器/解串器***的编解码器与编解码方法 | |
US5144305A (en) | Transmission arrangement comprising a block code encoded main channel and an auxiliary channel | |
CN1639982A (zh) | 副比特流与主比特流的复用 | |
US11777765B2 (en) | Signal transmission system, transmitter encoding apparatus and receiver decoding apparatus | |
US6438728B1 (en) | Error character generation | |
CN110740011B (zh) | 一种编解码方法及编解码器 | |
US20210342285A1 (en) | Encoding of symbols for a computer interconnect based on frequency of symbol values | |
JP2818936B2 (ja) | 2進データ処理方法および回路 | |
CN115733606A (zh) | 用于对数据进行编码和解码的方法以及转换编码器 | |
US6806817B2 (en) | Means and method of data encoding and communication at rates above the channel bandwidth |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |