1 引言
FPGA" title="FPGA">FPGA 是現場可編程門陣列(Field ProgrammingGate Array)的縮寫,用戶可以編寫程序對FPGA內部的邏輯模塊和I/O模塊重新配置,以實現芯片的邏輯功能。近年來,FPGA芯片以其大規模、高集成度、高可靠性、投資少、保密性好、開發方便、使用靈活、可在線編程等優點得到了廣泛的應用。隨著FPGA電路在軍工和航空航天領域的應用,其高可靠性尤為重要,為了提高電路的可靠性,最好的方法是對電路進行篩選,其中老化" title="老化">老化試驗就是篩選過程中最為重要的環節之一。
考慮到FPGA 電路的工作模式比較復雜,外部需要存儲器或者FLASH 對其進行配置,FPGA 才能動態工作,因此國內一般的FPGA老化技術都采用了靜態老化試驗方法。這種靜態老化試驗方法存在著一定的缺陷,電路在老化過程中并沒有受到真正的應力,因此并不能真正剔除掉早期失效的產品,其可靠性得不到保證。對FPGA 電路動態老化的研究,提高老化試驗條件的嚴酷度,即可保證電路的高可靠性要求。
2 動態老化試驗
集成電路的動態老化理論上要求電路在其最高溫度工作條件下完全模擬實際工作狀態,電路內部的邏輯單元都有機會得到翻轉,對于一般數字集成電路都需要外部提供功能測試碼來驅動電路工作。
對于FPGA 電路的動態老化試驗來說,功能測試碼是存儲在外部存儲器中的配置程序,將程序配置到FPGA 電路內部,使內部的門陣列全部工作起來,實現高覆蓋率的邏輯節點的翻轉,讓其按照規定的功能工作。因此本研究工作的關鍵在如何進行FPGA電路的程序配置。
3 FPGA設計流程
完整的FPGA 設計流程包括邏輯電路設計輸入、功能仿真、綜合及時序分析、實現、加載配置、調試。FPGA配置就是將特定的應用程序設計按FPGA設計流程轉化為數據位流加載到FPGA 的內部存儲器中,實現特定邏輯功能的過程。由于FPGA電路的內部存儲器都是基于RAM 工藝的,所以當FPGA電路電源掉電后,內部存儲器中已加載的位流數據將隨之丟失。所以,通常將設計完成的FPGA位流數據存于外部存儲器中,每次上電自動進行FPGA電路配置加載。
4 FPGA配置原理
以Xilinx公司的Qpro Virtex" title="Virtex">VirtexHi-Rel系列XQV100" title="XQV100">XQV100電路為例,FPGA的配置模式有四種方案可選擇:MasterSerial Mode,Slave SerialMode,Master selectMAPMode,Slave selectMAP Mode。配置是通過芯片上的一組專/復用引腳信號完成的,主要配置功能信號如下:
(1)M0、M1、M2:下載配置模式選擇;
(2)CLK:配置時鐘信號;
(3)DONE:顯示配置狀態、控制器件啟動;
(4)PROG_B:初始化引出端;
(5)INT_B:配置延遲控制,配置錯誤顯示;
(6)DOUT:菊花鏈中的配置數據輸出。
(7)DIN:串行數據輸入;
FPGA 電路在選定模式下的配置過程包括四個主要階段:
(1)清除FPGA 電路內部配置存儲器;
(2)初始化FPGA 電路配置邏輯功能;
(3)加載FPGA 電路配置數據流;
(4)FPGA 電路配置完成,啟動電路就緒序列。
主串模式電路連接圖見圖1。
![FPGA 配置主串模式連接圖](http://files.chinaaet.com/images/20110227/7a5c351a-029f-4bba-bba8-cee0964ebef5.jpg)
系統或芯片上電后,信號引腳PROG_B被拉低,FPGA的配置RAM存儲器清空;同樣,PROG_B上的邏輯低電平將會復位配置邏輯,并使FPGA 保持在清空配置存儲器狀態。只要PROG_B 引腳保持低電平,則FPGA 將繼續清空它的配置RAM存儲器,并使INIT_B信號保持為低電平以表明配置在被清空。
當PROG_B被釋放時,FPGA將繼續使INIT_B保持低電平,直到完成清空所有的配置存儲器。FPGA 在INIT_B信號的上升沿檢測其模式引腳M0、M1、M2。
INIT_B 信號變為高電平后,配置就可以開始了,不需要額外的暫?;虻却芷?。但是,配置過程不必在INIT_B變化之后就立即開始。配置邏輯只有當位流的同步字被載入時才開始處理數據。當上電清除配置RAM存儲器后,INIT_B信號引腳變高電平,可以開始載入配置數據:標準的位流首先是引入空閑字FFFFFFFFh,其次是同步字AA995566h,然后是一些配置控制信息,緊跟其后的才是真正的位流數據幀和相關的CRC;位流的最后是CRC 校驗和啟動芯片進入工作態。FPGA 電路配置流程圖如圖2 所示。
![FPGA 電路配置流程圖](http://files.chinaaet.com/images/20110227/7eb1646a-8362-4a47-8178-08682bb79068.jpg)
5 FPGA動態老化板的設計
根據以上討論的配置原理,我們設計了XQV100型FPGA 電路動態老化板,如圖3 所示。配置模式采用主串方式(Master SerialMode),這種配置模式有利于簡化PCB的設計,并且主串模式的配置時鐘源于FPGA內部,不需要外部另外再提供。為了使FPGA電路工作在主串模式,電路的M1、M2、M3引腳都應接地。同時,該模式下的外部配置存儲器需要選用串行數據傳輸的存儲器,在這里我們選用Xilinx公司的xcf02s存儲器,內部存儲容量最大可達2 Mbit。
FPGA電路動態老化板采用400mm×400mm的雙層PCB板,在設計老化板時采用去耦及高、低頻RC濾波,對直流電源和信號源采取限流措施。每塊老化板上設計4個老化工位,為了便于在線調試電路,每個工位由一個XCF02S、一個JTAG 接口、一個XQV100 組成。FPGA芯片動態配置的邏輯程序放置于xcf02s Flash存儲器中。FPGA動態老化的配置程序采用VHDL語言編寫,采用ISE(V9.1)工具進行綜合,利用ModelSim(V6.0)進行功能模擬,其具體功能是把全部輸入、輸出管腳分五組,每組都實現32 分頻功能,每組由外部提供一個1MHz 的方波信號作為輸入。計算機通過Xilinx 專用的JATG下載線將編譯過的配置程序下載到xcf02s 電路中。當FPGA電路上電時,xcf02s 中的配置程序自動按照串行的方式下載到FPGA的內部RAM存儲器中,FPGA 按照程序的功能運行。每個電路選擇一個輸出端口,輸出頻率在1Hz 左右,在外部連接一個LED燈作為輸出監控,在老化的過程中可通過該燈觀察電路是否正常工作。
![FPGA 電路動態老化板原理圖](http://files.chinaaet.com/images/20110227/2e1e61d4-8700-404f-ac9d-0a763a0ab039.jpg)
6 結果與分析
我們以XQV100 型FPGA電路為例,進行動態老化和靜態老化對比試驗,試驗條件選擇溫度為125℃,時間160h。隨機抽樣60只常溫測試合格電路,各取30只分別按照動態老化試驗方法和靜態老化試驗方法進行老化。在動態老化通電時,確保每只電路都有輸出;靜態老化試驗時,確保電源電壓輸入正確。每1h記錄一次,確認是否有老化異常情況。
電路在經過26h 后,其中有1 只(6#)電路LED不閃爍,初步懷疑已經失效,但并沒有立即取出,和其他電路一樣經過160h老化,經過126h 后21# 電路的LED 不閃爍,同樣繼續陪試。在老化試驗結束后96h內完成了所有電路的常溫電測試,發現6# 和21#電路功能失效,其余電路都合格,具體情況詳見表1。
表1 動態老化和靜態老化比對試驗結果
![動態老化和靜態老化比對試驗結果](http://files.chinaaet.com/images/20110227/74216b5b-210c-4de7-94d3-06ab87414026.jpg)
動態老化試驗方法和靜態老化試驗方法相比,動態老化試驗在通過外圍配置電路的程序驅動,使電路的內部功能模塊一直處于高速的工作狀態,相反靜態老化時雖然有電壓加載,但沒有配置程序驅動電路工作,內部模塊并一直處于空閑狀態,因此FPGA電路在動態老化時,所受到的應力條件更加嚴酷,更容易暴露電路本身潛在的缺陷,從而提高了電路本身的可靠性。
7 結束語
目前,國內進行FPGA電路的老化大部分還是采用靜態老化試驗方法。特點是電路老化時不工作,內部門陣列不翻轉,老化過程中無法判斷電路是否有異常。FPGA電路動態老化試驗方法的實現解決了這些問題,增加了輸出監測點,保證了電路老化過程無異常,從而提高了電路的可靠性。
本文通過對FPGA 電路加載配置過程的流程和原理進行研討,設計了FPGA 電路動態老化的試驗方法,并在工程實踐中得到了成功的實現和運用。
雖然這里設計的電路和配置過程針對Xilinx 公司的Qpro Virtex Hi-Rel系列XQV100電路,但是對其他系列和其他公司FPGA的動態配置也有參考作用。本方法雖然實現了動態老化的目的,但還是存在著缺陷:現有FPGA電路的內部門數已經超過了100萬門,一般的配置程序只能占用FPGA 電路的部分內部資源,并且用到的D 觸發器多了,則移位寄存器就少,通常是顧此失彼,因此要做到100%的動態老化試驗還存在著一定的困難。