專利名稱:一種對fpga器件進行測試的方法
技術領域:
本發明涉及 一 種利用集成電路測試機對FPGA器件(Field Programmable Gate Array,現場可編程門陣列)器件進行配置,從而實施 產業化測試的方法,屬于集成電路測試技術領域。
背景技術:
FPGA器件是八十年代中期出現的新型可編程邏輯器件,它是作為專 用集成電路(ASIC)領域中的一種半定制電路而出現的,既解決了定制 電路的不足,又克服了原有可編程器件門電路數有限的缺點,可以廣泛 應用在航天、通信、計算機硬件系統、程序控制、數字系統的測試診斷 等領域。FPGA器件采用了邏輯單元陣列LCA (Logic Cell Array)的新概 念,內部包括可配置邏輯模塊CLB (Configurable Logic Block)、輸出輸 入模塊IOB (Input Output Block)和內部連線(Interconnect)三個部分。 該器件可以通過編程把一個通用集成電路快速配置成用戶需要的專用數 字電路,因而大大加快電子產品的研發周期,降低研發成本,縮短產品 上市時間。
為了能夠適應當前電子產品設計的需要,FPGA器件的結構已經變得 越來越龐大、復雜。最新的FPGA器件內包含上百萬門等效邏輯門,高 速I/O,嵌入微處理器和RAM、高速時鐘處理等模塊。對電子工程設計 人員而言,FPGA器件使用靈活,但這種應用的不確定性和重復可編程性 相對增加了器件測試的難度。此外,隨著深亞微米技術的進步所帶來的 器件中新型缺陷或噪聲,會嚴重影響到延遲缺陷。隨著FPGA器件的廣 泛應用,對其可靠性的要求也變得越來越高。因此,對FPGA器件的故 障檢測、診斷方法以及各種可測性設計技術進行全面深入的研究具有重 要的現實意義。
FPGA器件的測試簡單說就是把FPGA器件配置成相應的測試電路, 用多次配置來覆蓋所有的資源,然后施加測試向量。目前對FPGA器件 的實際測試一般采取兩種方式。第一種方式是采用專門設計的FPGA器 件測試設備,其功能應包括配置FPGA器件、加載測試向量、讀取測試
響應等。該種方式往往投資大,耗時長,測試精度難以保證,而且研制 出來的專用測試設備可移植性差,只能用于研究和驗證。第二種方式是
嘗試利用通用的集成電路測試機(ATE)來測試FPGA器件。這種方式中, 首先根據FPGA器件的測試方法對FPGA器件進行配置,然后運行相應 的測試向量,在同一個操作流程中完成FPGA器件的多次"配置一測試" 過程。
目前,集成電路測試機(ATE)已經進入第四代,可測管腳數高達 1024個,功能測試圖形速率高達100MHz,測試圖形深度可達4M以上, 完全能夠滿足FPGA器件測試的配置要求。但是,如何充分利用集成電 路測試機的資源,實現對FPGA器件快速有效的配置,進而進行產業化 測試仍然存在較多需要解決的技術難題。
發明內容
本發明的目的在于提供一種對FPGA器件進行測試的方法。該方法 可以將FPGA器件的配置文件轉換成集成電路測試機可執行的測試程序, 從而利用現有集成電路測試機有效執行對FPGA器件的產業化測試。 為實現上述的發明目的,本發明采用下述的技術方案-一種對FPGA器件進行測試的方法,基于集成電路測試機實現,其 特征在于包括如下的步驟
(1) 使用FPGA器件設計工具生成為FPGA器件配置預定功能的配置 文件;
(2) 所述集成電路測試機使所述FPGA器件進入配置階段;
(3) 從所述配置文件中提取配置信息并進行數據轉換,得到預定管腳 的配置數據信號;
(4) 設置所述FPGA器件各控制管腳的邏輯狀態,并設置各管腳的時 序信息,得到配置過程的測試向量;
(5) 根據各個管腳的時序信息設置各個管腳信號變化的時間,得出測 試圖形;
(6) 所述集成電路測試機執行所述測試圖形,完成對所述FPGA器件 是否實現預定功能的測試工作。
其中,所述步驟(2)中,所述FPGA器件的配置模式為從串配置模式。 所述集成電路測試機隨時監測INIT端口的狀態,在INIT端口信號 變高后開始配置。
所述集成電路測試機同時在FPGA器件的DIN端和CCLK端施加配 置數據和配置時鐘,所述配置數據比所述配置時鐘提前一段時間。
在給出所有的所述配置數據后,繼續為CCLK端提供至少六個周期 的時鐘信號,此時對DIN端提供高電平信號。
所述步驟(3)中,所述預定管腳為DIN端。
所述步驟(4)中,所述控制管腳包括但不限于CCLK、 INIT、 DONE端。
利用本發明,可以使用現有的集成電路測試機完成對FPGA器件的 測試,不僅減少了操作環節,而且提高FPGA器件的測試效率,便于實 現FPGA器件的產業化測試。
下面結合附圖和具體實施方式
對本發明作進一步的說明。
圖1為一個典型的FPGA器件的加電配置過程示意圖2為從開始供電到可配置狀態開始過程中的FPGA器件主要端
口的電平情況示意圖3為從串配置模式中FPGA器件主要端口的時序情況示意圖4為"Start—up"進程的示意圖5為配置結尾進程中主要端口的時序要求示意圖6為由FPGA器件配置而成的4位遞加計數器的示意圖。
具體實施例方式
本發明所要解決的問題是如何利用現有的集成電路測試機執行對 FPGA器件的產業化測試任務。目前,比較先進的FPGA器件的管腳數超 過1000,要求集成電路測試機具有的通道數超過被測FPGA器件的管腳 數,或者具有通道復用的功能。對于FPGA器件,每次進行測試的測試 向量的長度由配置電路的復雜程度和測試的目的決定,各項測試的測試 向量長度不同。例如XiHnx4010EFPGA器件系列器件的配置文件的測試 向量的長度為178k行,測試過程的測試向量長度不等。對FPGA器件進 行測試,都需要重復很多個"配置一測試"的過程,因此要求集成電路測試 機的測試向量空間深度滿足存儲多次配置一測試的測試向量的需要,同時 功能測試速率要滿足FPGA器件的"配置一測試"過程的要求。例如 Xilinx4010EFPGA器件系列器件進行配置時頻率為1M,進行測試時頻率 為25M。經過比較選擇,目前可行的集成電路測試機可以是美國泰瑞達
(Teradyne)公司推出的J750系列集成電路測試機等,也可以是其它性 能類似的集成電路測試設備,在此就不一一舉例說明了 。
在利用集成電路測試機對FPGA器件進行測試的過程中,需要解決 的主要問題是如何把FPGA器件的配置文件轉換成集成電路測試機可執 行的測試程序(測試圖形)。測試圖形由測試向量和時序信息共同組成。 測試向量是指被測器件每個周期的輸入輸出信號狀態,由字符來表示, 通常1/0用來表示輸入狀態,L/H/用來表示輸出狀態。時序信息包括器件 的工作頻率,以及在一個周期內輸入驅動信號變化的時間和對輸出信號 進行采樣比較的時間等。下面對此展開具體的說明。
FPGA器件的配置就是將配置文件下載到FPGA器件中,使FPGA器 件內部發生一定的變化,使FPGA器件成為具有一定功能的電路。FPGA 器件的配置可以由專門的配置器來完成。由集成電路測試機來實現FPGA 器件的配置就需要將FPGA器件的配置文件根據FPGA器件的配置原理 轉換成集成電路測試機可執行的測試圖形。
在FPGA器件的配置過程中,通過加載規定的程序定義FPGA器件 內部的功能塊和其互連信息的功能。例如Xilinx4010E FPGA系列器件的 每個CLB (可配置邏輯塊)及其附加的互連信息需要利用幾百位配置數 據,每個配置位定義靜態存儲單元的狀態,由其控制函數查找的位、多 路轉換器的輸入,或者是互連的傳輸晶體管。FPGA器件由存放在片內 RAM中的程序來設置其工作狀態,因此,工作時需要對片內的RAM進 行編程。用戶可以根據不同的配置模式,采用不同的編程方式。加電時, FPGA芯片將EPROM中數據讀入片內編程RAM中,配置完成后,FPGA 進入工作狀態。
在FPGA器件進行測試的過程中,需要重復進行多個"配置一測試" 的過程,集成電路測試機首先應該能夠滿足FPGA器件的配置要求。
具體而言,在FPGA器件上電后,經過一段時間的初始化,在INIT 端口信號變高后才能開始配置,因此集成電路測試機需要隨時監測INIT 端口的狀態。又根據從串配置模式的時序要求,集成電路測試機應該同 時在FPGA器件的DIN端和CCLK端施加配置數據和配置時鐘,配置數 據需要比配置時鐘提前一段時間以滿足建立保持時間的要求。
為了完成多個"配置一測試"過程,集成電路測試機需要能夠儲存多 個配置文件和測試向量,通過檢測測試過程中FPGA器件端口的狀態來
選擇使用哪個配置文件和測試向量,并且在測試過程中保持不掉電。在 測試過程中需要能夠對測試輸入口準確輸入測試向量,從測試輸出口讀 出帶有時序信息的測試輸出。
FPGA器件的加電配置過程如圖1所示。首先,確認Vcc是否有效; 在有效的前提下,測試MO,生成16ms或64ms的定時脈沖,在PROGRAM 信號為低的情況下,清除配置存儲器,然后再次完全清除配置存儲器。 在INIT信號為高的前提下,檢測配置模式,然后加載一個數據配置幀, 如果該數據幀出錯,則拉低INIT的信號電平并停止配置;在數據幀沒有 出錯的前提下,如果配置存儲器滿,則傳送配置數據到DOUT端,直至 CCLK計數等于長度計數為止。然后啟動序列,1/0激活,開始用戶邏輯 工作。在上述的加電配置過程中,從PROGRAM信號為低,清除配置存 儲器開始到啟動序列為止,LDC端保持低電平,而HDC端保持高電平。
FPGA器件可以有多種配置模式,例如并行主模式為一片FPGA加一 片EPROM的方式;主從模式可以支持一片PROM編程多片FPGA;串行 模式可以采用串行PROM編程FPGA;外設模式可以將FPGA作為微處 理器的外設,由微處理器對其編程。
以Xilinx4010E系列器件為例,該系列器件共有六種配置模式,其中 在從串配置模式中,FPGA器件在CCLK的上升沿接收串行配置數據。在 加載串行配置數據之后,傳遞附加的數據輸出,在下一個CCLK的下降 沿重新同步。具有相同配置的多個從屬器件可以并行地連接DIN輸入, 按此方式,多個器件可以同時配置。
Xilinx 4010E系列器件的配置過程如下 1.配置前的準備狀態
FPGA器件的供電電壓達到5V并穩定后,進入配置前的準備狀態。 這個過程的時間記為TP0R。不同型號的FPGA器件的Tpor并不相同,對 于Xilinx4010EFPGA系列器件而言,TPOR=40ms。該準備狀態的表征是 INIT端口輸出低電平,狀態結束時INIT端口將不輸出電平,由于此時它 是一個開漏結構的輸出端口 ,因此會被器件外部的上拉電阻拉到高電平。 INIT端口變為高電平表示該狀態的結束。 2.配置狀態
圖2顯示了從FPGA器件開始供電到可配置狀態開始這個過程中主 要端口的電平情況。圖3顯示了從串配置模式中FPGA器件主要端口的 時序情況。FPGA器件配置文件轉換成的測試圖形與圖3類似。
在INIT管腳變高后,至少經過Tk;ck后才可対CCLK和DIN管腳提 供配置時鐘和配置數據信號,配置時鐘的周期為Tcxlk。 T^ck過后,就 可以對FPGA器件進行配置了。配置時,對CCLK提供一定頻率的方波 作為配置時鐘,同時對DIN管腳提供由配置數據決定的測試向量。配置 數據最好在CCLK的下降沿改變,因為FPGA器件在CCLK的上升沿對 配置數據采樣。FPGA器件在CCLK的第一個上升沿就開始采樣DIN管 腳上的數據信號,因此在CCLK的第一個下降沿到來時就應該對DIN給 出配置數據的第一位,之后各位依次在CCLK的下降沿串行給出。
3.配置結尾("Start-up"進程)
參見圖4所示,當所有配置數據都被FPGA器件成功接受并且配置 正確后,器件開始進入"Start-up"進程。"Start-up"過程是從配置進程 到用戶操作進程的一個轉換過程。"Start-up"過程必須保證輸出端不會造 成與配置信號的沖突以及內部觸發器在合適的時間被全局置復位信號釋 放掉。"Start-up"進程主要包括以下三個事件
>釋放開漏輸出管腳DONE; (DONE管腳信號由低變為高) >配置相關管腳到用戶功能的轉換,激活所有的IOB; >終止全局置/復位信號對所有CLB及IOB寄存器的初始化。 為了確保"Start-up"進程的順利進行,在所有的配置數據都給出后, 還應為CCLK提供至少六個周期的時鐘信號,此時對DIN提供高電平信 號。圖5顯示了配置結尾進程中主要端口的時序要求。"Start-up"進程結 束后,對CCLK和DIN不需再提供信號,FPGA器件完成了整個配置過 程,進入正常工作狀態。
由FPGA器件的設計開發工具生成的被測FPGA器件的配置文件為 位流文件。位流文件的數據由起始碼和程序數據組成。起始碼包含起始 序列位和被配置器件需要的配置數據位數的長度計數,程序數據包含被 配置器件的配置信息。從配置文件中提取配置信息,并進行數據轉換, 就得到DIN管腳的配置數據信號。根據FPGA器件配置要求,設置FPGA 器件的CCLK、 INIT、 DONE等控制管腳的邏輯狀態。根據FPGA器件的
配置過程對各管腳的時序要求,設置各個管腳的時序信息,得到配置過
程的測試向量。這樣FPGA器件的配置過程就可以作為一項功能測試由 集成電路測試機執行。集成電路測試機執行為FPGA器件專門配置的測 試圖形,從而完成對FPGA器件的測試工作。
下面,通過具體的實施例來說明從配置文件到測試圖形的轉換過程。 首先,應用FPGA器件設計工具XilinxISE將4010EFPGA器件配置成如 圖6所示的4位遞加計數器。其中,控制信號clear=0時,數據輸出信號 c—out(4: 0)=0000, hold—on=0時c—out(4: O)保持,clear=l且hold—on=l 時,時鐘信號clk每過16個周期c一out(4: O)加1,輸出信號div—out的周 期為elk的16倍,div—outl為div—out的取反信號。
XilinxISE軟件生成配置文件,將配置信息進行數據轉換得到配置數 據"OOIOOOOO......"。在配置前的準備階段,DIN、 CCLK、 INIT、 DONE
幾個管腳的測試向量為(10LL)循環一定行數,DIN輸入1, CCLK輸入 0, INIT、 DONE輸出L。在配置階段,DIN輸入配置數據"00100000......",
CCLK輸入周期為lus的方波,INIT輸出L,DONE輸出H。進入"Start-up" 階段,DIN輸入1, CCLK繼續輸入方波,INIT、 DONE輸出H,循環一
定行數測試向量結束。
集成電路測試機運行此測試向量就將Xilinx4010E芯片配置成4位遞
加計數器。然后,根據各管腳的時序要求設置各個管腳信號變化的時間, 就可以得出集成電路測試機可執行的測試圖形。
集成電路測試機運行對該4位遞加計數器進行測試的測試圖形。測 試全部通過,表明利用集成電路測試機對FPGA器件進行產業化測試得 到成功實現。
上面雖然通過實施例描繪了本發明,但本領域普通技術人員知道, 本發明有許多變形和變化而不脫離本發明的精神,所附的權利要求將包 括這些變形和變化。
權利要求
1.一種對FPGA器件進行測試的方法,基于集成電路測試機實現,其特征在于包括如下的步驟(1)使用FPGA器件設計工具生成為FPGA器件配置預定功能的配置文件;(2)所述集成電路測試機使所述FPGA器件進入配置階段;(3)從所述配置文件中提取配置信息并進行數據轉換,得到預定管腳的配置數據信號;(4)設置所述FPGA器件各控制管腳的邏輯狀態,并設置各管腳的時序信息,得到配置過程的測試向量;(5)根據各個管腳的時序信息設置各個管腳信號變化的時間,得出測試圖形;(6)所述集成電路測試機執行所述測試圖形,完成對所述FPGA器件是否實現預定功能的測試工作。
2. 如權利要求1所述的對FPGA器件進行測試的方法,其特征在于 所述步驟(2)中,所述FPGA器件的配置模式為從串配置模式。
3. 如權利要求2所述的對FPGA器件進行測試的方法,其特征在于-所述集成電路測試機隨時監測INIT端口的狀態,在INIT端口信號變高后開始配置。
4. 如權利要求2所述的對FPGA器件進行測試的方法,其特征在于 所述集成電路測試機同時在FPGA器件的DIN端和CCLK端施加配置數據和配置時鐘,所述配置數據比所述配置時鐘提前一段時間。
5. 如權利要求2所述的對FPGA器件進行測試的方法,其特征在于 在給出所有的所述配置數據后,繼續為CCLK端提供至少六個周期的時鐘信號,此時對DIN端提供高電平信號。
6. 如權利要求1所述的對FPGA器件進行測試的方法,其特征在于 所述步驟(3)中,所述預定管腳為DIN端。
7. 如權利要求1所述的對FPGA器件進行測試的方法,其特征在于 所述步驟(4)中,所述控制管腳包括但不限于CCLK、 INIT、 DONE端。
全文摘要
本發明公開了一種對FPGA器件進行測試的方法,包括如下的步驟(1)生成為FPGA器件配置預定功能的配置文件;(2)使FPGA器件進入配置階段;(3)從配置文件中提取配置信息并進行數據轉換,得到預定管腳的配置數據信號;(4)設置FPGA器件各控制管腳的邏輯狀態,并設置各管腳的時序信息,得到配置過程的測試向量;(5)根據各個管腳的時序信息設置各個管腳信號變化的時間,得出測試圖形;(6)執行測試圖形,完成測試工作。利用本發明,可以使用現有的集成電路測試機完成對FPGA器件的測試,不僅減少了操作環節,而且提高FPGA器件的測試效率,便于實現FPGA器件的產業化測試。
文檔編號G01R31/28GK101363900SQ20071017558
公開日2009年2月11日 申請日期2007年9月30日 優先權日2007年9月30日
發明者煒 劉, 吉國凡, 博 孫, 楊 孫, 琳 張, 爾 李, 慧 王, 石志剛, 趙智昊, 蘭 金, 希 陳 申請人:北京華大泰思特半導體檢測技術有限公司