《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 業界動態 > 10G以太網系統中的并行CRC編解碼器的設計

10G以太網系統中的并行CRC編解碼器的設計

2008-09-10
作者:劉 昭 蘇 厲 金德鵬 陳

??? 摘 要: 為了解決10G" title="10G">10G以太網接入" title="以太網接入">以太網接入系統中大規模并行CRC編碼器的設計問題,提出了矩陣法、代入" title="代入">代入法、流水線法等三種" title="三種">三種設計方法。以此為基礎,給出了10G以太網接入系統中CRC編碼器的實現方案。具體計算表明,在10G以太網接入系統中采用直接并行的CRC編碼器是可行的。直接并行設計的CRC編碼器已經通過了EDA模擬,并成功地應用于10G以太網接入系統中。
??? 關鍵詞: 10G 以太網 CRC 并行

?

??? 通信系統不可避免地要受到各種干擾的影響,使接收端收到的信息與發送端發出的信息不一致,即接收端收到的信息產生了誤碼?為了降低數據通信線路傳輸的誤碼率,通常有改善數據通信線路傳輸質量和差錯檢測控制兩種方法?差錯檢測控制的方法很多,本文討論在10G以太網接入系統中并行實現CRC-32編解碼的方法?并行CRC算法的Unfolding算法[1]可以實現并行CRC的計算,但是并行電路所用的資源增加到了原來的J倍?8位并行CRC算法[2]?并行CRC-16的編碼邏輯[3]?USB技術中并行CRC算法[4]給出的并行算法都建立在公式遞推的基礎上?當并行深度較小時,遞推算法比較適用?而當并行深度很大的情況下(10G以太網接入系統使用64比特并行數據通路),遞推過程就顯得過于煩瑣而缺乏實用性?為此,本文提出了矩陣法?代入法和流水線法等三種算法,解決了深度并行情況下CRC算法的實現問題?利用本文提出的算法,可以得出64比特并行CRC計算的邏輯表達式,并用于10G以太網接入系統的設計?設M(x)為信息多項式,G(x)為生成多項式?一般的CRC編碼方法是:先將信息碼多項式左移r位,即M(x)·xr,然后作模2除法[5]?

?????

??? 所得到的R(x)就是CRC校驗碼?以二進制碼0x9595H的CRC-32編碼為例:?

??? ·將信息碼左移32比特變成0x959500000000H,記為m??

??? ·CRC-32的生成多項式G(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1,轉換成16進制碼為g=0x104C01DB7H?用m除以g(模2除法),所得余數0x3738F30BH就是0x9595H的CRC-32碼?實現0x9595H的基本CRC-32編碼的Matlab程序如下:?

??? g(33:-1:1)=[1, 0 0 0 0 0 1 0 0, 1 1 0 0 0 0 0 1,0 0 0 1 1 1 0 1, 1 0 1 1 0 1 1 1]:?

??? a(48:-1:1)=[1 0 0 1 0 1 0 1, 1 0 0 1 0 1 0 1,?

??????? 0 0 0 0 0 0 0 0 ,0 0 0 0 0 0 0 0 ,0 0 0 0 0 0 0 0,0 0 0 0 0 0 0 0]:?

??? for i=48:-1:33,?

??? ??? if a(i)==1?

????? ??????? a(i:-1:i-32)=xor(a(i:-1:i-32),g(33:-1:1)):?

??? ??? end?

??? end?

??? crc=a(32:-1:1)?

??? 如果想用以上CRC-32程序計算其他長為L的序列的基本CRC-32碼,只需將數組a的上界和for循環中i的初始值改為32+L,并用該序列代替數組a開始的序列“1001010110010101”即可?用數字電路實現的串行CRC編碼器如圖1所示[5]?圖1中每個矩形表示D觸發器?gi的取值范圍是1或者0?取1時表示通路,取0時表示斷路?進行基本CRC-32編碼時,每個D觸發器初始狀態為0,從數據端串行輸入二進制的信息碼?信息碼輸入結束后,D觸發器中鎖存的數值就是信息碼的基本CRC-32編碼?此電路適用于信息碼長為任意值的情況?在某些信息系統中以基本CRC產生算法為基礎附加了新的規定?例如IEEE802.3協議規定[6],以太網的FCS(幀校驗序列)域以CRC-32為基礎,并且在編碼時首先將信息碼的最初4個字節取反碼,對目的地址?源地址?長度/類型域?數據域?PAD域求出基本CRC-32碼之后再將結果取反,最后的結果才是FCS?同上述過程等價的另一種實現方法" title="實現方法">實現方法是將圖1中所有D觸發器的初值置1,這樣結果不必取反?為使電路設計者驗證其FCS編碼正確,IEEE802.3還給出了一個樣本,即:將序列0xBED723476B8FB3145EFB3559H重復126次,最后得到的FCS值應該為0x94D254ACH?10G以太網是IEEE802.3ae工作組提出的建議[7]?它保持了以前以太網的幀結構,但是線速度達到了10Gbps的量級?為了降低10G以太網接入系統的功耗并達到芯片加工工藝的要求,必須采用并行數據通路?為計算FCS需要研究并行CRC算法?所設計的10G以太網接入系統采用64比特并行數據通路,因此本文主要討論64比特并行CRC-32的實現方法?本文共介紹三種實現方法,其中矩陣法和代入法是基于組合邏輯的直接實現方法,第三種方法是基于流水線的實現方法??

?

?

1 矩陣法?

??? 記圖1中的32個D觸發器的輸出從右至左依次為d31,d30,...,d0?信息碼元的輸入端為i?令D=[d0d1...d31]T表示編碼器當前所處的狀態,I=[i63i62...i0]表示第1至第64個時鐘的信息碼元輸入,向量D′=[d0′d1′...d31′]T表示編碼器的下一個狀態,D(64)表示64個時鐘之后CRC編碼器所處的狀態?則設計64位并行CRC邏輯編碼器,就是找出函數關系D(64)=f(D,I)??

??? 則從圖1可以看出:?

???

??? 這里所有矩陣運算和代數運算中的加號的語義都是模2加法?為了設計64位并行CRC電路,必須計算(2)式中的大規模矩陣乘法T64?T63S等??

2 代入法?

??? 矩陣法的優點在于其直觀性?但是需要做大規模乘法運算?下面討論的代入法能夠得到與矩陣法相同的結果?同時可以避免大規模矩陣乘法運算?設8比特并行CRC-32電路的初始狀態是d31,d30,...,d0,輸入是i7,i6,...,i0,輸出是z31,z30,...,z0?利用前面所述的矩陣法,可以得出8比特并行CRC-32編碼器的組合邏輯表達式?如表1所示??

??? 即:?

??? z31=d23+d29+i5:?

??? z30=d22+d31+i7+d28+i4?

??? ...?

??? z0=d24+d30+i6+i0?

?

?

??? 下文用“+”表示按位模2和運算,“{,}”表示鏈接運算?從CRC的(1)式很容易得出以下算法:?

??? 算法1:已知序列N的CRC-32為A[31:0],序列B(=[b7,b6,...,b0])的CRC-32碼為Y[31:0]?序列A[31:24]的CRC-32為X[31:0],則延拓序列{N,B}的CRC-32碼為{Y[31:24]+X[31:24]+A[23:16],Y[23:16]+X[23:16]+A[15:8],Y[15:8]+X[15:8]+A[7:0],Y[7:0]+X[7:0]}??

??? 推論:已知序列N的CRC-32為A[31:0],序列A[31:24]的CRC-32為X[31:0],則補0延拓序列{N,O}的CRC-32碼為{X[31:24]+A[23:16],X[23:16]+A[15:8],X[15:8]+A[7:0],X[7:0]}??

??? 利用上述算法構造APPEND模塊,其端口A和B分別表示前導序列的CRC和延拓的8比特序列,則其輸出端口Z為拓展之后序列的CRC?圖2利用APPEND模塊構造了級聯結構的64比特并行CRC編碼器?這種級聯構造的編碼器設計比較簡單?其中間節點:?

??? Z1(n)=f(r,d[0:7])???????? n∈[31,0]?

??? Z2(n)=f(Z1,d[8:15])=f(f(r,d[0:7]),d[8:15])?

??? ...????????????????????????????????????? (3)?

?

?

?

??? 顯然(3)還可以進一步化簡?冗余的邏輯使得這種級聯結構占用芯片面積大,且只能用于低速場合?對(3)進一步化簡,可以得到Z2的最簡異或表達式?同理可以得到Z3...Z8的表達式?Z1,Z2,...,Z8分別對應8比特?16比特?……?64比特的并行CRC運算表達式?具體表達式限于篇幅不在這里給出?Z8中最長的異或運算表達式有52項參加運算,如果使用4-異或門則只需要用三級,即能在一般CMOS工藝的一級傳輸延遲時間之內完成?當用于以太網接入系統時,因為以太網幀不一定結束在64比特邊界,因此編碼器應該有同時計算8?16?24?……?64比特并行編碼的能力?具體電路如圖3?因為一般情況下大量用到64比特并行編碼,因此平時使能信號mux使其他7個編碼模塊不工作以降低功耗?在幀尾部根據具體情況使用這7個模塊進行剩余字節的編碼??

?

?

3 流水線法?

??? 矩陣法和代入法本質上都是設計直接并行編碼電路的方法,二者的最終效果是一樣的?直接并行實現的CRC編碼電路控制邏輯比較簡單,但是需要進行復雜的組合邏輯運算?為了在更高頻率下進行并行CRC編碼,可以進一步用流水線的方法簡化編碼邏輯,所付出的代價是整個幀的處理延遲了8個時鐘周期?圖4給出了CRC編碼的流水線實現?將并行輸入的64比特分成7個字節,分別用D0?D1?……?D7表示?P模塊(P0~P7)計算形如“Di′,O,O,O,O,O,O,O,Di”的序列的CRC,其中Di′是Di位置上的上一次輸入?Di′的CRC碼由端口R[31:0]輸入,Di由端口D[7:0]輸入,結果由Z[31:0]端口輸出??

?

?

??? C模塊(C1~C7)的輸入是“D0′,O,O,O,O,O,O,O,D0”和“D1′,O,O,O,O,O,O,O,D1”的CRC(分別由端口R1和R2輸入),輸出是“D0′,D1′,O,O,O,O,O,O,D0,D1” CRC?求P的邏輯表達式時,重復應用算法1的推論,可以求出“Di′,O,O,O,O,O,O,O”的CRC碼,再應用算法1,就可以求出“Di′,O,O,O,O,O,O,O,Di”的CRC碼?直接應用算法1可以求出C模塊的邏輯表達式?P模塊和C模塊進行異或運算的長度遠小于直接并行CRC電路中的ENC8模塊,因此更有利于在高速電路中應用??

4 10G以太網接入系統中的CRC編解碼器設計?

??? 10G以太網接入系統所需接口速率高達10Gbps以上?從降低系統功耗和芯片制造成本的角度考慮希望接口能工作在200MHz以下?采用并行化設計雖然可以降低系統時鐘頻率,但也從以下兩方面增加了設計難度?首先,數據通路的并行程度越高,對它的控制就越復雜?系統采用8字節并行數據通路,則發送的以太網幀可能在8個并行字節中的任意一個位置上結束,控制邏輯的設計就必須考慮所有這些可能性并逐一做出相應的處理?其次,系統中的CRC編碼器?擾碼器等的設計須采用并行算法?為了滿足IEEE802.3協議對以太網幀CRC編碼的要求,實際的編解碼器模塊還需要能對輸入輸出信號進行任意字節數的求反運算?考慮到10G接入系統的復雜性,該模塊功能應該高度集成化,以便用宏信號端口對其進行操作?在對收到的以太網幀進行校驗時,沒必要先計算不包括FCS域的序列的CRC編碼(結果取反)再與FCS域做對比?在編碼正確且沒有誤碼的情況下,對整個以太網幀(包括FCS域)進行結果不取反的CRC編碼的結果應該為序列0xC704DD7BH?采用這種判別方法,無需在幀的結束前停止計算CRC編碼,因而可以大大簡化電路設計??

5 CRC編碼器的實現?

??? 本文提出的各種算法的硬件實現已經通過了FPGA驗證,并被應用到具體芯片?使用Xilinx公司的Virtex2系列FPGA中的XC2V1000分別仿真了采用上述代入法和流水線法設計的CRC編碼器和解碼器,驗證了設計方法的正確性?在綜合考慮邏輯復雜度?所占用的芯片面積和工藝要求后,最終在所設計的10G以太網接入芯片中,采用了代入法設計的CRC編碼器和解碼器??

??? 10G以太網接入系統中需要采用并行CRC編碼器?本文提出了基于組合邏輯的直接實現和基于流水線的實現方法?其中直接實現的方法又分為矩陣法和代入法兩種?經過具體推導發現直接實現的編碼器可以滿足延時要求,因而被本系統所采用?而基于流水線的設計因為其延時較小,可以用于更高速的場合?本文提出的三種并行化設計方法已經通過了硬件驗證?這些設計思想同樣適用于其他線性移位寄存器,如擾碼器的設計??

參考文獻?

1 程 超,程善美.Unfolding算法實現的高速并行CRC電路的VLSI設計.微電子學與計算機[J],2002:(12):68~69?

2 劉新寧,王超,胡晨,蔡洪亮.一種快速CRC算法的硬件實?現方法.電子器件[J]:2003:26(1):88~91?

3 王 耿,姜智忠.用HDL語言實現循環冗余校驗.微電子學與計算機[J],2002:(5):4~6?

4 程 軍,陳貴燦,姜 飛.USB數據傳輸中CRC校驗碼的并行算法實現.微電子學與計算機[J],2003:(3):77~80?

5 曹志剛,錢亞生.現代通信原理[B].北京:清華大學出版社,1992:344~346?

6 IEEE Std,802.3.2000.?

7 IEEE Std,802.3ae.2002.

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
蜜月aⅴ免费一区二区三区| 在线一区免费观看| 制服诱惑一区二区| 亚洲欧洲在线视频| 欧美激情麻豆| 亚洲精品综合| 亚洲精品专区| 国产精品爱啪在线线免费观看| 午夜精品亚洲| 久久精品视频免费观看| 国内成+人亚洲+欧美+综合在线| 久久久久久日产精品| 欧美一区二区高清| 一区二区三区在线观看视频| 欧美国产日韩a欧美在线观看| 久久久噜噜噜久久久| 久久国产精品一区二区三区| 亚洲第一福利在线观看| 亚洲黄色免费电影| 国产精品久久久久久久久果冻传媒| 久久成人18免费网站| 亚洲精品九九| 亚洲视屏在线播放| 国内外成人免费激情在线视频网站| 国产精品女主播一区二区三区| 久久久久久成人| 久久久999精品视频| 一本色道久久综合狠狠躁篇怎么玩 | 欧美在线观看日本一区| 亚洲福利视频网| 国产精品一区二区男女羞羞无遮挡| 久久aⅴ国产欧美74aaa| 久久精品道一区二区三区| 久久激情网站| 狂野欧美激情性xxxx| 亚洲影院污污.| 亚洲精品免费在线| 99在线精品观看| 欧美一区二区三区免费观看| 欧美中文字幕视频| 99在线精品视频| 影音先锋成人资源站| 国产精品电影观看| 国产三级欧美三级日产三级99| 欧美屁股在线| 久久久午夜视频| 欧美77777| 久久精品在线| 欧美aa在线视频| 欧美日韩直播| 欧美成人一区二区在线| 久久精品在线观看| 欧美激情精品久久久| 国产精品mm| 经典三级久久| 亚洲美女精品成人在线视频| 亚洲欧美久久久久一区二区三区| 亚洲精品久久久久| 精品91在线| 日韩亚洲欧美成人| 亚洲国产女人aaa毛片在线| 一区二区三区视频免费在线观看| 性欧美办公室18xxxxhd| 亚洲美女中出| 久久国产精品99国产| 欧美精品在线观看91| 国产九九精品| 亚洲精品日韩精品| 欧美一区二区三区四区在线| 99视频精品在线| 久久精品一本久久99精品| 欧美人与禽猛交乱配视频| 国产亚洲成av人片在线观看桃 | 亚洲一区二区三区在线视频| 亚洲人成啪啪网站| 午夜精品国产更新| 久久精品日产第一区二区| 欧美影院精品一区| 噜噜噜91成人网| 欧美天天影院| 欧美精品亚洲二区| 欧美激情二区三区| 国产日韩欧美亚洲| 亚洲精品国久久99热| 性感少妇一区| 亚洲综合99| 亚洲一级黄色片| 亚洲一区二区视频| 美女任你摸久久| 国产日韩一区二区三区在线| 一卡二卡3卡四卡高清精品视频| 亚洲啪啪91| 亚洲精品乱码久久久久久蜜桃91| 亚洲一区不卡| 欧美精品成人91久久久久久久| 韩国三级电影久久久久久| 国外成人网址| 亚洲淫性视频| 午夜精品剧场| 亚洲午夜在线视频| 欧美国产日本| 亚洲国产精品久久久久婷婷老年 | 亚洲破处大片| 久久日韩精品| 欧美成人综合在线| 国产一区二区在线观看免费播放| 极品日韩久久| 欧美一区二区三区另类| 欧美诱惑福利视频| 国产精品视频专区| 黄色综合网站| 欧美一区二区三区四区在线观看地址 | 久久精品视频亚洲| 国产精品综合久久久| 亚洲在线观看免费视频| 亚洲综合久久久久| 国产精品www网站| 亚洲茄子视频| 99精品视频一区| 欧美日本一区二区视频在线观看| 亚洲国产成人一区| 亚洲精品欧美精品| 欧美剧在线免费观看网站| 亚洲精品一区二区三区樱花| 一本大道久久a久久精二百| 欧美精品一卡| 99成人在线| 亚洲一区二区三区在线看| 欧美视频在线看| 亚洲婷婷综合久久一本伊一区| 亚洲一区影院| 国产精品影片在线观看| 亚洲欧美综合精品久久成人 | 欧美午夜精品久久久久久人妖| 一区二区三区欧美视频| 亚洲欧美日韩国产一区二区| 国产精品入口日韩视频大尺度| 亚洲欧美日本精品| 久久女同互慰一区二区三区| 在线日韩中文| 在线视频亚洲一区| 国产精品99久久不卡二区| 国产精品白丝av嫩草影院| 亚洲欧美日韩国产精品 | 欧美日韩国产a| 国产午夜精品一区理论片飘花| 午夜一区二区三视频在线观看| 久久九九免费视频| 精久久久久久| 99国产精品久久| 久久久免费av| 一区二区三区在线免费观看| 亚洲美女av电影| 国产精品v亚洲精品v日韩精品| 午夜精品久久久久久久白皮肤| 久久亚洲视频| 亚洲破处大片| 欧美亚洲一区二区在线观看| 欧美精品二区| 亚洲视频www| 久久av二区| 亚洲福利专区| 在线观看成人av电影| 夜夜爽夜夜爽精品视频| 性8sex亚洲区入口| 欧美成人免费大片| 狠狠综合久久av一区二区老牛| 亚洲精品国产精品国自产在线| 欧美视频第二页| 午夜视频在线观看一区二区三区 | 亚洲欧美日韩一区二区三区在线| 久久不射中文字幕| 18成人免费观看视频| 亚洲一区二区三区在线| 久久精品夜色噜噜亚洲a∨| 最新国产成人av网站网址麻豆| 亚洲免费视频观看| 国产精品丝袜久久久久久app| 欧美在线免费| 欧美激情视频一区二区三区在线播放 | 亚洲免费中文字幕| 狼人社综合社区| 一区二区三区精品视频| 久久精品首页| 亚洲成人直播| 亚洲欧洲一区二区三区| 欧美日韩精品国产| 亚洲人成网站999久久久综合| 欧美一区二区三区免费视频| 亚洲黄色成人久久久| 久久精品二区亚洲w码| 亚洲第一精品久久忘忧草社区| 午夜久久一区| 久久激情视频免费观看| 一区二区三区高清在线| 一区二区三区精品国产| 国产精品久久网| 亚洲国产婷婷香蕉久久久久久99| 亚洲视频www| 怡红院精品视频在线观看极品|