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