針對微控制器應用的采用FPGA的嵌入式應用

發(fā)布時(shí)間:2010-12-6 20:28    發(fā)布者:designer
關(guān)鍵詞: FPGA , 嵌入式應用 , 微控制器
當你打開(kāi)任何智能電子設備(從老式的電視遙控器到全球定位系統),會(huì )發(fā)現幾乎所有的設備都至少采用了一個(gè)微控制器(MCU),很多設備里還會(huì )有多個(gè)微控制器。MCU往往被用于專(zhuān)用的終端產(chǎn)品或設備中,它能夠很好地完成特殊任務(wù)。另一方面,PC的大腦,即微處理器被設計用于實(shí)現許多通用的功能。微控制器可用于降低成本,加固工業(yè)和自動(dòng)化應用,將其嵌入FPGA中時(shí),還可以通過(guò)重新編程迅速改變功能。這種靈活性使得單個(gè)設備可應用于接口標準不同的多個(gè)市場(chǎng)。

在選擇微控制器時(shí)應考慮哪些因素?本文將主要探討采用FPGA的嵌入式應用。不過(guò),選擇任何微控制器的標準本質(zhì)上都是相同的。設計者需要考慮下列因素:終端產(chǎn)品的成本是多少?實(shí)現設計以及存儲控制程序需要多少內存?對輸入輸出的要求?對寄存器的要求?如何與其它器件集成?

傳統的MCU已作為一種非定制的特殊應用標準產(chǎn)品(ASSP)上市,每個(gè)供應商都提供了不同的功能以實(shí)現差異化并迎合市場(chǎng)的各種需求。將FPGA與MCU IP結合可提供比傳統MCU更加靈活的硬件平臺,并有助于實(shí)現前面列出的各項考慮因素。

雖然FPGA比單片MCU昂貴,但其附加的功能(如嵌入式DSP、存儲塊以及靈活的I/O環(huán))可以抵消多個(gè)器件的成本;FPGA提供了更加靈活的存儲結構,一旦數據和指令需要改變,則用戶(hù)可以調整硬件設計來(lái)與之匹配;現代系統中有各種各樣的信號標準和接口協(xié)議,因此對輸入輸出的要求非常嚴格,具有可編程片上緩沖器的FPGA在這個(gè)領(lǐng)域具有獨特優(yōu)勢。例如,Lattice MachXO器件可在各種電平下支持單端LVCMOS/LVTTL和差分LVDS/LVPECL。就寄存器和暫存存儲器資源而言,面向FPGA的MCU IP核所提供的靈活性可改變配置以滿(mǎn)足應用的需求;FPGA是解決器件集成問(wèn)題的理想方案?删幊滩檎冶(LUT)、寄存器和存儲器提供了額外的集成功能,同時(shí)靈活的可編程I/O和專(zhuān)用接口(如雙數據速率(DDR))使其與多個(gè)器件的握手更加容易。

對于許多微控制器應用來(lái)說(shuō),FPGA是非常理想的器件,因為其成本相對低廉,包含大量的嵌入式存儲塊,具有足夠的I/O以應對幾乎所有控制器功能,擁有豐富的寄存器,并支持包括LVCMOS、SSTL及差分LVDS信號傳輸在內的許多I/O標準。

基于閃存的非易失性FPGA

FPGA的制造工藝有多種,包括一次性編程(反熔絲)、易失性(基于SRAM),以及使用基于EE或閃存的非易失性工藝。

表1列出了器件密度、封裝類(lèi)型、可用I/O數、嵌入式和分布式存儲器,以及PLL和嵌入式DSP塊。例如,基于閃存的FPGA采用130nm和90nm工藝。廣泛的選擇范圍使得找出滿(mǎn)足特殊微控制器應用需求的器件更容易一些。

表1:基于閃存的非易失性FPGA產(chǎn)品




微控制器應用實(shí)例

FPGA的靈活性使其適用于許多微控制器應用,以及包含微控制器的更復雜的設計。




圖1:馬達控制應用

像家用電子設備、工業(yè)機器人以及正在增長(cháng)的新興汽車(chē)應用(從GPS、引擎控制到制動(dòng)系統)這些產(chǎn)品都包括圖1、2和3中所示的微控制器。



圖2:導航系統應用



圖3:片上系統應用

在馬達控制應用中,系統發(fā)送和接收來(lái)自微控制器的信息,以調整步進(jìn)電機的速度和方向。來(lái)自系統的輸入告知微控制器增大或減小馬達和控制器的速度,微控制器再依次告知系統馬達的實(shí)時(shí)速度和方向。

導航系統采用微控制器調整系統的圖像顯示器,根據微控制器的輸入提高或降低分辨率。

圖3中的設計展示了一個(gè)片上系統的實(shí)現,包括微控制器、外圍總線(xiàn)和幾種外設功能,以及用于顯示寄存器文檔、暫存存儲器、調用棧、程序計數器、標記和跟蹤列表的硬件跟蹤調試器。同時(shí)還支持微控制器的單步、多步和斷點(diǎn)功能。

片上系統的例子可用來(lái)說(shuō)明設計工具流程和實(shí)現(圖4)。




圖4:片上系統的軟件開(kāi)發(fā)流程及硬件開(kāi)發(fā)流程

微控制器工具和實(shí)現

FPGA微控制器的高效率和緊湊實(shí)現使得2280 LUT MachXO器件可用于說(shuō)明圖3中片上系統的設計。

啟動(dòng)該設計的最簡(jiǎn)單方法是參考“快速啟動(dòng)指南”或項目向導一步一步地設計FPGA。一旦設計項目創(chuàng )建好,下一步就是編寫(xiě)微控制器程序。C或匯編語(yǔ)言是目前最流行的MCU編程語(yǔ)言。圖5顯示了用匯編語(yǔ)言編寫(xiě)的I2C Slave程序塊。





圖5:匯編代碼實(shí)例

必須對微控制器的每個(gè)單元進(jìn)行分析以決定要執行的操作。如代碼實(shí)例所示,I2C寫(xiě)循環(huán)具有5種操作:讀狀態(tài)、寫(xiě)器件地址、寫(xiě)數據、寫(xiě)字地址及返回。請注意代碼都加上了注釋。

雖然匯編語(yǔ)言的規范在各種MCU上大多是一致的,但設計者還是應該查閱供應商的MCU指令集文檔,以了解哪些操作是得到支持的。將匯編源代碼轉換到ROM初始化文件的匯編程序是由命令行驅動(dòng)的,和指令集仿真器一樣,這可以通過(guò)匯編器供應商工具套件獲得或者從網(wǎng)上下載。其中有些工具是作為開(kāi)放源代碼工具提供。例如,LatticeMico8微控制器IP(知識產(chǎn)權)就是作為開(kāi)放源代碼提供,這是實(shí)現嵌入式微控制器的一種獨特有效途徑,可使用戶(hù)擁有最大的靈活性。

嵌入式微控制器IP可以描述整個(gè)設計,或者作為一個(gè)大型設計的一部分與附加代碼結合在一起。尋找一種有助于設計HDL調試和規則檢查的工具是非常明智的。這種工具會(huì )生成該設計的分層結構和互連性的圖形表示。用戶(hù)可以通過(guò)各種圖形和分層結構來(lái)觀(guān)察設計,并利用智能工具交互探測視圖以發(fā)現各種問(wèn)題。




圖6:設計視圖—HDL調試工具

這對于IP集成的維護和復雜FPGAHDL設計的重設計都是很有用的,IP集成需要全面深入的途徑進(jìn)行設計分析和管理。相比傳統仿真器或綜合工具,這種工具可以實(shí)現設計結構的更高層抽象。這有助于創(chuàng )建并管理文檔以及分析設計結構,從而極大地減少了花費在這些項目上的設計時(shí)間。

功能仿真

功能仿真首先創(chuàng )建一個(gè)工作庫,設計被編譯到該工作庫中。仿真器通過(guò)圖形用戶(hù)接口、菜單或命令行使該過(guò)程更加順利。這其中包含了設計文檔和測試向量(test bench)。測試向量實(shí)例化該設計,并將數據加載到輸入端。當運行設計時(shí),測試向量被應用于該設計并顯示結果(通常以波形的形式)進(jìn)行分析。

可利用各種仿真器實(shí)現設計的功能仿真。如果已對整個(gè)系統建模,則可以在系統級進(jìn)行功能仿真,或者對單個(gè)設計單元進(jìn)行仿真以確保正確的語(yǔ)法和功能已在RTL級建模。在這種特殊情況下,有兩家OEM的仿真器可供選擇。Aldec公司的Active-HDL Lattice Designer Edition Lite是一種附加的仿真環(huán)境。它不但提供混合語(yǔ)言VHDLVerilog仿真,還可提供面向FPGA設計的可選設計流程。另一種選擇是Mentor Graphics的ModelSim,它能夠提供VHDL和Verilog語(yǔ)言以及門(mén)級時(shí)序仿真,以對設計

   

進(jìn)行完整的仿真和分析。

綜合

一旦完成功能仿真,下一步就是綜合。綜合可以用獨立的方式完成,或者在供應商的項目導航工具中作為后臺函數運行。綜合獲取設計、進(jìn)行邏輯優(yōu)化并實(shí)現工藝映射。獨立模式綜合的步驟包括建立項目、加入源文件、設置約束、運行設計和分析結果。約束是綜合的實(shí)現選項,例如扇出限制、使用全局置位/復位。屬性則附屬于對象,以控制其依附的特定對象的優(yōu)化、映射和分析。目前可提供兩種領(lǐng)先的綜合工具。

Precision RTL綜合工具是Mentor Graphics公司的重要RTL綜合解決方案。利用Precision RTL界面可以很容易地獲取有用的特性和工具,例如示意圖(RTL/工藝)觀(guān)察器、約束分析器、PreciseTime(用于高級時(shí)序分析)、支持時(shí)序調整(re-timing)等等。這些高級工具有助于改進(jìn)效率并最終優(yōu)化結果。

Synplicity公司的Synplify綜合工具是一款高性能、復雜的邏輯綜合引擎,它利用專(zhuān)有的行為提取綜合技術(shù)(Behavior Extracting Synthesis Technology)提供快速、高效的FPGA和CPLD設計。簡(jiǎn)單的用戶(hù)接口和強大的綜合引擎結合在一起能迅速提供優(yōu)化的結果。

設計實(shí)現

面向映射、布局和布線(xiàn)(MPAR)的設計實(shí)現是利用供應商的工具套件完成。這一工具套件包含用于建立項目的項目導航器(Project Navigator),以及任何FPGA設計所必需的其它工具。在這種情況下,源文件被放置在左邊的窗口,項目處理在右邊的窗口進(jìn)行,但所有的窗口都是可?康,以便用戶(hù)定制任何視圖。Log窗口記錄所有的處理,并列出在處理過(guò)程中產(chǎn)生的全部警告和錯誤信息。用戶(hù)可以通過(guò)下拉菜單或者工具欄中的圖標使用各種工具。圖7為L(cháng)attice公司ispLEVER工具套件中的Project Navigator。




圖7:ispLEVER項目導航器

實(shí)現工具(如Design Planner)可提供I/O和引腳設置、物理和邏輯視圖以及平面布局。TCL/TK腳本可以運行多次迭代以?xún)?yōu)化設計。Project Navigator中包含了靜態(tài)時(shí)序、邏輯調試和功率計算工具。

編程軟件

設計完成后,通過(guò)如圖8所示的編程軟件對硬件進(jìn)行編程。這個(gè)工具將提供直觀(guān)的用戶(hù)界面GUI,可自動(dòng)對系統主板進(jìn)行掃描,選擇必需的編程文件并執行合適的編程算法。通過(guò)供應商提供的SVF文件,該工具支持符合IEEE 1149.1標準的器件編程。對于大多數系統內可編程器件來(lái)說(shuō),該工具還可以生成IEEE 1532 ISC數據文件。





一旦實(shí)現了硬件,設計者將主要關(guān)注運行在嵌入式系統上的軟件。ISS可用來(lái)確定原型功能以及評估對存儲器資源的需求。當硬件集成、端口連接以及查找錯誤均完成之后,通常不需要再更改代碼。

在嵌入式系統的FPGA設計流程中,采用匯編器對更改的程序進(jìn)行再編譯,以建立FPGA片上指令或數據存儲配置的新存儲映像。然后通過(guò)一個(gè)簡(jiǎn)單的ECO將映像再次映射至FPGA的存儲塊。這樣設計者就能跳過(guò)耗時(shí)的綜合以及設計流程的布局布線(xiàn)階段。存儲器初始化工具將利用匯編器創(chuàng )建的新型16進(jìn)制或者2進(jìn)制映像重寫(xiě)存儲器配置。

一旦post-PAR數據庫被修改,則只需通過(guò)新的編程位流或者JEDEC對FPGA進(jìn)行再編程。

能夠控制內部寄存器以及在設計調試階段實(shí)現尋址是非常有用的。為達到這一目標,OrCAstra或JLINK接口等工具(如圖9和圖10所示)提供了功能強大、易于使用的方法。




圖9:JLINK寄存器文件接口GUI




圖10:JLINK Tap控制器接口GUI

本文小結

對于FPGA中的嵌入式微控制器設計而言,一個(gè)完整的系統設計需要一批強大的工具。本文中的例子采用了獨特的開(kāi)放源代碼微控制器匯編器和指令集仿真工具。領(lǐng)先的第三方廠(chǎng)商可提供綜合和仿真工具。用于創(chuàng )建和優(yōu)化設計的重要實(shí)現工具,以及有效的編程和設計調試形成了這一綜合設計套件,它是設計獲得成功的關(guān)鍵。
本文地址:http://selenalain.com/thread-44492-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页