一種用于FPGA互聯(lián)資源測(cè)試的新方法
摘要:以基于靜態(tài)隨機(jī)存儲(chǔ)器(SRAM)的現(xiàn)場(chǎng)可編程門陣列(FPGA)為例,在傳統(tǒng)的三次測(cè)試方法的基礎(chǔ)上提出了一種新穎的針對(duì)FPGA互聯(lián)資源的測(cè)試方法。該方法運(yùn)用了層次化的思想,根據(jù)開關(guān)矩陣中可編程互聯(lián)點(diǎn)(PIP)兩端連線資源的區(qū)別將互聯(lián)資源進(jìn)行層次化分類,使得以這種方式劃分的不同類別的互聯(lián)資源能夠按一定方式進(jìn)行疊加測(cè)試,這就從根本上減少了實(shí)際需要的測(cè)試配置圖形和最小配置次數(shù)。最后,文章將文中的測(cè)試方法與傳統(tǒng)的測(cè)試方法在最小配置次數(shù)、故障覆蓋率等方面進(jìn)行了一個(gè)簡(jiǎn)單的比較。
關(guān)鍵詞:現(xiàn)場(chǎng)可編程門陣列;靜態(tài)隨機(jī)存儲(chǔ)器;可編程互聯(lián)點(diǎn);測(cè)試配置圖形;故障覆蓋率
FPGA (現(xiàn)場(chǎng)可編程門陣列)作為一種可編程的邏輯器件,以其豐富的邏輯資源和極其靈活的可編程特性越來(lái)越受到廣大用戶的青睞。然而,隨著工藝水平的發(fā)展和實(shí)際應(yīng)用的需要,F(xiàn)PGA的邏輯門數(shù)量已從最初的幾千門增加到現(xiàn)在的幾千萬(wàn)門,與此同時(shí),F(xiàn)PGA內(nèi)部資源的復(fù)雜度也呈幾何級(jí)數(shù)增長(zhǎng)。這勢(shì)必給FPGA的測(cè)試工作帶來(lái)極大的挑戰(zhàn)。如何在有限的時(shí)間內(nèi)完成對(duì)整個(gè)FPGA的可靠性測(cè)試而達(dá)到盡可能高的故障覆蓋率,已經(jīng)成為每一個(gè)測(cè)試工作者迫切需要解決的問(wèn)題。針對(duì)FPCA的測(cè)試非常復(fù)雜,因?yàn)镕PGA內(nèi)部具有大量的邏輯資源和布線資源,在用戶使用之前,F(xiàn)PGA的功能是不確定的,用戶可以根據(jù)自己的需求把FPGA配置成某種特定的邏輯,還可以根據(jù)需要反復(fù)編程,但其中大部分的資源仍處于閑置狀態(tài),這就導(dǎo)致針對(duì)FPGA的測(cè)試不可能像針對(duì)ASIC的測(cè)試那樣對(duì)FPGA能夠?qū)崿F(xiàn)的所有功能進(jìn)行的窮舉性測(cè)試。在FPGA中,互聯(lián)資源相當(dāng)復(fù)雜,對(duì)于最新的FPGA器件,80%以上的晶體管都包含在互聯(lián)資源中,所以對(duì)FPCA互聯(lián)資源的測(cè)試成了整個(gè)測(cè)試工作的核心,為此,本文將專注于FPGA互聯(lián)資源的測(cè)試。
1 FPGA的結(jié)構(gòu)與互聯(lián)資源的故障模型
FPGA一般由三種可編程電路和一個(gè)可用于存儲(chǔ)配置數(shù)據(jù)的SRAM組成,這三種可編程電路分別是:可編程邏輯塊CLB(Configurable Logic Block),輸入/輸出模塊IOB (I/O Block)和互聯(lián)資源IR(Interconnect Resource)。以xilinx公司的Virtex系列FPGA為例,其結(jié)構(gòu)的基本模型如圖1所示,該模型是由可編程邏輯塊和開關(guān)矩陣組成的二維陣列,在每個(gè)CLB內(nèi)部,邏輯模塊通過(guò)輸入輸出多路選擇器(I/O MUX)與開關(guān)矩陣(SM)相連,開關(guān)矩陣同時(shí)又為FPGA陣列中不同的CLB之間提供水平和垂直的布線通道。根據(jù)布線資源跨越CLB個(gè)數(shù)的不同,我們將其分為三類:?jiǎn)伍L(zhǎng)線(連接相鄰開關(guān)矩陣,不跨越任何的CLB的布線),六長(zhǎng)線(通過(guò)一個(gè)開關(guān)矩陣跨越五個(gè)CLB與另一個(gè)開關(guān)矩陣相連的布線)和全局長(zhǎng)線(貫穿整個(gè)FPGA的CLB陣列,具有最小延時(shí)的布線)。在每個(gè)開關(guān)矩陣的內(nèi)部都具有大量的可編程互聯(lián)點(diǎn)PIPs (programmable interconnec tpoints),每一個(gè)可編程互聯(lián)點(diǎn)都是一個(gè)由可編程的SRAM單元控制的傳輸門晶體管,圖2是一個(gè)常用的開關(guān)矩陣的基本模型,在開關(guān)矩陣的每一個(gè)邊都有四個(gè)連接點(diǎn),每個(gè)連接點(diǎn)都可以通過(guò)開關(guān)矩陣內(nèi)部的PIP與其它三邊相連接,其中虛線代表了所有可能的連接方式,我們可以通過(guò)向SRAM加載配置數(shù)據(jù)的方式來(lái)控制PIP傳輸門晶體管的通斷,當(dāng)向SRAM單元中寫“1”的時(shí)候傳輸管導(dǎo)通,相應(yīng)的連接建立;當(dāng)向SRAM單元寫“0”的時(shí)候傳輸管斷開,相應(yīng)的連接也就隨之?dāng)嚅_。
在FPGA里面,互聯(lián)資源的故障大慨可以分為兩類:一類是開路故障,一類是短路故障。開路故障又可以分為PIP的常開故障(PIP開關(guān)處于永久性的斷開狀態(tài))和互聯(lián)線段的斷開故障,而短路故障通常由PIP的常閉故障(PIP開關(guān)處于永久性的導(dǎo)通狀態(tài))和互聯(lián)線段短路故障組成。另外,我們將互聯(lián)資源的固定型故障(固定“1”或固定“0”故障)看成是互連線與電源Vcc和地Vdd的短路故障,而不單獨(dú)加以考慮。如圖3所示,顯示了互聯(lián)資源故障模型的基本分類。
2 互聯(lián)資源的測(cè)試
由于FPGA的互聯(lián)資源極其復(fù)雜,故障的種類又極其的繁多,我們根本不可能存一次配置里面兼顧所有的故障類型完成整個(gè)互聯(lián)資源所有模塊的完全測(cè)試。為此,我們通常采用層次化的思想將整個(gè)互聯(lián)資源按照一定的關(guān)系劃分為幾大類別(或者幾大模塊)來(lái)加以測(cè)定,本文根據(jù)互聯(lián)資源中開關(guān)矩陣中PIP兩端所連互連線段長(zhǎng)短的不同來(lái)分類進(jìn)行測(cè)試。
2.1 待測(cè)資源的分類
為了簡(jiǎn)化我們的測(cè)試,我們根據(jù)開關(guān)矩陣中PIP兩端連線的不同對(duì)互聯(lián)資源進(jìn)行如下的劃分:PIP兩端連接的均是單長(zhǎng)線(Single-to-Single),PIP兩端連接的是六長(zhǎng)線(Hex-to-Hex),PIP一端連接六長(zhǎng)線另一端連接單長(zhǎng)線(Hex-to-Single)。下面我們將主要根據(jù)以上劃分對(duì)互聯(lián)資源的測(cè)試進(jìn)行研究2.2 Single-to-Single類互聯(lián)資源的測(cè)試Single-to-Single類互聯(lián)資源是一類由單長(zhǎng)線指向單長(zhǎng)線的資源,存Virtex系列FPCA中,開關(guān)矩陣東(East),南(south),西(west),北(north)四個(gè)方向各有24條單長(zhǎng)線,其中任意一條單長(zhǎng)線部可以與其他三個(gè)方向的單長(zhǎng)線連接形成Single-to-Single類連線。其結(jié)構(gòu)與XC4000開關(guān)矩陣的結(jié)構(gòu)完全相同,其簡(jiǎn)化模型如圖4所示,對(duì)于這部分資源我們可以參考傳統(tǒng)的3次測(cè)試法來(lái)進(jìn)行全覆蓋測(cè)試,其測(cè)試配置圖如圖5所示。
2.3 Hex-to-Hex類互聯(lián)資源的測(cè)試
Hex-to-Hex類互聯(lián)資源是一類由六長(zhǎng)線指向六長(zhǎng)線的資源,在FPCA的測(cè)試中,這類資源的測(cè)試比Single-to-Single類互聯(lián)資源要復(fù)雜得多。圖6顯示了Virtex系列FPGA中這類資源的簡(jiǎn)單連接關(guān)系,與單長(zhǎng)線類似,每一根六長(zhǎng)線都可以通過(guò)不同的PIP與其它三個(gè)方向的六長(zhǎng)線相連接,唯一不同的是,每根六長(zhǎng)線都跨越了六個(gè)開關(guān)矩陣,在每根六長(zhǎng)線的中間還產(chǎn)生了一個(gè)分支中點(diǎn)。為了避免出現(xiàn)布線的沖突,在我們的布線里面始終堅(jiān)持單布線通道的原則(即在一次配置中,每條布線路徑上不允許分支路徑的存在,每一條互連線段具有唯一的入度和出度),因此六長(zhǎng)線的分支中點(diǎn)和端點(diǎn)不可能在一次配置里面完成測(cè)試。
為了簡(jiǎn)化Hex-to-Hex類互聯(lián)資源的測(cè)試的研究,我們將對(duì)實(shí)際的互聯(lián)資源的情況作如下模型的提取。以Virtex系列FPGA為例,每條六長(zhǎng)線都通過(guò)五個(gè)流入(指PIP的方向指向該六長(zhǎng)線)的PIP與其它五根六長(zhǎng)線相連,我們稱六長(zhǎng)線的入度Vi=5,同時(shí)也存在五個(gè)流出(指該P(yáng)IP的方向背離該六長(zhǎng)線)的PIP與另外五根六長(zhǎng)線相連,我們稱六長(zhǎng)線的出度Vo=5,注意這些PIP分布在六長(zhǎng)線中點(diǎn)與端點(diǎn)所在的三個(gè)開關(guān)矩陣?yán)锩?,如圖7所示,是這一模型的數(shù)學(xué)簡(jiǎn)化圖型。
在單布線通道的原則下,要求在每一個(gè)配置里的任意一條六長(zhǎng)線都具有唯一的出度和入度,因此,要實(shí)現(xiàn)Hex-to-Hex類互聯(lián)資源的全覆蓋測(cè)試至少需要n=5(n≥max{Vi,Vo})次圖形配置。
2.4 Hex-to-Single類互聯(lián)資源的測(cè)試
針對(duì)這類互聯(lián)資源,我們主要目標(biāo)是測(cè)試連接single線(單長(zhǎng)線)和Hex線(六長(zhǎng)線)的PIP,因?yàn)閷?duì)于單長(zhǎng)線和六長(zhǎng)線我們?cè)赟ingle-to-Single和Hex-to-Hex兩類資源的測(cè)試中已經(jīng)覆蓋。對(duì)于這類資源,我們可以借助CLB單元中的觸發(fā)器,將這部分資源都與CLB單元中的觸發(fā)器的輸入端相連,通過(guò)回讀觸發(fā)器中的數(shù)據(jù)實(shí)現(xiàn)互聯(lián)資源的測(cè)試。其原理如圖8所示。在Virtex系列FPGA中,由于每條單長(zhǎng)線最多能夠同時(shí)與兩條不同的六長(zhǎng)線相連,因此測(cè)試這類互聯(lián)資源的最小配置次數(shù)為2。
2.5 最小配置次數(shù)與不同測(cè)試方法的比較
通過(guò)對(duì)互聯(lián)資源的分類,簡(jiǎn)化了我們對(duì)互聯(lián)資源的測(cè)試。由分析可得,我們的方法針對(duì)Single-to-Single類互聯(lián)資源需要3次測(cè)試配置,針對(duì)Hex-to-Hex類互聯(lián)資源需要5次測(cè)試配置,針對(duì)Hex-to-Single類互聯(lián)資源需要2次測(cè)試配置。但是由于我們對(duì)互聯(lián)資源的分類具有層次性,我們可以讓針對(duì)三類互聯(lián)資源的測(cè)試同時(shí)進(jìn)行而互不影響,也就是說(shuō)對(duì)互聯(lián)資源測(cè)試的總配置次數(shù)并不是三類資源單獨(dú)測(cè)試配置次數(shù)的總和,而是等于三類資源測(cè)試中需要配置最多的一類資源的配置次數(shù),針對(duì)本文提到的Virtex系列FPGA,測(cè)試整個(gè)互聯(lián)資源的最小配置次數(shù)為5次。
為了檢驗(yàn)本文提出的測(cè)試方法,我們?cè)赬ilinx公司的XOVR300-4-CB228上對(duì)互聯(lián)資源進(jìn)行了全覆蓋測(cè)試實(shí)驗(yàn),在整個(gè)互聯(lián)資源的測(cè)試中一共用到了5個(gè)配置圖形,與我們的分析相吻合。如圖9所示的是Single-to-Single類互聯(lián)資源的測(cè)試圖形TCLD。
我們?cè)赩irtex系列FPGA的基礎(chǔ)上將本文提到的方法與傳統(tǒng)方法和論文中提到的方法在覆蓋率和最小配置次數(shù)方面進(jìn)行了一個(gè)簡(jiǎn)單的比較。如下表1所列。
3 結(jié)束語(yǔ)
文中針對(duì)Virtex系列FPGA互聯(lián)資源的測(cè)試,采用了分層測(cè)試的思想將互聯(lián)資源按一定的原則分為了single-to-single,Hex-to-Hex和Hex-to-Single三類,使得不同類別的互聯(lián)資源能夠進(jìn)行疊加測(cè)試,最終得出了實(shí)際測(cè)試需要的最小圖形配置次數(shù)為5次。文章最后通過(guò)將該方法與已存在的測(cè)試方法進(jìn)行了一個(gè)簡(jiǎn)單的對(duì)比和分析,不難看出其該方法在保證同樣覆蓋率的情況下最小配置次數(shù)明顯少于其他測(cè)試方法。