傳統半導體測試通常涉及由自動測試裝置(ATE) 執行的測試。但工程師們開始傾向于在系統環境中測試片上系統 (SoC) 的額外後期測試通過,以便在最終産品組裝之前發現設計問題。
"系統級測試 (SLT) 提供了一個大容量環境,您可以在其中一起測試硬體和軟體,并發現在小批量工程測試中可能不會發現的設計錯誤。"SLT 系統架構師 Peter Reichert 說。
雖然SoC 上的測試設計 (DFT)基礎設施用于以盡可能短的測試周期提供測試向量,但重點轉移到由 CPU 上的軟體執行的測試。這與最終測試後的新系統級測試插入非常吻合。IC 的測試總是涉及到微妙的平衡。一方面,出廠産品的品質需要很高,以最大限度地減少退貨并最大限度地提高客戶滿意度。另一方面,必須盡可能降低測試成本。
這通常意味着對執行某些測試的位置進行一些戰略性改組。傳統上,有三個插入點——在晶圓驗收測試 (WAT)離開晶圓廠之前;在晶片分類時,切割晶片前;在最終測試中,裝置封裝後。
故障率高的測試應盡早進行——接近晶圓分類——以確定不會花費額外的錢來制造将被丢棄的部件。但也可能有機會以最低成本插入執行高産測試,因為報廢裝置的可能性很低。
對于 SoC——或任何可以執行軟體的裝置——額外的 SLT 插入正在獲得動力。SLT 在系統環境中測試晶片,其中包括運作以軟體實作的測試并在晶片的 CPU 上運作的能力。"由于工藝節點的縮小,工程師們看到了更高的缺陷率,"Teradyne 的 SLT 營銷總監 Paul Klonowski 說。此外,"随着更高功能的裝置變得越來越小,封裝變得更加複雜。你從晶圓測試中逃脫,你從封裝測試中逃脫。你想抓住那些使用系統級測試的人。"
矢量與軟體
邏輯晶片測試涉及兩種類型的測試,功能測試和參數測試,它們測量電流和電壓等内容。為了最大限度地降低測試成本,使用晶片内的專用硬體執行功能測試。這種 DFT 基礎設施允許将測試向量直接應用于内部電路。在晶片被适當地計時後,結果被發送到輸出進行評估。
為了保持矽成本低,輸入向量和輸出結果被掃描。結果不是直接輸出,而是被壓縮成一個簽名,可以與預期的簽名進行比較,以确定通過/失敗。
傳統基于掃描的測試使用獨立于主要功能架構的内置測試設計 (DFT) 基礎設施
目的是将盡可能多的測試打包到盡可能少的向量中。這種效率允許在盡可能短的時間内實作更高的測試覆寫率,進而使測試成本保持在範圍内。然而,需要注意的重要點是,這種測試與晶片在系統中的運作方式不同。多個塊在功能上可能永遠不會同時使用,可以同時測試以減少向量的數量。從目标系統的角度來看,測試模式将裝置置于不自然的狀态——以至于測試期間的功率曲線可能遠遠高于所謂的“任務模式”中的功率曲線。
通過在 CPU 上執行的軟體進行的驅動測試使裝置保持在自然狀态,但它沒有掃描矢量的效率和測試密度。但是,它确實允許測試特定用例——特别是涉及 SoC 多個子產品互動的極端情況。
軟體驅動的測試源于加載到 CPU 中的程式
生成軟體定義的功能測試
基于矢量測試的生成使用了幾十年來不斷發展的技術。它利用電路内特定點的刺激和觀察,掃描鍊允許直接通路這些點。是以,傳統向量生成涉及為每個點識别激活所需狀态所需的内容,然後确定所需的輸出應該是什麼。然後努力組合盡可能多的向量以減少總計數,減少測試時間。
軟體驅動測試是不同的。CPU 無法像掃描鍊那樣直接通路内部電路,是以與确認特定電路是否正常工作無關。它更多地是關于練習真實世界的場景,以确認晶片總體上按預期運作。可能會選擇這些場景,因為預計它們會給晶片帶來更多壓力。或者目的可能是在極端電壓或溫度情況下運作測試,以確定晶片在這些條件下按預期工作。
這意味着,一般來說,SoC 設計團隊需要決定執行哪些測試以及如何執行這些測試。實際上,一些軟體測試可能會在晶片建構之前在晶片驗證期間運作,通常用于仿真期間。
與在位或向量級别運作的低級測試不同,這些測試在 C 語言級别運作,并針對 SoC 中的 CPU 進行編譯。"軟體驅動的測試通常比在 ATE 中更容易建立,因為它涉及您在現場裝置中看到的标準操作步驟,"Klonowski 說。"有硬體初始化、記憶體訓練、啟動作業系統、将裝置置于睡眠和低功耗模式、執行高負載操作以及檢查基準。但實際上是在像在應用程式中一樣操作裝置,然後針對它們運作這些不同的操作測試。"
便攜式測試和激勵标準(PSS) 提供了一種生成測試的方法,該測試可以移植到任何驗證節點、晶片啟動測試或大批量商業測試。PSS 有助于促進重複使用。Cadence産品管理組總監 Moshik Rubin表示,一些測試可以跨多個目标平台重複使用,例如模拟或仿真。"生成的測試可以很容易地移植到矽後和制造測試中。"他說。但這種重複使用在今天可能不像現在那麼普遍。Synopsys的科學家 Filip Thoen 說:“我見過在矽前驗證方面進行定向測試或內建軟體測試的團隊。 ” “你會看到人們為矽喚醒進行矽後測試。我見過團隊開發人工測試套件來對晶片施加壓力以優化良率。稍後,您仍然需要為您的開發闆開發軟體,或者您可能會開發診斷程式。而且所有這些頻譜都沒有重複使用,這是一種巨大的浪費。”
例如,在仿真期間完成的 SoC 軟體測試可以重新用于 SLT。"您加載到模拟器中的内容可能與最終軟體不完全相同,"Thoen 說。"您必須自定義 [用于仿真與測試] 的是驅動程式,它們設定了外部環境。"
擷取測試結果
雖然測試的重點是軟體,但為了獲得測試結果和檢查晶片特性以進行診斷,仍可能需要一些硬體考慮。僅僅憑借“沒有出錯”這一事實,就很容易認為軟體定義的測試通過了。但是更典型的測試會尋找一些特定的結果,并且需要将結果傳遞到某個地方的輸出。
一些這樣的測試可能自然會在輸出引腳上顯示結果(例如,可能是記憶體端口上出現的記憶體位址)。但通常情況可能并非如此,是以需要一些其他方法來産生内部結果。提供更多輸出細節的一種方法是利用晶片内部的掃描鍊結構。這表明處于這種主要功能模式的晶片與測試模式之間存在一些互相作用。
Advantest平台擴充經理 Klaus-Dieter Hilliges 解釋說:"如果我将軟體加載到處理器上,軟體就會運作,然後我會得到一個通過/失敗結果。 " "我隻是跑了一個黑匣子。我很難讓它發揮作用,因為我對正在發生的事情幾乎沒有可觀察性。我們必須能夠接收觀察功能測試執行的跟蹤資訊。如果您去 Cadence、Breker 或其他自動生成此類功能測試用例的 EDA 公司,您可以在執行測試時看到發生了什麼。"
此外,現代工藝節點上的許多晶片還包含傳感器和螢幕。如果發生故障,這些電路可能會提供有關故障發生條件的寶貴線索。是以,出于診斷目的,還應該有一種方法可以擷取這些傳感器信号并将其與結果一起發送出去。
"有一個 DFT 接口,如 JTAG,我可以通路一個傳感器集線器,我可以讀取它來擷取這個或那個資訊,"Hilliges 指出。"這些傳感器通常可以通過嵌入式軟體通路。如果我運作功能測試,那麼它可以讀取内部接口。"
盡管如此,使用軟體驅動的測試來量化您正在測試的内容更加困難。"這是 SLT 的巨大挑戰。沒有很好的方法來評估您的故障覆寫率,"Reichert 說。
軟體定義測試的輸出可能會被路由回 DFT 基礎設施
系統級測試
軟體驅動測試的重點是關注系統中可能發生的場景。在傳統的最終測試插入之後,在一些複雜的晶片上執行了一種更新類型的測試。這種 SLT 插入在與用于晶圓分類或最終測試的測試儀完全不同的測試儀上運作。"測試闆通常非常類似于将在現場看到的應用闆或最終用途闆,"Klonowski 說。"你實際上是在測試裝置,因為它會在現場運作。"
泰瑞達的 Reichert 同意了。"這是真正的功能模式,而不是測試模式。晶片上的熱模式、時鐘噪聲或電源噪聲等因素在測試模式與實際操作中會有所不同。這是一個解決晶片中其他故障的機會,而這些故障在正常的結構 ATE 測試中可能不會出現。"
在某種程度上,SLT 已經存在了一段時間。但在過去,SLT 是使用處理較小體積的小型測試儀完成的,并且沒有足夠的可用空間來容納大量測試所需的測試儀數量。
Advantest 技術和戰略副總裁 Keith Schaub 說:"在數量急劇增加并且 SKU 數量急劇增加之前,這種方法一直有效。” “但矽工藝節點急劇縮小,這使得熱成為一個更大的問題,并使 SLT 變得更加重要。是以,現在我們需要真正具有 HVM(大批量制造)生産價值的産品。"
低成本測試
雖然這些測試儀可能比标準測試儀更昂貴,但它們也可以并行運作數百個站點。與最終測試不同的是,一些 SLT 測試人員可以在每個站點上獨立運作測試,或者“異步”——而不是同步運作。是以,如果裝置出現故障,理論上可以将其彈出并更換為新裝置進行測試,而無需等待其“群組”中的所有其他裝置完成測試。甚至可以同時在兩個不同的晶片上運作測試,劃分它們之間的站點。
然而,每個單獨的站點可能不是完全獨立的。測試人員有帶有一些站點的闆或盒子。這些闆作為一個單元插入和移除。這些站點仍然自行運作測試,但闆上的所有站點同時啟動。如果一個早期失敗,它必須等到整個電路闆完成才能移除。但這比必須等待數百個單元完成的限制要少。
根據測試的進行方式,這種獨立的特性允許為每個裝置提供更靈活的流程。"異步測試站點允許線上時容錯和修複,"Klonowski 指出。異步測試,再加上大量的站點,使得這種插入成本更低。雖然晶圓分類和最終測試盡量減少每微秒的測試時間,但 SLT 測試可能會運作幾分鐘。"系統中有數百個站點,您可以降低每個站點的總體成本,進而延長測試時間,"Klonowski 說。
與早期的測試插入不同,SLT 通常不明确使用掃描測試基礎設施——至少從執行向量的角度來看。運作在 CPU 上執行的測試要自然得多,而軟體定義的測試非常适合這種描述。出于報告目的,内部測試和傳感器基礎設施可能仍然存在一些聯系,但啟動測試的是 CPU。
如有必要,如果測試儀支援,仍然可以運作标準向量。"可以配備 SLT 測試儀來運作掃描,"Klonowski 說。"事實上,考慮到較低的每秒測試成本和 SLT 系統提供的高并行度,基于 SerDes 的掃描是最有可能移植到 SLT 的 ATE 測試候選之一。配備 SLT 測試儀以運作掃描需要特定于掃描的硬體和儀器。"
需要強調的是,盡管有 SLT 名稱,但這并不是對實際系統的測試。這是在晶片傳遞用于建構系統之前在系統環境中對晶片的測試。它是晶片制造流程的一部分,而不是系統制造流程。
何時執行軟體驅動測試
雖然額外的測試插入通常被視為增加成本,但添加潛在成本更低的 SLT 插入可能有助于降低總體測試成本。矢量測試可以在晶圓分類或最終測試中運作,是以軟體定義的測試似乎可以在這些插入和 SLT 中運作。那麼運作它們的正确位置是什麼?
首先,這有一個實際的方面。軟體定義的測試需要通路記憶體,這在用于晶圓分類的标準探針卡上通常不可用,尤其是多站點探針卡。"假設您購買了一些記憶體晶片,并試圖弄清楚如何将其靠近 ASIC,"Schaub 解釋說。"你打算怎麼做?客戶嘗試過,但沒有成功。"當您不處理整個晶圓時,這樣做會更容易。"他們已經想出了如何讓它在最終測試中發揮作用,"他補充道。
撇開測試基礎設施不談,産量預期或經驗可以幫助确定應該在哪裡運作不同的測試。"如果我發現一個高失敗率的測試,可以的話,我想把這個測試轉為晶圓測試,"Klonowski 說。"如果這是一個非常高産的測試,我想嘗試在系統級測試中進行,因為這是我每個站點測試成本最低的地方。"
随着産品的成熟,測試可能會在插入之間來回移動以優化産量和成本。但這就是公司可以從将矢量轉換為軟體的簡單方法中受益的地方,反之亦然,是以可以輕松地移動這些測試。"如果您确實發現這些軟體測試失敗,您希望能夠快速将它們轉化為向量,以将其從 SLT 推回最終測試。"Schaub 說。
左邊是 Advantest 的版本;泰瑞達在右邊
SLT 使用者
SLT 插入并不适合所有晶片。在品質至關重要的市場中,它往往被用于面向系統的晶片。"最終使用者提出了更高的品質要求,這導緻人們說,'通過 SLT,我會發現在标準 ATE 中找不到的故障,'"Klonowski 說。
在測試期間的外部環境很重要的情況下尤其如此。在 SLT 期間,溫度和電壓可以在每個站點的基礎上進行控制,是以這是一種確定晶片在所有條件下都能正常運作的低成本方式。特别是三個市場對 SLT 有需求——智能手機、汽車和高性能計算。他們這樣做是出于不同的原因并驅動不同的測試條件。
手機晶片通常會在室溫下進行測試。插入這些大容量晶片的目的是確定最高品質,以最大限度地減少裝置退貨。汽車晶片要求更高,并使用自動溫度控制。它們需要在 -40°C 到 150°C 的溫度範圍内進行測試,以確定晶片能夠在安全關鍵系統中經受住這些極端環境。
此外,高強度計算晶片制造商最關心的是確定他們的晶片在測試期間不會過熱。是以,測試地點不是強制執行特定溫度,而是提供足夠的冷卻以将溫度保持在 125°C 以下。通常不需要冷測試,因為晶片一旦啟動就會迅速自熱。
晶片現在是系統
随着複雜的 SoC 的出現,為大量運作的應用程式提供動力并且故障成本很高,是以在實際條件下以系統模式測試晶片是有意義的。SoC 中的第一個詞當然是“系統”,這使得它們本身就是系統。
軟體驅動的功能測試和 SLT 提供了確定這些複雜晶片以高可信度傳遞的方法,并確定它們能夠在一些更大的系統中成功完成其任務。
#晶圓##晶片#