提高DFT設(shè)計(jì)測(cè)試覆蓋率的有效方法
在DFT設(shè)計(jì)中,測(cè)試覆蓋率及其測(cè)試效率是最重要的指標(biāo)。一方面,理想的設(shè)計(jì)目標(biāo)當(dāng)然希望測(cè)試能夠遍及整個(gè)芯片的邏輯,盡管理想值100%是不容易達(dá)到的;另一方面,測(cè)試效率亦非常重要,設(shè)計(jì)工程師總希望用最少的測(cè)試向量達(dá)到預(yù)期的測(cè)試覆蓋率,來(lái)降低芯片的測(cè)試成本。
當(dāng)然,DFT設(shè)計(jì)必須保證正常的邏輯功能為前提。不幸的是,功能設(shè)計(jì)總會(huì)忽略一些潛在的問(wèn)題,導(dǎo)致最終的測(cè)試覆蓋率往往不盡如人意。這種情況下,設(shè)計(jì)中有一些邏輯無(wú)論如何都不能被觀測(cè)到或控制到,因此即使測(cè)試矢量的數(shù)量有很大的增幅,也不能使結(jié)果改善很多。
在實(shí)際的DFT設(shè)計(jì)中,存在對(duì)測(cè)試覆蓋率有較大損害的兩種情況:一種存在于數(shù)字邏輯-模擬邏輯(包括存儲(chǔ)器)輸入-輸出處之陰影部分,另一種存在于特定的多芯片封裝情況下未綁出的輸入-輸出焊墊處。二者的共同點(diǎn)在于:測(cè)試模式下部分邏輯的不可控或不可觀測(cè)。
設(shè)計(jì)背景
本文探討的設(shè)計(jì)目標(biāo)是一個(gè)來(lái)自意法半導(dǎo)體的數(shù)字音頻信號(hào)處理芯片,要求對(duì)數(shù)字功能邏輯進(jìn)行掃描鏈測(cè)試,覆蓋率達(dá)到98%以上。其功能邏輯中存在一些模擬模塊,如鎖相環(huán)、模數(shù)轉(zhuǎn)換器和一些存儲(chǔ)器單元等。更為重要的是,該芯片需要基于不同的應(yīng)用系統(tǒng)需要,不但需要單獨(dú)封裝形式,也需要多芯片共享同一封裝。這樣,在某些多芯片封裝中,就有部分焊墊未引出或接地。而測(cè)試的設(shè)計(jì)初衷是產(chǎn)生一組測(cè)試向量適用于所有封裝形,就要求考慮最嚴(yán)格的封裝下可用的管腳資源。
DFT設(shè)計(jì)有兩個(gè)基本原則:可控制性和可觀測(cè)性,即DFT設(shè)計(jì)要求所有輸入邏輯是可控的和輸出邏輯是可測(cè)的。顯然,考慮到本設(shè)計(jì)中的模擬模塊接口和封裝形式的資源有限性,不可控邏輯和不可觀測(cè)邏輯對(duì)不小于98%的目標(biāo)測(cè)試覆蓋率給出了很大的挑戰(zhàn)。
如圖1所示,在某種芯片封裝情況下,除信號(hào)test_si和test_so外,其余焊墊并未綁出(接地或懸空),從而造成信號(hào)port_A、port_B、port_C和port_D的不可控,以及信號(hào)port_Z1、port_Z2和port_Z3的不可觀測(cè)(懸空)。導(dǎo)致很多相關(guān)邏輯不能正常參于DFT測(cè)試,測(cè)試覆蓋率受到較大的損害。
圖1 封裝造成的測(cè)試邏輯不可控和不可測(cè)
DFT設(shè)計(jì)的可控制性和可觀測(cè)性是通過(guò)原始的管腳來(lái)實(shí)現(xiàn)的,事實(shí)上功能設(shè)計(jì)不可能專(zhuān)門(mén)為DFT保留足夠多的管腳。如圖2所示的數(shù)字-模擬接口,由于PLL模塊的存在,顯然信號(hào)net_1、net_2和net_3上得到的測(cè)試結(jié)果不可直接觀測(cè)(不可測(cè)),組合邏輯1相應(yīng)的測(cè)試覆蓋率降低了;同時(shí),由于PLL模塊的存在,信號(hào)net_4、net_5和的net_6不能直接賦值(不可控),導(dǎo)致組合邏輯2的部分邏輯不能正常參于DFT測(cè)試,相應(yīng)的測(cè)試覆蓋率受到較大的損害??偟膩?lái)說(shuō),芯片的測(cè)試覆蓋率降低了。
圖2 模擬模塊造成的測(cè)試邏輯不可控和不可測(cè)
解決方案
針對(duì)設(shè)計(jì)中的上述情況,可以通過(guò)適當(dāng)添加測(cè)試點(diǎn)的方式,使原來(lái)不可控和不可測(cè)的邏輯變化反映到掃描鏈上,使之變得間接可控和可測(cè),以期提高整個(gè)芯片的測(cè)試覆蓋率和測(cè)試效率。
對(duì)于圖1所示的某些封裝中,不可控和不可測(cè)的未綁出(接地或懸空)管腳,圖3給出了相應(yīng)的定制的解決方案。
圖3 添加控制點(diǎn)和觀測(cè)點(diǎn)提高測(cè)試覆蓋率(封裝部分管腳未綁出情況)
對(duì)于輸入管腳,添加一個(gè)帶有選擇端的寄存器。當(dāng)控制選擇信號(hào)為“0”時(shí),電路處于正常工作狀態(tài),功能邏輯從輸入端接收到正常的輸入數(shù)值。當(dāng)選擇控制為“1”時(shí),電路處于測(cè)試狀態(tài)。在移位過(guò)程中,這些點(diǎn)由測(cè)試鏈預(yù)置相應(yīng)的值;在捕獲過(guò)程中,將之接地防止不定態(tài)在設(shè)計(jì)中的傳播。
在輸出管腳處,添加少量異或門(mén)和選擇器件。當(dāng)控制選擇信號(hào)為“0”時(shí),電路處于正常工作狀態(tài),輸出管腳正常輸出功能信號(hào)。當(dāng)選擇控制為“1”時(shí),電路處于測(cè)試狀態(tài),用異或門(mén)將未能綁出的管腳的變化引出,相當(dāng)于這些管腳也可以被觀測(cè)了。
針對(duì)圖2所示的數(shù)字-模擬接口,部分模擬模塊輸入信號(hào)通過(guò)組合邏輯給出,但在測(cè)試時(shí)并沒(méi)有邏輯將這些“終點(diǎn)”的信號(hào)影響引出觀察,因此這些點(diǎn)是不可觀測(cè)的。這與DFT設(shè)計(jì)可觀測(cè)要求(需管腳直接輸出)不相符,可能造成測(cè)試覆蓋率的損害。同時(shí),部分模擬模塊輸出信號(hào)控制相應(yīng)的組合邏輯,但在測(cè)試中,這些點(diǎn)是“浮空”(不可控制)的。這與DFT設(shè)計(jì)可控要求(需管腳直接輸入)不相符,造成測(cè)試覆蓋率的降低。圖4給出了類(lèi)似前者的定制解決方案,其實(shí)質(zhì)也是把這些不可控和不可測(cè)點(diǎn)連到測(cè)試鏈上去,讓這些邏輯間接可觀測(cè)或可控制以改善測(cè)試結(jié)果。
圖4添加控制點(diǎn)和觀測(cè)點(diǎn)提高測(cè)試覆蓋率(數(shù)字-模擬接口情況)
如圖所示,在模擬模塊輸入信號(hào)處添加少量異或門(mén)和選擇器件,并將它們連到掃描鏈上去。當(dāng)控制選擇信號(hào)為“0”時(shí),電路處于正常工作狀態(tài),模擬模塊的輸入管腳正常接收功能信號(hào)。當(dāng)選擇控制為“1”時(shí),電路處于測(cè)試狀態(tài),用異或門(mén)或者其他器件將未能觀測(cè)管腳的變化引出,相當(dāng)于這些管腳間接可以被觀測(cè)了。
如圖所示,在模擬模塊輸出信號(hào)處添加一個(gè)帶有選擇端的寄存器。當(dāng)控制選擇信號(hào)為“0”時(shí),電路處于正常工作狀態(tài),模擬模塊信號(hào)正常輸出到后續(xù)的功能邏輯。當(dāng)選擇控制為“1”時(shí),電路處于測(cè)試狀態(tài):在移位過(guò)程中,這些點(diǎn)由測(cè)試鏈預(yù)置相應(yīng)的值;在捕獲過(guò)程中,將之接地防止不定態(tài)在設(shè)計(jì)中的傳播。
對(duì)于其他的模擬模塊如ADC, 存儲(chǔ)器等,采用類(lèi)似的方法可改善整個(gè)芯片的測(cè)試覆蓋率和測(cè)試效率,達(dá)到目標(biāo)測(cè)試效果。
結(jié)語(yǔ)
在前面提及的實(shí)際項(xiàng)目DFT設(shè)計(jì)中,功能邏輯部分含有萬(wàn)余寄存器。為提高測(cè)試覆蓋率,添加僅12個(gè)寄存器及很少部分組合邏輯作為測(cè)試點(diǎn)后,即可將測(cè)試覆蓋率從原來(lái)的95%提高到98.3%。由此看來(lái),這種方法是很有效率的。并且可根據(jù)項(xiàng)目實(shí)際需要,添加更多點(diǎn)以期達(dá)到更高覆蓋率,理論上測(cè)試覆蓋率可接近100%。
推薦RTL功能設(shè)計(jì)時(shí)就能考慮這種測(cè)試結(jié)構(gòu)。這樣做設(shè)計(jì)工程師之間能夠了解彼此的設(shè)計(jì)需求,功能測(cè)試結(jié)構(gòu)明晰,在DFT設(shè)計(jì)過(guò)程中省去很多麻煩。如果發(fā)現(xiàn)這類(lèi)問(wèn)題在RTL完成之后,一些DFT工具也提供用戶(hù)自定義的測(cè)試點(diǎn)插入,但是要注意測(cè)試控制信號(hào)選取一定要與需要的測(cè)試模式匹配,否則無(wú)法完成相應(yīng)的測(cè)試期望。這種方法的關(guān)鍵是了解在哪里加測(cè)試點(diǎn)更為有效。
評(píng)論