(上海航天電子有限公司,上海 201800)
測控應答機的自動測試系統(tǒng)經(jīng)常需要使用現(xiàn)場可編程門陣列(field programmable gate array, FPGA)進行數(shù)據(jù)調制/解調、數(shù)據(jù)編碼/解碼、接口通信等操作,而且不同類型的測控應答機之間的測試需求存在著較大的差異,這就需要測試系統(tǒng)的FPGA根據(jù)不同的測試需求運行不同的程序。一般的解決方案是,測試人員臨時關閉測試系統(tǒng),下載或燒寫需要的程序,然后開始新的測試過程。如果資金充裕,也可以針對不同的需求設計多套測試系統(tǒng)。但這樣的解決方案存在以下弊端:
1)測試功能的更改需要測試人員介入,且需要關閉測試系統(tǒng),不利于自動化測試功能的實現(xiàn)。
2)如果同時使用多套測試系統(tǒng)會大大增加硬件成本,并增加系統(tǒng)的設計復雜度。
為了提高測試系統(tǒng)的自動化程度,就需要自動測試系統(tǒng)具備在線可重配置功能。根據(jù)測試任務的不同,由軟件控制或更改系統(tǒng)中的FPGA程序。為了實現(xiàn)在線可重配置功能,往往需要再增加額外的FPGA配置電路,但這將占用大量的PCB面積,不利于系統(tǒng)集成度的提高。而如果將不同從測試功能同時集成于FPGA中,又會大大增加FPGA的資源占用率,很可能超出FPGA的可用資源。
而動態(tài)部分重配置(Dynamic Partial Reconfiguration,以下簡稱DPR)技術則可以很好地解決以上問題。
DPR是一種動態(tài)修改FPGA邏輯模塊的技術。通過該技術,設計師可以在不影響其他邏輯正常運行的同時,下載部分重配置比特流到FPGA以實現(xiàn)不同的功能。DPR作為FPGA的一種新型配置技術,與傳統(tǒng)的FPGA配置方式(如靜態(tài)重配置技術、動態(tài)全局重配置技術[1])相比具有明顯的優(yōu)勢,以上三種配置方式的技術特點對比如表1所示。
表1 FPGA配置方式技術特點對比
圖1是采用DPR技術的FPGA內部資源示意圖。
圖1 部分重配置技術實現(xiàn)原理框圖
FPGA的邏輯資源根據(jù)是否需要重配置可以分為兩種:靜態(tài)邏輯(運行期間不需要重配置)和動態(tài)邏輯(運行期間可重配置)。靜態(tài)邏輯在運行過程中不能更改,而動態(tài)邏輯在FPGA運行過程中可根據(jù)需要進行動態(tài)修改。設計師在設計階段可以在FPGA上劃分出若干塊固定的區(qū)域用于存放動態(tài)邏輯。這些區(qū)域可以在運行期間由外部或內部的配置端口注入不同的比特流,這樣就可以使FPGA實現(xiàn)運行期間功能的動態(tài)切換[3]。
DPR技術可以有多種實現(xiàn)方式,如圖2所示。部分重配置比特流既可以通過外部微控制器也可以通過內部微控制器(比如Xilinx公司的MicroBlaze以及Altera公司的NIOS II等嵌入式CPU IP核)寫入到FPGA內部的可重配置分區(qū),這就大大增加了DPR實現(xiàn)的靈活性。當使用內部微控制器方式實現(xiàn)時,理論上不需要增加額外的配置電路,這對于成本敏感或集成度要求較高的應用環(huán)境是非常合適的。
圖2 部分重配置技術實現(xiàn)途徑
DPR技術的這些特性極大提高了FPGA的設計靈活性。同時,DPR技術使FPGA能夠具備實現(xiàn)類似軟件函數(shù)調用的能力,在運行期間載入不同的功能模塊就可以使FPGA實現(xiàn)不同的功能。通過該技術可以使FPGA硬件資源實現(xiàn)分時復用,也大大提高了FPGA資源的使用率。
將DPR技術引入到測控應答機自動測試系統(tǒng)中,將使自動測試系統(tǒng)具備以下優(yōu)勢:
1)提高測試系統(tǒng)的自動化水平。測試軟件可以根據(jù)需要在線更改測試系統(tǒng)中FPGA的功能模塊,而不需測試人員關閉自動測試系統(tǒng)手動下載程序。比如測試程序將BPSK調制/解調模塊下載到FPGA中,就使自動測試系統(tǒng)具備了BPSK信號的調制/解調功能;而測試程序將FM的調制/解調模塊下載到FPGA,就使自動測試系統(tǒng)具備了FM信號的調制/解調功能。
2)有效降低自動測試系統(tǒng)的硬件成本。DPR技術可以實現(xiàn)不同功能模塊對FPGA的分時復用,且不需要額外增加配置電路。這樣不僅節(jié)省了PCB面積,也可以用一塊板卡實現(xiàn)以往需要多塊板卡才能實現(xiàn)的功能。
3)使自動測試系統(tǒng)具備遠程在線升級功能。自動測試系統(tǒng)的維護人員可以通過網(wǎng)絡在線升級系統(tǒng)中FPGA的程序以便修復BUG或改善性能,這樣就有效降低了系統(tǒng)的維護成本。
該測控應答機自動測試系統(tǒng)采用了CPCI架構,主要功能是對測控應答機產(chǎn)品進行各種功能、性能測試,主要包括遙測量采集、遙控命令發(fā)送、開關量控制、工作狀態(tài)監(jiān)控等。
該自動測試系統(tǒng)的結構如圖3所示,主要由3部分組成:可編程數(shù)字IO板(Programmable Digital IO,以下簡稱PDIO)、多功能后插板、數(shù)模轉換板、主控計算機。
圖3 測控應答機自動測試系統(tǒng)結構框圖
PDIO板主要完成接口通信、數(shù)據(jù)采集、數(shù)據(jù)生成等功能,該板通過PDIO接口和高速IO接口與數(shù)模轉換板和多功能后插板互連,進而與被測設備進行數(shù)據(jù)交換;數(shù)模轉換板主要完成模擬/數(shù)字信號之間的轉換,用于接收被測設備的射頻信號或發(fā)送調制好的射頻信號給被測設備,由PDIO板對數(shù)據(jù)進行調制或解調;多功能后插板用于與被測設備的低頻模擬接口或數(shù)字接口互連,主要完成遙測量采集、遙控指令生成、開關控制、電源控制、低頻模擬信號輸出等功能;主控計算機主要進行接口控制和數(shù)據(jù)處理,其通過PCI總線與PDIO板連接。
該系統(tǒng)的核心組成部分是PDIO板。PDIO板從PCI總線上接收來自主控計算機的控制指令并根據(jù)指令控制PDIO接口,從而實現(xiàn)對被測設備的遙控指令輸出、數(shù)字量輸出、模擬信號輸出等功能。同時PDIO板通過多功能后插板及數(shù)模轉換板實時監(jiān)控被測設備的工作狀態(tài)、接收由被測設備發(fā)送的遙測信號和開關量信息,并將解調出的數(shù)據(jù)發(fā)送給主控計算機。
由于數(shù)模轉換板是搭載在PDIO板上的,因此PDIO板需要為數(shù)模轉換板預留盡量大的空間,這就要求PDIO板要有盡可能高的集成度。鑒于以上原因,PDIO板的所有主要功能全部集成于板載的一塊大容量FPGA中。比如PCI協(xié)議及接口控制、PDIO接口控制、高速IO接口控制、調制/解調算法模塊等。FPGA通過加載不同的配置比特流文件就可以實現(xiàn)不同的測試功能,以滿足不同星上產(chǎn)品的測試需求。
但由于系統(tǒng)中的功能模塊非常多加之FPGA資源的限制,無法將所有功能模塊同時集成于FPGA中。為了實現(xiàn)自動測試功能,這就要求主控計算機軟件能夠根據(jù)測試需求,實時下載不同的功能模塊到PDIO板中,同時不影響系統(tǒng)的正常運行。
比如,測試功能1中需要PDIO板實現(xiàn)BPSK解調,而測試功能2中需要PDIO板實現(xiàn)FM解調,但由于PDIO板載FPGA資源的限制,功能1與功能2無法同時放置在1塊FPGA中,如果通過靜態(tài)重配置技術或動態(tài)全局重配置方式實現(xiàn)在1塊PDIO板上功能的切換,那就不得不手動關閉系統(tǒng)重新加載或者重新燒寫配置比特流文件,但這樣無法滿足自動化測試的需求。在這種情況下就只能同時使用2塊PDIO板才能滿足測試需求,但這樣就增加了硬件成本。而DPR技術就可以解決以上問題。
通過引入DPR技術使該自動測試系統(tǒng)具備了以下幾點優(yōu)勢:
1)測試功能的實時切換。主控計算機軟件可通過CPCI總線將DPR配置比特流文件直接下載到PDIO板的FPGA中,以實現(xiàn)不同的測試功能,同時不影響測試系統(tǒng)其他功能模塊的正常運行,有效提高了測試效率和自動化程度。
2)遠程在線升級功能。測試人員可以遠端對測試系統(tǒng)的FPGA程序進行升級,降低了系統(tǒng)的維護成本。
該自動測試系統(tǒng)的DPR實現(xiàn)原理框圖如圖4所示。DPR功能的實現(xiàn)主要由兩部分組成:主控計算機和PDIO板。其中主控計算機存放著PDIO板實現(xiàn)不同測試功能的DPR比特流文件(文件擴展名為BIN);PDIO板載FPGA則事先在指定區(qū)域預留可重配置區(qū)域,當主控計算機軟件將DPR比特流發(fā)送過來時,將這些配置數(shù)據(jù)注入以上區(qū)域中就可以實現(xiàn)指定的功能。
圖4 DPR技術實現(xiàn)原理框圖
從圖4可以看出PDIO板主要由以下幾部分組成:
1)大容量FPGA;
2)電流/電壓監(jiān)控電路;
3)配置FLASH;
4)高速IO接口電路;
5)PDIO接口電路;
6)可編程晶振;
7)大容量DDR內存顆粒;
8)電源控制電路。
其中:電流/電壓監(jiān)控電路用于實時監(jiān)控被測設備的供電情況;配置FLASH用于存儲FPGA的完整比特流文件(部分重配置比特流則存放在主控計算機中);高速IO接口電路用于與數(shù)模轉換板互連;PDIO接口電路用于連接多功能后插板;可編程晶振為FPGA動態(tài)邏輯部分提供工作時鐘,且可根據(jù)主控計算機指令動態(tài)調整工作頻率;大容量DDR內存用于臨時存放解調或調制數(shù)據(jù);電源控制電路用于控制被測設備的加電。
在該設計中,PDIO板載FPGA內部邏輯資源主要劃分為靜態(tài)邏輯部分和動態(tài)邏輯部分。其中靜態(tài)邏輯部分主要由CPCI接口模塊和MicroBlaze[7-8]嵌入式模塊以及運行期間不需要重新配置的功能模塊組成。CPCI接口模塊實現(xiàn)CPCI協(xié)議功能,并提供上位機與PDIO板的數(shù)據(jù)/控制通道;MicroBlaze嵌入式模塊主要負責接收配置比特流、動態(tài)邏輯配置等功能。MicroBlaze嵌入式模塊接收從CPCI接口模塊傳送來的DPR比特流,并將比特流數(shù)據(jù)進行緩存,隨后通過硬件內部配置訪問接口(Hardware Internal Configuration Access Port,以下簡稱HWICAP[4-5],該模塊主要實現(xiàn)用戶邏輯對FPGA內部配置資源的訪問)下載到動態(tài)邏輯部分。由于CPCI接口模塊和MicroBlaze嵌入式模塊均放置在FPGA的靜態(tài)邏輯區(qū)域,因此在進行部分重配置的時候是不會受到影響的,因此也就保證了上位機與PDIO板的數(shù)據(jù)交互不會因為PDIO板的功能切換而中斷。
為了使PDIO板實現(xiàn)不同的測試功能,其板載FPGA的動態(tài)邏輯部分根據(jù)功能不同劃分為3部分:高速IO接口DPR模塊、調制解調DPR模塊、PDIO接口DPR模塊。高速IO接口DPR模塊負責與數(shù)模轉換板上的高速ADC/DAC進行數(shù)據(jù)交換;調制解調DPR模塊負責對高速數(shù)字信號進行調制、解調操作;PDIO接口DPR模塊負責對多功能后插板的各個功能模塊進行控制及數(shù)據(jù)交換。這樣劃分的好處是可以針對不同的測試需求,將各個DPR模塊進行靈活組合,提高測試系統(tǒng)的適應性。
以上3部分DPR模塊在FPGA中的位置以及可使用的最大資源需要在設計前期約定好,且在系統(tǒng)運行期間不能修改。這些模塊的配置比特流文件存放在主控計算機中,在運行期間由主控計算機軟件將這些比特流文件注入到FPGA相應的可重配置區(qū)域中。
在主控計算機端,PDIO板DPR功能相關的數(shù)據(jù)端口被映射到了PCI總線的基地址寄存器(Base Address Registers,BAR)空間中。應用程序只需要將DPR比特流發(fā)送到相應寄存器中就可以將比特流數(shù)據(jù)發(fā)送給PDIO板載FPGA內的嵌入式系統(tǒng)里,再由嵌入式系統(tǒng)負責對指定DPR模塊進行重配置。具體的實現(xiàn)流程如圖5所示。
圖5 DPR功能實現(xiàn)流程
從圖5可以看出,DPR過程的實現(xiàn)主要分為2個階段:設計階段和配置階段。
1)設計階段。
該階段主要是建立FPGA工程,并對不同測試功能所對應DPR模塊進行劃分、仿真、調試、編譯,最后生成所需的各種功能的DPR比特流文件。在Xilinx FPGA開發(fā)環(huán)境中DPR模塊的劃分、編譯等操作是在PR模式(Partial Reconfiguration)下進行的,利用VIVADO[2]提供的Partial Reconfiguration Wizard[2]向導功能可以很方便地對各DPR模塊進行配置、編譯。
2)配置階段。
配置階段主要分成兩個步驟,分別在主控計算機和PDIO板上進行。
首先,當需要對PDIO板的測試功能進行功能切換時,主控計算機應用程序讀取相應功能的DPR比特流數(shù)據(jù),并通過PCI寄存器讀寫函數(shù)將DPR比特流數(shù)據(jù)寫入到事先定義好的DPR寄存器中,PCI驅動程序會將這些數(shù)據(jù)通過PCI總線發(fā)送給指定PDIO板的PCI接口模塊。
然后,PDIO板的CPCI接口模塊將接收到的數(shù)據(jù)發(fā)送給一個雙端口FIFO,該FIFO的另一端以AXI Stream總線的形式連接到MicroBlaze上。為核心的嵌入式模塊中,MicroBlaze通過AXI Stream總線讀取雙端口FIFO內部數(shù)據(jù),檢測到配置比特流就將該配置數(shù)據(jù)寫入到與之連接的HWICAP模塊中。
最后,HWICAP模塊重復以上步驟并不斷接收來自上位機的配置比特流數(shù)據(jù),一旦檢測到比特流數(shù)據(jù)中的DESYNCH信號,則表示當前配置過程結束,此時HWICAP模塊復位相應的DPR模塊,完成當前DPR模塊的配置過程。
該自動測試系統(tǒng)的開發(fā)平臺及測試環(huán)境如下:
1)硬件平臺:PDIO板載FPGA采用Xilinx公司的Artix7-200T。
2)FPGA開發(fā)平臺:VIVADO2018.02。
3)主控計算機軟件開發(fā)平臺:LabWindows CVI 2013。
4)軟件開發(fā)環(huán)境:Windows7 64bit操作系統(tǒng)。
5)CPCI的驅動程序開發(fā)環(huán)境:WinDriver11.6 64bit[6]。
圖6是使用DPR模式的情況下,由VIVADO布局、布線后FPGA的資源分布情況。圖6中的標號1、2、3、4分別對應了PDIO接口DPR模塊、調制解調DPR模塊、高速IO接口DPR模塊和其他功能模塊。其中標號1、2、3對應邏輯屬于動態(tài)邏輯部分,該部分邏輯由主控計算機在運行期間根據(jù)測試需求進行注入,而標號4對應邏輯屬于靜態(tài)邏輯部分,在系統(tǒng)運行期間不改變。MicroBlaze嵌入式模塊、CPCI接口模塊等功能模塊因為運行期間不需要更改,因此均放置在該靜態(tài)邏輯部分中。
圖6 DPR模式下FPGA布局、布線后資源分布情況
從圖6可以看出靜態(tài)邏輯區(qū)域與動態(tài)邏輯區(qū)域都在各自的范圍內完成布局、布線。在實際測試中,主控計算機測試程序也可以完成不同部分重配置比特流的實時下載,完成測試功能的切換,且在切換過程中其他功能不受影響。
表2是DPR功能實現(xiàn)相關模塊的FPGA資源使用情況。DPR功能實現(xiàn)相關模塊是指為了實現(xiàn)DPR功能所使用的各個模塊,不包括DPR模塊本身(如調制解調DPR模塊)。DPR功能實現(xiàn)相關模塊包括MicroBlaze相關的嵌入式系統(tǒng)(本地存儲器、AXI總線控制器、中斷控制器、復位控制器等)、HWICAP模塊等。從表2可以看出DPR功能實現(xiàn)相關模塊所占用的FPGA資源是非常少的,因此基本不會影響其他功能模塊的FPGA資源使用。
表2 DPR功能實現(xiàn)相關模塊使用的FPGA資源
本文針對測控應答機自動測試系統(tǒng)的特點,將DPR技術引入到自動測試系統(tǒng)中,從而實現(xiàn)了自動測試系統(tǒng)中FPGA功能的實時切換。經(jīng)驗證,采用DPR技術的自動化測試系統(tǒng)可以有效提高系統(tǒng)中FPGA的資源使用率,對于降低硬件成本、提高自動化測試水平具有很好的促進作用。
同時,由于DPR技術的特點,使其在測控通信、軟件無線電領域也具有很好的應用前景。該系統(tǒng)中的部分重配置設計方案經(jīng)過適應性修改,也可以應用到星上及彈箭產(chǎn)品上,使產(chǎn)品能夠具備硬件在線升級能力,因此具有很好的推廣和借鑒作用。