MicroBlaze微控制器的理念簡介
MicroBlaze是一款基于構造的的嵌入式微處理器,它的顯著優勢在于能滿足復雜應用的需求,在除了運行簡單的通用應用以外,還能運行操作系統。
設計人員能夠在當前所有的賽靈思架構中實施MicroBlaze軟處理器,在不同產品系列間實現方便的轉換,具有很高的靈活性。但是,MicroBlaze系統設計不僅要在70多種參數中選擇,而且還要借助一系列功能強大的嵌入式工具,如果應用只需要簡單的微控制器,這種設計方法反倒不實用。
但是,利用適當的技術,用戶可以開發構造簡單的預配置MicroBlaze微控制器,并方便快捷地將其添加到任何FPGA設計中??蓪⒖刂破鞯膶嵗苯蛹尤際DL。用戶能在標準的FPGA設計流程中直接使用,無須特殊的腳本或復雜的步驟。僅需三個文件即可啟動設計工作,包括兩個硬件實施文件和一個軟件定義文件。這種方法使工程師不用學習或者只需很少量的學習就能快速啟動FPGA嵌入式設計工作。
在ISE 11.1中啟動MicroBlaze軟件開發工作,可使用獨立的軟件開發套件(SDK)進行C和C++應用的創建和調試,而無須全面的嵌入式開發套件(EDK)。
微控制器預配置了兩種選項,UART和調試。表1顯示了根據微控制器配置不同而給出的各種FPGA系列的尺寸估算值。此外,Virtex器件使用了兩個Block RAM,而Spartan器件使用四個Block RAM。對應用代碼進行調試后,用戶即可移除調試選項,以減小控制器的尺寸。例如,Spartan-6微控制器僅需要220個切片。
微控制器概覽
簡單MicroBlaze微控制器包含的組件有32位MicroBlaze處理器、8KB RAM/ROM、帶64KB尋址空間的32位用戶接口、中斷支持、可選UART,以及可選的JTAG調試接口。圖1顯示了系統方框圖。
圖1 SMM由MicroBlaze處理器、存儲器及接口組成
根據需要以及實施工具允許的范圍,時鐘輸入可高可低。有效高電平復位輸入與輸入時鐘內部同步。中斷輸入信號可提供中斷支持,微控制器提供服務時用中斷確認輸出進行確認。此外,簡單的地址映射用戶接口也同步于時鐘,支持用戶定制。圖2顯示了用戶接口的時序??蓪⒆止潌⒂糜糜谧止澓桶胱质聞仗幚怼?/P>
圖2 簡單的地址映射用戶接口同步于時鐘
用于可對16位寬的軟件映射地址總線進行解碼,以將不同的定制接口或外設連接至微控制器。在插入片選(Chip Select)兩個時鐘周期后對讀取數據進行采樣。
一些預配置的版本可提供串行16450 UART選項。波特率在軟件中進行編程,以保持UART獨立于時鐘輸入。調試選擇可使用內部FPGA資源,并直接連接至FPGA JTAG接口,從而通過常規FPGA下載線纜實現應用調試。
FPGA設計流程
FPGA設計流程遵循如圖3所示的標準ISE FPGA實施流程。可在FPGA設計中的任何層級級別上通過Verilog或VHDL創建微控制器實例。使用兩個與硬件相關的文件微控制器網表(smm.ngc)和Block RAM存儲器映射文件(smm.bmm)即能完成FPGA的實施,用戶既不必費心學習新的工具,也不用使用復雜的腳本流程。FPGA嵌入式設計從未如此的簡單易行。微控制器配置之間的切換非常簡單,只需替換所需的網表文件,然后重新實施FPGA即可。
圖3 FPGA設計流程遵循標準的ISE FPGA實施流程,無須新工具或腳本
運行實施工具后,將額外生成一個文件,指示微控制器所使用(smm_bd.bmm)的Block RAM的物理位置。
軟件應用設計流程
單個軟件描述文件(smm.xml)包含了啟動微控制器應用開發工作所需的全部信息。開發可獨立于FPGA設計流程進行,甚至在任何FPGA設計實施之前就能啟動。
從ISE 11.1開始,SDK作為獨立選項提供,其包含完成軟件應用設計所需的全部工具、驅動器、程序庫以及實用程序等。
圖4 顯示了以軟件定義文件開始的標準的SDK開發流程。微控制器的地址空間包括8KB的RAM與用戶接口,在選擇UART選項的情況下,還包括UART寄存器空間。
圖4 SDK開發流程始于軟件定義文件
設計實例
下面介紹一個LCD控制器參考設計實例,這種設計綜合采用了簡單MicroBlaze微控制器的各種特性。LCD控制器非常適用于小型微控制器實施,因為其硬件接口較慢,也比較簡單,初始化序列較長,而且需要大量字符代碼。
通過綜合采用HDL和C代碼,設計可將消息輸出至電路板上的字符LCD屏。
HDL可處理硬件接口,而軟件則負責初始化和控制LCD屏。
LCD模塊的時序較慢,但同時需要指令或數據之間的較大延遲。例如,清空顯示的指令需要1.52ms的延遲,然后才能發出下一個指令或數據。部分指令需要40μs的延遲,其他的延遲則需要1μs。
我們可在C語言代碼中用while回路來處理延遲問題,不過這樣做不夠準確,而且還會影響編譯器的優化。更好的選擇是在FPGA中創建軟件可載入的32位計數器,以便在到達編程的延遲時觸發控制器中斷。
MicroBlaze寫入地址0x10,以根據用戶接口數據總線上的數據啟動定時器。MicroBlaze隨后將等待中斷,以繼續執行。
MicroBlaze寫入用戶接口地址0x0會觸發LCD控制器硬件接口,硬件接口的時序由HDL處理。用戶接口數據總線可捕獲指令或數據值。按鈕輸入能夠連接至用戶接口地址0x20。
FPGA設計包括頂級模塊、LCD硬件時序模塊以及軟件可尋址可編程定時器。此外,文件還包括簡單MicroBlaze微控制器的示例,運行頻率為66MHz。
C語言應用包含在單個文件中。該代碼不僅可實現MicroBlaze中斷、初始化LCD屏幕、管理不同的延遲情況、打印雙線LCD、等待按鈕輸入,同時還可清空屏幕并輸出新的消息。
微控制器的定制
由于微控制器采用MicroBlaze構建而成,因此設計人員將能獲得許多標準的外設和選項,以定制嵌入式系統。用戶可能希望部署不同的FPGA架構或添加更多主存儲器、浮點單元或標準的SPI或I2C外設。
定制既定的系統需要EDK。它包括眾多作為嵌入式項目的不同配置,可根據用戶要求進行修改。例如,如果需要16KB的存儲器而不是標準的8KB存儲器,那么用戶可以打開EDK項目,修改MicroBlaze RAM空間并生成新的網表、Block RAM存儲器和軟件描述文件。用戶隨后即可將新的文件添加至ISE和SDK項目中。
誠然,雖然簡單的MicroBlaze微控制器不能滿足所有嵌入式設計的需要,但對于需要簡單微控制器來高效提供控制功能的用戶來說確實是非常好的選擇。此外,其還為希望共享和發布EDK設計的團隊提供了一種定則,那就是無論嵌入式設計的尺寸大小,僅需三個文件就能完成整個實施工作。
評論
查看更多