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