基于固態(tài)存儲器的ECC算法分析及實現(xiàn)
按前面的ECC校驗碼生成規(guī)則,2 048個數(shù)據(jù)應該生成4個校驗碼,生成的校驗碼,如圖4所示,其中ecccode1,ecccode2,ecccode3,ecccode4是生成的4個校驗碼。本文引用地址:http://m.butianyuan.cn/article/202613.htm
現(xiàn)在假設讀出的數(shù)據(jù)中有一位數(shù)據(jù)發(fā)生了翻轉,出現(xiàn)了一位數(shù)據(jù)錯誤的情況,即假設數(shù)據(jù)的第2 bit的最低位發(fā)生了翻轉,0×0l變成了O×00,此時讀出的數(shù)據(jù)序列,如圖5所示。
3.2 利用VHDL語言實現(xiàn)EGG算法
文中以0x00~OxFF循環(huán)8次產(chǎn)生2 048個數(shù)據(jù),利用VHDL語言編程,在QuartusII7.2下進行了仿真,得到了如圖7所示的校驗碼。其中ecccodel =00000000,ecccode2=00000000,ecccode3=11000000,ecccode4=000000ll是生成的4個校驗碼,從圖中可以看到利用VHDL語言得到的校驗碼和用C語言得到的ECC校驗碼是相同的。
4 結束語
文中介紹了ECC算法的一種實現(xiàn)方法,說明了ECC的校驗流程,最后用兩種方法實現(xiàn)ECC校驗算法。ECC校驗算法簡單,軟硬件均能實現(xiàn),它能夠檢測并糾正單比特錯誤和檢測雙比特錯誤,所以可以為數(shù)據(jù)存儲和通信系統(tǒng)提供一種強有力的差錯檢測手段。
評論