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