专利名称:基于rd-的8b/10b解码电路的制作方法
技术领域:
本发明涉及一种解码电路,尤其涉及一种基于rd-的8b/10b解码电路。
背景技术:
8b/10b,也叫做8比特/10比特,是目前许多高速串行总线采用的编码机制,如1394b、Serial ΑΤΑ、PCI Express、Infin1-band、Fibre Channel (网状通道)、RapidIO 等总线或网络等。8b/10b编码的特性之一是保证DC平衡,采用8b/10b编码方式,可使得发送的“O”、“ I”数量保持基本一致,连续的“ I”或“O”不超过5位,即每5个连续的“ I”或“O”后必须插入一位“O”或“ I ”,从而保证信号DC平衡,它就是说,在链路超时时不致发生DC失调。通过8b/10b编码,可以保证传输的数据串在接收端能够被正确复原,除此之外,利用一些特殊的代码(在PC1-Express总线中为K码),可以帮助接收端进行还原的工作,并且可以在早期发现数据位的传输错误,抑制错误继续发生。8b/10b编码是将一组连续的8位数据分解成两组数据,一组3位,一组5位,经过编码后分别成为一组4位的数据和一组6位的数据,从而组成一组10位的数据发送出去。相反,解码是将I组10位的输入数据经过变换得到8位数据位。数据值可以统一的表示为DX.Y或KX.Y,其中D表示为数据字符,K表示为控制字符,X表示输入的原始数据的低5位EDCBA,Y表示输入的原始数据的高3位HGF。现有8b/10b解码电路大多采用查表的方法实现8b/10b解码,以数据字符的8b/10b解码为例,现有8b/10b解码电路需512个宽度为8比特的寄存器来存储相关数据,占用的存储器资源较多。
发明内容
本发明所要解决的技术问题是提供一种基于rd-的8b/10b解码电路,能大量节省存储器资源。为解决上述技术问题,本发明提供的基于rd-的8b/10b解码电路由6b预处理模块、4b预处理模块、基于rd-的5b/6b数据字符解码器、基于rd-的5b/6b控制字符解码器、基于rd-的3b/4b数据字符解码器、基于rd-的3b/4b控制字符解码器、数据合并模块以及两个异或模块构成;外部输入数据为10比特数据,该10比特数据拆分为前6比特数据和后4比特数据,所述前6比特数据输入到所述6b预处理模块,所述后4比特数据输入到所述4b预处理模块;一当前字符极性信号,分别输入到所述6b预处理模块和第一异或模块;该当前字符极性信号表示当前输入字符的极性,所述6b预处理模块在当前字符极性信号的控制下对所述前6比特数据进行预处理操作,并输出第一数据字符数据,第一控制字符数据和第一极性变化标示符信号;第一异或模块用于对所述当前字符极性信号和所述第一极性变化标示符信号进行异或处理并输出第二字符极性信号;所述第二字符极性信号分别输入到所述4b预处理模块和第二异或模块;所述4b预处理模块在第二字符极性信号的控制下对所述后4比特数据进行预处理操作,并输出第二数据字符数据,第二控制字符数据和第二极性变化标示符信号;第二异或模块用于对所述第二字符极性信号和所述第二极性变化标示符信号进行异或处理,产生下一字符极性信号,并将所述下一字符极性信号对外输出;所述第一数据字符数据输入到所述基于rd-的5b/6b数据字符解码器进行处理,并输出第一数据字符解码数据和第一数据字符解码标示符信号;所述第一控制字符数据输入到所述基于rd-的5b/6b控制字符解码器进行处理,并输出第一控制字符解码数据和第一控制字符解码标示符信号;所述第二数据字符数据输入到所述基于rd-的3b/4b数据字符解码器进行处理,并输出第二数据字符解码数据和第二数据字符解码标示符信号;所述第二控制字符数据输入到所述基于rd-的3b/4b控制字符解码器进行处理,并输出第二控制字符解码数据和第二控制字符解码标示符信号;所述第一数据字符解码数据、第一数据字符解码标示符信号、所第一控制字符解码数据、第一控制字符解码标示符信号、第二数据字符解码数据、第二数据字符解码标示符信号、第二控制字符解码数据和第二控制字符解码标示符信号输入到所述数据合并模块,进行处理并输出一8比特的输出数据和一指示符信号。本发明能大量节省存储器资源,以数据字符的8b/10b解码为例,本发明只需8个3比特和32个5比特的寄存器来存储数据,所占存储资源仅为现有8b/10b解码电路的
4.492 %,资源节省效果非常显著。
下面结合附图和具体实施方式
对本发明作进一步详细的说明:附图是本发明实施例基于rd-的8b/10b解码电路结构图。
具体实施例方式本发明中所涉及的rd指的是运行字符不一致,也称为极性,即指字符中I的数目和O的数目不一致;其中,rd+为字符中的I比O多,此时为正(+)不一致;rd-为字符中的I比O少,此时为负㈠不一致。结合附图所示,所述基于rd-的8b/10b解码电路,将外部输入的10比特数据拆分为前6比特数据和后4比特数据,分别送入6b预处理模块和4b预处理模块。前6比特数据经6b预处理模块预处理后,产生的第一数据字符数据data_6b和第一控制字符数据ctl_6b分别送往基于rd-的5b/6b数据字符解码器和基于rd-的5b/6b控制字符解码器。后4比特数据经4b预处理模块预处理后,产生的第二数据字符数据data_4b和第二控制字符数据ctl_4b分别送往基于rd-的3b/4b数据字符解码器和基于rd-的3b/4b控制字符解码器。最后,经四个解码器解码后的数据都送往数据合并模块,该数据合并模块从这些数据中选择合适的数据,合并成8比特的数据并通过数据输出端dout输出。第一异或模块通过对6b预处理模块输出的第一极性变化标不符信号rd_flag_6b和当前字符极性信号crd进行异或操作产生第二极性变化标示符信号rd_6b,用来控制4b预处理模块做进一步运算。第二异或模块通过对4b预处理模块输出的第二极性变化标示符信号rd_f lag_4b和第二极性变化标示符信号rd_6b进行异或操作,产生下一字符极性信号nrd并输出。所述6b预处理模块将前6比特输入数据转化成可进行rd-解码的数据的过程是,如果外部输入的当前字符极性信号crd为rd+域,则将输入数据分别按照数据字符转化规则和控制字符转化规则从rd+域转化到rd-域,分别通过其输出端送往基于rd-的5b/6b数据字符解码器和基于rd-的5b/6b控制字符解码器;如果外部输入的当前字符极性信号crd为rd-域,则直接将输入数据分别通过其输出端送往基于rd-的5b/6b数据字符解码器和基于rd-的5b/6b控制字符解码器;在数据预处理过程中极性的变化,通过第一极性变化标不符信号rd_f lag_6b输出。所述4b预处理模块将后4比特输入数据转化成可进行rd-解码的数据的过程是,如果外部输入的当前字符极性信号crd为rd+域,则将输入数据分别按照数据字符转化规则和控制字符转化规则从rd+域转化到rd-域,分别通过其输出端送往基于rd-的3b/4b数据字符解码器和基于rd-的3b/4b控制字符解码器;如果外部输入的当前字符极性信号crd为rd-,则直接将输入数据分别通过其输出端送往基于rd-的3b/4b数据字符解码器和基于rd-的3b/4b控制字符解码器;在数据预处理过程中极性的变化情况,通过第二极性变化标不符信号rd_f lag_4b输出。所述基于rd-的5b/6b数据字符解码器是基于数据字符的rd_解码规则来进行5b/6b解码操作的解码器,所做的操作为:将所述第一数据字符数据data_6b按照数据字符的rd-解码规则来进行5b/6b解码,产生所述第一数据字符解码数据dout_data_6b,而所述第一数据字符解码标示符信号flag_data_6b则用来表示该解码操作是否成功。所述基于rd-的5b/6b控制字符解码器是基于控制字符的rd_解码规则来进行5b/6b解码操作的解码器,所做的操作为:将所述第一控制字符数据ctl_6b按照控制字符的rd-解码规则来进行5b/6b解码,产生所述第一控制字符解码数据dout_ctl_6b,而所述第一控制字符解码标示符信号flag_ctl_6b则用来表示该解码操作是否成功。所述基于rd-的3b/4b数据字符解码器是基于数据字符的rd_解码规则来进行3b/4b解码操作的解码器,所做的操作为:将所述第二数据字符数据data_4b按照数据字符的rd-解码规则来进行3b/4b解码,产生所述第二数据字符解码数据dout_data_4b输出,而所述第二数据字符解码标示符信号flag_data_4b则用来表示该解码操作是否成功。所述基于rd-的3b/4b控制字符解码器是基于控制字符的rd_解码规则来进行3b/4b解码操作的解码器,所做的操作为:将所述第二控制字符数据ctl_4b按照控制字符的rd-解码规则来进行3b/4b解码,产生所述第二控制字符解码数据dout_ctl_4b,而所述第二控制字符解码标示符信号flag_ctl_4b则用来表示该解码操作是否成功。所述数据合并模块是从四组输入数据中选择合适的数据,合并成八比特的数据并输出;所做的操作为:如果所述第一数据字符解码标示符信号flag_data_6b和所述第二数据字符解码标示符信号flag_data_4b都表示各自的解码操作是成功的,则将所述第一数据字符解码数据dout_data_6b作为低5位,所述第二数据字符解码数据dout_data_4b作为高3位,合并成8比特位宽的所述输出数据,且所述指示符信号symbol表示当前输出的是数据字符;如果所述第一控制字符解码标示符信号flag_ctl_6b和所述第二控制字符解码标示符信号flag_ctl_4b都表示各自的解码操作是成功的,则将所述第一控制字符解码数据dout_ctl_6b作为低5位,所述第二控制字符解码数据dout_ctl_4b作为高3位,合并成8比特位宽的所述输出数据,且所述指示符信号symbol表示当前输出的是控制字符。所述第一异或模块是对外部输入的当前字符极性信号crd以及6b预处理模块的第一极性变化标示符信号rd_flag_6b做异或运算,并通过输出端输出第二极性变化标示符信号rd_6b。所述第二异或模块是对第二极性变化标示符信号rd_6b以及4b预处理模块的第二极性变化标示符信号rd_flag_4b做异或运算,并通过输出端输出下一字符极性信号nr do下面是一个具体的实施例。结合附图所示,当外部输入的数据为10’ bl0_1000_0011,且当前字符极性信号crd为rd+域时,数据拆分的前6比特数据为6’ b00_0011,后4比特数据为4’ blOlO。在6b预处理模块中,前6比特数据和当前字符极性信号crd送入6b预处理模块后,由于当前字符极性信号crd为rd+域,与解码的极性相反,故将输入数据6’b00_0011分别按照数据字符转化规则和控制字符转化规则从rd+域转化到rd-域,得到的第一数据字符数据data_6b和第一控制字符数据ctl_6b都为6’bll_1100,而6b预处理模块的第一极性变化标示符信号rd_flag_6b所表示的极性发生了改变。在第一异或模块中,由于第一极性变化标不符信号rd_flag_6b所表不的极性发生了改变,故第二极性变化标示符信号rd_6b为当前字符极性信号crd的取反,为rd-域。在4b预处理模块中,后4比特数据和第二极性变化标示符信号rd_6b送入4b预处理模块后,由于第二极性变化标示符信号rd_6b的极性为rd-域,与解码的极性相同,故将输入数据直接通过其输出端输出,第二数据字符数据data_4b和第二控制字符数据ctl_4b都为4’bl010,4b预处理模块输出的第二极性变化标示符信号rd_f lag_4b所表示的极性也发生了改变。在第二异或模块中,由于第二极性变化标示符信号rd_flag_4b所表示的极性发生了改变,故下一字符极性信号nrd为第二极性变化标示符信号rd_6b的取反,为rd+域。在基于rd-的5b/6b数据字符解码器中,对输入数据6’ bll_11001进行基于数据字符的rd-解码规则来进行5b/6b解码后,得到第一数据字符解码数据dout_data_6b为5’ b0,第一数据字符解码标示符信号flag_data_6b表示为失败。在基于rd-的5b/6b控制字符解码器中,对输入数据6’ bll_1100进行基于控制字符的rd-解码规则来进行5b/6b解码后,得到的第一控制字符解码数据dout_Ctl_6b为5’ bl_1100,第一控制字符解码标示符信号flag_ctl_6b表示为成功。在基于rd-的3b/4b数据字符解码器中,对输入数据4’ blOlO进行基于数据字符的rd-解码规则来进行3b/4b解码后,得到的第二数据字符解码数据dout_data_4b为3’ b010,第二数据字符解码标示符信号flag_data_4b表示为成功;在基于rd-的3b/4b控制字符解码器中,对输入数据4’ blOlO进行基于控制字符的rd-解码规则来进行3b/4b解码后,得到的第二控制字符解码数据dout_Ctl_4b为3’ blOl,第二控制字符解码标示符信号flag_ctl_4b表示为成功。在数据合并模块中,当收到四组被解码后的数据后,由于第一数据字符解码标示符信号flag_data_6b表示为失败,而第一控制字符解码标示符信号flag_ctl_6b和第二控制字符解码标示符信号flag_ctl_4b都表示为成功,故输出数据由第一控制字符解码数据dout_ctl_6b和第二控制字符解码数据dout_ctl_4b组成,其中第一控制字符解码数据dout_ctl_6b做低5位,第二控制字符解码数据dout_ctl_4b做高3位,合并后的数据为:8’ bl011_1100,且指示符信号symbol表示为控制字符,即K28.5。以上通过具体实施方式
和实施例对本发明进行了详细的说明,但这些并非构成对本发明的限制。在不脱离本发明原理的情况下,本领域的技术人员还可做出许多变形和改进,这些也应视为本发明的保护范围。
权利要求
1.一种基于rd-的8b/10b解码电路,其特征在于:由6b预处理模块、4b预处理模块、基于rd-的5b/6b数据字符解码器、基于rd-的5b/6b控制字符解码器、基于rd-的3b/4b数据字符解码器、基于rd-的3b/4b控制字符解码器、数据合并模块以及两个异或模块构成; 外部输入数据为10比特数据,该10比特数据拆分为前6比特数据和后4比特数据,所述前6比特数据输入到所述6b预处理模块,所述后4比特数据输入到所述4b预处理模块;一当前字符极性信号,分别输入到所述6b预处理模块和第一异或模块;该当前字符极性信号表示当前输入字符的极性,所述6b预处理模块在当前字符极性信号的控制下对所述前6比特数据进行预处理操作,并输出第一数据字符数据,第一控制字符数据和第一极性变化标示符信号; 第一异或模块用于对所述当前字符极性信号和所述第一极性变化标示符信号进行异或处理并输出第二字符极性信号; 所述第二字符极性信号分别输入到所述4b预处理模块和第二异或模块;所述4b预处理模块在第二字符极性信号的控制下对所述后4比特数据进行预处理操作,并输出第二数据字符数据,第二控制字符数据和第二极性变化标示符信号; 所述第二异或模块用于对所述第二字符极性信号和所述第二极性变化标示符信号进行异或处理,产生下一字符极性信号,并将所述下一字符极性信号对外输出; 所述第一数据字符数据输入到所述基于rd-的5b/6b数据字符解码器进行处理,并输出第一数据字符解码数据和第一数据字符解码标示符信号; 所述第一控制字符数据输入到所述基于rd-的5b/6b控制字符解码器进行处理,并输出第一控制字符解码数据和第一控制字符解码标示符信号; 所述第二数据字符数据输入到所述基于rd-的3b/4b数据字符解码器进行处理,并输出第二数据字符解码数据和第二数据字符解码标示符信号; 所述第二控制字符数据输入到所述基于rd-的3b/4b控制字符解码器进行处理,并输出第二控制字符解码数据和第二控制字符解码标示符信号; 所述第一数据字符解码数据、第一数据字符解码标示符信号、第一控制字符解码数据、第一控制字符解码标示符信号、第二数据字符解码数据、第二数据字符解码标示符信号、第二控制字符解码数据和第二控制字符解码标示符信号输入到所述数据合并模块,进行处理并输出一8比特的输出数据和一指示符信号。
2.如权利要求1所述的解码电路,其特征在于:所述6b预处理模块将所述前6比特数据转化成可进行rd-解码运算的数据,如果外部输入的所述当前字符极性信号为rd+,则将所述前6比特数据分别按照数据字符转化规则和控制字符转化规则从rd+域转化到rd-域,并将转化后产生的第一数据字符数据,第一控制字符数据分别送往基于rd-的5b/6b数据字符解码器和基于rd-的5b/6b控制字符解码器;如果外部输入的所述当前字符极性信号为rd-,则所述前6比特数据直接产生第一数据字符数据,第一控制字符数据,并分别送往基于rd-的5b/6b数据字符解码器和基于rd-的5b/6b控制字符解码器;在数据预处理过程中发生的极性变化情况,通过第一极性变化标示符信号输出。
3.如权利要求1所述的解码电路,其特征在于:所述4b预处理模块将所述后4比特数据转化成可进行rd-解码运算的数据,如果所述第二字符极性信号为rd+,则将所述后4比特数据分别按照数据字符转化规则和控制字符转化规则从rd+域转化到rd-域,并将转化后产生的第二数据字符数据,第二控制字符数据分别送往基于rd-的3b/4b数据字符解码器和基于rd-的3b/4b控制字符解码器;如果所述第二字符极性信号为rd-,则所述后4比特数据直接产生第二数据字符数据,第二控制字符数据,并分别送往基于rd-的3b/4b数据字符解码器和基于rd-的3b/4b控制字符解码器;在数据预处理过程中发生的极性变化情况,通过第二极性变化标示符信号输出。
4.如权利要求1所述的解码电路,其特征在于:所述基于rd-的5b/6b数据字符解码器是基于数据字符的rd-解码规则来进行5b/6b解码操作的解码器,所做的操作为:将所述第一数据字符数据按照数据字符的rd-解码规则来进行5b/6b解码,产生所述第一数据字符解码数据,而所述第一数据字符解码标示符信号则用来表示该解码操作是否成功。
5.如权利要求1所述的解码电路,其特征在于:所述基于rd-的5b/6b控制字符解码器是基于控制字符的rd -解码规则来进行5b/6b解码操作的解码器,所做的操作为:将所述第一控制字符数据按照控制字符的rd-解码规则来进行5b/6b解码,产生所述第一控制字符解码数据,而所述第一控制字符解码标示符信号则用来表示该解码操作是否成功。
6.如权利要求1所述的解码电路,其特征在于:所述基于rd-的3b/4b数据字符解码器是基于数据字符的rd-解码规则来进行3b/4b解码操作的解码器,所做的操作为:将所述第二数据字符数据按照数据字符的rd-解码规则来进行3b/4b解码,产生所述第二数据字符解码数据,而所述第二数据字符解码标示符信号则用来表示该解码操作是否成功。
7.如权利要求1所述的解码电路,其特征在于:所述基于rd-的3b/4b控制字符解码器是基于控制字符的rd-解码规则来进行3b/4b解码操作的解码器,所做的操作为:将所述第二控制字符数据按照控制字符的rd-解码规则来进行3b/4b解码,产生所述第二控制字符解码数据,而所述第二控制字符解码标示符信号则用来表示该解码操作是否成功。
8.如权利要求1所述的解码电路,其特征在于:所述数据合并模块是从四组输入数据中选择合适的数据,合并成8比特的数据并输出;所做的操作为:如果所述第一数据字符解码标示符信号和所述第二数据字符解码标示符信号都表示各自的解码操作是成功的,则将所述第一数据字符解码数据作为低5位,所述第二数据字符解码数据作为高3位,合并成8比特位宽的所述输出数据,且所述指示符信号表示当前输出的是数据字符;如果所述第一控制字符解码标示符信号和所述第二控制字符解码标示符信号都表示各自的解码操作是成功的,则将所述第一控制字符解码数据作为低5位,所述第二控制字符解码数据作为高3位,合并成8比特位宽的所述输出数据,且所述指示符信号表示当前输出的是控制字符。
全文摘要
本发明公开了一种基于rd-的8b/10b解码电路,将外部输入的10比特数据拆分为前6比特和后4比特数据,分别送入6b预处理模块和4b预处理模块,前6比特数据经6b预处理模块预处理后,产生的第一数据字符数据和第一控制字符数据分别送往基于rd-的5b/6b数据字符解码器和基于rd-的5b/6b控制字符解码器;后4比特数据经4b预处理模块预处理后,产生的第二数据字符数据和第二控制字符数据分别送往基于rd-的3b/4b数据字符解码器和基于rd-的3b/4b控制字符解码器;四个解码器解码后的数据都送往数据合并模块,选择合适的数据,合并成8比特的数据输出。本发明能大量节省存储器资源。
文档编号H03M7/14GK103199866SQ20121000443
公开日2013年7月10日 申请日期2012年1月6日 优先权日2012年1月6日
发明者左耀华 申请人:上海华虹集成电路有限责任公司