梁華國 曲金星 潘宇琦 湯宇新 易茂祥 魯迎春
(合肥工業(yè)大學微電子學院 合肥 230009)
隨著集成電路技術的發(fā)展,晶體管的尺寸不斷地減小,其制造成本也在減少。但是每個晶體管的測試成本并沒有隨著工藝的進步而降低。隨著電路板變得越來越復雜,測試成本占總制造成本的很大一部分,有時甚至占主導地位[1]。同時芯片集成度越高,后期的測試過程越復雜,測試成本也就越高,因此在芯片制造的前期,比如:晶圓允收測試(Wafer Acceptance Test, WAT)、晶圓探針測試(Circuit Probe, CP)等階段找到存在故障晶??梢怨?jié)省整個測試流程的測試成本。在晶圓中相鄰位置的晶粒制造工藝相似,所以已知的合格晶粒(Known Good Die, KGD)信息可以作為識別故障晶粒的重要判斷依據(jù)。在晶圓適應性測試過程中,為了降低測試成本需要對晶粒的測試項數(shù)量或者順序進行調(diào)整,刪減測試項數(shù)量可能會導致故障晶粒產(chǎn)生測試逃逸。晶圓適應性測試是指通過對歷史測試數(shù)據(jù)的分析,對后續(xù)的測試條件、測試內(nèi)容等進行優(yōu)化,在保證測試質量的同時,又可以降低測試成本[2]。在晶圓測試過程中,測試項指的是要測試的電氣指標,如電阻、電容、電流等,而參數(shù)則是這些測試項的具體數(shù)值,如靜態(tài)漏電流、反向擊穿電壓和輸出電壓等參數(shù)。在晶圓制造過程中,即使制造工藝完全相同,由于生產(chǎn)設備和環(huán)境等不可控因素會導致同一批次之間不同的晶圓或者同一塊晶圓中相鄰位置的晶粒出現(xiàn)參數(shù)差異的情況[3]。因此如何從鄰域參數(shù)差異方面權衡測試成本和測試逃逸成為集成電路測試領域的重大挑戰(zhàn)。
為了應對這一挑戰(zhàn),一部分學者對晶粒測試項相關性進行研究。該研究主要是分析測試項之間存在的線性或非線性關系,通過統(tǒng)計或機器學習的方法對原測試內(nèi)容進行優(yōu)化??▋?nèi)基梅隆大學相關學者使用貪心算法從原有測試項中進行循環(huán)迭代,找到高故障覆蓋率的測試集[4]。但是這種方法可能會導致過擬合現(xiàn)象、模型泛化能力下降、產(chǎn)生過多的測試逃逸和產(chǎn)量損失。杜克大學相關學者提出使用貝葉斯網(wǎng)絡模型,基于測試項之間的互信息和馬爾科夫毯的原理選擇測試子集,以此來降低測試成本[5,6]。東華大學相關學者通過分析使用最大相關性最小冗余項算法分析測試項和測試結果之間的關系,并通過深度信念網(wǎng)絡模型準確率選擇最終的測試集[7]。該類研究往往為了降低測試成本,會對測試內(nèi)容進行刪減,從而導致晶粒出現(xiàn)測試逃逸。
另一部分學者對相鄰位置晶粒進行研究。這類研究主要是分析待測晶粒與鄰域晶粒存在的差異性以此找到存在測試逃逸的晶粒。加州大學相關學者提出使用晶粒測量值和鄰域晶粒的參數(shù)均值得出的殘差向量作為待測晶粒的特征、鄰域晶粒的參數(shù)值中位數(shù)作為新的特征,使用雙邊濾波的非線性濾波方法檢測存在可能測試逃逸的晶粒[8–10]。奈良科學技術大學相關學者對晶圓中不同位置晶粒之間的變化進行研究,提出使用高斯線性模型分析相鄰晶粒之間差異性,分析可能存在測試逃逸的晶粒[11]。新加坡國際大學相關學者分析批次間以及批次內(nèi)晶圓由工藝波動導致的參數(shù)差異,提出使用高斯混合模型對晶粒進行分類[3]。西安電子科技大學相關學者提出相鄰晶粒的參數(shù)偏差和鄰域參數(shù)波動結合的方法找到可能存在測試逃逸的晶粒[12]。相鄰位置晶粒的研究更多是根據(jù)相鄰晶粒的測試結果或者參數(shù)值分析晶粒是否存在測試逃逸。
綜上所述,為了降低晶圓的測試成本,本文提出有效測試集篩選的測試方法。為了提高測試質量,本文提出鄰域參數(shù)波動程度的指標,對有鄰域參數(shù)波動的晶粒采用鄰域參數(shù)差異放大化的處理方法,將合格晶粒和故障晶粒之間存在的微小差異放大化,從而提高機器學習模型的分類準確率,減少測試逃逸晶粒的數(shù)量。無鄰域參數(shù)波動的晶粒采用機器學習對有效測試集建模的方法,降低測試逃逸和產(chǎn)量損失的風險。本文方法的平均測試項減少率為40.13%,測試逃逸率為0.009 1%。
在晶圓生產(chǎn)制造過程中,無法避免工藝波動的產(chǎn)生,從而導致了晶圓中參數(shù)之間出現(xiàn)不同程度的波動情況[3]。通常相關學者會對晶圓整體參數(shù)波動進行分析,找到晶圓中存在晶粒參數(shù)波動異常的大致位置,以此找到存在測試逃逸的晶粒,并對晶圓制造過程進行優(yōu)化和改進。無論是同一塊晶圓或者同一個批次,相同參數(shù)的測量值也有變化。如圖1所示為工藝波動導致3個批次的某一參數(shù)均值對比和批次內(nèi)3塊晶圓參數(shù)均值對比。從圖中可以看出,3個批次間的參數(shù)均值是不同的,在批次內(nèi)部不同晶圓的參數(shù)均值也是不一樣的。鄰域參數(shù)表示待測晶粒相鄰位置晶粒的參數(shù)。全局參數(shù)波動的分析往往會掩蓋鄰域參數(shù)波動的存在,無法利用其鄰域參數(shù)之間的微小差異對晶粒進行分析,從而導致了待測晶??赡軙霈F(xiàn)測試逃逸的風險。
鄰域參數(shù)波動是基于晶圓中相鄰位置晶粒的空間相關性在參數(shù)方面的表現(xiàn)形式。如圖2所示,鄰域參數(shù)波動表示在相鄰位置范圍內(nèi)晶粒的參數(shù)呈現(xiàn)出波動的程度。通過分析參數(shù)波動可以掌握晶粒質量變化規(guī)律,并依據(jù)晶粒不同鄰域參數(shù)波動程度使用不同的預測模型,可以減少晶粒產(chǎn)生測試逃逸的風險。
圖2 鄰域參數(shù)波動圖
參數(shù)差異性放大化是將晶粒原有參數(shù)值轉換為差異大的特征值來表示。原有參數(shù)值之間的差異性很小,有時無法準確地識別出合格晶粒和故障晶粒之間的不同,容易在測試過程中產(chǎn)生測試逃逸和產(chǎn)量損失。對于存在鄰域參數(shù)波動的晶粒,存在不同的波動情況和鄰域參數(shù)之間的差異性。如果使用統(tǒng)計學的方法對鄰域參數(shù)波動進行異常波動篩選,會導致晶粒出現(xiàn)嚴重的測試逃逸和產(chǎn)量損失。比如:合格晶粒鄰域參數(shù)波動很大會被誤判故障晶粒;故障晶粒鄰域參數(shù)波動很小,會被誤判為合格晶粒。因此需要結合鄰域參數(shù)之間存在的微小差異對晶粒進行建模,而機器學習對于這種數(shù)據(jù)之間存在微小的差異無法進行準確的建模,所以對鄰域參數(shù)進行差異放大化處理,則可以有效解決這種問題。
待測晶粒參數(shù)與鄰域參數(shù)之間的差異性可以通過殘差向量進行表示,通過計算待測晶粒的測量值和鄰域晶粒參數(shù)的均值之間的差值,并將其作為晶粒的特征進行建模,可以有效找到存在測試逃逸的晶粒[8]。但是這種計算方法準確度容易被鄰域晶粒參數(shù)中存在的異常值所影響,而中位數(shù)既可以表示鄰域晶粒參數(shù)的分布特征,又可以避免鄰域參數(shù)中異常值對于量化過程的影響。
質量預測模型主要是使用歷史晶圓的晶粒參數(shù)信息或者坐標信息和測試結果使用機器學習訓練出的預測模型[13,14]。本文方法中既使用了歷史晶粒的測試項信息訓練的特征參數(shù)質量預測模型,又使用了其空間坐標信息訓練空間波動質量預測模型。如圖3所示為使用歷史晶粒進行隨機森林建模的過程。本文采用隨機森林算法對晶粒集進行自舉采樣并對每個樣本集選取不同的有效測試項進行建模,從而避免模型過擬合,且每個子模型之間并行進行,模型泛化能力強。特征參數(shù)質量預測模型是針對沒有鄰域參數(shù)波動的晶粒訓練的模型。將歷史測試數(shù)據(jù)中的有效測試集作為特征,測試結果作為標簽,使用隨機森林訓練模型??臻g波動質量預測模型是針對有鄰域參數(shù)波動的晶粒訓練的模型。將經(jīng)過鄰域參數(shù)差異放大化的有效測試集作為新特征,測試結果作為標簽,使用隨機森林訓練模型。
圖3 隨機森林建模過程
本節(jié)將詳細描述所提出的低測試逃逸率的晶圓級適應性方法建模流程。如圖4所示,該方法主要分為3個部分:(1)測試集選擇;(2)鄰域參數(shù)波動性分析;(3)鄰域參數(shù)差異放大化。通過分析歷史測試數(shù)據(jù)集所包含的測試項信息和位置信息,對晶粒進行分類建模。
圖4 基于低測試逃逸的晶圓級適應性測試方法建模流程
在第(1)部分中,根據(jù)批次級晶圓歷史測試數(shù)據(jù)進行有效測試集篩選,選擇可以檢測故障晶粒的測試集。這些有效測試集在鄰域空間內(nèi)存在有無參數(shù)波動兩種情況。因此需要在(2)中對鄰域參數(shù)波動進行分析,并將待測晶粒進行分類。對于存在鄰域參數(shù)波動的晶粒,其參數(shù)之間存在大量的信息,需要在(3)中對其進行鄰域參數(shù)差異放大化處理,然后使用新特征建模進行質量預測;而對于無鄰域參數(shù)波動的晶粒,通過特征參數(shù)模型對其進行質量預測。
(1)數(shù)據(jù)預處理
由于晶圓歷史測試數(shù)據(jù)存在大量缺失值,對于鄰域參數(shù)波動分析時和訓練模型時會產(chǎn)生不良影響,需要對于歷史測試數(shù)據(jù)的缺失值進行處理。在ATE測試晶圓過程中,遵循“首敗即停”的原則,即在某一個測試項檢測到故障晶粒時,后續(xù)的測試內(nèi)容就不需要進行,所以導致測試數(shù)據(jù)表中會出現(xiàn)大量的缺失值。對于這些缺失值,采用同一測試項下無故障晶粒的參數(shù)值的中位數(shù)進行填充,從而可以讓歷史數(shù)據(jù)集完整以便進行下一步的鄰域參數(shù)波動分析和鄰域參數(shù)差異放大化處理。
(2)有效測試集篩選
有效測試集篩選的目的是獲得一個可以降低測試成本同時減少測試逃逸風險的測試集。有效測試集將用于下一步的鄰域參數(shù)波動性分析和鄰域參數(shù)差異放大化處理。本文有效測試集選擇主要是通過對歷史晶圓測試數(shù)據(jù)進行分析,選擇出可以檢測到歷史晶圓中所有故障晶粒的有效測試集。然后使用該測試集對待測晶圓進行測試。
如圖5所示,對于批次歷史晶圓測試數(shù)據(jù),需要檢測每塊歷史晶圓其測試項ti測試到故障晶粒的數(shù)量λ是否為零,若是λ?=0 , 則證明該測試項ti為有效測試集的子集,反之則說明該測試項ti不能檢測到故障晶粒。當測試項ti循環(huán)迭代至所有歷史晶圓時,可以得到最終的有效測試集。本文中的測試項對應為參數(shù)測試中某一具體測試內(nèi)容(如:漏電流,反向擊穿電壓等等),且每個測試項并不針對某一具體故障類型。
圖5 有效測試集篩選流程
本文提出了以變異系數(shù)(Coefficient of Variation, CV)來表示晶圓中存在的鄰域參數(shù)波動的情況,變異系數(shù)越小,表示其鄰域參數(shù)波動越小,參數(shù)趨于穩(wěn)定;反之,變異系數(shù)越大,表明其鄰域參數(shù)波動越大,待測晶粒的參數(shù)越有可能異常。如圖6所示,本文中鄰域參數(shù)的計算都是以3×3的窗口進行的,關于晶??臻g相關性研究的鄰域窗口的選擇是基于文獻[15]中關于晶圓空間特征與質量之間的關系。CV是鄰域晶粒參數(shù)的標準差 SDij和均值μij的比值,它既消除了不同參數(shù)之間量綱的差異,又代表待測晶粒鄰域參數(shù)的波動程度。其中鄰域參數(shù)均值μij為
圖6 晶粒t 的鄰域晶粒分布
其中,Pab表示的是鄰域晶粒的參數(shù)值,i-1≤a ≤i+1,j-1≤b ≤j+1,n表示鄰域晶粒的個數(shù)。i表示晶粒在晶圓中X軸的坐標,j表示晶粒在晶圓中Y軸的坐標。鄰域參數(shù)標準差S Dij為
最后CV的計算方法為
其中,C Vij表示的是待測晶粒t的鄰域參數(shù)波動大小,需要注意的是,在計算過程中鄰域晶粒的參數(shù)值可能會出現(xiàn)異常值的情況,為了保證鄰域參數(shù)波動量化的穩(wěn)定性,需要在計算過程中去掉最大值最小值。鄰域參數(shù)波動性分析中變異系數(shù)和標準差對比的優(yōu)勢在于,當多個鄰域晶粒參數(shù)的標準差一樣而平均值不一樣時,標準差無法準確地反映出不同晶粒測試參數(shù)的波動程度,而變異系數(shù)可以準確反映其波動程度。而且在比較兩組量綱不同或均值不同的數(shù)據(jù)時更精確,且不需要參考測試數(shù)據(jù)的均值。
通過對于晶粒鄰域參數(shù)波動的分析,可以將晶粒分為有無鄰域參數(shù)波動的晶粒:有鄰域參數(shù)波動晶粒,這類晶粒和鄰域晶粒之間存在參數(shù)差異性,需要通過殘差向量和鄰域參數(shù)差異放大化將其特征進行放大分析;無鄰域參數(shù)波動晶粒,其制造工藝相同,可以通過特征參數(shù)模型對其進行質量預測。
本文提出了以空間相關性強度(SCS)表示待測晶粒的鄰域空間相關性的強度,如果待測晶粒參數(shù)和鄰域晶粒參數(shù)之間差異性越大,晶粒的鄰域空間相關性越弱,該晶粒是測試逃逸可能性就越大。在晶圓的生產(chǎn)制造過程中,缺陷會導致重要電壓、電流等參數(shù)“階躍”,而不是像正常晶粒參數(shù)那樣逐漸變化。這種突然的變化會表現(xiàn)為負尖峰(晶粒參數(shù)低于鄰域)或正尖峰(晶粒參數(shù)高于鄰域)等異?,F(xiàn)象[16]。空間相關性強度可以將晶粒中存在這種異?,F(xiàn)象進行量化,并將存在測試逃逸的晶粒其特征放大化以便機器學習可以更加準確地獲取存在測試逃逸晶粒的特征。其中“其特征”指的是測試逃逸的晶粒和合格晶粒參數(shù)間存在的測試項響應上的微小差異。
殘差向量R Vij的計算方法由式(4)表示
其中,Pij表示為待測晶粒的參數(shù)值,Mij表示為鄰域晶粒參數(shù)的中位數(shù)。這里采用以中位數(shù)表示領域參數(shù)的數(shù)據(jù)分布特點,而不是采用均值。因為實際生產(chǎn)過程中工藝波動對晶粒產(chǎn)生的影響,每個晶粒周圍無法避免異常值的出現(xiàn)。若采用均值的方法,異常值會造成鄰域參數(shù)計算偏差過大,而中位數(shù)既可以減少異常值對于鄰域參數(shù)數(shù)據(jù)分布的影響,又可以表示鄰域參數(shù)的數(shù)據(jù)分布特點。
空間相關性強度(SCS)的計算方法由式(5)表示
其中,R Vij表示為待測晶粒參數(shù)值與鄰域晶粒參數(shù)中位數(shù)的差值,C Vij表示的是待測晶粒鄰域晶粒參數(shù)波動的大小。
通過鄰域參數(shù)波動分析,以CV的值為分類標準可以將歷史晶圓中和待測晶圓中的晶粒分為有無鄰域參數(shù)波動的晶粒。有鄰域參數(shù)波動晶粒通過鄰域參數(shù)差異放大化的過程將其參數(shù)之間的差異放大化后,以空間相關性強度S CSij替代原有的晶粒參數(shù)值Pij,將歷史晶圓的測試結果作為標簽,空間相關性強度S CSij作為每個晶粒的特征,使用隨機森林建立空間波動模型。
對于無鄰域參數(shù)波動晶粒,以歷史晶圓中無鄰域參數(shù)波動(CV=0)晶粒的參數(shù)值Pij作為該類晶粒的特征,以測試結果為標簽,使用隨機森林建立特征參數(shù)模型。通過該模型可以有效解決空間波動模型分析對于這類晶粒測試逃逸和產(chǎn)量損失過高的問題。
在測試過程中,待測晶圓通過鄰域參數(shù)波動分析,將里面的晶粒分為有無鄰域參數(shù)波動的晶粒,有鄰域參數(shù)波動晶粒使用空間波動模型對其進行測試得到測試結果Result1;無鄰域參數(shù)波動晶粒使用特征參數(shù)模型進行測試得到測試結果Result2。
本次實驗運行環(huán)境為Intel i7-7 700 CPU, 16 GB運行內(nèi)存,Windows 10系統(tǒng)。實驗所用仿真平臺為python3.8,主要用到的庫為Numpy庫、Pandas庫和Scikit-learn庫。實驗數(shù)據(jù)選取了來自實際工業(yè)生產(chǎn)過程中3個不同批次的模擬芯片測試結果,每個批次12塊晶圓,總計1 485 228塊晶粒。本次實驗中隨機抽樣的每個批次的5塊晶圓數(shù)據(jù)進行建模,剩余的7塊晶圓數(shù)據(jù)用于驗證模型。實驗數(shù)據(jù)具體信息如表1所示。
表1 實驗數(shù)據(jù)分布
本文以變異系數(shù)(CV)來衡量晶粒的鄰域參數(shù)波動大小。如圖7所示為批次1中某塊晶圓部分晶粒的鄰域參數(shù)波動圖。從圖中可以看出,相鄰位置晶粒參數(shù)之間的差異性很小,使用鄰域參數(shù)波動更能反映出晶粒之間不同。有鄰域參數(shù)波動晶粒鄰域參數(shù)波動大小不同,再結合測量值和鄰域晶粒參數(shù)中位數(shù)的差值,可以將其作為晶粒的新的特征,這類特征將更好地區(qū)分合格晶粒和故障晶粒之間的不同。無鄰域參數(shù)波動晶粒的特點是鄰域晶粒參數(shù)穩(wěn)定,但是因為不是全集測試,無法保證未測試的參數(shù)是否影響其最終的預測結果。如果使用鄰域晶粒故障率(Bad Neighbor Ratio, BNR)等空間相關性[17]去判定,會導致合格晶粒被判定為故障晶粒,故障晶粒被判定為合格晶粒。通過歷史數(shù)據(jù)中沒有鄰域參數(shù)波動晶粒的參數(shù)和測試結果建模,可以減少測試逃逸和產(chǎn)量損失。
圖7 晶粒鄰域參數(shù)波動
對于有效測試集,相同測試項之間的參數(shù)差異性不同,其里面隱藏著很多有效的信息。對于每個批次中有鄰域參數(shù)波動晶粒使用鄰域參數(shù)差異放大化前后實驗結果對比,如圖8所示,在鄰域參數(shù)差異放大化前晶粒參數(shù)值之間的差異性很小,無法區(qū)分合格晶粒和故障晶粒的不同,而在鄰域參數(shù)差異放大化后,晶粒參數(shù)值之間的差異性明顯變大,合格晶粒和故障晶粒之間的特征變得更加明顯,更容易找到存在測試逃逸的晶粒。
圖8 參數(shù)差異放大前后數(shù)值對比
如圖9所示為批次1中7塊晶圓鄰域參數(shù)差異放大化前后建模的測試逃逸晶粒數(shù)量對比和測試逃逸減少率。從圖中可以看出,在每塊晶圓上進行鄰域參數(shù)差異放大化后,存在測試逃逸的晶粒數(shù)量都明顯少于鄰域參數(shù)差異放大化前建模的數(shù)量。經(jīng)過鄰域參數(shù)差異放大化處理之后,存在測試逃逸的晶粒參數(shù)特征被明顯放大了,這樣更能捕捉到合格晶粒和故障晶粒之間的不同差異。
圖9 參數(shù)差異放大前后建模測試逃逸數(shù)量對比
如圖10所示為鄰域參數(shù)差異放大化前后建模的產(chǎn)量損失數(shù)量對比和產(chǎn)量損失減少率。從圖中可以看出,在每塊晶圓上進行鄰域參數(shù)差異放大化后,存在產(chǎn)量損失的晶粒數(shù)量都明顯少于鄰域參數(shù)差異放大化前建模的數(shù)量。因此本文方案在減少晶粒測試逃逸的數(shù)量,同時并沒有增加其產(chǎn)量損失的數(shù)量。
圖10 參數(shù)差異放大前后建模產(chǎn)量損失數(shù)量對比
本次實驗與2020年提出的過濾式和封裝式相結合的測試方法[7](方法1)和2022年提出的位置相關性篩選方法[12](方法2)進行比較,實驗主要比較了測試項減少率(TIRR)、測試逃逸率(TER)、產(chǎn)量損失率(YLR)3個指標。測試項減少率表示與標準測試(標準測試指的是使用原測試計劃中所有的測試項)相比節(jié)省測試項的比例。該指標的計算公式為
其中,N表示的是晶圓中待測晶粒的數(shù)量,TS表示有效測試集的測試項數(shù)量,TA表示測試全集中測試項的數(shù)量。TIRR的大小只與有效測試集篩選中測試項的數(shù)量有關,而與晶圓中晶粒數(shù)量無關。
測試逃逸率表示故障晶粒被預測為合格晶粒的數(shù)量占待測晶圓中總晶粒數(shù)量的比例,其計算公式為
其中,NE表 示測試逃逸晶粒的數(shù)量,N表示待測晶圓中晶粒的數(shù)量。測試逃逸率越低表示測試完成的晶圓中故障晶粒數(shù)量越少,但并不能保證測試質量越高,測試質量與產(chǎn)量損失率也有關。
產(chǎn)量損失率表示合格晶粒被預測為故障晶粒的數(shù)量占待測晶圓中晶粒數(shù)量的比例,其計算公式為
其中,NL表示產(chǎn)量損失晶粒的數(shù)量,N表示待測晶圓中晶粒的數(shù)量。
從表2可以看出,本文方法和方法1相比TIRR雖然增加了11.28%,但是測試逃逸率比方法1降低了84.04%,產(chǎn)量損失率降低了59.35%。本文方法和方法2相比TIRR降低了11.94%,測試逃逸率比方法2降低了51.39%,產(chǎn)量損失率降低了50.13%。因此本文提出方法在降低晶圓測試成本同時保持較低的測試逃逸率。在實際的晶圓制造過程,無法避免工藝波動的產(chǎn)生,從而也無法避免參數(shù)波動的發(fā)生,因此保證了本文所提方法的適用性。
表2 對比實驗結果(%)
針對集成電路越來越復雜,測試成本日益增多,測試質量要求越來越高的問題。本文提出了一種低測試逃逸的晶圓級適應性測試方法用于降低晶圓測試成本,減少晶粒測試逃逸的數(shù)量。通過有效測試集選擇可以降低待測晶圓測試成本。同時對其進行鄰域參數(shù)波動分析區(qū)分有無鄰域參數(shù)波動晶粒,對有鄰域參數(shù)波動晶粒進行鄰域參數(shù)放大化處理,放大合格晶粒和故障晶粒之間參數(shù)差異性,提高模型的準確率,減少測試逃逸和產(chǎn)量損失。對無鄰域參數(shù)波動晶粒采用有效測試集建模方法保證其測試質量。本文方法的平均測試項減少率為40.13%,測試逃逸率為0.009 1%。