袁 征,冶曉隆+,郭 超
(1.國家數(shù)字交換系統(tǒng)工程技術(shù)研究中心,河南 鄭州450002;2.69019部隊(duì))
循環(huán)冗余校驗(yàn) (CRC)易于實(shí)現(xiàn),且具有較優(yōu)的誤碼檢錯能力和抗干擾性能被廣泛應(yīng)用于高速網(wǎng)絡(luò)的差錯控制中[1]。隨著FPGA等可編程器件在骨干網(wǎng)絡(luò)傳輸設(shè)備中的大量使用,基于異或邏輯的CRC校驗(yàn)在FPGA中易于實(shí)現(xiàn)、占用資源較少、且能實(shí)現(xiàn)線速網(wǎng)絡(luò)數(shù)據(jù)的差錯檢測而成為骨干網(wǎng)絡(luò)鏈路差錯控制的主要方式[2]。
在IEEE802.3以太網(wǎng)協(xié)議中,CRC校驗(yàn)碼是以太網(wǎng)幀結(jié)構(gòu)中重要的組成部分。傳統(tǒng)的CRC編譯碼器的實(shí)現(xiàn)都是基于串行方式,這種方式具有較高的工作頻率和簡單的電路結(jié)構(gòu),但是其采用串行移位,導(dǎo)致處理效率較低。隨著網(wǎng)絡(luò)速度的增長,尤其針對10G網(wǎng)絡(luò)已經(jīng)難以實(shí)現(xiàn)實(shí)時處理[3]。為此研究人員針對CRC校驗(yàn)的并行計算展開了研究[4-6],文獻(xiàn) [7]提出了基于流水線的并行CRC校驗(yàn)算法,該方法占用邏輯資源較少,但是處理單個周期需要8個周期的時延,無法滿足實(shí)時處理要求。Stavinov[8]針對CRC校驗(yàn)的邏輯電路進(jìn)行了改進(jìn),但是采用傳統(tǒng)并行邏輯表,占用資源較多。文獻(xiàn) [9]設(shè)計了一種多通道并行CRC,可以滿足10G以太網(wǎng)的實(shí)時CRC校驗(yàn),但算法設(shè)計復(fù)雜,對處理器性能要求較高。畢占坤[10]針對不同處理位寬分別設(shè)計了CRC校驗(yàn)?zāi)K,該方法處理性能較高,但推導(dǎo)復(fù)雜,難以實(shí)際部署應(yīng)用。
基于此,本文提出了一種基于級聯(lián)結(jié)構(gòu)的CRC校驗(yàn)方法,通過此結(jié)構(gòu)可以輸出任意比特位的CRC校驗(yàn)值,解決了10G以太網(wǎng)非64比特結(jié)尾時需設(shè)計多種CRC邏輯而占用大量邏輯資源的問題,并改進(jìn)了異或電路,降低了大量異或邏輯計算的處理時延。最后借助FPGA對本文方法進(jìn)行了實(shí)現(xiàn)和驗(yàn)證。
CRC校驗(yàn)[11]利用線性編碼理論,其基本思想是:發(fā)送方在發(fā)送k位信息序列時,以一定規(guī)則產(chǎn)生監(jiān)督序列 (r位)并附在信息序列后面進(jìn)行傳送。接收方收到序列后,根據(jù)規(guī)則進(jìn)行檢驗(yàn)是否傳輸錯誤。
CRC校驗(yàn)碼是一種采用多項(xiàng)式編碼方式的循環(huán)碼字。如圖1所示,如果被檢驗(yàn)序列有n位,則信息碼為 {mn-1,mn-2,...,m1,m0},多項(xiàng)表達(dá)式 M(x)可表示為
一般的CRC編碼方式是:先將信息多項(xiàng)式左移r位,然后做模2除法。即
所得到的R(x)就是CRC校驗(yàn)碼,其中G(x)為生成多項(xiàng)式。
圖1 帶CRC的數(shù)據(jù)序列
對于接收端,在收到信息序列M(x)后,如果其模二整除G(x)所得的余數(shù)等于接收的R(x),則沒有誤碼。
G(x)的通用表達(dá)式為:G(x)=xk+gk-1xk-1+gk-2xk-2+...+g2x2+g1x+1。以太網(wǎng)802.3協(xié)議對CRC校驗(yàn)的生成多項(xiàng)式進(jìn)行了規(guī)定。
802.3 規(guī)定的CRC32表達(dá)式為:G(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1。
傳統(tǒng)的CRC校驗(yàn)碼可以通過線性移位寄存器 (多次迭代的移位異或運(yùn)算)來實(shí)現(xiàn)。如圖2所示,為通用的串行移位電路。其中:CRC校驗(yàn)碼的余數(shù)用寄存器的狀態(tài) (存數(shù))表示,模2除運(yùn)算用異或表示。
圖2 串行CRC編碼實(shí)現(xiàn)原理
在圖2中,r0、r1、…、rk-1為k個移位寄存器的存數(shù),移位過程由外部時鐘進(jìn)行驅(qū)動,gi(i=0、1、2、…、k-1)為生成多項(xiàng)式g(x)的系數(shù),當(dāng)gi為 “0”時表示斷路,gi為 “1”時表示通路。串行電路作為基本的CRC運(yùn)算電路,只需要移位寄存器和異或門來實(shí)現(xiàn)。
傳統(tǒng)的串行CRC計算雖然實(shí)現(xiàn)簡單,但是其每個周期只處理一位數(shù)據(jù),對于具有n位的數(shù)據(jù)流來說,需要n個周期完成CRC值的計算,其對于高速網(wǎng)絡(luò)通信數(shù)據(jù)的實(shí)時處理已經(jīng)難以滿足要求。并且基于硬件來實(shí)現(xiàn)多維數(shù)據(jù)(n維)的串行CRC計算時,需要使用n個存儲器級的移位寄存器和2 n個異或門,占用了大量的運(yùn)算資源,因此需要引入并行計算方法來提高處理效率。傳統(tǒng)基于軟件實(shí)現(xiàn)的并行CRC方法主要是查表法[12],這種方法對于不同維數(shù)生成多項(xiàng)式序列和并行輸入序列需要建立不同的余數(shù)表,占用了大量存儲資源,并且查表深度和并行處理位寬呈2的冪次關(guān)系,不適用于硬件運(yùn)算。因此提出了遞推法和矩陣法[13]。
1.3.1 遞推法
CRC并行算法是根據(jù)串行移位電路推導(dǎo)而來,如圖2所示。對于串行移位計算,當(dāng)前CRC的值只與輸入信息序列的前一位和前一狀態(tài)的CRC值有關(guān)。當(dāng)進(jìn)行并行計算時,以8位并行輸入為例,8位信息序列同時輸入與8位信息序列串行移位輸入產(chǎn)生的CRC值相同,此時兩種電路等效。由此可得出并行CRC計算的方法,即
以此類推,可以得到r81、…、r815。遞推法計算并行CRC運(yùn)算具有通用性,該方法消除了余數(shù)表,降低了對存儲資源的需求,提高了計算速度,具有較好的擴(kuò)展性。
1.3.2 矩陣法
遞推法適用于并行輸入維數(shù)較低的情況,當(dāng)并行度較高時,遞推運(yùn)算較為復(fù)雜,因此提出了矩陣法計算。
以63位信息序列輸入的CRC-32為例。如圖2所示,記R= [r0r1…r22r23]T為移位寄存器的當(dāng)前狀態(tài),D =[d64d63…d1d0]T為第1至64個時鐘的信息序列輸入,R′=[r′0r′1…r′22r′23]T為移位寄存器的下一個狀態(tài),R(64)為第64個時鐘之后移位寄存器的狀態(tài)。CRC-32并行設(shè)計就是找出函數(shù)關(guān)系R(64)=f(R,D)。
由圖2進(jìn)行遞推可得矩陣表達(dá)式
由式 (4)可得:R′=T·R′+S·d30=T2·R+TS·d31+d·i30,以此類推,可得
其中所有代數(shù)運(yùn)算和矩陣運(yùn)算中的加法運(yùn)算都為模2加。矩陣法將公式中的遞推關(guān)系轉(zhuǎn)化為矩陣運(yùn)算,其更加直觀,并且適用于大位寬數(shù)據(jù)的并行運(yùn)算。但矩陣法涉及大規(guī)模的矩陣乘法運(yùn)算,在硬件實(shí)現(xiàn)時需占用大量的存儲資源和計算單元。因此,如何提高大位寬數(shù)據(jù)的并行CRC算法的計算效率和降低資源使用率成為一個重要的研究方面。
隨著10G以太網(wǎng)技術(shù)大量應(yīng)用于骨干網(wǎng)絡(luò)鏈路和支持10G鏈路速率的MAC、PHY芯片的大量應(yīng)用,使得基于高性能可編程器件FPGA結(jié)合以太網(wǎng)處理芯片 (MAC、PHY等)成為10G以太網(wǎng)處理設(shè)備的主流解決方案。
CRC校驗(yàn)作為網(wǎng)絡(luò)數(shù)據(jù)處理流程的重要組成部分,隨著網(wǎng)絡(luò)速率的不斷增長,為了滿足線速CRC校驗(yàn),基于FPGA等硬件實(shí)現(xiàn)的CRC計算成為主要方式。傳統(tǒng)的并行CRC計算需要占用大量的存儲資源和邏輯資源,降低了系統(tǒng)的處理性能。因此,研究新型CRC計算方法以降低系統(tǒng)功耗和芯片工藝的要求成為必要。
以太網(wǎng)通信中CRC校驗(yàn)具有重要作用,通信雙方以約定的校驗(yàn)生成多項(xiàng)式和校驗(yàn)位寬實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)腻e誤校驗(yàn)。包括對接收的數(shù)據(jù)幀進(jìn)行CRC計算、當(dāng)CRC錯誤時進(jìn)行數(shù)據(jù)重傳、發(fā)送數(shù)據(jù)幀時添加CRC校驗(yàn)序列和為下一跳節(jié)點(diǎn)提供數(shù)據(jù)檢錯依據(jù)等。通過CRC校驗(yàn)確保了以太網(wǎng)數(shù)據(jù)在整個鏈路中數(shù)據(jù)傳輸?shù)目煽啃?。以太網(wǎng)數(shù)據(jù)傳輸中每個節(jié)點(diǎn)的CRC處理流程如圖3所示,具體包括:
(1)數(shù)據(jù)收到物理層之后送到介質(zhì)訪問控制層(MAC)進(jìn)行編解碼處理,MAC層中首先進(jìn)行CRC校驗(yàn),通過比較計算的接收數(shù)據(jù)CRC值和接收的CRC值,當(dāng)校驗(yàn)不一致時產(chǎn)生重傳。
(2)對于CRC校驗(yàn)正確的數(shù)據(jù)幀,上傳到上層進(jìn)行處理,包括路由查表、TTL更新等。
(3)對于需要發(fā)送到下一跳 (next hop)時,首先計算待發(fā)送數(shù)據(jù)的CRC值,添加到數(shù)據(jù)序列組幀,為下一節(jié)點(diǎn)數(shù)據(jù)校驗(yàn)提供依據(jù),最后送到物理層進(jìn)行傳輸。
圖3 以太網(wǎng)CRC校驗(yàn)和計算流程
以太網(wǎng)CRC校驗(yàn)遵循以太網(wǎng)IEEE802.3協(xié)議,IEEE802.3協(xié)議規(guī)定的以太網(wǎng)MAC子層的幀格式如圖4所示,包括:源\目的地址、長度、數(shù)據(jù)域和幀校驗(yàn)序列(frame check sequence,F(xiàn)CS),F(xiàn)CS校驗(yàn)的區(qū)域包括幀的協(xié)議字段和數(shù)據(jù)字段區(qū)域。
圖4 以太網(wǎng)幀格式
在以太網(wǎng)通信中,以太網(wǎng)的字節(jié)序是大端模式 (高位在先),在計算FCS時首先需對幀內(nèi)數(shù)據(jù)進(jìn)行處理。IEEE802.3規(guī)定的以太網(wǎng)CRC校驗(yàn)計算步驟如下:
步驟1 對收到的幀進(jìn)行字節(jié)內(nèi)部高低比特翻轉(zhuǎn);
步驟2 寄存器初始值置為全1;
步驟3 利用并行CRC算法邏輯表計算CRC;
步驟4 對求得的CRC取反;
步驟5 取反后的CRC按照字節(jié)內(nèi)高低比特翻轉(zhuǎn),得到以太網(wǎng)FCS。
10G以太網(wǎng)接入系統(tǒng)中常采用64位并行數(shù)據(jù)通路,而FCS校驗(yàn)數(shù)據(jù)長度為60-1514字節(jié) (如圖4所示),使得以太網(wǎng)幀不一定結(jié)束在64比特邊界,因此常轉(zhuǎn)化為如圖5所示的數(shù)據(jù)格式待處理。
圖5 10G以太網(wǎng)64位并行數(shù)據(jù)接口
如圖5所示,為10G以太網(wǎng)64位并行數(shù)據(jù)處理接口,其中Valid為數(shù)據(jù)有效指示,Sop為幀頭部指示,Eop為幀結(jié)束指示,Data為以太網(wǎng)數(shù)據(jù),每個周期為64比特,Size代表當(dāng)前周期數(shù)據(jù)的有效比特數(shù)。
在傳統(tǒng)并行CRC設(shè)計中,通常把數(shù)據(jù)處理分為兩部分,對于Eop之前使用64位并行CRC32校驗(yàn)算法,對于Eop處則根據(jù)Size的指示位表示的數(shù)據(jù)有效位數(shù)選擇8,16,24,32,40,48,56和64位CRC32校驗(yàn)?zāi)K中的一種來計算最后的CRC校驗(yàn)值,導(dǎo)致設(shè)計中必須設(shè)計以上所有位數(shù)的CRC校驗(yàn)?zāi)K,占用了大量的計算資源。
由式 (2)可得如下推論:
推論:已知序列X的CRC32為X’[31:0],序列Y的CRC32為Y’[31:0],設(shè)序列X’[31:24]的CRC32為Z[31:0],則序列X的延拓序列 {X,Y}的CRC32為
在已知8位的并行CRC32校驗(yàn)情況下,可以根據(jù)式(6)得到任意N位序列并行CRC32校驗(yàn)的表達(dá)式,并設(shè)計8-64位任意輸入時并行CRC32表達(dá)式,如圖6所示。其中間節(jié)點(diǎn)為
圖6 基于級聯(lián)結(jié)構(gòu)的CRC編碼器
如圖6所示,為本文設(shè)計的基于級聯(lián)結(jié)構(gòu)的CRC編碼器,其中CRC8模塊為8位輸入的CRC32校驗(yàn)?zāi)K,其根據(jù)式 (3)推導(dǎo)可得,CRC_EXPAND模塊為根據(jù)式 (6)設(shè)計的N位CRC-32校驗(yàn)?zāi)K,其中N=8*k,k=1,2...8。采用以上級聯(lián)模塊可以輸出任意N位的CRC校驗(yàn)值,通過SIZE和選擇器MUX對Eop時任意字節(jié)的CRC32輸出,從而避免了分別對需要對8,16,24,32,40,48,56和64位數(shù)據(jù)輸入時的CRC校驗(yàn)?zāi)K設(shè)計,降低了存儲空間。
CRC校驗(yàn)基于FPGA設(shè)計時的運(yùn)算是對輸入數(shù)據(jù)按比特的異或運(yùn)算,如式 (3)所示,基于64位輸入的CRC32運(yùn)算需要多次異或運(yùn)算,如d23甚至需要進(jìn)行40多次運(yùn)算,大量的組合邏輯產(chǎn)生的門延遲超出了系統(tǒng)的時延限度,尤其對于單個時鐘周期的64位輸入無法滿足實(shí)時CRC處理要求。
異或運(yùn)算取決于組合電路的具體結(jié)構(gòu)。如組合邏輯A=A1⊕A2⊕A3⊕A4⊕A5⊕A6的綜合電路如圖7所示,大量的異或次數(shù)導(dǎo)致了較大的時延。
圖7 傳統(tǒng)異或電路結(jié)構(gòu)及時延
通過將傳統(tǒng)的組合邏輯改為A=(A1⊕A2)⊕(A3⊕A4)⊕(A5⊕A6),此邏輯的電路功能并未改變,其綜合電路結(jié)構(gòu)如圖8所示。
圖8 優(yōu)化后的異或電路結(jié)構(gòu)及時延
優(yōu)化后的電路利用并行設(shè)計,將串行電路中累加的延時分散到了多個并行分支中,將門時延從5級降低到了3級。對于N位數(shù)據(jù)的異或操作,傳統(tǒng)的按位異或?qū)a(chǎn)生N-1級門延時,而圖8的結(jié)構(gòu)只產(chǎn)生 log2N ( 表示向上取整)級門延時,從而降低了異或操作的延時。對于多維數(shù)據(jù)的異或操作,此結(jié)構(gòu)具有更大的優(yōu)勢,將使得延時以指數(shù)級減少,提高了處理效率。
為了驗(yàn)證本文方法的有效性和可靠性,搭建了實(shí)驗(yàn)平臺進(jìn)行驗(yàn)證。實(shí)驗(yàn)平臺如圖9所示。其中網(wǎng)絡(luò)測試儀為Spirent公司的SMB600B網(wǎng)絡(luò)測試儀,其具有1個10G網(wǎng)絡(luò)端口。10G以太網(wǎng)處理板卡包括10G光模塊和FPGA,F(xiàn)PGA型號為Xilinx公司的XC5VLX30,其中MAC幀處理通過FPGA中例化MAC核來實(shí)現(xiàn)。對網(wǎng)絡(luò)測試儀發(fā)送的10G以太網(wǎng)數(shù)據(jù)在FPGA中計算CRC校驗(yàn)值并重新添加FCS域,打環(huán)返回到測試儀,利用測試儀集成的FCS校驗(yàn)功能判斷所設(shè)計模塊的正確性。
圖9 并行CRC32驗(yàn)證平臺
實(shí)驗(yàn)工具為普通PC機(jī),該主機(jī)配備操作系統(tǒng)為Windows XP Professional SP3, 具 體 配 置 為:CPU 為 Intel Core2 1.86GHz,內(nèi)存為2GB。實(shí)驗(yàn)仿真軟件工具采用Xi-linx公司FPGA開發(fā)環(huán)境ISE13.3和以太網(wǎng)分析工具Wireshark。
為了驗(yàn)證基于FPGA的并行CRC校驗(yàn)算法的正確性,從網(wǎng)絡(luò)獲取實(shí)際以太網(wǎng)數(shù)據(jù)包,通過Wireshark可以看到該數(shù)據(jù)是完整的以太網(wǎng)幀,在每幀的結(jié)束位置包括一個幀校驗(yàn)序列FCS。本文獲取了10G以太網(wǎng)中常用的校驗(yàn)方式CRC32以太網(wǎng)幀數(shù)據(jù)進(jìn)行驗(yàn)證,結(jié)果如圖10和圖11所示。
圖10 CRC32以太網(wǎng)數(shù)據(jù)包
圖11 并行CRC32運(yùn)算的VHDL仿真結(jié)果
如圖10所示,為CRC32以太網(wǎng)數(shù)據(jù)幀,數(shù)據(jù)域的最后4個字節(jié)為FCS,其值為A6FF4847。將此以太網(wǎng)幀輸入到本文所設(shè)計方法的仿真結(jié)果如圖11所示,其中仿真時鐘為200MHz,計算所得的CRC值為A6FF4847,與實(shí)際抓包值一致,說明了本方法的有效性。同時,基于64比特輸入時,時鐘采用200MHz,理論的速率為200x64=12.8Gbps>10Gbps,在幀結(jié)束的下一時鐘周期即可計算出CRC值,說明本文所述方法滿足10G速率的CRC實(shí)時計算。
對本文設(shè)計的并行CRC-32編碼器進(jìn)行綜合布局布線,為了比較本文所述方法,并和傳統(tǒng)的矩陣法和代入法所得的CRC32編碼器進(jìn)行比較,分別對以上兩種方法的CRC32編碼器同時進(jìn)行布局布線,綜合結(jié)果見表1。
表1 CRC32編碼器綜合布線結(jié)果
從表1可以看出,相比較代入法和矩陣法,本文所述方法在資源占用方面和傳統(tǒng)方法近似,但輸入輸出延遲為3.7ns,處理效率提高了10%。允許的最高時鐘頻率超過250MHz,,完全可以滿足10G以太網(wǎng)CRC校驗(yàn)的實(shí)時處理要求。
為了進(jìn)一步驗(yàn)證所設(shè)計模塊的有效性,通過打環(huán)測試(測試儀輸出流量到FPGA進(jìn)行FCS重計算,并將FCS添加到數(shù)據(jù)幀返回測試儀)進(jìn)行分析。測試儀顯示的相關(guān)結(jié)果見表2。
表2 10G網(wǎng)絡(luò)測試儀的CRC32測試結(jié)果
從表2可以看出,在10G測試儀100%輸出速率時,在78-1518字節(jié)的各種測試條件下,經(jīng)過本模塊計算的以太網(wǎng)數(shù)據(jù)幀F(xiàn)CS校驗(yàn)錯誤為0,丟包率為0,滿足系統(tǒng)要求。
10G以太網(wǎng)CRC校驗(yàn)需要CRC算法滿足實(shí)時性要求,本文提出了一種基于級聯(lián)結(jié)構(gòu)的并行CRC校驗(yàn)算法,并對算法中的組合邏輯電路進(jìn)行改進(jìn)。根據(jù)實(shí)際10G以太網(wǎng)中非64字節(jié)臨界處理,通過傳統(tǒng)8位CRC32校驗(yàn)電路產(chǎn)生級聯(lián)的任意輸入的CRC32校驗(yàn)電路,無需產(chǎn)生8-64位輸入的所有校驗(yàn)電路,提高了處理的靈活性和降低了芯片使用面積。通過實(shí)際以太網(wǎng)數(shù)據(jù)包和網(wǎng)絡(luò)測試儀進(jìn)行實(shí)驗(yàn)驗(yàn)證,實(shí)驗(yàn)結(jié)果表明該方法具有較低的處理時延,可滿足10G以太網(wǎng)CRC校驗(yàn)的實(shí)時處理要求。
[1]WANG Xinmei,XIAO Guozhen.Error correcting code:Principle and method [M].Xi’an:Xidian University Publisher,1991(in Chinese).[王新梅,肖國鎮(zhèn).糾錯碼:原理與方法[M].西安:西安電子科技大學(xué)出版社,1991.]
[2]LIU Lu,WU Mingliang,HE Junqiang.Implementation of error control based on cyclic redundancy check [J].Journal of Chengdu University (Natural Science Edition),2011,30 (1):82-85(in Chinese).[劉璐,武明亮,何俊強(qiáng).基于循環(huán)冗余校驗(yàn)碼的差錯控制分析與實(shí)現(xiàn) [J].成都大學(xué)學(xué)報 (自然科學(xué)版),2011,30 (1):82-85.]
[3]ZHANG Youliang,LIU Zhijun,MA Chenghai,et al.Design and implementation of 10-Gigabit Ethernet MAC controller based on FPGA [J].Computer Engineering and Applications,2012,48 (6):77-79 (in Chinese). [張友亮,劉志軍,馬成海,等.萬兆以太網(wǎng)MAC層控制器的FPGA設(shè)計與實(shí)現(xiàn)[J].計算機(jī)工程與應(yīng)用,2012,48 (6):77-79.]
[4]Patane G Campobello,Russo M.Parallel CRC realization [J].IEEE Transactions on Computers,2003,52 (10):1312-13l9.
[5]PENG Wei.Research on embedded system CRC algorithm design[J].Journal of Nanjing University of Information Science & Technology (Natural Science Edition),2012,4 (3):258-265 (in Chinese).[彭偉.嵌入式系統(tǒng)CRC循環(huán)冗余校驗(yàn)算法設(shè)計研究[J].南京信息工程大學(xué)學(xué)報,2012,4 (3):258-265.]
[6]Wong Y,Zhang H.Techniques for segmented CRC design in high speed networks:U.S.Patent 8,037,399 [P].2011-10-11.
[7]Ahmad A,Hayat L.Selection of polynomials for cyclic redundancy check for the use of high speed embedded:An algorithmic procedure [J].WSEAS Transactions on Computers,2011,10 (1):16-20.
[8]Stavinov E.A practical parallel CRC generation method [J].Circuit Cellar-the Magazine for Computer Applications,2010,31 (234):38.
[9]XU Zhanqi,PEI Changxing,DONG Huainan.Generalized CRC computation algorithm with multiple channels and its implementation[J].Journal of Nanjing University of Posts and Telecommunications(Natural Science),2008 (2):53-57 (in Chinese).[徐展琦,裴昌幸,董淮南.一種通用多通道并行CRC計算及其實(shí) [J].南京郵電大學(xué)學(xué)報,2008 (2):53-57.]
[10]BI Zhankun,ZHANG Yimeng,HUANG Zhiping,et al.Study on CRC parallel algorithm and its implementation in FPGA [J].Chinese Journal of Scientific Instrument,2007,28(12):2244-2249 (in Chinese). [畢占坤,張羿猛,黃芝平,等.基于邏輯設(shè)計的高速CRC并行算法研究及其FPGA實(shí)現(xiàn)[J].儀器儀表學(xué)報,2007,28 (12):2244-2249.]
[11]Ramabadran T V,Gaitonde S S.A tutorial on CRC computations [J].IEEE Micro,1988,8 (4):62-75.
[12]LI Youmou,F(xiàn)ANG Dingyi.Research and implementation of a new CRC coding algorithm [J].Journal of Northwest University(Natural Science Edition),2006,36 (6):895-898 (in Chinese).[李宥謀,房鼎益.CRC編碼算法研究與實(shí)現(xiàn) [J].西北大學(xué)學(xué)報 (自然科學(xué)版),2006,36 (6):895-898.]
[13]ZHANG Shugang,ZHANG Suinan.CRC parallel computation implementation on FPGA [J].Computer Technology and Development,2007,17 (2):56-58 (in Chinese).[張樹剛,張遂南.CRC校驗(yàn)碼并行計算的FPGA實(shí)現(xiàn) [J].計算機(jī)技術(shù)與發(fā)展,2007,17 (2):56-58.]