Scan(掃描測試)和BIST(內(nèi)建自測試)都是用于芯片測試的技術(shù),但它們在實現(xiàn)方式和應(yīng)用場景上有所不同。
**Scan(掃描測試)**:
掃描測試是一種常用的數(shù)字集成電路測試技術(shù)。在設(shè)計階段,工程師會在芯片中添加額外的硬件(掃描鏈),以便在測試階段將測試數(shù)據(jù)輸入到芯片內(nèi)部的特定位置,并從特定位置讀取測試結(jié)果。掃描測試主要用于生產(chǎn)階段的測試,以檢測出可能的制造缺陷。它可以提供很高的故障覆蓋率,但是需要外部的測試設(shè)備和復(fù)雜的測試向量生成。
**BIST(內(nèi)建自測試)**:
BIST是一種將測試邏輯直接集成到被測試系統(tǒng)中的方法,使系統(tǒng)能夠進行自我測試。BIST通常包括一個測試模式生成器和一個測試響應(yīng)分析器。在測試階段,測試模式生成器會自動產(chǎn)生測試向量,測試響應(yīng)分析器會收集并分析測試結(jié)果。BIST可以在系統(tǒng)的生命周期中的任何時間進行測試,包括生產(chǎn)測試、系統(tǒng)啟動時的自我測試,甚至系統(tǒng)運行時的在線測試。BIST的優(yōu)點是可以進行在系統(tǒng)級別的測試,無需外部的測試設(shè)備,但可能會增加設(shè)計的復(fù)雜性和硬件開銷。
Scan Design -- 掃描路徑設(shè)計
Scan 技術(shù)最初由Kobayashi等人提出來的,它的優(yōu)點是基本原理是時序電路可以模型化為一個組合電路網(wǎng)絡(luò)。
Scan design的設(shè)計目標是能夠提高可控性和可觀測性。
通過在邏輯A和邏輯B之間插入一些額外的硬件電路,便可觀測&控制邏輯A傳遞到邏輯B的值。[1]
scan 分為兩步:
1. Scan replacement
把普通的DFF,替換成帶Scan DFF,下圖是一個mux-D的DFF,可以看到多了一個SI,SE,和一個mux。
其SE端值為0時,電路工作在正常功能狀態(tài)并能把D端的值鎖存下來;當(dāng)SE為1時,電路工作在所謂scan mode并鎖存SI的值。
常見的scan cell有三種:
2. Scan stitching
Scan stitching 是把上一步中得到的Scan DFF的Q和SI連接在一起形成scan chain。在芯片的頂層有全局的SE信號,以及scan chain的輸入輸出信號:SI 和 SO。通過scan chain的連續(xù)動作,就可以把問題從對復(fù)雜時序電路的測試轉(zhuǎn)化成測試組合電路。
實際在設(shè)計中,這兩步都是由EDA工具完成的。
上面的兩幅圖都只有時序單元,我們再把組合邏輯放進來。
Before scan
After scan insertion
Scan test 的步驟:
1.把Scan-En設(shè)成0,此時電路工作在正常狀態(tài)(function mode)下, scan insertion對電路的正常功能沒有影響。
2.把Scan-En設(shè)成1,然后把enable clock來驅(qū)動寄存器,在Scan-In端輸入測試數(shù)據(jù),然后在輸出端Scan-Out觀測,用此種方法便可以測試Flip-Flop.
3.測試組合邏輯的時候,把Scan-En設(shè)成1,然后enable clock來驅(qū)動寄存器,在Scan-In端輸入測試數(shù)據(jù),兩個時鐘周期后,數(shù)據(jù)便會送到組合邏輯的輸入端。
4.然后把Scan-En設(shè)成0,時鐘打一拍,經(jīng)過組合邏輯的輸出值便會送到右側(cè)的寄存器中。
5.再把Scan-En設(shè)成1,此時scan chain 工作在shift mode,此時便可以把組合邏輯的輸出值shift出來,和期望值進行比較。
經(jīng)過這樣一個周期,圖中的組合邏輯和時序邏輯便都被測試到了。
BIST -- 內(nèi)建自測試
內(nèi)建自測試(BIST)設(shè)計技術(shù)通過在芯片的設(shè)計中加入一些額外的自測試電路,測試時只需要從外部施加必要的控制信號,通過運行內(nèi)建的自測試硬件和軟件,檢查被測電路的缺陷或故障。和掃描設(shè)計不同的是,內(nèi)建自測試的測試向量一般是內(nèi)部生成的,而不是外部輸入的。內(nèi)建自測試可以簡化測試步驟,而且無需昂貴的測試儀器和設(shè)備(如ATE設(shè)備),但它增加了芯片設(shè)計的復(fù)雜性。
BIST大致可分為兩類:Logic?BIST(LBIST)?和?Memory?BIST?(MBIST)
LBIST通常用于測試隨機邏輯電路,一般采用一個偽隨機測試圖形生成器來產(chǎn)生輸入測試圖形,應(yīng)用于器件內(nèi)部機制;而采用多輸入寄存器(MISR)作為獲得輸出信號產(chǎn)生器。MBIST只用于存儲器測試,典型的MBIST包含測試電路用于加載,讀取和比較測試圖形。目前存在幾種業(yè)界通用的MBIST算法,比如“March”,March-C,MATS+算法。
另一種比較少見的BIST稱為Array?BIST,它是MBIST的一種,專門用于嵌入式存儲器的自我測試。Analog?BIST,則用于模擬電路的自我測試。???BIST技術(shù)正成為高價ATE的替代方案,但是BIST技術(shù)目前還無法完全取代ATE,他們將在未來很長一段時間內(nèi)共存。
Scan和BIST是芯片可測性設(shè)計中兩種非常重要的技術(shù),也是一個DFT工程師必備的技能。