董宜平,謝達,宋林峰,周道逵
(中國電子科技集團公司第五十八研究所,江蘇無錫214072)
V4系列FPGA全局時鐘緩沖器的內(nèi)建自測試研究*
董宜平,謝達,宋林峰,周道逵
(中國電子科技集團公司第五十八研究所,江蘇無錫214072)
提出一種新的基于V4系列FPGA全局時鐘緩沖器的內(nèi)建自測試方法。目前關鍵時鐘緩沖器內(nèi)建自測試正面臨巨大的挑戰(zhàn),時序問題是目前發(fā)現(xiàn)的時鐘緩沖器內(nèi)建自測試的主要問題。由于時鐘緩沖器輸入端的同步開關會產(chǎn)生不同的相移,使得正常的器件內(nèi)建自測試中產(chǎn)生故障指示。此外,目前時鐘緩沖器內(nèi)建自測試使用的是普通的布線資源連接時鐘信號,而不是使用專用的時鐘布線資源,這種方法會加劇時序問題。提出一種改良的方法去解決內(nèi)建自測試的時序問題,并討論這種方法對于可測試的最大時鐘頻率和總測試時間的影響。所有測試環(huán)節(jié)均在V4系列FPGA上實現(xiàn)。
內(nèi)建自測試;時鐘樹
內(nèi)建自測試方法在過去15年里已成為FPGA領域的一個熱點話題。其基本要點是配置FPGA使其實現(xiàn)對自身的測試并返回測試結果,通過測試結果可以判斷器件是否達到需要的功能和性能。測試完成后,測試邏輯便不復存在,這使得在正常配置特定的功能后沒有面積和性能方面的損失。由于其可編程的特性,為保證高覆蓋率和測試多模式下運行情況,需要反復多次配置資源。內(nèi)建自測試BIST方法已被開發(fā)用于FPGA的各種主要可編程資源的測試和驗證,包括可配置邏輯塊(CLB),隨機存取存儲器(RAM),數(shù)字信號處理器(DSP)和輸入/輸出(I/O)邏輯。
內(nèi)建自測試方法已經(jīng)被報道用于測試時鐘緩沖器,但是,在使用這種方法的同時也發(fā)現(xiàn):時序問題的存在使得正常的器件通過內(nèi)建自測試方法測試時會提示測試故障或者測試未通過指示。本文提出一種改良的內(nèi)建自測試方法用于解決該方法存在的時序問題。
圖1為一個循環(huán)對比型FPGA內(nèi)建自測試構架,使用可編程的邏輯資源(CLB,DSP等)實現(xiàn)若干測試碼型發(fā)生器(Test Pattern Generator,TPG),輸出相應分析儀(Output Response Analyzer,ORA)由CLB實現(xiàn),而需要被測試的資源(例如CLB,RAM,DSP和IO單元),則被配置成被測試功能塊(Blocks Under Test,BUT)。因此,一旦FPGA被離線測試且發(fā)現(xiàn)可以正常運行,F(xiàn)PGA就可以被重新編程成需要的系統(tǒng)功能,且在沒有面積和性能損失的情況下完成可編程資源的測試。使用多個TPG依次向BUT提供測試信號,這樣也可以保證TPG發(fā)送錯誤的測試信號時被及時發(fā)現(xiàn)。
圖1 循環(huán)比較型內(nèi)建自測試構架
如圖1所示,每一個BUT都輸出到2個ORA中,并在ORA中和另外相同功能配置的兩個BUT輸出的值作比較。ORA的內(nèi)部邏輯結構如圖2所示,該模塊由一個同或門、一個與門、一個鎖存器和一個數(shù)據(jù)選擇器構成;ORA默認輸出為0,鎖存器默認輸出為1,當輸入ORA的兩個BUT輸出不一致時,鎖存器鎖存的數(shù)據(jù)為0,并使數(shù)據(jù)選擇器選擇0通道輸入的數(shù)據(jù)輸出,繼而ORA輸出的數(shù)據(jù)為1,這代表被測試的可編程資源存在故障和錯誤。這種基于比較的ORA結構可以滿足所有資源的單字節(jié)僅有通過和失敗兩種測試結果的測試。當存在參考的輸出值時,也可以用于可配置存儲器的回讀校驗。
圖2 ORA結構
為完成對目前器件的高覆蓋率,需要測試的資源必須多次被配置成多種工作模式。每一次內(nèi)建自測試程序必須依次被下載到FPGA中,且內(nèi)建自測試結果必須能夠確定該器件所測試的功能是否正常;然后周而復始直至完成一個高覆蓋率的全部測試內(nèi)容。使用提高內(nèi)建自測試方法效率的一個重要途徑是盡量減小FPGA配置次數(shù)即測試次數(shù),提高單次測試的覆蓋率;此外,下載時間也是決定總測試時間的一個重要因素,可以通過使用壓縮的配置文件減小下載文件來降低下載配置文件的時間。此外,通過部分可重構技術,只需要改變每一次測試的BUT模塊,其他資源保持不變,可以大大減小下載文件的大小和配置時間。
每個Virtex-4器件有32個全局時鐘緩沖器(BUFGCTRL)并分布在器件的中心列,這些緩沖器既可以用于驅動專用時鐘布線資源也可以用于系統(tǒng)中的其他高扇出信號(例如全局時鐘使能信號)。全局時鐘緩沖器可以配置成7種不同的模式,其中就包括BUFGCTRL模式。而BUFGCTRL模式是其他6種模式的集合,所有其他全局時鐘緩沖器模式均出自對BUFGCTRL的某些配置,所以,對全局時鐘緩沖器的內(nèi)建自測試其實就是針對BUFGCTRL模式的全局時鐘緩沖器的測試。如圖3所示,每一個緩沖器有8個輸入和1個輸出。BUFGCTRL具有S0、S1、CE0和CE1 4條選擇線。它還有IGNORE0和IGNORE1兩條附加控制線路。這6條控制線路用于控制輸入I0和I1,BUFGCTRL的設計目的是在兩個時鐘輸入之間切換而不會產(chǎn)生毛刺信號。當目前所選時鐘在S0和S1變化后從High轉為Low時,輸出保持為Low,直到另一(待選)時鐘從High轉為Low。然后,新的時鐘開始驅動輸出。BUFGCTRL的默認配置是對下降沿敏感,并且在輸入切換之前保持為Low。BUFGCTRL也可以對上升沿敏感,并且在輸入切換之前保持為High。
圖3 BUFGCTRL模式
在某些應用中,并不需要前述條件。將IGNORE引腳置為有效會忽略BUFGCTRL檢測在兩個時鐘輸入之間進行切換的條件。換言之,將IGNORE置為有效會使多路復用器在選擇引腳變化的瞬間切換輸入。IGNORE0使輸出在選擇引腳變化時立即切離I0輸入,而IGNORE1則使輸出在選擇引腳變化時立即切離I1輸入。
輸入時鐘的選擇需要將一個“選擇”對(S0和CE0或者S1和CE1)置為High有效。如果S和CE二者之一未置為High有效,就不會選擇所需的輸入。在正常操作中,并不希望將S對和CE對二者(全部4條選擇線)同時置為High有效。通常僅將“選擇”對的一個引腳用作選擇線,而將另一引腳固定為High。真值表如表1所示。
表1 時鐘資源真值表
雖然S和CE二者都用于選擇所需輸出,但其中各引腳的行為略有不同。當使用CE切換時鐘時,時鐘選擇的變化會比使用S時更快。違反CE引腳的建立/保持時間會在時鐘輸出端造成毛刺信號。另一方面,使用S引腳允許用戶在兩個時鐘輸入之間切換而無須顧及建立/保持時間,這樣不會導致毛刺信號。CE引腳的設計允許從Virtex-II和Virtex-II Pro FPGA向后兼容。
BUFGCTRL的其他功能有:
誗在配置之后但在器件運行之前,預選I0和I1輸入。
誗可以將配置后的初始輸出選定為High或Low。
誗僅用CE0和CE1(S0和S1固定為High)選擇時鐘,無須等待預選的時鐘從High向Low轉換即可改變時鐘選擇。
現(xiàn)有的針對全局時鐘緩沖器在BUFGCTRL模式下的內(nèi)建自測試如表2所示,該方法可以在對V4系列FPGA進行兩次配置后實現(xiàn)對全局時鐘緩沖器測試的完全覆蓋。每個時鐘緩沖器的9個配置選項在第一個內(nèi)建自測試時鐘后檢測的結果如表2所示。其他時刻的值通過FPGA內(nèi)部儲存器配置和分析。
這種方法的第一個挑戰(zhàn)是:為了減小下載次數(shù)和測試次數(shù),必須同時測量32個時鐘緩沖器,問題是不但專用時鐘樹互連線資源與時鐘緩沖器是有限的,而且那些時鐘樹互連線資源連接到一般路由網(wǎng)絡,并最終連接到ORA的數(shù)據(jù)輸入的資源也是有限的。如圖4,時鐘緩沖器產(chǎn)生一個8位的信號并通過專用時鐘互連線資源(圖4中的加粗線)加載到查找表中,此時查找表(look-up table,LUT)被配置成緩沖器,然后扇出并通過普通互連線資源連接到兩個ORA中用于監(jiān)控每個緩沖輸出信號。這些LUT均勻分布在時鐘樹互連線資源的4個象限中。
表2 時鐘緩沖器內(nèi)建自測試配置
圖4 內(nèi)建自測試的TPG走線
如圖5所示,每一個TPG由一個2位的扭環(huán)形計數(shù)器和一個有限狀態(tài)機(finite state machine,F(xiàn)SM)構成,這個FSM在扭環(huán)計數(shù)器的每個周期使能一次,并生成BUFGCTRL六控制端(S0,S1,CE0,CE1、ignore0和ignore1)測試信號,該測試信號的值如表3所示。BUFGCTRL的輸入信號I1和I0由扭環(huán)形計數(shù)器產(chǎn)生,兩個信號頻率相同,相位相差90°。這樣便可以提供4種組合的輸入值,同時I0和I1初始化時提供了相反的邏輯值,這是測試配置選項的關鍵,只能在第一個時鐘周期中檢測到。
圖5 TPG功能框圖和I0、I1時序
表3 BUFGCTRL控制端測試數(shù)據(jù)模型
在實現(xiàn)TPG配置并將程序下載到FPGA時,存在一個無法避免的時序問題。其他一些現(xiàn)有的TPG用于實現(xiàn)6個控制信號的輸入,其中包括一個6位二進制計數(shù)器,一個6位格雷碼計數(shù)器和作為一個存儲了表3數(shù)據(jù)的存儲器的4位尋址計數(shù)器。在內(nèi)建自測試程序執(zhí)行足夠長的時間后,無論器件是否正常工作,所有這些器件的TPG最終都會產(chǎn)生故障信號。經(jīng)過多次實驗和驗證發(fā)現(xiàn),在測試中輸入時鐘I0和I1需要一個額外的時鐘周期以保證當I0和I1均穩(wěn)定在同一個邏輯值時(I0=I1=0)改變控制輸入信號(S[0:1],CE[0: 1],IGNORE[0:1]),如圖6所示,在扭環(huán)形計數(shù)器中添加一個使能信號,邏輯與EN相反,使I0和I1延后一個時鐘。這種結構可以產(chǎn)生一個額外的時鐘周期,同時可以防止扭環(huán)形計數(shù)器狀態(tài)鎖定,有了這個額外的時鐘周期,我們可以用一個6位格雷碼計數(shù)器產(chǎn)生26=64個可能的輸入值組合,從而避免產(chǎn)生無效的重復輸入值以及時序問題。
圖6 新的TPG設計方法框圖
使用如圖6所示的設計方法后,一次完整的內(nèi)建自測試序列增加到320個時鐘周期。這以增加極小的測試時間為代價解決了時序問題,格雷碼計數(shù)器通過一個格雷碼譯碼電路實現(xiàn)了一個二進制計數(shù)器。該解碼器電路后添加6個觸發(fā)器以消除由異或門產(chǎn)生的毛刺。
解決時鐘緩沖器內(nèi)建自測試時序問題另一個需要優(yōu)化的地方是使用區(qū)域時鐘緩沖器(BUFR)和專用區(qū)域時鐘互連線資源驅動TPG和ORA。這種優(yōu)化可以在同時測試所有的BUFGCTRL時消除時鐘布線在通用互連線資源上導致的時序問題。由于BUFR的測試時包含在可編程輸入輸出(Input Output,IO)邏輯的測試中,故本文不作贅述。
改良后的時鐘緩沖器的內(nèi)建自測試在FPGA平臺JXCLX25的功能框圖如圖7所示,圖中LX25器件分為12個區(qū)域,每個區(qū)域時鐘資源主要集中在芯片中間列。中間列分布著BUFG、GC、DCM、PMCD及GCLK Nets等全局時鐘資源。此外,在IOB、GC周圍分布有BUFIO、BUFR等局部時鐘資源。每個區(qū)域的內(nèi)建自測試架構由BUT(時鐘資源)、ORA(CLB可編程邏輯單元)和TPG(CLB可編程邏輯單元)組成。
在JXCLX60的配置實現(xiàn)如圖8所示。實現(xiàn)內(nèi)建自測試模式只占用很小的空間,各個組件擺放的位置是實現(xiàn)完整布線的關鍵因素。此外,改進的BIST方法時鐘緩沖器不但可以在已有V4系列的產(chǎn)品上實現(xiàn),還可以在未來推出的V5系列FPGA產(chǎn)品上完全實現(xiàn)。新的測試配置被下載到JXCLX25、JXCLX60電路中并加以驗證,在器件運行足夠長的時間后也沒有出現(xiàn)由于時序問題導致的正常器件出現(xiàn)錯誤的指示。
圖7 時鐘的內(nèi)建BIST在芯片上的功能框圖
圖8 NCD中TPG和ORA的布局繞線
使用改良后內(nèi)建自測試和未改良的內(nèi)建自測試能達到的測試最大工作頻率如表4所示,改良后的內(nèi)建自測試達到的測試頻率明顯高于未改良時的測試頻率,最高提升了45%。
表4 兩種內(nèi)建自測試方法能達到的最大測試頻率對比
本文提出的內(nèi)建自測試方案使得測試頻率得到較大的提升,提升效果如圖9所示。
圖9 兩種內(nèi)建自測試測試頻率對比圖
改良的內(nèi)建自測試方案在配置時間上也有提升,這里用壓縮的配置時間相對于完整配置時間的比例作為對比參數(shù),新型內(nèi)建自測試配置時間提升效果如圖10所示。
圖10 兩種內(nèi)建自測試配置時間提升對比圖
本文提出了改進的時鐘緩沖器內(nèi)建自測試方法并在本單位已有的產(chǎn)品上實現(xiàn),內(nèi)建自測試適用于所有級別的測試,且該測試過程不影響系統(tǒng)運行的面積和性能。此外,通過在輸入的時鐘I0和I1添加一個額外的時鐘周期以豐富BUFGCTLR的控制輸入值,使用區(qū)域時鐘緩沖器和專用互連線資源連接到TPG和ORA等手段改良內(nèi)建自測試方法,解決了時序問題,使得器件不會在無故障時出現(xiàn)故障指示,且通過一個格雷碼計數(shù)器實現(xiàn)了BUFGCTLR控制端64個可能的輸入值組合。雖然不能確定每一次改良對于解決時序問題的貢獻度,但是若干種改良的組合使得現(xiàn)有的內(nèi)建自測試方法有了很大的改進。
[1]C Stroud,B Dutton.The First Clock Cycle is a Real BIST [C].Proc.International Conf.on Embedded Systems and Applications,2010:86-92.
[2]L T Wang,C Stroud,N Touba.System-on-Chip Test Architectures[M].Morgan Kaufmann,2008.
[3]S Toutounchi and A Lai,FPGA Test Coverage[C].Proc. IEEE International Test Conf.,2003:1248-1257.
[4]B Dutton et al.,Built-In Self-Test of Configurable Logic Blocks in Virtex-5 FPGAs[C].Proc.IEEE Southeastern Symp.on System Theory,2009:235-240.
[5]B Garrison,et al,Built-In Self-Test of Embedded Programmable Memory Resources in Virtex-4 FPGAs[C]. Proc.International Conf.on Computers and Their Applications,2009:63-68.
[6]M Pulukuri et al.,Built-In Self-Test of Digital Signal Processors in Virtex-4 FPGAs[C].Proc.IEEE Southeastern Symp,on System Theory,2009:34-38.
[7]B Dutton et al.Built-In Self-Test of Programmable Input/Output Tiles in Virtex-5 FPGAs[C].Proc.IEEE Southeastern Symp,on System Theory,2009:235-239.
[8]Virtex-4 FPGA User Guide[EB/OL].UG070(v2.5),Xilinx Inc.,2008.(available at www.xilinx.com)
[9]Virtex-5 FPGA User Guide[EB/OL].UG190(v5.2),Xilinx Inc.,2009.(available at www.xilinx.com)
[10]Virtex-6 Clocking Resources User Guide[EB/OL].UG362 (v1.2),Xilinx Inc.,2010.(available at www.xilinx.com)
[11]Virtex-4 FPGA Configuration User Guide[EB/OL].UG071 (v1.1),Xilinx Inc.,2008.(available at www.xilinx.com)
[12]R Mahmud,An FPGA Primer for ASIC Designers[EB/OL]. EETimes,April,2004.
[13]F Gray,Pulse Code Communication[P].US Patent#2, 632,058,1953.
Study of BIST for FPGA-based Global Clock Buffer
DONG Yiping,XIE Da,SONG Linfeng,ZHOU Daokui
(China Electronic Technology Group Corporation No.58 Research Institute,Wuxi 214072,China)
In the paper,a new built-in self-test method based on V4 series FPGA global clock buffer is presented.The built-in self-test of these critical clock buffers is currently facing a huge challenge while timing issues are principal problems.Due to the synchronous switching of the input terminal of the clock buffer,the utility model can generate a fault indication in the built-in test of the normal device.In addition,the current clock buffer built-in self-test uses universal wiring resources to connect the clock signal rather than dedicated clock routing resources,which will deteriorate the timing problem.An improved method is proposed to solve the problem of timing,and the influence of which on the maximum clock frequency and the total test time is discussed.Alltests are implemented on the V4 series FPGA.
built-in self-test;clock tree
TN407
A
1681-1070(2017)08-0008-05
董宜平(1983—),男,2006年東南大學電子工程學院學士,2011年日本早稻田大學理工學院、系統(tǒng)大規(guī)模集成電路專業(yè)工學博士,研究方向為基于FPGA的高性能片上網(wǎng)絡NoC研究;2012年4月至2014年7月任職于日本日立制作所研究開發(fā)中心,從事高精度掃描電子顯微鏡FPGA控制基板的研究;2014年8月開始任職于中國電子科技集團公司第五十八研究所,從事自主高性能大規(guī)模FPGA芯片的研發(fā)工作。
2017-5-16
江蘇省自然基金青年基金(BK20160202)