基于掃描的集成電路故障診斷技術(shù)
O 引 言
通常意義的的集成電路測試,只是施加測試以判斷被測電路是否存在故障,并不對故障進(jìn)行定位、確定故障類型、明確故障發(fā)生的根本原因。隨著集成電路技術(shù)的飛速發(fā)展,對集成電路測試提出了更高的要求,必須進(jìn)一步分析測試的結(jié)果,確定故障的性質(zhì),即所謂的故障診斷(Fault Diagnosis),以便對集成電路設(shè)計或工藝環(huán)節(jié)進(jìn)行改進(jìn)。
集成電路故障診斷分為故障檢測(測試)和故障定位,目的是找出引起集成電路失效(Failure)或者性能問題的物理缺陷(Defect),從而為提高集成電路芯片的成品率或改善性能提供參考。既然診斷是一個對存在于給定電路的制造復(fù)制板中的故障進(jìn)行定位的過程,可以在測試結(jié)果的基礎(chǔ)上,分析故障產(chǎn)生的原因和位置,更加有利于提高測試的效率。
1 常見的故障診斷方法
目前的集成電路故障診斷技術(shù)都是基于電壓的集成電路測試(故障檢測)方法,即在電路的測試端輸入測試向量,然后用電路的輸出結(jié)果與設(shè)計的期望值做比較以判斷電路是否有故障。例如,直接測量的方法,基于數(shù)學(xué)模型的方法,故障字典法,故障樹分析法等。
直接測量的方法是人工或者工具直接觀察測量被診斷對象有關(guān)的輸出量,如果超出正常變化范圍,則認(rèn)為對象已經(jīng)或?qū)⒁l(fā)生故障。這種方法雖然簡單,但容易出現(xiàn)故障的誤判和漏判。
基于數(shù)學(xué)模型的方法是在故障模型的基礎(chǔ)上,通過電路狀態(tài)并參考適當(dāng)模型進(jìn)行診斷,或者根據(jù)過程參數(shù)的變化特性參考適當(dāng)模型進(jìn)行診斷。這種方法需要模型的支持,對缺乏診斷經(jīng)驗(規(guī)則)的故障能起到預(yù)見作用。該方法的缺點是模型的建立比較困難,如果模型精確復(fù)雜,則診斷系統(tǒng)計算量龐大。
故障字典法首先提取電路在各種故障狀態(tài)下的電路特征,以構(gòu)建一個字典。該字典中包含有故障狀態(tài)和電路特征的一一對應(yīng)關(guān)系。在診斷時,根據(jù)電路表現(xiàn)出的特征,就可查出此時對應(yīng)的故障,如同查閱字典一樣。由于故障字典的建立需要精確數(shù)據(jù)以及字典的容量有限,該方法有一定的局限性。
故障樹分析法則像查找樹一樣,把許多電路的故障診斷歸納為幾個大的頂級故障事件,然后針對每個頂級故障事件搜索故障位置。這種診斷方法類似于人類的思維方式,易于被接受和理解。
以上的基于電壓的測試方法比較成熟,但是隨著集成電路技術(shù)的發(fā)展,其不足之處也越來越明顯。針對基于電壓的故障診斷方法的不足,出現(xiàn)了基于電流的診斷方法。基于電流信息的集成電路診斷可分為靜態(tài)電流(IDDQ)診斷和動態(tài)電流(IDDT)診斷。IDDQ診斷方法檢測CMOS電路靜態(tài)時的漏電流以進(jìn)行診斷。ID—DQ診斷方法測試成本低,可以以較小的IDDQ測試集獲得較大的故障覆蓋率,能夠檢測邏輯冗余故障,簡化橋接故障測試,不需要考慮邏輯扇出點。 IDDT診斷方法是通過檢查電路在其內(nèi)部狀態(tài)發(fā)生翻轉(zhuǎn)時的動態(tài)電流來發(fā)現(xiàn)其故障的方法。IDDT作為基于電壓的診斷和基于電流的IDDQ診斷的補充,成為集成電路診斷的另一方法。IDDT測試的速度非??欤铱梢詫﹄娐分械拈_路故障、弱晶體管故障進(jìn)行檢測,而這正是IDDQ診斷方法的不足。
2 基于掃描的集成電路故障診斷方法
掃描測試或者稱“掃描鏈插入”是集成電路最常見的可測試性設(shè)計技術(shù),可使測試數(shù)據(jù)從系統(tǒng)一端經(jīng)由移位寄存器等組成的數(shù)據(jù)通路(掃描鏈)串行移入或移出,并在數(shù)據(jù)輸出端對數(shù)據(jù)進(jìn)行分析,以此提高電路內(nèi)部節(jié)點的可控性和可觀察性,達(dá)到測試芯片內(nèi)部的目的。
基于掃描的故障檢測(測試)只需完成確定是否存在故障的任務(wù),但基于掃描的故障診斷需要定位故障,因此存在一個問題:一旦確定一個掃描錯誤,那么一系列節(jié)點都要成為測試的對象,這樣就要花大量的時間通過電路圖和物理版圖,比較一系列節(jié)點,以隔離那些有可能有故障和缺陷的位置。所以,這種分析方法必須能對可能出現(xiàn)的故障類型以及其物理缺陷做出有經(jīng)驗的判斷和猜測。另外,掃描測試是基于stuck at類型故障的,所以很難確定故障是開路型還是橋接型故障。
3 一種改進(jìn)的掃描診斷技術(shù)
針對傳統(tǒng)的基于掃描的故障診斷存在的問題,Mentor開發(fā)出了YieldAssist診斷工具。該工具把故障嫌疑(suspect)分為stuck—at,open/dom橋,B一0R—A,B—AND—A,3一WAY橋,根據(jù)現(xiàn)有信息不能確定的,EQ#等類型。除了采用基于定位的方法去驗證故障嫌疑,確定故障嫌疑的類型,該工具還通過計算仿真值和測試機(jī)上觀察值的比分值,來表明故障嫌疑與在測試機(jī)上觀察的結(jié)果的相似度(相似度的分值是在1~100分之間,分值越高二者越接近)。因為即使是在同一個邏輯位置,不同的故障模型也有不同的仿真值。
YieldAssist的故障診斷流程如下:
(1)仿真單個門有故障的管腳,看看故障向量是否把在測試機(jī)觀測到的錯誤行為傳播到所有觀測點,如果YieldAssist找到了關(guān)聯(lián),故障向量就可以在這個點被解釋;
(2)找到能包含所有錯誤向量的最小故障集;
(3)把所有的數(shù)據(jù)歸類到幾個獨立的“癥狀”區(qū),每個癥狀中列出可以解釋該故障向量的嫌疑類型。Yiel—dAssist將嫌疑類型進(jìn)行分級,給出每個癥狀中每個嫌疑的分值,這樣對故障嫌疑進(jìn)行分級。分值表明了故障嫌疑與在測試機(jī)上觀察的結(jié)果的相似度。
4 一種基于掃描的全速診斷技術(shù)
全速測試是當(dāng)今電子設(shè)計的要求,芯片時鐘速度的不斷提升和幾何面積的不斷減小,不可避免地導(dǎo)致芯片與時鐘速度相關(guān)缺陷的增加。目前主要的ATPG工具都支持基于掃描的全速測試。最常見的針對制造缺陷和處理過程不穩(wěn)定的檢查的全速測試,包括了針對跳變延時故障和路徑延時故障模型的測試向量生成。但是,在出現(xiàn)故障現(xiàn)象的全速測試向量中挑揀出故障路徑是很消耗時間的,所以業(yè)界越來越期待運用自動診斷技術(shù)來確定故障路徑并找出問題的根本原因。
通常情況下,運行一段給定電壓給定溫度下的測試向量,就能找出最大的通過速度Tmax。在早期階段,Tmax小于指定電路速度Fmax的現(xiàn)象是很普遍的。當(dāng)Tmax遠(yuǎn)遠(yuǎn)小于Fmax時,需要找出是哪條路徑發(fā)生故障以及故障的原因。假設(shè)測試向量在芯片上以tmax運行,此處 Tmax<tmaxFmax,根據(jù)Tmax的定義可知,在tmax的時鐘下,將會有一個或者多個故障路徑。
根據(jù)上述理論,為了確定在tmax下的故障路徑,只需載入所有的測試向量,掃描鎖存器觀察故障值,就可以得到一個完整的路徑集合。因為這些路徑的有效運行時鐘比設(shè)定的速度低,所以設(shè)計者可以觀察這些路徑是否是功能性(即是否完成某邏輯功能):如果不是功能性的路徑,可以修改測試向量使得該路徑就不被測試;也可以更新時序例外通路(Timing Exception Paths),引導(dǎo)ATPG來避免敏化這條通路。如果是功能性的路徑,那么在設(shè)計或者制造環(huán)節(jié)進(jìn)行修正,直至測試向量通過全速測試。Tmax越接近 Fmax,測試的覆蓋率越高。基于掃描的全速診斷大致可以分為兩部分:由ATE上觀察到故障的鎖存器找出故障路徑;自動化全速診斷。
由ATE上觀察到故障的鎖存器中找出故障路徑,需要注意以下兩點:當(dāng)時鐘速度從Tmax提升到tmax,多時鐘故障通路有可能被激活,此時的搜索就不能只假定在一個單故障路徑;全速測試的故障有可能是由毛刺引起的,并不是故障路徑的每個節(jié)點都有跳變,所以搜索不能局限在有跳變的范圍內(nèi)。
自動化全速診斷可以分為3步:
(1)對每一個出現(xiàn)故障現(xiàn)象的測試向量(故障向量),在觀測到故障的鎖存器中找到所有故障值的所有單跳變錯誤。
(2)從所有故障向量中得到候選項之后,找到一個覆蓋所有錯誤向量的最小跳變錯誤的最小集合。
(3)為了觀察故障路徑,對于已經(jīng)確定的每個跳變錯誤,圖形化展示所有能被故障向量解釋的故障路徑。這些通路用循跡跟蹤法來找到,從錯誤點反向至在錯誤點產(chǎn)生跳變的鎖存器,然后再前向至結(jié)束點。
5 結(jié) 語
介紹了故障診斷的常見方法,重點介紹了基于掃描的故障診斷方法。隨著技術(shù)的不斷發(fā)展,對芯片故障診斷的要求也越來越高,基于掃描的集成電路故障診斷算法將是研究和應(yīng)用的熱點。