基于FPGA的空間存儲器的糾錯系統的設計
1、引言
阿爾法磁譜儀(Alpha Magnetic Spectrometer,AMS)實(shí)驗室是丁肇中博士領(lǐng)導的由美、俄、德、法、中等16個(gè)國家和地區共300多名科學(xué)家參加的大型國際合作項目。它是國際空間站上唯一大型物理實(shí)驗,是人類(lèi)第一次在太空中精密地測量高能量帶電原子核粒子的實(shí)驗。其目的是為尋找反物質(zhì)所組成的宇宙和暗物質(zhì)的來(lái)源以及測量宇宙線(xiàn)的來(lái)源。
但是對于AMS實(shí)驗的空間電子系統,同樣會(huì )受到高能粒子的襲擊,導致存儲器的內容發(fā)生變化,改寫(xiě)半導體存儲器件的邏輯狀態(tài),導致存儲單元在邏輯‘0’與‘1’之間發(fā)生翻轉,使存儲的關(guān)鍵數據出錯,控制程序跑飛等。這對于AMS實(shí)驗系統來(lái)說(shuō),是一個(gè)不容忽視的問(wèn)題。因此,我們采用二元BCH(31,16)碼,能糾正三位隨機錯誤,這種糾錯碼信息不需要儲存,不需要反饋,實(shí)時(shí)性好。
2、編譯碼原理
對于空間電子系統可能出現的問(wèn)題,我們進(jìn)行檢錯與糾錯,其基本思想是在信息碼組中以一定規則加入不同方式的冗余碼,以便在信息讀出的時(shí)候依靠多余的監督碼或校驗碼來(lái)發(fā)現或自動(dòng)糾正錯誤。
2.1 編碼
編碼比較簡(jiǎn)單,二元BCH(31,16)是GF(25)域上的線(xiàn)性分組碼,其中二進(jìn)制最高位m=5,總信息長(cháng)n=2m-1=31,校驗位數k=15,可糾錯位數t=3,生成多項式g(x)為:
2.2 譯碼
譯碼過(guò)程比較復雜,包括1)求伴隨多項式,2)系數計算電路,3)錯誤位置計算電路,其中最關(guān)鍵的是第三步,如圖1。這里假設接收到的數據錯了三位,第28、20、17位發(fā)生了0/1偏轉,即
(1)求伴隨多項式
根據生成多項式與ai的最小多項式之間的關(guān)系,用φi(x)去除接收多項式R(x)而得到伴隨式分量,即,
(2)系數計算電路
令錯誤位置多項式
(3)錯誤位置計算
由上一步我們得出錯誤圖樣為:
因此原碼多項式為:
3、仿真與下載
對于上述編譯碼算法,采用Verilog HDL可綜合語(yǔ)言來(lái)描述,整個(gè)程序分為頂層模塊和底層模塊,頂層模塊很簡(jiǎn)單,主要完成底層模塊的調用和數據的復位,編碼算法主要由底層模塊完成。其中包括編譯碼算法主程序,撥碼開(kāi)關(guān)控制程序,液晶顯示程序,系統函數PLL(鎖相環(huán))程序。系統利用兩個(gè)撥碼開(kāi)關(guān)sw1,sw2來(lái)控制編碼結果或譯碼結果的下載與顯示。
圖2和圖3是編碼和譯碼的仿真圖,仿真工具用的是modelsim 6.0,編碼結果CX=0x69d8ba0e,譯碼過(guò)程中,根據接收多項式RX=0x79caba0e以及最小多項式f1=0x25,f3=0x3d,f5=0x37,譯碼后得出錯誤多項式EX=0x10120000,最后RX與EX相與得出CX_dec=0x69d8ba0e,與原碼一致。下載后顯示到液晶屏的結果CX=0x69d8ba0e,EX=0x10120000,所用編譯工具是quartusⅡ5.0,FPGA芯片采用的是Altera Cyclone EP1C6,用到1個(gè)PLL,引腳數15個(gè),芯片資源耗用不超過(guò)5萬(wàn)門(mén)。
4、結束語(yǔ)
BcH(31,16)編譯碼算法,可以糾正3位錯誤,用VerilogHDL可綜合語(yǔ)言描述以上的編碼糾錯過(guò)程,軟件仿真和硬件下載都證明了算法的正確性和可行性。整套試驗系統是模擬空間存儲器受到高能粒子的干擾而發(fā)生錯誤,這對于我們AMS實(shí)驗也是很關(guān)鍵的一步,現階段我們用到的防護措施是三倍冗余編碼糾錯,但它占用的硬件資源比較多,而本文中所研究的循環(huán)BCH碼能夠節省資源,糾錯效果也很明顯,所以它將會(huì )在A(yíng)MS項目中得到實(shí)際的應用。
評論