• 沒有找到結果。

Chapter 2 檢視目前領導潮流之研究

2.1. 基於直方圖 (histogram) 演算法之內建自我測試技術

2.1.3. 提高可行性之相關研究

為了解決硬體負擔的問題,後來的學者提出了許多不同的方法嘗試去壓低硬 體成本的浪費。時間分離 (time decomposition) 方法是被證實能有效地降低硬體負 擔的方法之一 [1][6][7]。其主要精神就是把整個測試的時間分成好幾個不同的週期 去完成 (參考Fig. 3),每個週期負責運算其單一的測試參數。這種作法有兩種好處:

第一是硬體資源可以共用,舉例來說,在對偏移誤差以及增益誤差做運算的時候 都需要用到除法器,但是因為每個週期只負責運算單一個測試參數,所以這個時 候只需要一個除法器重複使用就夠了,這個資源共用的概念可以大大地減少數位

訊號處理單元的硬體負擔。再者,我們可以把時間分離這種概念更進一步地運用 到每個測試週期中。簡單地說,就是把每個測試週期分解成好幾個步驟,每個步 驟皆只需要儲存一個測試直方圖的字碼 (codeword) ,如此一來就可以把所需記憶 體的數量降低。但是這個方法將會造成整個系統的測試時間被拉長,造成測試成 本的提高,如何取捨則端看設計者在硬體負擔與測試時間兩者之間去做拿捏。

Fig. 3 時間分離演算法的測試過程

為了克服測試時間被拉長的缺點,後來的學者更進一步地提出了相對應的解 決方案 [8]。這個解決方案包括兩個方法:(1)平行時間分解演算法 (parallel time decomposition),主要是把計算 DNL 、 INL 、偏移誤差、以及增益誤差的過程設法 讓全部的計算皆同時進行。(2)交疊式線性直方圖演算法 (fold linear histogram scheme),主要是用在計算DNL和INL的過程中,以更進一步地縮短測試時間。在 接下來的兩小節中將各別針對這兩種方法做相關的介紹。

2.1.3.1. 平行時間分解演算法

它一種是針對時間分解演算法的缺點加以修改的演算法。因應前者所提出的 方法是為了減輕後級的輸出響應分析器之硬體負擔而造成了測試時間的拉長。後 者所提出的解決之道為設法讓DNL、INL、偏移誤差、和增益誤差這四個參數的運 算同時進行,以解決在原本的時間分離演算法中因為要減少硬體負擔所造成之測 試時間加長的問題 (參考Fig. 3)。

Fig. 4顯示出了利用平行時間分離演算法的測試過程,其數位分析器 (digital analyzer)主要由三種模組組成:

(1) 檢測模組,負責存取類比數位轉換器輸出的字碼。

(2) 計算模組,負責同時 (parallel)對檢測模組所儲存的字碼做運算。

(3) 控制模組,負責安排整個系統的測試過程。

Fig. 4 平行時間分離演算法的測試過程

接下來我們將簡略地說明在Fig. 5中每個區塊的功能。DM_register之組成電路 為一個計數器和一個比較器,其功用在於把每個類比數位轉換器輸出字碼跟參考 字碼做比較。而偏移誤差和增益誤差的計算則是在CM_OG_register中完成。在DNL 的部份則是在CM_DNL_register做運算,而各別INL的值可由目前的DNL與前一個 週 期 的 INL 相 加 而 得 。 經 由 運 算 過 後 每 個 週 期 所 得 到 的 INL 則 會 儲 存 在 CM_INL_register中。各個測試參數的運算公式分別如下所示:

(

2 1

) ( )

0

( ) ( )

ideal ideal

H i H DNL i

H

= − (3)

( ) ( )

1

( )

INL i =INL i− +DNL i (4)

Fig. 5 基於平行時間分解演算法之內建自我測試架構

2.1.3.2. 交疊式線性直方圖演算法 (Fold Linear Histogram-Based BIST Scheme)

在2.1.2所提到之時間分離演算法最大的缺點在於計算INL、DNL的時候花費 了太多時間,整個系統的測試時間也因此而無法有效地縮短。其主要的原因是來 自於在時間分離演算法中計算DNL的時候,每個測試週期只去偵測一個類比數位 轉換器輸出碼。假設Hideal

( )

i 為理想類比數位轉換器之第i個輸出字碼擊中次數,Fs 為系統之取樣頻率,n為待測類比數位轉換器之解析度,而T為一個測試週期的時 間長度。我們可以發現在一個週期中,偵測每個輸出字碼的過程將花費Hideal

( )

i Fs

的時間,可是每個週期仍然會有THideal

( )

i Fs的時間是被浪費掉的。因此,[8]的 作者提出了一個以時間分離演算法為延伸的想法,稱之為交疊式線性直方圖演算 法。其做法為在計算DNL的週期中,同時對每個輸出字碼做檢測與運算的動作,

如Fig. 6所示。為了要正確地完成同時檢測以及同時運算的工作,我們需要兩個暫 存器去分別運算奇數以及偶數的DNL。從Fig. 6中可以看出,當DNL_even_reg在對 偶數的字碼進行偵測的同時,DNL_odd_reg也在對奇數的字碼作計算。如此一來,

奇數的DNL字碼與偶數的DNL字碼就會呈交疊式的一筆一筆相繼出現,最終把它 們合起來就是一個完整的DNL序列。而INL的計算可以參考式(4)得知,各個INL的 值等於目前測得之DNL與前一個週期測得之INL做相加。最後,偏移誤差與增益誤 差的計算分別由CM_OFFSET_reg與CM_GAIN_reg負責,這兩個測試參數的計算方 法則與前者所提出之時間分離演算法所提出的是相同的。

Fig. 6 基於交疊式線性直方圖演算法之測試流程

(a) 時間分解演算法中 DNL 之計算流程 (b) 交疊式線性直方圖演算法