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

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

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

那些沒有通過一個容器的,即使具有不同的電壓,仍然可能通過另一個容器。下圖顯示了捕獲這些異常值的兩個附加箱:低速、低功耗箱(藍色)和高速、高功率箱(紅色)。

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

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

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

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

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

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

我們現在希望評估交換紅色和深綠色垃圾箱排序順序的效果:我們現在能夠運送的前者少多少,後者多多少?排序順序是我們可以在設定檔中輕鬆更改的參數,因此此比較只需要幾分鐘即可運行;下圖顯示了結果(請注意,淺綠色容器完全被深綠色容器覆蓋,深綠色容器按照新順序首先進行測試)。

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

這種相關性是否足以在生產中使用取決於產生的每個包 bin 分佈是否可以接受。下圖顯示了建造所有模具(左側)或全部模具之間的區別但綠松石模具(右側)。為了清楚起見,未顯示箱混合分佈的相應圖表,但將被視為評估的一部分。

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

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

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