劉軍偉(中航工業(yè)西安航空計(jì)算技術(shù)研究所,西安,710065)
?
可編程器件Microblaze的應(yīng)用與實(shí)現(xiàn)
劉軍偉
(中航工業(yè)西安航空計(jì)算技術(shù)研究所,西安,710065)
摘要:MicroBlaze是基于Xilinx公司FPGA 的微處理器IP核,可以利用其便捷性優(yōu)化嵌入式系統(tǒng)設(shè)計(jì),同時(shí)簡化硬件電路,提高系統(tǒng)性能。
關(guān)鍵詞:MicroBlaze;FPGA;IP核
Application and Realization of Microblaze Programmable Devices
Liu Junwei
(AVIC Computing Technique Research Institute,Xi’an,710065)
Abstract:MicroBlaze is based on the microprocessor IP core of Xilinx company,it can utilize the convenient optimization design of embedded system,and simplify the circuit and improve the performance of the system. Keywords:MicroBlaze;FPGA;IP core
隨著可編程邏輯器件FPGA在信號數(shù)據(jù)處理領(lǐng)域日益廣泛的應(yīng)用,以FPGA為核心的架構(gòu),諸如FPGA+PowerPC、FPGA+DSP等架構(gòu)被廣泛采用,如何有效的利用FPGA自帶的內(nèi)部資源完成簡單的控制功能,從而減輕處理器的負(fù)擔(dān),提高系統(tǒng)性能成為設(shè)計(jì)者設(shè)計(jì)時(shí)需要考慮的問題。
本文介紹了Xilinx公司FPGA的Microblaze IP核的體系結(jié)構(gòu)和性能,同時(shí)基于Microblaze IP核的基礎(chǔ)上,介紹了其在實(shí)際應(yīng)用上的實(shí)現(xiàn)事例。
MicroBlaze是基于Xilinx公司FPGA 的微處理器IP 核,和其它外設(shè)IP 核一起,可以完成可編程系統(tǒng)芯片(SOPC) 的設(shè)計(jì)。MicroBlaze 是Xilinx 的32 位RISC 軟核嵌入處理器,在ISE/XPS(EDK+SDK)開發(fā)環(huán)境中進(jìn)行設(shè)計(jì),廣泛適用于Spartan 和Virtex 系列的FPGA。一個(gè)FPGA 芯片內(nèi)部可以使用主從兩個(gè)或多個(gè)MicroBlaze處理器,而FPGA 最大的特點(diǎn)就是能夠縮短產(chǎn)品開發(fā)的周期,它的可編程配置特性可以將系統(tǒng)開發(fā)的風(fēng)險(xiǎn)降到最低。而Xilinx 公司的MicroBlaze 軟核處理器的優(yōu)點(diǎn)在于,不像ARM是由固定的硬芯片來實(shí)現(xiàn),用戶可以根據(jù)實(shí)際系統(tǒng)的需求添加必要的外設(shè)來實(shí)現(xiàn)基于MicroBlaze 的嵌入式可編程片上系統(tǒng),從而提高了設(shè)計(jì)的靈活性。MicroBlaze微處理器采用RISC 架構(gòu)和哈佛結(jié)構(gòu)的32位指令和數(shù)據(jù)總線,內(nèi)部有32個(gè)32位通用寄存器,2個(gè)特殊寄存器:PC指針和MSR狀態(tài)標(biāo)志寄存器,可以按照字節(jié)、半字和字三種方式訪問寄存器。其中獨(dú)立的32位OPB指令總線和數(shù)據(jù)總線,可以訪問片外存儲(chǔ)器及其他外設(shè),獨(dú)立的32位LMB指令總線和數(shù)據(jù)總線,直接連接到FPGA內(nèi)部的RAM上進(jìn)行高速的讀寫操作。簡單來說,通過MicroBlaze可以訪問可以全速執(zhí)行存儲(chǔ)在片上存儲(chǔ)器和外部存儲(chǔ)器中的程序,并訪問其中的數(shù)據(jù)。MicroBlaze的IP核結(jié)構(gòu)框圖如圖1所示。
圖1 MicroBlaze的IP核結(jié)構(gòu)框圖
MicroBlaze處理器同時(shí)具有8個(gè)輸入和8個(gè)輸出快速單一鏈路接口(FSL)。FSL通道是專用于單一方向的點(diǎn)到點(diǎn)的數(shù)據(jù)流傳輸接口。FLS和MicroBlaze 的接口寬度都是是32位。每一個(gè)FSL通道都可以發(fā)送和接收控制或數(shù)據(jù)字。MicroBlaze是一種大端存儲(chǔ)系統(tǒng)處理器,使用大端的格式來訪問存儲(chǔ)器,具體詳格式見圖2。同時(shí)MicroBlaze 可以響應(yīng)軟件和硬件中斷,進(jìn)行異常處理,通過外加控制邏輯,可以擴(kuò)展外部中斷,可通過FPGA的JTAG接口來調(diào)試處理器系統(tǒng)。
圖2 MicroBlaze的大端數(shù)據(jù)格式框圖
Microblaze微處理器構(gòu)建系統(tǒng)時(shí),需要一些必要的IP核,其中比較重要的就是OPB和PLB總線接口。
2.1片上外設(shè)總線(OPB)
內(nèi)核通過片上外設(shè)總線(OPB)來訪問低速和低性能的系統(tǒng)資源。OPB是一種完全同步總線,它的功能處于一個(gè)單獨(dú)的總線層級。它不是直接連接到處理器內(nèi)核的。OPB接口提供分離的32位地址總線和32位數(shù)據(jù)總線。處理器內(nèi)核可以借助“PLB to OPB”橋,通過OPB訪問從外設(shè)。作為OPB總線控制器的外設(shè)可以借助“OPB to PLB”橋,通過PLB訪問存儲(chǔ)器。
2.2處理器本機(jī)總線(PLB)
PLB接口為指令和數(shù)據(jù)一側(cè)提供獨(dú)立的32位地址和64位數(shù)據(jù)總線。PLB支持具有PLB總線接口的主機(jī)和從機(jī)通過PLB信號連接來進(jìn)行讀寫數(shù)據(jù)的傳輸??偩€架構(gòu)支持多主從設(shè)備。每一個(gè)PLB主機(jī)通過獨(dú)立的地址總線、讀數(shù)據(jù)總線和寫數(shù)據(jù)總線與PLB連接。PLB從機(jī)通過共享但分離的地址總線、讀數(shù)據(jù)總線和寫數(shù)據(jù)總線與PLB連接,對于每一個(gè)數(shù)據(jù)總線都有一個(gè)復(fù)雜的傳輸控制和狀態(tài)信號。為了允許主機(jī)通過競爭來獲得總線的所有權(quán),有一個(gè)中央判決機(jī)構(gòu)來授權(quán)對PLB的訪問。
Xilinx公司提供了EDK嵌入式開發(fā)套件可以進(jìn)行MicroBlaze IP核的開發(fā)。EDK中還帶有一些外設(shè)接口的IP核,如LMB、OPB總線接口、外部存儲(chǔ)控制器、SDRAM控制器、UART、中斷控制器、定時(shí)器等。利用這些資源,可以構(gòu)建一個(gè)較為完善的嵌入式微處理器系統(tǒng)。在FPGA上設(shè)計(jì)的嵌入式系統(tǒng)層次結(jié)構(gòu)為5級??稍谧畹蛯佑布Y源上開發(fā)IP核,或利用已開發(fā)的IP核搭建嵌入式系統(tǒng)。軟件方面需開發(fā)IP核的設(shè)備驅(qū)動(dòng)、應(yīng)用接口(API)和應(yīng)用層(算法)。通過標(biāo)準(zhǔn)總線接口(LMB總線和OPB總線的IP核),MicroBlaze就可以和各種外設(shè)IP核相連。EDK中提供的IP核均有相應(yīng)的設(shè)備驅(qū)動(dòng)和應(yīng)用接口,設(shè)計(jì)者只需利用相應(yīng)的函數(shù)庫,就可以編寫自己的應(yīng)用軟件和算法程序。對于用戶自己開發(fā)的IP 核,需要自己編寫相應(yīng)的驅(qū)動(dòng)和接口函數(shù)。
4.1設(shè)計(jì)思路
使用硬件開發(fā)測試邏輯,將作為測試設(shè)備激勵(lì)源的模塊的發(fā)送接口和模塊的接收用戶主機(jī)接口連接,同時(shí)使用線纜將兩端的接口連接。在Microblaze的基礎(chǔ)上開發(fā)外部激勵(lì)源中測試邏輯,功能如下:
(1)外部激勵(lì)源母板集成模塊連接器和MAX3232ESE驅(qū)動(dòng)器,驅(qū)動(dòng)器實(shí)現(xiàn)作為測試設(shè)備的UART串口引出;
(2)邏輯布隨機(jī)碼并按照約定格式并發(fā)送,單次發(fā)送啟動(dòng)均由邏輯集成的MicroBlaze處理器控制;
(3)之后邏輯等待FC接收數(shù)據(jù),接收到數(shù)據(jù)后,由邏輯進(jìn)行比對,將正確和錯(cuò)誤結(jié)果使用不同的中斷上報(bào)給MicroBlaze處理器,處理器響應(yīng)中斷,并進(jìn)行統(tǒng)計(jì)技術(shù),并通過UART接口現(xiàn)實(shí)輸出。
具體邏輯架構(gòu)圖如圖3所示:
圖3 邏輯開發(fā)框圖
4.2測試流程
具體測試流程如下:
(1)模塊上電后,處理器運(yùn)行,并置軟件計(jì)數(shù)變量為0,之后讀取鏈路狀態(tài)(如果用戶鏈路狀態(tài)為閉環(huán)模式,則也需要讀取用戶鏈路狀態(tài));
(2)在告訴鏈路狀態(tài)均正常的情況下,發(fā)送第一次測試命令
到測試邏輯,測試邏輯啟動(dòng)偽隨機(jī)碼布碼邏輯,并在發(fā)送的同時(shí)填入到比較緩沖中;
(3)等待接收數(shù)據(jù),在數(shù)據(jù)接收完成后,將接收緩沖中的數(shù)據(jù)和測試邏輯中的比較緩沖中的數(shù)據(jù)通過硬件進(jìn)行讀取比較,比較完成后,根據(jù)結(jié)果上報(bào)中斷到處理器;
(4)處理器響應(yīng)中斷,并增加相應(yīng)的技術(shù)指,并按照約定頻率(比如10次正確輸出一次,單詞錯(cuò)誤輸出并停止測試)通過UART輸出測試結(jié)果;
(5)通過PC端的超級中斷觀察串口輸出結(jié)果,并以此作為合格判據(jù)。
本文對FPGA 和MicroBlaze架構(gòu)、工作原理及具體應(yīng)用的實(shí)現(xiàn)方法分別進(jìn)行了介紹。通過闡述,可知采用Xilinx公司FPGA的MicroBlaze 進(jìn)行嵌入式系統(tǒng)設(shè)計(jì),可以簡化硬件電路同時(shí)提高系統(tǒng)性能,在應(yīng)用上具有一定的價(jià)值。
參考文獻(xiàn)
[1] 劉永健.軟核嵌入處理器MicroBlaze [J].計(jì)算機(jī)與網(wǎng)絡(luò),2012.
[2] 何賓.王瑜. 基于Xilinx MicroBlaze多核嵌入式系統(tǒng)的設(shè)計(jì)[J].電子設(shè)計(jì)工程.2011.
劉軍偉,中航工業(yè)西安航空計(jì)算技術(shù)研究所,工程師
作者簡介