企業通常依賴過時的統計製程管制 (SPC) 軟體來監控生產流程。儘管業界有許多其他 SPC 程式在使用,但企業往往仍然堅持使用那些使數據分析和呈現對用戶來說十分困難的舊程式。
本海報介紹了一種創建SPC圖表的方法,用於展示半導體行業常用的大批量晶圓爐的薄膜厚度數據。這些大批量爐的薄膜厚度結果受多種因素影響。在JMP Graph Builder中呈現這些資訊具有以下幾個優勢:
大家好,我叫柯迪‧桑德奎斯特,是恩智浦半導體(NXP)德州奧斯汀分公司的製程工程師。幾年前我開始接觸JMP腳本,這對我來說既是個挑戰,也是我日常工作中發現的實用工具。今天我帶給大家的是…我用JMP製作的一個用於統計製程控制(SPC)的介面。
任何從事製造業的人,我相信都熟悉SPC是什麼。我用過好幾種不同的SPC系統。有些比其他的更好,但它們都存在一些…缺陷,或缺乏JMP所具備的互動性或快速切換資訊的功能。
今天我要介紹的是如何製作SPC圖表並利用JMP軟體,從而加快工程決策速度並促進資訊共享。我們目前在使用的一些SPC程式存在一些問題,例如我們公司(NXP)使用的那套比較老舊的SPC系統。這些系統我在公司裡用。
關於這些設備,簡單說明一下。我們使用的是大型垂直爐,一次最多可容納 150 片生產晶圓,也就是 6 批。每批 25 片晶圓,爐內設有多個區域。我們在不同的區域使用測試晶圓監測器,以便追蹤整個爐內每個區域的晶圓厚度,而不僅僅是追蹤一批晶圓的厚度。
首先,我使用的SPC程式一次只能顯示一個爐子的數據,而最好是將所有爐子的數據顯示在同一張圖表上,這樣才能發現是否有異常情況。此外,它不會顯示各個區域的厚度,而是顯示所有區域的平均值。如果某個區域有特殊問題,僅僅依賴這個SPC程式很難找出問題所在。
除此之外,分析其他一些常見問題因素也十分困難。例如,批次中包含多少個生產批次,以及不同的裝載量(例如,25 片晶圓和 150 片晶圓的裝載量不同,都會導致不同的厚度測量結果)。測量厚度的計量設備可能有認證缺陷,而計量設備出現偏差的情況並不少見。如果我們只是依賴統計過程控制 (SPC) 系統,有時很難發現這些資訊。
我使用 JMP 腳本創建了自己的自訂儀表板,可以將所有爐子的資訊顯示在同一張圖表上。我可以按爐子位置顯示訊息,例如爐子頂部、爐子底部,並查看爐子特定位置是否存在異常情況。
我之前提到的另一點是,對於許多常見因素,我可以查看是否有其他影響因素。例如,可能是計量測量數據,也可能是負載尺寸。我甚至可以將晶圓供應商資訊等其他資訊添加到此表中,查看是否更換了晶圓供應商,以及是否出現了導致厚度變化的情況。我所說的這些功能,正是JMP更易於使用、功能更強大的原因,它比市面上一些常見的SPC程式更勝一籌。
我的設置方式是為了方便快速找到所需的工藝配方。如果您不熟悉配方,我們有很多不同類型的工藝,每個工藝都有不同的厚度目標。我希望能夠快速找到所需的工藝配方。所以我設計了一個彈出窗口,只需輸入配方名稱,然後點擊“確定”即可。
這樣做之後,它會取得該名稱,並將其與該製程的某個檔案進行比對。它會篩選出該製程配方名稱對應的厚度限制和目標值。我有一個原始厚度文件。我們的SPC系統中包含多個配方的厚度資料。因此,再次填寫數據,篩選出我們所需的配方,它會在圖表產生器中繪製出所有數據。
我再次愛上了圖表產生器,因為它互動性很強。你會注意到這兩個圖表的比較:上面這張圖只有一個爐子,而下面這張圖有多個爐子,我可以顯示所有不同區域的數據。實際上,我設定這個功能是為了進行一些計算,我不僅想要平均厚度,還想要標準差和每個區域的範圍。所以我也可以在這方面進行自訂設定。
如果我想按一些常用因素(例如計量設備或負載大小)進行篩選,我可以快速篩選。我也可以按單一爐子進行篩選。是的,它的優勢當然在於更高的可自訂性,更靈活地製作SPC圖表,您可以快速分析導致偏差的不同因素,然後截圖,發送給其他人,開始尋找解決方案;或者,如果某個區域出現偏差,需要進行一些調整,我也可以這樣做。
這個軟體唯一的缺點是我必須手動提取厚度資料並將其儲存為 CSV 或文字檔案。理想情況下,我希望直接連接到 NXP 的資料庫,但我沒有相應的權限。所以這不是 JMP 的問題,而是我公司沒有這個權限。
更詳細地講解一下腳本,我知道逐字逐句地講解冗長的腳本可能有點枯燥,但我會盡量簡化,只專注於關鍵點及其工作原理。前面已經提到過,我需要提取一個原始厚度文件,其中包含了多個工藝配方的所有厚度數據。我也會保存另一個文件,其中包含SPC的限制和目標值。我使用JMP的模態函數來彈出一個視窗。在這個彈出視窗中,我輸入所需的配方名稱,它就會篩選出原始厚度檔案中的資訊以及相應的限制值。
它將限值和目標值儲存為變量,這些變數稍後將用於在圖形產生器中建立線條、目標值和限值,以及增量和大小。這正體現了 JMP 腳本的靈活性,因為我們擁有的這些資料檔案中,並非所有行都相同。每個批次都會有所不同。有時,我們的測試晶圓監視器會監控兩片晶圓,它們分別在頂部和底部區域運作。有時會監控三片晶圓。有時會監控五片晶圓。因此,一行可能填充了兩列,另一行填充了三列,還有一行填充了五列,每次都不一樣。
透過一系列 if 語句(我不會詳細介紹),我可以根據哪些列已填寫,確定每個單元格引用的具體區域,從而將其分配到正確的位置,這樣就不會出現錯誤或混淆,也不會在圖表構建器中顯示時將其放在錯誤的區域。
關於在圖形生成器中結束腳本這一點,我再補充一點:這些變數被放入圖形生成器中以生成線條,我可以自訂圖形生成器來以我想要的方式顯示資訊。我工作中遇到的一個解決問題的簡單例子是,在我們的主SPC圖表中,某個工藝配方的某個爐子的標準偏差超標。請記住,我們的SPC系統實際上並未顯示任何詳細資訊。
利用我的 JMP 腳本,我能夠將所有不同區域的資訊分開開來,並在底部區域發現了雙峰分佈。也就是說,這裡出現了兩個相同的問題。然後,我篩選出這台單獨的爐子,並根據一些共同因素進行篩選。在這個例子中,共同因素是裝載量。這次裝載了六批次,也就是滿倉,這意味著爐子裝滿了 150 片生產晶圓。因此,我們能夠精確地縮小問題範圍,找出問題的根源。
問題出在爐子的最底部,當時正進行著滿載的生產,溫度範圍出現了峰值。然後我把這個峰值和我們計量系統提供的座標數據結合起來,繪製出了晶圓分佈圖,甚至可以深入分析是晶圓的哪個部分、爐子的哪個區域出了問題。
透過與我們的設備技術人員分享這些信息,我們將能夠準確定位爐子的問題所在,更換部件,並使爐子恢復到良好穩定的運行狀態。這只是一個簡單的例子,感謝您的時間。希望您有所收穫,期待在會議上與您再次相見。