斯科特·魯貝爾scottrubel0,博士,恩智浦半導體資深首席工程師
恩智浦半導體首席工程師托德·雅各布斯博士
詹姆斯·尼爾森 特克斯內爾森 ,軟體工程師、六西格瑪黑帶、獨立承包商
介紹
現代晶片設計具有多個 IP 組件,這些組件具有不同的製程、電壓和溫度敏感度。這些組件都必須在各種操作條件下正常工作,但不同的組件在不同的製程角度會面臨更大的挑戰:有些在高溫下,有些在低壓下,等等。它們的性能可以在製造之前預測,然後在實際矽片可供測試時進行表徵; IP 組件越多,需要的建模/特性工作就越多。
在此基礎上,客戶還有自己的性能要求:一個客戶可能要求非常高的運行速度,而不太關心功耗,而另一個客戶可能對功耗有極其嚴格的要求,可能會完全關閉一些晶片組件。運行單獨的流程或產品版本無法滿足這些要求;相反,每個生產批次都是不同效能等級的混合。優化此組合以滿足不同客戶的需求(垃圾桶) 在整個製造過程窗口內對毛利率有著巨大的影響:給定箱體中過多或過少的物料都會導致產品無法銷售,這本質上是一種產量損失。
蒙特卡羅模擬最適合模擬不同條件下的速度功率分佈和箱體混合:它們可以處理 l涉及大量統計參數(通常為 40 – 60 個,加上協方差矩陣)和箱限(~20-100)。一致的參數提取和文件對於管理這些至關重要,這就是 JMP 腳本的作用所在:它提供統計工具和日誌記錄功能,以確保「第一次正確」的模擬。此外,其 f最佳執行時間(1-5 分鐘/次)和一致的文件允許即時進行多個業務案例比較。
模擬流程
下圖顯示了一系列典型模擬運行的流程流程。我們從預測或實際的效能特徵開始,從中提取描述產品的基礎統計參數;然後我們可以縮放這些參數(尤其是變異數)來評估不同的場景。此時,蒙特卡羅引擎產生速度-功率分佈的模擬「雲」。覆蓋在此之上的是箱體限制(客戶要求)。在限制範圍內對雲量進行數值積分可確定該特定雲的箱體統計分佈。此腳本會在不同的製造條件下自動重複此操作,以確定可接受的料箱組合(無不可銷售的晶片)的製程視窗。此時,我們可能希望考慮不同的場景,在這種情況下,我們可以使用不同的縮放和/或限制重新運行模擬,直到最終達到給定需求組合的流程和限制的最佳組合。

速度功率分佈和分級
下圖顯示了單一 IP 域的典型(模擬)速度與功率關係圖。頻率幾乎總是 log(靜態漏電流 = SIdd)的線性函數,因此它由斜率、截距和 RMSE(雜訊)來描述。 log(SIdd) 本身由平均值和標準差描述。因為我們通常評估標準偏差變化,所以我們將縮放參數作為我們的輸入之一,這意味著雲有三個功率參數,加上每個電壓和溫度的每個頻率測試的三個參數。在下圖中,我們展示了一個樣本箱極限:靜態功率低於 0.32 logA 且高於 1040 MHz(綠色框內)的晶片符合該箱的要求。

我們可以透過調整標稱測試電壓(在客戶規格範圍內)來擴大通過的晶片數量。在較高電壓下,零件運行速度更快,因此較慢的晶片現在可以滿足頻率要求。然而,該部件也消耗更多的靜態和動態功率,並且有一個固定的預算。為了維持在該預算範圍內,固定參考電壓下允許的靜態成分必須較低。下圖中的淺綠色框顯示了在高電壓下通過 bin 要求的附加晶片。對於較低的電壓,情況正好相反;深綠色框顯示在此場景下捕獲的額外骰子。

即使電壓不同,未通過一個檔位的晶片仍可能通過另一個檔位。下圖顯示了捕獲這些異常晶片的兩個附加箱:低速、低功耗箱(藍色)和高速、高功率箱(紅色)。

當然,許多晶片可以通過多項規格;下一個圖顯示了這些重疊區域,其中最深的綠色象限中的晶片通過了綠色規格限制的所有電壓,以及紅色和藍色規格限制。分箱區域由跨電壓的邏輯或以及跨溫度和 IP 域的邏輯與的組合來描述。這些模具可以根據需要將供應從一個箱子轉移到另一個箱子.

有兩種方法可以計算每個箱子中的骰子數。第一個是最大分佈,計算所有可能滿足箱子速度/功率需求的晶片。這是一個重要的供應限制:如果需求超過最大分配量,那麼供應將始終短缺,導致材料無法銷售(產量損失)。對於此度量,重疊區域中的晶片將計入它們通過的每個箱體,因此跨箱體的分佈總和可以超過 100%。
計算骰子的第二種方法是bin mix。在這種方法中,使用者指定每個箱子中骰子的排序順序;一旦骰子通過箱子,它就不再被考慮。因此,由於沒有重複計算,所以箱體混合分佈的總和始終為 100%。這是我們考慮的第二個主要供應限制:它決定了我們是否有足夠的晶片來滿足實際生產的需求。與最大分佈不同,可以透過使用不同的排序順序來改變箱體混合分佈,我們通常會在產品的整個生命週期中評估這些選項。
下表顯示了一組五個骰子的最大值和箱體混合分佈的差異:

雖然箱子分配和計數的原理很簡單,但實現起來可能非常複雜。這就是腳本強大輔助功能的作用所在:它確保每次對每個骰子都正確執行邏輯,消除了使用者錯誤的主要潛在來源。
輸入設定檔
我們希望將模擬的所有輸入都包含在一個檔案中,以便於輕鬆、一致的記錄。此外,我們還希望有一個腳本介面來管理統計提取和實際模擬運行。幸運的是,JMP 可以在單一資料物件中支援所有這些功能,我們將其用於所有輸入。範例如下:

上部區域用於各種腳本例程。由於參數名稱通常很長且複雜,因此我們提供了使用 JMP 的文本解析命令將其重命名為更簡潔的名稱的選項。在基於資料檔案的初始運行期間,腳本會提取並儲存設定檔中所有必要的統計參數;未來的運行可以簡單地使用這些儲存的參數。使用者不需要單獨儲存資料文件,任何人都可以使用產品的配置檔案來執行相同的模擬。這避免了使用者基於不同的輸入資料集進行分析時出現的不一致。
該腳本還包括驗證配置表的選項。這是實現「一次正確」模擬的關鍵工具,因為它可以檢查可能產生虛假結果的大量潛在錯誤。該腳本不是每次都依賴專家用戶審查,而是確保沒有遺漏任何關鍵輸入(限制、測試、溫度或電壓分組參數等),同時還會檢查可能產生虛假(但看起來很逼真)模擬的更細微的錯誤:完全相關的參數、非物理相關性或始終保證零或 100% 分佈的 bin/pattern/grouping 組合。
日誌輸出
我們使用 JMP 的日誌檔案功能來匯總和標準化我們的輸出,確保文件的最佳實踐。大多數分析的關鍵特徵是模擬的速度-功率分佈(如果需要,可以繪製多個參數對),以及整個製造過程範圍內的最大值和混合能力分佈圖。除了圖表之外,該文件還包括統計參數和來自配置文件的所有其他輸入,以便我們能夠完全追蹤所有底層模擬細節。當我們處於產品生命週期的早期並考慮幾種情況時,這一點至關重要:未能記錄任何底層輸入可能會造成很大的混亂,但透過編寫輸出腳本,我們可以確保這種情況永遠不會發生。

場景建模
透過文件自動化,我們能夠專注於快速評估不同的場景。由於模擬時間很短(1-5分鐘),因此可以在會議中即時評估更常見的情況,從而大大促進與行銷和設計團隊的討論。下面我們展示一些例子,從最簡單的開始:縮放過程方差。第一張圖表顯示了工廠製程控制改善對單一箱體最大分佈的影響:某些區域的分佈下降,但在最佳目標下分佈明顯改善。這種情況非常常見,方差縮放是設定檔中的可調參數。

要探索的第二種極為常見的變化是改變箱子排序順序;這可能發生在產品的整個生命週期中。下圖顯示了按以下排序順序在整個製造過程中的箱體混合分佈:橙色、紅色、淺綠色、深綠色、藍色。 (這裡未顯示最大分佈圖,因為它不受排序順序的影響。)在過程目標(垂直黑線)中,橙色箱占主導地位,有少量的淺綠色和紅色箱晶片,幾乎沒有藍色或深綠色分佈。

我們現在希望評估交換紅色和深綠色箱子排序順序的效果:現在我們可以運送少了多少紅色箱子而多了多少深綠色箱子?排序順序是我們可以在配置文件中輕鬆更改的參數,因此此比較只需幾分鐘即可運行;下圖顯示了結果(請注意,淺綠色箱子完全被深綠色箱子覆蓋,深綠色箱子在新順序中首先進行測試)。

雖然橙色箱分佈保持不變,但現在很大一部分晶片(約 30%)將落入深綠色箱,而不是像以前那樣落入紅色或淺綠色箱。可以將此結果與客戶需求進行比較,以確定是否應該更改測試程序。
另一個需要模擬的常見場景是組裝前晶片分類。在這種情況下,產品可能會根據其性能被裝入不同的包裝中。除了了解整體的箱體組合之外,我們現在還希望了解每種包裝類型的組合情況,從而引入額外的複雜性。我們還希望了解我們的預組裝測試如何將晶片引導到正確的封裝中。使用 JMP 腳本可以輕鬆完成此操作,因為每個晶片都包含每個測試和每個箱的通過/失敗資料。在下圖中,我們可以看到,未能通過晶圓預裝配速度測試的晶片(青綠色)在組裝至 ACSCAN_PLAT_MIN_FMAX 後進行測試時確實是速度最慢的晶片之一——但這種相關性並不完美:青綠色晶片與其他箱邊界重疊相當嚴重(請注意,此模擬使用的測試和箱與前一個示例不同)。

這種相關性是否足以用於生產取決於最終的每個包箱分佈是否可以接受。下圖顯示了構建所有骰子(左側)和構建除綠松石骰子之外的所有骰子(右側)之間的差異。為了清楚起見,未顯示箱體混合分佈的相應圖表,但將被視為評估的一部分。

場景建模:變數限制
常見但更複雜的情況是當我們希望考慮不同的箱限值時;這最常發生在產品定義階段。對於向客戶提供什麼樣的功能可能存在一些不確定性,或者設計團隊可能想了解 IP 運行速度比預期慢的影響。我們的模擬腳本可以靈活地以離散步驟改變箱限值;然後我們可以研究分佈影響。由於這些分析可能非常不同,因此我們不會產生特殊的圖形輸出,但分佈資料很容易保存為單獨的資料表,我們可以隨意研究這些資料表。下面的範例顯示了「Bin 1 Combo」最大分佈的標準輸出,因為功率限制以 11 個步驟變化:峰值變得更低並向右移動以獲得更嚴格的功率限制。 (由於箱體 2-5 的極限沒有變化,因此只有一條曲線。右側我們展示了一個自定義圖表,該圖表繪製了目標過程(垂直黑線)處的箱體 1 分佈,作為箱體極限的函數(按步驟號標記;我們可以根據需要將其轉換為實際功率值)。如果需要,我們也可以像往常一樣對箱體混合執行此分析。

從右側的圖表中我們可以看到,在 Bin 1 分佈開始急劇下降之前,我們有空間將功率限制收緊 3-4 步;此時,供應對微小的變化變得非常敏感。當行銷團隊考慮向客戶提供什麼樣的電源規格時,我們會將這些資訊回饋給他們。
我們可能還想評估對特定 IP 的速度敏感度。我們再次跨過箱子界限並考慮三個指標。第一個是最佳過程目標(X 軸上的峰值分佈位置):這不是無限可調的,也不是輕易就能做到的,所以我們不希望過程目標對速度損失敏感。我們還需要一個合理的工藝窗口(供應與需求相符的範圍),當然我們需要足夠的晶片通過該箱來滿足客戶訂單。下面三個圖表都講述了一個類似的故事:我們可以容忍高達~40 MHz 的速度損失,但除此之外,最佳製程目標對任何速度變化都非常敏感,製程窗口迅速縮小,並且料倉供應本身開始崩潰。這些輸入為設計團隊提供了明確的成功標準,並讓他們清楚知道模擬中應該包含多少餘裕。

在特別複雜的情況下,可以同時考慮速度和功率的變化;例如,如果提高速度裕度會導致電力成本。腳本工具的內建日誌功能在這裡特別重要,可以自動記錄所有變更的輸入。
概括
使用 JMP 腳本大大提高了我們的產品效能建模能力。我們可以使用內建驗證來管理複雜的輸入,以避免常見的使用者錯誤。該腳本處理蒙特卡羅模擬背後的數學問題,使用戶可以專注於增值結果而不是統計細節。它還確保涵蓋我們最佳實踐的一致輸出,以便每個分析都徹底記錄,而無需專家審查或冗長的文件規格。
該工具既可以與矽片數據一起使用,也可以在我們拿到產品之前加入性能估算。這就是它的最大價值所在:我們可以在產品生命週期的早期對其產生影響,並在最終規格確定之前向設計和行銷團隊提供有意義的回饋。這樣可以更好地吸引客戶,並確保我們的產品推出時所有功能晶片都可以銷售。最後,我們可以快速進行敏感度分析,以確保我們擁有強大的流程視窗。在推出時滿足這些標準的產品將具有更高的利潤,確保生產營運的順利進行,並能在整個生命週期中更好地滿足客戶的需求。