徐桂娟,郜 明
(貴州大學 理學院,貴州 貴陽 550025)
隨著大規模集成電路工藝技術的發展,特別是在系統芯片(System On a Chip,SOC)中集成的晶體管數量越來越多,集成度日趨增大,芯片功耗已經成為集成電路設計領域一個不可回避的關鍵問題。內建自測試(Built-In Self Test,BIST)技術是目前SOC可測試性技術的主要方法,它使電路本身產生測試信號,自行檢查測試結果,因而在硬件電路中需增設測試信號發生器、輸出響應分析器和測試控制器3部分來完成自測試功能。一般來說,芯片有正常和測試兩種工作模式。但是因為測試矢量間的低關聯特性,使得在測試期間電路中節點的翻轉活動率增加,導致測試時的功耗通常會顯著高于正常工作時的功耗。研究表明芯片在測試階段的功耗是正常工作狀態下功耗的兩倍之多[1-2]。目前,低功耗測試技術的研究還不成熟,基本上處于蓬勃發展的學術研究階段。降低測試期間的功耗是學術界和工業界研究的熱點問題。因此研究實用的可測試性設計中降低功耗的一些關鍵技術和方法,對于促進我國IC設計業發展具有很重要的現實意義。
通過研究可知,在COMS電路中,功耗的來源包括4種:功能跳變、短路電流、競爭冒險和漏電流[3]。具體可分為動態功耗和靜態功耗兩類。
靜態功耗主要是由于襯底漏電以及亞閾值導電特性造成的電能消耗。但由于CMOS結構的互補對稱性,同一時刻只有一個管子導通,因此它相對較小;而動態功耗是電路工作時狀態發生改變而產生的,它主要由3個部分組成:電路瞬間導通引起的短路功耗、邏輯翻轉引起的功能跳變、通路延時引起的競爭冒險功耗。短路功耗是由于輸入信號不是理想的方波,在輸入信號上升或下降的過程中會出現NMOS管和PMOS管同時打開的時刻,形成一個從電源到地的通路,消耗電能。功能跳變功耗是由電路在開關過程中對負載電容充放電所產生的。競爭冒險功耗是電路由于出現競爭冒險所帶來的額外能量損失。在當前的CMOS電路中,動態功耗是主要功耗。
為了分析被測電路中的動態功耗情況,我們可以從以下數學的表達式中了解其基本構成及主要影響因素。
每次開關電路節點i所消耗的功耗為:

其中,VDD為電源電壓,Ci為節點i的輸出電容。
在一個周期中,節點i上功耗可估計為:

式中,Si是一個周期內節點i翻轉的次數。
若連接到超過一個門的節點,電路具有較高的寄生電容,電容Ci與節點的扇出系數Fi成正比,即Ci=C0Fi。所以在CMOS電路中,計算一段時間內電路節點i所需的能量公式為[4]:

式中,C0為單位輸出的負載電容。由于電源電壓VDD和單位輸出負載電容C0是定值,所以節點i所消耗的能量Ei僅與(Si·Fi)成正比,由此可以用(Si·Fi)來衡量該節點所消耗能量的大小,并將Si與Fi的乘積Si·Fi稱為節點i的加權翻轉活動因子(Weighted Switching Activity,WSA),可用于估算電路的功耗。對于兩個連續輸入的測試矢量TPk=(Vk-1,Vk),電路總的WSA為:

式中,i包括電路中所有節點的個數,S(i,k)為矢量TPK激勵節點i的翻轉次數,考慮到整個測試矢量集TP=(V1,V2,……Vn)電路總的WSA為:
EXCEL計算模型測算結果見表5,ARC6阿芙拉型船舶日平均期租租金為2.4萬美金時,凈現值和內部收益率處于盈虧點。

式中,k=2,3,……,n
由式(4)、(5)可知,減少被測電路CUT輸入端的翻轉次數S(i,k)便可降低整個測試過程中電路所消耗的能量。所以WSA可以作為降低功耗的主要指標來表征電路功耗的變化。
基于以上所述,為了減少被測電路內部節點的開關翻轉活動率,提高測試矢量間的相關性,降低測試功耗,以達到減少跳變的效果,即采用隨機單輸入跳變測試向量(Random Single Input Change,RSIC)。這種設計沒有降低原序列的隨機特性,卻可以減少節點的翻轉次數,進而達到降低功耗的效果。
RSIC序列生成電路的原理圖如圖1所示[4]。假設時刻t,偽隨機生成電路的向量A(t)=a1(t)…am(t),對應的十進制值為k(t),使用代碼轉換電路來實現這種轉換,并只映射到代碼轉換電路輸出的第k(t)位,然后對該位取反,產生RSIC向量V(t)=V1(t)…VN(t),再把它加到被測電路(CUT)上。

圖1 RSIC序列生成原理圖Fig.1 Principle of RSIC sequence generation
表1分別列出4位偽隨機序列、RSIC序列和格雷碼,可以看出,偽隨機序列的每一位都具有隨機性,格雷碼每次只變化一位,而RSIC序列兼具了前兩者的特點。因RSIC序列的生成與種子向量、轉換電路有關,所以對RSIC序列的特性應作全面系統的分析。

表1 按照圖1產生的一個RSIC序列Tab.1 RSIC sequence generated according to fig.1
為了生成RSIC測試序列,在理論上需要滿足一些條件,假設測試向量集S=V(1)V(2)…V(l)…V(L)是由L個相鄰的n位矢量V(l)所組成,每個向量可以從集合V={V0,V1,…,Vj,V2n-1}中取值,這里j是n位矢量Vj對應的十進制值。

才成立。 也就是說,對于任意時刻t>0,V(l)與V(l-1)僅有一位不同。
RSIC序列生成準則[6]:
準則l:A(l)與V(l)之間的代碼轉換需要滿足方程(6);
準則2:a(l)與a(l-1)相互獨立;
準則3:序列S=V(1)V(2)…V(l)…V(L)的周期不小于測試長度L;
如果測試序列滿足以上3個準則也就滿足了RSIC測試序列在理論上的約束,該測試序列就是RSIC測試序列。
低功耗測試向量的基本思想是使被測電路內部節點的跳變率盡可能少,而創建低功耗測試向量,以達到有效減少被測電路內部節點的開關翻轉活動率,進而有效降低測試功耗。已有的研究結果表明:相鄰測試向量的海明距離越小,則測試功耗越小。隨機單輸入跳變測試序列是具有最小的海明距離的測試序列。
海明距離的定義為:
若給定被測電路的兩個測試向量為:X=(x1,x2, ……,xn)和Y=(y1,y2, …… ,yn), 則 這 兩 個 測 試 向 量 的 海 明 距 離(Hamming Distance)dn可表示:

隨機單輸入跳變測試序列可用VHDL語言加以描述:


根據此程序,我們可以得到隨機單輸入跳變測試矢量生成器的RTL級電路。圖2為生成的序列仿真波形。

圖2 隨機單輸入跳變測試序列Fig.2 Random single input change testing sequence
結果表明,在FPGA集成化設計環境下使用EP1C6Q240C8器件,所使用的全部邏輯元件不超過1%。實驗生成的測試序列能夠產生很小的海明距離,可以降低被測電路的開關翻轉活動率,從而提高測試向量之間的相關性和優化設計,實現測試期間的低功耗。
近年來的研究表明,測試向量的優劣直接決定著被測試電路的功耗。文中從提高測試向量之間的相關性和減少測試向量的海明距離兩個方面,設計了一種基于FPGA的隨機單輸入跳變測試向量生成器。所產生的測試向量序列兼具了隨機性和相關性的特點,可以降低被測電路的WSA,從而達到降低測試功耗的目的。
[1]YE Bo,LI Tian-wang,ZHAO Qian,et al.A low power test pattern generation for built-in self-test based circuits[J].Internal Journal of Electronics,2011,98(3):301-309.
[2]肖繼學,謝永樂,胡兵,等.具有鄰域子空間空間電路模塊的低功耗測試設計[J].儀器儀表學報,2010,31(1):137-141.
XIAO Ji-xue,XIE Yong-le,HU bing,et al.Design for low power test of circuit modules with contiguous subspace[J].Chinese Journal of Scientific Instrument,2010,31(1):137-141.
[3]Kim B.A New Low Power Test Pattern Generator using a Transition Monitoring Window based on BIST Architecture[C]//Calcutta:Proceeding of the 14th Asian Test Symposium,2005:230-235.
[4]David R,Girard P,Landrault C,et al.On using efficient test sequences for BIST[C]//VLSI Test Symposium,2002:145-150.
[5]雷紹充,邵志標,梁峰.生成確定性測試圖形的內建自測試方法[J].西安交通大學學報,2005,39(8):880-884
LEI Shao-chong, SHAO Zhi-biao, LIANG Feng.New Builtin-Self-Test technique for generating deterministic test pattern[J].Academic Journal of Xi'an Jiaotong University,2005,39(8):880-884.
[6]王義,傅興華.低功耗單輸入跳變測試理論的研究[J].微電子學與計算機,2009,26(2):5-7.
WANG Yi,FU Xing-hua.The tesing theory research for low power consumption single input change[J].Electronics and Computer,2009,26(2):5-7.
[7]李曉維,韓銀和,胡瑜.數字集成電路測試優化——測試壓縮、測試功耗優化、測試調度[M].北京:科學出版社,2010.