在SoPC上實(shí)現(xiàn)的波形發(fā)生器
(作者未知) 2010/3/27
摘要:可編程片上系統(tǒng)(SoPC)設(shè)計(jì)是一個(gè)嶄新的、富有生機(jī)的嵌入式系統(tǒng)設(shè)計(jì)方向。嵌入式集成化設(shè)計(jì)已成為電子領(lǐng)域發(fā)展的一個(gè)重要方向。Xilinx提供的EDK正是用于創(chuàng)建基于FPGA的嵌入式系統(tǒng)的開(kāi)發(fā)工具包。本文介紹基于SoPC的波形發(fā)生器在EDK工具包下的設(shè)計(jì)與實(shí)現(xiàn)。本設(shè)計(jì)采用嵌入式軟處理器核 MicroBlaze以及自主編寫(xiě)的包括實(shí)現(xiàn)DDS在內(nèi)的多種IP Core,最大限度地實(shí)現(xiàn)系統(tǒng)的集成化。
關(guān)鍵詞:SoPC IPCore EDK MicroBlaze DDS 波形發(fā)生器
引 言
SoPC可編程片上系統(tǒng)是一種特殊的嵌入式微處理器系統(tǒng)。首先,它是片上系統(tǒng)(SoC),即由單個(gè)芯片完成整個(gè)系統(tǒng)的主要邏輯功能;其次,它是可編程系統(tǒng),以FPGA為硬件基礎(chǔ),具有靈活的設(shè)計(jì)方式,可裁減、可擴(kuò)充、可升級(jí),并具備軟硬件系統(tǒng)在線可編程的功能。
IP(Intellectual Property)知識(shí)產(chǎn)權(quán)是SoC設(shè)計(jì)中非常重要的內(nèi)容。資源復(fù)用(IP Reuse)是指在集成電路設(shè)計(jì)過(guò)程中,通過(guò)繼承、共享或購(gòu)買所需的部分或全部知識(shí)產(chǎn)權(quán)內(nèi)核(IP Core)進(jìn)行設(shè)計(jì)、綜合和驗(yàn)證,從而加速流片設(shè)計(jì)過(guò)程的設(shè)計(jì)方法。IP技術(shù)包含兩個(gè)方面的內(nèi)容:IP核的生成和IP核的重用。本設(shè)計(jì)中采用VHDL語(yǔ)言,構(gòu)建一個(gè)功能強(qiáng)大的完整DDS模塊,并根據(jù)IBM CoreConnect總線連接規(guī)范,在DDS模塊外面添加OPB(Onchip Peripheral Bus)片上外設(shè)總線接口,封裝為自定義IP,添加到硬件系統(tǒng)中。
對(duì)于本設(shè)計(jì)來(lái)說(shuō),利用SoPC和IP的優(yōu)勢(shì)是可以利用最少的元器件,創(chuàng)建一個(gè)易配置、易擴(kuò)展、易修改并且易于繼承使用的集成系統(tǒng)。該系統(tǒng)的創(chuàng)建是基于Xilinx公司提供的嵌入式開(kāi)發(fā)工具包EDK(Embedded Development Kit)來(lái)實(shí)現(xiàn)的。EDK自帶了MicroBlaze軟核和PowerPC硬核微處理器及大量免費(fèi)IP,有利于構(gòu)建簡(jiǎn)易系統(tǒng)。針對(duì)MicroBlaze及PowerPC提供的C語(yǔ)言編譯器,可使系統(tǒng)的功能實(shí)現(xiàn)更加簡(jiǎn)易。對(duì)基于MicroBlaze的系統(tǒng),MicroBlaze通過(guò)OPB總線與外設(shè)IP及外部存儲(chǔ)器控制接口相連接,通過(guò)LMB(Local Memory Bus)總線與FPGA片上塊存儲(chǔ)器BRAM(Block RAM)相連接,還可以通過(guò)EMC(External Memory Control)等存儲(chǔ)器控制IP擴(kuò)展片外RAM或ROM。
1 系統(tǒng)的架構(gòu)
本設(shè)計(jì)采用SoPC可編程片上系統(tǒng)的思想,利用Xilinx的Spartan3系列XC3S400 FPGA,通過(guò)EDK開(kāi)發(fā)工具包的集成開(kāi)發(fā)環(huán)境XPS(Xilinx Platform Studio)完成了FPGA硬件系統(tǒng)設(shè)計(jì)及基于此硬件系統(tǒng)的軟件開(kāi)發(fā)。圖1是基于EDK的系統(tǒng)開(kāi)發(fā)設(shè)計(jì)流程圖,設(shè)計(jì)分為硬件設(shè)計(jì)和軟件設(shè)計(jì)兩部分。硬件設(shè)計(jì)符合基于HDL硬件描述語(yǔ)言的EDA開(kāi)發(fā)流程,是根據(jù)硬件系統(tǒng)合理使用總線IP和外設(shè)IP,并為各個(gè)實(shí)例定義地址范圍以及輸出端口和時(shí)鐘,經(jīng)過(guò)綜合及布線后形成硬件配置文件。軟件設(shè)計(jì)與傳統(tǒng)的嵌入式軟件開(kāi)發(fā)設(shè)計(jì)類似,是在硬件設(shè)計(jì)的基礎(chǔ)上根據(jù)處理器所支持的指令集以及編譯環(huán)境編寫(xiě)程序代碼,然后對(duì)代碼編譯燒寫(xiě)及調(diào)試。
在FPGA內(nèi)部,以MicroBlaze為控制核心,以DDS IP為波形發(fā)生功能實(shí)現(xiàn)核心,同時(shí)加入了其他的IP核,諸如調(diào)試用的MDM(Microprocessor Debug Module),用于與PC進(jìn)行通信的UART(Universal Asynchronous Receiver & Transmitter)通用異步傳輸模塊,以及LCD顯示和4×4按鍵控制模塊,實(shí)現(xiàn)了系統(tǒng)的高度集成。FPGA硬件系統(tǒng)為數(shù)字系統(tǒng)產(chǎn)生數(shù)字量,外圍電路加上高速數(shù)模轉(zhuǎn)換器件DAC902,把波形數(shù)據(jù)轉(zhuǎn)換為模擬波形,即實(shí)現(xiàn)了完整的可編程片上系統(tǒng)的波形發(fā)生器。
2 硬件系統(tǒng)的具體實(shí)現(xiàn)
本設(shè)計(jì)以32位MicroBlaze軟核處理器為系統(tǒng)的核心部分,負(fù)責(zé)指令的執(zhí)行。各種IP包括自主編寫(xiě)的以及EDK自帶的,使用XPS下的ADD/Edit Cores工具,通過(guò)相應(yīng)類型的總線連接到MicroBlaze上。其中UART、LCD、GPIO和自主編寫(xiě)的DDS的IP都是通過(guò)OPB(Onchip Peripheral Bus)片上外設(shè)總線連接到處理器上的。程序存儲(chǔ)器RAM則是由FPGA內(nèi)部的BRAM實(shí)現(xiàn),并通過(guò)LMB(Local Memory Bus)本地存儲(chǔ)器總線與MicroBlaze相連接。自主編寫(xiě)的IP與總線間的接口符合CoreConnect規(guī)范,實(shí)現(xiàn)了IP間的無(wú)縫結(jié)合,方便了數(shù)據(jù)的(未完,下一頁(yè))
|