INTEST/EXTEST SCAN 的學習

intest scan的一些基本知識。
INTEST scan指的是對IP 內部的scan cell的掃描測試,針對IP內部的flip-flop進行shift/capture的操作。
和INTEST SCAN 對應的就是EXTEST SCAN, 顧名思義,所指的也就是IP之間的glue logic的SCAN CELL 的測試。這部分SCAN CELL 包括了IP之間的flip-flop以及IP的input的第一級flip-flop,這主要是因爲,IP的第一級flip-flop再做INTEST測試的時候只能用於shift data,並不能進行capture,所以需要在EXTEST的時候進行測試。
下圖所示,就是一個IP的INTEST的data flow。
每個IP有對應的scan_in,scan_out channel,它們的channel的數量是由每個IP內部的scan_cell數量,EDT的壓縮比,以及short chain的數量決定的。
1. 根據Mentor的工具建議來看,一個short chain上面的scan_cell數量可以在250~300之間。
2. 每個IP每部的壓縮比的儘量在100~150條之間,如果壓縮比過大,可能導致的問題是compressor/decompressor的內部logic過大,會插入比較多的pipeline。從而導致整條scan chain的長度變得很大。
在計算scan_in/out 和內部的short chain數量的時候,會經過多次迭代,每次根據生成的EDT模塊,來看壓縮比否合適,儘量保持EDT內部的pipeline長度小於short chain的 1/5.

爲什麼會分爲intest和extest兩種測試模式呢?
原因其實還是在於做scan時候的無法測到IP之間的gule logic。
首先來看一下SOC的整體結構,再做scan的時候,我們會劃分爲ip leve和soc level。
ip level就是指測試ip內部的所有scan cell,通過shift->capture->shift這個過程,將內部所有的flop進行檢查,主要是檢查flop通路,以及logical path是否存在stuck at fault,以及測試signal transition能否滿足timing。這些問題可以通過DC/AC mode來進行檢查。關於DC/AC mode,後面會有一篇文章專門講解。

這張圖畫出了IP level intest的結構,紅色的線代表的是scan data input/output,藍色的線代表function data input/output。
當進行scan的時候:
1. SE =1, SDI shift data  8 cycle,將所有的flop的D pin都已經給到一個data。
2. SE = 0,  clock切換到function clock,進入capture mode,此時用fuction clock shift 1 cycle,將D pin數據輸出到下一個flop的D pin上。
3. SE = 1, clock切回shift clock,進入到shift mode,將flop的數據逐個SHIFT 出來,輸出到SDO,在ATE上完成一組vector的測試。
看起來整個流程是可以的,但在整個流程上,第一級的flop,也就是途中input chain中的紫色三個flop實際上是沒有辦法測到正常的capture模式,因爲在capture mode情況下,INPUT CHAIN的SE始終要保持爲1(也就是第一級的flop一直要選擇紅兒箭頭的輸入),如圖藍色的箭頭所示,藍色箭頭是外部給過來的function input,在IP level,是沒有辦法控制它們的input,所以在capture mode下,SE =1,此時capture出來的數據實際上就是shift進來的scan input data。
在這種情況下,IP之間的glue logic沒有辦法驗證到。
如下圖所示,當兩個IP之間的glue logic需要進行測試的時候,此時,第一個IP的最後一級flop就變成了INPUT CHAIN, 而第二個IP的第一級flop就變成了OUTPUT CHAIN.
此時也就形成了一個IP之間的SCAN test,這樣也就可以完全測試到capture mode下的flop以及logic部分。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章