FPGA的檢糾錯(cuò)邏輯設(shè)計(jì)采用VHDL語言實(shí)現(xiàn)。設(shè)計(jì)使主存儲(chǔ)器SRAMl中的64位數(shù)據(jù)新生成的NCC[7:0]與SRAM2中的7位校驗(yàn)位CC[7:0]一起經(jīng)過異或運(yùn)算,生成8位的校正子,其中前7位就對(duì)應(yīng)于前述定位錯(cuò)誤數(shù)據(jù)的行號(hào)和列號(hào)的值,第8位用于判斷是否出現(xiàn)雙位元錯(cuò)誤。8位校驗(yàn)子的值可以求出1個(gè)64位糾錯(cuò)掩碼(Mask),用以校正單位元錯(cuò)誤。如果未檢測(cè)到錯(cuò)誤,此掩碼的所有位都為零。如果檢測(cè)到單位元錯(cuò)誤,相應(yīng)掩碼會(huì)屏蔽除錯(cuò)誤位之外的所有位。下一階段,使用原始數(shù)據(jù)對(duì)此掩碼進(jìn)行異或運(yùn)算。最終,錯(cuò)誤位被反轉(zhuǎn)(或校正)至正確狀態(tài)。如果檢測(cè)到雙位元錯(cuò)誤,所有掩碼位也都為零。使用1個(gè)雙位的數(shù)組(ER[1,O])用于報(bào)告檢測(cè)的錯(cuò)誤類型(“OO”表示無錯(cuò)、“01”表示單位元錯(cuò)誤、“10”表示雙位錯(cuò)誤、“11”表示無法判斷的多位錯(cuò)誤)。整個(gè)糾錯(cuò)邏輯的工作過程如圖4所示。生成錯(cuò)誤類型報(bào)告數(shù)組和相應(yīng)的校正掩碼的工作都在同一時(shí)鐘周期內(nèi)完成,體現(xiàn)了采用FPGA進(jìn)行并行處理的獨(dú)特優(yōu)勢(shì)。本文引用地址:http://2s4d.com/article/150201.htm
3 結(jié) 語
對(duì)綜合后進(jìn)行仿真的結(jié)果進(jìn)行分析,期間人為地加入1位、2位、3位隨機(jī)分布的數(shù)據(jù)位錯(cuò)誤,該系統(tǒng)能夠在2個(gè)系統(tǒng)時(shí)鐘周期內(nèi)對(duì)1位錯(cuò)誤的情況成功地檢測(cè)并予以糾正;對(duì)2位和3位錯(cuò)誤情況也都進(jìn)行了正確的類別判定。仿真結(jié)果表明,設(shè)計(jì)的系統(tǒng)比較理想,能滿足設(shè)計(jì)要求。
評(píng)論