基于FPGA的循環(huán)冗余校驗實(shí)驗系統(tǒng)的實(shí)現(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ù)作異或運(yùn)算,得到的結(jié)果取其低5位與原來信息碼的低6位并置并在其后補(bǔ)上一個”0”,補(bǔ)足12位,再與生成多項式做同樣的異或運(yùn)算,連續(xù)作7次這樣的運(yùn)算,最后得到的異或結(jié)果就是CRC校驗位。這樣通過巧妙的移位運(yùn)算實(shí)現(xiàn)多項式的相除運(yùn)算。
部分程序代碼的實(shí)現(xiàn)如下:
fpga相關(guān)文章:fpga是什么
評論