DFT scan chain 介紹


 

       現代集成電路的制造工藝越來越先進,但是在生產過程中的制造缺陷也越來越難以控制,甚至一顆小小的 PM2.5 就可能導致芯片報廢,為了能有效的檢測出生產中出現的廢片,需要用到掃描鏈測試(scan chain),由此產生了可測性設計即 DFT flow。

       注意scan test 只能檢測出制造瑕疵,無法檢測芯片功能瑕疵。

       在芯片功能設計完成后,整個網表是由一堆普通的寄存器和組合邏輯構成的。掃描鏈的插入就是指將普通寄存器替換成為掃描寄存器(scan flip-flop)的過程。

SE scan enable為其切換信號。正常工作模式時,SE為0,這時scan FF的功能與原有的D-FF完全一致,data path 為D到Q。芯片的功能得以保持不變。當SE被切換為1時,這時候scan FF執行其scan屬性,data path為SI到Q。SI即為測試時的數據流向入口。

Function         SE=0       datapath:D->Q       scan FF act as DFF

Scan               SE=1       datapath: SI->Q       Scan FF act as Scan

       

       將片上的掃描寄存器Q-SI連接起來,就成為了掃描鏈。通過shift的方式可以由scan chain將數據串行輸入的每個寄存器的SI端,達到控制每個寄存器的目的。在capture模式下,將芯片組合邏輯的反饋傳回寄存器,達到對芯片內部觀測的作用。

 

 

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 和預期的輸出結果相同,說明電路工作正常

   否則說明電路制造有問題,屬於廢片了

 


免責聲明!

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



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