第八章 – 電路特性分析對

對電路做特性分析(Device Characterization)的目的,是要找出電路在正確操作情況下,各種參數條件的極限值。通常我們會使用一些軟體工具,來完成這些工作。例如,二元搜尋軟體工具、線性搜尋軟體工具、或是Shmoo繪圖軟體工具。「Shmoo」這個英文是沒有中文解釋的,請跟我唸「醒目」即可。通常,電壓、電流、或是訊號的時序,這些參數是電路特性分析時,很重要的對象。
為了要對電路做特性分析,我們使用的分析軟體工具,並需要能送出正確與失效(Pass/Fail)的測試結果。舉例而言,當我們分析VIL這個參數時,我們一開始可能會對所有的輸入腳,供應一個0V的電壓,並且執行一個特定的功能測試向量,如此執行的結果,我們期待測試結果,一定會送出正確的訊號(Pass Signal)。因為VIL的值為0V時,對VIL而言,是最寬鬆的條件。接下來,我們會將VIL的值設為2V,並做相同的測試。我們期待測試結果,一定會送出失效的訊號(Fail Signal)。因為VIL的值為2V時,對VIL而言,是相當嚴苛的條件。此時我們已經能夠體會到,0V到2V之間,會有一個VIL的臨界電壓值。


各種搜尋法



■ 測試向量與電路特性分析
所謂電路特性分析,就是對電路執行所需的測試向量,並找出操作條件的極限值。在許多種情況下,一個測試向量,只針對一項電路特性做分析,以便找到有意義的特性參數值。有些測試向量,是用來做功能測試之用,它有可能不適合做特性化的分析。對於測試向量的內容,必須在使用它做特性分析之前,你就要很詳細且很清楚地瞭解它,特別是在做交流參數的特性分析時。


■ 二元搜尋法(Binary Search)
二元搜尋法,也就是連續逼近的一種搜尋方法。這種方法,可以在一個較大範圍內,找到某一個特定的值。它是非常有效率的一種搜尋法。這種技術,是使用所謂的「切割及各個擊破(Divide-And-Conquer)」演算法來達成。這種方法的程序,是在事先界定好的範圍內,先找出中間點,並對中間點的值與特定的值做比較,如果中間點的值小於特定的值,則表示欲尋找的點,位於上半段位置。相反地,如果中間點的值大於特定的值,則表示欲尋找的點,位於下半段位置。這樣的程序會一直被執行,直到我們所期待的解析度為止。


舉例而言,如果我們想在以下這個數列中1,2,3,4,5,6,7,8,9找出4這個數字,則我們會從中間的位置開始找起。中間位置的值為5,比4大。所以4會存在於下半段位置中。因此,我們會將數列改成1,2,3,4,5。並再從中間的位置開始找起。這個時後中間位置的值為3,而3沒有大於4。因此,4會存在於上半段的數列中。因此,我們會再將數列改成3,4,5。接下來,中間的的值為4,它沒有大於4,所有會存在於4,4.5,5這個數列中。此時4.5大於4,如果我們期望的解析度為1的話,這個可能的位置就是4,此方法就叫做二元搜尋法。


■ 二元搜尋法的應用
在測試程式中,我們常用二元搜尋法,將類比訊號的大小來轉換成數值。例如,電壓值、電流值、或時序設定值。在執行參數量測搜尋時,我們會定義一個測試參數值的範圍。這個範圍,包括正確與失效的範圍(Passing and Failing),而搜尋的方向,是依測試的結果而定。

舉例而言,對輸出腳做輸出遞延時間的量測時。我們只考慮輸出腳的電位,由高到低(High to Low),或是由低到高(Low to High)來分析。應用二元搜尋法時,每一次的搜尋,都會執行一次測試向量。二元搜尋軟體,會依上面描述的方式來進行搜尋。搜尋的範圍,包括Passing及Failing的範圍。而搜尋的方向,會依測試結果是正確(Pass)或失效(Fail)來決定方向。最終,二元搜尋軟體會找到一個點,這個點將會是失效(Fail)轉成正確(Pass)的那個轉換點。而遞延時間的計算,是搜尋結果減去輸入訊號的時序值而得。如圖1所示。


圖1


■ 由二元搜尋結果計算交流參數
當我們用二元搜尋法,來計算交流參數時,我們通常需要一個公式來加以計算。二元搜尋法,會移動訊號的邊緣(Signal Edge)。移動的過程中,不會去在意訊號的邊緣,是否仍維持相對於參考訊號的位置。例如,之前所討論過的設置時間(Setup Time)。


以Data In對Clock時脈訊號的設置時間為例。如果要用二元搜尋法,來量測設置時間。我們會藉由改變Data Bus上昇緣(Leading Edge),來做搜尋。搜尋的結果,會將Data In上昇緣(Rising Edge)的最後位置記錄下來。這個最後位置,其執行的結果當然是正確(Pass)的狀態。因此,設置時間的計算公式如下


Setup Time = Reference Signal – Result of Binary Search


而二元搜尋法量測維持時間(Hold Time),是藉由改變Data In下降緣(Falling Edge)的位置來搜尋。因此,維持時間的計算公式如下:


Setup Time = Result of Binary Search – Reference Signal


訊號遞延時間的量測,是藉由改變輸出訊號的觸發時間(Output Strobe Time)來搜尋。因此,遞延時間的計算公式如下:


Propagation Delay Time = Result of Binary Search – Reference Signal


線性搜尋法(Linear Search)
線性搜尋法,也常被用來做電路特性分析。它與二元搜尋法,只有一個主要的不同點。也就是在搜尋時,測試參數的值,無論是電壓值、電流值、或是時序值,只有單一方向的改變。


舉例而言,以VIL測試參數來做特性分析。首先,我們會先設定VIL的值為0V,然後執行測試向量,並期待它會得到一個正確(Pass)的測試結果。然後,線性搜尋法會增加VIL的電壓,並重新執行測試向量。並且會依此模式,每次增加一點點VIL的電壓,直到測試的結果變成失效(Fail)的狀態。然而,最後測試結果為正確時的VIL值,也就是VIL最大臨界電壓值。有某些型態的測試,需要用這種線性搜尋法,來量測比較恰當。例如史密特觸發測試(Schmitt Trigger Testing)。平均來說,線性搜尋法會比二元搜尋法,來得慢。因此,除非有必要時,我們才會用到它。


時常拿來分析的特性參數


VDDMIN: VDD最低操作電壓。
VDDMAX: VDD最高操作電壓。
VIL: 輸入腳為邏輯0時的最大電壓值。我們可以對某一群組或單一支腳做分析。


VIH: 輸入腳為邏輯1時的最小電壓值。我們可以對某一群組或單一支腳做分析。
VOL: 在已知IOL電流條件下,找出輸出腳為邏輯0時的最大電壓值。可以對某一群組或單一支腳做分析。
VOH: 在已知IOH電流條件下,找出輸出腳為邏輯1時的最小電壓值。可以對某一群組或單一支腳做分析。
IOL: 在已知VOL電壓條件下,找出輸出腳為邏輯0時的電流值。此參數只能針對單一支腳做分析。
IOH: 在已知VOH電壓條件下,找出輸出腳為邏輯1時的電流值。此參數只能針對單一支腳做分析。
Setup Time: 尋找輸入訊號的最小設置時間。此訊號必須與參考訊號做比較。
Hold time: 尋找輸入訊號的最小維持時間。此訊號必須與參考訊號做比較。
Propagation Delay: 尋找輸出訊號的最小遞延時間。此訊號必須與參考訊號做比較。
Minimum Pulse Width: 尋找時脈訊號的最小寬度,在此寬度下,電路仍能正常地運作。
Maximum Operating Frequency: 壓縮所有腳位的相關時序,並找出最高操作頻率。這項分析需要詳細地計劃,主要是因為各個訊號之間的相關性,需要重新且仔細地考量。


■ 特性參數的定義
在執行電路特性分析時,我們需要仔細地計劃所有的活動。我們必需重新檢視所有的規格,並且將需要分析的參數列表。直流參數(如電壓、電流)及輸出腳臨界電壓,這些參數通常是不太會有問題的。而交流參數,是比較關鍵的參數。因此,交流參數通常會被拿來做特性分析。但這些交流參數,可能無法在數位式測試系統上做測試。但,我們可以將這些交流參數的量測,重新撰寫程式,以便數位測試系統,也能對交流參數做測試。使用這種方法時,其測試結果,只會顯

■ 示出正確與失效(Pass/Fail)的訊息。
對於複雜的測試而言,我們需要將時序圖準備好。這樣做的目的,是要確認,我們對此項功能測試,是否完全瞭解。尤其是在開發測試程式之前。每一項特性分析,都必需要找到正確與失效(Pass/Fail)的範圍。並且測試出來的結果,必須要有意義。請與設計者討論,並解決任何的問題。無論是時序上的問題,或者是電路功能上的問題。


■ 測試系統的資料記錄器(Data Logger)
任何一種測試平台,都會用某些方法來記錄測試結果。例如,正確與失效(Pass/Fail)的訊息。這些訊息,應該包括測試項目的名稱、測試系統的資源通道、測試項目的編號等等。資料記錄器,是一項很有用的工具,在做特性分析時,它可以用來記錄實際的量測值。


測試系統的工具


如果可以的話,使用測試系統所提供的標準工具來做分析。這些工具通常執行起來會比較快,且大部份的工具,都比較沒有問題「Bug Free」。我們不需要再花時間,開發測試程式來達到目的。一般在做特性分析時,使用測試系統所提供的軟體工具,是比較快的一種方法。這些軟體工具,在大部份的測試平台上都會有。例如,Shmoo繪圖工具、準位搜尋軟體工具、二元搜尋軟體工具、線性搜尋軟體工具、及資料記錄器。


圖2


■ Shmoo繪圖工具
是在執行某一項功能參數測試時,對當中的一項或多項測試資源,改變其設定值,並將正確與失效的測試結果,類似以圖表的方式繪製出來。典型的Shmoo圖是二維的圖表。它會在 X軸上顯示某一項測試參數,且Y軸上顯示另一項測試參數。圖8-2是一個Shmoo圖的範例,Y軸代表VDD,從5.5V開始到3.5V結束。X軸代表VIL電壓,從2.0V開始到0V結束。而Y軸有21個步驟,X軸有51個步驟。每一個步驟都會被執行。此範例Shmoo圖中的每一點,其功能測試皆會被執行,如果測試結果是正確的(Pass),就用「$」表式。如果測試結果是失效的(Fail),則用「.」表式。因此繪製Shmoo圖,是需要花一些時間來處理的。


大部份繪製Shmoo圖的工具,都俱備設定追蹤(Tracking)測試參數的能力。所謂追蹤(Tracking)測試參數的能力,就是允許測試機的其它資源,可隨X軸或Y軸的值變化而變化。舉例而言,當我們測試CMOS電路時,VIH的電壓,必需隨VDD的電壓而變化。這樣的功能,可以防止VDD的電位小於VIH的電位。因為VDD的電位小於VIH的電位時,會使得電路發生閂鎖效應(Latch Up Effect)。再者,我們會用Shmoo繪圖工具,繪製時序圖。此時,我們需要讓輸入腳或輸出腳的時序設定,隨時脈訊號的邊緣位置而改變。


圖3是介紹Shmoo圖會有破洞現象(Hole)。所謂破洞是電路在某個範圍內會失效(Fail),且在失效的前後區域,其測試結果是正確的(Pass)。


圖3


■ 臨界點/臨界準位的搜尋
圖4是一個測試結果的範例。這些測試結果,來自標準的二元準位搜尋軟體工具。一般準位搜尋軟體工具,被用來搜尋輸入腳或輸出腳的臨界值。量測出來的數據,會被以某種格式記錄下來,通常我們還需要寫一些小程式,來對這些測試記錄做某種程度的處理。

圖4