基于MicroBlaze軟核的FPGA片上系統(tǒng)設(shè)計(jì)
(1)片上外設(shè)總線(OPB)
本文引用地址:http://butianyuan.cn/article/267948.htm內(nèi)核通過(guò)片上外設(shè)總線(OPB)來(lái)訪問(wèn)低速和低性能的系統(tǒng)資源。OPB是一種完全同步總線,它的功能處于一個(gè)單獨(dú)的總線層級(jí)。它不是直接連接到處理器內(nèi)核的。OPB接口提供分離的32位地址總線和32位數(shù)據(jù)總線。處理器內(nèi)核可以借助“PLB to OPB”橋,通過(guò)OPB訪問(wèn)從外設(shè)。作為OPB總線控制器的外設(shè)可以借助“OPB to PLB”橋,通過(guò)PLB訪問(wèn)存儲(chǔ)器。
(2)處理器本機(jī)總線(PLB)
PLB接口為指令和數(shù)據(jù)一側(cè)提供獨(dú)立的32位地址和64位數(shù)據(jù)總線。PLB支持具有PLB總線接口的主機(jī)和從機(jī)通過(guò)PLB信號(hào)連接來(lái)進(jìn)行讀寫(xiě)數(shù)據(jù)的傳輸??偩€架構(gòu)支持多主從設(shè)備。每一個(gè)PLB主機(jī)通過(guò)獨(dú)立的地址總線、讀數(shù)據(jù)總線和寫(xiě)數(shù)據(jù)總線與PLB連接。PLB從機(jī)通過(guò)共享但分離的地址總線、讀數(shù)據(jù)總線和寫(xiě)數(shù)據(jù)總線與PLB連接,對(duì)于每一個(gè)數(shù)據(jù)總線都有一個(gè)復(fù)雜的傳輸控制和狀態(tài)信號(hào)。為了允許主機(jī)通過(guò)競(jìng)爭(zhēng)來(lái)獲得總線的所有權(quán),有一個(gè)中央判決機(jī)構(gòu)來(lái)授權(quán)對(duì)PLB的訪問(wèn)。
(3)設(shè)備控制寄存器總線(DCR)
設(shè)備控制寄存器總線(DCR)是為在CPU通用寄存器(GPRs)和DCR的從邏輯設(shè)備控制寄存器(DCRs)之間傳輸數(shù)據(jù)而設(shè)計(jì)的。
3 MicroBlaze的開(kāi)發(fā)
應(yīng)用EDK(嵌入式開(kāi)發(fā)套件)可以進(jìn)行MicroBlaze IP核的開(kāi)發(fā)。工具包中集成了硬件平臺(tái)生產(chǎn)器、軟件平臺(tái)產(chǎn)生器、仿真模型生成器、軟件編譯器和軟件調(diào)試工具等。EDK中提供一個(gè)集成開(kāi)發(fā)環(huán)境XPS(Xilinx平臺(tái)工作室),以便使用系統(tǒng)提供的所有工具,完成嵌入式系統(tǒng)開(kāi)發(fā)的整個(gè)流程。EDK中還帶有一些外設(shè)接口的IP核,如LMB、OPB總線接口、外部存儲(chǔ)控制器、SDRAM控制器、UART、中斷控制器、定時(shí)器等。利用這些資源,可以構(gòu)建一個(gè)較為完善的嵌入式微處理器系統(tǒng)。
在FPGA上設(shè)計(jì)的嵌入式系統(tǒng)層次結(jié)構(gòu)為5級(jí)??稍谧畹蛯佑布Y源上開(kāi)發(fā)IP核,或或已開(kāi)發(fā)的IP核搭建嵌入式系統(tǒng),這是硬件開(kāi)發(fā)部件;開(kāi)發(fā)IP核的設(shè)備驅(qū)動(dòng)、應(yīng)用接口(API)和應(yīng)用層(算法),屬軟件開(kāi)發(fā)內(nèi)容。
利用MicroBlaze構(gòu)建基本的嵌入式系統(tǒng)如圖5所示。通過(guò)標(biāo)準(zhǔn)總線接口—LMB總線和OPB總線的IP核,MicroBlaze就可以和各種外設(shè)IP核相連。
EDK中提供的IP核均有相應(yīng)的設(shè)備驅(qū)動(dòng)和應(yīng)用接口,使用者只需利用相應(yīng)的函數(shù)庫(kù),就可以編寫(xiě)自己的應(yīng)用軟件和算法程序。對(duì)于用戶自己開(kāi)發(fā)的IP核,需要自己編寫(xiě)相應(yīng)的驅(qū)動(dòng)和接口函數(shù)。軟件設(shè)計(jì)流程如圖6所示。
4 MicroBlaze的應(yīng)用
在軟件無(wú)線電系統(tǒng)中,一般采用“微處理器+協(xié)處理器”結(jié)構(gòu)。微處理器一般使用通用DSP,主要完成系統(tǒng)通信和基帶處理等工作;協(xié)處理器用FPGA實(shí)現(xiàn),主要完成同步和預(yù)處理等底層算法的運(yùn)算任務(wù)。在本課題中,采用的基帶處理算法比較簡(jiǎn)單,應(yīng)用軟處理器IP核代替DSP,在一片FPGA內(nèi)就能實(shí)現(xiàn)整個(gè)系統(tǒng)的設(shè)計(jì)。這樣可以簡(jiǎn)化系統(tǒng)的結(jié)構(gòu),提高系統(tǒng)的整體性能。
本課題的系統(tǒng)設(shè)計(jì)如圖7和圖8所示,F(xiàn)PGA片上系統(tǒng)主要完成兩個(gè)任務(wù)—發(fā)送和接收數(shù)據(jù)。對(duì)于發(fā)送任務(wù),F(xiàn)PGA完成硬件算法的初始化,接收串口數(shù)據(jù),并將數(shù)據(jù)存儲(chǔ)在雙口SRAM中,系統(tǒng)硬件算法部分對(duì)雙口SRAM中數(shù)據(jù)進(jìn)行基帶處理,并將結(jié)果送給D/A轉(zhuǎn)換器。對(duì)于接收任務(wù),F(xiàn)PGA接收A/D轉(zhuǎn)換器送來(lái)的數(shù)據(jù),進(jìn)行基帶處理,并將數(shù)據(jù)存儲(chǔ)在雙口SRAM中,把存儲(chǔ)在雙口SRAM中的數(shù)據(jù)通過(guò)串口發(fā)送回主機(jī)。
存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理
評(píng)論