您現在的位置是:首頁 > 單機遊戲首頁單機遊戲

DFT的簡單介紹(下)

  • 由 偉醬的晶片後端之路 發表于 單機遊戲
  • 2022-12-29
簡介要知道晶片在正常工作時reg之間是會互相影響的,我們很難控制在某一個時刻,很多個reg都正好輸出我們想要的某個邏輯值組(一般DFT工程師稱這種輸入邏輯組叫pattern,比如上篇提到的例子裡,11、10就是不同的兩個pattern),怎麼辦

燕子包怎麼掃描晶片

上回書說到

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

篇文章。微信公眾號:偉醬的晶片後端之路

DFT的簡單介紹(下)

Top