當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀]基于Microblaze軟核的嵌入式系統(tǒng)設(shè)計

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

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

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


    從圖1可以看出,Microblaze軟核與其他專用集成芯片的硬CPU核在結(jié)構(gòu)上沒有大的差別,但它卻可以通過PLB總線(Processor Local Bus )與EDK軟件包將自帶的各種軟外設(shè)進行按需連接,并且支持用戶自定義IP通過PLB總線(Microblaze從7.30版本開始取消了原有的OPB總線)和FSL(Fast Simple Link)總線與Microblaze軟核連接,從而最大限度地發(fā)揮FPGA設(shè)計的靈活性。
[!--empirenews.page--]
2 基于Microblaze的嵌入式開發(fā)流程
    如圖2所示,基于Microblaze的嵌入式開發(fā)流程主要包括3個步驟:首先要搭建起底層的物理平臺,包括構(gòu)建Microblaze處理器,將所需的外設(shè)通過片內(nèi)總線掛到Microblaze處理器上,并根據(jù)需要開發(fā)用戶自定義的IP核;第二步在構(gòu)建起的硬件平臺上編寫軟件應(yīng)用程序,包括應(yīng)用程序代碼、庫文件以及板級支持包BSP等;最后將硬件的比特流配置文件和軟件的可執(zhí)行重定位文件進行合并形成最終的文件,或者直接下載到FPGA內(nèi)部運行,或者下載到FPGA片外的非易失性存儲器Flash中,在系統(tǒng)配置完成后由Bootloader。程序?qū)lash中的應(yīng)用程序拷貝到片外的DDRRAM中運行。


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

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


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

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


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

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

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

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉