FPGA重復配置和測試的實(shí)現
通常來(lái)說(shuō),要完成FPGA內部資源的完整測試需要針對不同的待測資源設計多種配置圖形,多次下載到FPGA,反復施加激勵和回收測試響應,通過(guò)對響應數據的分析來(lái)診斷故障。因此,用于FPGA測試的儀器或系統的關(guān)鍵技術(shù)在于:如何加快單次配置的時(shí)間,以節省測試過(guò)程中的配置時(shí)間開(kāi)銷(xiāo);如何實(shí)現自動(dòng)重復配置和測試,將FPGA較快速度的在線(xiàn)配置和快速測試結合起來(lái)。
由于一般的集成電路自動(dòng)測試儀ATE為通用IC測試設計,但FPGA測試有上述特殊性,在芯片功能測試之前必須對其進(jìn)行特定的配置,否則芯片是不具備內部電路結構的,內部資源將無(wú)法測試,而通用的ATE要完成測試步驟中的配置功能時(shí),需要以人工或通過(guò)電腦專(zhuān)門(mén)編程修改配置數據生成測試系統可執行的測試激勵形式進(jìn)行配置,且如果配置數據較多,這個(gè)轉換過(guò)程將可能比較復雜,易用性不強,無(wú)法高效地用于FPGA器件的測試中,需要對FPGA測試設計專(zhuān)用的測試平臺以滿(mǎn)足其配置測試需求。
我們設計的系統實(shí)現了快速重復配置和測試的功能,配置數據可以直接引用EDA軟件生成的位流文件而不需要像ATE一樣轉換成繁雜的測試激勵形式,相較于A(yíng)TE有一定的優(yōu)勢,對FPGA測試有一定的使用價(jià)值。
FPGA可重復配置和測試系統結構概述
系統框圖如圖1所示。
系統功能的實(shí)現包括軟件和硬件兩部分。硬件部分包含PCI橋接芯片、FPGA1中的數據接口模塊、配置模塊、測試模塊和被測FPGA。軟件部分包含對實(shí)現FPGA配置部分的代碼和實(shí)現FPGA測試部分的代碼。FPGA1中的各硬件模塊通過(guò)EDA軟件以JTAG接口固化FPGA1中,其中FPGA1中的配置模塊負責接收來(lái)自PC方軟件發(fā)送的配置數據,并產(chǎn)生對被測FPGA的配置時(shí)序,完成配置步驟,測試模塊負責發(fā)送測試激勵和回收被測FPGA的響應數據,等待PC方軟件的回收。
系統軟硬件交互流程
整個(gè)系統通過(guò)軟硬件的數據交互實(shí)現對被測FPGA的自動(dòng)配置和測試的流程,軟硬件交互的流程從圖2可以體現:系統啟動(dòng)后,首先需要開(kāi)始對被測FPGA進(jìn)行數據配置,由軟件向硬件發(fā)送配置開(kāi)始指令,硬件接收指令后對被測FPGA產(chǎn)生配置開(kāi)始的時(shí)序,告訴被測FPGA準備接收配置數據。當軟件查詢(xún)到配置模塊中的狀態(tài)寄存器值代表等待數據時(shí)開(kāi)始發(fā)送配置數據。配置數據發(fā)送完成后,軟件通過(guò)讀取配置模塊的狀態(tài)寄存器值判斷配置是否成功,決定是否可以開(kāi)始測試。如果配置成功,軟件則開(kāi)始向被測FPGA發(fā)送測試激勵數據并讀回測試響應保存在電腦中,由軟件對測試響應進(jìn)行分析決定是否需要進(jìn)行下一次配置和測試流程。如果需要,在一定的延時(shí)之后軟硬件將回復初始狀態(tài),并選擇新的配置數據和測試數據,開(kāi)始新一輪的配置后測試流程。
軟硬件數據交互的通路是PCI總線(xiàn),軟件向FPGA1發(fā)送指令或數據時(shí),軟件通過(guò)PCI應用編程接口函數將數據放到PCI總線(xiàn)上,PCI橋接芯片將較為復雜的PCI接口信號轉化為相對簡(jiǎn)單的Local Bus數據信號,由FPGA1中的接口模塊接收并產(chǎn)生相應的動(dòng)作。而軟件向FPGA1讀取數據的通路則相反。圖3和圖4分別是軟件在VC++6.0環(huán)境中斷點(diǎn)調試發(fā)送指令和軟件向FPGA1發(fā)送指令時(shí)由嵌入式邏輯分析儀SignalTAP II捕捉到的指令數據和接口模塊波形。
圖4中ADS_N、BLAST_N、LWORD_N、LHOLD、LHOLDA是Local Bus的接口信號,ConfigEnd和ConfigStart是分別代表配置結束和配置開(kāi)始的標志寄存器,LA是接口的地址信號,用于模塊中控制寄存器的尋址,LD是接口的數據信號,用于指令數據的發(fā)送和數據的回收。
以配置開(kāi)始指令的發(fā)送為例,從圖3圖4兩圖中可以看出軟硬件交互過(guò)程中的指令發(fā)送方式,在VC++中單步調試,發(fā)送一個(gè)開(kāi)始指令0x01到配置命令寄存器地址0x01,通過(guò)硬件模塊的接口動(dòng)作,用嵌入式存儲器SignalTap II中捕捉到LA的數據為1h,LD上的數據為1h后ConfigStart寄存器置高,配置開(kāi)始。
配置速度測試實(shí)驗
軟硬件具體方案設計完畢后,軟件在Visual C++6.0環(huán)境下實(shí)現并調試。硬件在QuartusII7.1軟件下編譯。
為了對比基于PCI總線(xiàn)的FPGA高速配置方案與基于ByteBlasterII JTAG下載電纜的速度性能,首先使用QuartusII7.1軟件采用JTAG方式對FPGA2配置5次,計算每次下載所示時(shí)間,得到如表1中所示的數據;再使用本系統中基于PCI總線(xiàn)的配置功能對FPGA2配置5次,軟件會(huì )自行計算總的下載時(shí)間,得到如表1中所示的數據:
從表1的數據對比中可以看到,基于PCI總線(xiàn)的自動(dòng)下載配置方式要比基于JTAG電纜的下載配置方式提高超過(guò)20倍的速度,如果使用基于JTAG電纜對某大容量的FPGA下載需要近20分鐘的話(huà),使用PCI下載方式則只需不到1分鐘的下載時(shí)間,具有明顯的速度優(yōu)勢,大大節省了FPGA測試中的數據配置時(shí)間。
總結
該FPGA芯片測試平臺具有以下特點(diǎn):
?。?)針對FPGA測試的特點(diǎn):需要重復對待測FPGA配置,設計了FPGA在線(xiàn)配置模塊和自動(dòng)測試模塊,從概念上初步實(shí)現了自動(dòng)重復下載和重復測試的功能,為FPGA自動(dòng)化測試尋找到一個(gè)好方法;
?。?)利用軟件的靈活性提高了測試系統中具有可觀(guān)察性好和可控制性強的優(yōu)勢;利用硬件結構上并行度高、速度快的優(yōu)勢提高了測試的效率;
?。?)相較于專(zhuān)業(yè)的ATE設備,該系統軟件可控性更強,配置數據更方便。
評論