新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于FPGA的空間存儲(chǔ)器的糾錯(cuò)系統(tǒng)的設(shè)計(jì)

基于FPGA的空間存儲(chǔ)器的糾錯(cuò)系統(tǒng)的設(shè)計(jì)

作者: 時(shí)間:2010-12-26 來(lái)源:網(wǎng)絡(luò) 收藏

1、引言

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

但是對(duì)于實(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ì)于實(shí)驗(yàn)系統(tǒng)來(lái)說(shuō),是一個(gè)不容忽視的問(wèn)題。因此,我們采用二元BCH(31,16)碼,能糾正三位隨機(jī)錯(cuò)誤,這種糾錯(cuò)碼信息不需要儲(chǔ)存,不需要反饋,實(shí)時(shí)性好。

2、編譯碼原理

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

2.1 編碼

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

2.2 譯碼

譯碼過(guò)程比較復(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可綜合語(yǔ)言來(lái)描述,整個(gè)程序分為頂層模塊和底層模塊,頂層模塊很簡(jiǎn)單,主要完成底層模塊的調(diào)用和數(shù)據(jù)的復(fù)位,編碼算法主要由底層模塊完成。其中包括編譯碼算法主程序,撥碼開關(guān)控制程序,液晶顯示程序,系統(tǒng)函數(shù)PLL(鎖相環(huán))程序。系統(tǒng)利用兩個(gè)撥碼開關(guān)sw1,sw2來(lái)控制編碼結(jié)果或譯碼結(jié)果的下載與顯示。

圖2和圖3是編碼和譯碼的仿真圖,仿真工具用的是modelsim 6.0,編碼結(jié)果CX=0x69d8ba0e,譯碼過(guò)程中,根據(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,芯片采用的是Altera Cyclone EP1C6,用到1個(gè)PLL,引腳數(shù)15個(gè),芯片資源耗用不超過(guò)5萬(wàn)門。

4、結(jié)束語(yǔ)

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



關(guān)鍵詞: BCH碼 FPGA VerilogHDL AMS

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉