在SoPC上實(shí)現(xiàn)的波形發(fā)生器
(作者未知) 2010/3/27
(接上頁)讀寫及時(shí)序控制。圖3給出了在FPGA內(nèi)部由各種IP組合成的可編程硬件系統(tǒng)。
硬件系統(tǒng)所包含的器件。Microblaze_0是該系統(tǒng)的CPU,其中的debug_module為調(diào)試模塊,dlmb_cntlr和 ilmb_cntlr為片上BRAM控制器。Lmb_bram為片上BRAM,它通過LMB總線與 BRAM控制器相連,接受CPU的讀寫訪問。DDFS是為實(shí)現(xiàn)DDS編寫的IP模塊。RS232為UART模塊,用于與其他設(shè)備的通信以及程序調(diào)試。LCD IP負(fù)責(zé)128×64點(diǎn)陣液晶的顯示控制。 COL和ROW是例化后的GPIO接口,用于連接4×4鍵盤。
2.1 MicroBlaze軟核處理器
MicroBlaze是Xilinx提供的32位微處理器IP核,是哈佛結(jié)構(gòu)的RISC微處理器,有較高的性能。它可以在性價(jià)比很高的SpartanIII系列FPGA上實(shí)現(xiàn)。EDK為其提供了MBGCC,支持C及C++語言。
該處理器含有32個(gè)32位的通用寄存器,2個(gè)專用寄存器,獨(dú)立的32位數(shù)據(jù)和指令總線,并與IBM的OPB總線完全兼容,具有32位的指令寬度支持三個(gè)操作數(shù)和兩種尋址模式,以及可選的硬件乘除法及浮點(diǎn)運(yùn)算單元。
2.2 DDS IP的實(shí)現(xiàn)
數(shù)字直接頻率合成技術(shù)(Direct Digital Frequency Synthesis,簡稱DDS或DDFS)的基本原理是利用采樣定理,通過查表法產(chǎn)生波形。
DDS的頻率及步進(jìn)容易控制,且合成的頻率取決于累加器及查找表的速度,采用FPGA可以很好的發(fā)揮這項(xiàng)優(yōu)勢(shì),獲得精細(xì)的步進(jìn)及寬頻帶。使用HDL硬件描述語言,可以很方便的描述出DDS的FPGA硬件實(shí)例。在基本的DDS模塊上,添加相應(yīng)的控制寄存器,通過向不同的寄存器內(nèi)寫入相應(yīng)的控制字,實(shí)現(xiàn)頻率以及幅度的可控性。最后通過IBM CoreConnect技術(shù),在DDS模塊外面添加總線接口,作為自定義IP,成功地將其掛載到系統(tǒng)總線上,便可以方便的對(duì)其進(jìn)行讀寫操作,實(shí)現(xiàn)DDS模塊與MicroBlaze的通信。圖6是從用戶邏輯到成為符合IBM CoreConnect技術(shù)規(guī)范的DDS IP的實(shí)現(xiàn)過程。
DDS的VHDL代碼作為子模塊與opb_core_ssp0_ref.vhd模塊共同構(gòu)成opb_DDS IP Core,其中ipif(IP InterFace )符合IBM CoreConnect規(guī)范,負(fù)責(zé)DDS邏輯與OPB總線之間的通信。在EDK中,通過Create/Import IP工具把opb_DDS添加到系統(tǒng)中,并為其分配地址,建立端口連接,之后就可以使用該IP了。DDS IP配合控制程序可產(chǎn)生各種波形,并對(duì)頻率、幅度進(jìn)行精確的控制。
2.3 其余部分
系統(tǒng)所需要的LCD顯示、DAC控制等模塊,均通過與生成DDS IP相同的方式,編寫為符合IBM CoreConnect總線規(guī)范的IP,以供使用。
在硬件系統(tǒng)構(gòu)建完畢之后,使用Platgen工具生成網(wǎng)表文件和Bitgen工具生成相應(yīng)的硬件配置文件。若將工程導(dǎo)入到ISE軟件中,可以進(jìn)行優(yōu)化設(shè)置,還可以將工程導(dǎo)入到其他的綜合工具如Synplify Pro進(jìn)行實(shí)現(xiàn)。IP核的編寫是在ISE中完成的。無論對(duì)于整個(gè)系統(tǒng)還是一個(gè)單獨(dú)的IP,都可以利用Modelsim工具進(jìn)行行為及時(shí)序仿真。最后,為此系統(tǒng)描寫XBD(Xilinx Board Description)板級(jí)描述文件,通過此文件,EDK可以通過BSB(Base System Builder)模式自動(dòng)生成基本的硬件系統(tǒng),并對(duì)所添加的端口進(jìn)行約束,這樣可以實(shí)現(xiàn)資源的繼承性使用。
3 軟件系統(tǒng)的實(shí)現(xiàn)
EDK提供了免費(fèi)的GNU C Compiler,可以支持標(biāo)準(zhǔn)C。同時(shí),EDK為多種IP以API的形式提供了驅(qū)動(dòng)函數(shù),有利于程序的開發(fā)。XPS所集成的軟件工程管理工具允許在一個(gè)硬件平臺(tái)上同時(shí)開發(fā)多個(gè)軟件工程。完成軟件代碼的編寫后,使用EDK集成的XMD和GDB調(diào)試器對(duì)代碼進(jìn)行仿真和調(diào)試,也可以配合ChipScope(片內(nèi)邏輯分析儀)進(jìn)行硬件及軟件的協(xié)同調(diào)試。XMD通過MDM模塊和JTAG口連接目標(biāo)板上的CPU,GDB可以對(duì)程序進(jìn)行單步調(diào)試或斷點(diǎn)設(shè)置。針對(duì)本設(shè)計(jì)及應(yīng)用,編寫了系統(tǒng)控制及液晶顯示程序。程序編譯后生成為elf文件,通過Update bitstream工具把程序同硬件配置文件合成為Download.bit文件,把此文件下載到目標(biāo)板后,F(xiàn)PGA首先根據(jù)硬件配置信息建立硬件系統(tǒng),并把程序代碼映射到片內(nèi)BRAM中,最后啟動(dòng)MicroBlaze,運(yùn)行程序。
4 總結(jié)
本系統(tǒng)基于FPGA,以Mi(未完,下一頁)
|