您現在的位置是:首頁 > 單機遊戲首頁單機遊戲
DFT的簡單介紹(下)
- 2022-12-29
燕子包怎麼掃描晶片
上回書說到
SA0
和
SA1
的測試方法。
這種測試方法是建立在一個前提上的,就是我們可以任意改變輸入訊號的邏輯值。如果這個輸入正好就是整個晶片的輸入還好辦,直接在晶片外部改變即可。但很多時候我們需要測試晶片內部的各個邏輯單元,它們的輸入就會是在晶片內部,不那麼好調整了,這可咋辦呢?
這個時候人們就想到了晶片中的重要元件
——暫存器。如果我們給暫存器儲存相應的測試的邏輯值,讓這些
reg
的儲存的資料作為我們
DFT
測試的輸入,不就可以達到控制輸入訊號的目的了嗎?但這種方法有一定侷限性,這樣我們的
DFT
測試輸入位置必須保證是時序邏輯中暫存器的輸出
pin
才行,接收輸出訊號就還是用探針就可以,沒有太多限制。這樣的輸入限制有可能會導致我們無法完全測試出所有
combinational cell
的問題,但
DFT
工程師還是可以控制輸入訊號測很多次,來儘可能多的覆蓋到能測的
cell
。
DFT
測試中有一個測試覆蓋率的概念,一般都會要求到
90%
以上。
然而使用
reg
來作為測試輸入又帶來了新的問題,那就是我如何給這些
reg
灌進我想要的值呢?要知道晶片在正常工作時
reg
之間是會互相影響的,我們很難控制在某一個時刻,很多個
reg
都正好輸出我們想要的某個邏輯值組(一般
DFT
工程師稱這種輸入邏輯組叫
pattern
,比如上篇提到的例子裡,
11
、
10
就是不同的兩個
pattern
),怎麼辦呢?為了
DFT
測試,我們要對晶片進行大刀闊斧的改革!我們要把晶片中所有的正常
reg
全部升級!升級後的
reg
在可以正常工作的同時,還要支援一種模式,這種模式可以讓我們直接控制每個
reg
寄存的值。但是我們不可能把每個
reg
都接一根
net
到整個晶片的
port
,那
port
數量就太多了,根本不現實。如何只用控制一個
port
就能控制所有
reg
的值呢?別忘了,我們要控制的是暫存器,是被時鐘控制的,時鐘每跳變一次,訊號往後傳輸一次,那麼人們就想到把所有
reg
都串起來,後一個
reg
的輸入是前一個
reg
的輸出,我們只需要往第一個
reg
的輸入一個個灌值就行了。比如三個
reg
串起來,我們想要一個
101
的
pattern
,就在第一個時鐘週期給第一個
reg
灌進去
1
,三個
reg
狀態是
1xx
;下個時鐘週期灌
0
,狀態變為
01x
,第三個週期灌
1
,狀態變為
101。
這就是我們想要的
pattern
,在這個時刻進行測試即可。這裡的
reg
的輸入輸出就是不同於電路的輸入輸出了,就是別的
pin
,稱為
SI
和
SO
,控制訊號
SE
,我們把這個串稱為掃描鏈(
scan chain
)。並且晶片工作的時鐘很快,
DFT
測試的時候相對就很慢,我們就需要一個專門的慢速時鐘用來測試,相應的這個慢速時鐘和正常的時鐘要經過一個選擇器接到
reg
上。
而後
DFT
工程師就要生成各個
pattern
了,最終把這一串值一個一個送到
ATE
機臺完成測試。呼
~
寫了這麼多隻講完了
DC mode
,但還有
AC mode
沒講
。。。
就是說我們上文提到的測試不涉及電路
transition
的問題,如果某個
cell transition
比預期的要慢,也會發生錯誤,這也得測才行,因此就不能用慢速時鐘了,得用常速時鐘才行,相應的測試方法更加複雜了。
這兩天寫的
DFT
相對細了點,講的東西就少了點。我昨天剛開始寫的時候以為
1000
個字大概講講就行,結果發現大概講講也得少說一萬字。
DFT
更深入的內容之後有機會再寫吧。
這是我的第
23
篇文章。微信公眾號:偉醬的晶片後端之路