推薦文檔列表

10G以太網(wǎng)系統(tǒng)中的并行CRC編解碼器的設(shè)計(jì)

時(shí)間:2021-10-01 08:01:50 電子通信論文 我要投稿

10G以太網(wǎng)系統(tǒng)中的并行CRC編解碼器的設(shè)計(jì)

摘要:為了解決10G以太網(wǎng)接入系統(tǒng)中大規(guī)模并行CRC編碼器的設(shè)計(jì)問題,提出了矩陣法、代入法、流水線法等三種設(shè)計(jì)方法。以此為基礎(chǔ),給出了10G以太網(wǎng)接入系統(tǒng)CHC編碼器的實(shí)現(xiàn)方案。具體計(jì)算表明,在10G以太網(wǎng)接入系統(tǒng)采用直接并行的CRC編碼器是可行的。直接并行設(shè)計(jì)CRC編碼器已經(jīng)通過了EDA模擬,并成功地應(yīng)用于10G以太網(wǎng)接入系統(tǒng)中。

    關(guān)鍵詞:10G 以太網(wǎng) CRC 并行

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

(M(x)· x r)/G(x)=Q(x)+R(x)/G(x)    (1)

所得到的月(x)就是CRC校驗(yàn)碼。以二進(jìn)制碼0x9595H的CRC-32編碼為例:

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

·CRC-32G的生成多項(xiàng)G(x)=x32+x26+x23+x22+x16+x12+xll+x10+x8+x7+x5+x4+x2+x+1,轉(zhuǎn)換成16進(jìn)制碼為g=0x104C01DB7H。用m除以g(模2除法),所得余數(shù)0x3738F30BH就是0x9595H的CRC-32碼。實(shí)現(xiàn)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),i(33:-1:1));

end

end

[1] [2] [3] [4] [5]