引言
MicroBlaze嵌入式處理器軟核是xilinx公司推出的基于FPGA的微處理器,它采用32位精簡指令集(RISc)哈佛總線架構,具有運行速度快、占用資源少、可配置性強等優(yōu)點。借助Xilinx EDK(嵌入式開發(fā)套件),用戶可以靈活地選擇外設、存儲器和接口特性等組合,從而利用單個FPGA以最低的成本實現(xiàn)可編程片上系統(tǒng)。
數(shù)字音頻廣播(DAB)是繼調幅、調頻廣播之后的第三代廣播技術,與模擬廣播相比音質更好、抗干擾性更強,頻譜利用率更高。采用正交頻分復用(OFDM)調制方式,具有抗多徑干擾的能力,能以很高的頻譜利用率實現(xiàn)高速數(shù)據(jù)傳輸。本文介紹了基于Pc和FPGA的DAB發(fā)射機設計,詳細闡述了基于MicroBlaze軟核處理器的片上系統(tǒng)設計及其在發(fā)射機芯片控制方面的應用。
MicroBlaze軟核處理器的構建
MicroBlaze軟核可以嵌入在virrex-II/4/5/6~Spartan,II/3等系列FPGA器件中,與其他外設IP核及用戶的IP核一起構成片上系統(tǒng)(SoC)。用戶可以根據(jù)其需要量身定制MicroBlaze軟核,SoC技術有效降低了系統(tǒng)功耗,減少產品設計復雜性和開發(fā)成本。MicroBlaze軟核的開發(fā)流程主要分為三個步驟:首先要搭建底層的硬件平臺,包括構建MicroBlaze處理器,根據(jù)需要開發(fā)用戶自定義IP核,將所需外設通過片內總線掛載在MicroBlaze處理器上:第二步是軟件應用程序的開發(fā),包括應用程序代碼、庫文件以及嵌入式操作系統(tǒng)的加載:最后將硬件比特流文件(由VHDL/Verilog語言生成)和軟件應用程序(由c語言生成)合并成最終文件并下載到FPGA內運行。
Xilinx EDK的組件XPS (xilinxPlatform Studio)為MicroBlaze提供了集成開發(fā)環(huán)境。基于Xi~nx ML605開發(fā)套件,利用XPS軟件,本文配置的MicroBhze結構框圖如圖1所示。各模塊和連接總線介紹如下。
·SRSE用戶自定義IP核:基于Xilinx Virtex PCIE 2.0集成塊和DMA控制器的PCI Express總線驅動,實現(xiàn)pC與EPGA之間數(shù)據(jù)和命令傳輸,其讀寫速度可達400MB/s。

·dsp cw用戶自定義IP核:FPGA片上程序,用于實現(xiàn)上位機輸出的DAB基帶信號與DAC輸入信號的格式轉換。本文通過MATLABSimulink調用Xilinx~件庫生成VeriIoz代碼,在硬件描述文件system.mhs中將dsp cw核與SRSE核相連接。
·塊存儲器BRAM:FPGA內部專用存儲器模塊,用于指令和數(shù)據(jù)的高速緩存。
·微處理器調試模塊MDM:通過TTAG接口來調試微處理器系統(tǒng),通過Xilinx P2P總線連接到處理器。
·LEDs/gpio/RS232 Uart核:基于ML605開發(fā)板的軟核,用于板上LED、通用/Io等外設的控制。
·時鐘發(fā)生器:內部集成鎖相環(huán)(PLL)、數(shù)字時鐘管理(DCM)和緩沖模塊,最多可提供16路時鐘輸出供片內IP核和外設使用。
·快速單工鏈路總線(FsL):基于FIFO的單向點對點總線,異步模式可以實現(xiàn)不同時鐘域的數(shù)據(jù)傳輸。本設計使用兩條FSL總線(fsl0/1)實現(xiàn)SRSB定制IP核與MicroBlaze軟核間命令的傳輸。
·數(shù)據(jù)本地存儲器總線(DLMB):為處理器內核與快存儲器(BRAM)之間提供專用的高速數(shù)據(jù)交換通道。
·指令本地存儲器總線(ILMB):該總線與器件內部的塊存儲器(BRAM)相連,實現(xiàn)高速的指令讀取。
·處理器本機總線(pLB):基于IBM CoreConnect總線架構,外圍設備IP核(LEDs/gpio/RS232 Uart核)通過PLB總線掛載到MicroBlaze處理器上。
用戶IP核與MicroBIaze處理器的互連
微處理器硬件規(guī)范(MHS)描述了系統(tǒng)IP元件、端口、屬性、對應參數(shù)以及連接,是嵌入式系統(tǒng)硬件部分的主要源文件。XPs軟件將它與用戶約束文件(.ucf)一起綜合到硬件描述語言(HDL)網(wǎng)表文件,用于FPGA的布局布線。
本設計的硬件描述文件systern,mhs部分內容如圖2所示,圖2(a)描述了SRSE用戶自定義IP核,參數(shù)部分描述了例化名和硬件版本號,總線部分描述了該IP核通過fsl v20總線與MicroBlaze軟核相連:圖2(b)描述了整個片上系統(tǒng)與FPGA硬件相連接的信號以及信號方向和線寬,這些端口在用戶約束文件(.ucf)中與FPGA管腳相連接:圖2(c)描述了dsp cw用戶自定義IP核的屬性。硬件描述文件MHS中信號名(PORT語句,等號右邊)是可以任意取的,如果相同表示它們把兩個端口相連接。如圖20)中SRSE核的PCIE端口(pci-exp-txp/…/sys reset n)通過相同的信號名連接到圖2(b)的FPGA硬件端口,DSP端口(clk200/CE//TX_DATA)通過相同的名字連接到dsp cw用戶自定義IP核。


MicroBIaze在DAB發(fā)射機中的應用
DAB發(fā)射機實現(xiàn)方案
基于pc和FPGA的射頻發(fā)射機實現(xiàn)方案如圖3所示。DAB基帶信號的編碼與調制在PC上實現(xiàn)、這大大減輕了FPGA的負擔,降低了信號處理的復雜程度和系統(tǒng)的成本:FPGA片上系統(tǒng)實現(xiàn)數(shù)據(jù)收發(fā)、格式轉換和系統(tǒng)控制:射頻子卡實現(xiàn)DAB基帶信號正交調制與發(fā)射。該方案以較低的成本實現(xiàn)了III波段DAB發(fā)射機,各模塊功能描述如下。
·CKC mmbTools La 2是加拿大通信研究中心(cRC)開發(fā)的基于Linux系統(tǒng)的開源DAB信號處理軟件,該工具可以把音頻和圖像等源文件轉化為符合DAB標準的基帶信號。該工具由CRC-DAB MUX/MOD/PLUS/RMS等模塊組成、其中復用模塊(DABMUX)將音頻和數(shù)據(jù)轉換為ETI數(shù)據(jù)流,調制模塊(DABMOD)輸出符合Eureka-147標準模式2的DAB基帶OFDM信號。
·Linux驅動包括應用程序接口(API)和PCIE驅動,前者實現(xiàn)DAB基帶信號數(shù)據(jù)流的導入,后者負責PC與FPGA之間的PCIE總線數(shù)據(jù)傳輸。
·FPGA片上系統(tǒng)實現(xiàn)數(shù)據(jù)的收發(fā)和發(fā)射機控制。PCIE軟核由XilinxVirtex-6 PCIE集成塊和DMA控制器組成,實現(xiàn)高速數(shù)據(jù)傳輸;數(shù)據(jù)轉換模塊提取來自上位機的數(shù)據(jù)流中的I/Q信號,并進行格式轉換,然后送至數(shù)模轉換(DAC)芯片;MicroBIaze處理器用于外圍芯片的配置和控制。
·射頻卡先將DAC輸出的I/Q兩路信號放大,然后進行正交調制和功率放大。本設計DAC芯片采用AD9857,其輸出為電流信號:差分放大器AD8132將電流輸入信號轉化為電壓輸出信號:正交調制器采用AD8345芯片,可實現(xiàn)140~1000MHz頻率的調制,完整地覆蓋了DAB波段III(174~240MHz);鎖相環(huán)(PLL)采用ADF4350芯片,可提供137,54400MHz的本振信號:功放芯片為ADL5602,增益20dB,功率約為1mW。
上位機與MicroBIaze軟核的通信
PCI Express總線可以實現(xiàn)上位機與FPGA之間高速數(shù)據(jù)流和低速控制命令的傳輸。高速數(shù)據(jù)流用于PC與FPGA之間DAB基帶信號的傳輸:控制命令的傳輸建立了上位機與MicfoBIaze處理器的通信機制,使用戶可以在上位機Linux終端控制MicroBlaze軟核的寄存器、改善了人機交互界面。該機制的實現(xiàn)方式如圖4所示。
控制命令傳輸?shù)谋举|是上位機PCIE驅動對FPGA上DMA(直接存儲器訪問)寄存器的讀寫操作。PC端驅動程序的PC2SRSC寄存器用來存取寫入MicroBlaze的32位控制命令、SRS2PCC寄存器存儲來自MicroBlaze的命令。FpGA中的SRSE用戶自定義IP核由XilinxVirtex-6 PCIE軟核、DMA引擎和FIFO組成:PCIE軟核處理總線協(xié)議,DMA引擎實現(xiàn)FIFO與PCIE核的高速數(shù)據(jù)交換。驅動程序通過PCIE總線將PC2SRSC寄存器值從PC端寫入DMA寄存器;同樣地,DMA引擎將SRS2PCC寄存器值寫入PC端。FSL總線適用于時間要求高的用戶自定義IP核與MicroBlaze軟核連接,實現(xiàn)主從設備間數(shù)據(jù)傳輸。由于FSL是單向點對點通信,故需要兩條FSL總線實現(xiàn)PC2SRSC/SRS2PCC寄存器與MicroBlaze軟核的互連。另外,SRSE核時鐘為250MHz,MicroBlaze軟核時鐘為IOOMHz,異步模式的FSL總線實現(xiàn)了不同時鐘域數(shù)據(jù)的交換。
MicroBlaze對DAB發(fā)射機中的控制
本設計通過MicroBlaze軟核實現(xiàn)DAC芯片的配置和鎖相環(huán)(pLL)芯片頻率的控制,其連接圖如圖s所示。AD9857有三種工作模式:正交調制、單音DDS和內插DAC模式,本文采用內插DAC模式,該模式下僅有通道工作,來自并口的14位數(shù)據(jù)經濾波和內插處理后由DAC模塊輸出模擬信號。MicroBlaze軟核通過片內FSL總線實現(xiàn)對AD9857寄存器的讀寫。鎖相環(huán)ADF43sO采用SPI串行接口,MicroBiaze軟核只集成了IIC總線,故需要SCl8IS602芯片實現(xiàn)IIC總線與SPI橋的轉換。MicroBlaze軟核通過對ADF4350寄存器讀寫實現(xiàn)鎖相環(huán)頻率的控制,進而控制DAB發(fā)射機的發(fā)射頻率。
軟件平臺開發(fā)與系統(tǒng)調試
Xilinx EDK的另一個組件SDK(軟件開發(fā)包)提供了軟件工程的開發(fā)環(huán)境,它基于Eclipse框架,具有功能完善的c/c++編輯和編譯環(huán)境,可與XPS環(huán)境聯(lián)合調試。本文的應用程序開發(fā)包括上位機與MicroBlaze軟核通信和MicroBlaze軟核對DAC以及PLL芯片的控制。
FPGA資源占用率
根據(jù)XPs設計報告顯示,該FPGA片上系統(tǒng)共使用1766個SIices(編者注:切片),5308個查找表觸發(fā)器,資源占用率為4%。這給其他設計留下了足夠多的資源、下一步將在FPGA上實現(xiàn)DAB的基帶信號處理。
結語
本文討論了基于MicroBlaze軟核處理器的片上系統(tǒng)設計,介紹了基于PC和FPGAI