基于LabVIEW的存儲器檢測系統研究
2.2.March算法
針對存儲器不同的故障類(lèi)型,提出了多種存儲器的測試算法,如March算法、Walking算法、Calloping算法等。其中,March算法具有較高的故障覆蓋率,較小的時(shí)間復雜度,在存儲器測試中得到廣泛應用。其基本步驟用公式表示如下:

式中:Cij表示第i行,第j列的存儲單元;R表示讀操作;W表示寫(xiě)操作;表示全部C的集合;∑表示,集內的總和;逗號“,”是公式內各有序操作之間的分隔符;0或1表示背景數據和操作數據。根據公式可以算出測試的復雜度為5N。簡(jiǎn)單說(shuō)就是按照一定的規則向存儲器寫(xiě)入和讀出數據。針對不同的故障模型,在測試中添加不同的數據背景可以實(shí)現相應的故障覆蓋。通常,一種算法不能覆蓋所有的故障類(lèi)型,所以測試時(shí)要用兩種或兩種以上的算法。
2.3 March算法在檢測系統中的應用
一般的March算法都是以位進(jìn)行操作的,而被測對象是18位的數據通道,存儲方式為字節存儲,因此應該對March算法進(jìn)行擴展。測試時(shí)不僅要考慮到字間故障,而且也應該考慮一個(gè)字內多個(gè)位之間的耦合故障。面對這種情況就應該增加March算法的測試數據。對于N位的存儲器,共有log2N+1種測試數據,文獻給出了數據背景的計算公式。被測對象有18位存儲器,通過(guò)計算有5組測試數據:
3 系統的軟件設計
3.1 軟件總體方案
該系統軟件部分基于虛擬儀器技術(shù)進(jìn)行開(kāi)發(fā)。選擇LabVIEW作為測試程序開(kāi)發(fā)工具,Access作為數據庫工具。整個(gè)軟件由主控程序、人機界面、測試模塊、診斷模塊、數據庫模塊組成。主控程序負責各個(gè)模塊之間的調用和協(xié)調;人機界面實(shí)現用戶(hù)與測試系統的交互;測試模塊完成數字信號的輸出和采集;數據庫模塊主要用于實(shí)現整個(gè)系統數據的管理。
3.2 主程序
主程序依托LabVIEW軟件,采用模塊化的設計思想,主要包括程序初始、測試數據、讀/寫(xiě)數據、取消設置、和錯誤判斷五個(gè)部分。程序初始模塊,用于進(jìn)行面板參數設置和板卡設置;測試數據模塊。用于:通過(guò)對數據庫數據的查詢(xún),提取地址和數據等信息;通過(guò)對讀/寫(xiě)信息的判斷,選擇數據信息輸出的讀入。如果測試時(shí)出現異?,F象,則由程序輸出自定義錯誤,通過(guò)自定義錯誤傳遞故障信息,同時(shí)跳出讀/寫(xiě)循環(huán);取消設置,用來(lái)恢復測試時(shí)改變的各個(gè)參數;錯誤判斷模塊,用于判斷錯誤類(lèi)型,通過(guò)判斷自定義錯誤攜帶的信息判斷故障類(lèi)型,并反饋給人機界面。圖2是主程序的程序框圖。
3.3 測試程序
對存儲器測試時(shí)采用March算法。March算法的特點(diǎn)是向存儲器順序地寫(xiě)入和讀出數據,通過(guò)分析數據判斷存儲器的故障。因此在測試程序的編制過(guò)程中,數字信號的輸入/輸出較為關(guān)鍵。圖3是讀/寫(xiě)操作的程序框圖。根據適配器的實(shí)際方案.數據的輸入/輸出在設計時(shí)也有一定的要求。向存儲器寫(xiě)數據時(shí)分為三個(gè)步驟:向鎖存器寫(xiě)地址,向鎖存器寫(xiě)數據,鎖存器和狀態(tài)輸出。讀取存儲器的數據分為4個(gè)步驟:向鎖存器寫(xiě)地址,鎖存器和狀態(tài)輸出,檢測數據輸出有效信號,讀鎖存器數據。實(shí)際應用時(shí),可以根據不同的芯片,設置不同的延遲時(shí)間,以滿(mǎn)足讀/寫(xiě)周期的要求。
評論