一種基于FPGA/DSP的靈巧干擾平臺設(shè)計與實現(xiàn)
該平臺采用CPCI結(jié)構(gòu),主要由A/D,D/A轉(zhuǎn)換及DDC,DUC模塊、DSP信號處理模塊、CPCI總線接口、FPGA高速數(shù)字傳輸、存儲器、PCI橋模塊、CPLD模塊等幾部分組成。主要特性如下:
(1)單通道14 b分辨率,150 MSPS采樣率的高速帶寬ADC AD9254。
(2)寬帶數(shù)字正交下變頻DDC芯片AD6636,支持抽取與濾波。
(3)單通道14 b分辨率,300 MSPS采樣率的高速寬帶
(4)寬帶數(shù)字正交上下變頻DUC芯片GC5016,支持抽取與濾波。
(5)處理器之間(包括兩片TMS320C6713 DSP芯片與一片Xilinx Virtex 4 FPGA芯片)實現(xiàn)了多種靈活的高速實時數(shù)據(jù)傳輸與交換通道。
(6)CPCI總線兼容PCI 2.2 64位/66 MHz,支持Master(DMA)/Target burst模式。
FPGA和DSP協(xié)同完成信號處理功能,這里重點說明其協(xié)同原理(見圖3)。
FPGA與DSP主要通過共享EMIF總線上的存儲空間進(jìn)行數(shù)據(jù)交換。存儲器包括:共128 MB的SDRAM,512 KB的SBSRAM,8 MB的非易失FLASH,它將大大提高數(shù)字信號的傳輸與處理速度。DSP外部總線EMIF各種存儲器及設(shè)備資源分配如下:CE0(SDRAM),CE1 (FLASH),CE2(SRAM),CE3(FPGA)。資源分配由FPGA和DSP依靠申請總線決定,因此可以通過重新編程加以修改。對于C671 3來說,EMIF總線為32位,時鐘最高為100 MHz,因此總線的數(shù)據(jù)吞吐率最高為400 MB/s。為了提高總線效率,設(shè)計中FPGA與DSP都可以獨立訪問:EMIF總線上的存儲空間,但不能同時訪問。FPGA作為EMIF總線設(shè)備之一,與 SDRAM,SB-SRAM共享數(shù)據(jù)與地址總線。同時,F(xiàn)PGA也是EMIF總線主設(shè)備之一,與DSP共同管理EMIF總線。也就是說,F(xiàn)PGA也可以主動發(fā)起訪問SDRAM,SBSRAM。因此,F(xiàn)PGA與DSP共享EMIF總線上所有的存儲空間。在默認(rèn)狀態(tài)下,由DSP管理EMIF總線。FPGA通過使能HOLD控制線向DSP申請總線,DSP在處理完當(dāng)前任務(wù)后,響應(yīng)請求,以HOLDA控制線使能作為回應(yīng),并將自己所有EMIF管腳置為高阻。這時, FP-GA就可以接管EMIF總線,進(jìn)行相應(yīng)的操作。FPGA與DSP進(jìn)行數(shù)據(jù)交換的另一種方式是通過HPI(主機(jī)口)。TM$320C6713的HPI 是一個16 b寬的并行端口。FPGA作為HPI主設(shè)備與DSP的HPI相連,掌管著該端口的主控權(quán),通過HPI直接訪問TMS320(26713的存儲空間和外圍設(shè)備。
2.2 平臺軟件設(shè)計
本設(shè)計中,F(xiàn)PGA不僅需要與
基于FPGA的控制軟件主要完成以下功能:
(1)程序加載
程序加載分為FPGA的程序加載和DSP的程序加載。FPGA的程序加載是指通過PCI總線來給FPGA加載程序。其加載路徑為:上位機(jī)→PCI總線 →FP-GA。DSP的程序加載是指通過HPI來給DSP加載信號處理程序。其加載路徑為:上位機(jī)→PCI總線→FP-GA→HPI口→DSP。
(2)
此過程是指FPGA把ADC(DDC)數(shù)據(jù)采集并保存在外部存儲器(SDRAM或SRAM)中以備FPGA和DSP處理的過程。其數(shù)據(jù)流路徑為:外部數(shù)據(jù)源→ADC→DDC(只進(jìn)行ADC時DDC省略)→FPGA→SDRAM或SRAM。
(3)數(shù)據(jù)的DMA操作
DMA用于實現(xiàn)上位機(jī)對外部存儲器(SDRAM或SRAM)的數(shù)據(jù)讀寫功能。DMA讀的數(shù)據(jù)流路徑是:外部存儲器→FPGA→DMA→上位機(jī)→二進(jìn)制文件。DMA發(fā)的數(shù)據(jù)流路徑是:上位機(jī)→DMA→FPGA→SDRAM。
(4)配置DDC和DUC
此過程是把DDC和DUC配置文件通過FPGA配置到AD6636和GC5016中。其配置路徑為:上位機(jī)→PCI總線→FPGA→DDC或DUC。
軟件設(shè)計采用Verilog硬件描述語言和模塊化設(shè)計,結(jié)構(gòu)如圖4所示。
圖4中,reg_proc模塊是軟件控制的核心部分。通過定義內(nèi)部寄存器接收上位機(jī)的控制字,給各模塊發(fā)出控制信息;pci_infe是FPGA與PCI 總線的接口模塊,實現(xiàn)平臺與上位機(jī)的信號交互;FPGA通過HPI口對DSP的程序加載,由hpi_infe模塊實現(xiàn);adc_infe和
評論