一、故障建模的基本概念
故障建模是生產(chǎn)測試的基礎(chǔ),在介紹故障建模前需要先理清集成電路中幾個(gè)容易混淆的概念:缺陷、故障、誤差和漏洞。
缺陷是指在集成電路制造過程中,在硅片上所產(chǎn)生的物理異常,如某些器件多余或被遺漏了。故障是指由于缺陷所表現(xiàn)出的不同于正常功能的現(xiàn)象,如電路的邏輯功能固定為1或0。誤差是指由于故障而造成的系統(tǒng)功能的偏差和錯(cuò)誤。漏洞是指由于一些設(shè)計(jì)問題而造成的功能錯(cuò)誤,也就是常說的bug。表1列出了一些制造缺陷和相應(yīng)的故障表現(xiàn)形式。
表1 制造缺陷和故障表現(xiàn)形式
在實(shí)際的芯片中,氧化層破裂、晶體管的寄生效應(yīng)、硅表面不平整及電離子遷移等都可能造成一定程度的制造缺陷,并最終反映為芯片的功能故障。
故障建模是指以數(shù)學(xué)模型來模擬芯片制造過程中的物理缺陷,便于研究故障對電路或系統(tǒng)造成的影響,診斷故障的位置。為什么要進(jìn)行故障建模呢?這是因?yàn)?,電路中可能存在的物理缺陷是多種多樣的,并且由于某些物理缺陷對于電路功能的影響過于復(fù)雜,不能被充分地理解,分析的難度很大。而故障化模型中的一個(gè)邏輯故障可以描述多種物理缺陷的行為,從而回避了對物理缺陷分析的復(fù)雜度。
二、常見故障模型
1.數(shù)字邏輯單元中的故障模型
在數(shù)字邏輯中常用的故障模型如下。
(1)固定型故障(SAF,Stuck At Fault)
這是在集成電路測試中使用最早和最普遍的故障模型,它假設(shè)電路或系統(tǒng)中某個(gè)信號永久地固定為邏輯0或者邏輯1,簡記為SA0(Stuck-At-0)和SA1(Stuck-At-1),可以用來表征多種不同的物理缺陷。如圖1所示,對于器件U0來說,SA1模擬了輸入端口A的固定在邏輯1的故障,對于U1來說,SA0模擬了輸出端口Y固定在邏輯0的故障。
圖1 固定型故障
對于圖2所示的組合電路,共包含2×(Npins+Nports)=2×(11+5)=32個(gè)固定型故障。
圖2 固定型故障舉例
下面的例子說明了故障合并的含義。對于圖3所示的傳輸電路,端口A的SA0故障和端口Z的SA0故障等效,同樣的端口A的SA1故障和端口Z的SA1故障等效,因此在考慮測試矢量集的時(shí)候可以合并故障,只需要從子故障集合{A:SA0,Z:SA0}和{A:SA1,Z:SA1}中各選擇一個(gè)故障類型。
圖3 故障的合并
(2)晶體管固定開/短路故障(Stuck-open/Stuck-short)
在數(shù)字電路中,晶體管被認(rèn)為是理想的開關(guān)元件,一般包含兩種故障模型——固定開路故障和固定短路故障,分別如圖4和圖5所示。在檢測固定開路故障的時(shí)候,需要兩個(gè)測試矢量,第一測試矢量10用于初始化,可測試端口A的SA0故障,第二個(gè)測試矢量00用來測試端口A的SA1故障。對于固定短路故障的時(shí)候需要測量輸出端口的靜態(tài)電流。
圖4 晶體管固定開路故障
圖5 晶體管固定短路故障
(3)橋接故障(Bridging Faults)
橋接故障指節(jié)點(diǎn)間電路的短路故障,通常假象為電阻很小的通路,即只考慮低阻的橋接故障。橋接故障通常分為3類:邏輯電路與邏輯電路之間的橋接故障、節(jié)點(diǎn)間的無反饋橋接故障和節(jié)點(diǎn)間的反饋橋接故障。
(4)跳變延遲故障(TF,Transition Delay Fault)
跳變延遲故障見圖6,是指電路無法在規(guī)定時(shí)間內(nèi)由0跳變到1或從1跳變到0的故障。在電路上經(jīng)過一段時(shí)間的傳輸后,跳變延遲故障表現(xiàn)為固定型故障。
圖6 跳變延遲故障
(5)傳輸延遲故障(Path Delay Fault)
傳輸延遲故障不同于跳變延遲故障,是指信號在特定路徑上的傳輸延遲,通常與測試該路徑相關(guān)AC參數(shù)聯(lián)系在一起,尤其是關(guān)鍵路徑。
2.存儲器的故障模型
存儲器的故障模型和數(shù)字邏輯中的故障模型有著顯著的不同,雖然固定、橋接及晶體管固定開/短路故障模型對于數(shù)字邏輯有很好的模擬效果,但是用這些故障類型來確定存儲器功能的正確性卻是不充分的。除單元固定、橋接故障外,存儲器故障還包括耦合、數(shù)據(jù)保留、臨近圖形敏感故障。
(1)單元固定故障(SAF,Stuck-At Fault)
單元固定故障指的是存儲器單元固定在0或1。為了檢測這類故障需要對每個(gè)存儲單元和傳輸線進(jìn)行讀/寫0和1的操作。
(2)狀態(tài)跳變故障(TF,Transition Delay Fault)
狀態(tài)跳變故障是固定故障的特殊類型,發(fā)生在對存儲單元進(jìn)行寫操作的時(shí)候,不發(fā)生正常的跳變。這里需要指出的是跳變故障和固定故障不可相互替代,因?yàn)樘児收峡赡茉诎l(fā)生耦合故障時(shí)發(fā)生跳變,但是固定故障永遠(yuǎn)不可能改變。為了檢測此類故障必須對每個(gè)單元進(jìn)行0-1和1-0的讀/寫操作,并且要在寫入相反值后立刻讀出當(dāng)前值。
(3)單元耦合故障(CF,Coupling Fault)
這些故障主要針對RAM,發(fā)生在一個(gè)單元進(jìn)行寫操作時(shí),這個(gè)單元發(fā)生跳變的時(shí)候,會影響到另一個(gè)單元的內(nèi)容。單元耦合可能是反相類型(CFin,inversion,單元內(nèi)容反相)、等冪類型(CFid,idempotent,僅當(dāng)單元有特定數(shù)據(jù)時(shí)單元的內(nèi)容改變)或者簡單的狀態(tài)耦合(CFst,state,僅當(dāng)其他位置有特定的數(shù)據(jù)時(shí)單元內(nèi)容改變)。為了測試CF故障,要在對一個(gè)連接單元進(jìn)行奇數(shù)次跳變后,對所有單元進(jìn)行讀操作,以避免可能造成的耦合故障。
(4)臨近圖形敏感故障(NPSF,Neighborhood Pattern Sensitive Faults)
這是一個(gè)特殊的狀態(tài)耦合故障,見圖7。此類故障意味著在特定存儲單元周圍的其他存儲單元出現(xiàn)一些特定數(shù)據(jù)時(shí),該單元會受到影響。
圖7 臨近圖形敏感故障
(5)地址譯碼故障(ADF,Address Decode Fault)該故障主要有4類:
? 對于給定的地址,不存在相對應(yīng)的存儲單元;
? 對于一個(gè)存儲單元,沒有相對應(yīng)的物理地址;
? 對于給定的地址,可以訪問多個(gè)固定的存儲單元;
? 對于一個(gè)存儲單元,有多個(gè)地址可以訪問。
(6)數(shù)據(jù)保留故障(DF,Data Retention Fault)
數(shù)據(jù)保留故障是指存儲單元不能在規(guī)定時(shí)間內(nèi)有效保持其數(shù)據(jù)值而出現(xiàn)的故障。這是一類動態(tài)的故障,對于SRAM來說相當(dāng)重要,可以模擬DRAM數(shù)據(jù)刷新中數(shù)據(jù)固定和SRAM靜態(tài)數(shù)據(jù)丟失等故障,有時(shí)對可編程的ROM和Flash存儲器也十分重要。
三、ATPG基本原理
在抽象出有效故障模型的基礎(chǔ)上,就可以開發(fā)各種自動測試產(chǎn)生(ATPG,Automatic Test Pattern Generation)向量了。目前,常用的ATPG算法有偽隨機(jī)算法和AD-Hoc算法,對于組合邏輯來說還有D算法、PODEM算法和FAN算法。
利用軟件程序可以實(shí)現(xiàn)ATPG算法,達(dá)到測試向量自動生成的目的。這里的測試向量是指為了使特定故障能夠在原始輸出端被觀察到,而在被測電路原始輸入端所施加的激勵(lì)。通過軟件程序,可以自動完成以下兩項(xiàng)工作:
? 基于某種故障類型,確定當(dāng)前測試矢量能夠覆蓋多少物理缺陷;
? 對于特定的抽象電路,工具能夠自動選擇能夠匹配的故障模型。
這里涉及故障覆蓋率的概念,故障覆蓋率表示測試矢量集對于故障的覆蓋程度:
故障覆蓋率=被檢測到的故障數(shù)目/被測電路的故障總數(shù)
可見,ATPG的優(yōu)點(diǎn)是明顯的。首先,它是一個(gè)自動的過程,所以它可以減少向量生成的時(shí)間,并且生成的向量可以用故障覆蓋率的標(biāo)準(zhǔn)來衡量好壞;其次,ATPG是根據(jù)各類故障模型來生成向量的,因此一旦在測試機(jī)上發(fā)現(xiàn)錯(cuò)誤,可以直接根據(jù)故障模型來追蹤錯(cuò)誤,能夠很好地定位和診斷;另外,ATPG生成向量的有效性非常高,這里的有效性是指每個(gè)時(shí)鐘周期所增長的故障覆蓋率,節(jié)約了時(shí)鐘周期也就是節(jié)約了測試程序,最終表現(xiàn)出是測試成本的節(jié)約。
另一種觀點(diǎn)不利于ATPG的發(fā)展,有些人認(rèn)為如果過于依賴ATPG,就會造成前端的設(shè)計(jì)必須與ATPG的設(shè)計(jì)要求相匹配,可能造成的后果是破壞原有的設(shè)計(jì)流程。還有支持問題,成功的ATPG需要包括庫和EDA軟件的支持。
四、ATPG的工作原理
ATPG采用故障模型,通過分析芯片的結(jié)構(gòu)生成測試向量,進(jìn)行結(jié)構(gòu)測試,篩選出不合格的芯片。其中,最常用的故障模型就是固定故障模型。這在前面的存儲器測試中提到過,下面就以這個(gè)模型來說明ATPG的工作原理。
該故障假設(shè)芯片的一個(gè)節(jié)點(diǎn)存在缺陷,假設(shè)SA0表示節(jié)點(diǎn)恒為低電平,相對地,SA1表示節(jié)點(diǎn)恒為高電平,即使控制目標(biāo)節(jié)點(diǎn)的別的信號線都正常。例如,對于一個(gè)與門,只要將輸入都變?yōu)?,就可以建立Stuck-At-0故障模型,如果輸出為0則說明存在該故障。通過在芯片內(nèi)建立這個(gè)故障模型,可以在芯片的頂層輸入端口加上激勵(lì),在芯片的輸出端口獲取實(shí)際響應(yīng),根據(jù)希望響應(yīng)與實(shí)際響應(yīng)是否相同,來判斷芯片是否存在制造缺陷。為了實(shí)現(xiàn)這樣的目標(biāo),必須要求目標(biāo)節(jié)點(diǎn)輸入是可控制的,節(jié)點(diǎn)的輸出是可觀察的,并且目標(biāo)節(jié)點(diǎn)不受別的節(jié)點(diǎn)影響,掃描鏈的結(jié)構(gòu)為此提供了一切。對于ATPG軟件來說,它的工作包括以下步驟。
(1)故障類型的選擇
ATPG可以處理的故障類型不僅僅是阻塞型故障,還有延時(shí)故障和路徑延時(shí)故障等,一旦所有需要檢測的故障類型被列舉,ATPG將對這些故障進(jìn)行合理的排序,可能是按字母順序、按層次結(jié)構(gòu)排序,或者隨機(jī)排序。
(2)檢測故障
在確定了故障類型后,ATPG將決定如何對這類故障進(jìn)行檢測,并且需要考慮施加激勵(lì)向量的測試點(diǎn),需要計(jì)算所有會影響目標(biāo)節(jié)點(diǎn)的可控制點(diǎn)。
(3)檢測故障傳輸路徑
尋找傳輸路徑可以說是向量生成中最困難的,需要花很多時(shí)間去尋找故障的觀測點(diǎn)的傳播。因?yàn)橥ǔR粋€(gè)故障擁有很多的可觀測點(diǎn),一些工具一般會找到最近的那一個(gè)。不同目標(biāo)節(jié)點(diǎn)的傳輸路徑可能會造成重疊和沖突,當(dāng)然這在掃描結(jié)構(gòu)中是不會出現(xiàn)的。
五、ATPG工具的使用步驟
目前,市場上的ATPG工具已經(jīng)可以支持千萬門級組合邏輯和全掃描電路的測試矢量生成。最有名的就是Synopsys的TetraMAX和Mentor的Fastscan。
例如Synopsys的TetraMAX,它支持全掃描設(shè)計(jì)和局部掃描設(shè)計(jì),支持多種掃描風(fēng)格,支持IEEE 1149.1標(biāo)準(zhǔn)。設(shè)計(jì)步驟如下。
① 將含掃描結(jié)構(gòu)的門級網(wǎng)表輸入到ATPG工具。
② 輸入庫文件。必須與門級網(wǎng)表相對應(yīng)并且能被ATPG工具識別。
③ 建立ATPG模型。輸入庫文件后,ATPG工具將根據(jù)庫文件和網(wǎng)表文件建立模型。
④ 根據(jù)STIL文件做DRC檢測。STIL文件是標(biāo)準(zhǔn)測試接口文件,包含掃描結(jié)構(gòu)的一系列信息和信號的約束。
⑤ 生成向量。這里需要選擇建立哪種故障模型。
⑥ 壓縮向量。這一步驟可以節(jié)約將來芯片測試時(shí)候的工作站資源和測試時(shí)間。
⑦ 轉(zhuǎn)換ATPG模式的向量為ATE所需要格式的測試向量。
⑧ 輸出測試向量和故障列表。
其中,故障列表為將來測試診斷用,可以發(fā)現(xiàn)芯片的制造缺陷,生成向量以后需要進(jìn)行實(shí)際的電路仿真,確定故障覆蓋率滿足要求。
責(zé)任編輯:gt
-
芯片
+關(guān)注
關(guān)注
455文章
50818瀏覽量
423722 -
集成電路
+關(guān)注
關(guān)注
5388文章
11547瀏覽量
361860
發(fā)布評論請先 登錄
相關(guān)推薦
評論