《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的空間存儲器糾錯系統(tǒng)的設(shè)計(jì)研究
基于FPGA的空間存儲器糾錯系統(tǒng)的設(shè)計(jì)研究
東南大學(xué)AMS研究中心
左祥慧 李建清 宋愛國
摘要:  BcH(31,16)編譯碼算法,可以糾正3位錯誤,用VerilogHDL可綜合語言描述以上的編碼糾錯過程,軟件仿真和硬件下載都證明了算法的正確性和可行性。整套試驗(yàn)系統(tǒng)是模擬空間存儲器受到高能粒子的干擾而發(fā)生錯誤,這對于我們AMS實(shí)驗(yàn)也是很關(guān)鍵的一步,現(xiàn)階段我們用到的防護(hù)措施是三倍冗余編碼糾錯,但它占用的硬件資源比較多,而本文中所研究的循環(huán)BCH碼能夠節(jié)省資源,糾錯效果也很明顯,所以它將會在AMS項(xiàng)目中得到實(shí)際的應(yīng)用。
Abstract:
Key words :

 1、引言

  阿爾法磁譜儀(Alpha Magnetic Spectrometer,AMS)實(shí)驗(yàn)室是丁肇中博士領(lǐng)導(dǎo)的由美、俄、德、法、中等16個國家和地區(qū)共300多名科學(xué)家參加的大型國際合作項(xiàng)目。它是國際空間站上唯一大型物理實(shí)驗(yàn),是人類第一次在太空中精密地測量高能量帶電原子核粒子的實(shí)驗(yàn)。其目的是為尋找反物質(zhì)所組成的宇宙和暗物質(zhì)的來源以及測量宇宙線的來源。

  但是對于AMS實(shí)驗(yàn)的空間電子系統(tǒng),同樣會受到高能粒子的襲擊,導(dǎo)致存儲器的內(nèi)容發(fā)生變化,改寫半導(dǎo)體存儲器件的邏輯狀態(tài),導(dǎo)致存儲單元在邏輯‘0’與‘1’之間發(fā)生翻轉(zhuǎn),使存儲的關(guān)鍵數(shù)據(jù)出錯,控制程序跑飛等。這對于AMS實(shí)驗(yàn)系統(tǒng)來說,是一個不容忽視的問題。因此,我們采用二元BCH(31,16)碼,能糾正三位隨機(jī)錯誤,這種糾錯碼信息不需要儲存,不需要反饋,實(shí)時性好。

  2、編譯碼原理

  對于空間電子系統(tǒng)可能出現(xiàn)的問題,我們進(jìn)行檢錯與糾錯,其基本思想是在信息碼組中以一定規(guī)則加入不同方式的冗余碼,以便在信息讀出的時候依靠多余的監(jiān)督碼或校驗(yàn)碼來發(fā)現(xiàn)或自動糾正錯誤。

  2.1 編碼

  編碼比較簡單,二元BCH(31,16)是GF(25)域上的線性分組碼,其中二進(jìn)制最高位m=5,總信息長n=2m-1=31,校驗(yàn)位數(shù)k=15,可糾錯位數(shù)t=3,生成多項(xiàng)式g(x)為:

公式

  2.2 譯碼

  譯碼過程比較復(fù)雜,包括1)求伴隨多項(xiàng)式,2)系數(shù)計(jì)算電路,3)錯誤位置計(jì)算電路,其中最關(guān)鍵的是第三步,如圖1。這里假設(shè)接收到的數(shù)據(jù)錯了三位,第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ì)算電路

  令錯誤位置多項(xiàng)式

公式

公式

 

(3)錯誤位置計(jì)算

  由上一步我們得出錯誤圖樣為:

結(jié)果

  因此原碼多項(xiàng)式為:

公式

  3、仿真與下載

  對于上述編譯碼算法,采用Verilog HDL可綜合語言來描述,整個程序分為頂層模塊和底層模塊,頂層模塊很簡單,主要完成底層模塊的調(diào)用和數(shù)據(jù)的復(fù)位,編碼算法主要由底層模塊完成。其中包括編譯碼算法主程序,撥碼開關(guān)控制程序,液晶顯示程序,系統(tǒng)函數(shù)PLL(鎖相環(huán))程序。系統(tǒng)利用兩個撥碼開關(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,譯碼后得出錯誤多項(xiàng)式EX=0x10120000,最后RX與EX相與得出CX_dec=0x69d8ba0e,與原碼一致。圖4和圖5是下載后顯示到液晶屏的結(jié)果CX=0x69d8ba0e,EX=0x10120000,所用編譯工具是QuartusⅡ5.0,FPGA芯片采用的是Altera Cyclone EP1C6,用到1個PLL,引腳數(shù)15個,芯片資源耗用不超過5萬門。

  4、結(jié)束語

  BcH(31,16)編譯碼算法,可以糾正3位錯誤,用VerilogHDL可綜合語言描述以上的編碼糾錯過程,軟件仿真和硬件下載都證明了算法的正確性和可行性。整套試驗(yàn)系統(tǒng)是模擬空間存儲器受到高能粒子的干擾而發(fā)生錯誤,這對于我們AMS實(shí)驗(yàn)也是很關(guān)鍵的一步,現(xiàn)階段我們用到的防護(hù)措施是三倍冗余編碼糾錯,但它占用的硬件資源比較多,而本文中所研究的循環(huán)BCH碼能夠節(jié)省資源,糾錯效果也很明顯,所以它將會在AMS項(xiàng)目中得到實(shí)際的應(yīng)用。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。