基于動態(tài)重構(gòu)的fpga配置信息翻轉(zhuǎn)測試平臺及測試方法
【專利摘要】本發(fā)明公開了一種基于動態(tài)重構(gòu)的FPGA配置信息翻轉(zhuǎn)測試平臺及測試方法。其包括上位機控制模塊、TCP/IP協(xié)議通信模塊、配置讀寫模塊、待測模塊、數(shù)據(jù)收集模塊及上位機數(shù)據(jù)分析模塊。上位機控制模塊產(chǎn)生測試所需參數(shù),并通過TCP/IP協(xié)議通信模塊傳給配置讀寫模塊;配置讀寫模塊通過內(nèi)部配置訪問端口ICAP實現(xiàn)配置信息的讀寫及實時翻轉(zhuǎn);待測模塊由用戶根據(jù)需要提供;數(shù)據(jù)收集模塊產(chǎn)生待測模塊所需激勵信號,并將配置信息翻轉(zhuǎn)后待測模塊的輸出結(jié)果發(fā)送至上位機數(shù)據(jù)分析模塊;上位機數(shù)據(jù)分析模塊對測試結(jié)果進行統(tǒng)計和分析,判斷待測模塊功能能否正確實現(xiàn)。本發(fā)明具有FPGA資源消耗小、待測系統(tǒng)靈活、接口處理速度快的優(yōu)點,可用于星載FPGA系統(tǒng)的可靠性測試。
【專利說明】基于動態(tài)重構(gòu)的FPGA配置信息翻轉(zhuǎn)測試平臺及測試方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于測試【技術(shù)領(lǐng)域】,特別涉及一種用于FPGA配置信息翻轉(zhuǎn)測試的平臺,可應(yīng)用于航天星載FPGA系統(tǒng)的可靠性測試。
【背景技術(shù)】
[0002]FPGA (Field Programmable Gate Array)因其使用靈活、可反復燒寫的優(yōu)異特性,在空間領(lǐng)域得到了廣泛的應(yīng)用。然而由于空間環(huán)境存在高能粒子輻射,它會引起FPGA產(chǎn)生單粒子效應(yīng),尤其是單粒子的翻轉(zhuǎn),這會導致FPGA的配置信息發(fā)生改變,致使電路功能出錯,無法保證系統(tǒng)整體功能的正常運作。為保證航天星載FPGA系統(tǒng)的可靠性,有必要對其進行單粒子翻轉(zhuǎn)測試。
[0003]目前在國內(nèi),進行FPGA系統(tǒng)的單粒子翻轉(zhuǎn)測試,只有專門的機構(gòu)能夠進行,其實驗費用高、等待周期長。因此,搭建可模擬單粒子翻轉(zhuǎn)的測試平臺對待測試系統(tǒng)進行可靠性檢測,是節(jié)省研究資源、提高研究效率的有效方法。而現(xiàn)階段我國模擬單粒子翻轉(zhuǎn)測試平臺及測試方法的相關(guān)技術(shù)仍處于起步階段,如中國人民解放軍國防科學技術(shù)大學申請的發(fā)明專利(CN200910043423.0)《現(xiàn)場可編程邏輯門陣列中單粒子翻轉(zhuǎn)的檢測方法及裝置》,該專利申請由于采用NVRAM接口進行配置幀讀取及回讀控制,存在FPGA資源消耗較大、待測試系統(tǒng)不可靈活調(diào)整、接口處理速度慢的問題。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的在于針對上述已有技術(shù)的不足,提出一種基于動態(tài)重構(gòu)的FPGA配置信息翻轉(zhuǎn)測試平臺及測試方法,以減小FPGA的資源消耗,提高待測試系統(tǒng)的靈活性和接口的處理速度。
[0005]本發(fā)明的技術(shù)方案是這樣實現(xiàn)的:
[0006]一.技術(shù)思路
[0007]本發(fā)明通過搭建一種局部配置信息可被動態(tài)任意修改的配置信息翻轉(zhuǎn)測試平臺,實現(xiàn)對FPGA配置信息的讀取及實時修改、使其具有運行狀態(tài)健康判斷和與上位機數(shù)據(jù)交換的功能。
[0008]二.測試平臺
[0009]本發(fā)明的FPGA配置信息翻轉(zhuǎn)測試平臺,包括:
[0010]上位機控制模塊(I),用于產(chǎn)生測試所需的隨機向量、隨機向量位置及模擬單粒子翻轉(zhuǎn)的次數(shù),輸出給配置讀寫模塊;
[0011]TCP/IP協(xié)議通信模塊(2),用于完成上位機控制模塊與配置讀寫模塊之間的信息傳輸,以及配置讀寫模塊與上位機數(shù)據(jù)分析模塊之間的信息傳輸;
[0012]配置讀寫模塊(3),用于實現(xiàn)FPGA配置信息的讀寫及實時修改,即通過訪問FPGA內(nèi)部配置訪問端口 ICAP,回讀出待測模塊配置信息,并對該配置信息與隨機向量進行運算,再將加入隨機向量后的配置信息重新寫入待測模塊;[0013]待測模塊(4),用于配置自身的電路信息,將配置信息輸出至配置讀寫模塊,或根據(jù)配置讀寫模塊傳回的加入隨機向量后的配置信息,重新配置自身的電路信息,并將新配置后該模塊的輸出結(jié)果送入數(shù)據(jù)收集模塊;
[0014]數(shù)據(jù)收集模塊(5),用于產(chǎn)生待測模塊所需的激勵信號,并將待測模塊輸出的新配置后的結(jié)果,輸出給上位機數(shù)據(jù)分析模塊(6);
[0015]上位機數(shù)據(jù)分析模塊出),用于對從數(shù)據(jù)收集模塊中傳入的模塊功能結(jié)果進行統(tǒng)計和分析。
[0016]上述FPGA配置信息翻轉(zhuǎn)測試平臺,其特征在于所述的上位機控制模塊⑴,
[0017]包括:
[0018]模擬單粒子產(chǎn)生密度子模塊(11),用于根據(jù)用戶輸入的環(huán)境參數(shù),模擬產(chǎn)生單粒子的翻轉(zhuǎn)次數(shù);
[0019]隨機向量產(chǎn)生子模塊(12),用于隨機產(chǎn)生需要注入到配置信息文件中的錯誤配置信息,即隨機向量;
[0020]隨機向量位置產(chǎn)生子模塊(13),用于隨機產(chǎn)生注入錯誤配置信息的位置,即隨機向量位置。
[0021]上述FPGA配置信息翻轉(zhuǎn)測試平臺,其特征在于所述的TCP/IP協(xié)議通信模塊(2),用于通過Micro Blaze軟核,建立上位機與FPGA之間的TCP/IP協(xié)議通信。
[0022]上述FPGA配置信息翻轉(zhuǎn)測試平臺,其特征在于所述的配置讀寫模塊(3),包括:
[0023]ICAP控制子模塊(31),用于根據(jù)上位機控制模塊傳入的指令,控制ICAP狀態(tài)機在各個狀態(tài)之間的跳轉(zhuǎn),包括空閑狀態(tài)、回讀狀態(tài)、寫狀態(tài)及數(shù)據(jù)收集狀態(tài)四個狀態(tài);
[0024]ICAP回讀控制子模塊(32),用于通過訪問內(nèi)部配置訪問端口 ICAP,實現(xiàn)讀取待測模塊的動態(tài)區(qū)域配置信息,并將其存入配置信息寄存器RAM中;
[0025]配置信息寄存RAM子模塊(33),用于存儲通過內(nèi)部配置訪問端口 ICAP回讀出的待測模塊動態(tài)區(qū)域配置信息;
[0026]翻轉(zhuǎn)向量寄存RAM子模塊(34),用于存儲由上位機控制模塊產(chǎn)生并通過MicroBlaze傳入的隨機向量及隨機向量位置;
[0027]ICAP寫控制子模塊(35),用于對配置信息寄存器RAM中的配置信息與翻轉(zhuǎn)向量寄存器RAM中的隨機向量進行異或運算,并將翻轉(zhuǎn)后的配置信息重新寫入待測模塊。
[0028]三.測試方法
[0029]本發(fā)明對待測模塊的配置信息進行翻轉(zhuǎn)測試包括兩種方案,一是對配置信息文件可存入FPGA內(nèi)部的待測模塊進行測試的方法,二是對配置信息文件不可存入FPGA內(nèi)部的待測模塊進行測試的方法。
[0030]1.對配置信息文件可存入FPGA內(nèi)部的待測模塊進行測試的方法,包括如下步驟:[0031 ] (I)將上位機與FPGA測試板相連,F(xiàn)PGA復位上電,由待測模塊配置自身的電路信息;
[0032](2)建立上位機與FPGA之間的傳輸控制協(xié)議和因特網(wǎng)互聯(lián)協(xié)議TCP/IP通信連接;
[0033](3) ICAP回讀控制子模塊對步驟(I)中產(chǎn)生的配置信息進行讀取,并將其存入配置信息寄存器RAM中;[0034](4)啟動上位機控制模塊,由用戶輸入測試參數(shù),產(chǎn)生模擬單粒子預設(shè)的翻轉(zhuǎn)次數(shù)、隨機向量及隨機向量位置,并將其送入翻轉(zhuǎn)向量寄存器RAM中;
[0035](5) ICAP寫控制子模塊讀取翻轉(zhuǎn)向量寄存RAM子模塊中的隨機向量位置,對該處的配置信息與隨機向量進行異或運算,并將翻轉(zhuǎn)后的配置信息通過內(nèi)部配置訪問端口 ICAP重新寫入待測模塊;
[0036](6)待測模塊根據(jù)翻轉(zhuǎn)后的配置信息,對其自身的電路信息進行重新配置,并將新配置后待測模塊的輸出結(jié)果傳入數(shù)據(jù)收集模塊;
[0037]7)重復步驟(4)-?),直到達到預設(shè)的單粒子翻轉(zhuǎn)次數(shù),數(shù)據(jù)收集模塊向待測模塊發(fā)出收集結(jié)束信號,并將結(jié)果發(fā)回至上位機數(shù)據(jù)分析模塊;
[0038](8)上位機數(shù)據(jù)分析模塊對返回的新配置后待測模塊的輸出結(jié)果進行統(tǒng)計,判斷待測模塊的配置信息經(jīng)單粒子翻轉(zhuǎn)影響后其自身的測試內(nèi)容能否正確實現(xiàn),即將該輸出結(jié)果與步驟(I)中待測模塊的輸出結(jié)果進行比較,若二者相吻合,則判斷待測模塊自身的測試內(nèi)容能正確實現(xiàn);否則,待測模塊自身的測試內(nèi)容不能正確實現(xiàn)。
[0039]2.對配置信息文件不可存入FPGA內(nèi)部的待測模塊進行測試的方法,包括如下步驟:
[0040](I)將上位機與FPGA測試板相連,F(xiàn)PGA復位上電,由待測模塊配置自身的電路信息,并將配置信息送入上位機控制模塊中;
[0041](2)建立上位機與FPGA之間的傳輸控制協(xié)議和因特網(wǎng)互聯(lián)協(xié)議TCP/IP通信連接;
[0042](3)啟動上位機控制模塊,由用戶輸入測試參數(shù),產(chǎn)生模擬單粒子預設(shè)的翻轉(zhuǎn)次數(shù)、隨機向量及隨機向量位置,并將其存入上位機控制模塊內(nèi)部寄存器中,在上位機控制模塊內(nèi)部對配置信息與隨機向量進行異或運算,并將翻轉(zhuǎn)后的配置信息發(fā)送至ICAP寫控制子模塊;
[0043](4) ICAP寫控制子模塊通過內(nèi)部配置訪問端口 ICAP將翻轉(zhuǎn)后配置信息重新寫入待測模塊;
[0044](5)待測模塊根據(jù)翻轉(zhuǎn)后的配置信息,對其自身的電路信息進行重新配置,并將新配置后待測模塊的輸出結(jié)果傳入數(shù)據(jù)收集模塊;
[0045](6)重復步驟(3)-(5),直到達到預設(shè)的單粒子翻轉(zhuǎn)次數(shù),數(shù)據(jù)收集模塊向待測模塊發(fā)出收集結(jié)束信號,并將結(jié)果發(fā)回至上位機數(shù)據(jù)分析模塊;
[0046](7)上位機數(shù)據(jù)分析模塊對返回的新配置后待測模塊的輸出結(jié)果進行統(tǒng)計,判斷待測模塊的配置信息經(jīng)單粒子翻轉(zhuǎn)影響后其自身的測試內(nèi)容能否正確實現(xiàn),即將該輸出結(jié)果與步驟(I)中待測模塊的輸出結(jié)果進行比較,若二者相吻合,則判斷待測模塊自身的測試內(nèi)容能正確實現(xiàn);否則,待測模塊自身的測試內(nèi)容不能正確實現(xiàn)。
[0047]本發(fā)明與現(xiàn)有技術(shù)相比具有以下優(yōu)點:
[0048]第一,本發(fā)明采用FPGA的內(nèi)部配置訪問接口 ICAP(Internal ConfigurationAccess Port),通過ICAP訪問待測模塊的動態(tài)配置區(qū)域,完成對配置信息的讀、寫操作,這樣無論待測模塊的配置信息存儲所需RAM大或小,都只需一片F(xiàn)PGA便可完成整個測試,使得本發(fā)明的資源更節(jié)省。
[0049]第二,本發(fā)明的測試平臺結(jié)構(gòu)可適應(yīng)不同規(guī)模的待測模塊,結(jié)構(gòu)靈活可調(diào),使得本發(fā)明的應(yīng)用范圍更廣泛。
[0050]第三,本發(fā)明通過Micro Blaze軟核實現(xiàn)FPGA內(nèi)部與外部的信息傳輸,MicroBlaze軟核支持C語言且方便移植,可更為簡單地實現(xiàn)傳輸控制協(xié)議和因特網(wǎng)互聯(lián)協(xié)議TCP/IP,使得本發(fā)明的接口處理速度更快。
[0051]第四,本發(fā)明采用人性化的上位機來模擬單粒子翻轉(zhuǎn)的產(chǎn)生,并支持用戶根據(jù)需要來自定義測試參數(shù),使得本發(fā)明的測試平臺結(jié)構(gòu)更為完善、全面,操作更簡單。
【專利附圖】
【附圖說明】
[0052]圖1為本發(fā)明的FPGA配置信息翻轉(zhuǎn)測試平臺的整體結(jié)構(gòu)框圖;
[0053]圖2為本發(fā)明測試平臺中配置信息可存入FPGA內(nèi)部時的配置讀寫模塊結(jié)構(gòu)圖;
[0054]圖3為本發(fā)明測試平臺中配置信息不可存入FPGA內(nèi)部時的配置讀寫模塊結(jié)構(gòu)圖;
[0055]圖4為本發(fā)明測試平臺中配置信息可存入FPGA內(nèi)部時的測試流程圖;
[0056]圖5為本發(fā)明測試平臺中配置信息不可存入FPGA內(nèi)部時的測試流程圖。
【具體實施方式】
[0057]本發(fā)明的測試平臺采用Xilinx ISE 14.3集成開發(fā)軟件和VS2010軟件,基于Xilinx Virtex5 FPGA 搭建。
[0058]參照圖1,本發(fā)明的FPGA配置信息翻轉(zhuǎn)測試平臺包括:上位機控制模塊1、TCP/IP協(xié)議通信模塊2、配置讀寫模塊3、待測模塊4、數(shù)據(jù)收集模塊5以及上位機數(shù)據(jù)分析模塊6。
[0059]上位機控制模塊1、上位機數(shù)據(jù)分析模塊6同屬上位機,配置讀寫模塊3、待測模塊4與數(shù)據(jù)收集模塊5同屬FPGA ;上位機與FPGA之間通過TCP/IP協(xié)議通信模塊2相連,其中,TCP/IP協(xié)議通信模塊2利用Micro Blaze軟核實現(xiàn)。上位機控制模塊I由微軟基礎(chǔ)類MFC實現(xiàn),產(chǎn)生模擬單粒子翻轉(zhuǎn)的次數(shù)、隨機向量及隨機向量位置,通過TCP/IP協(xié)議通信模塊2輸出給配置讀寫模塊3 ;配置讀寫模塊3回讀待測模塊4配置信息,并對配置信息與隨機向量進行異或運算,將翻轉(zhuǎn)后的配置信息重新寫入待測模塊4 ;待測模塊4配置自身的電路信息,并將配置信息輸出至配置讀寫模塊3,或根據(jù)配置讀寫模塊3傳回的加入隨機向量后的配置信息,重新配置自身的電路信息,再將新配置后該模塊的輸出結(jié)果送入數(shù)據(jù)收集模塊5 ;數(shù)據(jù)收集模塊5為待測模塊4提供激勵信號,并將收集的待測模塊4的新配置后該模塊的輸出結(jié)果送回上位機數(shù)據(jù)分析模塊6 ;上位機數(shù)據(jù)分析模塊6對從數(shù)據(jù)收集模塊5中傳入的模塊功能結(jié)果進行統(tǒng)計,并將該結(jié)果與待測模塊4的輸出結(jié)果進行比較,若二者相吻合,則判斷待測模塊自身的測試內(nèi)容能正確實現(xiàn);否則,待測模塊自身的測試內(nèi)容不能正確實現(xiàn)。
[0060]上述平臺中的配置讀寫模塊3,其結(jié)構(gòu)根據(jù)待測模塊的配置信息文件大小能否存入FPGA內(nèi)部RAM而不同。對于待測模塊的配置信息文件能存入FPGA內(nèi)部RAM時的配置讀寫模塊,其結(jié)構(gòu)如圖2 ;對于待測模塊的配置信息文件不能存入FPGA內(nèi)部RAM時的配置讀寫模塊,其結(jié)構(gòu)如圖3。
[0061]參照圖2,本發(fā)明測試平臺中的配置讀寫模塊3,包括:ICAP控制子模塊31、ICAP回讀控制子模塊32、配置信息寄存RAM子模塊33、翻轉(zhuǎn)向量寄存RAM子模塊34、ICAP寫控制子模塊35、選擇器以及內(nèi)部配置訪問端口 ICAP,其中:
[0062]ICAP控制子模塊31,通過狀態(tài)機實現(xiàn),該狀態(tài)機包括回讀狀態(tài)、寫狀態(tài)、數(shù)據(jù)收集狀態(tài)及空閑狀態(tài)四個狀態(tài)。根據(jù)上位機控制模塊I傳入不同的指令,ICAP控制子模塊31通過選擇器來跳轉(zhuǎn)至不同的狀態(tài):當收到回讀指令時則跳轉(zhuǎn)至回讀狀態(tài),即ICAP回讀控制子模塊32開始工作;當收到寫指令時則跳轉(zhuǎn)至寫狀態(tài),即ICAP寫控制子模塊35開始工作;當收到數(shù)據(jù)收集指令時則跳轉(zhuǎn)至數(shù)據(jù)收集狀態(tài),即數(shù)據(jù)收集模塊5開始工作;當收到空指令時則跳轉(zhuǎn)至空閑狀態(tài),即不進行任何操作。
[0063]ICAP回讀控制子模塊32,通過內(nèi)部配置訪問端口 ICAP讀取待測模塊的動態(tài)區(qū)域配置信息,并將其存入配置信息寄存RAM子模塊33中;
[0064]配置信息寄存RAM子模塊33,存儲ICAP回讀控制子模塊32通過內(nèi)部配置訪問端口 ICAP讀取的待測模塊配置信息;
[0065]翻轉(zhuǎn)向量寄存RAM子模塊34,存儲由上位機控制模塊I產(chǎn)生并通過Micro Blaze傳來的隨機向量及隨機向量位置;
[0066]ICAP寫控制子模塊35,讀取配置信息寄存RAM子模塊33中的配置信息以及翻轉(zhuǎn)向量寄存RAM子模塊34中的隨機向量,并訪問翻轉(zhuǎn)向量寄存RAM子模塊34中的隨機向量位置,對該位置處的配置信息和隨機向量進行異或運算,然后將翻轉(zhuǎn)后的配置信息重新寫入待測模塊4。
[0067]參照圖3,本發(fā)明測試平臺中的配置讀寫模塊3,包括:ICAP寫控制子模塊35以及內(nèi)部配置訪問端口 ICAP。
[0068]ICAP寫控制子模塊35接收由上位機控制模塊I傳入的翻轉(zhuǎn)后配置信息,并通過內(nèi)部配置訪問端口 ICAP將其重新寫入待測模塊,該翻轉(zhuǎn)后配置信息是由配置信息和隨機向量進行異或運算得到,其中,配置信息由待測模塊4傳入,隨機向量由上位機控制模塊I產(chǎn)生并通過Micro Blaze傳入。
[0069]上述待測模塊4,采用RS編碼器實現(xiàn)。當RS編碼器所屬動態(tài)區(qū)域產(chǎn)生的配置信息文件可存入FPGA內(nèi)部RAM中時,待測模塊的測試流程如圖4 ;當RS編碼器所屬動態(tài)區(qū)域產(chǎn)生的配置信息文件不可存入FPGA內(nèi)部RAM中時,待測模塊的測試流程如圖5。
[0070]參照圖4,利用上述FPGA配置信息翻轉(zhuǎn)測試平臺,對配置信息文件可存入FPGA內(nèi)部的待測模塊進行測試,包括如下步驟:
[0071]步驟I,配置 FPGA。
[0072]將上位機與FPGA測試板相連,F(xiàn)PGA復位上電,待測模塊產(chǎn)生配置信息,并根據(jù)數(shù)據(jù)收集模塊傳來的時鐘激勵信號,產(chǎn)生RS編碼碼流。
[0073]步驟2,建立TCP/IP連接。
[0074]啟動上位機,打開上位機控制模塊中的微軟基礎(chǔ)類MFC控制窗口,在MFC控制窗口內(nèi)點擊連接按鈕,即可自動建立上位機與FPGA之間的TCP/IP通信連接,即傳輸控制協(xié)議和因特網(wǎng)互聯(lián)協(xié)議。
[0075]步驟3,配置信息的讀取與存儲
[0076]上位機控制模塊發(fā)出讀指令,ICAP控制子模塊收到讀指令后,狀態(tài)機跳轉(zhuǎn)至回讀狀態(tài),ICAP回讀控制子模塊按如下步驟讀取步驟I中產(chǎn)生的配置信息并將其存入配置信息寄存器RAM中:[0077]3a)第一次寫命令字:上位機控制模塊傳入讀指令后,ICAP回讀控制子模塊向ICAP中寫入讀操作命令字;
[0078]3b)讀取并存儲配置信息:讀操作命令字寫入后,待測模塊開始輸出配置信息,ICAP回讀控制子模塊通過ICAP讀取該配置信息;
[0079]3c)第二次寫命令字:配置信息讀取完成后,ICAP回讀控制子模塊向ICAP中寫入讀操作結(jié)束命令字,讀操作結(jié)束;
[0080]3d) ICAP回讀控制子模塊將回讀完成操作信號傳給ICAP控制子模塊,并將讀取的配置信息存入到配置信息寄存器RAM中。
[0081]步驟4,輸入測試參數(shù)。
[0082]4a)在MFC控制窗口內(nèi)輸入自定義測試參數(shù),包括配置容量、粒子強度及放大倍數(shù);
[0083]4b)上位機控制模塊根據(jù)上述測試參數(shù),自動計算出模擬單粒子預設(shè)的翻轉(zhuǎn)次數(shù),并生成相應(yīng)個數(shù)的隨機向量及隨機向量位置;
[0084]4c)將模擬單粒子預設(shè)的翻轉(zhuǎn)次數(shù)、隨機向量及隨機向量位置整合為數(shù)據(jù)包,利用TCP/IP協(xié)議,將該數(shù)據(jù)包通過Micro Blaze發(fā)送至FPGA內(nèi)部的翻轉(zhuǎn)向量寄存器RAM中。
[0085]步驟5,進行配置信息翻轉(zhuǎn),并將翻轉(zhuǎn)后的配置信息重新寫入待測模塊。
[0086]上位機控制模塊發(fā)出寫指令,ICAP控制子模塊收到寫指令后,狀態(tài)機跳轉(zhuǎn)至寫狀態(tài),ICAP寫控制子模塊按如下步驟進行配置信息翻轉(zhuǎn)運算,并將其重新寫入待測模塊:
[0087]5a)第一段執(zhí)行寫頭部命令字操作;
[0088]5b)第二段執(zhí)行寫翻轉(zhuǎn)后配置信息操作:
[0089]5bl)從配置信息寄存器RAM中讀出配置信息,從翻轉(zhuǎn)信息寄存器RAM中讀出隨機
向量;
[0090]5b2)讀取翻轉(zhuǎn)信息寄存器RAM中的隨機向量位置,并對該處的配置信息與隨機向量進行異或運算,然后將翻轉(zhuǎn)后的配置信息重新寫入待測模塊。
[0091]5c)第三段執(zhí)行寫尾部命令字操作。
[0092]步驟6,獲取測試結(jié)果。
[0093]6a)根據(jù)重新寫入的翻轉(zhuǎn)后配置信息,待測模塊產(chǎn)生配置信息翻轉(zhuǎn)后的RS編碼碼流;
[0094]6b)上位機控制模塊發(fā)出數(shù)據(jù)收集指令,ICAP控制子模塊收到數(shù)據(jù)收集指令后,跳轉(zhuǎn)至數(shù)據(jù)收集狀態(tài),數(shù)據(jù)收集模塊對待測模塊傳出的配置信息翻轉(zhuǎn)后的RS編碼碼流進行收集。
[0095]步驟7,判斷是否已達到預設(shè)的單粒子翻轉(zhuǎn)次數(shù)。
[0096]根據(jù)步驟4中上位機控制模塊產(chǎn)生的模擬單粒子預設(shè)的翻轉(zhuǎn)次數(shù),判斷是否已達到該次數(shù):
[0097]若未達到,則返回步驟5,繼續(xù)進行測試;
[0098]若已達到,則數(shù)據(jù)收集模塊數(shù)據(jù)收集結(jié)束,數(shù)據(jù)收集模塊向待測模塊發(fā)出收集結(jié)束信號,并將配置信息翻轉(zhuǎn)后的RS編碼碼流發(fā)回至上位機數(shù)據(jù)分析模塊,本次測試結(jié)束。
[0099]步驟8,結(jié)果分析。
[0100]上位機數(shù)據(jù)分析模塊對返回的配置信息翻轉(zhuǎn)后的RS編碼碼流進行統(tǒng)計,并將配置信息翻轉(zhuǎn)后的RS編碼碼流與步驟I中輸出的RS編碼碼流進行比較:
[0101]若二者相吻合,則判斷配置信息翻轉(zhuǎn)后的RS編碼器功能能正確實現(xiàn);
[0102]否則,配置信息翻轉(zhuǎn)后的RS編碼器功能不能正確實現(xiàn)。
[0103]參照圖5,利用上述FPGA配置信息翻轉(zhuǎn)測試平臺,對配置信息文件不可存入FPGA內(nèi)部的待測模塊進行測試,包括如下步驟:
[0104]步驟I,配置 FPGA。
[0105]Ia)將上位機與FPGA測試板相連,F(xiàn)PGA復位上電,待測模塊產(chǎn)生配置信息,并將其發(fā)送至上位機控制模塊;
[0106]Ib)根據(jù)數(shù)據(jù)收集模塊傳來的時鐘激勵信號,待測模塊產(chǎn)生RS編碼碼流,并將其發(fā)送至上位機控制模塊。
[0107]步驟2,建立TCP/IP連接。
[0108]啟動上位機,打開上位機控制模塊中的微軟基礎(chǔ)類MFC控制窗口,在MFC控制窗口內(nèi)點擊連接按鈕,即可自動建立上位機與FPGA之間的TCP/IP通信連接,即傳輸控制協(xié)議和因特網(wǎng)互聯(lián)協(xié)議。
[0109]步驟3,進行配置信息翻轉(zhuǎn)。
[0110]3a)在微軟基礎(chǔ)類MFC控制窗口內(nèi)輸入自定義測試參數(shù),包括配置容量、粒子強度及放大倍數(shù);
[0111]3b)上位機控制模塊根據(jù)上述測試參數(shù),自動計算出模擬單粒子預設(shè)的翻轉(zhuǎn)次數(shù),并生成相應(yīng)個數(shù)的隨機向量及隨機向量位置;
[0112]3c)將模擬單粒子預設(shè)的翻轉(zhuǎn)次數(shù)、隨機向量及隨機向量位置存于上位機控制模塊的內(nèi)部寄存器中;
[0113]3d)在上位機控制模塊內(nèi)部,對配置信息與隨機向量進行異或運算,然后將翻轉(zhuǎn)后的配置信息通過Micro Blaze輸出給ICAP寫控制子模塊。
[0114]步驟4,將翻轉(zhuǎn)后配置信息通過ICAP寫入待測模塊。
[0115]ICAP寫控制子模塊收到上位機控制模塊傳來的翻轉(zhuǎn)后配置信息,通過以下步驟將該翻轉(zhuǎn)后配置信息通過內(nèi)部配置訪問端口 ICAP寫入待測模塊:
[0116]4a)第一段執(zhí)行寫頭部命令字操作;
[0117]4b)第二段將翻轉(zhuǎn)后的配置信息寫入待測模塊;
[0118]4c)第三段執(zhí)行寫尾部命令字操作。
[0119]步驟5,獲取測試結(jié)果。
[0120]根據(jù)重新寫入的翻轉(zhuǎn)后配置信息,待測模塊產(chǎn)生配置信息翻轉(zhuǎn)后的RS編碼碼流,數(shù)據(jù)收集模塊對該RS編碼碼流進行收集。
[0121]步驟6,判斷是否已達到預設(shè)的單粒子翻轉(zhuǎn)次數(shù)。
[0122]根據(jù)步驟3中上位機控制模塊產(chǎn)生的模擬單粒子預設(shè)的翻轉(zhuǎn)次數(shù),判斷是否已達到該次數(shù):
[0123]若未達到,則返回步驟4,繼續(xù)進行測試;
[0124]若已達到,則數(shù)據(jù)收集模塊數(shù)據(jù)收集結(jié)束,數(shù)據(jù)收集模塊向待測模塊發(fā)出收集結(jié)束信號,并將配置信息翻轉(zhuǎn)后的RS編碼碼流發(fā)回至上位機數(shù)據(jù)分析模塊,本次測試結(jié)束。
[0125]步驟7,結(jié)果分析。[0126]上位機數(shù)據(jù)分析模塊對返回的配置信息翻轉(zhuǎn)后的RS編碼碼流進行統(tǒng)計,并將配置信息翻轉(zhuǎn)后的RS編碼碼流與步驟I中輸出的RS編碼碼流進行比較:
[0127]若二者相吻合,則判斷配置信息翻轉(zhuǎn)后的RS編碼器功能能正確實現(xiàn);
[0128]否則,配置信息翻轉(zhuǎn)后的RS編碼器功能不能正確實現(xiàn)。
[0129]以上描述僅是本發(fā)明的一個具體實例,不構(gòu)成對本發(fā)明的任何限制,顯然對于本領(lǐng)域的專業(yè)人員來說,在了解了本
【發(fā)明內(nèi)容】
和原理后,都可能在不背離本發(fā)明原理、結(jié)構(gòu)的情況下,進行形式和細節(jié)上的各種修正和改變,但是這些基于本發(fā)明思想的修正和改變?nèi)栽诒景l(fā)明的權(quán)利要求保護范圍之內(nèi)。
【權(quán)利要求】
1.一種基于動態(tài)重構(gòu)的FPGA配置信息翻轉(zhuǎn)測試平臺,包括: 上位機控制模塊(I),用于產(chǎn)生測試所需的隨機向量、隨機向量位置及模擬單粒子翻轉(zhuǎn)的次數(shù),輸出給配置讀寫模塊; TCP/IP協(xié)議通信模塊(2),用于完成上位機控制模塊與配置讀寫模塊之間的信息傳輸,以及配置讀寫模塊與上位機數(shù)據(jù)分析模塊之間的信息傳輸; 配置讀寫模塊(3),用于實現(xiàn)FPGA配置信息的讀寫及實時翻轉(zhuǎn),即通過訪問FPGA內(nèi)部配置訪問端口 ICAP,回讀出待測模塊配置信息,并對該配置信息與隨機向量進行運算,再將加入隨機向量后的配置信息重新寫入待測模塊; 待測模塊(4),用于配置自身的電路信息,將配置信息輸出至配置讀寫模塊,或根據(jù)配置讀寫模塊傳回的加入隨機向量后的配置信息,重新配置自身的電路信息,并將新配置后該模塊的輸出結(jié)果送入數(shù)據(jù)收集模塊; 數(shù)據(jù)收集模塊(5),用于產(chǎn)生待測模塊所需的激勵信號,并將待測模塊輸出的新配置后的結(jié)果,輸出給上位機數(shù)據(jù)分析模塊(6); 上位機數(shù)據(jù)分析模塊(6),用于對從數(shù)據(jù)收集模塊中傳入的模塊功能結(jié)果進行統(tǒng)計和分析。
2.根據(jù)權(quán)利要求1所述的FPGA配置信息翻轉(zhuǎn)測試平臺,其特征在于所述的上位機控制模塊(I),包括: 模擬單粒子產(chǎn)生密度子模塊(11),用于根據(jù)用戶輸入的環(huán)境參數(shù),模擬產(chǎn)生單粒子的翻轉(zhuǎn)次數(shù); 隨機向量產(chǎn)生子模塊(12),用于隨機產(chǎn)生需要注入到配置信息文件中的錯誤配置信息,即隨機向量; 隨機向量位置產(chǎn)生子模塊(13),用于隨機產(chǎn)生注入錯誤配置信息的位置,即隨機向量位置。
3.根據(jù)權(quán)利要求1所述的FPGA配置信息翻轉(zhuǎn)測試平臺,其特征在于所述的TCP/IP協(xié)議通信模塊(2),用于通過Micro Blaze軟核,建立上位機與FPGA之間的TCP/IP協(xié)議通信。
4.根據(jù)權(quán)利要求1所述的FPGA配置信息翻轉(zhuǎn)測試平臺,其特征在于所述的配置讀寫模塊⑶,包括: ICAP控制子模塊(31),用于根據(jù)上位機控制模塊傳入的指令,控制ICAP狀態(tài)機在各個狀態(tài)之間的跳轉(zhuǎn),包括空閑狀態(tài)、回讀狀態(tài)、寫狀態(tài)及數(shù)據(jù)收集狀態(tài)四個狀態(tài); ICAP回讀控制子模塊(32),用于通過訪問內(nèi)部配置訪問端口 ICAP,實現(xiàn)讀取待測模塊的動態(tài)區(qū)域配置信息,并將其存入配置信息寄存器RAM中; 配置信息寄存RAM子模塊(33),用于存儲通過內(nèi)部配置訪問端口 ICAP回讀出的待測模塊動態(tài)區(qū)域配置信息; 翻轉(zhuǎn)向量寄存RAM子模塊(34),用于存儲由上位機控制模塊產(chǎn)生并通過Micro Blaze傳入的隨機向量及隨機向量位置; ICAP寫控制子模塊(35),用于對配置信息寄存器RAM中的配置信息與翻轉(zhuǎn)向量寄存器RAM中的隨機向量進行運算,并將加入隨機向量后的配置信息重新寫入待測模塊。
5.一種利用權(quán)利要求1對配置信息文件可存入FPGA內(nèi)部的待測模塊進行測試的方法,包括如下步驟:(1)將上位機與FPGA測試板相連,F(xiàn)PGA復位上電,由待測模塊配置自身的電路信息; (2)建立上位機與FPGA之間的傳輸控制協(xié)議和因特網(wǎng)互聯(lián)協(xié)議TCP/IP通信連接; (3)ICAP回讀控制子模塊對步驟(I)中產(chǎn)生的配置信息進行讀取,并將其存入配置信息寄存器RAM中; (4)啟動上位機控制模塊,由用戶輸入測試參數(shù),產(chǎn)生模擬單粒子預設(shè)的翻轉(zhuǎn)次數(shù)、隨機向量及隨機向量位置,并將其送入翻轉(zhuǎn)向量寄存器RAM中; (5)ICAP寫控制子模塊讀取翻轉(zhuǎn)向量寄存RAM子模塊中的隨機向量位置,對該處的配置信息與隨機向量進行異或運算,并將翻轉(zhuǎn)后的配置信息通過內(nèi)部配置訪問端口 ICAP重新與入待測1旲塊; (6)待測模塊根據(jù)翻轉(zhuǎn)后的配置信息,對其自身的電路信息進行重新配置,并將新配置后待測模塊的輸出結(jié)果傳入數(shù)據(jù)收集模塊; (7)重復步驟(4)-?),直到達到預設(shè)的單粒子翻轉(zhuǎn)次數(shù),數(shù)據(jù)收集模塊向待測模塊發(fā)出收集結(jié)束信號,并將結(jié)果發(fā)回至上位機數(shù)據(jù)分析模塊; (8)上位機數(shù)據(jù)分析模塊對返回的新配置后待測模塊的輸出結(jié)果進行統(tǒng)計,判斷待測模塊的配置信息經(jīng)單粒子翻轉(zhuǎn)影響后其自身的測試內(nèi)容能否正確實現(xiàn),即將該輸出結(jié)果與步驟(I)中待測模塊的輸出結(jié)果進行比較,若二者相吻合,則判斷待測模塊自身的測試內(nèi)容能正確實現(xiàn);否則,待測模塊自身的測試內(nèi)容不能正確實現(xiàn)。
6.一種利用權(quán)利要求1對配置信息文件不可存入FPGA內(nèi)部的待測模塊進行測試的方法,包括如下步驟: (1)將上位機與FPGA測試板相連,F(xiàn)PGA復位上電,由待測模塊配置自身的電路信息,并將配置信息送入上位機控制模塊中; (2)建立上位機與FPGA之間的傳輸控制協(xié)議和因特網(wǎng)互聯(lián)協(xié)議TCP/IP通信連接; (3)啟動上位機控制模塊,由用戶輸入測試參數(shù),產(chǎn)生模擬單粒子預設(shè)的翻轉(zhuǎn)次數(shù)、隨機向量及隨機向量位置,并將其存入上位機控制模塊內(nèi)部寄存器中,在上位機控制模塊內(nèi)部對配置信息與隨機向量進行異或運算,并將翻轉(zhuǎn)后的配置信息發(fā)送至ICAP寫控制子模塊; (4)ICAP寫控制子模塊通過內(nèi)部配置訪問端口 ICAP將翻轉(zhuǎn)后配置信息重新寫入待測模塊; (5)待測模塊根據(jù)翻轉(zhuǎn)后的配置信息,對其自身的電路信息進行重新配置,并將新配置后待測模塊的輸出結(jié)果傳入數(shù)據(jù)收集模塊; (6)重復步驟(3)-(5),直到達到預設(shè)的單粒子翻轉(zhuǎn)次數(shù),數(shù)據(jù)收集模塊向待測模塊發(fā)出收集結(jié)束信號,并將結(jié)果發(fā)回至上位機數(shù)據(jù)分析模塊; (7)上位機數(shù)據(jù)分析模塊對返回的新配置后待測模塊的輸出結(jié)果進行統(tǒng)計,判斷待測模塊的配置信息經(jīng)單粒子翻轉(zhuǎn)影響后其自身的測試內(nèi)容能否正確實現(xiàn),即將該輸出結(jié)果與步驟(I)中待測模塊的輸出結(jié)果進行比較,若二者相吻合,則判斷待測模塊自身的測試內(nèi)容能正確實現(xiàn);否則,待測模塊自身的測試內(nèi)容不能正確實現(xiàn)。
【文檔編號】H04L29/06GK103473159SQ201310478764
【公開日】2013年12月25日 申請日期:2013年10月13日 優(yōu)先權(quán)日:2013年10月13日
【發(fā)明者】雷杰, 李云松, 程蕾, 郭杰, 賈超群, 魏雯, 李雙十 申請人:西安電子科技大學