1
以控制掃瞄串部份輸出方式降低測試功率
Reducing Test Power by Partial Gating on
Scan-Chain Outputs
陸慶恩 中原大學 電子工程研究所 [email protected] 梁新聰 中原大學 電子工程學系 [email protected] 摘要―測試積體電路時消耗相當高的功率,很容易 傷害電路或是提供錯誤測試結果,因此如何以低功率方 式測試電路是很重要的課題。將全部或部份的掃瞄串正 反器輸出端加入控制閘,是一種降低測試功率的方法。 在此研究中,我們提供一種選擇部份正反器加入控制閘 的方法,降低位移掃瞄串資料時的功率。方法中有先考 慮電路的關鍵路徑,其連結的正反器將不加入掃瞄串, 也就是使用部份掃瞄方式,保留電路原有的速度效能。 其他正反器被加入掃瞄串後,將分析這些正反器輸出所 接之第一層邏輯閘,依據邏輯閘數量與輸入可控制性, 決定掃瞄正反器被加入控制閘的優先順序,以及較適合 的控制閘型式。使用 ISCAS89 標準測試電路進行實驗, 處理轉態延遲障礙的測試圖樣,結果可得相當低的測試 平均功率及峰值功率。Abstract―Consuming much power during testing usually destroy integrated circuits or provide wrong test results. Low-power testing methods therefore become very important nowadays. Inserting control gates at the outputs of all or partial flip-flops is a common method to lower down testing power. In this study, we propose a method to reduce power during test by selecting partial flip-flops for inserting control gates. We first consider critical paths in circuits and choose the flip-flops connecting those critical paths be non-scan flip-flops. This can keep the designed speed for the circuits. The other flip-flops are scanned and further analyzed for inserting control gates. For the first-level connected logic gates of the scanned flip-flops, their amounts and controllability of other input lines are calculated with weight numbers. The obtained data are used to determine both the order of being selected and the gate type of inserted control gates. We experiment the method on ISCAS89 benchmark circuits and deal with their test patterns for transition delay faults. The results prove that the method can help achieve both lower average and peak power during testing.
關鍵字― 控制閘,轉態延遲障礙。
Keywords― control gates, transition delay faults
一、簡介
測試積體電路時會消耗大量功率,亦即產生大 電流及過熱現象等,此方面問題已廣受重視與 討論,解決方法也不勝枚舉,目的皆希望以低 功率方式進行測試,避免傷害電路,並取得高 可靠的測試結果[1,2]。掃瞄串(scan chain) 已是普遍使用的測試設計,也常應用於內建自 我測試(BIST)的方法中,經文獻[3]證明,整個 電路在測試時,待測電路會消耗近 80%的全部 功率,其次是時脈樹(clock tree),而掃瞄串 及 BIST 電路則消耗不到 5%的功率,因此若在 位移(shift)掃瞄串資料時,阻止待測電路跟隨 著掃瞄串信號變化,可預期將減少相當多的測 試功率。文獻[4]即已建議修改掃瞄正反器內部 電路,於每個正反器接至原電路的線路上,加 入一個 NAND 或 NOR 邏輯閘,由測試模式(test mode)信號控制,在位移掃瞄串資料時,固定這 些 邏輯閘的 輸出值 , [3] 使 用此方 法,並 以 WSA(Weighted Switching Activity)計算整個 電路的測試功率,實驗顯示可減少 78%的測試 平均功率(average power),在峰值功率(peak power)部份則表現平平,追究其原因,明顯地 在每次掃瞄串抓取(capture)測試結果時,正反 器輸入值仍被送入組合電路中,如此與不加入 這些邏輯閘之掃瞄測試比較,兩者的峰值功率 是相當接近的[3]。 在每個掃瞄正反器與組合電路之間加入多 工器(multiplexer),亦可阻隔位移資料時的影 響[5],但此種設計會明顯增加較多的電路面積 及增長原電路信號運作時間。為了不影響電路 的設計速度,[3]有提到可在部份正反器加入邏 輯閘,以避開與電路速度相關的正反器,可惜 其未提供實際做法與實驗資料。 掃瞄串與組合電路之間所加入的邏輯閘, 亦可使用如圖 1 之兩種設計方式,此與文獻[6] 所提相似,雖然在[6]中,AND(OR)閘另一輸入2 Q Q SET CLR D 0 1 Scan_enable SCi+1 Sci-1
Scan Cell SCi
C om bin ati on al L og ic B lo ck 圖 1(a) 控制邏輯值為 0 之設計方法 SCi+1 Q Q SET CLR D 0 1 Scan_enable Sci-1 Scan Cell SCi C om bin ati on al L og ic B lo ck 圖 1(b) 控制邏輯值為 1 之設計方法 為測試點驅動(test point enable)信號,但該 文有提到此信號可使用掃瞄驅動(scan enable) 信號。此種方法同時使用 AND 及 OR 為控制閘, 因此在位移資料時,可分別控制邏輯閘輸出為 0 及 1,而文獻[3,4]則建議只使用一種控制閘 (NAND 或 NOR)。另外[6]也有提到只控制部份的 掃瞄正反器,可以降低測試峰值功率,其選擇 部份正反器的方法是限定允許之峰值功率最大 值,然後利用 ILP(integer liner programming) 方法分析每組測試圖樣(test pattern)之功率 消耗,不符合允許值者則找出需要加入控制閘 (AND 或 OR)之部份正反器,相對於將所有正反 器加入控制閘的方法,實驗顯示只要在 7%的正 反器加入控制閘,即能降低 30%的峰值功率, 而平均功率也會跟著降低 30%左右[6],由於 ILP 方法會隨著電路增大而花費相當長時間, 因此並不適用於大型電路[7]。 文獻[8]亦有研究選擇部份的掃瞄正反器 加 入 控 制 閘 , 其 方 法 主 要 是 使 用 邏 輯 模 擬 (logic simulation)的觀念,給予電路許多種 隨意的輸入信號,將部份正反器加入控制閘, 模擬組合電路的反應,計算其中會產生確定值 (0 及 1)的線路數量,若此數量越多,表示電路 中有越多地方不會隨著掃瞄串位移動作而改變 資料,統計模擬結果後,決定適合加入控制閘 的正反器及所需之控制閘型式。實驗顯示控制 越多的正反器輸出,的確可得到越少的平均測 試功率,但卻會產生越大的峰值功率,文獻[8] 使用商業軟體 PrimePower[14]計算功率,結果 顯示將全部正反器加入控制閘時,會比全部未 使用控制閘增加非常多的峰值功率,此點與[3] 提供的結果大異其趣,而[3]是使用 WSA 計算功 率。為了降低峰值功率,文獻[8]設計控制閘電 路,阻檔位移及抓取信號送至組合電路,另外 則使控制閘分群及分時段送正反器值至組合電 路中,如此可減少大約 10%的峰值功率。 近年仍有人研究該如何使用控制閘降低平 均功率[9]與峰值功率[7],其中前者計算組合 電路內信號線發生 0 及 1 的機率,用來尋找較 容易改變這些信號的正反器,排序正反器後, 將 5%(或 20%)的正反器設計成圖 1 的模式,可 減少 45%(或 60%)的位移平均功率;相似方法有 擴大應用於 RTL 階層電路的合成過程[10]。在 降低峰值功率部份,文獻[7]利用每組測試圖樣 只 頇 抓 取 少 數 資 料 至 正 反 器 之 特 性 , 提 出 BEC(Block enable cell)此種額外的正反器, 用來產生信號給掃瞄正反器的控制閘,在每次 抓取資料時,BEC 會停止(freeze)該次不必要 動作的正反器,亦即控制大部份正反器的輸出 不影響組合電路,掃瞄串在位移資料時也是由 BEC 控制,所提方法是以 WSA 計算功率,峰值 及平均功率分別可以減少 59%及 69%,代價則是 要準備多一點的測試圖樣。 在此研究中,我們亦在部份的掃瞄正反器 輸出加入控制閘,專注於降低測試時的平均功 率,並考慮不影響電路效能。方法中有先找出 關鍵路徑(Critical path),其所連結之正反器 列為不加入掃瞄串之正反器,其他可加入掃瞄 串之正反器,則分析其輸出所接第一層邏輯閘 之輸入信號可控制性(controllability),以及 輸出所接邏輯閘數量,依此兩項決定掃瞄正反 器加入控制閘之優先順序。所提方法之目標與 前述一些文獻相似,也就是希望只用少許控制 閘即降低很多的平均功率,同時不影響原有障 礙涵蓋率(fault coverage)以及只增加少許電 路面積,實驗結果證明可以同時降低平均功率
3 與峰值功率。以下第二節將介紹方法,第三節 為實驗結果及分析,第四節則為結論。
二、研究方法
我 們 利 用 靜 態 時 序 分 析 軟 體 Design compiler[11]找出電路中較長的路徑,再使用 TetraMAX 軟體[12]找出一些有測試圖樣的最 長路徑,這些路徑為所考慮的關鍵路徑,選取 標準則是依照正反器改成掃瞄正反器以及加上 控制閘後,會增加的延遲時間而定。接著會使 用可測性分析軟體 TurboScan[13],針對這些關 鍵路徑始末端所接之正反器,計算正反器輸出 端所接第一層邏輯閘的數量以及輸入可控制 性,決定正反器將加入控制閘的順序,然後可 依據需求比例加入控制閘。以下分別說明所使 用的方法。 (一)不加入掃瞄串之正反器 前面所選定之關鍵路徑,在這些路徑起始 及結尾的正反器,將列為不加入掃瞄串之正反 器,以保留電路原有的速度效能,而電路也因 而將成為部份掃瞄(partial scan)設計形式。 (二)控制閘型式之決定 一個邏輯閘的輸入信號控制值(Controlling Value, CV),是指可立即決定邏輯閘輸出值的輸 入邏輯值,例如 AND 的 CV 值為 0,OR 的 CV 值則為 1。我們分析正反器輸出所接第一層的 邏輯閘(不包括反相器),在其輸入信號中(不包 括正反器的輸出信號),CV 值分別為 1 及 0 之 個數,若 CV 為 1 的輸入信號個數較多,將使 用 OR 為此正反器之控制閘(如圖 1(b)),否則將 選用 AND。例如圖 2 的正反器接著五個邏輯 閘,其中四個邏輯閘的 CV 值為 0,因此若此正 反器被選擇加入控制閘,將採用圖 1(a)型式, 使在掃瞄串進行位移時,此正反器所接控制閘 的輸出固定為 0。 (三)可控制性之運用 我們使用可測性分析軟體,計算正反器輸 出所接第一層邏輯閘(反相器除外)的其它輸入 Q Q SET CLR D AND_0 AND_1 AND_2 NAND_2 NOR_2 G1 圖 2. 控制閘類型之選擇範例 端可控制性,該軟體會以數值表現控制這些輸 入為 CV 值之困難度,我們以 CV_Y 表示此值, 控制輸入為非 CV 值之困難度則以 NCV_Y 表 示。就一個邏輯閘的一個輸入而言,若其 CV_Y 值小於 NCV_Y 時,表示此輸入較容易被控制 在 CV 值,也就是此邏輯閘輸出較有可能固定 在 一 個 邏 輯 值 ; 若 此 輸 入之 CV_Y 值大於 NCV_Y,則表示此輸入較有可能表現為 NCV 邏輯值,此邏輯閘其他輸入有信號發生變化, 較有可能將變化傳遞至邏輯閘輸出。我們使用 此特性,輔助決定正反器加入控制閘的優先順 序,方法是分析正反器輸出所接第一層邏輯閘 的其他輸入,將這些輸入的(CV_Y - NCV_Y) 加總起來,若此值越大,表示此正反器的輸出 值在變化時,較有可能引起組合電路部份跟著 變化邏輯值,所以此正反器要較優先考慮加入 控制閘。以圖 3 為例,正反器 DFF1 所接第一 層邏輯閘的其他輸入信號為(G1,G2,G5),分別 擁有的 CV_Y 及 NCV_Y 表示於圖 4,其中 G2(30,10)是表示控制 G2 為 0 之困難度為 30, 控制其為 1 之困難度則為 10,因 NAND_0 為 NAND 閘,所以 G2 之 CV_Y 及 NCV_Y 分別 為 30 及 10,同理 G4(20,1)則是顯示著 G4 之 CV_Y 及 NCV_Y 分別為 1 及 20。就 DFF1 而 言,要參考之(CV_Y - NCV_Y)加總為(6-6) + (30-10) + (20-5) = 35,DFF2 要參考之加總則為 (5-5) + (1-20) = -19,前者的值較大,也就是前 者改為掃瞄正反器後,於位移時其輸出邏輯值 的變化較會影響著組合電路,因此最好在前者 輸出先加入控制閘。4 AND_0 OR_0 NAND_0 NOR_0 D Q D Q AND_1 G1 G2 G3 G4 G5 C o m b in at io n al L o g ic B lo ck C o m b in at io n al L o g ic B lo ck D1 D2 DFF1 DFF2 圖 3. 範例電路 AND_0 OR_0 NAND_0 NOR_0 D Q D Q AND_1 G1(6,6) G2(30,10) G3(5,5) G4(20,1) G5(20,5) C om bin ati on al L og ic B lo ck C om bin ati on al L og ic B lo ck D1 D2 DFF1 DFF2 圖 4. 部份加上可控制性數值之範例電路 (四)掃瞄正反器加入控制閘之順序決定 除了前一節所提其他輸入之可控制性差值 加總,我們還有考慮正反器輸出所接的邏輯閘 數量,也就是正反器輸出線段的 fanout 值。在 決定正反器輸出加上控制閘的順序時,此 fanout 值與前面所提的(CV_Y - NCV_Y)加總,加總方 式是分別乘上一個權重值(weight number),再加 總起來,做為評定加上控制閘順序的參考值。 以圖 4 為例,我們定 fanout 的權重值為 20, (CV_Y - NCV_Y)加總的權重值則為 1,因此 DFF1 的參考值為 20 3 + 35 = 95,DFF2 的參 考值為 20 2 - 19 = 11,前者較大,因此會先 在 DFF1 加入控制閘,然後依本章第(二)節判斷 方式加入如圖 1 之型式。
三、實驗結果
我們選取 ISCAS89 標準測試電路中的 7 個 較大電路進行實驗,使用 TSMC 0.18μm 元件資料庫,工作平台為 Linux Cent OS 5,CPU 為 Intel Xeon 2.33GHz,記憶體為 26GB。實驗先不考慮 前一章第一節的方法,也就是採用完全掃瞄 (Full scan)方式,將正反器組成一條掃瞄串,只 使用一個時脈訊號控制,位移與抓取時的時脈 頻率皆設為 10MHz。使用 TetraMAX 產生轉態 延遲障礙(transition delay fault)之 LOC(launch- on-capture)測試圖樣。
電路在整個測試過程的平均功率及峰值功 率,是使用 PrimePower 模擬所得,方法是以 VCD(value change data)格式紀錄測試圖樣輸入 過程,再交給 PrimePower 分析功率。 表 1 顯示著一些結果與比較,第二欄是所 找到測試圖樣之錯誤涵蓋率(fault coverage);將 所有正反器加上控制閘,模擬測試時之功率, 相較於原本全無控制閘之完全掃瞄,平均功率 會下降許多,表 1 第三欄即為下降之百分比, 計算方式為(Pno-gating-Pfull-gating)/ Pno-gating,其中
Pno-gating 為原本完全不加控制閘之測試功率, Pfull-gating 為全部正反器加入控制閘之測試功 率,第四及第五欄分別為文獻[8]及[3]之下降百 分比,其中[8]與我們同樣使用 PrimePower 計算 功率,文獻[3]則是使用 WSA,後者結果卻與我 們的較為接近。 表 1. 正反器全有控制閘之平均功率下降比較 Circuit F.C. Decrease [8] [3] s5378 86.80% 84.85 38.49 73.12 s9234 82.23% 91.28 45.44 82.98 s13207 89.45% 85.15 28.96 70.97 s15850 84.96% 89.41 28.42 78.82 s35932 77.07% 78.77 30.11 82.45 s38417 97.79% 85.86 21.45 80.41 s38584 81.95% 82.89 24.15 77.65 相較於原本的電路,所有正反器在加上控 制閘後,測試時峰值功率是否會上升,文獻[3] 的結果顯示不會,文獻[8]的結果則上升許多, 如表 2 第二及第三欄即為上升之百分比,我們 的實驗使用 PrimePower 找出峰值功率,發現確 實會增加許多,如表 2 第四欄所示,這些峰值 功率皆發生在抓取動作時,也就是所有正反器 一起提供測試信號給電路或者從電路中抓取測 試結果所引起。此表之第五欄是我們選擇 30%
5
表 2. 峰值功率上升百分比之比較
Circuit [3] [8] full-gating 30% gating
s5378 -1.50 5.67 7.61 -30.52 s9234 9.28 4.74 -3.41 -10.96 s13207 -1.27 17.89 2.76 0.00 s15850 1.76 30.98 88.03 0.00 s35932 -2.39 42.70 1.00 1.00 s38417 -2.49 17.41 103.21 -18.91 s38584 -0.22 60.03 1.13 1.06 的正反器加入控制閘,模擬測試過程所得之峰 值功率上升百分比,其顯示著只在部份正反器 加入控制閘,即有較低峰值功率的可能,若有 實現類似文獻[6]改變圖樣以降低峰值功率之方 法,應該可有更好的結果。 在考慮關鍵路徑的部份掃瞄電路部份,我 們設計使用兩個時脈(clock)訊號,分別控制掃 瞄正反器及未加入掃瞄串之正反器,如此可在 平移週期時 freeze 部份電路,降低更多功率。 由關鍵路徑所決定之部份掃瞄電路,為了 確定其可測性仍相當高,我們在表 3 將其與完 全掃瞄進行比較。第二欄為完全掃瞄電路的錯 誤涵蓋率,第三欄為部份掃瞄電路的錯誤涵蓋 率,第四欄則是關鍵路徑所決定之掃瞄正反器 比例。我們可以看到在較大的五個電路,部份 掃瞄的錯誤涵蓋率會較高,而在 s5378 及 s9234 的表現則較差,原因是未加入掃瞄之正反器, 在進行部份掃瞄設計時非常需要放入掃瞄串, 才容易為電路尋找測試圖樣,因此若要得到夠 高的錯誤涵蓋率,必頇考慮在掃瞄串中,因此 也會犧牲一些電路速度。 只在部份的掃瞄正反器後方加入控制閘, 表 3. 完全掃瞄與部份掃瞄之比較 即可達成相當多的功率降低,亦是我們要觀察 的目標。圖 5 至 11 即為七個電路的結果,其中 包括完全掃瞄及部份掃瞄兩種電路,而部份掃 瞄電路只有可能在掃瞄正反器後方加入控制 閘,圖中橫軸為正反器加入控制閘之比例,縱 軸則為平均功率下降之百分比,此值之計算方 式與前面所提之方式不同,如下: n o g a t i n g p a r t i a l g a t i n g n o g a t i n g f u l l g a t i n g P P P P 功率下降比例 (1) 其中 Ppartial-gating 為部份正反器加入控制閘 之測試功率。各圖中暗黃線及淺藍線分別為完 全掃瞄電路及部份掃瞄電路之功率下降百分 比,雖然選擇越多正反器加入控制閘,可以降 低越多的平均功率,但會延長訊號傳遞時間以 及增加些電路面積,因此最好能只在少許的正 反器加入控制閘,即可降低許多平均功率。圖 中顯示部份掃瞄與完全掃瞄在功率下降比例是 相當接近,但整個測試過程的功率,部份掃瞄 是低於完全掃瞄電路的,也就是在測試功率上 是表現較優的,文獻[8]只有提供選擇 50% 及 圖 5. 電路 s5378 之功率下降比例 圖 6. 電路 s9234 之功率下降比例 Circuit Full scan Partial scan
F.C F.C S.R s5378 86.80% 70.89% 82.12% s9234 82.23% 67.54% 91.00% s13207 89.45% 90.89% 99.69% s15850 84.96% 88.40% 99.63% s35932 77.07% 88.45% 83.32% s38417 97.79% 97.93% 99.33% s38584 81.95% 90.52% 99.72%
6 圖 7. 電路 s13207 之功率下降比例 圖 8. 電路 s15850 之功率下降比例 圖 9. 電路 s35932 之功率下降比例 圖 10. 電路 s38417 之功率下降比例 圖 11. 電路 s38584 之功率下降比例 80%正反器加入控制閘的結果,我們在此兩種 選擇所得的功率下降百分比,與[8]的結果放置 於表 4 進行比較,我們的結果明顯皆較好,而 表中第三欄及第五欄的資料是取[8]所提供之最 好結果,就平均功率下降百分比而言,我們的 結果(包括表 1)是較合理的,未來將進一步驗證 之。面積增加的部份,就這些電路而言,全部 正反器加入掃瞄閘時,增加之邏輯閘數,最多 為原電路邏輯閘數的 7.8%。 表 4. 與[8]功率下降百分比之比較 Circuit 50%加入控制閘 80%加入控制閘 Ours [8] Ours [8] s5378 55.19 30.13 74.72 39.22 s9234 72.41 31.15 84.71 44.83 s13207 62.50 23.92 78.89 32.05 s15850 58.83 22.52 75.65 28.26 s35932 35.95 20.01 55.54 29.75 s38417 64.84 15.65 81.32 23.95 s38584 53.30 16.49 65.80 25.92
四、結論
在此研究中,我們依關鍵路徑決定未加入 掃瞄串之正反器,形成部份掃瞄電路,然後以 新的方法選擇部份的掃瞄正反器加入控制閘, 另外也使用兩個時脈訊號分別控制掃瞄正反器 及未掃瞄正反器,達成少改變電路即降低測試 平均功率的目標。相較於最近的方法,我們同 樣可以選擇 10%的正反器加入控制閘,即減少 50%的平均功率。雖然所提方法目標不在於降低 峰值功率,實驗結果顯示只在部份正反器加入 控制閘,可以比原本電路或全部加入控制閘的7 電路,得到較低的峰值功率。部份掃瞄設計可 以避免影響電路效能並得到較低的測試功率, 但測試涵蓋率的部份還是需要再加考慮。 致謝 此研究係受國科會計畫 NSC98-2221-E- 033-053 之補助。
參考文獻
[1] P. Girard, “Survey of low-power testing of VLSI circuits,” IEEE Design & Test of
Computers, vol. 19, no. 3, 2002, pp. 80-90.
[2] S. Ravi, "Power-aware Test: Challenges and Solutions," in Proc. Int. Test Conf., Oct. 2007, Lecture 2.2, Page(s):1-10.
[3] S. Gerstendorfer and H.-J. Wunderlich, "Minimized Power Consumption for Scan-Based BIST," in Proc. Int. Test Conf., Sep. 1999, Paper 4.1, pp. 77-84.
[4] A. Hertwig and H.-J. Wunderlich, “Low Power Serial Built-In Self-Test,” Proc.
European Test Workshop, 1998, pp. 49-53.
[5] X. Zhang and K. Roy, "Power Reduction in Test-Per-Scan BIST," in Proc. 6th IEEE
On-Line Testing Workshop, July 2000,
pp.133-138.
[6] R. Sankaralingam and N. A. Touba,
"Inserting Test Points to Control Peak Power During Scan Testing," in Proc. 17th IEEE Int.
Symp. on Defect and Fault Tolerance in VLSI Systems, Nov. 2002, pp.138-146
[7] X. Lin and J. Rajski, "Test Power Reduction by Blocking Scan Cell Outputs," in Proc.
17th Asian Test Symp., Nov. 2008,
pp.329-336.
[8] M. ElShoukry, C. P. Ravikumar, and M. Tehranipoor, “A Critical-Path-Aware Partial Gating Approach for Test Power Reduction,”
ACM Trans. on Design Automation of Electronic Systems, Vol. 12, No. 2, Article
17, April 2007, 22 pages.
[9] X. Lin and Y. Huang, “Scan Shift Power Reduction by Freezing Power Sensitive Scan Cells,” J. Electronic Testing, Vol. 24, No. 4, Aug. 2008, pp.327-334.
[10] E. Alpaslan, et al., “Reducing Scan Shift Power at RTL,” in Proc. 26th VLSI Test
Symp., April 2008, pp.139-146.
[11] Synopsys Design compiler Manual Version 2007.03
[12] Synopsys TetraMAX ATPG. 2007.03. [13] SYNTEST TurboScanTM Reference Manual
Version2.8.0 September 2003.
[14] Synopsys PrimePower Manual Version 2006.06.