DFT全稱為Design for Test,可測性設計。就是說我們設計好一個芯片后,在仿真時可能99%的用例都通過了,怎么保證流片出來的實際芯片也能正常工作呢?這里大家必須建立一個概念就是,不管是前端后端,總之只要是設計階段,不管是waveform還是版圖,他都不能完全代表最終出來的芯片的樣子,那些設計圖紙只是我們美好的想象,實際的制造結果可能會有工藝的偏差的。
比如GDS里沒有short,但是有可能制造出來的芯片真的有short,這就關系到我們所謂的良率問題。那么DFT的終極目標就是在流片后,我也能通過某些測試的方法,保證芯片和我們的設計圖紙吻合,不出現異常。
這其實是一件很難的事情。因為芯片太小了,我們不可能拿著電子顯微鏡一點一點地去看吧,那要怎么做呢?其實它蘊含的思想很簡單,或者說人類還沒有發明出更高級的辦法。
大家肯定有在家里用過電筆的經歷,或者稍微專業一點的都知道萬用表,他們都是有內部的自建電路,然后利用探針來測被測電路的某一點電勢,進而判斷是否發生open/short。
對于芯片的測試也沒有更高級,也是用這種方法,可以利用探針探測芯片的輸入輸出引腳,看看輸入輸出是否正常,第二種比較厲害的是用探針直接伸到芯片內部,測里面某些點的邏輯信號。
這個方法邏輯上聽起來也沒什么大不了,但是實際實現是非常難的,需要把芯片放到專用的測試機器上,我們叫ATE機臺,測試的價格也非常高昂。每次到這我都想感嘆一下人類真是太強了。
既然有了這種ATE機臺,理論上我們就可以測芯片中每一點的邏輯信號,進而判斷芯片是否良好。
但是實際上是不可能行得通的,因為會耗費巨大的時間,可能到宇宙盡頭也測不完,其次它實在是太貴了,探針每選擇一個點的價格都是我們打工人想象不到的程度。如何更為經濟、快速的來測,就是DFT工程師的主要工作目的了。
對于DFT工程師來說,芯片的open/short可以等效為兩種fault:Stuck at 0、stuck at 1,說的是不管信號如何變化,某些點可能一直保持0或者1,其實就是發生了open/short。
噢,我這里還說的不太準確,也有可能是cell內部的錯誤,不是metal的open/short。舉一個簡單的例子,一個二輸入與門,它在輸入10、01、00的時候輸出都為0,看起來是正常的,但是輸入11的時候輸出也為0,這就不對了,發生了stuck at 0的錯誤;如果對于所有的輸入都輸出1,那也不對,發生了stuck at 1的錯誤。
那么反過來,我現在想測這個與門是否正常,怎么來測?思路是先測是否有stuck at 0,再測是否有stuck at 1.那么我如何測出它是否有stuck at 0?我就先假設它有SA0,我就找它應該輸出為1的輸入是什么,然后灌進去這個輸入(這個例子里就是11),如果測到輸出為0,那么他就發生SA0,如果輸出為1,那么他就沒有SA0. SA1也是一樣,我把所有應該產生0的輸入灌進去(10、01、00),如果至少有一個的輸出為1,那么就發生SA1,如果全部輸出為0,那么就沒有發生SA1. 聽起來這個邏輯關系好像很簡單,對于這個與門的例子一個小學生可能都會自發的想出要這么測。
但我這里費了這么多筆墨要把這件事講清楚,就是當電路復雜的時候,需要這樣一步一步來推導所需要的輸入是什么。
-
DFT
+關注
關注
2文章
231瀏覽量
22771 -
ATE
+關注
關注
5文章
124瀏覽量
26651 -
GDS
+關注
關注
0文章
28瀏覽量
6265 -
邏輯信號
+關注
關注
0文章
12瀏覽量
3397
發布評論請先 登錄
相關推薦
評論