<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于FPGA的星載計(jì)算機(jī)自檢EDAC電路設(shè)計(jì)

          基于FPGA的星載計(jì)算機(jī)自檢EDAC電路設(shè)計(jì)

          作者: 時間:2012-08-30 來源:網(wǎng)絡(luò) 收藏

          從圖中可以看出,啟動自檢后,開始巡檢RAM存儲單元,產(chǎn)生錯誤中斷(標(biāo)志) 信號,給出錯誤信息。當(dāng)單片機(jī)需要處理中斷時,將Check信號置‘0’,可暫時停止巡檢, 此時單片機(jī)可對RAM存儲單元進(jìn)行正常讀寫操作。等中斷處理完后,單片機(jī)將Check信號置 ‘1’,恢復(fù)RAM巡檢操作。

          另外可通過Rw_En的置‘0’或‘1’,來控制禁止或允許進(jìn)行自糾錯操作。

          當(dāng)出現(xiàn)可識別的多位錯誤時,產(chǎn)生Err和MErr兩個錯誤中斷(標(biāo)志)信號,但由于漢明碼僅能糾正單比特錯誤,因此不進(jìn)行自糾錯操作。

          從原注入錯誤數(shù)據(jù)對應(yīng)的地址讀出數(shù)據(jù),仿真輸出結(jié)果如圖4所示。

          可以看出除最后一個地址(FFH)由于兩位錯仍輸出錯誤外,其他地址輸出數(shù)據(jù)均與地址相同,即為正確數(shù)據(jù)。

          其中,24H、3CH、60H三個地址雖然輸出正確數(shù)據(jù),但仍報錯,表明存儲器內(nèi)數(shù)據(jù)仍然 為錯誤數(shù)據(jù),在輸出時進(jìn)行了糾錯。這是由于在上次巡檢到這部分地址空間時,通過把Rw_En 信號拉低,從而禁止了自動糾錯,導(dǎo)致這三個地址錯誤數(shù)據(jù)未被糾正。而在對其他地址進(jìn)行 數(shù)據(jù)讀取時,未產(chǎn)生錯誤標(biāo)志,證明其他錯誤數(shù)據(jù)已被糾錯。

          4 結(jié)論

          本文在采用芯片實(shí)現(xiàn)基本讀寫功能的設(shè)計(jì)思路基礎(chǔ)上,創(chuàng)建了一種新型的可對 RAM存儲單元進(jìn)行自檢的EDAC功能模塊。該模塊不但可以對RAM存儲單元進(jìn)行快速巡檢,巡檢 時間僅為傳統(tǒng)EDAC方法的十二分之一,還可以自動糾正已發(fā)現(xiàn)的錯誤。該模塊最大的優(yōu)點(diǎn)在 于節(jié)省了單片機(jī)資源,幾乎不需要單片機(jī)的參與即可完成所有自檢功能,從而使基于對SEU事件防護(hù)能力得到較大的提升。本文中該模塊采用Verilog硬件描述語言 編程,具有可移植性,這種設(shè)計(jì)方法可用于各種體系結(jié)構(gòu)的中。

          本文作者創(chuàng)新點(diǎn): 通過引入技術(shù),設(shè)計(jì)了一種靈活、高效的自檢EDAC電路,可在CPU 的控制下實(shí)現(xiàn)對錯誤信息的自動處理,并提出了該EDAC電路驗(yàn)證方法。


          上一頁 1 2 3 4 下一頁

          關(guān)鍵詞: FPGA EDAC 星載 計(jì)算機(jī)

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();