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