天天看點

DFT基礎知識整理

站在一個IC前端設計人員的角度學習DFT基礎知識,概念。

· 驗證和測試的差別。

驗證主要是确認功能,時序是否滿足要求,一般在仿真環境中,輸入激勵,分析響應。根據驗證階段可以分為功能仿真,門級仿真,版圖後仿真。

然而在晶片制造過程中,受到各種不确定因素的影響,制造出來的晶片并不完全都能正常工作,檢測出有制造缺陷的晶片就是測試的範疇。測試要檢查的不是設計的功能錯誤,而是晶片生産過程中引入的電路結構上的制造缺陷。對測試工程師來說,一塊晶片的功能,用途都不重要,那些實在設計階段由前端設計人員保證的内容。

為什麼需要DFT。(Design For Test)

因為晶片設計規模越來越大,測試成本不斷提高,封裝後的晶片還要經過ATE(Auto Test Equipment)自動測試機台的檢查後,才能夠確定晶片品質,傳遞客戶。測試機台的測試激勵如果人為設定的話,很難保證故障覆寫率。為了友善測試激勵的生成,在設計階段就有意識的加入一定用于測試的附加邏輯,進而在測試階段就能夠通過ATPG(Auto Test Pattern General)自動生成測試向量,作為ATE的輸入,同時産生期待值和ATE的輸出比較,得到測試結果。完備的DGT設計可以提供高故障覆寫率的測試激勵,保證晶片良率。

DFT的工作包括

    -- 在項目初期規劃DFT架構;

    -- 在RTL級别設計測試電路;

    -- 在驗證階段驗證測試電路;

    -- 在synthesis階段實作測試邏輯的插入;

    -- 在測試階段提供測試向量

DFT能夠縮短上市時間,降低測試費用,提高故障覆寫率(提高産品品質)

這些激勵可以是直接的測試内容(Scan激勵),也可以是觸發晶片内部bist的激勵。

· Scan設計

基于掃描設計是可測試性設計中最常用的一種方法。在綜合階段把普通觸發器替換為既有掃描能力的觸發器,即觸發器的輸入端增加了一個選擇器,Select端是測試使能端。讓後把替換後的觸發器連接配接起來形成掃描鍊。

DFT基礎知識整理
DFT基礎知識整理

 掃描設計分為兩種:全掃描,部分掃描。

全掃描指把電路中所有的觸發器替換為掃描觸發器,并把他們連接配接在一起構成掃描鍊。

部分掃描是把隻替換電路中的部分觸發器。

掃描觸發器會增加晶片面積(增加的選擇器,以及布線複雜性),影響觸發的延時。

而全掃描觸發器可以采用組合ATPG工具生成測試模式,而部分掃描設計隻能采用時序ATPG工具生成測試模式。時序ATPG工具相比組合ATPG,運作時間長幾倍,需要記憶體也大幾倍。

掃描設計增加了電路的可觀測性,電路中插入掃描鍊後,所有時序單元的D端都是掃描可觀的,Q端是掃描可控節點。

最初的掃描設計是為了解決時序電路的測試問題而提出的一種可測試性設計方法。進入測試模式後,選擇Scan_in輸入的激勵,激勵通過掃描鍊輸出到Scan_out,輸出如果滿足期待值的話,就說明掃描鍊上的觸發器都是沒有缺陷器件。

随着技術的進步,掃描鍊被優化到能夠為電路中的組合邏輯提供激勵的加載通道和響應的觀測通道。

掃描測試的時序

1)SE=1,進入掃描模式,通過掃描移位(shift)操作把設計中的時序單元設定為Scan_in輸入的數值,掃描鍊的長度(Flip Flop的個數)決定了這個過程所需時鐘cycle數。電路工作在掃描移動測試狀态。

2)SE=0,電路工作在正常狀态(capture),隻法1cycle有效時鐘觸發,Scan_in輸入值通過組合邏輯傳到後級FF被Latch住。

3)SE=1,抓取電路組合部分的響應。電路工作在掃描移動測試狀态(shift out)。把capture狀态Latch的值通過移位傳到Scan_out端進行期待值比較。

需要施加多個測試模式時,前一個測試響應移出電路的同時就移入目前測試激勵。shift in和shift out同時進行。

如果不進行第二步的話,資料不會通過組合邏輯,隻能檢測掃描鍊上觸發器的狀态。

· 内建立自測試(BIST)Build in self test

        内建自測試是可測性設計的另一種重要的方法。這種方法的基本思想是由電路自己生 成測試向量,而不是要求外部施加測試向量,它依靠自身邏輯來判斷所得到的測試結果是否 是正确的,這樣就大大降低了對測試裝置的要求,而且它所要求“借用”的晶片封裝引腳的 數目要少得多。内建自測試的基本原理如圖所示。 BIST 又分為邏輯内建自測試(LBIST)和存儲器内建自測試(MBIST),MBIST 又分為 RAMBIST 以及 ROMBIST。由于 BIST 要求電路自身生成測試向量,而随機邏輯的測試向 量生成是非常複雜,故邏輯内建自測試在實際中應用有限,最常用的是 MBIST。

RAMBIST

由于 RAM 可讀可寫,是以我們要從讀和寫兩個方面對它進行測試,因 于 RAM 結構規整緻密,故其測試向量不像普通電路測試向量那樣複雜,RAM 測試的 關鍵在于施加測試向量的時序上,最常用的是 March 算法。

ROM與 RAM 最大的不同之處是 RAM 可讀可寫,而 ROM 隻讀不可寫,ROM 中的資訊是由制造廠家做好了的,是以 ROMBIST 與 RAMBIST 的最大不同就是前者沒有向量生成電路, 由于ROM 中的資訊是多種多樣,故其響應分析是非常複雜的,通常要用特征分析 器首先對其響應進行壓縮得出響應特征。

ROM BIST的作用有兩個:一方面是要驗證存儲在ROM中的資料是否正确;另一方面是確定能夠準确讀出存儲器中的資訊,而不出現破壞性的讀操作,即在進行讀操作時不會改 變或毀壞資料。ROM測試也可以采用類似RAM測試的March算法。

Tips:

[1]DFT的測試内容不同與功能性測試。

[2]功能性測試是為了驗證設計出的是想要的;

[3]DFT測試是為了檢測生産出的就是設計的。

繼續閱讀