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