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