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

          新聞中心

          EEPW首頁 > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 嵌入式存儲(chǔ)器的測(cè)試及可測(cè)性設(shè)計(jì)研究

          嵌入式存儲(chǔ)器的測(cè)試及可測(cè)性設(shè)計(jì)研究

          作者: 時(shí)間:2012-11-15 來源:網(wǎng)絡(luò) 收藏

          偽隨機(jī)存儲(chǔ)器算法

          這類算法利用n位反饋移位寄存器產(chǎn)生偽隨機(jī)序列對(duì)進(jìn)行。反饋移位寄存器可以通過如式(1)所示的n元反饋函數(shù)的多項(xiàng)式來進(jìn)行構(gòu)造。如果移位寄存器以作為反饋函數(shù),則稱之為反饋移位寄存器。

          如果n級(jí)反饋移位寄存器呈線性結(jié)構(gòu),則稱之為線性反饋移位寄存器,可構(gòu)造為如式(2)所示的多項(xiàng)式形式,共包含2n個(gè)移位寄存器。

          不滿足公式(2)的反饋移位寄存器稱為非線性反饋移位寄存器,其共包含個(gè)移位寄存器。與線性反饋移位寄存器包含的移位寄存器總個(gè)數(shù)比較發(fā)現(xiàn),非線性反饋移位寄存器具有的移位寄存器總數(shù)更多,結(jié)構(gòu)更復(fù)雜。

          確定性存儲(chǔ)器算法

          這類算法的形式很多,需要根據(jù)被測(cè)存儲(chǔ)器的結(jié)構(gòu)特征和關(guān)注的故障選擇適合的測(cè)試算法,產(chǎn)生測(cè)試向量,以便提高測(cè)試故障覆蓋率,主要用于存儲(chǔ)器結(jié)構(gòu)相對(duì)規(guī)則,并與關(guān)注的故障類型相關(guān)度高的存儲(chǔ)器測(cè)試。下面介紹三種比較典型的確定性存儲(chǔ)器測(cè)試算法。

          (1)MSCAN(Memory SCAN)算法

          這種算法就是簡(jiǎn)單地對(duì)存儲(chǔ)器的每個(gè)單元寫0,然后讀出每個(gè)單元的內(nèi)容驗(yàn)證是否為0;再對(duì)每個(gè)單元寫1,然后讀出驗(yàn)證。算法公式如式3所示。

          MSCAN測(cè)試算法的復(fù)雜度與存儲(chǔ)單元數(shù)量N成正比,其測(cè)試復(fù)雜度為

          從測(cè)試復(fù)雜度可以看出此算法花費(fèi)的測(cè)試時(shí)間較短,另外此算法能夠測(cè)試SAF故障,也能測(cè)試存儲(chǔ)器在最差情況下所消耗的功耗,還可以作為進(jìn)行其它較復(fù)雜測(cè)試算法之前對(duì)存儲(chǔ)器的初始化操作,但是此算法的測(cè)試故障覆蓋率較低。

          (2)Checkerboard算法

          這種測(cè)試算法在向存儲(chǔ)單元賦值時(shí)要求0和1交替賦值,也就是每個(gè)存儲(chǔ)器單元與周圍的四個(gè)單元的值都不同。然后再讀取每個(gè)存儲(chǔ)器單元的數(shù)值,并檢驗(yàn)其正確性。算法公式如式5所示。

          Checkerboard測(cè)試算法的復(fù)雜度同樣與存儲(chǔ)單元數(shù)量N成正比,其測(cè)試復(fù)雜度為

          在如上的測(cè)試完成后,還需要交換0和1的位置再按照算法的要求交替寫入和讀取并驗(yàn)證。這種算法執(zhí)行速度較快,能夠測(cè)試數(shù)據(jù)保留故障、固定故障和一半的轉(zhuǎn)換故障。

          (3)GALPAT(Galloping Pattern)算法

          這種算法也稱為漫游或者乒乓測(cè)試。首先需要初始化存儲(chǔ)器的所有單元為0(或1),然后按照地址從小到大的順序?qū)δ潮粶y(cè)單元寫1(或0)的操作,接下來讀取被測(cè)單元的數(shù)值進(jìn)行驗(yàn)證。算法公式如式7所示。

          GALPAT測(cè)試算法的復(fù)雜度為

          這種測(cè)試算法的測(cè)試故障覆蓋率較高,能夠測(cè)試固定故障、狀態(tài)傳輸故障、圖形敏感故障以及大部分耦合故障。但根據(jù)公式8可知,該測(cè)試算法需要花費(fèi)的測(cè)試時(shí)間較長(zhǎng),對(duì)于大容量存儲(chǔ)器來說并不適合。

          March系列算法

          March系列算法是在存儲(chǔ)器測(cè)試領(lǐng)域得到廣泛研究和應(yīng)用的測(cè)試算法,原因在于其具有較高的故障覆蓋率,并花費(fèi)較少的測(cè)試時(shí)間。此系列算法已經(jīng)成功運(yùn)用到大容量的SRAM測(cè)試,SDRAM測(cè)試等存儲(chǔ)器測(cè)試領(lǐng)域,并出現(xiàn)了大量的改進(jìn)算法。

          March系列算法通過有限狀態(tài)機(jī)的控制,對(duì)存儲(chǔ)器的每個(gè)單元進(jìn)行讀寫操作,讀寫的順序會(huì)按照算法的要求,分為地址升序和降序等方式。這樣,通過算法設(shè)計(jì)的對(duì)存儲(chǔ)單元的各種讀寫過程,能夠測(cè)試出絕大部分存儲(chǔ)器故障。

          常見的March系列算法包含MATS算法、March X算法、March C-算法等。各種算法的不同之處就是包含的March元素各不相同。每種March算法包含多個(gè)March元素,每個(gè)March元素都由地址變化順序、讀寫的操作和操作的數(shù)據(jù)三部分組成。用表示讀寫的順序可以是升序,也可以是降序;表示讀寫的順序?yàn)樯颍?img onload="if(this.width>620)this.width=620;" onclick="window.open(this.src)" style="cursor:pointer" class="scaleImage" height="19" src="http://editerupload.eepw.com.cn/fetch/20131127/192961_2_12.jpg" width="8" alt="" />表示讀寫的順序?yàn)榻敌颍?img onload="if(this.width>620)this.width=620;" onclick="window.open(this.src)" style="cursor:pointer" class="scaleImage" height="17" src="http://editerupload.eepw.com.cn/fetch/20131127/192961_2_13.jpg" width="25" alt="" />表示從存儲(chǔ)器單元中讀取的向量應(yīng)該為第n個(gè)向量;表示向存儲(chǔ)器單元中寫入第n個(gè)向量。

          結(jié)束語

          的測(cè)試及是隨著SoC的發(fā)展而逐步發(fā)展的研究領(lǐng)域,近些年的研究成果取得長(zhǎng)足的進(jìn)步,但是其測(cè)試難度也是相當(dāng)大的,主要問題如下:無法通過芯片的封裝引腳直接訪問,造成對(duì)嵌入式存儲(chǔ)器的可控制性以及可觀測(cè)性較低;任何一種測(cè)試算法都不能測(cè)試所有的故障類型,增加了測(cè)試的難度;隨著嵌入式存儲(chǔ)器容量的不斷增加,所花費(fèi)的測(cè)試時(shí)間也不斷地增加,測(cè)試向量也越來越多,超過了目前的ATE處理能力??傊度胧酱鎯?chǔ)器測(cè)試及仍需要廣大學(xué)者繼續(xù)努力研究。


          上一頁 1 2 下一頁

          評(píng)論


          相關(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); })();