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