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