背景
隨著積體電路複雜程度的提高和特徵尺寸日益縮小,測試已成為需要迫切解決的問題,特別是進入深亞微米以及超高集成度的發展階段以來,VLSI的測試費用和難度大幅度提高。據報導,隨著VLSI集成度的提高,測試費用可達到製造成本的50%以上,Prime研究集團報告稱,2000年半導體行業在數字積體電路與系統級晶片測試儀器上的花費是49億美元,測試費用則更高。按照ITRS(International Technology Roadmap for Semiconductors)的研究,到2014年電晶體的測試成本要大於其製造成本。
隨著技術的快速發展和市場競爭的加劇,產品市場壽命相對於開發周期變得越來越短,測試對產品的上市時間和開發周期將會有越來越大的影響。
測試已成為制約VLSI特別是SOC設計和套用的一個關鍵因素,隨著VLSI電路規模的增大、複雜程度的提高,晶片的引腳相對門數減少,使得電路的可控性和可觀測性係數降低,電路測試變得十分複雜和困難,測試生成的費用也呈指數增長,傳統的測試方法已難以全面而有效地驗證複雜積體電路設計與製造的正確性,從而導致了可測試性設計的方法的出現。
可測試性設計方法的核心思想是在設計一開始就要考慮測試問題,通過適當增加一些專門用於測試的電路,提高電路的可控制性和可觀察性,從而降低電路的測試難度和複雜性,提高電路的測試效率,降低測試成本。
原理
可測性設計的基本原理是:轉變測試思想,將輸入信號的枚舉與排列的測試方法(即完全測試),轉變為對電路內各個節點的測試,即直接對電路硬體組成單元進行測試,降低測試的複雜性。具體實現方法包括將複雜的邏輯電路分塊;採用附加邏輯和電路使測試生成容易,並能覆蓋全部的硬體節點;添加自檢測模組,使測試具有智慧型化和自動化。當前可測試性設計已經成為一個現代數字系統設計中必不可少的成分,然而,由於它對設計本身增加了硬體開銷,也會在不同程度上影響系統的性能,因此必須慎重考慮。另外,可測性設計的測試生成通常是針對門級器件的外節點,而不是直接針對電晶體級。雖然直接針對電晶體級生成測試具有更高的定位精度,但測試的難度與工作量也大大增加。
目的
為了解決測試的問題,人們設計了多種測試方案和測試結構,提出了可測性設計(DFT)。可測性設計需要在電路設計之初就考慮測試的問題,將可測試設計作為邏輯設計的一部分加以設計和最佳化。
可測性設計的目的是要實現電路的可測量性、可控制性和可觀察性。良好的可觀察性和可控制性能提高測試效率,在相對較少的測試向量下能夠得到高的故障覆蓋率。
方法
常用的可測性設計方法包括基於掃描鏈(scan chain)的測試方法和內建白測試電路(built-in self-test,BIST)。
基於掃描鏈的測試方法是通過建立專門掃描鏈電路為每個暫存器提供可觀察性和可控制性,它通過對暫存器的控制將複雜的時序邏輯設計畫分為完全隔離的組合邏輯塊,從而簡化了測試過程。基於掃描鏈的測試方法又分為兩種:一種是晶片內部暫存器的掃描鏈,用於測試晶片內部製造缺陷,另一種是晶片I/O連線埠的掃描鏈,又稱為邊界掃描設計(boundary scandesign),用於測試系統電路板級的製造缺陷。
內建自測試電路方法是通過晶片內部專門設計的測試邏輯電路(區別於掃描電路)的運行來檢查設計功能正常的電路的製造缺陷,它相當於把一個小型專用的測試儀器集成到晶片內部。BIST方法常用於片記憶體儲器的測試,如數據快取、FIFO、Cache等。在實際套用中,BIST和BSD經常與JTAG結合起來使用。JTAG接口提供了一種簡單通用的通過有限I/O訪問晶片內部信號的方法。