引言
隨著便攜式設備和無線通訊系統在現實生活中越來越廣泛的使用,可測性設計(DFT)的功耗問題引起了VLSI設計者越來越多的關注。因為在測試模式下電路的功耗要遠遠高于正常模式,必將帶來如電池壽命、芯片封裝、可靠性等一系列問題。隨著集成電路的發展,內建自測試(BIST)因為具備了諸多優越性能(如降低測試對自動測試設備在性能和成本上的要求、可以進行At—speed測試及有助于保IP核的知識產權等),已成為解決SoC測試問題的首選可測性設計手段。
在BIST中常用線性反饋移位寄存器(LFSR)作為測試模式生成器(TPG)。LFSR必須產生很長的測試矢量集才能滿足故障覆蓋率的要求,但這些矢量消耗了大量的功率。
另外,在系統工作模式下,應用于給定電路的連續功能輸入矢量具有重要的相關性,而由LFSR產生的連續測試模式之間的相關性很低。因此,在自測試期間會增加電路中節點的翻轉活動,導致功耗增大。
2 功耗分析和WSA模型
CMOS電路中功耗的來源主要分為靜態功耗和動態功耗兩種。漏電流或從電源供給中持續流出的其它電流導致靜態功耗。動態功耗則是因為短路電流和負載電容的充放電,從而由電路正常工作時的功能跳變所引起的,它包括功能跳變、短路電流、競爭冒險等。對于CMOS工藝來說,目前動態功耗是電路功耗的主要來源。
對于節點i上每次開關上的功耗為:
式中,Si是單周期內翻轉的次數,Fi是節點i的扇出,C0是最小輸出負載電容,VDD是電源電壓。
從式(1)看出,門級的功耗估計與Si和Fi的乘積和節點i的翻轉次數有關。節點的扇出由電路拓撲決定,而它的翻轉次數由邏輯模擬器來估計。這個乘積即稱為節點i的權重翻轉活動(Weighted Switching Activity,WSA)。在測試過程中WSA是節點i功耗Ei的唯一變量,所以WSA可作為該節點的功耗估計。對于一對連續的輸入矢量TPk=(Vk-1,Vk),電路總的WSA為:
式中i是電路中所有節點的個數,S(i,k)是由TPk所激勵節點i的翻轉次數。
根據式(2),考慮長度為L的測試矢量TS作為電路的輸入矢量,電路總的WSA為:
根據以上功率和能量消耗的表達式,再給定一個電路設計為CMOS的工藝和供給電源,可得以下結論:
(1)電路中節點i的跳變數成為唯一的影響能量、最大功耗和平均功耗的參數。
(2)測試中時鐘的頻率也影響著平均功耗和最大功耗。
(3)測試長度,即施加在待測電路(CUT)上的測試向量的數目一只影響總的能量的消耗。
3 LFSR優化的低功耗方法
通過對測試過程的功耗分析可知,選擇BIST低功耗的方案時,一方面可以通過減少測試序列長度來實現(但該方法往往以犧牲故障覆蓋率為代價),另一方面降低WSA值也可實現系統功耗的降低。
在BIST結構中,線性反饋移位寄存器(LFSR)由于結構的簡單性、規則性、非常好的隨機測試矢量生成特性、用來壓縮測試響應時的混淆概率非常小等特點,在DFT的掃描環境中很容易集成,所以當從掃描DFT設計升級成BIST設計時,LFSR因其硬件開銷很小而成為BIST中應用最廣的矢量生成結構。
基于LFSR優化的BIST結構可分為test—per-一scan和test—per—clock兩類結構。test—per—scan技術引起的面積開銷較小,測試結構簡單,易于擴展:而test—per—clock在一個周期內可實現矢量的生成和響應壓縮,能夠完成快速的測試。
3.1 基于掃描的test—per—scan方式
3.1.1 基本結構
test—per一scan內建自測試的目標是盡可能的降低硬件開銷。這種結構在每個輸入輸出端口處使用LFSR與寄存器的組合來代替LFSR。圖l是test—per-scan內建自測試的基本電路結構。在內建自測試矢量下,LFSR生成測試矢量并且通過掃描移位寄存器(shift register)將測試矢量移位到待測電路(CUT)的輸入端,同時響應被移入LFSR并壓縮。
3.1.2 原理
全掃描或部分掃描設計中由于移位會產生比較大的功耗。基于掃描的test一per-scan低功耗設計方法需要修改標準的掃描設計,降低狀態轉換活動率。沒計修改包括在移位期間用于屏蔽掃描路徑活動的一些門控邏輯,以及對用于抑制隨機模式的附加邏輯進行綜合等。
3.1. 3 部分掃描算法
根據以上掃描設計原理,在消除測試序列中的冗余模式之后,采用圖2所示的部分掃描算法對待測電路進行部分掃描設計。其步驟如下:
①首先刪除所有自反饋時序邏輯對應的頂點。
②在數據流圖中查找所有的強連通單元(Strongly Connected Components,簡稱SCC)。
③依次刪除SCC所有頂點中最大的頂點。
參考文獻采用上述算法對ISCA89基準電路掃描BIST測試,并采用ATPG工具和仿真工具VCS故障模擬和功能模擬,表1列出測試覆蓋率、平均功耗和峰值功耗數據。
由表l數據可見,部分掃描對待測電路測試覆蓋率影響非常小(《3.5%),且對電路進行部分掃描設計后,掃描寄存器數目大大減少,所以在掃描移位周期需要同時觸發寄存器的數目也大大減少,由此引起待測電路內部節點的翻轉數目也大大減少,可達到降低BIST的平均功耗和峰值功耗的目的。
3.2 基于時鐘的test—per-clock方式
3.2.1 基本結構
一個test-per-clock內建自測試基本結構如圖3所示。每一個測試時鐘L2SR生成一個測試矢量。多輸人特征寄存器(Multiple-一Input Signature Register,簡稱MISR)壓縮一個響應矢量。
3.2.2 原理
在掃描測試中,主要功耗包括邏輯功耗、掃描功耗和時鐘功耗。前面給出的方法主要集中在降低邏輯功耗或掃描功耗,但沒有降低時鐘功耗。基于時鐘的低功耗test—per—clock方式可以同時降低這3種功耗。該方法采用低功耗的test—per-一clock BIST結構。對LFSR進行修改后,用作TPG以生成低功耗的測試矢量。使用這種經過修改的時鐘方案會降低被測電路、TPG和饋給TPG的時鐘樹的跳變密度。通過降低被測電路、TPG和時鐘樹的狀態轉換活動率來降低BIST期間的功耗。
由于來源于標準掃描結構的測試模式可直接用于低功耗掃描結構,這種方法與采用傳統掃描結構所達到的故障覆蓋率和IC測試時間基本一致。與傳統掃描結構相比,面積開銷很小,在電路性能方面也沒有損失。
3.2.3 低功耗測試矢量生成
對于test—per—clock結構來說,減少測試功耗主要通過優化測試矢量來實現,而測試矢量生成技術是指產生確定性測試矢量的技術。
測試矢量生成方式在生成測試模式時,除了要達到傳統的ATPG目的,還需考慮降低測試期間的功耗。基于ATPG的方法又分為2種:①集成的ATPG優化方法,該方法的測試模式在測試生成期間進行低功耗優化;②ATPG之后的優化方法,該方法的測試模式首先由傳統的ATPG生成,然后再進行功耗優化。
(1)與模擬退火算法相結合測試矢量生成的步驟是:首先根據模擬退火算法將測試模式分組成若干個有效測試矢量組與無效測試矢量組兩部分;然后根據算法原理,生成控制LFSR運行的控制碼;在這些控制碼的作用下,LFSR就跳過大量的無效測試矢量,生成由有效測試矢量構成的精簡的測試矢量序列。其基本流程如圖4所示。
(2)與進化算法相結合依據測試矢量生成技術原理,采用基于遺傳算法的測試模式生成器,用于計算冗余的測試模式。在冗余測試模式中,一個故障由幾個不同的序列覆蓋。然后使用一個優化算法,從前面已計算過的測試序列組合中選擇一個最佳子集,使其峰值功率最小,而不影響故障覆蓋率。參考文獻采用ISCAS’85Bench—mark中的組合電路作為實驗電路,在保持故障覆蓋率不變的情況下,對待測電路的測試功耗a與使用模擬退火算法的BIST結構的測試功耗b相比較,得到的結果如表2所示。
由表2可知,滿足相同故障覆蓋率時,采用模擬退火算法分組測試矢量后,WSA大幅降低,總的WSA改善率在73.44%~94.96%之間。由于減少測試矢量,測試時間也大為縮短。
4 結語
采用線性反饋移位寄存器生成測試矢量的BIST結構可分為test—per—scan和test—per—clock兩大類,相應的實現低功耗BIST測試方法也分別針對test一per—scan和test—per一clock結構。對tesl—per-scan結構模式,減少測試功耗主要通過優化掃描鏈來實現;對于test—per-clock結構模式,減少測試功耗主要通過優化測試矢量來實現。test—per—scan技術引起的面積開銷較小,測試結構簡單,易于擴展;而test—per—clock在一個周期內可實現矢量的生成和響應壓縮,能夠完成快速的測試。當然,隨著測試功耗研究的深入,將會有更好的方法使功耗、故障覆蓋率、系統性能等問題達到最優。
責任編輯:gt
評論
查看更多