Design-for-Testability(DFT)的基本知識點
基礎知識
1. CP和FT
-
CP是(ChipProbe)的縮寫,指的是芯片在wafer(晶圓)的階段,就通過探針卡扎到芯片管腳上對芯片進行性能及功能測試,有時候這道工序也被稱WS(WaferSort)
-
FT是Final Test的縮寫,指的是芯片在封裝完成以后進行的最終測試,只有通過測試的芯片才會被出貨,詳盡的測試。
參考https://blog.csdn.net/lzwsdu/article/details/53502894:
什么情況下需要CP?
-
因為封裝本身可能影響芯片的良率和特性,所以芯片所有可測測試項目都是必須在FT階段測試一遍的.而CP階段則是可選
-
CP階段原則上只測一些基本的DC,低速數字電路的功能,以及其它一些容易測試或者必須測試的項目.凡是在FT階段可以測試,在CP階段難於測試的項目,能不測就盡量不測.一些類似ADC的測試,在CP階段可以只給幾個DC電平,確認ADC能夠基本工作.在FT階段再確認具體的SNR/THD等指標
-
由於CP階段的測試精度往往不夠准確,可以適當放寬測試判斷標准,只做初步篩選.精細嚴格的測試放到FT階段
-
如果封裝成本不大,且芯片本身良率已經比較高.可以考慮不做CP測試,或者CP階段只做抽樣測試,監督工藝
-
新的產品導入量產,應該先完成FT測試程序的開發核導入.在產品量產初期,FT遠遠比CP重要.等產品逐漸上量以后,可以再根據FT的實際情況,制定和開發CP測試
2. 測試工程師需要考慮什么
降低測試成本:
- 從測試規划開始考慮芯片性能要求,ATE,Load Board等,通過減少chain length, memory instance number 來降低成本
- ATPG effciency
- 選擇合適的test vectors
3. 什么是DFT
DFT = Design-for-Testability
-
額外的pin
-
會插入或改變原有的邏輯

DFT cost:
- area cost
- performance 降低
- ATPG tool cost 和 pattern debug cost
- ATE testing cost
如何減小DFT cost:
- 合理的test plan, 比如減小chain length, memory concurrent testing
- 減少圖形(pattern) 數量
- 增加測試頻率
Fault Model
physical fault:
- IO leakage 或 short
- net open
- material pollution
Logic fault:
- signal hard fault
- delay fault
- static current fault
Fault model 就是在physical fault 和 Logic fault之間建立一個橋梁,或者說是一個反應物理fault影響的邏輯模型
比如下面一個SA fault (static fault):

A pin可能在物理上被短路到了地,因此在建模時相當於將其置為靜態的0.
Transition fault: 主要考察speed和timing
- STR: slow to rise
- STF: slow to fall
Path delay fault: 也是反應在速度和時序上,考察整個路徑上的延時是否超時,通常是關鍵路徑
IDDQ: 測試CMOS電路在靜態時的總電流。
- 在靜態時CMOS只有leakage電流或二極管反向電流
- 任何開路,短路都會導致總電流異於常規,導致IDDQ variation
Fault class hierarchy
- DT - Detected
- PT - Possibly detected
- UD - Undetectable
- AU - ATPG untestable
- ND - Not detected
DFT Methods
- Ad-hoc (功能點測試)
- Structured (結構化測試):
- Scan
- Built-in self-test (BIST)
- Memory
- Logic
- Boundary scan
Ad-hoc
在設計者關注的地方增加可測試邏輯:
- 增加可控制節點和觀測節點
- 將大的電路分解為小的測試blocks
例如在下面的ROM前增加一個scan點可以觀察進入ROM的數據是否有誤。

缺點:

Scan:
將DFF換成帶掃描模式的DFF,並將其串起來形成scan chain

邏輯BIST
BIST = Build in self test
將ATE(自動測試機)的工作(Test data generation, test response evaluation) 放到片上。

另外,可以保護系統的內部數據,因為少了外面的控制和觀測,所以對內部節點的信息不可獲取。
缺點:
- 開銷大
- 較低的fault coverage,較高的測試時間
- Debug 困難,只知道錯了,但不知道錯在哪
常用於對pin數量要求不大(pin比較少),有安全問題的芯片,例如:公交卡芯片
Boundary Scan
測試多芯片互聯。測試板級制造過程的錯誤,包括使用了錯誤的元件,pin的錯誤短路、開路等
- 有獨立的子系統(獨立時鍾)
- 只需要5個pin: TDI, TDO, TMS, TCK, TRST(可以不用) (JTAG)
- 通過將多片的TDO和TDI串聯可以測試多片的互聯
基本JTAG:

例如,通過TAP模式選擇,檢測device的身份驗證,驗證是否時正確的芯片。
DFT-Scan
D算法:
- 選擇一個特定的fault point(猜測的有fault的地方)
- 輸入驅動值,保證其值到達fault point時產生的理論值跟fault相反
- 傳播fault值到最近的輸出點
- 記錄測試圖形,報fault
例子:下面的U1單元輸出懷疑有static fault(接地短路)


- 首先在U1的輸入上給0,如果U1沒問題,則輸出應該時1(綠色,表示無fault), 否則,輸出0(紅色,表示static 0 fault)
- 其他pin的輸入需要做配合,使得最后的輸出pin能夠反應U1的值,這樣U1的fault就被挪到了輸出pin上,判斷輸出值即可判斷U1是否有問題
對於這個例子,有如下幾個概念:
- Input Stimulus: 測試激勵,這邊指 1000
- Expected response: 預期響應,這邊指沒有fault時的輸出值,為1
- Test Vector: 測試向量,即上面兩個合在一起10001
- Test pattern:測試圖形,為了檢測一個目標fault而構建的一個或多個測試向量序列
實際上,我們並不知道U1是否有問題,就算最后輸出報了fault,也無法確定是不是U1出錯。所以實際上做的時候會迭代多次,根據不同的測試激勵逐漸縮小fault點范圍,直到排查到fault點。
D-算法的優缺點:
- 優點:
- Deterministic: 確定的,是一步接一步做的
- Exhaustive: 窮舉的,直到測完或者有undetectable的fault
- 缺點:
- 一次只能測一個fault
- 在每一步都要進行決策
- 對於一些難以檢測的fault可能要多次迭代測試
注意:有些fault點是測不到的,比如冗余邏輯。
練習:

Scannable Equivalent Filp-Flop
上面的方法是測組合邏輯,而要測時序邏輯,則需要將DFF進行替換:

之后將所有替換后的DFF串起來形成一條鏈。
目的:方便將測試激勵灌到任意DFF中。
方法:
- SE選中SI端,經過scan shift將測試激勵通過SI端移到寄存器中
- SE選中D端,讓寄存器Capture數據
- SE選中SI端,繼續shift,將待測點結果輸出到output pin
- 繼續Capture ...
例子:

可以看到,要測標記點的fault,需要給1000的測試激勵,首先通過SI端將數據依次打入對應寄存器,之后capture fault結果,然后繼續shift,此時經過若干周期就能將所有DFF的capture值從PO導出來,就可以判斷fault結果了。
ATPG
自動測試圖形(pattern)生成。芯片測試需要有pattern, 手工設計pattern是非常耗時的。主要Tools: Teramax, Testkcompress, Encouter Test.
ATPG flow:
- Read design
- Build design
- DRC
- Prepare for ATPG
- Run ATPG
- Save patterns and faults
Memory 在測試的時候是交給BIST來做的,是一個black box,但是這樣在Memory block的附近可觀測性很低,如何解決?
- 加bypass邏輯,(mem輸入到輸出加DFF)
- 使用TetraMax Model (為memory建模)
MBIST
為什么要做MBIST?
-
Memory在現在芯片中占比越來越大。(80%-90% Today)
-
mem對工藝波動非常敏感
-
目前很多嵌入的mem都有內置的redundancy(冗余邏輯),可以替換一些失效的mem區域,而失效區域需要BIST來檢測到
Memory類型
- SRAM
- DRAM
- CAM
- ROM
- FLASH
MBIST一般只針對SRAM, DRAM, ROM
Memory Defects
- 地址解碼邏輯
- 讀寫控制邏輯
- memory cell
同樣,memory 的fault也有stuck-at fault(鉗位在固定電平) 和transition fault。此外,mem還有Coupling Fault:
Coupling Fault:
-
Inversion Coupling Faults(CFin)
-
一個cell上的跳變導致另一個cell往反方向跳變
-
-
-
Idempotent Coupling Faults
- 跟上面類似,只是導致另一個cell往固定值跳變
-
Bridge Coupling Faults (BF)
- 在內部cell之間存在橋接,效果是看上去兩個cell相或,相與
-
Neighborhood Pattern Sensitive faults
MBIST 算法
- Address Decoder Algorithm
- March Algorithm
- Checkerboard Algorithm
MBIST 的基本架構
