隨著芯片集成度的越來(lái)越高,如今的IC測(cè)試面臨著前所未有的挑戰(zhàn):
測(cè)試時(shí)間越來(lái)越長(zhǎng),百萬(wàn)門(mén)級(jí)的SoC測(cè)試可能需要幾個(gè)月甚至更長(zhǎng)的時(shí)間;
測(cè)試矢量的數(shù)目越來(lái)越多,覆蓋率卻難以提高,人們不知道究竟要用多少測(cè)試矢量才能覆蓋到所有的器件;
測(cè)試設(shè)備的使用成本越來(lái)越高,直接影響到芯片的成本。
一、測(cè)試的概念和原理
集成電路(IC)測(cè)試是IC產(chǎn)業(yè)鏈中重要的一環(huán),而且是不可或缺的一環(huán),它貫穿于從產(chǎn)品設(shè)計(jì)開(kāi)始到完成加工的全過(guò)程。目前所指的測(cè)試通常是指芯片流片后的測(cè)試,定義為對(duì)被測(cè)電路施加已知的測(cè)試矢量,觀察其輸出結(jié)果,并與已知正確輸出結(jié)果進(jìn)行比較而判斷芯片功能、性能、結(jié)構(gòu)好壞的過(guò)程。圖1說(shuō)明了測(cè)試原理,就其概念而言,測(cè)試包含了三方面的內(nèi)容:已知的測(cè)試矢量、確定的電路結(jié)構(gòu)和已知正確的輸出結(jié)果。
圖1集成電路測(cè)試原理
二、測(cè)試及測(cè)試矢量的分類(lèi)
1.按測(cè)試目的分類(lèi)
根據(jù)測(cè)試的目的不同,可以把集成電路測(cè)試分為4種類(lèi)型。
(1)驗(yàn)證測(cè)試(Verification Testing,也稱(chēng)作Design Validation)
當(dāng)一款新的芯片第一次被設(shè)計(jì)并生產(chǎn)出來(lái),首先要接受驗(yàn)證測(cè)試。在這一階段,將會(huì)進(jìn)行功能測(cè)試,以及全面的AC、DC參數(shù)的測(cè)試。通過(guò)驗(yàn)證測(cè)試,可以診斷和修改設(shè)計(jì)錯(cuò)誤,為最終規(guī)范(產(chǎn)品手冊(cè))測(cè)量出芯片的各種電氣參數(shù),并開(kāi)發(fā)出測(cè)試流程。
(2)生產(chǎn)測(cè)試(Manufacturing Testing)
當(dāng)芯片的設(shè)計(jì)方案通過(guò)了驗(yàn)證測(cè)試,進(jìn)入量產(chǎn)階段之后,將利用前一階段調(diào)試好的流程進(jìn)行生產(chǎn)測(cè)試。在這一階段,測(cè)試的目的就是明確做出被測(cè)芯片是否通過(guò)測(cè)試的判決。由于每一顆芯片都要進(jìn)行生產(chǎn)測(cè)試,所以測(cè)試成本是這一階段的首要問(wèn)題。從這一角度出發(fā),生產(chǎn)測(cè)試通常所采用的測(cè)試向量集不會(huì)包含過(guò)多的功能向量,但是必須有足夠高的模型化故障的覆蓋率。
(3)可靠性測(cè)試(Reliability Testing)
通過(guò)生產(chǎn)測(cè)試的每一顆芯片并不完全相同,最典型的例子就是同一型號(hào)產(chǎn)品的使用壽命不盡相同??煽啃詼y(cè)試就是要保證產(chǎn)品的可靠性,通過(guò)調(diào)高供電電壓、延長(zhǎng)測(cè)試時(shí)間、提高溫度等方式,將不合格的產(chǎn)品(如會(huì)很快失效的產(chǎn)品)淘汰出來(lái)。
(4)接受測(cè)試(Acceptance Testing)
當(dāng)芯片送到用戶(hù)手中,用戶(hù)將進(jìn)行再一次的測(cè)試。例如,系統(tǒng)集成商在組裝系統(tǒng)之前,會(huì)對(duì)買(mǎi)回的各個(gè)部件進(jìn)行此項(xiàng)測(cè)試。
2.按測(cè)試方式的分類(lèi)
根據(jù)測(cè)試方式的不同,測(cè)試矢量也可以分為3類(lèi)。
(1)窮舉測(cè)試矢量(Exhaustive Vector)
窮舉測(cè)試矢量是指所有可能的輸入矢量。該測(cè)試矢量的特點(diǎn)是覆蓋率高,可以達(dá)到100%,但是其數(shù)目驚人,對(duì)于具有n個(gè)輸入端口的芯片來(lái)說(shuō),需要2n個(gè)測(cè)試矢量來(lái)覆蓋其所有的可能出現(xiàn)的狀態(tài)。例如,如果要測(cè)試74181ALU,其有14個(gè)輸入端口,就需要214=16384個(gè)測(cè)試矢量,對(duì)于一個(gè)有38個(gè)輸入端口的16位的ALU來(lái)說(shuō),以10 MHz的速度運(yùn)行完所有的測(cè)試矢量需要7.64個(gè)小時(shí),顯然,這樣的測(cè)試對(duì)于量產(chǎn)的芯片是不可取的。
(2)功能測(cè)試矢量 (Functional Vector)
功能測(cè)試矢量主要應(yīng)用于驗(yàn)證測(cè)試中,目的是驗(yàn)證各個(gè)器件的功能是否正確。其需要的矢量數(shù)目大大低于窮舉測(cè)試,以74181ALU為例,只需要448個(gè)測(cè)試矢量,但是目前沒(méi)有算法去計(jì)算矢量是否覆蓋了芯片的所有功能。
(3)結(jié)構(gòu)測(cè)試矢量 (Structural Vector)
這是一種基于故障模型的測(cè)試矢量,它的最大好處是可以利用電子設(shè)計(jì)自動(dòng)化(EDA)工具自動(dòng)對(duì)電路產(chǎn)生測(cè)試向量,并且能夠有效地評(píng)估測(cè)試效果。74181ALU只需要47個(gè)測(cè)試矢量。這類(lèi)測(cè)試矢量的缺點(diǎn)是有時(shí)候工具無(wú)法檢測(cè)所有的故障類(lèi)型。
三、自動(dòng)測(cè)試設(shè)備
與IC測(cè)試有關(guān)的另外一個(gè)重要概念就是自動(dòng)測(cè)試設(shè)備(ATE,Automatic Test Equipment)。使用ATE可以自動(dòng)完成測(cè)試矢量的輸入和核對(duì)輸出的工作,大大提高了測(cè)試速度,但是目前其仍舊面臨不小的挑戰(zhàn)。
該挑戰(zhàn)主要來(lái)自于兩方面。首先是不同芯片對(duì)于同種測(cè)試設(shè)備的需求。在一般情況下,4~5個(gè)芯片需要用同一個(gè)測(cè)試設(shè)備進(jìn)行測(cè)試,測(cè)試時(shí)間只有一批一批的安排。每種設(shè)計(jì)都有自己的測(cè)試矢量和測(cè)試環(huán)境,因此改變被測(cè)芯片時(shí),需要重新設(shè)置測(cè)試設(shè)備和更新測(cè)試矢量。其次是巨大測(cè)試矢量對(duì)于測(cè)試設(shè)備本身性能的要求。目前,百萬(wàn)門(mén)級(jí)SoC的測(cè)試矢量規(guī)模非常大,可能達(dá)到數(shù)萬(wàn)個(gè),把這些測(cè)試矢量讀進(jìn)測(cè)試設(shè)備并初始化需要相當(dāng)長(zhǎng)的時(shí)間。解決這一方法的途徑是開(kāi)發(fā)具有大容量矢量存儲(chǔ)器的測(cè)試矢量加載器。例如,Advantest的W4322的高速測(cè)試矢量加載服務(wù)器,可以提供72 GB的存儲(chǔ)空間,可以縮短80%的矢量裝載時(shí)間。
四、可測(cè)性的概念
可測(cè)性是現(xiàn)在經(jīng)常使用,卻經(jīng)常被理解錯(cuò)的一個(gè)詞。其框架式的定義是,可測(cè)性是在一定的時(shí)間和財(cái)力限制下,生成、評(píng)價(jià)、運(yùn)行測(cè)試,以滿(mǎn)足一系列的測(cè)試對(duì)象(例如,故障覆蓋率、測(cè)試時(shí)間等)。對(duì)一些具體的集成電路來(lái)說(shuō),對(duì)該定義的解釋由于使用工具和已有的技術(shù)水平的不同而不同。目前工業(yè)界使用的一個(gè)范圍比較窄的定義是,可測(cè)性是能夠測(cè)試檢驗(yàn)出存在于設(shè)計(jì)產(chǎn)品中的各種制造缺陷的程度。
1.可測(cè)性設(shè)計(jì)(DFT,Design For Testability)
所謂可測(cè)性設(shè)計(jì)是指設(shè)計(jì)人員在設(shè)計(jì)系統(tǒng)和電路的同時(shí),考慮到測(cè)試的要求,通過(guò)增加一定的硬件開(kāi)銷(xiāo),獲得最大可測(cè)性的設(shè)計(jì)過(guò)程。簡(jiǎn)單來(lái)說(shuō),可測(cè)性設(shè)計(jì)即是指為了達(dá)到故障檢測(cè)目的所做的輔助性設(shè)計(jì),這種設(shè)計(jì)為基于故障模型的結(jié)構(gòu)測(cè)試服務(wù),用來(lái)檢測(cè)生產(chǎn)故障。目前,主要的可測(cè)性設(shè)計(jì)方法有掃描通路測(cè)試、內(nèi)建自測(cè)試和邊界掃描測(cè)試等。
為什么說(shuō)DFT是必需的?讓我們先來(lái)看看傳統(tǒng)的測(cè)試方法,如圖2所示。在傳統(tǒng)測(cè)試方法中,設(shè)計(jì)人員的職責(zé)止于驗(yàn)證階段,一旦設(shè)計(jì)人員認(rèn)定其設(shè)計(jì)滿(mǎn)足包括時(shí)序、功耗、面積在內(nèi)的各項(xiàng)指標(biāo),其工作即告結(jié)束。此后,測(cè)試人員接過(guò)接力棒,開(kāi)始開(kāi)發(fā)合適的測(cè)試程序和足夠的測(cè)試圖形,用來(lái)查找出隱藏的設(shè)計(jì)和制造錯(cuò)誤。但是,在其工作期間很少了解設(shè)計(jì)人員的設(shè)計(jì)意圖,因此,測(cè)試人員必須將大量寶貴的時(shí)間花在梳理設(shè)計(jì)細(xì)節(jié)上,而且測(cè)試開(kāi)發(fā)人員必須等到測(cè)試程序和測(cè)試模型經(jīng)過(guò)驗(yàn)證和調(diào)試之后才能知道早先的努力是否有效。沿用傳統(tǒng)測(cè)試方法,測(cè)試人員別無(wú)選擇,只能等待流片完成和允許他使用昂貴的自動(dòng)測(cè)試設(shè)備(ATE)。這就導(dǎo)致了整個(gè)設(shè)計(jì)-測(cè)試過(guò)程周期拉大,充斥著延誤和效率低下的溝通。
圖2 傳統(tǒng)的設(shè)計(jì)測(cè)試流程
自20世紀(jì)80年代以來(lái),規(guī)模較大的半導(dǎo)體生產(chǎn)商就開(kāi)始利用DFT技術(shù)來(lái)改善測(cè)試成本,降低測(cè)試復(fù)雜度。如今,前端設(shè)計(jì)人員都能清楚地認(rèn)識(shí)到只要使用恰當(dāng)?shù)墓ぞ吆头椒?,在設(shè)計(jì)的最初階段就對(duì)測(cè)試略加考慮,會(huì)在將來(lái)受益匪淺,見(jiàn)圖3。DFT技術(shù)與現(xiàn)代的EDA/ATE技術(shù)緊密地聯(lián)系在一起,大幅降低了測(cè)試對(duì)ATE資源的要求,便于集成電路產(chǎn)品的質(zhì)量控制,提高產(chǎn)品的可制造性,降低產(chǎn)品的測(cè)試成本,縮短產(chǎn)品的制造周期。
圖3 現(xiàn)在的設(shè)計(jì)測(cè)試流程
2.可控制性和可觀測(cè)性
可控制性(Controllability)和可觀測(cè)性(Observability)是可測(cè)性設(shè)計(jì)中的重要概念。可控制性表示通過(guò)電路初始化輸入端控制電路內(nèi)部節(jié)點(diǎn)邏輯狀態(tài)的難易程度,如果電路內(nèi)部節(jié)點(diǎn)可被驅(qū)動(dòng)為任何值,則稱(chēng)該節(jié)點(diǎn)是可控的??捎^察性表示通過(guò)控制輸入變量,將電路內(nèi)部節(jié)點(diǎn)的故障傳播到輸出端以便對(duì)其進(jìn)行觀察的難易程度。如果電路內(nèi)部節(jié)點(diǎn)的取值可以傳播到電路的輸出端,且其值是預(yù)知的,則稱(chēng)該節(jié)點(diǎn)是可觀察的。
所謂集成電路的可控制性可以理解為將該信號(hào)設(shè)置成0或者1的難度。如圖4所示,對(duì)于與門(mén)G3輸入端口A的固定為邏輯值1的故障,可以通過(guò)在外圍端口B、C、D、E施加矢量0011來(lái)檢測(cè),因此認(rèn)為該節(jié)點(diǎn)是可控制的。
圖4 可控制性舉例
可觀測(cè)性是指觀察這個(gè)信號(hào)所產(chǎn)生故障的難度。如圖5所示,G3輸入端口A的固定為邏輯值1的故障可以通過(guò)施加0向量而傳輸?shù)酵鈬丝赮,因此認(rèn)為其為可觀測(cè)的。
圖5 可觀測(cè)性舉例
五、可測(cè)性設(shè)計(jì)的優(yōu)勢(shì)和不足
人們通常會(huì)問(wèn),為什么要在原有的電路中加入額外的測(cè)試結(jié)構(gòu)?這個(gè)問(wèn)題確實(shí)很難回答,DFT的經(jīng)濟(jì)性涉及包括設(shè)計(jì)、測(cè)試、制造、市場(chǎng)銷(xiāo)售等各個(gè)方面。不同的人衡量的標(biāo)準(zhǔn)也不一樣,設(shè)計(jì)工程師通常覺(jué)得DFT附加的電路會(huì)影響芯片的性能,而測(cè)試工程師會(huì)認(rèn)為有效的可測(cè)性設(shè)計(jì)將大大提高故障覆蓋率。表1列出了可測(cè)性設(shè)計(jì)的一些優(yōu)勢(shì)和不足。
表1 DFT的優(yōu)勢(shì)和不足
來(lái)自工業(yè)界的許多實(shí)例證明,加入額外的測(cè)試結(jié)構(gòu)確實(shí)有助于芯片成品率的提高,從而大幅降低了芯片的制造成本。當(dāng)然為了彌補(bǔ)一些缺陷,DFT技術(shù)本身也在不斷地改進(jìn)和發(fā)展。
六、常用的可測(cè)性設(shè)計(jì)
1.內(nèi)部掃描測(cè)試設(shè)計(jì)
內(nèi)部掃描設(shè)計(jì)的主要任務(wù)就是要增加內(nèi)部狀態(tài)的可控制性和可觀察性。對(duì)于集成電路而言,其做法是將內(nèi)部時(shí)序存儲(chǔ)邏輯單元連接成移位寄存器形式,從而可將輸入信號(hào)通過(guò)移位輸入內(nèi)部存儲(chǔ)邏輯單元以滿(mǎn)足可控制性要求。同樣,以移位方式將內(nèi)部狀態(tài)輸出以滿(mǎn)足可觀察性要求。采用掃描路徑設(shè)計(jì)的芯片在測(cè)試方式下工作時(shí),內(nèi)部構(gòu)成一個(gè)長(zhǎng)的移位寄存器。
如圖6所示,掃描測(cè)試工具首先把普通的觸發(fā)器變成了帶掃描使能端和掃描輸入的觸發(fā)器,然后把這些觸發(fā)器串聯(lián)在一起。當(dāng)scan_enable無(wú)效時(shí),電路可以正常工作,當(dāng)scan_enable有效時(shí),各觸發(fā)器的值將可以從來(lái)自片外的scan_in信號(hào)串行輸入。這樣就可以對(duì)各片內(nèi)寄存器賦值,也可以通過(guò)scan_out得到它們的值。支持掃描測(cè)試設(shè)計(jì)的工具有Synopsys公司的DFT Compiler及Mentor的DFT Advisor。
圖6 掃描測(cè)試電路
2.自動(dòng)測(cè)試矢量生成(ATPG,Automation Test Pattern Generation)
ATPG采用故障模型,通過(guò)分析芯片的結(jié)構(gòu)生成測(cè)試向量,進(jìn)行結(jié)構(gòu)測(cè)試,篩選出不合格的芯片。通常ATPG工具和掃描測(cè)試工具配合使用,可以同時(shí)完成測(cè)試矢量的生成和故障仿真。
首先是故障類(lèi)型的選擇。ATPG可以處理的故障類(lèi)型不僅是阻塞型故障,還有延時(shí)故障和路徑延時(shí)故障等,一旦所有需要檢測(cè)的故障類(lèi)型被列舉,ATPG將對(duì)這些故障進(jìn)行合理的排序,可能是按字母順序、按層次結(jié)構(gòu)或者隨機(jī)排序。
在確定了故障類(lèi)型后,ATPG將決定如何對(duì)這類(lèi)故障進(jìn)行檢測(cè),并且需要考慮施加激勵(lì)向量測(cè)試點(diǎn),需要計(jì)算所有會(huì)影響目標(biāo)節(jié)點(diǎn)的可控制點(diǎn)。此類(lèi)算法包括D算法等。
最后是尋找傳輸路徑,可以說(shuō)這是向量生成中最困難的,需要花很多時(shí)間去尋找故障的觀測(cè)點(diǎn)的傳播。因?yàn)橥ǔR粋€(gè)故障擁有很多的可觀測(cè)點(diǎn),一些工具一般會(huì)找到最近的那一個(gè)。不同目標(biāo)節(jié)點(diǎn)的傳輸路徑可能會(huì)造成重疊和沖突,當(dāng)然這在掃描結(jié)構(gòu)中是不會(huì)出現(xiàn)的。支持產(chǎn)生ATPG的工具有Mentor的Fastscan和Synopsys的TetraMAX。
3.存儲(chǔ)器內(nèi)建自測(cè)試(Memory Built-in-self-test)
內(nèi)建自測(cè)試是當(dāng)前廣泛應(yīng)用的存儲(chǔ)器可測(cè)性設(shè)計(jì)方法,它的基本思想是電路自己生成測(cè)試向量,而不是要求外部施加測(cè)試向量,它依靠自身來(lái)決定所得到的測(cè)試結(jié)果是否正確。因此,內(nèi)建自測(cè)必須附加額外的電路,包括向量生成器、BIST控制器和響應(yīng)分析器,如圖7所示。BIST的方法可以用于RAM、ROM和Flash等存儲(chǔ)設(shè)備,主要用于RAM中。大量關(guān)于存儲(chǔ)器的測(cè)試算法都是基于故障模型的。常用的算法有棋盤(pán)式圖形算法和March算法。
圖7 BIST的基本結(jié)構(gòu)
支持BIST的工具有Mentor的mBISTArchitect和Synopsys的SoCBIST。
4.邊界掃描測(cè)試(Boundary Scan)
邊界掃描的原理是在核心邏輯電路的輸入和輸出端口都增加一個(gè)寄存器,通過(guò)將這些I/O上的寄存器連接起來(lái),可以將數(shù)據(jù)串行輸入被測(cè)單元,并且從相應(yīng)端口串行讀出。在這個(gè)過(guò)程中,可以實(shí)現(xiàn)芯片級(jí)、板級(jí)和系統(tǒng)級(jí)的測(cè)試。其中,最主要的功能是進(jìn)行板級(jí)芯片的互連測(cè)試,如圖8所示。
圖8 利用邊界掃描進(jìn)行板級(jí)測(cè)試
邊界掃描是歐美一些大公司聯(lián)合成立的一個(gè)組織——聯(lián)合測(cè)試行動(dòng)小組(JTAG)為了解決印制電路板(PCB)上芯片與芯片之間互連測(cè)試而提出的一種解決方案。由于該方案的合理性,它于1990年被IEEE采納而成為一個(gè)標(biāo)準(zhǔn),即IEEE 1149.1。該標(biāo)準(zhǔn)規(guī)定了邊界掃描的測(cè)試端口、測(cè)試結(jié)構(gòu)和操作指令,其結(jié)構(gòu)如圖9所示。該結(jié)構(gòu)主要包括TAP控制器和寄存器組。其中寄存器組包括邊界掃描寄存器,旁路寄存器,標(biāo)志寄存器和指令寄存器。主要端口為T(mén)CK、TMS、TDI、TDO,另外還有一個(gè)用戶(hù)可選擇的端口TRST。
支持邊界掃描的自動(dòng)設(shè)計(jì)工具有Mentor的BSD Architect和Synopsys的BSD Compiler。
圖9 IEEE 1149.1結(jié)構(gòu)