陶麗芳 馬 琪 竺紅衛
摘 要:隨著集成電路技術的飛速發展,人們對集成電路產品的可靠性要求越來越高,這就要求集成電路測試特別是故障診斷提出了更高的要求。基于掃描的故障診斷方法是廣泛應用的故障診斷方法之一。介紹基于掃描的集成電路故障診斷方法,并詳細介紹了一種改進的掃描診斷方法和一種基于掃描的全速診斷方法。
關鍵詞:故障診斷;掃描診斷;全速診斷;IDDQ;IDDT
中圖分類號:TM13 文獻標識碼:B
文章編號:1004-373X(2009)01-164-03
Scan-based Fault Diagnosis Technique for IC Testing
TAO Lifang1,MA Qi1,ZHU Hongwei2
(1.Microelectronic CAD Research Center,Hangzhou Dianzi University,Hangzhou,310018,China;
2.Institute of VLSI Design,Zhejiang University,Hangzhou,310027,China)
Abstract:Along with fast development of IC technology,higher and higher request for the IC products reliability is needed,which set a higher request for IC test specially the fault diagnosis.Scan-based fault diagnosis technique for IC testing,which is one of fault diagnosis methods wildly used,a kind of advanced scan diagnosis and at-speed diagnosis are presented detailedly in this paper.
Keywords:fault diagnosis;scan diagnosis;at-speed diagnosis;IDDQ;IDDT
0 引 言
通常意義的的集成電路測試,只是施加測試以判斷被測電路是否存在故障,并不對故障進行定位、確定故障類型、明確故障發生的根本原因。隨著集成電路技術的飛速發展,對集成電路測試提出了更高的要求,必須進一步分析測試的結果,確定故障的性質,即所謂的故障診斷 (Fault Diagnosis),以便對集成電路設計或工藝環節進行改進。
集成電路故障診斷分為故障檢測(測試)和故障定位,目的是找出引起集成電路失效(Failure)或者性能問題的物理缺陷(Defect),從而為提高集成電路芯片的成品率或改善性能提供參考。既然診斷是一個對存在于給定電路的制造復制板中的故障進行定位的過程,可以在測試結果的基礎上,分析故障產生的原因和位置,更加有利于提高測試的效率。
1 常見的故障診斷方法
目前的集成電路故障診斷技術都是基于電壓的集成電路測試(故障檢測)方法,即在電路的測試端輸入測試向量,然后用電路的輸出結果與設計的期望值做比較以判斷電路是否有故障。例如,直接測量的方法,基于數學模型的方法,故障字典法,故障樹分析法 等。
直接測量的方法是人工或者工具直接觀察測量被診斷對象有關的輸出量,如果超出正常變化范圍,則認為對象已經或將要發生故障。這種方法雖然簡單,但容易出現故障的誤判和漏判。
基于數學模型的方法是在故障模型的基礎上,通過電路狀態并參考適當模型進行診斷,或者根據過程參數的變化特性參考適當模型進行診斷。這種方法需要模型的支持,對缺乏診斷經驗(規則)的故障能起到預見作用。該方法的缺點是模型的建立比較困難,如果模型精確復雜,則診斷系統計算量龐大。
故障字典法[3]首先提取電路在各種故障狀態下的電路特征,以構建一個字典。該字典中包含有故障狀態和電路特征的一一對應關系。在診斷時,根據電路表現出的特征,就可查出此時對應的故障,如同查閱字典一樣。由于故障字典的建立需要精確數據以及字典的容量有限,該方法有一定的局限性。
故障樹分析法則像查找樹一樣,把許多電路的故障診斷歸納為幾個大的頂級故障事件,然后針對每個頂級故障事件搜索故障位置。這種診斷方法類似于人類的思維方式,易于被接受和理解。
以上的基于電壓的測試方法比較成熟,但是隨著集成電路技術的發展,其不足之處也越來越明顯。針對基于電壓的故障診斷方法的不足,出現了基于電流的診斷方法。基于電流信息的集成電路診斷可分為靜態電流(IDDQ)診斷和動態電流(IDDT)診斷。IDDQ診斷方法檢測CMOS電路靜態時的漏電流以進行診斷。IDDQ診斷方法測試成本低,可以以較小的IDDQ測試集獲得較大的故障覆蓋率,能夠檢測邏輯冗余故障,簡化橋接故障測試,不需要考慮邏輯扇出點 。IDDT診斷方法是通過檢查電路在其內部狀態發生翻轉時的動態電流來發現其故障的方法。IDDT作為基于電壓的診斷和基于電流的IDDQ診斷的補充,成為集成電路診斷的另一方法。IDDT測試的速度非常快,而且可以對電路中的開路故障、弱晶體管故障進行檢測,而這正是
IDDQ診斷方法的不足 。
2 基于掃描的集成電路故障診斷方法
掃描測試 或者稱“掃描鏈插入”是集成電路最常見的可測試性設計技術,可使測試數據從系統一端經由移位寄存器等組成的數據通路(掃描鏈)串行移入或移出,并在數據輸出端對數據進行分析,以此提高電路內部節點的可控性和可觀察性,達到測試芯片內部的目的。
基于掃描的故障檢測(測試)只需完成確定是否存在故障的任務,但基于掃描的故障診斷需要定位故障,因此存在一個問題:一旦確定一個掃描錯誤,那么一系列節點都要成為測試的對象,這樣就要花大量的時間通過電路圖和物理版圖,比較一系列節點,以隔離那些有可能有故障和缺陷的位置。所以,這種分析方法必須能對可能出現的故障類型以及其物理缺陷做出有經驗的判斷和猜測。另外,掃描測試是基于stuck at類型故障的,所以很難確定故障是開路型還是橋接型故障。
3 一種改進的掃描診斷技術
針對傳統的基于掃描的故障診斷存在的問題,Mentor開發出了YieldAssist診斷工具。該工具把故障嫌疑(suspect)分為stuck-at,open/dom橋,B-OR-A,B-AND-A,3-WAY橋,根據現有信息不能確定的,EQ#等類型。除了采用基于定位的方法去驗證故障嫌疑,確定故障嫌疑的類型,該工具還通過計算仿真值和測試機上觀察值的比分值,來表明故障嫌疑與在測試機上觀察的結果的相似度(相似度的分值是在 1~100分之間,分值越高二者越接近)。因為即使是在同一個邏輯位置,不同的故障模型也有不同的仿真值。
YieldAssist的故障診斷流程如下:
(1) 仿真單個門有故障的管腳,看看故障向量是否把在測試機觀測到的錯誤行為傳播到所有觀測點,如果YieldAssist找到了關聯,故障向量就可以在這個點被解釋;
(2) 找到能包含所有錯誤向量的最小故障集;
(3) 把所有的數據歸類到幾個獨立的“癥狀”區,每個癥狀中列出可以解釋該故障向量的嫌疑類型。YieldAssist將嫌疑類型進行分級,給出每個癥狀中每個嫌疑的分值,這樣對故障嫌疑進行分級。分值表明了故障嫌疑與在測試機上觀察的結果的相似度。
4 一種基于掃描的全速診斷技術
全速測試 是當今電子設計的要求,芯片時鐘速度的不斷提升和幾何面積的不斷減小,不可避免地導致芯片與時鐘速度相關缺陷的增加。目前主要的ATPG工具都支持基于掃描的全速測試。最常見的針對制造缺陷和處理過程不穩定的檢查的全速測試,包括了針對跳變延時故障和路徑延時故障模型的測試向量生成。但是,在出現故障現象的全速測試向量中挑揀出故障路徑是很消耗時間的,所以業界越來越期待運用自動診斷技術來確定故障路徑并找出問題的根本原因。
通常情況下,運行一段給定電壓給定溫度下的測試向量,就能找出最大的通過速度T max。在早期階段,T max小于指定電路速度F max的現象是很普遍的。當T max遠遠小于F max時,需要找出是哪條路徑發生故障以及故障的原因。假設測試向量在芯片上以t max運行,此處T max<t maxF max,根據T max的定義可知,在t max的時鐘下,將會有一個或者多個故障路徑。
根據上述理論,為了確定在t max下的故障路徑,只需載入所有的測試向量,掃描鎖存器觀察故障值,就可以得到一個完整的路徑集合。因為這些路徑的有效運行時鐘比設定的速度低,所以設計者可以觀察這些路徑是否是功能性(即是否完成某邏輯功能):如果不是功能性的路徑,可以修改測試向量使得該路徑就不被測試;也可以更新時序例外通路(Timing Exception Paths),引導ATPG來避免敏化這條通路。如果是功能性的路徑,那么在設計或者制造環節進行修正,直至測試向量通過全速測試。T max越接近F max,測試的覆蓋率越高。
基于掃描的全速診斷[10]大致可以分為兩部分:由ATE上觀察到故障的鎖存器找出故障路徑;自動化全速診斷。
由ATE上觀察到故障的鎖存器中找出故障路徑,需要注意以下兩點:當時鐘速度從T max提升到t max,多時鐘故障通路有可能被激活,此時的搜索就不能只假定在一個單故障路徑;全速測試的故障有可能是由毛刺引起的,并不是故障路徑的每個節點都有跳變,所以搜索不能局限在有跳變的范圍內 。
自動化全速診斷可以分為3步:
(1) 對每一個出現故障現象的測試向量(故障向量),在觀測到故障的鎖存器中找到所有故障值的所有單跳變錯誤。
(2) 從所有故障向量中得到候選項之后,找到一個覆蓋所有錯誤向量的最小跳變錯誤的最小集合。
(3) 為了觀察故障路徑,對于已經確定的每個跳變錯誤,圖形化展示所有能被故障向量解釋的故障路徑。這些通路用循跡跟蹤法來找到,從錯誤點反向至在錯誤點產生跳變的鎖存器,然后再前向至結束點[12]。
5 結 語
介紹了故障診斷的常見方法,重點介紹了基于掃描的故障診斷方法。隨著技術的不斷發展,對芯片故障診斷的要求也越來越高,基于掃描的集成電路故障診斷算法將是研究和應用的熱點。
參考文獻
[1]Miron Abramovici,Melvin A Breuer,Arthur D Friedman.數字系統與可測性設計[M].李華偉,魯巍,譯.北京:機械工業出版社,2006.
[2]Sheppard J W,Simpson W R.Research Perspectives and Case Studies in System Test and Diagnosis.Boston: Kluwer Academic Publishers,1998.
[3]Michael L Bushnell,Vishwani D Agrawal.超大規模集成電路測試[M].蔣安平,馮建華,譯.北京:電子工業出版社,2005.
[4]Yoshinobu Higami,Kewal K Saluja.Fault Models and Test Generation for Iddq Testing.Design Automation Coference.2000.
[5]張蘭,徐紅兵.一種新的IDDQ故障定位算法的研究.電子科技大學學報,2004,33(2):133-136.
[6]雷紹充,邵志標.IDDQ測試全面系統化的研究.國內外電子測量技術,2004,23(5):2-9.
[7]曾曉杰,鄺繼順.基于螞蟻路徑的IDDT測試生成.科學技術與工程,2007,7(17):4 364-4 369.
[8]曾芷德.數字系統測試與可測性[M].長沙:國防科技大學出版社,1992.
[9]胡晉.基于掃描的SoC全速測試及應用.現代電子技術,2007,30(8):192-194.
[10]Mehta V,Wang Z,Marek-Sadowska M,et al.Delay Fault Diagnosis for Non-Robust Test.Proc.International Symposium on Quality Electronic Design.2006.
[11]Maly W.Deformation of IC Structure in Test and Yield Learning.Proc Intl.Test Conf..2003:856-865.
[12]Wang Z,Marek-Sadowska M,Tsai K H,et al.Dwlay Fault Diagnosis Using Timing Information.Proc.International Symposium on Quality Electronic Design.2004.