1 引言
FPGA的出現(xiàn)大大縮短了集成電路設(shè)計的周期,使產(chǎn)品上市的時間大大縮短,并減少了設(shè)計成本。FPGA的應(yīng)用越來越廣泛,并且其市場份額也越來越大。但是逐漸擴(kuò)大的芯片規(guī)模和更加復(fù)雜的芯片結(jié)構(gòu),給測試帶來了越來越大的困難,測試成本大大增加,如何降低測試成本是很多商家和研究者共同面對的一個問題。有關(guān)FPGA測試的研究有很多。
FPGA主要由可編程邏輯資源,可編程連線資源,可編程輸入輸出資源組成。其中連線資源占芯片面積的60%以上,并且隨著器件規(guī)模增大,連線也越來越復(fù)雜,其出現(xiàn)故障的可能性很大,所以連線資源測試在FPGA測試中扮演了一個很重要的角色。芯片測試包括故障檢測、故障診斷和故障冗余。故障檢測只檢測芯片中有沒有故障,如果芯片中有故障就把此芯片扔掉;故障診斷不僅要檢測芯片中是否有故障,還要確定故障的位置和類型;而故障冗余是指,對于有故障的芯片采取一定的方法使得芯片可以繼續(xù)使用,而不至于浪費??梢钥吹?,故障檢測是故障診斷的基礎(chǔ),而故障冗余又以故障診斷為前提,在本文的設(shè)計中,故障檢測及故障診斷都可以支持,只要設(shè)計好需要的測試配置就可以了。
對于連線資源測試,出現(xiàn)了很多種方法,大致分為三類:(1)非內(nèi)建自測試方法(Non—BIST),利用專有的測試儀器對芯片進(jìn)行配置并加測試向量對芯片進(jìn)行測試;(2)利用芯片內(nèi)部可編程邏輯資源對連線資源進(jìn)行測試,這是內(nèi)建自測試方法(BIST),在芯片內(nèi)部通過配置可編程邏輯資源自動產(chǎn)生測試向量,并且對測試結(jié)果進(jìn)行判斷。以上兩種方法都是利用FPGA的可編程特性對芯片進(jìn)行測試的;(3)利用可測試設(shè)計方便芯片進(jìn)行測試,通過一定的硬件消耗,在芯片內(nèi)部加上一定的輔助電路,使得測試比較方便、快速。本文提出的方法屬于第三類方法。
與ASIC測試不同,F(xiàn)PGA測試需要將測試需要的配置下載到芯片中,然后加測試向量對芯片進(jìn)行測試,其測試時間主要由編程下載的時間來決定,所以編程下載時間決定了測試的成本,很多研究者通過減少測試配置數(shù)目來減少測試時間,從而降低測試成本。
本文的出發(fā)點不是通過減少測試配置數(shù)目來減少測試時問,而是從另外一個角度對測試開關(guān)盒連線資源時間的減少進(jìn)行了研究。通過一定的硬件消耗大大減少了編程下載的時間,降低了測試成本。
2 基于SRAM的FPGA結(jié)構(gòu)簡介
FPGA通常有三個基本的組成部分,即可編程邏輯單元((Sonfigurable Logic Block,以下簡稱CLB)、可編程輸入輸出單元(Input and Output Block,以下簡稱IOB)及可編程連線資源。通常CLB包含組合邏輯部分和時序邏輯部分,組合邏輯一般包括查詢表(Look—up Table)和相關(guān)的多路選擇器(Multiplexer)。而時序邏輯部分包含觸發(fā)器(DFF)和一些相關(guān)的多路選擇器。IOB則提供了FPGA內(nèi)部和外部的一個接口,連線資源則提供CLB與IOB之間以及各CLB之間的通訊。
FPGA芯片的基本結(jié)構(gòu)如圖1其原因所示,現(xiàn)在的FPGA芯片結(jié)構(gòu)越來越復(fù)雜,但都包含這些基本的組成部分。開關(guān)盒(Switch Box,以下簡稱SB)將水平和豎直連線資源進(jìn)行切換。連接盒(Connection Box,以下簡稱CB)連接CLB的輸入輸出到連線資源中。在FPGA芯片中,由于連線資源比較復(fù)雜,所以測試花費時間會很長。其中把開關(guān)盒抽出來可以構(gòu)造開關(guān)盒資源圖,其中包括開關(guān)盒內(nèi)部的可編程開關(guān)以及開關(guān)盒之間的連接線段,如圖2(a)所示。
FPGA開關(guān)盒資源模型包括m×m個SB以及相鄰的SB之間連接開關(guān)盒的k條連接線段,其中SB內(nèi)部的連接關(guān)系如圖2(b)所示。其中粗線代表一個NMOS管作為傳輸管,用來控制線段的連接,傳輸管的開和閉由編程信息來控制,編程信息存儲在SRAM單元中。SB內(nèi)部有很多傳輸管,其中兩條線段之間有傳輸管相連的,稱為可連接線段,沒有傳輸管的,稱為不可連接線段。圖2(c)是抽象的開關(guān)盒連接關(guān)系,其中四個方向分別為T,B,L,R,黑點表示此方向的連接線段的集合,每條連接線段可以另外三條連接線段連接,這三條連接線段分別位于其他三個方向,其中的數(shù)字表示傳輸管的編號。比如3,表示左邊的連接線段連接上邊的連接線段。
在FPGA連線資源中,主要包含連接線段,傳輸管和CB中的連線資源。連接盒一般和邏輯資源放在一起進(jìn)行測試,本文著重于開關(guān)盒連線資源的測試。
3 測試所需要的配置
3.1 測試采用的故障模型
1)線段開路故障,線段在制造過程中中間斷開,不能正常傳輸信號,輸出端的狀態(tài)固定;
2)線段的固定O故障,不管輸入信號是0還是l,線段總固定在0狀態(tài);
3)線段的固定l故障,不管輸入信號是0還是1,線段總固定在1狀態(tài);
4)傳輸管的固定0故障,也就是常開故障,SRAM編程信息不能改變此開關(guān)的狀態(tài);
5)傳輸管的固定l故障,也就是常閉故障,SRAM編程信息不能改變此開關(guān)的狀態(tài);
6)線段的橋接故障,兩條線段之間短路,當(dāng)分別在橋接的兩條金屬線上加相反的信號時,因為橋接兩線的輸出信號是相同的。
3.2 測試所需配置
在測試之前,需要將配置信息下載到FPGA芯片中,然后施加測試矢量進(jìn)行測試。本文以[3]中的配置為例說明此可測性設(shè)計,在此采用Wilton開關(guān)盒結(jié)構(gòu),配置原理與[3]一樣。測試配置如圖3所示。
上述的7種配置中同一個SB內(nèi)編號相同的開關(guān)的狀態(tài)都是一樣的。配置中SB旁邊的數(shù)字表示SB內(nèi)需要閉合的傳輸管的編號。圖中SB的編號Smn,其中:S00:處于奇行奇列的SB;S01:處于偶行奇列的SB;S10:處于奇行偶列的SB;S11:處于偶行偶列的SB。編號相同的SB在同一個測試配置中狀態(tài)是完全一樣的。如果對故障進(jìn)行診斷,需要配置1到配置6。
1)配置l和配置2能夠診斷任何單個線段開路故障、線段固定故障和線段橋接故障;
2)配置l、2、3、4、5和配置6能夠診斷任何編號為3、6的單個傳輸管固定O故障;
3)配置1、2、3、4、5和配置6能夠診斷任何編號為2、5的單個傳輸管固定0故障;
4)配置3、4、5和配置6能夠診斷任何編號為4、1的單個傳輸管固定0故障;
5)配置l(或配置2)、配置3和配置4能夠診斷任何編號為l的單個傳輸管固定1故障;
6)配置1(或配置2)、配置3和配置4能夠診斷任何編號為4的單個傳輸管固定1故障;
7)配置3、4、5和配置6能夠診斷編號為2、3、5、6的單個傳輸管固定1故障。
如果僅僅是進(jìn)行故障檢測,配置1、2和配置7就夠了。
4 移位寄存器鏈測試方法
由于FPGA規(guī)模越來越大,編程SRAM單元數(shù)量巨大,下載測試配置的時間就非常大。在測試中,需將配置下載到芯片中,然后加測試矢量對連線資源進(jìn)行測試,但是在下載的過程中,也同時將邏輯資源的編程數(shù)據(jù)下載到了芯片中,這種下載對測試連線資源是沒有用的,所以這部分時間對連線資源測試來說是多余的。
從圖2的開關(guān)盒連接關(guān)系和圖3中的測試配置可以看出,在一個開關(guān)盒內(nèi)部編號相同的開關(guān)狀態(tài)是一樣的,所以在這種情況下就可以在開關(guān)盒內(nèi)部增加6個觸發(fā)器,每個觸發(fā)器的輸出端連接到相同編號的所有傳輸管上,并且將所有的觸發(fā)器連接成多條移位寄存器鏈,這樣在配置的時候就可以將事先設(shè)計好的配置數(shù)據(jù)通過移位寄存器鏈下載相對應(yīng)的開關(guān)盒內(nèi)SRAM單元中,每個觸發(fā)器可以并行配置與其相連的SRAM單元,時間又可以節(jié)省很多。如圖4所示。各信號意義如下:
1)DATA IN:將設(shè)計好的編程數(shù)據(jù)通過移位寄存器移位到相對應(yīng)的位置上;
2)DATA 0UT:移位鏈的輸出端;
3)TEST CONTROL:控制芯片為測試狀態(tài)或正常工作狀態(tài)。當(dāng)其為1時,所有的測試控制NMOS管都閉合,將觸發(fā)器的輸出寫到相應(yīng)的SRAM單元中;而當(dāng)其為0時,所有的測試控制NMOS管都斷開,芯片處于正常工作狀態(tài),測試電路和工作電路完全斷開,不會影響芯片的正常工作;
4)NEXT:連接到另外一個開關(guān)盒的DATA IN,將所有的觸發(fā)器連接成多條移位寄存器鏈;
5)CLOCK:時鐘控制端,控制數(shù)據(jù)的移位。其他的一些輸入控制端沒有列出。
測試方法:比如要實現(xiàn)圖3中測試配置3,因為在這個配置中,開關(guān)盒S00需要將編號為1、3、6的傳輸管閉合,所以此開關(guān)盒寄存器的配置為101001,開關(guān)盒S10,S11需要將編號為4的傳輸管閉合,其需要的配置為000100,而開關(guān)盒Sol將閉合傳輸管l、2、5,所以其配置為110010,所以對于配置3中的9個開關(guān)盒來說,需要的配置序列為:101001,000100,10100l;1 100lO,000100,110010;101001,000100,101001。
在測試的時候分別將6種配置的測試序列分別通過下載端口下載到芯片中,實現(xiàn)測試需要的配置對開關(guān)盒進(jìn)行測試。
三種常用的SB結(jié)構(gòu)如圖5所示。
這三種結(jié)構(gòu)中,同樣一個方向的一個連接線段可以和其他三個方向的一個線段相連接,只是連接的線段編號不同,不過對應(yīng)的配置還是一樣的。以上的設(shè)計同樣可以應(yīng)用于這三種開關(guān)盒結(jié)構(gòu)。
如果是不規(guī)則的SB結(jié)構(gòu),可以通過設(shè)計需要的測試配置來決定需要增加的觸發(fā)器數(shù)目,在測試配置中,盡可能使SB內(nèi)的狀態(tài)相同的傳輸管多一些。一個基本的原則就是,在一個SB內(nèi)部所有可以配置成同樣狀態(tài)的開關(guān)都可以利用一個觸發(fā)器來進(jìn)行下載。
如何測試芯片內(nèi)部增加的電路呢?因為移位鏈有一個輸出端DATA OUT,可以通過此輸出端來驗證移位鏈的正確性。對于傳輸管可以配合開關(guān)盒的測試來對其進(jìn)行測試。如果下載以后功能正確則傳輸管沒有常開故障。下載一定功能電路以后,將TEST CONTROL信號置0狀態(tài),即將所有的傳輸管斷開,然后下載一個編程數(shù)據(jù)和之前相反的位流文件,如果功能未改變說明傳輸管沒有常閉故障。
5 結(jié)果
以下從三個方面來說明此可測性設(shè)計的特點:
1)測試時間比較
首先定義幾個參數(shù),假定芯片的規(guī)模是N×N個邏輯單元,即有N行和N列邏輯單元。
NSB=N2:芯片中開關(guān)盒的個數(shù) PS8:一個開關(guān)盒內(nèi)部編程開關(guān)的數(shù)目
NCLB:芯片中CLB的個數(shù) PCLB:一個CLB內(nèi)部的編程開關(guān)的數(shù)目
NCB:芯片中CB的個數(shù) PCB:一個CB內(nèi)部的編程開關(guān)數(shù)目
T:編程下載的時鐘周期 Nconfig:測試需要的配置數(shù)目
利用傳統(tǒng)的測試方法測試SB互連資源時,需要將測試設(shè)計的配置數(shù)據(jù)下載到芯片中,此配置的編程數(shù)據(jù)包含了芯片內(nèi)部所有編程SRAM的編程信息,所以在下載的時候同樣將測試用不到的CLB,CB內(nèi)部的編程信息也下載進(jìn)去了,但是這部分的下載對測試SB是沒有用的,所以時間就浪費了。傳統(tǒng)的測試方法需要的時間為:
利用本文提出的可測性設(shè)計方法,測試數(shù)據(jù)僅僅對SB內(nèi)部的SRAM單元進(jìn)行配置,而且是并行的,這樣就大大減小了測試SB連線資源配置需要的時間,在設(shè)計中可以實現(xiàn)N條移位鏈,利用這種方法測試需要的時間TNEW=6xNxNconfigxT
對于上述芯片的條件,測試時問比較如表1所示。
2)硬件的消耗*估
假設(shè)設(shè)計中使用的DFF內(nèi)有30個MOS管,所以在設(shè)計中每個SB消耗的MOS管數(shù)目為6x30+PSB,而SB中邏輯資源包含的MOS管數(shù)目為PSBx6+NBUF,其中PSBx5是SRAM單元含有的MOS管數(shù)目,PSB是SB內(nèi)傳輸管的數(shù)目,NBUF是SB Buffer中包含的MOS管數(shù)目。而在FPGA芯片中一般SB中邏輯資源占芯片面積的28%,所以硬件消耗的面積百分比:0.28x(6x30+PSB)/(PSBx6+NBUF)。
在本文設(shè)計的FPGA芯片中,其中只有一種開關(guān)盒。每個開關(guān)盒內(nèi)部Buffer含有的MOS管數(shù)目為912個,所以如果在芯片中加入可測性移位鏈所消耗的面積百分比:是0.28x(6x30+216)/(216x6+912)=5.27%,消耗的面積可以接受。
由以上可以看出,文獻(xiàn)方法在測試的過程中需要利用傳統(tǒng)的方法下載測試少數(shù)種子配置,需要時問較多,可以看到本文提出的方法遠(yuǎn)遠(yuǎn)比文獻(xiàn)改進(jìn)很多,消耗的硬件僅稍有增加。對于文獻(xiàn)采用的方法,需要的測試時問與本文方法可相比較,但它的硬件及內(nèi)部控制比較復(fù)雜,并且測試需要相應(yīng)的一些外部設(shè)備來判斷是否為測試需要的配置。而本文提出的方法則比較簡單,而且測試需要的時間和硬件面積的增加達(dá)到了一個比較好的平衡。
3)對芯片的影響
此可測性設(shè)計不會對芯片的正常工作產(chǎn)生影響,因為在芯片正常工作的時候,測試電路完全與芯片內(nèi)部電路分開。所以對于芯片使用者來說不存在性能方面的問題。
6 結(jié)論
本文提出在FPGA芯片內(nèi)插入多條移位寄存器鏈的方法,可使測試開關(guān)盒連線資源的時問比傳統(tǒng)的測試方法和已有的一種方法時間上減少了99%以上,大大降低了測試的時間,降低了測試成本,并且消耗的硬件面積比大約在5%左右,在可接受的范圍內(nèi)。
-
FPGA
+關(guān)注
關(guān)注
1630文章
21802瀏覽量
606364 -
芯片
+關(guān)注
關(guān)注
456文章
51280瀏覽量
427771 -
觸發(fā)器
+關(guān)注
關(guān)注
14文章
2017瀏覽量
61379
發(fā)布評論請先 登錄
相關(guān)推薦
評論