《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于Microblaze軟核的嵌入式系統(tǒng)設(shè)計(jì)
基于Microblaze軟核的嵌入式系統(tǒng)設(shè)計(jì)
電子元器件應(yīng)用
單 超,王 萍,朱愛(ài)民,萬(wàn) 娟
摘要: 結(jié)合實(shí)際項(xiàng)目的開發(fā)經(jīng)驗(yàn),詳細(xì)講解了基于Xilinx Microblaze軟核開發(fā)的整個(gè)流程,包括硬件平臺(tái)搭建、軟件平臺(tái)開發(fā)、嵌入式操作系統(tǒng)的加載以及用非易失性存儲(chǔ)設(shè)備對(duì)FPGA進(jìn)行上電配置等內(nèi)容。利用FPGA軟核進(jìn)行嵌入式系統(tǒng)開發(fā),將得到越來(lái)越多的關(guān)注和應(yīng)用。
關(guān)鍵詞: FPGA 軟核 MicroBlaze
Abstract:
Key words :

摘要:結(jié)合實(shí)際項(xiàng)目的開發(fā)經(jīng)驗(yàn),詳細(xì)講解了基于Xilinx Microblaze軟核開發(fā)的整個(gè)流程,包括硬件平臺(tái)搭建、軟件平臺(tái)開發(fā)、嵌入式操作系統(tǒng)的加載以及用非易失性存儲(chǔ)設(shè)備對(duì)FPGA進(jìn)行上電配置等內(nèi)容。利用FPGA軟核進(jìn)行嵌入式系統(tǒng)開發(fā),將得到越來(lái)越多的關(guān)注和應(yīng)用。
關(guān)鍵詞:嵌入式系統(tǒng);軟核;片上可編程系統(tǒng);可編程邏輯門陣列

引言
    近十年來(lái),F(xiàn)PGA行業(yè)獲得了突飛猛進(jìn)的發(fā)展,其在系統(tǒng)開發(fā)工作中的地位已從簡(jiǎn)單的膠合邏輯上升到了數(shù)字系統(tǒng)的核心處理器件。可編程片上系統(tǒng)SOPC(Systern On Programmable Chip)將CPU核與外設(shè)核以及系統(tǒng)軟件集成到單一芯片中,幫助用戶快速“量身定制”所需要的產(chǎn)品,創(chuàng)造性地為用戶提供了基于FPGA的嵌入式設(shè)計(jì)方案。
    Xilinx公司作為FPGA嵌入式軟核解決方案商,在其所有系列的FPGA中提供了Microblaze 32位軟核處理器,并推出了用于嵌入式系統(tǒng)編程的EDK(Embedded Development Kit)集成開發(fā)解決方案。本文結(jié)合實(shí)際項(xiàng)目的開發(fā)經(jīng)驗(yàn),詳細(xì)講解了基于Microblaze軟核開發(fā)的整個(gè)流程,包括硬件平臺(tái)開發(fā)、軟件平臺(tái)開發(fā)、嵌入式操作系統(tǒng)的加載以及用非易失性存儲(chǔ)設(shè)備對(duì)FPGA進(jìn)行上電配置等內(nèi)容。

1 Microblaze的體系結(jié)構(gòu)
    Microblaze處理器采用RISC架構(gòu)和哈佛結(jié)構(gòu),在時(shí)鐘頻率為150 MHz的情況下可以達(dá)到125 DMIPS的性能,該處理器(版本7.30)具有以下一些特征:
    ①32個(gè)32位通用寄存器和最多18個(gè)專用寄存器;
    ②32位指令系統(tǒng),支持3個(gè)操作數(shù)和2種尋址方式;
    ③分離的32位指令和數(shù)據(jù)總線;
    ④通過(guò)本地存儲(chǔ)器總線LMB直接訪問(wèn)片內(nèi)的塊存儲(chǔ)器BRAM;
    ⑤具有高速的指令和數(shù)據(jù)緩存Cache,5級(jí)流水線結(jié)構(gòu);
    ⑥自帶硬件調(diào)試模塊MIDM;
    ⑦帶有8個(gè)主/從快速單工鏈路接口。
    圖1給出了Microblaze的內(nèi)部功能塊圖。

a.jpg


    從圖1可以看出,Microblaze軟核與其他專用集成芯片的硬CPU核在結(jié)構(gòu)上沒(méi)有大的差別,但它卻可以通過(guò)PLB總線(Processor Local Bus )與EDK軟件包將自帶的各種軟外設(shè)進(jìn)行按需連接,并且支持用戶自定義IP通過(guò)PLB總線(Microblaze從7.30版本開始取消了原有的OPB總線)和FSL(Fast Simple Link)總線與Microblaze軟核連接,從而最大限度地發(fā)揮FPGA設(shè)計(jì)的靈活性。

2 基于Microblaze的嵌入式開發(fā)流程
    如圖2所示,基于Microblaze的嵌入式開發(fā)流程主要包括3個(gè)步驟:首先要搭建起底層的物理平臺(tái),包括構(gòu)建Microblaze處理器,將所需的外設(shè)通過(guò)片內(nèi)總線掛到Microblaze處理器上,并根據(jù)需要開發(fā)用戶自定義的IP核;第二步在構(gòu)建起的硬件平臺(tái)上編寫軟件應(yīng)用程序,包括應(yīng)用程序代碼、庫(kù)文件以及板級(jí)支持包BSP等;最后將硬件的比特流配置文件和軟件的可執(zhí)行重定位文件進(jìn)行合并形成最終的文件,或者直接下載到FPGA內(nèi)部運(yùn)行,或者下載到FPGA片外的非易失性存儲(chǔ)器Flash中,在系統(tǒng)配置完成后由Bootloader。程序?qū)lash中的應(yīng)用程序拷貝到片外的DDRRAM中運(yùn)行。

b.jpg


2.1 硬件平臺(tái)的開發(fā)
    EDK的組件XPS(Xilinx Platform Studio)為Microblaze提供了一個(gè)集成開發(fā)環(huán)境,硬件平臺(tái)的開發(fā)主要包括兩方面內(nèi)容:
    ①用基本系統(tǒng)向?qū)SB(Base System Builder)搭建Microblaze平臺(tái),包括FPGA器件型號(hào)的選擇、Microblaze處理器屬性的設(shè)置、所需外設(shè)的添加和屬性設(shè)置、測(cè)試程序的生成等步驟。圖3給出了BSB完成后的XPS顯示窗口內(nèi)容。從圖3可以看到,系統(tǒng)添加了多種外設(shè),如RS232串口、與外部Flash和。DDR RAM進(jìn)行交互的控制邏輯、中斷控制器和定時(shí)器等,這些外設(shè)通過(guò)指定的片內(nèi)總線連接到Microblaze控制核上。除此之外,還可以在Ports頁(yè)面對(duì)各個(gè)模塊的信號(hào)進(jìn)行相互連接,在Addresses頁(yè)面對(duì)模塊的地址進(jìn)行分配等。這部分工作相當(dāng)于將原本不可分割的ASIC專用集成芯片進(jìn)行了拆卸,讓用戶深入到芯片內(nèi)部,根據(jù)自身的需求去選取芯片需要具備的功能模塊,并完成這些模塊與控制核的連接和地址分配,形成用戶最終定制的底層邏輯。這種拆卸和組合在一定程度上增加了系統(tǒng)開發(fā)的難度,但也換來(lái)了系統(tǒng)設(shè)計(jì)的靈活性、通用性和可擴(kuò)展性。

c.jpg


    ②定制用戶自己的IP核。由于嵌入式系統(tǒng)開發(fā)的特殊性,有時(shí)可能很難找到一款A(yù)SIC控制器,具備系統(tǒng)要求的所有外設(shè)接口。在這種情況下,要么用軟件實(shí)現(xiàn)所缺的外設(shè)功能,從而犧牲了系統(tǒng)性能;要么單獨(dú)購(gòu)置一片該接口芯片,從而增大了電路板面積和成本。而基于FPGA軟核的設(shè)計(jì)則不存在這種問(wèn)題。在XPS中定制用戶IP核與一般用VHDL編寫邏輯電路不同的是,這種定制IP可以掛接在PLB總線上,從而實(shí)現(xiàn)與Microblaze的通信。XPS提供自定義IP核的生成向?qū)В瑘D4給出了用戶自定義IP核的邏輯結(jié)構(gòu)。從圖可以看出,生成向?qū)?chuàng)建了兩個(gè)模塊,一個(gè)是與PLB總線進(jìn)行交互的接口模塊IPIF,另一個(gè)是用戶邏輯模塊User_Logic。IPIF完成PLB總線信號(hào)的捕捉和協(xié)議轉(zhuǎn)換,這部分內(nèi)容不需要用戶參與,用戶只需根據(jù)自定義邏輯的輸入/輸出信號(hào)在IPIF中給出相應(yīng)的聲明即可;User_Logic模塊則是需要用戶進(jìn)行手動(dòng)添加自定義邏輯代碼的地方,在這里用戶只需關(guān)注自己需要實(shí)現(xiàn)的功能,不用擔(dān)心它們與Microblaze之間的通信鏈接。

d.jpg


2.2 軟件平臺(tái)的開發(fā)
    EDK的另一個(gè)組件SDK是對(duì)于XPS集成開發(fā)環(huán)境的補(bǔ)充,提供了一個(gè)軟件工程項(xiàng)目的開發(fā)環(huán)境,具有以下功能和特點(diǎn):
    ◆基于Eclipse開源代碼標(biāo)準(zhǔn);
    ◆項(xiàng)目管理;
    ◆功能完善的C/C++代碼編輯和編譯環(huán)境;
    ◆程序創(chuàng)建配置和自動(dòng)化的Makefile生成;
    ◆完美集成的對(duì)嵌入式對(duì)象的無(wú)縫調(diào)試環(huán)境。
    除了提供軟件的開發(fā)環(huán)境外,Xilinx公司還提供了各種IP核的API控制函數(shù),這些API被安放在..\EDK\SW\XilinxProcessorIPLib\drivers目錄下,其中..\表示Xilinx軟件的安裝目錄。通過(guò)閱讀IP核的PDF說(shuō)明文檔和API函數(shù)的C代碼,用戶可以很容易地實(shí)現(xiàn)對(duì)IP核的控制。以通用輸入/輸出端口GPIO為例,在文件夾..\EDK\sw\XilinxProcessorIPLib\drivers\gpio_v2_13_a下存放著與GPIO軟件編程有關(guān)的所有內(nèi)容,其src子目錄下包含各種API函數(shù)的C源碼,doc目錄下包含對(duì)各種API函數(shù)的使用說(shuō)明,而examples目錄下還有針對(duì)GPIO進(jìn)行編程的實(shí)例源碼。一般對(duì)GPIO的操作過(guò)程為:
    e.jpg
    即首先對(duì)GPIO口進(jìn)行初始化,然后設(shè)置其方向?yàn)檩斎牖蚴禽敵觯酉聛?lái)就可以對(duì)GPIO進(jìn)行讀寫。如果該GPIO可以產(chǎn)生中斷,則必須置位其中斷使能位,然后將中斷處理函數(shù)掛接到中斷控制器或直接掛到Microblaze的中斷位上。
2.3 Chipscope調(diào)試
    Chipscope是Xilinx公司的片內(nèi)調(diào)試工具,通過(guò)將邏輯分析器、總線分析器和虛擬I/O小型軟核插入到用戶的設(shè)計(jì)當(dāng)中,可以查看和分析任何內(nèi)部FPGA信號(hào),包括嵌入式處理器總線。信號(hào)被實(shí)時(shí)采集,并從編程接口JTAG傳輸?shù)街鳈C(jī),然后通過(guò)Chipscope Pro邏輯分析器進(jìn)行分析。Chipscope的典型工作模式支持4種Chipscope Core,它們具有不同的功能和適應(yīng)環(huán)境:
    ①Chipscope_icon,用于管理其他的Chipscope core,所有的Chipscope core都是通過(guò)這個(gè)核連接到FPGA的JTAG口;
    ②Chipscope_ila,用于監(jiān)控FPGA內(nèi)部的自定義信號(hào),是使用范圍最廣的監(jiān)控核;
    ③Chipscope_plb46_iba,用于監(jiān)控PLB總線;
    ④Chipscope_vio,用于監(jiān)控FPGA內(nèi)部的實(shí)時(shí)自定義信號(hào)變化。
    Chipscope使用的幾個(gè)主要步驟包括:
    ①調(diào)用Chipscope Pro Core Generator,生成需要使用的Chipscope cote,并加入到工程中;
    ②調(diào)用Chipseope Pro Core Inserter,選擇需要監(jiān)控的信號(hào),設(shè)置采樣和匹配參數(shù),并將配置后的Chipscopecore插入到設(shè)計(jì)中;
    ③調(diào)用Chipscope Pro Configuration,包括ChipscopePro On-Chip Debugging和Chipscope Pro On-Chip Verification,即通過(guò)Chips-cope的分析器工具Analyzer觀察FPGA內(nèi)部信號(hào),并和設(shè)計(jì)者的需求進(jìn)行比較,分析不一致的時(shí)序。

3 為系統(tǒng)添加嵌入式操作系統(tǒng)
    如果系統(tǒng)所涉及的功能比較復(fù)雜,或者系統(tǒng)對(duì)實(shí)時(shí)性要求比較嚴(yán)格的話,在自己的設(shè)計(jì)中加載一個(gè)嵌入式操作系統(tǒng)是一個(gè)很好的選擇。Xilinx FPGA目前支持絕大多數(shù)主流嵌入式操作系統(tǒng),如VxWorks、Embedded Linux、μClinux、μC/OS-II和PetaLogix等,而μC/OS-II因其具有移植方便、執(zhí)行效率高、占用空間小、實(shí)時(shí)性強(qiáng)和可靠性高等優(yōu)點(diǎn),成為Microblaze軟核的首選嵌入式操作系統(tǒng)。μC/OS-II的大部分源代碼是用ANSI C語(yǔ)言編寫的,它的移植只需改寫與處理器有關(guān)的3個(gè)文件即可。

f.jpg


    如圖5所示,修改與處理器相關(guān)的常數(shù)和宏定義頭文件OS_CPU.H、任務(wù)切換過(guò)程中的堆棧處理匯編文件OS_CPU_A.ASM和鉤函數(shù)定義文件OS_CPU_C.C。最簡(jiǎn)便的做法是在μC/OS-II官方網(wǎng)站www.micrium.com上下載an1013.zip壓縮包,里面包含針對(duì)Microblaze修改好的3個(gè)移植文件、μC/OS-II軟件代碼和μC/OS-II應(yīng)用指導(dǎo)文檔,根據(jù)文檔的描述將壓縮包中的相關(guān)文件放到Xilinx的指定安裝目錄下,就可以在S-DK中直接選用μC/OS-II操作系統(tǒng)。此外,壓縮包中還提供了一個(gè)示例程序,用于演示μC/OS-II操作系統(tǒng)是否在Microblaze系統(tǒng)上運(yùn)行正常,極大減輕了用戶在移植μC/OS-II過(guò)程中所面臨的工作量。

4 FPGA的配置
    基于SRAM結(jié)構(gòu)的FPGA每次上電都需要外部的配置芯片對(duì)其進(jìn)行加載,Xilinx的FPGA提供了多種配置方式,如簡(jiǎn)便的Platform Flash PROM主串配置、價(jià)格低廉的SPI配置、大容量的并行配置和JTAG配置等,用戶可以根據(jù)自己的實(shí)際情況進(jìn)行靈活選擇。結(jié)合iMPACT圖形化配置軟件,向片外配置芯片燒寫比特流的工作變得非常簡(jiǎn)單,極大縮短了系統(tǒng)的開發(fā)時(shí)間。除了常規(guī)的配置方式外,Xilinx FPGA還支持將多個(gè)配置文件放在一個(gè)配置芯片中實(shí)現(xiàn)系統(tǒng)的多配置啟動(dòng),或者將用戶數(shù)據(jù)存放在配置芯片中,在系統(tǒng)配置完成后根據(jù)需要隨時(shí)從配置芯片中讀出用戶數(shù)據(jù)。在Xilinx的官方網(wǎng)站www.xinlinx.com上可以下載關(guān)于芯片配置的各種應(yīng)用文檔,使用戶在嵌入式系統(tǒng)開發(fā)過(guò)程中最大限度地發(fā)揮FPGA的靈活性。

結(jié)語(yǔ)
    基于FPGA軟核的嵌入式系統(tǒng)開發(fā)分為硬件平臺(tái)開發(fā)和軟件平臺(tái)開發(fā)兩個(gè)部分,在硬件平臺(tái)開發(fā)過(guò)程中可以根據(jù)需求選擇外設(shè),也可以定制自己的IP,實(shí)現(xiàn)更為靈活的接口和控制功能;在軟件平臺(tái)開發(fā)階段則可以充分利用XPS提供的API制函數(shù),方便快捷地編寫控制程序。FP-GA進(jìn)行嵌入式系統(tǒng)開發(fā)所具備的定制性正受到越來(lái)越多的青睞和關(guān)注,可以預(yù)見(jiàn),未來(lái)使用FPGA進(jìn)行嵌入式產(chǎn)品的開發(fā)必將成為潮流。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲影院污污.| 亚洲精品乱码久久久久久黑人| 国产在线拍揄自揄视频不卡99| 国产精品高清一区二区三区| 欧美欧美天天天天操| 欧美黄色视屏| 免费亚洲婷婷| 久久男女视频| 久久久久免费视频| 久久久久免费视频| 久久久人人人| 久久―日本道色综合久久| 久久精品国产免费观看| 欧美一区二区三区另类 | 亚洲伦理精品| 亚洲裸体俱乐部裸体舞表演av| 亚洲人成网在线播放| 亚洲人线精品午夜| 亚洲精品在线免费观看视频| 日韩一区二区精品| 国产精品99久久久久久久女警| 亚洲婷婷综合久久一本伊一区| 亚洲在线成人| 欧美一区二区在线免费观看| 久久久精品一品道一区| 久久综合五月天婷婷伊人| 美女精品网站| 欧美日韩国产精品一区二区亚洲| 欧美三级乱码| 国产精品视频精品| 国产一区二区按摩在线观看| 国产资源精品在线观看| 在线视频观看日韩| 日韩亚洲欧美在线观看| 亚洲午夜黄色| 欧美一区二区三区久久精品| 亚洲国产精品嫩草影院| 一本久道综合久久精品| 亚洲欧美日韩人成在线播放| 久久国产毛片| 免费久久精品视频| 欧美色另类天堂2015| 国产精品网站在线播放| 狠狠爱www人成狠狠爱综合网| 在线精品国精品国产尤物884a| 亚洲精品乱码久久久久久久久| 一区二区三区日韩| 香蕉久久一区二区不卡无毒影院| 久久精品欧美日韩| 中文一区二区| 久久精品国产亚洲一区二区三区| 欧美成人激情视频免费观看| 国产精品啊啊啊| 一区二区三区在线视频播放| 亚洲精品字幕| 欧美一区二区三区在线看| 亚洲精品一区二区三区蜜桃久| 亚洲综合好骚| 玖玖玖国产精品| 欧美午夜久久久| 激情欧美国产欧美| 一区二区三区欧美视频| 久久国产精品免费一区| 在线一区亚洲| 巨乳诱惑日韩免费av| 欧美视频在线观看 亚洲欧| 国内精品视频在线观看| 一本久道久久久| 久久成人精品无人区| 亚洲亚洲精品在线观看| 久久夜色精品| 国产精品久久久一区二区| 在线看不卡av| 午夜激情综合网| 中国成人黄色视屏| 免费短视频成人日韩| 国产精品自拍小视频| 亚洲巨乳在线| 亚洲激情av在线| 欧美亚洲视频一区二区| 欧美精品久久久久久久久久| 国产主播喷水一区二区| 亚洲网站啪啪| 99精品99| 免费看的黄色欧美网站| 国产日韩精品一区二区浪潮av| 99日韩精品| 亚洲精品国产日韩| 久久久久久久久伊人| 国产精品国产成人国产三级| 亚洲人成在线影院| 亚洲国内在线| 久久女同精品一区二区| 国产女人aaa级久久久级| 99精品福利视频| 亚洲美女中文字幕| 卡一卡二国产精品| 国产亚洲一区在线播放| 亚洲一区二区三区久久| 亚洲色诱最新| 欧美日韩国产一级| 91久久国产精品91久久性色| 亚洲二区在线视频| 久久久久五月天| 国产一区二区剧情av在线| 亚洲免费网址| 亚洲欧美日韩国产精品| 欧美视频免费在线| 日韩视频免费观看高清完整版| 亚洲青色在线| 免费在线观看精品| 一区二区在线视频观看| 久久精品国产91精品亚洲| 久久国产精品第一页| 国产伦精品一区二区三区视频孕妇 | 宅男噜噜噜66一区二区| 一区二区欧美日韩| 欧美日韩成人综合天天影院| 亚洲黄色大片| 日韩一本二本av| 欧美精品一区二区三区在线播放| 亚洲国产日韩一区二区| 亚洲日本成人网| 欧美激情亚洲激情| 亚洲精品影视| 亚洲一区二区三区高清不卡| 国产精品99一区| 亚洲一区在线播放| 欧美一区二区三区啪啪| 国产欧美欧洲在线观看| 先锋影院在线亚洲| 久久―日本道色综合久久| 伊人久久综合97精品| 亚洲国产婷婷| 欧美激情欧美激情在线五月| 亚洲精品欧美精品| 宅男精品视频| 国产精品久久久久久超碰| 午夜久久影院| 久久综合色一综合色88| 亚洲国产高清aⅴ视频| 一二三区精品| 国产精品稀缺呦系列在线| 欧美一区影院| 蜜臀91精品一区二区三区| 亚洲精品美女久久久久| 亚洲网站在线| 国产日韩欧美二区| 久久精品国产2020观看福利| 欧美成人精品一区二区| 日韩亚洲欧美在线观看| 午夜天堂精品久久久久| 国产亚洲福利社区一区| 亚洲精品乱码久久久久久蜜桃麻豆 | 欧美日韩一区二区在线观看视频| 在线亚洲欧美视频| 欧美中文在线字幕| 亚洲第一在线综合在线| 亚洲无亚洲人成网站77777| 国产精品丝袜91| 亚洲国产岛国毛片在线| 欧美日韩精品免费观看视频完整 | 欧美日韩岛国| 亚洲欧美日韩综合aⅴ视频| 鲁大师成人一区二区三区| 日韩视频亚洲视频| 久久www免费人成看片高清 | 午夜视黄欧洲亚洲| 欧美va亚洲va日韩∨a综合色| 亚洲美女精品久久| 久久国产精品久久久久久电车| 亚洲国产欧美国产综合一区| 午夜视频久久久| 91久久国产自产拍夜夜嗨| 亚洲欧美日韩在线高清直播| 伊人精品久久久久7777| 亚洲一区视频在线观看视频| 国产综合久久久久久| 中文av一区特黄| 国产综合久久| 亚洲一区二区动漫| 亚洲成人在线| 欧美一区二区福利在线| 91久久精品一区| 久久成人这里只有精品| 日韩一级精品视频在线观看| 久久一区二区三区国产精品| 中文国产成人精品久久一| 快射av在线播放一区| 亚洲夜间福利| 欧美激情精品久久久久久免费印度 | 国产有码一区二区| 亚洲摸下面视频| 亚洲黄网站黄| 久久久噜噜噜久久中文字免| aa成人免费视频| 免费在线观看一区二区| 西西裸体人体做爰大胆久久久| 欧美日本在线播放| 亚洲第一精品影视|