国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種新的8b/10b編碼實現方法與流程

      文檔序號:12489749閱讀:613來源:國知局
      一種新的8b/10b編碼實現方法與流程

      本發(fā)明涉及計算機通信系統,特別是一種新的8b/10b編碼實現方法。



      背景技術:

      在當今的通信行業(yè),芯片、系統間的數據傳輸都在由傳統的并行低速傳輸向高速串行傳輸轉變。在大多數高速串行傳輸技術中,發(fā)送通道將高速時鐘信息隱藏在用戶數據中,即不單獨發(fā)送專門的高速時鐘同步信號;接收通道接收衰減的高速串行輸入數據,根據其跳變沿信息提取出高速時鐘信息,并對本地采樣時鐘相位進行調整,以保證采樣時鐘的相位能夠準確定位輸入數據碼元的中間位置。

      但是,如果傳輸的高速串行數據中連續(xù)的“0”或者“1”過多,一方面會導致數據跳變沿的數目太少而影響相位判斷結果,另一方面也會導致數據的直流電平過低(連續(xù)“0”過多)或者過高(連續(xù)“1”過多)。因此,必須對傳輸前的數據進行處理以增加高速串行數據的跳變沿密度,同時也保證“0”和“1”的數目大致相等以穩(wěn)定信號直流電平。

      8b/10b編碼方式最初由IBM公司的Al Widmer和Peter Franaszek在IBM的刊物“研究與開發(fā)”上描述,并應用于ESCON(200M互聯系統)。該編碼的基本思想是將8bit的碼字通過映射機制轉化為10bit碼字,它的特征之一是保證了直流平衡,可以使發(fā)送的“0”或者“1”的數目保持一致,同時連續(xù)的“0”或者“1”的數目不超過5位。通過8b/10b編碼,大大減小了接收端從高速串行數據中恢復出時鐘和數據的難度;同時,它也利用一些特殊的編碼幫助接收端進行數據的還原,這樣可以在早期就發(fā)現數據位的傳輸錯誤,防止錯誤的數據繼續(xù)向上層傳輸。

      具體來說,8b/10b編碼可以對256(28)種數據(一般稱作D碼)和12個特殊字符(一般稱作K碼)進行編碼,至于對8bit輸入碼字進行D碼還是K碼編碼由一位額外的K碼指示信號來表示。為了保證之前所有編碼后的數據中“0”和“1”的數目保持一致,在8b/10b編碼過程中,需要一位極性指示輸入來指導編碼過程中選擇“0”比“1”多或者“1”比“0”多的編碼結果。同時輸出一位極性指示為下一個8b/10b編碼提供極性指示輸入。

      8b/10b編碼方式廣泛應用于許多高速串行總線,如PCI Express、Fiber Channel、USB3.0、Infini-band、RapidIO等總線或者接口技術都采用了8b/10b編碼機制。

      現行的8b/10b編碼實現主要有兩種:第一種是存儲查表實現,將10bit編碼結果和1bit極性指示作為數據存儲到存儲器件中,把8bit輸入碼字以及2bit編碼指示信號作為存儲地址;第二種是組合邏輯實現,利用8b/10b編碼協議的特點,首先將8bit輸入碼字拆分為5bit和3bit分別進行5b/6b和3b/4b編碼,然后再根據極性指示信號對6bit和4bit編碼結果進行處理,最后再將兩部分結果組合起來作為10bit編碼結果。

      上述的第一種方法實現起來簡單直接,但由于對每一種編碼結果都進行存儲,增加了電路的面積,而且電路也受到了存儲器讀取時間的制約。相比之下,第二種方法中的邏輯實現靈活性比較強,可以根據總體電路的設計指標,在速度和面積之間進行折中實現。

      基于上述第二種方法的8b/10b編碼過程中,首先將8bit輸入字碼由高到低標記為HGFEDCBA八位二進制數,對低五位EDCBA進行5b/6b編碼得到6bit編碼結果,對高三位HGF進行3b/4b編碼得到4bit編碼結果,然后根據編碼指示輸入對相應結果進行處理,最后組合為10bit編碼結果abcdeifghj與極性指示一起輸出。



      技術實現要素:

      本發(fā)明基于上述的第二種方法,利用8b/10b編碼表的一些內在規(guī)律對8b/10b編碼表進行了簡化,進而提出一種改進的8b/10b編碼實現方法。該改進方法根據簡化后的8b/10b編碼表將整個8b/10b編碼電路分為4b/6b編碼和3b/4b編碼實現,根據數據碼(D碼)和非數據碼(K碼)的編碼規(guī)律將兩種編碼一體化實現,在明顯減小電路實現規(guī)模的同時也減小了輸入到輸出的延時。

      如圖3、圖4所示,為8bit輸入字碼分組后的3b/4b和5b/6b簡化編碼表??梢钥吹?,對于每一種輸入,有不少于一種編碼結果,因此這里存在一個如何選擇編碼結果的問題。本發(fā)明的新穎之處,就是對“如何選擇合適的編碼結果”這一問題進行了合理簡化。

      圖3中,對各種組合輸入的3b/4b的兩種編碼結果進行了X和X`標記,這里的X和X`不是簡單的取反關系,而是為了方便圖1中對3b/4b編碼結果進行選擇。

      重點觀察圖1,本簡化表利用傳統的5b/6b編碼表的對稱規(guī)律將碼字中EDCBA互相取反的兩個碼字放到一起,如、00101(5.x)和11010(26.x)、00000(0.x)和11111(31.x)、00001(1.x)和11110(30.x)等。可以發(fā)現,除了3.x和28.x這兩個特例,EDCBA相互取反的兩個碼字的5b/6b編碼結果按位相互取反或者部分取反。如00101(5.x)和11010(26.x)按位相互取反,它們的編碼結果101001和010110也按位相互取反;00000(0.x)和11111(31.x)按位相互取反,它們的編碼結果100111和101011中abei相同而cd按位取反;00001(1.x)和11110(30.x)按位相互取反,它們的編碼結果011101和011110中abcd相同而ei按位取反。

      以上的規(guī)律稱為規(guī)律1,根據該規(guī)律可以將5b/6b編碼的實現簡化為4b/6b編碼實現,E位充當4bit編碼輸入為DCBA還是D`C`B`A`的選擇信號。對于6bit編碼結果,當E=0時,直接輸出6bit結果;當E=1時,需要對D`C`B`A`的6bit編碼結果進行按位相互取反或者部分取反處理,至此可以得到標準8b/10b編碼表中的5b/6b編碼的RD-結果。至于具體進行按位相互取反還是部分取反處理,下面的規(guī)律2給出明確的說明。與5b/6b編碼實現相比,4b/6b編碼實現的電路規(guī)模可以縮減將近一半。

      在上述規(guī)律1的基礎上,繼續(xù)觀察圖1,本簡化表根據DCBA(E=0)或者D`C`B`A`(E=1)中“1”的個數將輸入碼字分為三大類:

      1)第一類碼字中DCBA(E=0)或者D`C`B`A`(E=1)中有2個或者3個“1”,這類碼字對兒有5.x(26.x)、6.x(25.x)、9.x(22.x)、10.x(21.x)、11.x(20.x)、12.x(19.x)、13.x(18.x)、14.x(17.x)、3.x(28.x)、7.x(24.x);

      2)第二類碼字中DCBA(E=0)或者D`C`B`A`(E=1)中有0個或者4個“1”,這類碼字對兒有0.x(31.x)、15.x(16.x);

      3)第三類碼字中DCBA(E=0)或者D`C`B`A`(E=1)中有1個“1”,這類碼字對兒有1.x(30.x)、2.x(29.x)、4.x(27.x)、8.x(23.x)。

      以上的分類稱為規(guī)律2。

      第一,該規(guī)律指出:對于以上的第一類碼字(除了7.x(24.x)這一對特殊碼字和28.x的K碼編碼),EDCBA相互取反的兩個碼字的5b/6b編碼結果按位相互取反;對于第二類碼字,EDCBA相互取反的兩個碼字的5b/6b編碼結果按位部分取反(abei相同,cd相互取反);對于第三類碼字,EDCBA相互取反的兩個碼字的5b/6b編碼結果也按位部分取反(abcd相同,ei相互取反)。

      第二,該規(guī)律指出:對于以上的第一類碼字(除了7.x(24.x)這一對特殊碼字和28.x的K碼編碼),不同極性的5b/6b編碼結果相同;對于第二、三類碼字以及7.x(24.x)這一對特殊碼字和28.x的K碼編碼,不同極性的5b/6b編碼結果按位互相取反。

      第三,根據圖2中對3b/4b編碼的標記,該規(guī)律指出:對于以上的第一類碼字(除了7.x(24.x)這一對特殊碼字和28.x的K碼編碼),3b/4b編碼的RD-結果選擇X`,RD+結果選擇X;對于第二、三類碼字以及7.x(24.x)這一對特殊碼字和28.x的K碼編碼,3b/4b編碼的RD-結果選擇X,RD+結果選擇X`。

      第四,取RD=RD_i&(G&F`+G`&F)+RD_i`&(G&F+G`&F`),取RD`=RD_i`&(G&F`+G`&F+G&F&K)+RD_i&(G&F&K`+G`&F`)。該規(guī)律指出:對于以上的第一類碼字(除了7.x(24.x)這一對特殊碼字和28.x的K碼編碼),極性指示輸出選擇RD;對于第二、三類碼字以及7.x(24.x)這一對特殊碼字和28.x的K碼編碼,極性指示輸出選擇RD`。

      需要特殊說明的是,選擇x.A7特殊3b/4b編碼結果的只有以下幾種特殊的碼字:

      1)D11.7、D13.7、D14.7的3b/4b的RD+編碼結果;

      2)D17.7、D18.7、D20.7的3b/4b的RD-編碼結果;

      3)Kx.7的3b/4b編碼結果。

      附圖說明

      圖1為5b/6b編碼表;

      圖2為3b/4b編碼表;

      圖3為本發(fā)明中8b/10b編碼實現的流程圖;

      圖4為本發(fā)明中8b/10b編碼實現的結構圖;

      具體實施方式

      為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,下面結合附圖及具體實施例,對本發(fā)明進行詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

      該發(fā)明的8b/10b編碼流程圖如圖3所示,包括以下步驟:

      1、輸入8bit碼字、K碼指示、極性指示。一方面作為4b/6b和3b/4b編碼以及低四位統計的輸入,另一方面參與4b/6b和3b/4b編碼結果的選擇信號的譯碼;

      2、4b/6b和3b/4b編碼以及低四位統計。這三部分處理是并行同步進行的,其中4b/6b編碼利用上述規(guī)律1對5b/6b編碼進行縮減實現;

      3、4b/6b和3b/4b編碼結果選擇以及極性選擇。利用上述規(guī)律2,通過低四位的統計結果以及輸入的碼字對4b/6b和3b/4b編碼結果進行若干次選擇;同時也根據規(guī)律2對極性指示輸入進行取反或者不取反得到極性指示輸出。

      4、輸出10bit編碼結果和極性指示。將最終的4bit和6bit編碼結果組合為10bit編碼結果,與極性指示一起輸出。

      具體的實現結構如圖4所示。由輸入寄存器、4b/6b編碼模塊、3b/4b編碼模塊、4輸入1位加法器模塊、選擇信號譯碼模塊、若干的2選1復用模塊(2:1MUX)和反相器模塊以及輸出寄存器組成。其中,輸入寄存器之后的4位2選1復用模塊和4b/6b編碼模塊是上述規(guī)律1的主要實現模塊,4輸入1位加法器模塊和選擇信號譯碼模塊是上述規(guī)律2的主要實現模塊,是本發(fā)明的核心所在。該結構的工作過程如下:

      1)在時鐘驅動下輸入8bit碼字以及K碼指示、極性指示得到HGFDCBA、K_reg、RD_reg;

      2)通過上述規(guī)律1確定4b/6b、3b/4b的初步編碼結果6b_reg1和4b_reg1;

      3)由選擇信號譯碼模塊的輸出信號6bit_sel1和4bit_sel1對初步結果進行第一級選擇得到5b/6b、3b/4b的RD-編碼結果6b_reg2和4b_reg2;

      4)由選擇信號譯碼模塊的輸出信號6bit_sel2和4bit_sel2對第一級選擇結果進行第二級選擇得到5b/6b、3b/4b的RD-/RD+編碼結果fghj和abcdei;同時由選擇信號譯碼模塊的輸出信號rd_sel選擇是否對RD_reg取反;

      5)在時鐘的驅動下將8b/10b的最終編碼結果abcdeifghj和極性指示輸出。

      選擇信號譯碼模塊的輸出與輸入關系主要遵循規(guī)律2,附加上述規(guī)律之外對特殊碼字的特殊處理。鑒于5b/6b和3b/4b編碼結果的每一次選擇有按位取反處理,因此,上述的多位2選1選擇模塊的操作都是基于1位的。同樣的,選擇信號譯碼模塊的輸出選擇信號6bit_sel1、6bit_sel2都是6位寬,分別作為6bit輸入中各位的選擇信號;選擇信號4bit_sel1、4bit_sel2則都是4位寬,分別作為4bit輸入中各位的選擇信號。

      舉例1,對于8bit輸入數據碼字011_01101,由于E=0,直接對DBCA進行統計,有3個“1”,歸為上述規(guī)律2的第一類。根據圖1、圖2和上述規(guī)律1、規(guī)律2,對EDCBA編碼結果選擇101100(RD-結果和RD+結果),對HGF編碼結果選擇X`=1100(RD-結果)或者X=0011(RD+結果),最后組合得到10bit編碼結果101100_1100(RD-結果)或者101100_0011(RD+結果)。至于極性指示輸出,由于HGF=011而且為上述規(guī)律2中的第一類碼字,根據圖1和上述規(guī)律2對RD_i進行取反。

      舉例2,對于8bit輸入數據碼字111_11000,由于E=1,對D`B`C`A`進行統計,有3個“1”,歸為上述規(guī)律2的第一類。根據圖1、圖2和上述規(guī)律1、規(guī)律2,對EDCBA編碼結果選擇110011(RD-結果)或者001100(RD+結果),對HGF編碼結果選擇X=0001(RD-結果)或者X`=1110(RD+結果),最后組合得到10bit編碼結果110011_0001(RD-結果)或者001100_1110(RD+結果)。至于極性指示輸出,由于HGF=111而且為上述規(guī)律2中的第一類碼字,根據圖1和上述規(guī)律2相對于RD_i保持不變。

      舉例3,對于8bit輸入非數據碼字111_11101,由于E=1,對D`B`C`A`進行統計,有1個“1”,歸為上述規(guī)律2的第三類。根據圖1、圖2和上述規(guī)律1、規(guī)律2,對EDCBA編碼結果選擇101110(RD-結果)或者010001(RD+結果),對HGF編碼結果選擇X=1000(RD-結果)或者X`=0111(RD+結果),最后組合得到10bit編碼結果101110_1000(RD-結果)或者010001_0111(RD+結果)。至于極性指示輸出,由于HGF=111而且為上述規(guī)律2中第三類碼字,根據圖1和上述規(guī)律2相對于RD_i保持不變。

      相比于傳統的5b/6b和3b/4b分塊編碼實現,本發(fā)明有以下有益效果:

      (1)本發(fā)明中根據規(guī)律1對DCBA進行了4b/6b編碼,由E位選擇DCBA或者D`B`C`A`作為4b/6b編碼輸入,根據選擇信號譯碼模塊的輸出對4b/6b編碼結果進行按位處理。與5b/6b編碼實現相比,4b/6b編碼實現將邏輯規(guī)??s減將近一半。

      (2)本發(fā)明中的數據編碼(D碼)和非數據編碼(K碼)沒有分開來實現,而是根據上述規(guī)律進行了一體化實現。相比于單獨對12種K碼進行8b/10b編碼實現,進一步減小了邏輯規(guī)模。

      (3)本發(fā)明中的極性指示輸出利用上述規(guī)律對極性指示輸入進行直接輸出或者取反輸出,是與4b/6b編碼和3b/4b編碼并行同步進行的。相比于在5b/6b編碼和3b/4b編碼完成后再對各自的結果進行“0”和“1”的個數比較再判斷極性變化,在一定程度上減小了電路的延時。

      以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內所做的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內。

      當前第1頁1 2 3 
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1