現代集成電路的制造工藝越來越先進,但是在生產過程中的制造缺陷也越來越難以控制,甚至一顆小小的 PM2.5 就可能導致芯片報廢,為了能有效的檢測出生產中出現的廢片,需要用到掃描鏈測試(scan chain),由此產生了可測性設計即 DFT flow。
注意scan test 只能檢測出制造瑕疵,無法檢測芯片功能瑕疵。
DFT 第一步是做 scan chain,首先將電路中的普通 DFF 換成 scan DFF:
scan DFF 是在原DFF 的輸入端增加了一個 MUX,於是多了幾個 pin :scan_in,scan_enable,scan_out
換完之后將所有的 scan DFF 首尾依次串接起來,就構成了一條 scan chain :
當 SE 信號(即 scan enable )有效時,電路進入scan 狀態,此時數據通路如下圖藍色粗線所示:
當 SE 信號無效時,電路工作在 normal 狀態,數據通路如下圖紅色粗線所示:
那么,這樣一條 scan chain 是如何檢測到電路中的缺陷呢?
簡單來講,scan chain 工作時分為三個步驟: load ····> capture ····> unload
load 是將input pattern 打入 scan chain
capture 是將每一級組合邏輯的結果打入下一級register
unload 是將scan chain 中的數據串行輸出,得到 output pattern
下圖是一個簡單的 scan chain 工作原理示意圖:
結合上圖,可知scan mode 的工作步驟如下:
1. 將普通的 register 替換為 scan register
2. 將 scan register 首尾依次串接起來
3. 在 SE 有效拉高時,將 input pattern 串行打入scan register
4. 然后 SE 拉低,等 Reg/Q 的值經過組合邏輯運算后到達下一級 reg 的D 端
5. 再產生一個 capture pulse 將 D 端的值打入寄存器
6. 最后 SE 拉高,將 reg 中的值依次串行輸出,得到 output pattern
7. 如果 output pattern 和預期的輸出結果相同,說明電路工作正常
否則說明電路制造有問題,屬於廢片了
Question : 為什么 cts 時, func clock 和scan clock 經常出現長不齊?
|--------------------------------|