施文龍,林 偉
(福州大學(xué)福建省微電子集成電路重點(diǎn)實(shí)驗(yàn)室,福州350002)
集成電路已經(jīng)發(fā)展到了系統(tǒng)芯片SOC(System On Chip)時(shí)代,芯片集成度越來越高,結(jié)構(gòu)越來越復(fù)雜,對集成電路測試又是芯片設(shè)計(jì)不可或缺的重要環(huán)節(jié),測試的可行性、有效性以及測試功耗,極大地影響了芯片設(shè)計(jì)的成本與上市時(shí)間。嵌入式存儲器是芯片設(shè)計(jì)的關(guān)鍵部分,是系統(tǒng)芯片中集成密度最高的器件,同時(shí)又是對制造過程中存在的缺陷最敏感的器件之一。各種類型的存儲器在當(dāng)前的SOC 設(shè)計(jì)中已經(jīng)被廣泛應(yīng)用,占用了SOC 系統(tǒng)大部分面積[1]。針對SOC 芯片設(shè)計(jì)中存在著的嵌入式存儲器模塊,傳統(tǒng)的固定故障模型不適合用于對存儲器模塊進(jìn)行測試。因此,對于使用自動測試圖形生成ATPG(Automatic Test Pattern Generation)工具用固定故障模型進(jìn)行測試時(shí),通常把嵌入式存儲器模塊當(dāng)作“黑盒子(black box)”處理[2]。在黑盒子模型中,所有的輸入都被禁止,所有的輸出都被置為未知狀態(tài)X,于是,存儲器模塊的輸入引腳前與輸出引腳后就存在著兩塊不可觀察或不可控制的組合邏輯,這部分不可測試的組合邏輯就稱為存儲器陰影邏輯。由于存儲器模塊被簡化成只含有輸入引腳與輸出引腳的無功能黑盒子,ATPG 工具產(chǎn)生的測試圖形無法順利通過該模塊,陰影邏輯的故障不能被傳遞,所以無法被檢測出來,ATPG 工具只能完成對掃描鏈路中的寄存器單元以及不包含陰影邏輯的外圍組合邏輯電路進(jìn)行控制和觀察測試。當(dāng)芯片中集成了更多、更大的嵌入式存儲器模塊,大量的不可測試的陰影邏輯會在很大程度上影響測試覆蓋率,造成故障覆蓋率低于設(shè)計(jì)要求。因此,陰影邏輯的影響不能忽視。
覆蓋率的提高主要需要提高改善設(shè)計(jì)的測試可觀測性和測試可控制性[3]。可測性設(shè)計(jì)DFT(Design For Test)就是為了確保復(fù)雜設(shè)計(jì)能夠得到全面徹底地測試而提出的。其思想是在設(shè)計(jì)的初期就考慮芯片的測試問題,通過增加測試邏輯完善設(shè)計(jì),把難測或者不可測故障轉(zhuǎn)變?yōu)橐诇y、可測的故障,爭取在芯片設(shè)計(jì)前端就解決棘手的測試問題??蓽y性設(shè)計(jì)技術(shù)有多種結(jié)構(gòu),目前應(yīng)用最廣泛的可以有效提高芯片可測性的實(shí)現(xiàn)方法是基于掃描結(jié)構(gòu)的可測性設(shè)計(jì)。掃描設(shè)計(jì)具有結(jié)構(gòu)簡單、對芯片的面積影響較小、測試覆蓋率高以及可以與EDA 工具緊密結(jié)合等特點(diǎn)[4]。
在集成電路設(shè)計(jì)中都含有大量的時(shí)序電路,時(shí)序電路的測試生成相當(dāng)復(fù)雜,生成的測試圖形非常多,因此測試施加時(shí)間也就相應(yīng)長,而且很難對電路內(nèi)部節(jié)點(diǎn)設(shè)置邏輯值,電路的內(nèi)部狀態(tài)則難以觀察,測試起來非常復(fù)雜。掃描設(shè)計(jì)的提出,為時(shí)序電路的測試提供了可能[5],其基本原理是將電路中的時(shí)序元件替換成具有掃描能力的掃描寄存器,然后將它們連接起來形成掃描鏈,為時(shí)序元件增加了控制點(diǎn)和觀察點(diǎn),從而可以改善電路的可控性和可觀察性[6]。
掃描設(shè)計(jì)的具體實(shí)現(xiàn)方式為:每一個(gè)觸發(fā)器前面都接入一個(gè)兩輸入的多路選擇器,其中一個(gè)輸入接到前一個(gè)觸發(fā)器的輸出,另一個(gè)輸入接到原始設(shè)計(jì)中所接的信號,即把普通寄存器轉(zhuǎn)化為掃描寄存器[7]。這些修改的時(shí)序元件一個(gè)接一個(gè)串在一起形成移位寄存器,所有掃描寄存器的控制線都連接到一起,稱為掃描鏈或掃描路徑[8-9],這些時(shí)序元件連到掃描鏈中就形成掃描可控和掃描可觀察。如圖1 所示,SI 表示掃描輸入,SE 表示掃描使能控制線,CLK 表示時(shí)鐘輸入端口,D 端口表示正常的數(shù)據(jù)輸入端口,第一個(gè)寄存器的輸出Q 接到第二個(gè)掃描寄存器的多路選擇器的輸入,最后一個(gè)寄存器的輸出標(biāo)記為掃描輸出SO,形成掃描鏈路。當(dāng)一個(gè)時(shí)序元件通過串行移入一個(gè)特定的邏輯值(0 或1)可以被設(shè)置成一個(gè)已知狀態(tài),那么這個(gè)時(shí)序元件是掃描可控的,ATPG 工具就把這個(gè)掃描可控元件作為偽原始輸入。當(dāng)一個(gè)時(shí)序元件的狀態(tài)通過串行移出數(shù)據(jù)端口可以被觀察到,那么這個(gè)時(shí)序元件是掃描可觀察的,ATPG 工具就把這個(gè)掃描可觀察元件作為設(shè)計(jì)的偽原始輸出。通過偽原始輸入,掃描路徑能夠?qū)崿F(xiàn)對所有組合模塊的輸入控制;通過偽原始輸出,掃描路徑能夠把所有組合模塊的邏輯值傳遞到輸出可觀察。
圖1 掃描設(shè)計(jì)結(jié)構(gòu)圖
掃描測試分為3 個(gè)步驟,首先是掃描移入(shift in)操作,將設(shè)計(jì)中的時(shí)序元件設(shè)置為期望的目標(biāo)值,這個(gè)過程需要與內(nèi)部最長掃描鏈長度相同的時(shí)鐘數(shù),掃描使能SE=1,電路工作在掃描移位測試狀態(tài)。然后是給電路施加測試向量并捕獲(Capture)響應(yīng),此時(shí)掃描使能SE=0,電路工作在正常的功能狀態(tài)。最后對捕獲的組合邏輯部分的響應(yīng)執(zhí)行掃描移出(Shift out)操作,掃描使能SE=1,電路工作在掃描移位測試狀態(tài)。
掃描設(shè)計(jì)的顯著優(yōu)點(diǎn)就是把設(shè)計(jì)中的普通時(shí)序元件替換為掃描元件,從而把對時(shí)序邏輯電路的測試轉(zhuǎn)變成對組合邏輯電路的測試,使得測試圖形生成變得十分容易,處于掃描路徑上的觸發(fā)器不僅可以串行地移入所需要設(shè)置的電路狀態(tài),也可以把電路狀態(tài)串行地移出去,最后實(shí)現(xiàn)對故障點(diǎn)的可控可觀察。
由于芯片設(shè)計(jì)中的嵌入式存儲器模塊在掃描插入時(shí)將作為黑盒子處理,因此在這些模塊周圍將為出現(xiàn)無法檢測和控制的陰影邏輯,其結(jié)構(gòu)圖如圖2 所示。
圖2 嵌入式存儲器陰影邏輯結(jié)構(gòu)圖
圖3 陰影邏輯測試結(jié)構(gòu)圖
針對設(shè)計(jì)中出現(xiàn)的存儲器陰影邏輯不可測試情況,通過適當(dāng)增加測試點(diǎn)的方式,使原來不可控和不可測的邏輯變化反映到掃描鏈寄存器上,使其變得間接可控和可觀測,從而提高整個(gè)系統(tǒng)芯片的測試覆蓋率。如圖3 所示,在存儲器數(shù)據(jù)和地址引腳周圍構(gòu)造觀察邏輯,觀察邏輯為存儲器輸入引腳周圍的陰影組合邏輯提供了一條通路,使得陰影邏輯的固定故障可以傳遞到觀察點(diǎn)上;在存儲器輸出引腳周圍構(gòu)造控制邏輯電路,控制邏輯為存儲器輸出引腳周圍的陰影邏輯提供了可控信號,使得輸出引腳后的陰影邏輯有了具體邏輯值,不再是原先的X 狀態(tài),從而實(shí)現(xiàn)了故障傳遞。在測試模式下,ATPG 工具很容易就可以把陰影邏輯故障傳輸?shù)綊呙桄溣^測點(diǎn)寄存器上。
在本次設(shè)計(jì)的數(shù)字信息安全芯片中,以ROM模塊為例,該模塊的輸入引腳有CLK,CSB,A[11:0],輸出引腳D[31:0]。其陰影邏輯實(shí)現(xiàn)可測的具體實(shí)現(xiàn)方式:針對該ROM 存儲器輸入引腳前的陰影邏輯,在輸入管腳添加一個(gè)帶有選擇端的寄存器,當(dāng)控制信號TE 為0 時(shí),電路工作在正常邏輯功能狀態(tài)下,功能邏輯傳遞正常的輸入數(shù)值,當(dāng)控制信號TE 為1 時(shí),電路工作在掃描測試模式下,通過在測試鏈預(yù)置相應(yīng)的值進(jìn)行移位操作過程,之后給電路施加激勵向量并實(shí)現(xiàn)捕獲,最后移到掃描輸出端進(jìn)行觀測。在這種方式下,存儲器前的陰影邏輯的故障完全得到測試,ATPG 工具測試報(bào)告如圖4 所示。
圖4 ROM 存儲器前添加觀察寄存器后ATPG 報(bào)告圖
圖4中DS 與DI 分別為Detected by Simulation 和Detected by Implication 的縮寫,表示該點(diǎn)可測試。DS/DS 表示固定故障0 和固定故障1 都可測。
針對該ROM 存儲器輸出引腳后的電路邏輯,使用或門與測試模式信號Testmode 進(jìn)行或操作,當(dāng)測試模式信號Testmode=0 時(shí),電路處在正常功能狀態(tài),當(dāng)測試模式信號Testmode=1 時(shí),電路工作在測試模式下,通過測試信號控制存儲器輸出端,使得原先不可控輸出變?yōu)榭煽兀鐖D5 所示,與ROM 輸出引腳連接的或門后的組合邏輯部分都實(shí)現(xiàn)了可測試。
圖5 ROM 存儲器輸出引腳添加控制邏輯后ATPG 報(bào)告圖
對于芯片設(shè)計(jì)中其它的嵌入式存儲器模塊如SRAM,F(xiàn)LASH 等,采用類似的方法,使用DFT 工具插入測試點(diǎn),在該數(shù)字信息安全芯片設(shè)計(jì)中的所有嵌入式存儲器周圍一共插入了442 個(gè)測試點(diǎn)(如表1 所示)。
表1 DFT 測試點(diǎn)插入報(bào)告
測試覆蓋率(Test Coverage)是反應(yīng)測試圖形質(zhì)量的最有效的手段,其計(jì)算公式為:
故障覆蓋率(Fault Coverage)定義了檢測出的故障占總故障的百分比,其計(jì)算公式為:
測試覆蓋率和故障覆蓋率是測試技術(shù)有效性的重要度量方法,是用來表征測試完整性的重要手段。在該數(shù)字信息安全芯片設(shè)計(jì)中,針對嵌入式存儲器陰影邏輯增加適當(dāng)?shù)挠^察寄存器和控制邏輯后,故障覆蓋率較原先設(shè)計(jì)得到了改善。表2 為修改設(shè)計(jì)前ATPG 工具測試報(bào)告,表3 為修改設(shè)計(jì)后ATPG工具的測試報(bào)告。
表2 設(shè)計(jì)前的ATPG 測試報(bào)告
?
表3 改進(jìn)設(shè)計(jì)后的ATPG 測試報(bào)告
比較后可以看出,該方法使得測試覆蓋率提高了1. 59%,故障覆蓋率提高了1. 55%,達(dá)到了97.18%,芯片的可測性有了很大的提高。設(shè)計(jì)前后芯片的面積如表4 所示,該方法對芯片面積影響甚微,最后測試了全芯片的功耗為137.9013 mW,滿足低功耗要求。
表4 修改設(shè)計(jì)前后芯片面積報(bào)告單位:μm2
本課題介紹了SOC 中嵌入式存儲器陰影邏輯在固定故障測試時(shí)的不利影響,深入分析了基于掃描結(jié)構(gòu)的可測性設(shè)計(jì)原理的測試應(yīng)用,提出了一個(gè)測試陰影邏輯的有效方法,對于降低芯片測試成本,提高產(chǎn)品的可用性指標(biāo),減少產(chǎn)品的維護(hù)費(fèi)用具有重要意義。本設(shè)計(jì)雖是針對一個(gè)具體數(shù)字信息安全芯片的應(yīng)用,但具有普遍性意義。在實(shí)際項(xiàng)目中,測試工程師還需要明晰設(shè)計(jì)的功能測試結(jié)構(gòu),要注意測試控制信號的選擇是否與測試模式相匹配,否則無法完成相應(yīng)的測試期望,對于某些陰影邏輯不能使用DFT 工具自動插入測試點(diǎn)的,要盡早與設(shè)計(jì)工程師進(jìn)行協(xié)商,將測試電路寫入RTL 中。
[1] 雷紹充,邵志標(biāo),梁峰. 超大規(guī)模集成電路測試[M]. 北京:電子工業(yè)出版社,2008.
[2] Synopsys Inc.Synopsys Online Documentation[CP/DK].2010.
[3] Hao Zhang,Wally Li. Design for Test with DFT-MAX Adaptive Scan in Low Power Design[EB/OL]. http://www. synopsys.com.cn/information/snug/2006-collection/design-for-test-with-dft-max-adaptive-scan-in-low-power-design,2006.
[4] 劉文峰.全掃描結(jié)構(gòu)在MCU 設(shè)計(jì)中的應(yīng)用[EB/OL]. 中國科技論文在線,http://www. paper. edu. cn/index. php/default/releasepaper/content/200702-30,2007-02-03.
[5] 成立,王振宇,高平,等.VLSI 電路可測性設(shè)計(jì)技術(shù)及其應(yīng)用綜述[J].半導(dǎo)體技術(shù),2004,29(5):20-34.
[6] 克拉茨.數(shù)字集成電路與嵌入式內(nèi)核系統(tǒng)的測試設(shè)計(jì)[M]. 何虎,馬立偉,等譯.北京:機(jī)械工業(yè)出版社,2006.
[7] 唐玉蘭,于宗光,李天陽,等.一種改進(jìn)的基于掃描的電路設(shè)計(jì)[J].微計(jì)算機(jī)信息,2006,22(2):235-237.
[8] 劉峰,梁勇強(qiáng).大規(guī)模集成電路可測性設(shè)計(jì)及其應(yīng)用策略[J].玉林師范學(xué)院學(xué)報(bào),2005,26(5):29-33.
[9] 陸思安,史崢,嚴(yán)曉浪.面向系統(tǒng)芯片的可測性設(shè)計(jì)[J]. 微電子學(xué),2001,31(6):440-442.