新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 手把手課堂:簡單MicroBlaze微控制器的理念

        手把手課堂:簡單MicroBlaze微控制器的理念

        作者: 時(shí)間:2011-05-06 來源:電子產(chǎn)品世界 收藏

          軟件應(yīng)用設(shè)計(jì)流程

        本文引用地址:http://www.104case.com/article/119296.htm

          單個(gè)軟件描述文件 (smm.xml) 包含了啟動(dòng)應(yīng)用開發(fā)工作所需的全部信息。開發(fā)可獨(dú)立于FPGA設(shè)計(jì)流程進(jìn)行,甚至在任何FPGA設(shè)計(jì)實(shí)施之前就能啟動(dòng)。

          從ISE 11.1開始,SDK作為獨(dú)立選項(xiàng)提供,其包含完成軟件應(yīng)用設(shè)計(jì)所需的全部工具、驅(qū)動(dòng)器、程序庫以及實(shí)用程序等。

          圖4顯示了以軟件定義文件開始的標(biāo)準(zhǔn)的SDK開發(fā)流程。的地址空間包括8KB的RAM與用戶接口,在選擇UART選項(xiàng)的情況下,還包括UART寄存器空間。

          您可用C或C++語言編寫軟件應(yīng)用,并將其存儲(chǔ)于Block RAM中。此外,RAM空間還可作為微控制器的ROM,因?yàn)樗杀活A(yù)載至FPGA比特流中的應(yīng)用。用戶在配置了FPGA并為微控制器復(fù)位解除斷言后,應(yīng)用就將開始從內(nèi)部RAM/ROM空間執(zhí)行。微控制器功能非常完整。

          調(diào)試選項(xiàng)支持應(yīng)用的全源級(jí)調(diào)試,能提供存儲(chǔ)器、寄存器以及變量的直觀視圖。用戶能夠在應(yīng)用中設(shè)置斷點(diǎn),以更好地開展調(diào)試。設(shè)計(jì)人員可使用與FPGA配置相同的線纜進(jìn)行調(diào)試。完成后就能清除調(diào)試選項(xiàng),以縮小控制器的尺寸。

          設(shè)計(jì)示例

          我們不妨來看看一些賽靈思開發(fā)板的LCD控制器參考設(shè)計(jì),這種設(shè)計(jì)綜合采用了簡單微控制器的各種特性。LCD控制器非常適用于小型微控制器實(shí)施,因?yàn)槠溆布涌谳^慢,也比較簡單,初始化序列較長,而且需要大量字符代碼。

          通過綜合采用HDL和C代碼,設(shè)計(jì)可將消息輸出至電路板上的字符LCD屏。HDL可處理硬件接口,而軟件則負(fù)責(zé)初始化和控制LCD屏。

          LCD模塊的時(shí)序較慢,但同時(shí)需要指令或數(shù)據(jù)之間的較大延遲。例如,清空顯示的指令需要1.52毫秒的延遲,然后才能發(fā)出下一個(gè)指令或數(shù)據(jù)。部分指令需要40μs的延遲,其它的延遲則需要1μs。

          我們可在C語言代碼中用while回路來處理延遲問題,不過這樣做不夠準(zhǔn)確,而且還會(huì)影響編譯器的優(yōu)化。更好的選擇

          是在FPGA中創(chuàng)建軟件可載入的32位計(jì)數(shù)器,以便在到達(dá)編程的延遲時(shí)觸發(fā)控制器中斷。寫入地址0x10,以根據(jù)用戶接口數(shù)據(jù)總線上的數(shù)據(jù)啟動(dòng)定時(shí)器。隨后將等待中斷,以繼續(xù)執(zhí)行。

          MicroBlaze寫入用戶接口地址0x0會(huì)觸發(fā)LCD控制器硬件接口,硬件接口的時(shí)序由HDL處理。用戶接口數(shù)據(jù)總線可捕獲指令或數(shù)據(jù)值。按鈕輸入能夠連接至用戶接口地址0x20。

          FPGA設(shè)計(jì)包括頂級(jí)模塊、LCD硬件時(shí)序模塊以及軟件可尋址可編程定時(shí)器。此外,頂級(jí)文件還包括簡單MicroBlaze 微控制器的示例,運(yùn)行頻率為66 MHz。

          C語言應(yīng)用包含在單個(gè)文件中。該代碼不僅可實(shí)現(xiàn)MicroBlaze中斷、初始化LCD屏幕、管理不同的延遲情況、打印雙線LCD、等待按鈕輸入,同時(shí)還可清空屏幕并輸出新的消息。

          在Virtex-6 ML605電路板上,設(shè)計(jì)所用的FPGA資源還不足1%,并可為設(shè)計(jì)分區(qū)提供更加高效的方式。與僅采用HDL方案的實(shí)施和調(diào)試相比,C語言代碼的編譯和調(diào)試要快一個(gè)數(shù)量級(jí)。

          微控制器的定制

          由于微控制器采用MicroBlaze構(gòu)建而成,因此設(shè)計(jì)人員將能獲得許多標(biāo)準(zhǔn)的外設(shè)和選項(xiàng),以定制嵌入式系統(tǒng)。用戶可能希望部署不同的FPGA架構(gòu)或添加更多主存儲(chǔ)器、浮點(diǎn)單元或標(biāo)準(zhǔn)的SPI或I2C外設(shè)。

          定制既定的系統(tǒng)需要EDK。它包括眾多作為嵌入式項(xiàng)目的不同配置,可根據(jù)用戶要求進(jìn)行修改。例如,如果需要16KB的存儲(chǔ)器而不是標(biāo)準(zhǔn)的8KB存儲(chǔ)器,那么用戶可以打開EDK項(xiàng)目,修改MicroBlaze RAM空間并生成新的網(wǎng)表、Block RAM存儲(chǔ)器和軟件描述文件。用戶隨后即可將新的文件添加至ISE和SDK項(xiàng)目中。

          誠然,雖然簡單的MicroBlaze微控制器不能滿足所有嵌入式設(shè)計(jì)的需要,但對(duì)于需要簡單微控制器來高效提供控制功能的用戶來說確實(shí)是非常好的選擇。此外,其還為希望共享和發(fā)布EDK設(shè)計(jì)的團(tuán)隊(duì)提供了一種定則,那就是無論嵌入式設(shè)計(jì)的尺寸大小,僅需三個(gè)文件就能完成整個(gè)實(shí)施工作。

        c++相關(guān)文章:c++教程



        上一頁 1 2 3 下一頁

        關(guān)鍵詞: Xilinx MicroBlaze 微控制器

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 威信县| 襄樊市| 阜康市| 九龙坡区| 台安县| 冷水江市| 赤城县| 达拉特旗| 盱眙县| 青冈县| 滨海县| 科尔| 南投县| 饶平县| 常州市| 界首市| 鄱阳县| 吴桥县| 项城市| 大同县| 阳朔县| 靖江市| 石楼县| 绥阳县| 栾城县| 泸州市| 印江| 珲春市| 麻栗坡县| 河北区| 栾城县| 平乡县| 溧水县| 常山县| 济南市| 嘉兴市| 屏东市| 蓬溪县| 闽侯县| 顺平县| 榕江县|