翟濤
(中國電子科技集團公司第二十研究所,陜西西安 710068)
大規模集成電路的功能測試研究
翟濤
(中國電子科技集團公司第二十研究所,陜西西安 710068)
本文介紹了大規模集成電路功能測試的基本原理,并對集成電路功能測試的幾個主要方法進行了概述,通過對比每種測試方法的優缺點,進而得出模擬故障法為適合我國大規模集成電路功能測試的最佳方法。該方法主要是解決了隨著大規模集成電路的發展,單個電路本身的輸入、輸出管腳數量不斷增加而帶來的測試矢量呈現指數增長的問題,從測試時間和測試成本上考慮,使用傳統的窮舉法已經不可能符合大規模集成電路的測試要求。與傳統的窮舉法相比,它可以在不降低測試結果的準確性和可靠性的同時,使編制程序所需要的測試矢量控制在可以接受的水平上。最后,本文介紹了模擬故障法的主要思路和測試順序。
大規模集成電路 功能測試 模擬故障法
在集成電路的設計、制造和應用階段,不可避免的會出現故障,為了保證集成電路工作的可靠性,必須對它進行必要的測試。集成電路的測試一般分為三個部分:靜態測試、動態測試和功能測試。一般來說,每種集成電路的靜態測試和動態測試的方法和原理都是一致的,因此,靜態和動態指標的測試是較為容易的,但由于大規模集成電路的多樣性和復雜性,其功能測試一直成為電路測試領域中較為頭疼的問題。
一般傳統的集成電路功能測試是:在集成電路的原始輸入端施加若干輸入矢量作為激勵信號,觀察由此產生的輸出響應,與預期的正確結果相比較,一致則表示集成電路正常,不一致則表示集成電路不正常。集成電路的功能測試問題的關鍵是在于對集成電路的原始輸入端施加什么樣的輸入矢量然后通過比較輸出響應來判斷集成電路是否正常。但是隨著集成電路的規模擴大,測試生成變的越來越困難。大型集成電路的測試和故障診斷對于計算機運算速度的要求越來越高,所需的計算機的內存容量也越來越大,使得傳統的測試方法失去了實用的價值,尋找簡單的、有效的測試方法就成為測試領域中的一個非常重要的研究課題。
大規模集成電路的功能測試是一項非常復雜的工作,現在對集成電路在國內和國際有各種測試方法,大概分為以下三類:
(1)窮舉法測試:優點是故障覆蓋率達到100%,缺點是大規模集成電路測試時間過長,對于大規模、超大規模集成電路的測試不適用。
(2)自建內測法:即在設計大規模、超大規模集成電路時,即考慮到以后集成電路的測試問題,有意識的在芯片內部設計了一個專用的測試回路,當需要對電路進行測試時,只需要向芯片發出一段特殊的代碼或測試向量,芯片內部自動進行測試,測試完成后,芯片返回測試結果。這種方法的優點是:測試速度快,時間短,故障覆蓋率高,是現在國內外流行的測試方法。但是,缺點是:如果不是芯片的生產廠家,基本上不可能知道那段特殊的代碼或測試向量,不能使用這種測試方法。
(3)模擬故障法:即為本文推薦的方法,優點:測試時間短,代碼長度短,故障覆蓋率高,并可以通過概率論的方法計算出確定的故障覆蓋率,無須生產廠家的協助,可獨立開發測試程序,比較適合中國現在大規模集成電路依賴進口的現狀。缺點:未發生過的故障或不知道的故障模式無法模擬,且需要測試程序的編制人員對集成電路結構和使用方法有一定的了解。
在目前我國大規模,超大規模集成電路基本依賴進口,而且由于知識產權的原因,我們不可能得到國外生產廠家關于集成電路內部結構的設計方面的具體信息和測試源代碼,既然我們由于測試時間原因不能通過窮舉法編制測試程序,那么模擬故障法就是成為目前可以接受的一種測試方法,值得我們在實際工作中大量使用。
運用模擬故障法時,在測試一個集成電路之前,首先需要確定兩個問題:
(1)集成電路故障模式的發生位置。
(2)集成電路故障模式出現時所需要的輸入條件。
無論多么復雜的集成電路,都可以分解為由不同的模塊和不同的模塊間的連接線所構成,所以集成電路失效無非由三種故障所引起:
(1)模塊間連接線故障;
(2)內部模塊故障;
(3)前后執行語句可能產生的相互影響(主要對于CPU、DSP等類器件而言)。
所以集成電路故障模式的發生位置主要在三個位置:連接線、模塊、具體前后軟件語句執行過程中。
在確定故障模式發生的位置之后,就應該確定這三種故障模式出現時所需要的輸入條件。比如通過多年經驗,我們知道大規模集成電路的模塊間的連接線故障多是由于物理破壞(蝕刻過度、絕緣層破壞、金屬線斷裂等)而造成線路之間的搭橋或短路引起的,其故障模式導致的故障主要表現的形式為:連接線路表現為常“0”或常“1”,或者在兩個連接線之間短路時,表現為分別在兩個連接線之間,無論輸入如何變化,兩個連接線輸出電平一致,同為“0”或“1”。因此,集成電路內部模塊連接線故障模式出現時所需要的輸入條件為:單個連接線路從“0”變為“1”或“1”變為“0”時,或者兩個連接線分別輸入“1”和“0”時。用同樣的方法,我們可以確定集成電路內部模塊的故障模式出現時所需要的輸入條件和集成電路前后執行語句相互影響故障模式出現時的輸入條件。
根據我們實際使用經驗發現:絕大多數大規模集成電路的失效是由于芯片與外部管腳的連接或芯片內部各模塊連接出現問題造成的。測試程序一旦測試到某個集成電路有故障,該個集成電路的測試應立即停止,系統顯示該個集成電路失效,同時開始下個集成電路的測試。所以在考慮到測試時間和成本的情況下,應當首先測試模塊間的連接故障,其次才是各個模塊的測試,最后才是集成電路前后執行語句可能產生的相互影響故障模式的測試。
[1][美]MiCheal John Sebastian Smith著,虞惠華,湯庭鰲,來金梅,孫承緩等譯.專用集成電路,第l版,電子工業出版社,2004.
[2]朱瑜.一種大規模集成電路測試方法.2006.
[3]樓冬明,陳波.數字集成電路測試系統的研制.電子技術應用,2001.
[4]谷健,田延軍,史文,張曉黎.集成電路測試技術與應用.中國慣性技術學報,2002.
[5]呂虹.簡易集成電路測試系統的設計.合肥工業大學學報(自然科學版),1995.