基于FPGA的循環(huán)冗余校驗實驗系統(tǒng)的實現(xiàn)
三、系統(tǒng)具體設(shè)計
1、CRC編解碼的設(shè)計
本系統(tǒng)最主要的部分是CRC編解碼的設(shè)計。
首先來討論編碼的設(shè)計。本文設(shè)計完成12位信息位加5位CRC校驗位的通信系統(tǒng)的發(fā)送和接收,CRC模塊的端口的數(shù)據(jù)定義如下:
sdata:12位待發(fā)送的信息 datald:sdata的裝載信號
error:誤碼警告信號 datafini:數(shù)據(jù)接收完成
rdata:接收模塊接收的12位有效信息數(shù)據(jù)
clk:時鐘信號
datacrc:附加5位CRC校驗碼的17位CRC嗎,在生成模塊發(fā)送,被接收模塊接收
hsend、hrecv:生成、檢錯模塊的握手信號,協(xié)調(diào)相互之間的關(guān)系
設(shè)計的總體思路:首先裝載信息位12位數(shù)據(jù),取出其中的高6位與生成多項式系數(shù)作異或運算,得到的結(jié)果取其低5位與原來信息碼的低6位并置并在其后補上一個”0”,補足12位,再與生成多項式做同樣的異或運算,連續(xù)作7次這樣的運算,最后得到的異或結(jié)果就是CRC校驗位。這樣通過巧妙的移位運算實現(xiàn)多項式的相除運算。
部分程序代碼的實現(xiàn)如下:
fpga相關(guān)文章:fpga是什么
評論