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