測試和調試存在不同的問題。在測試中,目標是盡可能快地確定芯片是否正常工作,具有很高但不是絕對的確定性。芯片設計團隊現在普遍認識到,這樣做需要在芯片上添加 DFT(測試設計)電路,而第三方工具和 IP(知識產權)公司可以幫助實現這一目的。
調試是另一回事。調試的目的不僅僅是確定芯片不工作,而是找出它不工作的原因。這種詢問不僅限于在測試場上的幾秒鐘,而是可能持續數周。這不是自動的,而是需要芯片設計團隊的參與。它發生在設計周期中的離散點:在首次硅片啟動期間、可靠性研究期間和現場故障分析期間。
鑒于此配置文件,您可能會認為一個好的 DFT 策略足以滿足芯片調試的需求——事實上,它經常如此。但隨著 SoC(片上系統)設計的日益復雜,領先的設計團隊報告說,他們正在將越來越多的規劃、實施和硅片區域用于支持調試而不是測試的電路。
“十年前,當我們使用三層金屬進行設計時,這并不是什么大問題,”Bay Microsystems 工程部高級副總裁 Tony Chiang 說。“如果芯片出現問題,您可以直接探測金屬以觀察電路,并且使用聚焦離子束系統,您甚至可以重新布線。現在,有了九層金屬層和 0.2 微米的金屬間距,這根本不可能。我們必須使電路在芯片外部可觀察和可控,同時不能超出我們的成本目標或超出我們的進度。”
簡而言之,這種情況描述了調試設計的世界。
技術全景
調試并不完全脫離 DFT。例如,據該公司測試開發工程高級主管 Kris Hublitz 稱,博通擁有一個由大約 70 名工程師組成的公司級團隊,他們與公司的所有芯片設計團隊一起進行調試和測試。Hublitz 多次將 DFT 供應商 LogicVision 列為博通芯片調試戰略的關鍵合作伙伴。
其他人同意。“調試設計與制造測試的距離并不遠,”CSR(劍橋硅無線電)副總裁大衛麥考爾說。“兩者的起點大致相同。”
許多設計經理強調,這一點是對可控性和可觀察性的追求。在調試中,與在制造測試中一樣,基本問題是將電路置于已知狀態,開始運行,并觀察其行為。在中等規模集成的時代,邊界掃描技術可以充分完成這項任務。由于芯片幾乎沒有內部狀態,因此您可以通過一系列已知狀態發送輸入、為電路計時并觀察輸出來徹底測試它們。
隨著微處理器的出現,事情變得更加復雜。微處理器有很多內部狀態,因此簡單地將輸入強制為已知向量并觀察輸出并不是特別有用。早期,業界嘗試了多種技術來使微處理器可調試——從掃描寄存器之間的每個邏輯云到依賴小型計算機用于軟件調試的相同類型的跟蹤、斷點和單步功能。這兩者的結合起到了作用。
如今,設計人員在 SoC 的數字部分使用相同的工具套件。一組單獨的技術用于模擬和混合信號電路。但沒有一種方法可以涵蓋整個復雜的 SoC。因此,調試設計過程包括將系統劃分為可獨立調試的模塊,為每個模塊實施調試策略,并將這些策略集成到整個芯片的計劃中,以保持各個模塊的用戶界面相似并最大限度地減少硅資源電路需要。作為最后一步,設計人員必須仔細檢查,使用這些調試資源,芯片的完全集成操作是可控的和可觀察的,因為您無法通過孤立地查看功能塊來觀察一些錯誤。
數字 SoC
SoC 的最基本形式是由簡單的、通常不可編程的外圍模塊和存儲器包圍的 CPU 內核。在大多數情況下,CPU 內核是第三方 IP,并且它至少帶有內部調試內核的選項,軟件開發團隊通常會堅持包含在內。該內核與設計團隊為外設實現的正常 DFT 電路相結合,以提供足夠的可觀察性和可控性來隔離問題網絡。您可以使用 CPU 內核中的調試內核來刺激除內核的異步部分之外的所有部分并捕獲結果。內核還可以通過使 CPU 讀取和寫入外設寄存器來刺激和觀察外設,通常允許設計人員將故障精確定位到掃描鏈可以接管的級別。
但這種簡單的 SoC 在今天并不常見(圖 1)。更常見的是,該芯片將具有多個 CPU,或一個主機 CPU 內核和幾個其他各種強大的處理器內核。甚至一些外圍控制器也可能非常復雜,僅通過 CPU 刺激它們并觀察結果不足以診斷它們。并且會有多個時鐘域,通常彼此不同步。這樣的籌碼需要采取更嚴厲的措施。
圖 1單芯片網絡設備,例如 Jennic 513x 設備,給調試工程師帶來了大量的數字、模擬和射頻挑戰。
在這種情況下,有幾種策略可用。一個,博通的 Hublitz 建議,只是讓所有主要功能塊的輸入和輸出都可以訪問芯片上的引腳。這種方法可能意味著大量的多路復用。在包含大量 I/O 和存儲器接口的設計中,在包含用于調試目的的任何額外訪問之前,管芯可能會受到管腳限制,因此設計人員發現他們必須重用管腳來進行調試訪問。簡單地帶出非常復雜的模塊的輸入和輸出可能并不比使用主機 CPU 內核來執行它們有用;設計人員可能還需要帶出內部信號。
所有這些多路復用和路由加起來可能根本不切實際。此外,由此產生的額外互連可能意味著即使所有塊都可以從引腳物理訪問,它們也可能無法快速訪問。而且這個問題很嚴重。“我們發現我們必須快速測試電路,尤其是模塊之間的互連,”Hublitz 說。“在 65 nm 時尤其如此。否則,你很幸運能在芯片中找到一半的故障。”
Hublitz 強調,由 ATE(自動測試設備)支持的良好 DFT 策略可以極大地幫助調試過程。“我們對 ATE 系統進行了第一次調試,”他說。“在我們確定芯片不會熔化后,我們將其交給替補席上的設計人員,從那里開始,這是共同努力的結果。” Hublitz 表示,該芯片可能會反復回到 Broadcom 的測試車間,以便 ATE 系統可以收集大量數據或為啟動團隊執行全速檢查。“在內部擁有自己的 ATE 能力真的很有幫助,”他報告說。“我們有 28 個系統,我們大約每個季度都會添加一個新系統。它們都主要用于調試,新的硅片優先于設備。”
然而,即使可以訪問 ATE 系統,探針卡也無法訪問某些信號和狀態。他們需要另一種策略:內部刺激和邏輯分析。有時,快速刺激模塊并捕捉其行為的唯一有效方法是使用模塊本身內置的電路。據蔣說,Bay 將其網絡處理芯片組織成一系列獨立的處理器,廣泛使用這種技術。重要的模塊可能有自己的調試內核,包括單步和斷點功能以及實時捕獲內部狀態的跟蹤緩沖區。這種方法允許 Bay 的邏輯設計總監 Jun-wen Tsong 描述為多階段驗證過程。
“首先,我們在模塊級別運行芯片。在這種模式下,每個模塊都是隔離的:我們可以注入足夠的狀態來啟動它運行,然后獨立觀察它的行為。” 這些測試必須以全時鐘速度進行才能準確。通過這種方式,設計人員可以擰出處理器串中的每個階段。此時,設計人員還將 I/O 環與內部模塊隔離,以便輸入直接進入輸出 FIFO。一旦 Bay 的設計人員獨立驗證了 I/O 環和內部模塊,他們就會將兩者重新結合起來并測試整個芯片。
然而,從全芯片、全速運行中獲取有意義的數據需要進行規劃。單個處理器中的調試內核不僅必須能夠識別本地指令和數據字,而且還必須能夠識別對芯片操作很重要的全局數據類型:數據包和數據圖。此外,36 位總線貫穿整個芯片,將關鍵信號從任何模塊實時傳送到封裝引腳,以便調試工程師可以在芯片全速處理數據包的同時觀察模塊的運行情況。此外,硬件實時監控特定斷言,例如 FIFO 滿/空斷言。博通也有類似的做法。Hublitz 說,該公司的無線 LAN 芯片有足夠的內部調試硬件,工程師可以通過芯片跟蹤矢量幅度,
一旦他們將問題與塊內的功能隔離開來,調試工程師就可以根據熟悉的 DFT 策略轉向較低級別的診斷工具。“我們對模塊內的觸發和單步進行時鐘控制,并掃描我們認為重要的信號,”Bay 的杰出工程師和硅架構師 Barry Lee 解釋道。“理想情況下,我們可以準確地看到特定管道是如何執行到引腳和寄存器級別的。”
模擬挑戰
當涉及模擬電路時,一切都會改變。“我們將模擬電路與數字電路分開進行調試,”Lee 解釋道。“兩者的調試技術不同。在模擬世界中,您想要打開環回路徑。而且你可能必須把所有東西都拿出來封裝引腳。” 由于模擬電路中的活動原語與時鐘不同步,因此無法捕獲它們。
Analog Devices 的同事 Paul Ferguson 觀察到,模擬與數字一樣,設計師已經看到他們對設計進行探索和試驗的能力隨著幾何尺寸的縮小而蒸發。“我們過去只是在探測站上安裝了一個激光切割機,如果我們想修改電路,我們就做到了。后來,隨著幾何尺寸的縮小,我們轉向聚焦離子束系統。但它們僅在大約 250 nm 或更大的間距下才真正有用。這意味著,實際上,如果您使用 65 納米工藝,您只能對最上面的兩個金屬層進行更改。”
根據弗格森的說法,這種情況導致模擬設計風格發生了有趣的變化。“我們最近在為 90 納米設計做一個 PLL,發現我們必須先完成 VCO [壓控振蕩器],然后才能得到真正合適的模型。因此,我們將一些用于調整增益和一些其他參數的線帶到了我們可以得到它們的頂部金屬層。它確實對調試過程有幫助。”
單芯片無線電供應商 Jennic 的混合信號項目工程師 Matt Ball 也強調了在可以獲取關鍵模擬信號的地方提供的重要性。“我們盡可能多地采用可編程性和數字微調,”他說。“不過,有些東西必須進行金屬飾邊,我們將所有這些位置提升到一個單一的面罩級別,以便于訪問。”
除了向頂層金屬層或封裝引腳提供實時信號外,今天的模擬設計人員還可以使用其他武器來設置和觀察其電路的狀態。最重要的現實是,在精細的幾何形狀中,模擬電路和校準和監控它們的數字電路之間存在著密切的合作。
CSR 的 McCall 表示,在其設計中,ADC 監控數字監控電路的模擬電路中的許多點。這些點自然使調試工程師只需將轉換器的輸出帶到封裝外部即可訪問模擬部分的行為。“通常,重要的模擬信號無論如何都會在某個時候被數字化,”鮑爾說。“那么,為什么不提取樣本,用片上 DSP 過濾它們,然后輸出結果以便我們看到呢?”
設計一個濾波器或放大器,以便數字電路可以調整其所有重要的電氣特性,這似乎是一種過度殺傷力。但它可以在首次工作的硅和必須有兩個新的金屬掩模才能開始調試甚至可以開始設計的數字部分的硅之間產生差異。而且,鑒于設計人員在小于 90 nm 的工藝上必須應對的可變性越來越大,無論如何都可能需要進行如此多的數字微調,以產生足夠數量的工作芯片。
但是你怎么看修剪?對于具有合理精度和頻率的信號——例如無線電芯片中的 IF(中頻)信號——您可以簡單地使用仔細的路由和模擬多路復用器在測試模式下將信號從封裝中取出。“在 IF,緩沖區可能非常好,”Ball 說。“您可以將重要節點的信號輸出到引腳,然后查看您需要查看的內容。” ADI 公司的弗格森表示同意。“出于調試目的,您通常不需要比模擬多路復用器提供的更高保真度;你可以很好地看到振蕩或 20% 的增益誤差。”
如果您無法將信號從封裝中取出,您有時可以將它們路由到片上數據轉換器。“我們通常會在芯片上安裝一個輔助 ADC 來監控芯片溫度、電池電壓等,”Ferguson 解釋說。“我們在其前面放置了一個巨大的[多路復用器],并在調試期間使用它來檢查模擬部分的其他節點。但要小心:您放入的額外測量電路可能會破壞其他東西。例如,打開多路復用器來觀察節點可能會增加足夠的電容來穩定正在振蕩的電路。而且,如果您無意中將調試信號與電源域交叉,您可能會引入您沒有預料到的潛行電流路徑。”
Ball 回應了您必須對這種方法進行選擇性的警告。“緩沖模擬信號所產生的 10 或 20 fF 會改變節點的行為,”他同意。Jennic 傾向于僅圍繞之前出現問題的那些區域(例如帶隙單元)構建其調試規定。“我們傾向于設置旁路電路,以防萬一,”鮑爾補充道。這種保守主義可以最大限度地減少破壞功能電路的機會。
有了計劃,祝你好運,再加上一點優雅,就可以重用功能塊進行調試。許多模擬信號終止于數據轉換器,因此至少可以通過它部分觀察到。Ferguson 指出,您可以輕松切換 sigma-delta 轉換器以用作濾波器,從而提供對輸入模擬信號的可見性。或者,您可以小心地將它們的比特流路由到引腳,從而可以觀察到轉換器的兩側。將數據數字化后,您可以使用 CPU 或 DSP 模塊對其進行調節和壓縮,或針對它測試斷言。
還可以將調試智能(例如,相當于一個簡單的網絡分析器)構建到一個塊中。環回路徑可以使用發送器和接收器來相互檢查(圖 2),并且更多的電路可以提取得到的模擬波形。“在我們的千兆 PHY [物理層] 設計中,我們正在 PHY 模塊中捕獲一些模擬數據,”Broadcom 的 Hublitz 報道。
圖 2一系列環回連接使該 CSR 收發器對調試工程師更加可見。
展望未來
不難想象,在早期系統設計期間,每個功能塊都接收到足夠的自檢能力,以便在全速運行期間進行自我診斷,直至 DFT 掃描鏈可以接管的水平。這種方法通常需要一個輸入緩沖器或一個信號發生器來激勵模塊,一個輸出捕捉寄存器或 ADC 來觀察它,以及足夠的內部斷點和跟蹤能力來揭示模塊的內部工作原理。一些 SoC 設計團隊現在做這個規劃。然后,實際實現成為架構師認為必要的調試支持水平和設計可以承受的開銷數量之間的折衷。
更進一步,優雅系統的設計人員可以想出一些方法來重新利用一些功能塊作為信號源或捕獲其他塊的設備。輔助 ADC 就是一個很好的例子,但這樣的機會更多。例如,添加快速數據轉換器可能會將信號處理模塊變成網絡分析儀或數字示波器的等效物。控制邏輯的一些添加可能會將緩沖區 SRAM 陣列轉換為跟蹤緩沖區。
在這種思維方式下,芯片上的功能塊變成了調試資源池,只需復位幾個多路復用器和模式開關即可使用。但這個過程需要深思熟慮。這樣的組織會影響布局規劃和全局布線,因此它必須發生在設計之初,而不是在后期實施期間。
弗格森認為,這也是一個可以承受一些工具支持的過程。存在精心設計的工具來自動安裝掃描鏈、掃描控制器和矢量生成器等結構。而且,DFT 硬件在問題的寄存器級診斷中是不可或缺的。但是不存在這樣的工具支持來創建調試結構。例如,弗格森至少希望看到一種檢查工具,它可以對混合信號塊的可觀察性和可控性進行評級,并對其進行掃描以找出簡單的錯誤。理想情況下,工具可以遍歷設計并提出調試架構和流程。但那是未來的事情。
-
放大器
+關注
關注
143文章
13553瀏覽量
213116 -
收發器
+關注
關注
10文章
3398瀏覽量
105865 -
濾波器
+關注
關注
160文章
7730瀏覽量
177692 -
數字示波器
+關注
關注
6文章
515瀏覽量
33537
發布評論請先 登錄
相關推薦
評論