Design-for-Testability(DFT)的基本知識點


Design-for-Testability(DFT)的基本知識點

基礎知識

1. CP和FT

  • CP是(ChipProbe)的縮寫,指的是芯片在wafer(晶圓)的階段,就通過探針卡扎到芯片管腳上對芯片進行性能及功能測試,有時候這道工序也被稱WS(WaferSort)

  • FT是Final Test的縮寫,指的是芯片在封裝完成以后進行的最終測試,只有通過測試的芯片才會被出貨,詳盡的測試。

參考https://blog.csdn.net/lzwsdu/article/details/53502894:

什么情況下需要CP?

  1. 因為封裝本身可能影響芯片的良率和特性,所以芯片所有可測測試項目都是必須在FT階段測試一遍的.而CP階段則是可選

  2. CP階段原則上只測一些基本的DC,低速數字電路的功能,以及其它一些容易測試或者必須測試的項目.凡是在FT階段可以測試,在CP階段難於測試的項目,能不測就盡量不測.一些類似ADC的測試,在CP階段可以只給幾個DC電平,確認ADC能夠基本工作.在FT階段再確認具體的SNR/THD等指標

  3. 由於CP階段的測試精度往往不夠准確,可以適當放寬測試判斷標准,只做初步篩選.精細嚴格的測試放到FT階段

  4. 如果封裝成本不大,且芯片本身良率已經比較高.可以考慮不做CP測試,或者CP階段只做抽樣測試,監督工藝

  5. 新的產品導入量產,應該先完成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算法:

  1. 選擇一個特定的fault point(猜測的有fault的地方)
  2. 輸入驅動值,保證其值到達fault point時產生的理論值跟fault相反
  3. 傳播fault值到最近的輸出點
  4. 記錄測試圖形,報fault

例子:下面的U1單元輸出懷疑有static fault(接地短路)

  • 首先在U1的輸入上給0,如果U1沒問題,則輸出應該時1(綠色,表示無fault), 否則,輸出0(紅色,表示static 0 fault)
  • 其他pin的輸入需要做配合,使得最后的輸出pin能夠反應U1的值,這樣U1的fault就被挪到了輸出pin上,判斷輸出值即可判斷U1是否有問題

對於這個例子,有如下幾個概念:

  1. Input Stimulus: 測試激勵,這邊指 1000
  2. Expected response: 預期響應,這邊指沒有fault時的輸出值,為1
  3. Test Vector: 測試向量,即上面兩個合在一起10001
  4. 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

  1. 地址解碼邏輯
  2. 讀寫控制邏輯
  3. 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 的基本架構


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM