吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

在SoPC可編程片上系統上實現RTOS操作系統的移植

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2019-07-02 08:05 ? 次閱讀

引 言

SoPC可編程片上系統是一種特殊的嵌入式微處理器系統。首先,它是片上系統(SoC),即由單個芯片完成整個系統的主要邏輯功能;其次,它是可編程系統,以FPGA為硬件基礎,具有靈活的設計方式,可裁減、可擴充、可升級,并具備軟硬件系統在線可編程的功能。

IP(Intellectual Property)知識產權是SoC設計中非常重要的內容。資源復用(IP Reuse)是指在集成電路設計過程中,通過繼承、共享或購買所需的部分或全部知識產權內核(IP Core)進行設計、綜合和驗證,從而加速流片設計過程的設計方法。IP技術包含兩個方面的內容:IP核的生成和IP核的重用。本設計中采用VHDL語言,構建一個功能強大的完整DDS模塊,并根據IBM CoreConnect總線連接規范,在DDS模塊外面添加OPB(On?chip Peripheral Bus)片上外設總線接口,封裝為自定義IP,添加到硬件系統中。

對于本設計來說,利用SoPC和IP的優勢是可以利用最少的元器件,創建一個易配置、易擴展、易修改并且易于繼承使用的集成系統。該系統的創建是基于Xilinx公司提供的嵌入式開發工具包EDK(Embedded Development Kit)來實現的。EDK自帶了MicroBlaze軟核和PowerPC硬核微處理器及大量免費IP,有利于構建簡易系統。針對MicroBlaze及PowerPC提供的C語言編譯器,可使系統的功能實現更加簡易。對基于MicroBlaze的系統,MicroBlaze通過OPB總線與外設IP及外部存儲器控制接口相連接,通過LMB(Local Memory Bus)總線與FPGA片上塊存儲器BRAM(Block RAM)相連接,還可以通過EMC(External Memory Control)等存儲器控制IP擴展片外RAM或ROM

1 系統的架構

本設計采用SoPC可編程片上系統的思想,利用Xilinx的Spartan3系列XC3S400 FPGA,通過EDK開發工具包的集成開發環境XPS(Xilinx Platform Studio)完成了FPGA硬件系統設計及基于此硬件系統的軟件開發。圖1是基于EDK的系統開發設計流程圖,設計分為硬件設計和軟件設計兩部分。硬件設計符合基于HDL硬件描述語言的EDA開發流程,是根據硬件系統合理使用總線IP和外設IP,并為各個實例定義地址范圍以及輸出端口時鐘,經過綜合及布線后形成硬件配置文件。軟件設計與傳統的嵌入式軟件開發設計類似,是在硬件設計的基礎上根據處理器所支持的指令集以及編譯環境編寫程序代碼,然后對代碼編譯燒寫及調試。

在SoPC可編程片上系統上實現RTOS操作系統的移植

該設計通過FPGA實現所有數字部分。系統的示意圖如圖2所示。

在SoPC可編程片上系統上實現RTOS操作系統的移植

在SoPC可編程片上系統上實現RTOS操作系統的移植

在SoPC可編程片上系統上實現RTOS操作系統的移植

在FPGA內部,以MicroBlaze為控制核心,以DDS IP為波形發生功能實現核心,同時加入了其他的IP核,諸如調試用的MDM(Microprocessor Debug Module),用于與PC進行通信UART(Universal Asynchronous Receiver & Transmitter)通用異步傳輸模塊,以及LCD顯示和4×4按鍵控制模塊,實現了系統的高度集成。FPGA硬件系統為數字系統產生數字量,外圍電路加上高速數模轉換器DAC902,把波形數據轉換為模擬波形,即實現了完整的可編程片上系統的波形發生器。

2 硬件系統的具體實現

本設計以32位MicroBlaze軟核處理器為系統的核心部分,負責指令的執行。各種IP包括自主編寫的以及EDK自帶的,使用XPS下的ADD/Edit Cores工具,通過相應類型的總線連接到MicroBlaze上。其中UART、LCD、GPIO和自主編寫的DDS的IP都是通過OPB(On?chip Peripheral Bus)片上外設總線連接到處理器上的。程序存儲器RAM則是由FPGA內部的BRAM實現,并通過LMB(Local Memory Bus)本地存儲器總線與MicroBlaze相連接。自主編寫的IP與總線間的接口符合CoreConnect規范,實現了IP間的無縫結合,方便了數據的讀寫及時序控制。圖3給出了在FPGA內部由各種IP組合成的可編程硬件系統。

硬件系統所包含的器件如圖3右部分所示。Microblaze_0是該系統的CPU,其中的debug_module為調試模塊,dlmb_cntlr和 ilmb_cntlr為片上BRAM控制器。Lmb_bram為片上BRAM,它通過LMB總線與 BRAM控制器相連,接受CPU的讀寫訪問。DDFS是為實現DDS編寫的IP模塊。RS232為UART模塊,用于與其他設備的通信以及程序調試。LCD IP負責128×64點陣液晶的顯示控制。 COL和ROW是例化后的GPIO接口,用于連接4×4鍵盤。

2.1 MicroBlaze軟核處理器

MicroBlaze是Xilinx提供的32位微處理器IP核,是哈佛結構的RISC微處理器,有較高的性能。它可以在性價比很高的SpartanIII系列FPGA上實現。EDK為其提供了MBGCC,支持C及C++語言。 MicroBlaze架構如圖4所示。

該處理器含有32個32位的通用寄存器,2個專用寄存器,獨立的32位數據和指令總線,并與IBM的OPB總線完全兼容,具有32位的指令寬度支持三個操作數和兩種尋址模式,以及可選的硬件乘除法及浮點運算單元。

2.2 DDS IP的實現

數字直接頻率合成技術(Direct Digital Frequency Synthesis,簡稱DDS或DDFS)的基本原理是利用采樣定理,通過查表法產生波

形,其基本電路原理如圖5所示。

DDS的頻率及步進容易控制,且合成的頻率取決于累加器及查找表的速度,采用FPGA可以很好的發揮這項優勢,獲得精細的步進及寬頻帶。使用HDL硬件描述語言,可以很方便的描述出DDS的FPGA硬件實例。在基本的DDS模塊上,添加相應的控制寄存器,通過向不同的寄存器內寫入相應的控制字,實現頻率以及幅度的可控性。最后通過IBM CoreConnect技術,在DDS模塊外面添加總線接口,作為自定義IP,成功地將其掛載到系統總線上,便可以方便的對其進行讀寫操作,實現DDS模塊與MicroBlaze的通信。圖6是從用戶邏輯到成為符合IBM CoreConnect技術規范的DDS IP的實現過程。

DDS的VHDL代碼作為子模塊與opb_core_ssp0_ref.vhd模塊共同構成opb_DDS IP Core,其中ipif(IP InterFace )符合IBM CoreConnect規范,負責DDS邏輯與OPB總線之間的通信。在EDK中,通過Create/Import IP工具把opb_DDS添加到系統中,并為其分配地址,建立端口連接,之后就可以使用該IP了。DDS IP配合控制程序可產生各種波形,并對頻率、幅度進行精確的控制。

2.3 其余部分

系統所需要的LCD顯示、DAC控制等模塊,均通過與生成DDS IP相同的方式,編寫為符合IBM CoreConnect總線規范的IP,以供使用。

在硬件系統構建完畢之后,使用Platgen工具生成網表文件和Bitgen工具生成相應的硬件配置文件。若將工程導入到ISE軟件中,可以進行優化設置,還可以將工程導入到其他的綜合工具如Synplify Pro進行實現。IP核的編寫是在ISE中完成的。無論對于整個系統還是一個單獨的IP,都可以利用Modelsim工具進行行為及時序仿真。最后,為此系統描寫XBD(Xilinx Board Description)板級描述文件,通過此文件,EDK可以通過BSB(Base System Builder)模式自動生成基本的硬件系統,并對所添加的端口進行約束,這樣可以實現資源的繼承性使用。

在SoPC可編程片上系統上實現RTOS操作系統的移植

在SoPC可編程片上系統上實現RTOS操作系統的移植

3 軟件系統的實現

EDK提供了免費的GNU C Compiler,可以支持標準C。同時,EDK為多種IP以API的形式提供了驅動函數,有利于程序的開發。XPS所集成的軟件工程管理工具允許在一個硬件平臺上同時開發多個軟件工程。完成軟件代碼的編寫后,使用EDK集成的XMD和GDB調試器對代碼進行仿真和調試,也可以配合ChipScope(片內邏輯分析儀)進行硬件及軟件的協同調試。XMD通過MDM模塊和JTAG口連接目標板上的CPU,GDB可以對程序進行單步調試或斷點設置。針對本設計及應用,編寫了系統控制及液晶顯示程序。程序編譯后生成為elf文件,通過Update bitstream工具把程序同硬件配置文件合成為Download.bit文件,把此文件下載到目標板后,FPGA首先根據硬件配置信息建立硬件系統,并把程序代碼映射到片內BRAM中,最后啟動MicroBlaze,運行程序。

4 總結

本系統基于FPGA,以MicroBlaze為核心,加入具有良好特性的DDS IP,并輔以必要的外圍電路,構成了高度集成化的系統。另外,SoPC系統的柔性配置,使得可以基于此系統擴展片外存儲器,并可以實現RTOS操作系統的移植,以實現更豐富的功能和完成更復雜的任務。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 集成電路
    +關注

    關注

    5392

    文章

    11622

    瀏覽量

    363174
  • 操作系統
    +關注

    關注

    37

    文章

    6892

    瀏覽量

    123742
  • 波形發生器
    +關注

    關注

    3

    文章

    293

    瀏覽量

    31431
收藏 人收藏

    評論

    相關推薦

    手機應用中的可編程系統器件

    可編程系統(PSoC)是由MCU與可編程邏輯和高性能模數轉換功能以及常用固定功能外設組合而成。此外,這些器件還集成有閃存、SRAM及EE
    發表于 12-28 11:26 ?1203次閱讀

    MicroBlaze處理器的PetaLinux操作系統怎么移植

    )作為一種特殊的嵌入式微處理器系統,已逐漸成為一個新興的技術方向。SOPC融合了SoC和FPGA各自的優點,并具備軟硬件系統可編程、可裁減
    發表于 03-16 06:37

    怎么設計一種基于可編程系統的萬年歷?

    本文介紹了一種基于可編程系統SOPC)設計萬年歷的方法。
    發表于 04-27 06:04

    可編程SoC(SoPC),什么是可編程SoC(SoPC)

    可編程SoC(SoPC),什么是可編程SoC(SoPC) SOPC ( System on a Programmable Chip,
    發表于 03-26 17:01 ?2460次閱讀

    SOPC可編程系統課程_第1-3章內容

    SOPC可編程系統課程第一二三章內容
    發表于 12-10 15:20 ?0次下載

    基于可編程系統的變頻逆變電源設計與實現

    基于可編程系統的變頻逆變電源設計與實現
    發表于 03-30 10:59 ?16次下載

    PSoC 4 可編程系統

    PSoC 4 可編程系統
    發表于 10-10 09:47 ?11次下載
    PSoC 4 <b class='flag-5'>可編程</b><b class='flag-5'>片</b><b class='flag-5'>上</b><b class='flag-5'>系統</b>

    基于可編程系統解決方案實現視頻編解碼IP核的設計

    SOPC是Altera公司提出的可編程系統解決方案,它將CPU、存儲器、I/O接口、DSP模塊以及鎖相環的
    發表于 04-14 09:10 ?892次閱讀
    基于<b class='flag-5'>片</b><b class='flag-5'>上</b><b class='flag-5'>可編程</b><b class='flag-5'>系統</b>解決方案<b class='flag-5'>實現</b>視頻編解碼IP核的設計

    可編程系統原理及應用

    可編程系統SOPC是一種靈活、高效的SoC解決方案,而FPGA 是可編程再設計的“萬能”芯片
    發表于 10-01 09:07 ?1940次閱讀

    什么是可編程系統?PSOC和FPGA的區別

    可編程系統(Programmable System-on-Chip,PSoC)是一種集成了數字邏輯、模擬電路和可配置模塊的
    發表于 07-06 15:15 ?4891次閱讀

    基于可編程系統(SOPC)的智能電子血壓計的設計

    電子發燒友網站提供《基于可編程系統(SOPC)的智能電子血壓計的設計.pdf》資料免費下載
    發表于 10-20 11:07 ?5次下載
    基于<b class='flag-5'>可編程</b><b class='flag-5'>片</b><b class='flag-5'>上</b><b class='flag-5'>系統</b>(<b class='flag-5'>SOPC</b>)的智能電子血壓計的設計

    可編程系統是什么

    可編程系統(Programmable System-on-Chip,PSoC)是一種特殊的嵌入式系統,它集成了數字邏輯、模擬電路和可配置
    的頭像 發表于 03-28 14:55 ?735次閱讀

    可編程系統是什么意思

    可編程系統(Programmable System-on-Chip,PSoC)是一種特殊的嵌入式系統。它首先是一個
    的頭像 發表于 03-28 15:09 ?657次閱讀

    可編程系統的基本特征和主要應用

    可編程系統是一種特殊的嵌入式系統:首先它是
    的頭像 發表于 03-28 15:13 ?694次閱讀

    嵌入式可編程系統是什么

    嵌入式可編程系統(Embedded Programmable System-on-Chip,或簡稱EPSoC)是一種特殊的嵌入式系統,它
    的頭像 發表于 03-28 15:33 ?627次閱讀
    乐透乐博彩论坛| 盐城百家乐的玩法技巧和规则| 易胜博娱乐城| 悦榕庄百家乐官网的玩法技巧和规则| 全讯网365| 百家乐官网看图赢钱| 安图县| 全讯网3344555| 24山向吉凶| 真人百家乐官网海立方| 全讯网源码| 百家乐怎样投注好| 百家乐官网网上投注系统| bet365娱乐场| 百家乐空调维修| 百家乐官网平注法到6| 古交市| 大发888官方 黄埔| 百家乐赌场论坛博客| 优惠搏百家乐官网的玩法技巧和规则| 德州扑克的规则| 百家乐澳门百家乐澳门赌场| 百家乐官网平注法是什么| 华夏棋牌注册| 开花财国际| 游艇会百家乐的玩法技巧和规则| 怎样玩百家乐官网才能| 贵港市| 德州扑克过牌| 榆次百家乐的玩法技巧和规则| 百家乐官网网上真钱赌场娱乐网规则| 金球国际娱乐城| 威尼斯人娱乐城在线赌博网站| 阳宅64卦与24山| 百家乐官网水浒传| 网上百家乐官网好玩吗| 博e百| 大发888网页游戏| KTV百家乐的玩法技巧和规则 | 丹东亿酷棋牌下载| 泰山百家乐的玩法技巧和规则|