上集回顧:
【DFT】可測性設計(一)掃描測試_數字IC/FPGA雜貨鋪,找一找,或許有你想要的~-CSDN部落格
目錄
一、基本概念
二、内建自測BIST
2.1 BIST基本概念
2.2存儲器的測試算法
2.3 BIST子產品在設計中的內建
一、基本概念
- 存儲器模型:
存儲器本身的實體結構密度很大,通常對存儲器的測試将受到片外引腳的閑置,從片外無法通過端口直接仿真嵌入式存儲器。
2. 存儲器測試方法比較
二、内建自測BIST
2.1 BIST基本概念
BIST: Built-In-Self-Test 内建自測
通過在存儲器周圍加入額外的電路來産生片上測試向量并進行測試比較,完成對存儲器的測試。它的基本思想是電路自己生成測試向量,而不是要求外部施加測試向量。附件的額外電路,包括向量生成器、BIST控制器、響應分析器。如下圖所示:
BIST 測試引腳:
- BIST_MODE :測試模式選擇信号,控制電路進入 BIST 狀态。
- BIST_RESET:初始化 BIST 控制單元.
- BIST_CLK : BIST 測試時鐘。
- BIST_DONE :輸出信号,标志自測結束。
- BIST_FAIL :輸出信号,标志自測失敗,說明存儲器有制造故障。
其中,核心部分是 BIST 控制單元,作為外部電路與存儲器之間的接口,為存儲器的自測試提供控制信号,控制測試的結束與否,并且實作測試算法。通常用有限狀态機來實作 BIST 的控制單元。根據電路要求,可知控制電路需具備以下功能。
- 接收外部啟動存儲器自測試的信号。
- 在該信号的作用下,對自測試電路進行初始化,并根據測試算法,産生自測試電路。
- 确定何時結束測試,并控制送出測試情況。
對預測結果,設計人員關心的不僅僅是故障的存在與否,更重要的是故障的診斷和修複,是以 BIST 電路需要具備故障定位和輔助修複的功能。一旦發現缺陷,就暫停測試,然後将此時的讀位址、端口号、資料背景圖形編号和測試算法控制單元的狀态以串行方式送出片外,并且将狀态機固定在确定狀态,以便快速故障診斷,診斷完畢後再繼續進行測試。
2.2存儲器的測試算法
1. 棋盤式圖形算法
在這種測試方案中,将存儲單元分為兩組,相鄰的單元屬于不同的兩組,然後向不同的組寫入0和1交替組成的測試矢量。停止後對整個存儲陣列進行讀取。
2. March算法
March算法是目前最流行的測試算法;在March測試方案中,首先對單個單元進行一系列的操作,然後才進行下個單元的操作。
例如,March 13n算法:
•(w0)↑(r0,w1,r1)↑(r1,w0,r0)↓(r0,w1,r1)↓(r1,w0,r0)
不同的March算法能覆寫不同的故障模型。
算法複雜度:對單個單元進行讀寫操作的次數;
3. 資料保留測試
該測試為了保證存儲單元在一定的時間内能保持資料,通常在棋盤式圖形算法和March算法中插入延遲單元來實作,延遲時間通常介于10 ms和80 ms之間,由制造技術和環境溫度決定。
2.3 BIST子產品在設計中的內建
BIST電路作為邏輯電路的一部分通常在RTL級插入,并且需要與其他邏輯一起進行綜合。資料、位址和一些控制信号在進入存儲器之前需要經過多路選擇器。
- 正常工作模式下,存儲器的輸入信号來自于其他電路;
- 自測模式下,輸入信号由BIST控制單元産生;
許多EDA工具可以在RTL級自動生成BIST電路并內建到設計中,其中最常用的是Mentor的mBISTArchitect和Synopsys的SoCBIST。