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