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