專利名稱::一種高速8b/10b編碼器和解碼器及其對(duì)錯(cuò)誤輸入的處理方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及數(shù)字通信的傳輸編碼
技術(shù)領(lǐng)域:
,特別涉及一種高速8B/10B編碼器和解碼器及其對(duì)錯(cuò)誤輸入的處理方法,即高速OlGbps)8B/10B編碼器和解碼器及其邏輯實(shí)現(xiàn)方法。
背景技術(shù):
:8B/10B傳輸編碼是由AlbertX.Widmer和PeterA.Franaszek1983年在公開號(hào)為4486739的美國專利"ByteOrientedDCBalanced(0,4)8B/10BPartitionBlockTransmissionCode"中提出的。該傳輸編碼傳輸帶寬小、轉(zhuǎn)換密度高、碼字游程長度受限、每個(gè)碼字內(nèi)有多次邊沿跳變等特點(diǎn),因而易于快速同步對(duì)齊,直流平衡。直流平衡是指編碼后數(shù)據(jù)的"0"和"1"數(shù)量基本保持一致,可以避免接收器的輸入有直流漂移,這樣對(duì)交流耦合負(fù)載、長電纜和光電模塊的驅(qū)動(dòng)成為可能。所以,直流平衡技術(shù)廣泛應(yīng)用于高速串行總線中。隨著對(duì)串行接口數(shù)據(jù)傳輸量和速度的要求越來越高,對(duì)8B/10B的編碼和解碼的速度也有了更高的要求。公開號(hào)為CN1300971C的專利"基于雙8B/10B編碼器的16B/20B編碼器邏輯實(shí)現(xiàn)方法"和公開號(hào)為6295010B1的美國專利"8B/10BEncoderSystemAndMethod"都是通過并行實(shí)現(xiàn)多個(gè)編碼器和解碼器來提高速度,這樣會(huì)增加芯片的面積。公開號(hào)為6977599的美國專利"犯/10BEncodingAndDecodingforHighSpeedApplications"和公開號(hào)為6911921的美國專利"5B/6B-T,3B/4B-TandPartitioned8B/10B-Tand10B/12BTransmissionCodes,andTheirImplementationforHighOperatingRates"則是通過改善電路結(jié)構(gòu)來提高單個(gè)8B/10B編碼器和解碼器的速度,但其主要采用組合邏輯實(shí)現(xiàn)編碼和解碼,具有很深的邏輯深度,導(dǎo)致關(guān)鍵路徑太長,從而在一定程度上影響了8B/10B編碼器和解碼器的速度,并且8B/10B編碼器的實(shí)現(xiàn)方案中都注重對(duì)數(shù)據(jù)字符的編碼和DC平衡控制而忽略了控制字符和數(shù)據(jù)字符間隔傳輸時(shí)數(shù)據(jù)流的DC平衡問題。
發(fā)明內(nèi)容本發(fā)明的目的在于,克服現(xiàn)有技術(shù)中8B/10B編碼器和解碼器存在的上述問題,從而提供一種高速8B/10B編碼器和解碼器及其對(duì)錯(cuò)誤輸入的處理方法,以適應(yīng)高速互連的需求。為了解決上述技術(shù)問題,本發(fā)明提供了一種基于流水線結(jié)構(gòu)和并行處理技術(shù)的8B/10B編碼器和解碼器。首先,該8B/10B編碼器傳輸編碼期間,將編碼模塊和RD(rundisparity)計(jì)算模塊分開,在第一級(jí)流水中對(duì)輸入數(shù)據(jù)進(jìn)行預(yù)編碼,并計(jì)算當(dāng)前輸入碼字是否會(huì)導(dǎo)致RD發(fā)生翻轉(zhuǎn),在第二級(jí)流水線中計(jì)算經(jīng)過當(dāng)前碼字后的RD值,并利用上一個(gè)時(shí)鐘周期計(jì)算所得的RD值來對(duì)當(dāng)前碼字的預(yù)編碼結(jié)果進(jìn)行修正;然后,該8B/10B編碼器對(duì)8B/10B編碼時(shí),不需要先判斷輸入數(shù)據(jù)是控制字符還是數(shù)據(jù)字符,而是同時(shí)對(duì)其分別按照數(shù)據(jù)字符和控制字符的編碼規(guī)則進(jìn)行編碼,再根據(jù)輸入的控制字符標(biāo)志位K對(duì)兩種編碼進(jìn)行選擇輸出。因而,當(dāng)輸入是控制字符時(shí),也能保證其與前后的數(shù)據(jù)字符編碼的直流平衡,而目前的8B/10B編碼器的實(shí)現(xiàn)方法中則只對(duì)其進(jìn)行數(shù)據(jù)字符編碼,沒有考慮到同時(shí)對(duì)控制字符編碼的問題;最后,該8B/10B解碼器對(duì)8B/10B解碼期間,分為解碼、錯(cuò)誤檢測(包括碼流的不均衡檢測和碼字錯(cuò)誤檢測)和字符類型判斷(數(shù)據(jù)字符還是控制字符)幾個(gè)部分,第一級(jí)流水線中對(duì)10比特輸入數(shù)據(jù)進(jìn)行6B/5B解碼和4B/3B解碼,并計(jì)算6B和4B數(shù)據(jù)的不均衡性,第二級(jí)流水線中進(jìn)行碼字錯(cuò)誤檢測,字符類型判斷和RD計(jì)算和不均衡性判斷以及解碼結(jié)果選擇,而目前的8B/10B解碼器的實(shí)現(xiàn)方法中,只檢測了碼流的不均衡性錯(cuò)誤,而忽略了對(duì)碼字類型的判斷,以及輸入碼字有錯(cuò)誤的情況,只是在一些公開論文中提到將錯(cuò)誤字符歸類,然后用單獨(dú)的組合邏輯實(shí)現(xiàn)對(duì)錯(cuò)誤碼子的區(qū)分的方法。本發(fā)明采用在分別對(duì)6B和4B碼字解碼的同時(shí)給該輸入的6B碼和4B碼置錯(cuò)誤標(biāo)志位,然后判斷邏輯根據(jù)其錯(cuò)誤標(biāo)志位的值再通過簡單的組合邏輯來判斷輸入的10B碼字是否碼字錯(cuò)誤。具體來講,為了解決上述技術(shù)問題,本發(fā)明提供了一種高速8B/10B編碼器,包括數(shù)據(jù)字符預(yù)編碼模塊10a、RD計(jì)算模塊20a,20b和數(shù)據(jù)字符預(yù)編碼修正模塊30a,其特征在于該高速8B/10B編碼器采用流水線結(jié)構(gòu)和并行處理方法;所述的數(shù)據(jù)字符預(yù)編碼模塊10a和數(shù)據(jù)字符預(yù)編碼修正模塊30a、RD計(jì)算模塊20b分別進(jìn)行預(yù)編碼和后修正,所述的數(shù)據(jù)字符預(yù)編碼模塊10a在第一級(jí)流水中對(duì)輸入數(shù)據(jù)進(jìn)行預(yù)編碼,并通過RD_turn模塊20a計(jì)算當(dāng)前輸入碼字是否會(huì)導(dǎo)致RD發(fā)生翻轉(zhuǎn);所述的RD計(jì)算模塊20b在第二級(jí)流水線中計(jì)算經(jīng)過當(dāng)前碼字后的RD值,并利用上一個(gè)時(shí)鐘周期計(jì)算所得的RD值來對(duì)當(dāng)前碼字的預(yù)編碼結(jié)果進(jìn)行修正;所述的數(shù)據(jù)字符預(yù)編碼模塊10a通過一級(jí)寄存器連接到數(shù)據(jù)字符預(yù)編碼修正模塊30a并輸出;所述的RD一turn模塊20a通過一級(jí)寄存器連接到RD計(jì)算模塊20b并輸出;所述的RD計(jì)算模塊20b通過一級(jí)寄存器連接到數(shù)據(jù)字符預(yù)編碼修正模塊30a和控制字符預(yù)編碼修正模塊30b以及RD計(jì)算模塊20b。作為上述技術(shù)方案的一種改進(jìn),所述的編碼器分別按照數(shù)據(jù)字符和控制字符的編碼規(guī)則同時(shí)進(jìn)行編碼,所述的編碼器還包括控制字符預(yù)編碼模塊10b、控制字符編碼修正模塊30b和數(shù)據(jù)/控制字符選擇模塊40;所述的數(shù)據(jù)字符編碼修正模塊30a和控制字符編碼修正模塊30b連接數(shù)據(jù)/控制字符選擇模塊40,所述的數(shù)據(jù)/控制字符選擇模塊40根據(jù)輸入的控制字符標(biāo)志位K對(duì)兩種編碼進(jìn)行選擇輸出。該8B/10B編碼器進(jìn)行8B/10B編碼時(shí),不需要先判斷輸入數(shù)據(jù)是控制字符還是數(shù)據(jù)字符,而是同時(shí)對(duì)其分別按照數(shù)據(jù)字符和控制字符的編碼規(guī)則進(jìn)行編碼,再根據(jù)輸入的控制字符標(biāo)志位K對(duì)兩種編碼進(jìn)行選擇輸出,因而,當(dāng)輸入是控制字符時(shí),也能保證其與前后的數(shù)據(jù)字符編碼的直流平衡。作為上述技術(shù)方案的又一種改進(jìn),預(yù)編碼時(shí),默認(rèn)當(dāng)前RD值為負(fù),所述數(shù)據(jù)字符預(yù)編碼模塊10a將其作為數(shù)據(jù)字符進(jìn)行5B/6B編碼和3B/4B編碼;所述控制字符預(yù)編碼模塊lOb將其作為控制字符對(duì)其進(jìn)行編碼,并計(jì)算經(jīng)過當(dāng)前碼字后RD的變化信息。作為上述技術(shù)方案的再一種改進(jìn),所述的數(shù)據(jù)字符編碼修正模塊30a和控制字符編碼修正模塊30b,用于根據(jù)上一個(gè)周期計(jì)算所得并存入寄存器的RD值來控制編碼的后修正。為了解決上述技術(shù)問題,本發(fā)明還提供了一種高速8B/10B解碼器,包括數(shù)據(jù)解碼模塊50、不均衡性標(biāo)志位計(jì)算模塊60以及不均衡性計(jì)算和不均衡錯(cuò)誤檢測電路模塊80,其特征在于該高速8B/10B解碼器采用流水線和并行處理的結(jié)構(gòu),能夠同時(shí)解碼和檢測碼流的不均衡錯(cuò)誤;所述的數(shù)據(jù)解碼模塊50和不均衡性標(biāo)志位計(jì)算模塊60、不均衡性計(jì)算和不均衡錯(cuò)誤檢測電路模塊80分別用來對(duì)輸入碼字進(jìn)行解碼和不均衡錯(cuò)誤檢測;所述的數(shù)據(jù)解碼模塊50在第一級(jí)流水線中對(duì)輸入碼字進(jìn)行解碼,若輸入為有效編碼碼字,將其按照編碼規(guī)則進(jìn)行解碼,若輸入為無效編碼碼字,則將其解碼為一個(gè)固定的錯(cuò)誤標(biāo)志碼字,并通過不均衡性等標(biāo)志位計(jì)算模塊60得到用于不均衡性計(jì)算和不均衡錯(cuò)誤檢測電路80計(jì)算所需要的標(biāo)志位;所述的不均衡性計(jì)算和不均衡錯(cuò)誤檢測電路模塊80在第二級(jí)流水線中進(jìn)行不均衡性判斷和當(dāng)前碼字的RD計(jì)算,并利用上一個(gè)時(shí)鐘周期計(jì)算所得的RD值來對(duì)當(dāng)前碼字是否發(fā)生不均衡錯(cuò)誤進(jìn)行判斷;輸入數(shù)據(jù)通過第一級(jí)寄存器連接到所述的數(shù)據(jù)解碼模塊50和不均衡性標(biāo)志位計(jì)算模塊60,在第一級(jí)流水線中對(duì)10比特輸入數(shù)據(jù)進(jìn)行6B/5B解碼和4B/3B解碼,并計(jì)算6B和4B數(shù)據(jù)的不均衡性,所述的不均衡性標(biāo)志位計(jì)算模塊60的輸出通過第二級(jí)寄存器連接到不均衡性計(jì)算和不均衡錯(cuò)誤檢測電路模塊80,并且通過第三級(jí)寄存器將RD的值再作為自身的輸入。作為上述技術(shù)方案的一種改進(jìn),所述的8B/10B解碼器還包括碼字錯(cuò)誤檢測和字符類型判斷模塊70以及輸出數(shù)據(jù)選擇模塊卯;8B/10B編碼規(guī)則中,數(shù)據(jù)字符的有效編碼有440種組合,控制字符的有效編碼有24種組合,即有效的編碼結(jié)果464種組合,而10B碼字則有2^種組合,共1024種組合,即有560種無效編碼結(jié)果碼字;所述的碼字錯(cuò)誤檢測和字符類型判斷模塊70,用于檢測編碼器的輸入碼字是否為無效編碼結(jié)果碼字,進(jìn)行碼字錯(cuò)誤檢測,并且還用于判斷輸入碼字編碼前是數(shù)據(jù)字符還是控制字符,進(jìn)行碼字類型判斷;所述的輸出數(shù)據(jù)選擇模塊,用于根據(jù)不均衡性計(jì)算和不均衡錯(cuò)誤檢測電路模塊80的輸出不均衡錯(cuò)誤標(biāo)志位對(duì)解碼的碼字或固定的錯(cuò)誤標(biāo)志碼字進(jìn)行選擇輸出;所述的碼字錯(cuò)誤檢測和字符類型判斷模塊70在第二級(jí)流水線中進(jìn)行碼字錯(cuò)誤檢測,在分別對(duì)6B和4B碼字解碼的同時(shí)給該輸入的6B碼和4B碼置錯(cuò)誤標(biāo)志位,然后判斷邏輯根據(jù)其錯(cuò)誤標(biāo)志位的值再通過簡單的組合邏輯來判斷輸入的IOB碼字是否碼字錯(cuò)誤。所述8B/10B解碼器的實(shí)現(xiàn)方法中,不僅檢測了碼流的不均衡性錯(cuò)誤,而且還對(duì)碼字類型進(jìn)行判斷,并識(shí)別輸入碼字有錯(cuò)誤的情況;所述8B/10B解碼器的解碼期間,所述不均衡性判斷和RD計(jì)算模塊不僅能檢測碼流的不均衡性錯(cuò)誤,而且還對(duì)碼字類型進(jìn)行判斷,并識(shí)別輸入碼字有錯(cuò)誤的情況,但,當(dāng)前碼字的RD計(jì)算只與當(dāng)前碼字的輸入有關(guān),與上一個(gè)碼字的RD無關(guān),不影響后面碼字的RD計(jì)算以及后面碼字的不均衡檢測,體現(xiàn)了錯(cuò)誤不擴(kuò)散功能。該功能是目前8B/10B解碼器所沒有的。作為上述技術(shù)方案的又一種改進(jìn),所述的數(shù)據(jù)解碼模塊50,用于產(chǎn)生的6個(gè)標(biāo)志位;所述的碼字錯(cuò)誤檢測和字符類型判斷模塊70通過這些標(biāo)志位判斷碼字錯(cuò)誤和碼字類型;所述的6個(gè)標(biāo)志位包括code—err4表示輸入的4B碼字發(fā)生錯(cuò)誤;code—err6表示輸入的6B碼字發(fā)生錯(cuò)誤;p—28標(biāo)記表示輸入的碼字為"001111"或"110000";pl標(biāo)記表示輸入的6B碼字為"111010"或"000101"或"110110"或"001001"或"101110"或"010001"或"011110"或"100001";p2標(biāo)記表示輸入的4B碼字為"1000"或"0001";如果code—err(code—err=code—err6|code—err4)為1,則判斷碼字錯(cuò)誤;如果K(K=p—28|(pl&p2)),為1,則原碼字為控制字符;為0,則原碼字為數(shù)據(jù)字符。作為上述技術(shù)方案的一種優(yōu)選,所述的不均衡性計(jì)算和不均衡錯(cuò)誤檢測電路80中,信號(hào)E一Dx3和p4作為或門ORl的輸入,其輸出作為二選一的多路選擇器MUX1的選擇信號(hào)輸入;E—D7和p6作為或門OR2的輸入,其輸出作為二選一的多路選擇器MUX2的選擇信號(hào)輸入;disp6和RD作為二選一的多路選擇器MUX2和異或門XOR2的兩路信號(hào)輸入;二選一多路選擇器MUX2的輸出信號(hào)rd和disp4信號(hào)作為異或門XOR1的兩個(gè)信號(hào)輸入;二選一多路選擇器MUX2的輸出信號(hào)rd和disp4作為二選一多路選擇器MUX1的兩路信號(hào)輸入;p4和p6信號(hào)分別作為反相器Nl和反相器N2的信號(hào)輸入;二選一多路選擇器MUX1的輸出信號(hào)作為D觸發(fā)器D1的D信號(hào)輸入端,其輸出Q端作為RD信號(hào),是二選一多路選擇器MUX2和異或門XOR2的信號(hào)輸入;D觸發(fā)器D1的clk端接時(shí)鐘信號(hào);反相器N1和異或門X0R1的輸出作為與門AND1的兩個(gè)輸入信號(hào);異或門XOR2和反相器N2的輸出作為與門AND2的兩個(gè)輸入信號(hào);與門AND1和與門AND2的輸出信號(hào)作為或門OR3的輸入信號(hào),其輸出為RD一err信號(hào)。作為上述技術(shù)方案的又一種優(yōu)選,所述的不均衡性標(biāo)志位計(jì)算模塊60所產(chǎn)生的標(biāo)志位包括-E—D7標(biāo)志位表示輸入6B碼字為"000111"或"111000";E_Dx3標(biāo)志位表示輸入4B碼字為"0011""1100";p4標(biāo)志記位表示輸入4B碼字的"0"和"1"的個(gè)數(shù)是否相等,相等則p4為1,否則為0;p6標(biāo)記位表示輸入6B碼字的"0"和"1"的個(gè)數(shù)是否相等,相等則p6為1,否則為0;disp4為1標(biāo)志位表示標(biāo)記輸入4B碼流中"1"的數(shù)量大于"0"的數(shù)量,為0則表示4B碼流中"0"的數(shù)量大于"1"的數(shù)量;disp6為1標(biāo)志位表示標(biāo)記輸入6B碼流中"1"的數(shù)量大于"0"的數(shù)量,為0則表示6B碼流中"0"的數(shù)量大于"1"的數(shù)量;但,當(dāng)輸入6B碼字為"111000"或"000111"時(shí),置p6-0,其中前者置disp6-l,后者置disp6-0;當(dāng)輸入4B碼字為"1100"或"0011"時(shí),置?4=0,其中前者置disp44,后者置disp4-0。為了解決上述技術(shù)問題,本發(fā)明還提供了一種基于高速8B/10B編碼器和解碼器對(duì)錯(cuò)誤輸入的編碼和解碼的處理方法,該方法包括以下步驟(1)當(dāng)輸入碼字的類型標(biāo)志位K為1時(shí),而輸入碼字卻不是8B/10B編碼規(guī)則中規(guī)定的12個(gè)控制字符時(shí),說明編碼器的輸入信號(hào)有誤,此時(shí)數(shù)據(jù)字符預(yù)編碼模塊10a將其統(tǒng)一按照一個(gè)直流均衡的IOB碼進(jìn)行編碼,并且經(jīng)過一級(jí)寄存器后傳給控制字符編碼修正模塊30b,經(jīng)過修正后傳給數(shù)據(jù)/控制字符選擇模塊40,并最終由K信號(hào)選擇編碼結(jié)果輸出。(2)解碼器的輸入信號(hào)有誤時(shí),若該碼不屬于8B/10B編碼表的編碼結(jié)果范圍,則數(shù)據(jù)解碼模塊50將其統(tǒng)一按照一個(gè)特定的字符進(jìn)行解碼;若該碼與上一個(gè)碼的直流不均衡,則輸出數(shù)據(jù)選擇模塊90根據(jù)不均衡性計(jì)算和不均衡錯(cuò)誤檢測電路模塊80產(chǎn)生的不均衡錯(cuò)誤標(biāo)志位選擇一個(gè)特定的字符作為輸出。采用本發(fā)明的直流平衡碼字作為編碼器輸入錯(cuò)誤時(shí)的固定編碼,并把與該直流平衡的固定碼字相應(yīng)的原碼作為解碼器輸入錯(cuò)誤時(shí)的固定解碼,以便于上層協(xié)議識(shí)別錯(cuò)誤的輸入碼字。本發(fā)明規(guī)定了K28.4的編碼"0011110010"或"1100001101"(低位在前高位在后)為編碼器的錯(cuò)誤標(biāo)志;K28.4的源碼"10011100"(高位在前低位在后)為解碼器的錯(cuò)誤標(biāo)志碼。8B/10B編碼期間,若出現(xiàn)控制字符標(biāo)志位K為1則說明輸入是控制字符,但輸入碼字不是編碼規(guī)則中的12個(gè)控制字符時(shí),則說明輸入碼出錯(cuò),此時(shí)就將其固定按照K28.4編碼;8B/10B解碼期間,若輸入碼檢測到錯(cuò)誤,則將其固定解碼為K28.4,這樣就能保證當(dāng)編碼器輸入碼有錯(cuò)時(shí)傳輸碼流的直流平衡,而且能使編碼器解碼器結(jié)構(gòu)簡單,也便于上層協(xié)議識(shí)別并處理輸入碼字的錯(cuò)誤,而且用于錯(cuò)誤標(biāo)識(shí)的碼字不局限于K28.4,還可以是其他具備直流均衡的非數(shù)據(jù)字符編碼的碼字。本發(fā)明的創(chuàng)新之處在于用一個(gè)固定的直流均衡碼字來編碼解碼輸入碼字錯(cuò)誤,這是現(xiàn)有的8B/10B編碼器和解碼器所不具有的。本發(fā)明采用流水線的和并行處理的技術(shù),將編碼和解碼在兩個(gè)周期內(nèi)完成,11提高了編碼器和解碼器的速度;編碼過程中采用第一個(gè)周期進(jìn)行當(dāng)前碼字預(yù)編碼和計(jì)算經(jīng)過當(dāng)前碼字后的RD值,第二個(gè)周期再根據(jù)上一個(gè)周期得到的經(jīng)過上一個(gè)碼字后的RD結(jié)果對(duì)預(yù)編碼進(jìn)行修正,并計(jì)算下一個(gè)周期的RD。縮短了關(guān)鍵路徑,加快了編碼器的速度;解碼過程中,對(duì)碼流的不均衡檢測過程中時(shí),遇到不均衡錯(cuò)誤的碼字后,將錯(cuò)誤碼字統(tǒng)一編碼,交給上層協(xié)議處理,這樣傳輸就不用中斷,而且正確計(jì)算后續(xù)碼字的RD,實(shí)現(xiàn)了有錯(cuò)誤不擴(kuò)散的功能。本發(fā)明的優(yōu)點(diǎn)在于,本發(fā)明的編碼器和解碼器應(yīng)用于高速串行接口中,均采用流水線結(jié)構(gòu)和并行處理方法,從而簡化了電路設(shè)計(jì),縮短了關(guān)鍵路徑,并提高了速度。本發(fā)明中的編碼器,采用預(yù)編碼和后修正的方法來提高效率,避免了必須得到當(dāng)前RD值之后才能進(jìn)行編碼的過程,而且把輸入字符當(dāng)作數(shù)據(jù)字符和控制字符同時(shí)進(jìn)行編碼,最后再根據(jù)輸入的K信號(hào)對(duì)兩種編碼進(jìn)行選擇輸出,這樣能保證輸出碼流完全做到直流均衡;本發(fā)明中的解碼器采用了特定電路,能檢測碼字錯(cuò)誤和不均衡錯(cuò)誤,從而實(shí)現(xiàn)錯(cuò)誤不擴(kuò)散;采用直流平衡碼字作為編碼器輸入錯(cuò)誤時(shí)的固定編碼,并把與該直流平衡的固定碼字相應(yīng)的原碼作為解碼器輸入錯(cuò)誤時(shí)的固定解碼,以便于上層協(xié)議識(shí)別錯(cuò)誤的輸入碼字??傊景l(fā)明更簡單,節(jié)省邏輯資源,有助于減少芯片面積,且本發(fā)明還有對(duì)正確碼字進(jìn)行碼字類型判斷輸出的功能,這也是現(xiàn)有8B/10B解碼器所不具備的功能。本發(fā)明中的碼字錯(cuò)誤檢測方法也不同于現(xiàn)有公開論文提出的方法。另外,本發(fā)明還對(duì)輸入的正確碼字解碼出了它的字符類型。圖1為現(xiàn)有的8B/10B編碼解碼信號(hào)流圖2為本發(fā)明的8B/10B編碼解碼信號(hào)流圖3為采用8B/10B傳輸編碼進(jìn)行編碼的示范編碼器的結(jié)構(gòu)框圖4為采用8B/10B傳輸編碼進(jìn)行編碼的示范編碼器的信號(hào)流圖5為采用8B/10B傳輸編碼進(jìn)行解碼的示范解碼器的結(jié)構(gòu)框圖6為采用8B/10B傳輸編碼進(jìn)行解碼的示范解碼器的信號(hào)流圖7為用于判斷RD狀態(tài)的狀態(tài)轉(zhuǎn)換圖8為解碼器中不均衡計(jì)算和檢測模塊的電路圖。具體實(shí)施例方式下面結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明做進(jìn)一步說明。如圖3所示的8B/10B編碼器包括兩級(jí)流水線,其中第一級(jí)流水線包括數(shù)據(jù)字符預(yù)編碼模塊、控制字符預(yù)編碼模塊、數(shù)據(jù)和控制字符的RD_tum計(jì)算模塊;第二級(jí)流水線包括數(shù)據(jù)字符預(yù)編碼修正模塊、控制字符編碼修正模塊、RD計(jì)算模塊、數(shù)據(jù)/控制字符選擇模塊。所述的數(shù)據(jù)字符預(yù)編碼模塊和數(shù)據(jù)字符預(yù)編碼修正模塊對(duì)數(shù)據(jù)字符分別進(jìn)行5B/6B和3B/4B的預(yù)編碼和修正。輸入的八位數(shù)據(jù)HGFEDCBA經(jīng)過寄存器送入第一級(jí)流水線的三個(gè)模塊中,輸入的一位控制字符Kin通過兩級(jí)寄存器送入到第二級(jí)流水線中的RD計(jì)算模塊;數(shù)據(jù)和控制字符RD_turn計(jì)算模塊的計(jì)算結(jié)果通過寄存器送入到第二級(jí)流水線中的RD計(jì)算模塊,RD計(jì)算模塊的計(jì)算結(jié)果RD—m輸出到寄存器;數(shù)據(jù)字符預(yù)編碼模塊的編碼結(jié)果通過寄存器連接到數(shù)據(jù)字符預(yù)編碼修正模塊,控制字符預(yù)編碼模塊的編碼結(jié)果通過寄存器送入到控制字符預(yù)編碼修正模塊,經(jīng)過寄存器的RD—m信號(hào)又送入RD計(jì)算模塊與數(shù)據(jù)字符和控制字符預(yù)編碼修正模塊中;指導(dǎo)數(shù)據(jù)字符和控制字符對(duì)預(yù)編碼進(jìn)行修正,數(shù)據(jù)字符和控制字符預(yù)編碼修正后的結(jié)果經(jīng)過一個(gè)選擇器,由K信號(hào)進(jìn)行選擇輸出。所述編碼過程引入了參數(shù)RD(runningdisparity)來表示不平衡度。其中RD+表示上一個(gè)碼字中"1"的個(gè)數(shù)多于等于"0"的個(gè)數(shù),"RD-"表示上一個(gè)碼字中"0"的個(gè)數(shù)多余等于"1"的個(gè)數(shù)。通過上一個(gè)碼字的RD選擇當(dāng)前碼字對(duì)應(yīng)的lObit碼字作為輸出。對(duì)于數(shù)據(jù)字符編碼,將8bit數(shù)據(jù)分為低5位和高3位,分別對(duì)其進(jìn)行5B/6B編碼和3B/4B編碼,5B/6B編碼選擇的是上一字節(jié)編碼產(chǎn)生的RD,而3B/4B編碼選擇的是前面相鄰的5B/6B編碼產(chǎn)生的rd。整個(gè)字節(jié)編碼所產(chǎn)生的RD值由3B/4B編碼得到。如下表1、2和3所列13<table>tableseeoriginaldocumentpage14</column></row><table><table>tableseeoriginaldocumentpage15</column></row><table>根據(jù)RD+和RD-編碼的碼字相同或按位取反,將碼分為中性碼和極性碼。其中中性碼是指該碼的編碼結(jié)果只有一種可能的結(jié)果,而且該編碼中"0"的個(gè)數(shù)等于"l"的個(gè)數(shù);極性碼是指根據(jù)RD的不同,編碼有兩種不同的可能結(jié)果。如圖4所示的的編碼器信號(hào)流圖,為了加快編碼器速度,先不判斷輸入數(shù)據(jù)是控制字符還是數(shù)據(jù)字符,并行對(duì)輸入數(shù)據(jù)按照控制字符和數(shù)據(jù)字符同時(shí)進(jìn)行編碼、RD的計(jì)算,最后再根據(jù)Kin信號(hào)對(duì)其選擇輸出。第一級(jí)模塊對(duì)輸入碼字進(jìn)行預(yù)編碼,分為數(shù)據(jù)字符的5B/6B預(yù)編碼、3B/4B預(yù)編碼和控制字符預(yù)編碼。預(yù)編碼時(shí)均按照RD-的情況對(duì)輸入碼字進(jìn)行編碼,得到一組中間碼字pre—abcdei、pre—fghj、c_pre_abcdeifghj以及一些標(biāo)志位(如p一56和p一34分別用來標(biāo)志5B/6B編碼和3B/4B編碼的是中性碼還是極性碼;rd—tum一56用來標(biāo)志經(jīng)過5B/6B編碼后的rd與輸入RD是否相反,l表示相反,0表示相同)。預(yù)編碼的同時(shí)分別計(jì)算經(jīng)過當(dāng)前碼字后的RD相對(duì)于上一個(gè)碼字的RD是否要取反。同理需要同時(shí)將輸入字符作為控制字符和數(shù)據(jù)字符分別計(jì)算RD—turn。第二級(jí)模塊中,根據(jù)上一個(gè)碼字的RD,對(duì)中間碼字迸行修正。數(shù)據(jù)字符預(yù)編碼修正模塊分為5B/6B編碼修正和3B/4B編碼修正。在5B/6B編碼修正模塊中,輸入RD和p—56是控制位,若RD&p—56=1,則輸出6bit碼abcdd為中間碼字按位取反。,否則輸出等于中間碼字。3B/4B編碼修正模塊中,若4bit中間碼字不等于1110,rd和p_34作為控制位,若rd&p_34=l,則輸出4bit碼fghj為4bit中間碼字按位取反,否則輸出等于中間碼字;若4bit中間碼字為1110,此時(shí)5B/6B編碼修正后的輸出e、i以及rd、p一34作為控制位,若^&^&;=1,則輸出fghj=1000,若^&6&/=1,則輸出fghj=0111,否則若rd&p—34=l,則fghj-0001,其余情況下fghj=U10??刂谱址A(yù)編碼修正中,RD為控制位,若RD-1則輸出為10bit中間碼字按位取反,否則輸出等于中間碼字。通過Kin對(duì)修正后的控制字符編碼和數(shù)據(jù)字符編碼進(jìn)行選擇作為輸出,并選擇將數(shù)據(jù)字符翻轉(zhuǎn)標(biāo)志位或控制字符翻轉(zhuǎn)標(biāo)志位作為最終的RD—turn與經(jīng)過寄存器的上一周期的RD值進(jìn)行異或得到新的RD值。如圖5所示的8B/10B解碼器也包括兩級(jí)流水,其中第一級(jí)流水線包括輸入數(shù)據(jù)解碼模塊、輸入數(shù)據(jù)的6B和4B碼的不均衡性計(jì)算模塊;第二級(jí)流水線包括碼字錯(cuò)誤檢測和字符類型判斷模塊、不均衡計(jì)算和檢測模塊和輸出數(shù)據(jù)選擇模塊。所述的輸入數(shù)據(jù)解碼模塊分為6B/5B解碼和4B/3B解碼,解碼的結(jié)果經(jīng)過寄存器送入第二級(jí)流水的碼字錯(cuò)誤檢測和字符類型判斷模塊以及輸出數(shù)據(jù)選擇模塊;輸入數(shù)據(jù)的6B和4B碼的不均衡性計(jì)算模塊的計(jì)算結(jié)果經(jīng)過寄存器送入不均衡計(jì)算和不均衡錯(cuò)誤檢測模塊,經(jīng)過不均衡計(jì)算和不均衡錯(cuò)誤檢測它的輸出作為輸出數(shù)據(jù)選擇模塊的輸入,并且該信號(hào)經(jīng)過寄存器之后又作為自己的輸入。圖6所示的8B/10B解碼器信號(hào)流圖,在輸入數(shù)據(jù)解碼模塊中,若6B和4B輸入為表1、表2中編碼后的有效數(shù)據(jù),則對(duì)其按照表中數(shù)據(jù)進(jìn)行解碼為5B和3B,當(dāng)輸入6B碼為001111或110000時(shí),將其解碼為11100,否則視輸入為錯(cuò)誤數(shù)據(jù),分別置code一err6或code一err4為1用于標(biāo)記6B碼或4B碼錯(cuò)誤;若6B或4B數(shù)據(jù)其中一個(gè)有錯(cuò)誤,則整個(gè)數(shù)據(jù)為無效字符,即code—err=code_err6|code—err4。由表3可以所示看到的特殊字符的編碼有兩個(gè)特點(diǎn)第一,K28.x八個(gè)特殊字符的編碼,其中abcdei為001111或110000,而這種編碼在數(shù)據(jù)編碼中絕對(duì)是不可能的;Q);第二,kx.7編碼中對(duì)"7"的4B碼選擇和與數(shù)據(jù)字符編碼選擇截然相反,在特殊字符中的fghj出現(xiàn)1000或0111的編碼,而同樣情況下在數(shù)據(jù)編碼中會(huì)采用0001或1110。因而設(shè)置p—28,、pl和p2用于標(biāo)志判斷輸入是否為12個(gè)有效的控制碼。,當(dāng)abcdei為001111或110000時(shí),置p_28為1;當(dāng)abcdei能解碼為D23,27,29,30時(shí),置pl為l,當(dāng)fghj為1000或0111時(shí),將p2置位為l;其余情況下p一28、pl、p2均為0;當(dāng)p—28|(pl&p2)=l時(shí),輸入數(shù)據(jù)就為控制數(shù)據(jù),置K4。6B碼和4B碼的不均衡度計(jì)算模塊輸出6個(gè)標(biāo)志位,其中,p6、,p4分別為6B碼和4B碼的極性標(biāo)志位,若該碼字中"1"和"0"的個(gè)數(shù)相等,置其為l,表示該碼為中性碼;反之置為0,表示該碼為極性碼。當(dāng)碼字呈中性時(shí),相應(yīng)的不均等性標(biāo)志位disp才有效。碼流中"1"的個(gè)數(shù)多于"0"的個(gè)數(shù)時(shí),disp為1;反之,則為0。為了防止發(fā)生類似本應(yīng)編碼為111000,而錯(cuò)誤編碼為000111時(shí),檢測不出來編碼錯(cuò)誤的情況,必須對(duì)abcdei為000111和111000以及fghj為1100和0011時(shí)做特殊處理。雖然他們的"0"和"1"個(gè)數(shù)相等,但必須設(shè)置其相應(yīng)的p=0。當(dāng)輸入為000111或0011時(shí),置disp6禾Bdisp4均為0;當(dāng)輸入為111000或1100時(shí),置disp6和disp4均為1。這樣就能檢測出該類碼的不均衡錯(cuò)誤,但是由于強(qiáng)制標(biāo)記了這四個(gè)中性碼為極性碼,并且改變了相應(yīng)的disp標(biāo)志,這會(huì)導(dǎo)致RD計(jì)算模塊發(fā)生錯(cuò)誤,因?yàn)檫@四個(gè)碼本為中性碼,經(jīng)過他們之后數(shù)據(jù)的RD本應(yīng)保持輸入時(shí)的RD,但此時(shí)卻變?yōu)榱薲isp6和disp4。為了防止這種錯(cuò)誤發(fā)生,還設(shè)置了兩個(gè)標(biāo)志位為E—D7和E—Dx3。當(dāng)輸入abcdei為000111或111000時(shí),E—D7置為i,否則其為0;當(dāng)輸入fghj為0011或1100時(shí),E—Dx.3置為1,否則其為0。圖8所示的解碼器中的不均衡計(jì)算和檢測模塊,其中不均衡計(jì)算部分如圖7所示,數(shù)據(jù)傳輸中正極性和負(fù)極性的編碼數(shù)據(jù)進(jìn)行傳輸后呈現(xiàn)的極性就為自身的編碼數(shù)據(jù)極性,而中性編碼數(shù)據(jù)傳輸后的數(shù)據(jù)極性則繼承上一個(gè)數(shù)據(jù)的極性。在圖5所示的8B/10B解碼器中,若P6或E—D7為l,數(shù)據(jù)abcdei為中性碼;若P4或E一Dx3為1時(shí),數(shù)據(jù)fghj為中性碼。所以用它們的或作為選擇信號(hào)。不均衡檢測部分中,若RD與disp6相等,則說明當(dāng)前數(shù)據(jù)的abcdei與上一個(gè)數(shù)據(jù)的fghj發(fā)生了DC不均衡錯(cuò)誤;若rd與disp4相等,則說明當(dāng)前數(shù)據(jù)的abcdei與當(dāng)前數(shù)據(jù)fghj發(fā)生了DC均衡錯(cuò)誤,即RDdisp6|rddisp4為1則檢測到了DC不均衡的錯(cuò)誤,但是由于當(dāng)p^時(shí),disp信號(hào)無效,因而RDedisp6和rd十disp4只有分別在p4=0以及p6=0時(shí)才有效。該模塊具有錯(cuò)誤不擴(kuò)散功能。由于對(duì)第n+l個(gè)碼進(jìn)行DC不均衡檢測時(shí),需要用到第n個(gè)輸入碼計(jì)算出的RDn+l。若第n個(gè)碼是錯(cuò)誤的,則由它得到的RDn+l也是錯(cuò)誤的,此時(shí)若第n+l個(gè)輸入碼是一個(gè)正確的非中性碼,則由于使用了錯(cuò)誤17的RDn+l,解碼器會(huì)錯(cuò)誤的把該正確碼檢測為DC不均衡的錯(cuò)誤碼,其解碼輸出為10011100,但同時(shí)RDn+2等于第n+l個(gè)碼的RD,則是正確的。因而再利用RDn+2對(duì)第n+3個(gè)碼進(jìn)行檢測時(shí),就不會(huì)發(fā)生錯(cuò)誤了;若第n+l個(gè)輸入碼是正確的中性碼,而由于此時(shí)p4、p6均為0,解碼器不會(huì)將其檢測為錯(cuò)誤的碼,因而會(huì)輸出正確的解碼結(jié)果,但是錯(cuò)誤的RDn+l會(huì)隨著輸入的中性碼傳播下去,直到遇到一個(gè)非中性碼,才會(huì)糾正到這個(gè)非中性碼的RD,從而得到正確的RD,之后的碼流解碼器就會(huì)正確的對(duì)其進(jìn)行檢測和解碼??傊?,當(dāng)輸入碼流中有錯(cuò)誤時(shí),解碼器會(huì)將其檢測出來,但同時(shí)可能會(huì)導(dǎo)致解碼器把后面的一個(gè)正確碼判斷為錯(cuò)誤碼。但在此之后,解碼器都能正確的檢測和解碼后面的碼流。由于鏈路發(fā)生錯(cuò)誤的概率很小,而且這個(gè)小問題完全可以被上層的協(xié)議識(shí)別,并由軟件進(jìn)行更正,因而這個(gè)小問題對(duì)整個(gè)系統(tǒng)性能的影響非常小。但是若要在硬件上更正這個(gè)小問題,則需要非常多的邏輯來判斷錯(cuò)誤碼的類型以及導(dǎo)致錯(cuò)誤的原因,從而得到正確的碼、正確的RD,這樣會(huì)使流水線停頓,大大降低了傳輸速率,所以認(rèn)為這是沒有必要的。輸出數(shù)據(jù)選擇模塊中,由于解碼時(shí)就考慮到了無效字符,并同時(shí)將輸入的無效字符解碼為K28.4,因而輸出選擇時(shí)只需要考慮發(fā)生直流不均衡錯(cuò)誤的情況即可。若RD—err為l,則置輸出為K28.4,否則,輸出為解碼后的輸出。本發(fā)明經(jīng)DC綜合在SIMC卯nm的工藝條件下得以實(shí)現(xiàn),該編碼器和解碼器在各種PVT條件下均能在卯OMHZ頻率進(jìn)行工作,面積約為1500"w2;本發(fā)明可應(yīng)用在5Gbps以上的高速串行接口的編碼器和解碼器的設(shè)計(jì)中,具有廣泛的應(yīng)用場景。最后所應(yīng)說明的是,以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非限制。盡管參照實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,對(duì)本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,都不脫離本發(fā)明技術(shù)方案的精神和范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。權(quán)利要求1、一種高速8B/10B編碼器,包括數(shù)據(jù)字符預(yù)編碼模塊(10a)、RD計(jì)算模塊(20a,20b)和數(shù)據(jù)字符預(yù)編碼修正模塊(30a),其特征在于該高速8B/10B編碼器采用流水線結(jié)構(gòu)和并行處理方法;所述的數(shù)據(jù)字符預(yù)編碼模塊(10a)和數(shù)據(jù)字符預(yù)編碼修正模塊(30a)、RD計(jì)算模塊(20b)分別進(jìn)行預(yù)編碼和后修正,所述的數(shù)據(jù)字符預(yù)編碼模塊(10a)在第一級(jí)流水中對(duì)輸入數(shù)據(jù)進(jìn)行預(yù)編碼,并通過RD_turn模塊(20a)計(jì)算當(dāng)前輸入碼字是否會(huì)導(dǎo)致RD發(fā)生翻轉(zhuǎn);所述的RD計(jì)算模塊(20b)在第二級(jí)流水線中計(jì)算經(jīng)過當(dāng)前碼字后的RD值,并利用上一個(gè)時(shí)鐘周期計(jì)算所得的RD值來對(duì)當(dāng)前碼字的預(yù)編碼結(jié)果進(jìn)行修正;所述的數(shù)據(jù)字符預(yù)編碼模塊(10a)通過一級(jí)寄存器連接到數(shù)據(jù)字符預(yù)編碼修正模塊(30a)并輸出;所述的RD_turn模塊(20a)通過一級(jí)寄存器連接到RD計(jì)算模塊(20b)并輸出;所述的RD計(jì)算模塊(20b)通過一級(jí)寄存器連接到數(shù)據(jù)字符預(yù)編碼修正模塊(30a)和控制字符預(yù)編碼修正模塊(30b)以及RD計(jì)算模塊(20b)。2、根據(jù)權(quán)利要求1所述的高速8B/10B編碼器,其特征在于所述的編碼器分別按照數(shù)據(jù)字符和控制字符的編碼規(guī)則同時(shí)進(jìn)行編碼,所述的編碼器還包括控制字符預(yù)編碼模塊(lOb)、控制字符編碼修正模塊(30b)和數(shù)據(jù)/控制字符選擇模塊(40);所述的數(shù)據(jù)字符編碼修正模塊(30a)和控制字符編碼修正模塊(30b)連接數(shù)據(jù)/控制字符選擇模塊(40),所述的數(shù)據(jù)/控制字符選擇模塊(40)根據(jù)輸入的控制字符標(biāo)志位K對(duì)兩種編碼進(jìn)行選擇輸出。3、根據(jù)權(quán)利要求2所述的高速8B/10B編碼器,其特征在于預(yù)編碼時(shí),默認(rèn)當(dāng)前RD值為負(fù),所述數(shù)據(jù)字符預(yù)編碼模塊(10a)將其作為數(shù)據(jù)字符進(jìn)行5B/6B編碼和3B/4B編碼;所述控制字符預(yù)編碼模塊(10b)將其作為控制字符對(duì)其進(jìn)行編碼,并計(jì)算經(jīng)過當(dāng)前碼字后RD的變化信息。4、根據(jù)權(quán)利要求2所述的高速8B/10B編碼器,其特征在于所述的數(shù)據(jù)字符編碼修正模塊(30a)和控制字符編碼修正模塊(30b),用于根據(jù)上一個(gè)周期計(jì)算所得并存入寄存器的RD值來控制編碼的后修正。5、一種高速8B/10B解碼器,包括數(shù)據(jù)解碼模塊(50)、不均衡性標(biāo)志位計(jì)算模塊(60)以及不均衡性計(jì)算和不均衡錯(cuò)誤檢測電路模塊(80),其特征在于該高速8B/10B解碼器采用流水線和并行處理的結(jié)構(gòu),能夠同時(shí)解碼和檢測碼流的不均衡錯(cuò)誤;所述的數(shù)據(jù)解碼模塊(50)和不均衡性標(biāo)志位計(jì)算模塊(60)、不均衡性計(jì)算和不均衡錯(cuò)誤檢測電路模塊(80)分別用來對(duì)輸入碼字進(jìn)行解碼和不均衡錯(cuò)誤檢測;所述的數(shù)據(jù)解碼模塊(50)在第一級(jí)流水線中對(duì)輸入碼字進(jìn)行解碼,若輸入為有效編碼碼字,將其按照編碼規(guī)則進(jìn)行解碼,若輸入為無效編碼碼字,則將其解碼為一個(gè)固定的錯(cuò)誤標(biāo)志碼字,并通過不均衡性等標(biāo)志位計(jì)算模塊(60)得到用于不均衡性計(jì)算和不均衡錯(cuò)誤檢測電路(80)計(jì)算所需要的標(biāo)志位;所述的不均衡性計(jì)算和不均衡錯(cuò)誤檢測電路模塊(80)在第二級(jí)流水線中進(jìn)行不均衡性判斷和當(dāng)前碼字的RD計(jì)算,并利用上一個(gè)時(shí)鐘周期計(jì)算所得的RD值來對(duì)當(dāng)前碼字是否發(fā)生不均衡錯(cuò)誤進(jìn)行判斷;輸入數(shù)據(jù)通過第一級(jí)寄存器連接到所述的數(shù)據(jù)解碼模塊(50)和不均衡性標(biāo)志位計(jì)算模塊(60),在第一級(jí)流水線中對(duì)10比特輸入數(shù)據(jù)進(jìn)行6B/5B解碼和4B/3B解碼,并計(jì)算6B和4B數(shù)據(jù)的不均衡性,所述的不均衡性標(biāo)志位計(jì)算模塊(60)的輸出通過第二級(jí)寄存器連接到不均衡性計(jì)算和不均衡錯(cuò)誤檢測電路模塊(80),并且通過第三級(jí)寄存器將RD的值再作為自身的輸入。6、根據(jù)權(quán)利要求5所述的高速8B/10B解碼器,其特征在于所述的8B/10B解碼器還包括碼字錯(cuò)誤檢測和字符類型判斷模塊(70)以及輸出數(shù)據(jù)選擇模塊(卯);所述的碼字錯(cuò)誤檢測和字符類型判斷模塊(70),用于檢測編碼器的輸入碼字是否為無效編碼結(jié)果碼字,進(jìn)行碼字錯(cuò)誤檢測,并且還用于判斷輸入碼字編碼前是數(shù)據(jù)字符還是控制字符,進(jìn)行碼字類型判斷;所述的輸出數(shù)據(jù)選擇模塊,用于根據(jù)不均衡性計(jì)算和不均衡錯(cuò)誤檢測電路模塊(80)的輸出不均衡錯(cuò)誤標(biāo)志位對(duì)解碼的碼字或固定的錯(cuò)誤標(biāo)志碼字進(jìn)行選擇輸出;所述的碼字錯(cuò)誤檢測和字符類型判斷模塊(70)在第二級(jí)流水線中進(jìn)行碼字錯(cuò)誤檢測,在分別對(duì)6B和4B碼字解碼的同時(shí)給該輸入的6B碼和4B碼置錯(cuò)誤標(biāo)志位,然后判斷邏輯根據(jù)其錯(cuò)誤標(biāo)志位的值再通過簡單的組合邏輯來判斷輸入的IOB碼字是否碼字錯(cuò)誤。7、根據(jù)權(quán)利要求6所述的高速8B/10B解碼器,其特征在于所述的數(shù)據(jù)解碼模塊(50),用于產(chǎn)生的6個(gè)標(biāo)志位;所述的碼字錯(cuò)誤檢測和字符類型判斷模塊(70)通過這些標(biāo)志位判斷碼字錯(cuò)誤和碼字類型;所述的6個(gè)標(biāo)志位包括code_err4表示輸入的4B碼字發(fā)生錯(cuò)誤;code一err6表示輸入的6B碼字發(fā)生錯(cuò)誤;p—28標(biāo)記表示輸入的碼字為"001111"或"110000";pl標(biāo)記表示輸入的6B碼字為"111010"或"000101"或"110110"或"001001"或"101110"或"010001"或"011110"或"100001";p2標(biāo)記表示輸入的4B碼字為"1000"或"0001";如果code—err=code—err6|code—err4為1,則判斷碼字錯(cuò)誤;如果K-p—28|(pl&p2)為1,則原碼字為控制字符;為0,則原碼字為數(shù)據(jù)字符。8、根據(jù)權(quán)利要求6所述的高速8B/10B解碼器,其特征在于,所述的不均衡性計(jì)算和不均衡錯(cuò)誤檢測電路(80)中,信號(hào)E_Dx3和p4作為或門OR1的輸入,其輸出作為二選一的多路選擇器MUX1的選擇信號(hào)輸入;E_D7和p6作為或門OR2的輸入,其輸出作為二選一的多路選擇器MUX2的選擇信號(hào)輸入;disp6和RD作為二選一的多路選擇器MUX2和異或門XOR2的兩路信號(hào)輸入;二選一多路選擇器MUX2的輸出信號(hào)rd和disp4信號(hào)作為異或門X0R1的兩個(gè)信號(hào)輸入;二選一多路選擇器MUX2的輸出信號(hào)rd和disp4作為二選一多路選擇器MUX1的兩路信號(hào)輸入;p4和p6信號(hào)分別作為反相器Nl和反相器N2的信號(hào)輸入;二選一多路選擇器MUX1的輸出信號(hào)作為D觸發(fā)器Dl的D信號(hào)輸入端,其輸出Q端作為RD信號(hào),是二選一多路選擇器MUX2和異或門XOR2的信號(hào)輸入;D觸發(fā)器D1的clk端接時(shí)鐘信號(hào);反相器N1和異或門X0R1的輸出作為與門AND1的兩個(gè)輸入信號(hào);異或門XOR2和反相器N2的輸出作為與門AND2的兩個(gè)輸入信號(hào);與門AND1和與門AND2的輸出信號(hào)作為或門OR3的輸入信號(hào),其輸出為RD—err信號(hào)。9、根據(jù)權(quán)利要求5所述的高速8B/10B解碼器,其特征在于所述的不均衡性標(biāo)志位計(jì)算模塊(60)所產(chǎn)生的標(biāo)志位包括E—D7標(biāo)志位表示輸入6B碼字為"000111"或"111000";E_Dx3標(biāo)志位表示輸入4B碼字為"0011""1100";p4標(biāo)志記位表示輸入4B碼字的"0"和"1"的個(gè)數(shù)是否相等,相等則p4為1,否則為0;p6標(biāo)記位表示輸入6B碼字的"0"和"1"的個(gè)數(shù)是否相等,相等則p6為1,否則為0;disp4為1標(biāo)志位表示標(biāo)記輸入4B碼流中"1"的數(shù)量大于"0"的數(shù)量,為0則表示4B碼流中"0"的數(shù)量大于"1"的數(shù)量;disp6為1標(biāo)志位表示標(biāo)記輸入6B碼流中"1"的數(shù)量大于"0"的數(shù)量,為0則表示6B碼流中"0"的數(shù)量大于"1"的數(shù)量;但,當(dāng)輸入6B碼字為"111000"或"000111"時(shí),置p6i,其中前者置disp6-l,后者置disp6-0;當(dāng)輸入4B碼字為"1100"或"0011"時(shí),置p4-0,其中前者置disp44,后者置disp4^。10、一種基于高速8B/10B編碼器和解碼器對(duì)錯(cuò)誤輸入的處理方法,該方法包括以下步驟(1)當(dāng)輸入碼字的類型標(biāo)志位K為1時(shí),而輸入碼字卻不是8B/10B編碼規(guī)則中規(guī)定的12個(gè)控制字符時(shí),說明編碼器的輸入信號(hào)有誤,此時(shí)數(shù)據(jù)字符預(yù)編碼模塊UOa)將其統(tǒng)一按照一個(gè)直流均衡的IOB碼進(jìn)行編碼,并且經(jīng)過一級(jí)寄存器后傳給控制字符編碼修正模塊(30b),經(jīng)過修正后傳給數(shù)據(jù)/控制字符選擇模塊(40),并最終由K信號(hào)選擇編碼結(jié)果輸出;(2)解碼器的輸入信號(hào)有誤時(shí),若該碼不屬于8B/10B編碼表的編碼結(jié)果范圍,則數(shù)據(jù)解碼模塊(50)將其統(tǒng)一按照一個(gè)特定的字符進(jìn)行解碼;若該碼與上一個(gè)碼的直流不均衡,則輸出數(shù)據(jù)選擇模塊(90)根據(jù)不均衡性計(jì)算和不均衡錯(cuò)誤檢測電路模塊(80)產(chǎn)生的不均衡錯(cuò)誤標(biāo)志位選擇一個(gè)特定的字符作為輸出。全文摘要本發(fā)明提供了一種高速8B/10B編碼器和解碼器及其對(duì)錯(cuò)誤輸入的處理方法,編碼器包括數(shù)據(jù)字符預(yù)編碼模塊、RD計(jì)算模塊和數(shù)據(jù)字符預(yù)編碼修正模塊,該編碼器采用流水線結(jié)構(gòu)和并行處理方法;所述的數(shù)據(jù)字符預(yù)編碼模塊和數(shù)據(jù)字符預(yù)編碼修正模塊、RD計(jì)算模塊分別進(jìn)行預(yù)編碼和后修正,所述的數(shù)據(jù)字符預(yù)編碼模塊在第一級(jí)流水中對(duì)輸入數(shù)據(jù)進(jìn)行預(yù)編碼,并通過RD_turn模塊計(jì)算當(dāng)前輸入碼字是否會(huì)導(dǎo)致RD發(fā)生翻轉(zhuǎn);所述的RD計(jì)算模塊在第二級(jí)流水線中計(jì)算經(jīng)過當(dāng)前碼字后的RD值,并利用上一個(gè)時(shí)鐘周期計(jì)算所得的RD值來對(duì)當(dāng)前碼字的預(yù)編碼結(jié)果進(jìn)行修正。本發(fā)明應(yīng)用于高速串行接口中,均采用流水線結(jié)構(gòu)和并行處理方法,從而簡化了電路設(shè)計(jì),縮短了關(guān)鍵路徑,并提高了速度。文檔編號(hào)H03M5/14GK101674089SQ20091023606公開日2010年3月17日申請(qǐng)日期2009年10月19日優(yōu)先權(quán)日2009年10月19日發(fā)明者侯朝煥,華斯亮,張鐵軍,琪王,王東輝申請(qǐng)人:中國科學(xué)院聲學(xué)研究所