芯片設計中的可測試設計技術(shù)
在測試中,目的是要盡快確定芯片是否以較高的穩定性正常工作,而不是絕對的穩定性?,F在芯片設計團隊普遍認識到,這需要在芯片上添加DFT(可測試設計)電路。第三方工具和IP (知識產(chǎn)權)企業(yè)可幫助實(shí)現此目標。
本文引用地址:http://dyxdggzs.com/article/201706/348919.htm而調試則完全不同了。調試的目的并不只是簡(jiǎn)單地確定芯片出現了故障,而是要找出故障的原因。這種檢查并不限于在測試臺上的幾秒鐘,可能要持續數周時(shí)間。它并不是自動(dòng)進(jìn)行的,而是需要芯片設計團隊的參加。它出現在設計周期中的離散點(diǎn)上:在第一個(gè)芯片設計階段、在可靠性研究階段和現場(chǎng)故障分析階段。
根據這種情況,可以想象,良好的DFT 策略應能夠滿(mǎn)足芯片調試的需要,而且,實(shí)際上也往往是如此。隨著(zhù)SoC(單片系統) 設計越來(lái)越復雜,一流的設計團隊表 示,他們將對支持調試而不是測試的電路提供更多的計劃、實(shí)現工作以及芯片面積。
“十年前在設計3層金屬層時(shí),這并不是什么大問(wèn)題,”Bay Microsystems 工程部的高級副總裁Tony Chiang說(shuō)。“如果芯片有問(wèn)題,應該直接研究金屬層來(lái)察看電路,而對于聚焦離子束系統則應該重新布線(xiàn)?,F在,對于9層金屬層和0.2mm金屬間距,問(wèn)題就不是
那么簡(jiǎn)單了。必須將電路設計成具有從芯片外部能控制和能觀(guān)察的,而在成本和時(shí)間預算上不超出我們的目標。”
這種情況,簡(jiǎn)單扼要地描述了調試設計界的情況。
技術(shù)概覽
調試與DFT并不是完全脫離的。Broadcom公司的測試開(kāi)發(fā)工程高級總監Kris Hublitz舉例介紹說(shuō),Broadcom有一個(gè)由70多名工程師組成的公司級團隊,他們與公司其它的芯片設計團隊共同從事調試和測試。Hublitz再三宣稱(chēng)DFT廠(chǎng)商LogicVision是Broadcom芯片調試策略的主要合作伙伴。
其他人也同意這種觀(guān)點(diǎn)。“調試設計與生產(chǎn)測試并不是毫無(wú)關(guān)系,” CSR (Cambridge Silicon Radio) 的副總裁David McCall說(shuō)。“兩者的起點(diǎn)差不多。”
很多設計經(jīng)理強調,這一起點(diǎn)就是探尋電路的能控性和能觀(guān)性。調試與生產(chǎn)測試相似,基本問(wèn)題是將電路設置在一個(gè)已知的狀態(tài),然后開(kāi)始運行,觀(guān)察其行為。在中等規模的集成中,邊界掃描技術(shù)可有效地完成此任務(wù)。由于芯片內部狀態(tài)較少,可以全面地對其進(jìn)行測試:將輸入通過(guò)已知的一系列狀態(tài),對電路進(jìn)行時(shí)鐘同步,然后觀(guān)察輸出。
隨著(zhù)微處理器的出現,事情變得更加復雜了。微處理器有很多內部狀態(tài),所以只將輸入施加給一個(gè)已知矢量并觀(guān)察輸出并不是特別有效。早期,業(yè)界嘗試了多種技術(shù)使微處理器實(shí)現可調試,從對寄存器間的每群邏輯進(jìn)行掃描到依賴(lài)同類(lèi)的跟蹤、斷點(diǎn)及微機用于進(jìn)行軟件調試的單步函數等。將兩種方法結合起來(lái)才能起作用。
如今設計人員對SoC的數字部分使用相同的工具套件。另有一些技術(shù)用于混合信號的模擬電路。但沒(méi)有單獨一種方法可以囊括整個(gè)復雜的SoC。所以,調試的設計流程包括將系統分割成獨立的可調試模塊,對每個(gè)模塊實(shí)施一個(gè)調試策略,并將這些策略整合到一個(gè)完整芯片的方案中,使單個(gè)模塊的用戶(hù)接口相似并盡量減少電路需要的芯片資源。最后,設計師必須使用這些調試資源重新檢查,使完全集成的芯片的運行既可控制又可觀(guān)察,因為你不能只根據隔離功能模塊就能判斷某些問(wèn)題。
數字SoC
最基本的SoC 形式是由簡(jiǎn)單的往往是可編程的外設模塊和內存所包圍的CPU 核。多數情況下,CPU 核為第三方的IP,至少有一個(gè)內部調試內核的選項。軟件開(kāi)發(fā)團隊經(jīng)常強調這一點(diǎn)。此內核與標準的DFT 電路相結合,這種電路是設計團隊為外設所實(shí)施的,以實(shí)現能觀(guān)性和能控性來(lái)隔離故障??梢栽贑PU 核中應用這種調試內核,模擬核的非同步部分,以捕捉結果。通過(guò)讓CPU 讀寫(xiě)外設寄存器,此內核也可模擬并觀(guān)察外設,通常允許設計師在可以處理的級別上確定掃描鏈中的故障。
但如今并沒(méi)有多少這么簡(jiǎn)單的SoC(圖 1)。更多的情況下,芯片有幾個(gè)或一群CPU 核和幾種不同的處理器內核。某些外部控制器非常復雜,只用CPU對其進(jìn)行模擬來(lái)觀(guān)察結果,并不能對其有效診斷。還有多個(gè)時(shí)鐘域,它們之間通常彼此并不同步。這樣的芯片需要更有效的方法來(lái)調試。
在這種情況下,有幾種策略可用。Broadcom的Hublitz介紹的一種簡(jiǎn)單方法是使所有主要功能模塊的輸入和輸出可以訪(fǎng)問(wèn)芯片的針腳。這種方法需要大量的多路復用。在有大量I/O 和內存接口的設計中,在引入任何額外訪(fǎng)問(wèn)進(jìn)行調試之前,芯片針腳數已經(jīng)限定了,設計人員必須復用針腳進(jìn)行調試訪(fǎng)問(wèn)。只將輸入輸出簡(jiǎn)單引出每個(gè)復雜模塊,可能比將其在主CPU 核上執行更有用,設計師可能需要引出內部信號。
所有這些多路復用和輸入輸出傳送共同作用,可能并不太實(shí)際。而且,結果的額外互連會(huì )造成盡管所有模塊可從針腳進(jìn)行實(shí)際訪(fǎng)問(wèn),但其訪(fǎng)問(wèn)速度根本達不到要求。這是一個(gè)嚴重的問(wèn)題。“我們必須要以全速測試電路,特別是模塊間的互連,”Hublitz 說(shuō)。“這對于65 nm工藝的芯片更是如此。否則會(huì )產(chǎn)生芯片中的故障。”
Hublitz 強調,由ATE (自動(dòng)測試設備) 支持的良好的DFT 策略,可極大地有助調試過(guò)程。“我們第一輪調試在A(yíng)TE 系統上進(jìn)行,”他說(shuō)。“在我們清楚了芯片不會(huì )融化后,把它交給設計人員,與他們一起合作。”Hublitz同時(shí)表明,芯片可能會(huì )不斷地返回到 Broadcom的測試臺,以使 ATE 系統采集大量的數據或進(jìn)行速度檢查。“自己內部有ATE 能力的真是很有用,”他表示。“我們有28 個(gè)系統,大概每季度就增加一個(gè)新的,主要是用于調試,調試新芯片是我們裝備設備最主要的目的。”
雖然有了ATE 系統,某些信號和 狀態(tài)還是不能通過(guò)探測卡的檢查。需要采用其它的策略:內部仿真和邏輯分析。有時(shí),對模塊進(jìn)行快速仿真和捕捉其行為的唯一有效途徑是將電路構建到模塊內部。據Chiang介紹,Bay將其網(wǎng)絡(luò )處理芯片組織成一串獨立的處理器,并廣泛應用這項技術(shù)。重要的模塊可以有其自己的調試內核,包括單步和斷點(diǎn)能力及跟蹤緩沖器實(shí)時(shí)捕捉內部狀態(tài)。Bay 的邏輯設計總監Jun-wen Tsong將這種方法描述為多階段驗證流程。
“首先,我們在模塊級實(shí)現芯片。在這種模式下,每個(gè)模塊都被隔離開(kāi)來(lái):我們可以注入足夠的狀態(tài)啟動(dòng)其運行,然后觀(guān)察其獨立運行特點(diǎn)。”這些測試必須在最大時(shí)鐘速度下進(jìn)行,以保證精度。這樣,設計師就可實(shí)現對一串處理器每級的調試。此時(shí),設計師還將I/O 環(huán)與內部模塊隔離,使輸入可直接進(jìn)入輸出FIFO中。Bay 的設計師在獨立驗證I/O 環(huán)和內部模塊后,再將兩者結合起來(lái)整體地測試芯片。
以整個(gè)芯片全速運行采集數據,需要制定全面的計劃。單個(gè)處理器中的調試內核必須不僅可以識別本地指令和數據字,而且大的圖像數據對芯片運行也是十分重要的:如數據包和數據封包。另外,36位總線(xiàn)貫穿整個(gè)芯片,可實(shí)時(shí)將關(guān)鍵信號從任何模塊傳輸到封裝腳。使芯片以全速處理包時(shí),調試工程師可以觀(guān)察模塊的運行。此外,硬件實(shí)時(shí)監測特定的斷言,如FIFO full/empty 斷言。Broadcom 也有類(lèi)似的方法。Hublitz告訴我們,他們公司的無(wú)線(xiàn)局域網(wǎng)芯片有足夠的內部調試硬件,工程師可以在整個(gè)芯片上跟蹤向量幅度,從輸入到基帶直到輸出。
在一個(gè)模塊內一旦將問(wèn)題隔離到一個(gè)功能上時(shí),基于類(lèi)似DFT 的策略,調試工程師可使用低級的診斷工具。Bay 杰出的工程師兼芯片架構師Barry Lee 說(shuō):“我們在模塊中有對觸發(fā)和單步的時(shí)鐘控制,并可掃描我們認為重要的信號。理想情況下,我們可以確切地了解一個(gè)特殊的流水線(xiàn)如何執行到針腳和寄存器級別。”
模擬挑戰
當涉及模擬電路時(shí),一切都不一樣了。“我們將模擬部分與數字電路分割開(kāi)來(lái)進(jìn)行調試”Lee 解釋道。“對兩者的調試技術(shù)是不一樣的。在模擬領(lǐng)域,要打開(kāi)環(huán)回途徑,可能要將所有的調試拿到封裝腳之外進(jìn)行。由于在模擬電路中活動(dòng)基元并不與時(shí)鐘同步,因而無(wú)法對其進(jìn)行捕捉。”
模擬電路與數字電路類(lèi)似,隨著(zhù)幾何尺寸的縮小,設計師已經(jīng)看到了探測和實(shí)驗設計的能力,Analog Devices的Paul Ferguson 認為。“我們習慣了將激光切割器用于探測臺來(lái)修改電路。后來(lái),隨著(zhù)幾何尺寸的減小,我們轉移到了聚焦離子束系統。對于250 nm 或更大的間距非常實(shí)用。這表明,實(shí)際上說(shuō),如果采用65nm 工藝,只能改動(dòng)上面的兩個(gè)金屬層。”
這種情況引發(fā)了模擬設計風(fēng)格的一個(gè)有趣的變化, Ferguson說(shuō)。“最近我們在做一項90nm 設計的PLL,我們發(fā)現必須首先完成VCO(壓控制振蕩器),才能建立合適的模型。所以,我們引入了一些線(xiàn)路,將增益和其它參數調整到所能達到的上部金屬層。這對于調試過(guò)程的確很有益處。”
Matt Ball 是單芯片無(wú)線(xiàn)電廠(chǎng)商Jennic公司的混合信號項目工程師,他也強調要將關(guān)鍵模擬信號置于可取位置的重要性。“我們加入了盡量多的可編程性和數字調整功能,”他說(shuō)。“有些東西必須為金屬微調的, 我們將那些位置變成單一的掩模層級別實(shí)現可訪(fǎng)問(wèn)性。”
除了將實(shí)時(shí)信號引到上部金屬層或封裝腳上,今天的模擬設計師還有其它武器設定及觀(guān)察電路的狀態(tài)。最重要的是在微細幾何尺寸上進(jìn)行,模擬電路與校準和監測它們的數字電路間要有密切的協(xié)作。
CSR的McCall 說(shuō)在其設計中,ADC監測器可確定模擬電路中數字監視電路的多個(gè)點(diǎn)。這些點(diǎn)通過(guò)將轉換器的輸出接到封裝的外部,為調試工程師提供了訪(fǎng)問(wèn)模擬部分行為的機會(huì )。“通常重要的模擬信號在某些點(diǎn)進(jìn)行數字化處理了”Ball說(shuō)。“為什么不進(jìn)行采樣,以片上DSP進(jìn)行濾波,輸出我們能夠看到它的結果呢?”
設計濾波器或放大器以便數字電路能夠調節所有重要電氣特性,這似乎有些大動(dòng)干戈了。但是在首次工作的芯片和在調試前有兩層新金屬掩模層的芯片之間產(chǎn)生的不同甚至可以啟動(dòng)設計的數字部分。而且,在小于90nm的工藝中,設計師必須面對越來(lái)越強的可變性,這些由數字調整就成了必須,這樣才能生產(chǎn)足夠數量的有用芯片。
如何進(jìn)行調整?對于無(wú)線(xiàn)電芯片上信號的精度和頻率,IF (中頻)信號,在測試模式中可以只用布線(xiàn)和模擬多路復用將信號引出封裝之外。“在中頻部分,緩沖器非常有用。”Ball 說(shuō)。“從重要的節點(diǎn)取得信號送到針腳,就可以看到需要看的結果。”Analog Devices的Ferguson也同意此觀(guān)點(diǎn)。“就調試而言,往往不需要比模擬多路復用器所能提供的精確度高多少,就可以看到振蕩或20% 的增益誤差。”
如果不能將信號引到封裝之外,有時(shí)可以將 信號路由到片上數據轉換 器。“芯片上通常有一個(gè)附屬ADC監測芯片溫度,電池電壓等等,”Ferguson 解釋說(shuō)。“在調試中我們將龐大的多路復用器置于其前面,用來(lái)檢查模擬部分的其它節點(diǎn)。但要小心:額外的測量電路會(huì )損壞其它部分。例如,接通多路復用器觀(guān)察節點(diǎn),會(huì )提高穩定電路的振蕩能力。如果調試信號無(wú)意中跨過(guò)電源域,可以引入沒(méi)有遇到過(guò)的寄生電流路徑。”
Ball 也同意這種警告,必須選擇適當的方法,他說(shuō):“緩沖模擬信號時(shí)所產(chǎn)生的10fF或20fF可改變節點(diǎn)的行為。” Jennic傾向于只根據以前出現問(wèn)題的區域,如帶隙電池,構建其調試方案。“我們更喜歡添加旁通電路,以防出現問(wèn)題。”Ball補充說(shuō)。這種保守思想可降低故障電路的出現機會(huì )。
經(jīng)過(guò)計劃,加上運氣,以及一點(diǎn)雅致,可以重新利用功能模塊進(jìn)行調試。許多模擬信號在數據轉換器中終止,所以至少其中部分是可觀(guān)察的。Ferguson 指出,可以輕松地開(kāi)關(guān)s-Δ轉換器作為濾波器工作,以對進(jìn)入的模擬信號進(jìn)行觀(guān)察?;蛘咝⌒牡貙⑽涣髀酚傻结樐_,在轉換器兩側都可觀(guān)察。一旦對數據進(jìn)行數字化處理,就可以使用CPU 或DSP 模塊調節及壓縮或測試對其的斷言。
也可以將調試智能(相當于簡(jiǎn)單的網(wǎng)絡(luò )分析儀)構建到一個(gè)模塊中。環(huán)回路徑可使用發(fā)射器和接收器來(lái)互相檢查(圖 2),有些電路可以抽取結果的模擬波形。“在我們千兆位PHY (物理層)設計中,我們在PHY 塊中捕捉到了一些模擬信號,”Broadcom Hublitz 介紹說(shuō)。
發(fā)展前景
不難想象,在系統設計早期階段,每個(gè)功能模塊接受足夠的自檢能力在全速運行期間進(jìn)行自身診斷,并在DFT掃描鏈可處理的級別上實(shí)現這種能力。這種方法通常需要輸入緩沖器或信號發(fā)生器對模塊仿真,還要有輸出捕捉寄存器或ADC 對其觀(guān)察,以及足夠的內部斷點(diǎn)和跟蹤能力揭示模塊的內部工作情況。一些SOC 設計團隊現在正在進(jìn)行此項計劃。這樣實(shí)際的實(shí)現就成了架構師認為必要的調試支持級別與設計所能承受的費用間的折中。
進(jìn)一步拓展此概念,完美系統的設計師可以利用重定某些功能模塊目標,作為信號源或其它模塊的捕捉設備。附屬的ADC 是個(gè)很好的例子,這樣的機會(huì )還有更多。例如,增加快速數據轉換器可以將信號處理模塊變成網(wǎng)絡(luò )分析儀或數字示波器。對控制邏輯稍作添加,即可將緩沖器 SRAM 陣列轉換為跟蹤緩沖器。
按這種思考方式,片上的功能模塊可成為大量的調試資源,只重置幾個(gè)多路復用器和模式開(kāi)關(guān)即可。但此過(guò)程需要深謀遠慮。這樣組織會(huì )影響平面規劃和全局布線(xiàn)。必須在設計開(kāi)始時(shí)進(jìn)行,而不能在最后的實(shí)現時(shí)進(jìn)行。
Ferguson 認為,某些工具也可支持這種過(guò)程。精密的工具可自動(dòng)安裝這種結構,如掃描鏈、掃描控制器及矢量發(fā)生器等。而且,DFT 硬件在寄存器級別的診斷上是必不可少的。但是,并沒(méi)有支持創(chuàng )建調試結構的工具。Ferguson至少想要看到一種將混合信號模塊視為具有能觀(guān)性和能控性,并能掃描檢查簡(jiǎn)單錯誤的檢測工具。理想狀態(tài)下一種工具應該能夠貫穿于一項設計,并能提出一種調試架構和工藝。但這是以后要解決的問(wèn)題。
評論