SRAM BIST技術學習

????????MBIST 方法是目前大容量存儲器測試的主流技術,該技術利用芯片內部專門設計的BIST 電路進行自動化測試,能夠對嵌入式存儲器這種具有復雜電路結構的嵌入式模塊進行全面的測試。MBIST 電路將產生測試向量的電路模塊以及檢測測試結果的比較模塊都置于芯片的內部,在測試完成后,將測試的結果通過芯片的測試引腳送出到芯片的外部。

????????MBIST 的核心思想是在芯片內部,存儲器外部建立測試電路結構,實現對存儲器的讀寫控制:寫入測試向量,讀出響應數據。MBIST 電路的基本結構一般包括測試向量產生電路、BIST 控制電路、響應分析電路三部分,結構如圖所示:

一、SRAM基本介紹

1、SRAM的基本結構

????????SRAM,名為靜態隨機存儲器,它是一種隨機存取存儲器。它采用雙穩態觸發器作為存儲元件,由于雙穩態電路的穩定特性,這種存儲器可以實現靜態穩定讀取:只要不掉電,存儲單元就可以長期保存所寫入的信息,并且無需刷新。SRAM具有存取速度快,外圍電路簡單,功耗低等優點,在數據高速緩存和存儲陣列中被廣泛應用,SRAM 的存儲單元如圖:

?????????嵌入式存儲器結構模型的存儲陣列就是SRAM 存儲單元陣列。由基本存儲單元組成的存儲陣列和存儲器外圍電路共同組成了存儲器的整體結構。存儲器的外圍電路一般包括地址譯碼電路和讀/寫控制電路。SRAM 的結構模型如圖:

?????????地址譯碼電路包括地址寄存器和行/列譯碼器,讀/寫控制電路由數據寄存器、靈敏放大器和寫驅動器組成。當地址信號給定存儲單元地址,通過行/列譯碼器鎖定存儲單元位置,若當前為讀操作則從鎖定的存儲單元讀出數據并經過靈敏放大器放大擺幅,從數據寄存器輸出數據;若當前為寫操作則將輸入數據寫入數據寄存器,通過寫驅動器寫入指定單元。
????????由于存儲器內部非常復雜,非常容易出現各種故障,這些故障可能是對存儲器進行讀寫操作的過程中的讀寫控制電路故障,可能是地址譯碼電路出現的故障,而存儲器的核心存儲單元陣列由數以萬計的存儲單元排列而成,更容易出現故障,并且產生的故障也更加難以應對,接下來將介紹存儲器的相關故障模型。

2、SRAM故障模型

????????故障模型是指邏輯故障模型。發生在真實存儲器上的故障通常是物理故障,而引入故障模型的概念是因為物理故障是隨工藝而變化的,引起物理故障的原因很多,如果測試人員對每一種物理故障在每一工藝下都去研究是不現實的,可行的辦法是不直接研究物理故障,而是去研究模型化了的故障——故障模型。

????????當然故障模型必須要對實際的物理故障實現精確地反映。集成電路中有與故障相關的幾個容易混淆的概念:缺陷,故障、誤差和漏洞。這幾個概念是集成電路設計中的問題在不同階段的不同表現形式。

  • 缺陷是指集成電路制造過程中,在硅片上所產生的物理異常,比如多余或者錯放了某些器件。
  • 故障是指集成電路制造中的缺陷表現在電路功能上的異常現象,比如電路的邏輯功能固定為1 或者0。
  • 誤差則是由于故障的存在而導致的系統功能的偏差和錯誤。
  • 漏洞一般指由于設計問題而造成的功能錯誤,也就是我們常說的“bug”

????????故障建模是用數學模型來描述芯片制造過程中可能出現的物理缺陷,用于研究缺陷對系統或者電路功能造成的影響,以及確定故障發生的位置。采用故障模型的另一個原因就是:電路中可能存在的物理缺陷的種類繁多,并且某些物理缺陷可能對電路功能產生非常復雜的影響,分析難度大。而采用故障模型的形式,一個邏輯故障往往可以描述多種物理缺陷行為,從而回避了對物理缺陷的直接分析

????????常見的存儲器故障類型包括:固定型故障(Stuck-At Faults,SAF),跳變故障(Transition Faults,TF),耦合故障(Coupling Faults,CF),相鄰圖形敏感故障(Neighborhood Pattern Sensitive Faults,NPSF)和地址譯碼故障(Address DecoderFaults,ADF)。

1)固定型故障(SAF)

????????固定型故障會在控制信號和存儲器單元中出現,表現為控制信號或者存儲單元中的值固定為1 或0,也就是持續為高電平或者低電平,簡記為SA0(Stuck-At-0)和SA1(Stuck-At-1),固定故障圖示為:

????????固定型故障可以通過對所有待測單元寫入0 再讀出0,然后寫入1 讀出1 來進行檢測。

2)跳變故障(TF)

????????跳變故障(也稱跳變延遲故障)出現在控制信號和存儲器單元中,表現為控制信號或者存儲單元中的值無法(或者延遲)從0 跳變到1,或者從1 跳變到0,簡記為TF (0->1)和TF (1->0),跳變故障圖示為圖:

????????跳變故障可以通過寫入1 到0 的跳變再讀出0,然后寫入0 到1 的跳變再讀出1 來進行檢測。?

3)耦合故障(CF)

????????耦合故障主要發生在存儲單元中,表現為對某個單元的寫入操作影響其它單元的值,使其它單元的值發生變化,根據發生的變化不同,耦合故障可以分為反相耦合故障(CFin:inversion),冪等耦合故障(CFid:idempotent)、狀態耦合故障(CFst:state)和橋連故障(Bridging Faults,BF)。

????????耦合故障可以通過先升序對所有存儲單元進行寫讀操作,然后再降序對所有存儲單元進行寫讀操作的方法進行故障檢測。

3)相鄰圖形敏感故障(NPSF)

????????這種故障主要發生在存儲單元中,表現為對某特定單元周圍的若干存儲單元的賦值或者跳變會影響:

4)地址譯碼故障(ADF)

????????這種故障主要發生在地址譯碼邏輯中,地址與存儲單元是一一對應的,一旦地址譯碼邏輯發生故障,將會出現以下四種故障類型中的一種或多種:

  1. 對于給定的地址,不存在相對應的存儲單元;
  2. 對于一個存儲單元,沒有相對應的物理地址;
  3. 對于給定的地址,可以訪問多個固定的存儲單元;
  4. 對于一個存儲單元,可以通過多個地址訪問。?

二、MBIST測試算法

????????存儲器內建自測試的中心思想就是在嵌入式存儲器周圍建立測試電路,測試電路控制存儲器按照一定的步驟去工作,得到的輸出結果與期望值進行比較來檢驗存儲器的正確性。這些“一定的步驟”就是測試算法,測試算法的好壞決定了MBIST 的質量和效率。

1、性能指標

????????存儲器測試算法的性能指標有兩個:測試時間和故障覆蓋率。

????????測試時間可以用算法時間復雜度來表征。算法時間復雜度是算法評價的通用指標,一般用O(f(N))表示,其中f(N)可以是常數、N、N2、NlogN 等,在存儲器中,N 是存儲器的存儲單元數。算法復雜度是對算法效率的一個粗略的定量表示,它只區分常數復雜度、一階復雜度、二階復雜度等,而在存儲器算法中,大多數算法的復雜度都是一階的,那么為了更加細致的比較各種測試算法,存儲器測試中通常也會用操作數來定量表征測試時間。

????????故障覆蓋率:用來表征測試算法對某種故障類型的檢測能力。對于存儲器測試算法的評價有時也要考慮故障覆蓋范圍,它用來表征一個測試算法能覆蓋多少種覆蓋類型。在保證對能覆蓋的故障類型的覆蓋率的情況下,能覆蓋的故障類型越多越好。

????????測試時間和測試覆蓋率本身就是相悖的一對指標。想達到高的覆蓋率,測試時間就可能被延遲;想減少測試時間,也許測試覆蓋率就會降低。一個優秀的測試算法應該是在保證測試時間可接受的情況下,盡可能多的去覆蓋故障類型并且覆蓋率盡可能高。如何權衡測試時間和測試覆蓋率是測試算法選擇和設計的核心。

2、常見算法

????????常用的確定性測試算法有MSCAN(Memory Scan)算法,跳步 (GALPAT) 和走步 (Walking 1/0)算法,Checkerboard 算法和March 類算法。每種測試算法總有它針對的故障類型,這樣每種算法的測試向量的規模和測試效率不盡相同,我們要綜合考慮,選取最適合的測試算法。

1)MSCAN 算法

????????MSCAN 算法是一種最基本,最簡單的測試算法。其算法過程是首先對所有待測單元寫入全0 然后讀取所有存儲單元并判斷是否有故障,接著寫入全1 再讀取所有存儲單元并判斷是否有故障,這種算法所使用的測試向量實際上是形式固定的存儲器掃描序列,其操作次數是4N,與存儲器地址位數成正比關系,時間復雜度為O(N)。這種測試算法時間復雜度低,測試向量簡單,但是除可以檢測所有SAF故障外,僅支持部分耦合故障的測試,故障覆蓋率有限。

2)跳步(GALPAT)和走步(Walking 1/0)算法

????????跳步算法和走步算法操作過程類似,首先選定一個存儲單元作為基本單元,其他單元作為普通單元,向基本單元內寫入1(或0),普通單元寫入0(或1),然后讀取所有單元的數據,重復該過程,直到所有存儲單元都曾經被選定為基本單元為止。

????????以跳步算法為例,其操作過程如下:

  • (1) 對所有的存儲單元寫入0(或1);
  • (2) 選定一個存儲單元Cj 作為基本單元:對Cj 內的值求補;
  • (3) 對基本單元Cj 和普通單元Ck(k≠j)進行以下操作:讀單元Cj;讀單元Ck。
  • (4) 恢復單元Cj 的內容。
  • (5) 重新選定一個存儲單元作為基本單元,重復操作(2)(3)。

????????該算法可以覆蓋以下故障:SAF、TF、ADF以及部分CF。

3)Checkerboard 算法

????????Checkerboard 算法也叫做棋盤算法,基本過程是對每個存儲單元進行賦值,保證每一個存儲單元的值都與相鄰單元的值不同,這樣就將整個存儲陣列分為了兩塊:存儲值是0 的為A 塊,存儲值是1 的為B 塊:

????????分塊后,按如下過程完成算法:

  • (1) 對A 和B 塊分別寫入0 和1;
  • (2) 讀所有存儲單元;
  • (3) 對A 和B 塊分別寫入1 和0;
  • (4) 讀所有存儲單元。?

????????該算法的操作數為4N,時間復雜度為O(N),可以檢測和定位固定型故障和部分橋連故障,在BIST 算法中應用較為廣泛。

4)March 算法

????????March算法是一系列的算法,由于這類算法具有較高的故障覆蓋率同時測試時間較短,使得其在存儲器測試領域得到了廣泛研究和應用。這類算法已經廣泛應用于運用于對大容量SRAM 和DRAM 的測試,隨著研究的深入,各種改進算法也相繼出現。目前的March 算法主要有MATS,MATS+,March X、March C、March C-、March C+、March LR 等類型。

????????March 的基本思想是在有限狀態機的控制下遍歷每個存儲單元,并對每個存儲單元進行一系列的操作,在對下一個存儲單元操作之前,對當前單元的這些操作被稱為March 元素,而各種March 類型算法的不同之處也恰恰體現在March 元素上。每個March 元素都有規定的地址升降順序,當一個存儲單元完成一系列操作后,根據地址升降順序來決定下一個執行操作的存儲單元。當某個March 元素對所有的存儲單元做完所有操作后執行下一個March 元素。為了便于描述各種March 算法的執行過程,我們首先進行如下約定:

????????目前March 算法針對不同的測試目的衍生出了各種類型的March 算法,這些算法的不同之處在于March 元素的不同上,也就是對地址的操作順序和對每個存儲單元進行的操作不同。對單個存儲單元的操作數和對故障的覆蓋率體現了各種March 算法的不同特點,各種March 算法的操作數和覆蓋率對比如表:

? ? ? ? 算法可以覆蓋的故障如下:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/253562.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/253562.shtml
英文地址,請注明出處:http://en.pswp.cn/news/253562.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Zigbee技術入門教程-02】一圖讀懂ZStack協議棧的核心思想與工作機理

【Zigbee技術入門教程-02】一圖讀懂ZStack協議棧的核心思想與工作機理 廣東職業技術學院 歐浩源 Z-Stack協議棧是一個基于任務輪詢方式的操作系統,其任務調度和資源分配由操作系統抽象層OSAL管理著。 你可以理解為:Z-Stack協議棧 OSAL操作系統 CC25…

CMOS圖像傳感器——SmartSens

近年來CIS發展成為增量市場,國產CIS廠商也踴躍布局,給業界帶來許多驚喜。思特威(上海)電子科技股份有限公司(SmartSens)正是國產CIS中亮眼的一家廠商。數據顯示,2020年思特威安防監控市場的CIS芯片出貨量為1.46億顆,繼續位居全球出貨量TOP1的位置;同年,思特威的新興領…

Servlet第二篇【Servlet調用圖、Servlet細節、ServletConfig、ServletContext】

Servlet的調用圖 前面我們已經學過了Servlet的生命周期了&#xff0c;我們根據Servlet的生命周期畫出Servlet的調用圖加深理解 Servlet的細節 一個已經注冊的Servlet可以被多次映射 同一個Servlet可以被映射到多個URL上。 <servlet><servlet-name>Demo1</servle…

vue響應式原理

vue響應式原理 initState new Vue() > _init() > initState: function initState (vm: Component) {vm._watchers []const opts vm.$optionsif (opts.props) initProps(vm, opts.props)if (opts.methods) initMethods(vm, opts.methods)if (opts.data) {initData(vm)} …

Oracle數據庫管理與開發pdf

下載地址&#xff1a;網盤下載基本介紹編輯內容簡介Oracle是一個適合于大中型企事業的數據庫管理系統&#xff0c;在銀行、電信、移動通信、航空、保險、金融、氣象、鐵路、跨國公司和電子商務等諸多領域得到了廣泛的應用。據統計&#xff0c;在所有數據庫管理系統中&#xff0…

DVS/DVR區別

一、DVS &#xff08;Digital Video Server&#xff09;網絡視頻服務器的簡稱。DVS(網絡視頻服務器)的原理網絡視頻服務器主要實現模擬視音頻信號的IP 化。經數字化的視音頻信號MPEG-4 視頻壓縮算法和G.729/ADPCM 音頻壓縮算法進行壓縮編碼&#xff0c;然后通過IP 網將低碼率的…

自動對焦方法學習

實現自動對焦的方法有很多種,可以根據不同的工作原理,將自動對焦技術分成不同種類。 按照系統是否自帶信號發射系統,可以分為主動式與被動式兩種類型。 主動式對焦方法是由成像系統中的發射裝置發出信號,然后再由接收裝置接收從被攝景物所反射回來的反饋信號并利用通過計算…

微粒化運營:升級內容產業消費體驗(附視頻版)

那些最受歡迎的內容平臺做對了什么&#xff1f; Facebook和Google是全球互聯網廣告產業中最早開始微粒化運營的代表&#xff0c;Google的互聯網精準廣告的思路與微粒化運營是完全相同的&#xff0c;這兩家公司也因此獲得了全球超過20%的互聯網廣告的收入。 以Facebook為例&…

mycat讀寫分離

只需要讀寫分離的功能&#xff0c;分庫分表的都不需要。 涉及到的配置文件&#xff1a; 1.conf/server.xml 主要配置的是mycat的用戶名和密碼&#xff0c;mycat的用戶名和密碼和mysql的用戶名密碼是分開的&#xff0c;應用連接mycat就用這個用戶名和密碼。 <?xml version&q…

chisel快速入門(一)

一、概述 Chisel&#xff08;Constructing Hardware In a Scala Embedded Language&#xff09;是一種嵌入在高級編程語言Scala的硬件構建語言。Chisel實際上只是一些特殊的類定義&#xff0c;預定義對象的集合&#xff0c;使用Scala的用法&#xff0c;所以在寫Chisel程序時實際…

DVS/DVR常見的監控名詞

英文名詞 說明BNC 全稱Bayonet Nut Connector&#xff0c;一種用于同軸電纜的連接器DHCP 動態主機配置協議&#xff0c;用于動態地指派配置信息DNS 域名系統&#xff0c;以用戶友好的方式將名字轉換為…

導出數據生成excel

前臺&#xff1a; <asp:Button ID"btnMoney" runat"server" Text"經費使用總結表" CssClass"admin_cx marginleft" Height"25" OnClick"btnMoney_Click" /> 后臺&#xff1a; protected void btnMoney_Cli…

U盤基本處理,U盤與移動固態硬盤

一、辨別 USB2.0 和 USB3.0 1、從USB外觀上來看&#xff0c;USB2.0通常是白色或黑色&#xff0c;而USB3.0則改觀為“高大上”的藍色接口。 目前&#xff0c;部分筆記本電腦USB接口&#xff0c;已同時提供對USB2.0及USB3.0的支持&#xff0c;我們可以通過接口顏色來區別。 2、從…

UWP_小說在線閱讀器:功能要求與技術要求

注&#xff1a;2017年2月23日正式提上日程 學了WP開發也有一年了&#xff0c;也沒做過什么軟件的。17年進發UWP&#xff0c;鍛煉自己一下。做一個開源的小說閱讀器吧。 既然開發一個軟件。所以要設計一下吧。 功能要求&#xff1a; 可能要用到的技術&#xff0c;這個嗎&#xf…

chisel快速入門(二)

上一篇見此&#xff1a; chisel快速入門&#xff08;一&#xff09;_滄海一升的博客-CSDN博客簡單介紹了chisel&#xff0c;使硬件開發者能快速上手chisel。https://blog.csdn.net/qq_21842097/article/details/121415341 十、運行和測試 現在我們已經定義了模塊&#xff0c;…

【WPF】設置TextBox內容為空時的提示文字

原文:【WPF】設置TextBox內容為空時的提示文字<TextBox Width"150" Margin"5"><TextBox.Resources><VisualBrush x:Key"HintText" TileMode"None" Opacity"0.5" Stretch"None" AlignmentX"Le…

視頻矩陣

視頻矩陣&#xff0c;就將視頻圖像從任意一個輸入通道切換到任意一個輸出通道顯示。一般來講,一個MN矩陣&#xff1a;表示它可以同時支持M路圖像輸入和N路圖像輸出。即任意的一個輸入和任意的一個輸出。 視頻矩陣 - 基本功能和要求 一個矩陣系統通常還應該包括以下基本功能&…

Spring 教程03

spring-3 1. Xml<!-- \src\applicationContext-xml.xml --> <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance…

讀書筆記之《The Art of Readable Code》Part 2

如何寫好流程控制語句(if-else/switch/while/for)使得代碼更可讀些&#xff1f;(chap 7)* 提高條件語句的可讀性(if語句, 或者bool型summary變量) if (length > 10) // Good if (10 < length) // Badwhile (bytes_received < bytes_expected) // Good while (b…

chisel快速入門(三)

前一篇見此&#xff1a; chisel快速入門&#xff08;二&#xff09;_滄海一升的博客-CSDN博客簡單介紹了chisel&#xff0c;使硬件開發者能快速上手chisel。https://blog.csdn.net/qq_21842097/article/details/121418806 十四、模塊的功能創建 制造用于模塊構造的功能接口也…