999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

通用并行CRC計算方法及FPGA實現

2023-06-15 05:26:44仇曉濤
無線互聯科技 2023年2期

仇曉濤

摘要:循環冗余校驗(CRC)碼是諸多信道編碼方式中最常用的一種編碼,也是一種檢錯概率高且容易硬件實現的檢錯碼,因檢錯能力強、容易實現而得到廣泛應用。首先,本文介紹了循環冗余校驗的算法原理,分析了CRC校驗碼的具體運算過程;其次,本文在原算法的基礎上提出一種高速并行CRC算法,并以CRC-CCITT為例,推導出8位并行運算的CRC- CCITT邏輯關系式;最后,本文根據推導的8位并行運算的邏輯關系式,描述了8位并行的CRC- CCITT硬件實現電路。將該算法與現有的查找表法的性能進行分析比較發現,該算法具有節省邏輯資源、運行速度快等特點。

關鍵詞:循環冗余校驗;生成多項式;并行計算;FPGA

中圖分類號:TN911.22? 文獻標志碼:A

0 引言

當數字信號在實際的無線信道通信系統中進行傳輸時,由于噪聲的干擾以及不良信道傳輸特性的影響,該數字信號不可避免地在接收端產生誤碼。抗干擾是無線通信信道數據傳輸中的關鍵問題之一,可以通過信道編碼來解決。在諸多信道編碼方法中,循環冗余校驗(Cyclic Redundancy Check,CRC)碼是一種在數據通信領域中廣泛使用的檢錯碼,因檢錯能力強、容易實現而得到廣泛應用[1-3]。CRC碼不但可以有效地抗隨機干擾,還可以有效地抗突發干擾,因此,在各種通信系統、計算機系統、磁記錄以及存儲中得到廣泛的應用。

1 CRC校驗碼原理

CRC校驗碼由一個二進制的多項式產生,若該多項式的最高次冪為k,則可以產生k-1位的冗余碼。選取合適的二進制多項式,不但可以使CRC校驗碼檢測出所有奇數位隨機誤碼,還可以檢測出突發長度小于等于k-1位的突發誤碼。

CRC校驗碼的編碼步驟:

設D=(dn-1,dn-2,…,d1,d0)為n位的待校驗的二進制數據流,用多項式D(x)表示:

D(x)=dn-1Xn-1+dn-2Xn-2+…+d1X+d0(1)

如果所用生成多項式G(x)的最高次冪為k,在式(1)等號的兩側同時乘以Xk,化簡可得出:

XkD(x)=dn-1Xk+n-1+dn-2Xk+n-2+…+d1Xk+1+d0Xk(2)

XkD(x)模2除以G(x),用Q(x)表示商多項式,R(x)表示余數多項式,可得:

XkD(x)+R(x)=Q(x)G(x)(3)

余數多項式R(x)可表示為:

R(x)=rk-1Xk-1+rk-2Xk-2+…+r1X+r0(4)

將式(2)和式(4)代入式(3),得:

Q(x)G(x)=XkD(x)+R(x)=dn-1Xk+n-1+dn-2Xk+n-2+…+d1Xk+1+d0Xk+rk-1Xk-1+rk-2Xk-2+…+r1X+r0(5)

式(5)對應的碼組為n+k位,即:

D′=(dn-1,dn-2,…,d1,d0,rk-1,rk-2,…,r1,r0)(6)

由D到D′的計算過程就是CRC的編碼步驟,rk-1,rk-2,…,r1,r0為校驗位。式(1)~式(6)的計算步驟表明,CRC校驗碼的編碼步驟中的運算需要模2除運算,產生的余數就是CRC碼的校驗位。同理,接收端將接收到的n+k位信息碼除以相同的生成多項式G(x),根據式(3),如果產生的余數為0,則認為接收端接收到的二進制數據流正確無誤碼;否則就認為接收端接收到的二進制數據流在傳輸過程中產生了誤碼。

CRC校驗碼的通用串行電路如圖1所示,其中,符號代表表示模2加運算,表示加權乘法運算。用r0,r1,…,rk-2,rk-1表示k個二進制移位寄存器的狀態值,該寄存器的移位由外部同步時鐘控制。生成多項式G(x)的系數用gi(i=1,2,…k-1)表示,其取值只有0或者1兩個狀態,物理意義上0表示無反饋,是斷開;1表示有反饋,是閉合。當生成多項式G(x)確定時,可進一步簡化圖1的電路。本文以CRC-CCITT的生成多項式G(x)=X16+X12+X5+1為例,此時g0=g5=g12=1,相應地簡化串行電路,如圖2所示。

該CRC-CCITT串行電路只用到了基本的異或門和移位寄存器邏輯單元。如果在高速數字通信系統中采用CRC串行運算,就需要高速串行同步時鐘及相應的高速器件,極大地增加了電路的硬件成本以及實現復雜度。該問題通常可以采用并行運算的處理方法解決,因此需要研究一種并行CRC處理電路。

2 并行計算與實現

CRC余數值即各個二進制移位寄存器中的狀態值,進行串行運算時,當前的CRC余數值取決于輸入的二進制數據流的當前值和前一個狀態的二進制移位寄存器中的余數值。如果進行并行運算,以8位二進制數據流并行運算為例,即同時輸入8位二進制數據流到并行運算電路所產生的CRC余數與相繼輸入連續8位二進制數據流到串行運算電路所產生的CRC余數相同,則稱這兩種電路是等效的。因此,可以推導出CRC的并行運算方法[4]。

圖2中二進制移位寄存器的狀態值用rij表示,輸入的二進制數據流用di(表示第i個輸入的二進制數據)表示,其中,i=1,2,…,n,為輸入的數據流序號(表示r的第i次變化,其中,n=4,8,16,32,表示數據流的并行度),j=0,1,…,k-1,為移位寄存器的編號(此處k=16),由此可得:

根據表1中的邏輯關系式,可以很容易地實現8位并行的CRC- CCITT硬件運算電路,其硬件實現過程如圖3所示。

上述CRC并行運算方法的推導步驟雖然是以8位并行CRC-CCITT運算為例進行的,但該方法具有普遍適用性,即使用該方法可以推導出各種CRC生成多項式的不同并行度(包括16位、32位,甚至是64位)的并行運算邏輯關系式。

3 性能分析

查找表方法既可以用軟件實現,也可以用硬件實現。在余數表中存儲相應的余數,再通過查找該余數表的方法就可以進行該CRC生成多項式的運算。

分析比較查找表和并行運算兩種方法,可以得出如下結論。

本研究提出的CRC并行運算方法無需存儲查找表方法中所必需的CRC余數表。該并行運算方法不但可節約硬件電路的成本,還提高了電路的運算速度。在查找表方法中,電路的硬件實現不僅需要FPGA內部資源,還必須使用存儲龐大CRC余數表的外部高速存儲器件以及FPGA的輸入、輸出引腳。硬件電路所產生的總時延包括兩級異或門時延、寄存器鎖存時延、輸入輸出引腳時延以及讀取外部高速存儲器件存放數據的時延。由于使用了存儲CRC余數表的外部存儲器件,硬件電路處理時會產生較大的時延,電路需要使用更高的處理時鐘。如果依據本研究提出的直接硬件實現法,以Xilinx FPGA XC7K480T實現CRC-CCITT為例[2],完全可以使用FPGA的內部邏輯資源來實現,硬件電路所產生的總時延包括兩級異或門時延和寄存器鎖存時延,產生的時延較小。

本研究提出的CRC實現法可提高并行運算的并行度。在查找表方法中,隨著并行度的增加,CRC余數表所需的存儲空間會急劇增大,為節省空間,查找表法中的并行度一般被限制在8位以內。例如:當運算并行度為16位數據的CRC校驗碼時,其余數表長度達到65 536(216)項;當運算并行度為32位數據的CRC校驗碼時,其余數表長度高達4 294 967 296(232)項,這對FPGA有限的資源來說是不太現實的。假如要進行數據傳輸率為3.3 Gbps的數據傳輸,就必須要求電路處理時鐘的頻率達到1/0.3 ns=3 333 MHz,不僅大多數FPGA無法滿足如此高的時鐘頻率,規模的專用集成電路也很難滿足這個要求。對于本研究提出的CRC并行運算方法,當數據的并行度為8位或者更大(如32位,甚至是64位)時,可以有效地降低處理時鐘的頻率,即使使用普通的CMOS器件也可以實現速率很高的CRC運算,如用Xilinx FPGAXC7K325T可以實現超過3.3 Gbps甚至5.0 Gbps的CRC運算[5]。

4 結語

本研究對CRC運算原理進行了分析,在此基礎之上推導和實現了一種通用的并行CRC運算的方法。此種方法可以方便快捷地實現不同數據并行度的各種生成多項式的CRC運算,運用硬件來實現該算法也相對容易,尤其是對于需要提高并行度(大于8)的高速通信系統的CRC運算。與查找表法相比較,該方法具有優越性和現實性。

參考文獻

[1]王新梅,肖國鎮.糾錯碼原理與方法[M],西安:西安電子科技大學出版社,2001.

[2]李云松,宋銳,雷杰,等.Xilinx FPGA設計基礎[M].西安:西安電子科技大學版社,2008.

[3]樊昌信.通信原理[M].北京:國防工業出版社,2001.

[4]張樹剛,張遂南,黃士坦.CRC校驗碼并行計算的FPGA實現[J].計算機技術與發展,2007(2):56-58,62.

[5]俞訊.32位CRC校驗碼的并行算法及硬件實現[J].信息技術,2007(4):71-74.

(編輯 王永超)

General parallel CRC computing method and implementation based on FPGA

Qiu? Xiaotao

(CEC Defense Technology Company Limited, Nanjing 210000, China)

Abstract:? Cyclic redundancy check (CRC) code is one of the most commonly used code in channel codes. It is an error detection code with high detection probability and easy hardware implementation. It is widely used for its simple implementation and strong error detection ability. Firstly, this paper introduces the algorithm principle of cyclic redundancy check, and analyzes the specific calculation process of CRC. Secondly, this paper proposes a high-speed parallel CRC algorithm, and takes CRC-CCITT as an example to derive the CRC-CCITT logic relation of 8-bit parallel computing. Finally, according to the deduced logic relation of 8-bit parallel computing, the hardware implementation circuit of 8-bit parallel CRC-CCITT is given. Compared with the existing lookup table methods, the algorithm has the characteristics of saving logical resources and high speed.

Key words: cyclic redundancy check; generator polynomial; parallel computing; FPGA

主站蜘蛛池模板: 国产网站免费观看| 亚洲资源站av无码网址| 国产在线日本| 精品免费在线视频| 久久综合丝袜日本网| 亚洲区第一页| 国产AV无码专区亚洲精品网站| 日韩欧美国产另类| 在线视频一区二区三区不卡| 国产精品漂亮美女在线观看| 67194成是人免费无码| 五月天久久综合国产一区二区| 67194亚洲无码| 99在线视频网站| 成人免费网站在线观看| jizz在线免费播放| 伊人久久大香线蕉影院| 国产精品久久久久久搜索| 亚洲无码视频喷水| 区国产精品搜索视频| 少妇露出福利视频| 国产成人福利在线视老湿机| 亚洲男人在线天堂| 三上悠亚精品二区在线观看| 日韩精品视频久久| 亚洲综合亚洲国产尤物| 2021天堂在线亚洲精品专区 | 精品超清无码视频在线观看| 国产91精品久久| 亚洲第一福利视频导航| 91在线无码精品秘九色APP| 日韩在线观看网站| 欧美成在线视频| 91在线视频福利| 奇米影视狠狠精品7777| 91亚洲精选| 日韩精品久久无码中文字幕色欲| 一级毛片基地| 国产精品一区在线观看你懂的| 精品成人一区二区三区电影| 中国成人在线视频| 亚洲国产成熟视频在线多多 | 三上悠亚一区二区| 人妻丰满熟妇αv无码| 视频一区亚洲| 久久国产高清视频| 午夜精品久久久久久久2023| 九色免费视频| 国产成人精品日本亚洲77美色| AⅤ色综合久久天堂AV色综合 | 亚洲一区二区三区国产精华液| 国产午夜无码专区喷水| 久久精品国产亚洲AV忘忧草18| 全部免费特黄特色大片视频| 亚洲人成电影在线播放| 亚洲V日韩V无码一区二区 | 国产情精品嫩草影院88av| 久久黄色一级片| 无码电影在线观看| 国产一区二区三区夜色| 67194在线午夜亚洲| 草草线在成年免费视频2| 8090午夜无码专区| 女人18一级毛片免费观看| 国产综合精品日本亚洲777| 国产乱人伦AV在线A| 啪啪免费视频一区二区| 99re在线视频观看| 久久婷婷色综合老司机| 亚洲国产成人精品一二区| 19国产精品麻豆免费观看| 国产高清色视频免费看的网址| 一区二区日韩国产精久久| 亚洲AV无码不卡无码| 免费国产好深啊好涨好硬视频| 九九视频免费在线观看| 国产精品美女网站| 亚洲精品少妇熟女| 成人一级免费视频| 国产九九精品视频| 在线观看av永久| 亚洲欧美另类中文字幕|