<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 設計應用 > 基于FPGA的SRAM自測試研究

基于FPGA的SRAM自測試研究

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

引言

  有高速和不用刷新等優(yōu)點(diǎn),被廣泛用于高性能的計算機系統。由于半導體工藝技術(shù)的提高以及存儲系統多方面的需要,存儲器件日益向高速、高集成方向發(fā)展,在使系統功能強大的同時(shí),也增加了系統的復雜性,給電路的故障診斷帶來(lái)了不小的困難[12]。由于存儲器功能和結構的復雜性,設計者為了正確地處理數據和正常地運行用戶(hù)的程序,必須保證單元的尋址、取指令以及計算正確,對程序或數據存儲單元的正確操作是很重要的方面,因此保證存儲器的正常、穩定工作是系統穩定工作的前提。本文主要是通過(guò)對常見(jiàn)的故障問(wèn)題的分析,運用March C算法,以構建成的SRAM自檢測試電路對SRAM系統進(jìn)行故障檢測與修復。

1 故障模型

  所謂故障模型,是指為了研究故障對電路或系統的影響,診斷(定位)故障的位置,對故障作一些分類(lèi)并選擇最典型故障的過(guò)程。SRAM系統可抽象為一組互聯(lián)的功能模塊,故障在各個(gè)模塊均可發(fā)生。Van de Goor等人[3]將其簡(jiǎn)化為地址譯碼器、讀寫(xiě)邏輯、存儲器單元陣列3部分,并證明前兩者與后者的故障在功能上是等價(jià)的,所以只需要檢測存儲單元陣列故障。常見(jiàn)的SRAM故障模型主要分為以下幾個(gè)類(lèi)型[4]:

① 固定故障(StuckAt Faults, SAF)。陣列中的一個(gè)或多個(gè)單元的一位或多位固定為0或固定為1。

② 開(kāi)路故障(Open Faults, OF)。陣列中的一個(gè)或多個(gè)單元開(kāi)路到0或開(kāi)路到1。

③ 耦合故障(Coupling Faults, CF)。存儲單元中某些位的跳變導致其他位的邏輯值發(fā)生非預期的變化,既可以發(fā)生在不同單元之間。也可以發(fā)生在同一單元的不同位之間。將發(fā)生在兩個(gè)不同單元之間的耦合故障記為第一類(lèi)耦合故障,將發(fā)生在同一單元不同位之間的耦合故障記為第二類(lèi)耦合故障。

  第一類(lèi)耦合故障又可分為翻轉耦合故障、冪等耦合故障以及狀態(tài)耦合故障等。翻轉耦合故障是存儲器Ci單元(稱(chēng)耦合單元)中的跳變引起被耦合單元Cj中的邏輯值發(fā)生翻轉的故障。若用“”表示邏輯值(0→1)的跳變,用“ ”表示邏輯值(1→0)的跳變,而用“ ”表示邏輯值的翻轉,則這類(lèi)故障可描述為眩華>或裕華>;冪等耦合故障是指在Ci中的值跳變時(shí)將Cj中的值固定為0或1,可描述為;0>、眩1>或裕0>、裕1>[5];而狀態(tài)耦合故障則是在耦合單元處于一特定狀態(tài)時(shí),被耦合單元被迫處于0或1,即0;0>、0;1>或1;0>、1;1>狀態(tài)。

  第二類(lèi)耦合故障即同一單元不同位間的耦合也有類(lèi)似的情況,但當寫(xiě)信號很強時(shí),同一單元不同位間的耦合就可能被淹沒(méi),只呈現出寫(xiě)入的信息。

④ 跳變故障(Transition Faults,TF)。陣列中的一個(gè)或多個(gè)單元的一位或多位無(wú)法在預期的時(shí)間內完成數據從0到1或從1到0的跳變,記為;0>或;1>。這種故障看似可歸為固定故障,實(shí)質(zhì)則有所不同。它的狀態(tài)并非任何時(shí)刻都不跳變,當有翻轉耦合故障影響它時(shí)就會(huì )完成原本不能完成的跳變。

⑤ 由地址譯碼錯誤引起的單元陣列故障(Address Decoder Fault,AF)。它包括某地址不能訪(fǎng)問(wèn)任何單元、某單元不能被任何地址訪(fǎng)問(wèn)、某個(gè)地址可以訪(fǎng)問(wèn)多個(gè)單元、某個(gè)單元可被多個(gè)地址訪(fǎng)問(wèn)。

2 SRAM測試方法

  SRAM的測試方法主要有以下3種。

(1) 直接存取測試

  直接存取測試是產(chǎn)生一種測試結構來(lái)允許對SRAM陣列的直接訪(fǎng)問(wèn)。它通常利用自動(dòng)測試設備進(jìn)行測試,可以從封裝引腳直接對嵌入式存儲器進(jìn)行訪(fǎng)問(wèn),或者可以從封裝引腳對測試狀態(tài)邏輯以及對一些為存儲器提供數據的流水線(xiàn)結構中的串行狀態(tài)進(jìn)行訪(fǎng)問(wèn),能夠輕易實(shí)現多種高質(zhì)量測試算法。其缺點(diǎn)是:在A(yíng)TE機上實(shí)現的算法越復雜,對ATE機存儲器的容量要求越高;在A(yíng)TE機上不易實(shí)現對嵌入式存儲器的“全速”測試,測試時(shí)鐘的工作頻率越高,測試成本越高;由于芯片外圍引腳的限制,對芯片內大容量SRAM進(jìn)行直接測試往往不大現實(shí)。

(2) 利用嵌入微處理器來(lái)間接測試存儲器

  在這種測試方法中,通過(guò)嵌入式微處理器對存儲器進(jìn)行讀/寫(xiě)操作,測試向量是一系列微處理器的程序代碼。這些代碼可以放在程序存儲器中,在嵌入式芯片接口處施加代碼,測試存儲器的過(guò)程就是微處理器執行測試程序的過(guò)程。其優(yōu)點(diǎn)是不需要對硬件設計做任何修改,而且測試算法的修改與實(shí)現可以通過(guò)靈活修改微處理器代碼予以完成。

(3) 存儲器內建(MBIST)

  存儲器內建技術(shù)(Memory BuildIn Self Test, MBIST)的工作原理是在存儲器外圍產(chǎn)生一整套控制電路,包括數據發(fā)生、地址發(fā)生、控制產(chǎn)生以及結果比較等電路,實(shí)現芯片內置存儲器測試模式的自動(dòng)產(chǎn)生以及測試結果的自動(dòng)判別。芯片外部的控制可以讓芯片自動(dòng)進(jìn)入內部存儲器測試模式,MBIST不僅可以自動(dòng)產(chǎn)生內部測試模式,而且也可以實(shí)現并行測試。由于需要增加額外的邏輯電路,所以MBIST技術(shù)的缺點(diǎn)在于增加了芯片面積,并有可能影響芯片的時(shí)序特性。對于不同容量的存儲器,MBIST電路的規?;鞠嗤?。因此,隨著(zhù)存儲器容量的增加,這種方法所增加的芯片面積所占的比例相對較小,而且這種測試技術(shù)還有很多其他技術(shù)優(yōu)勢。

  本文研究的是計算機內的SRAM測試方法,由于待測SRAM位于計算機系統內部,是該系統的關(guān)鍵部分,因此本文采用作為計算機系統與SRAM之間通信的橋梁,通過(guò)接收計算機發(fā)出的控制信號,自動(dòng)產(chǎn)生一套SRAM電路。

3 March C算法

  針對存儲器中的各種故障模型開(kāi)發(fā)了多種存儲器測試算法,如March算法、Walking算法、Galloping算法等。其中March算法是較簡(jiǎn)單的測試算法之一,具有較高的故障覆蓋率和較小的時(shí)間復雜度,所以March算法是最常用的存儲器測試算法。該算法經(jīng)過(guò)多次改進(jìn),出現了很多變種,如MATS、MATS+、March X、March C、March C等算法[6]。

  March C算法是由March元素構成的序列,其基本原理是利用有限狀態(tài)機,反復對每一個(gè)地址進(jìn)行讀/寫(xiě)0或1操作,保證每?jì)蓚€(gè)字節之間的測試碼出現00、01、10、11四種情況,至少各一次;并且為了檢查高低地址讀/寫(xiě)順序故障,分別進(jìn)行地址遞增和地址遞減兩種操作。通過(guò)對存儲器不斷地讀寫(xiě),能夠檢測幾乎所有的存儲器故障。

  在諸多的March C算法中,綜合考慮算法的故障覆蓋率及測試成本等因素,本文選用能夠有效檢測大多數存儲器簡(jiǎn)化故障的March C算法。March C算法的具體描述如下[7]:

  其中,“”表示地址的升序,“”表示地址的降序,“ ”表示兩種順序都可以;r0、w0、r1和w1分別表示讀0、寫(xiě)0、讀1和寫(xiě)1。M0~M5分別表示一個(gè)March單元,March C算法能夠有效檢測出 SAF、TF、CF、AF等故障。其中,SAF故障可由 M0、M1單元和 M1、M2單元檢測出;TF故障中0→1故障可由M3、M4單元檢測出,1→0故障可由M2、M3單元檢測出;在CF故障中,1→0故障可由M2、M3單元和M4、M5單元檢測出,0→1故障可由M1、M2單元和M3、M4單元檢測出,置1故障可由M2、M3單元和M4、M5單元檢測出,置0故障可由M1、M2單元和M2、M3單元檢測出;AF故障可以在March單元的連續升序/降序中得到檢測。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: FPGA SRAM 自測試

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>