FPGA器件在物聯(lián)網(wǎng)應用程序中發(fā)展
隨著物聯(lián)網(wǎng)應用程序的采用勢頭越來越大,嵌入式開發(fā)社區(qū)面臨的壓力也越來越大,以便兼顧每種設(shè)計的可用計算資源,延遲,成本和大小。由于其實時性,對云連接的關(guān)注也被視為一些發(fā)展的挑戰(zhàn),導致混合“霧”計算方法。提供本地網(wǎng)關(guān)以為霧方法提供內(nèi)部云方面可能需要相當高的計算需求和算法處理。許多負責開發(fā)網(wǎng)關(guān)設(shè)備的設(shè)計人員面臨的挑戰(zhàn)是了解其計算要求的多樣性。某些應用程序,尤其是工業(yè)物聯(lián)網(wǎng)部署中的應用程序,可能涉及相當復雜的電機控制或視覺處理任務。對于這些要求,不僅要求高水平的計算能力,還要求實時確定性行為。雖然高端CPU通常是首選設(shè)備,但還有許多其他設(shè)備正在引起開發(fā)人員的注意。其中之一是現(xiàn)場可編程門陣列(FPGA),由于其硬確定性能力,它正在快速獲得動力。
那些不熟悉FPGA的人在復雜性,成本和功耗方面面臨著許多神話這些設(shè)備的饑餓性。許多開發(fā)人員認為FPGA可能只適用于高度專業(yè)化,高成本的軍事系統(tǒng),但目前的情況已遠離這種情況。在當今的云連接世界中,F(xiàn)PGA的最大應用是在數(shù)據(jù)中心應用中,除了加速搜索功能之外,還使用神經(jīng)網(wǎng)絡深度學習技術(shù)進行圖像識別搜索。
毫無疑問在考慮使用FPGA時,精通構(gòu)建基于微控制器或微處理器的系統(tǒng)的嵌入式開發(fā)人員將會被他們前面的學習曲線所震撼。對大多數(shù)人來說,顯著的差異將從基于軟件的思維過程轉(zhuǎn)變?yōu)橛布?ldquo;門”方法。被認為是設(shè)計定制IC的最接近的東西,它將完全符合您的要求,F(xiàn)PGA本質(zhì)上是通用門和單元的空白畫布,使用硬件描述語言(HDL)編程或連接在一起的結(jié)構(gòu)(圖1)。研究數(shù)字邏輯的電子工程師將非??焖俚馗惺艿紽PGA背后的基本概念,而其他人可能會發(fā)現(xiàn)有關(guān)該主題的在線進修課程非常有用。值得一提的是,使用FPGA的一個很好的介紹是Simon Monk編寫的FPGA編程。
圖1:FPGA器件的功能框圖。
隨著FPGA的使用在廣泛的范圍內(nèi)獲得動力應用程序,有關(guān)它們的信息的可用性。這主要是由領(lǐng)先的FPGA供應商推動的,這些供應商在提供免費的開源軟件工具方面投入了大量資金,以幫助定義和加速設(shè)計流程。在FPGA架構(gòu)中集成MCU以創(chuàng)建FPGA片上系統(tǒng)(SoC)器件進一步有助于管理FPGA并將其集成到最終應用中。極大地簡化了學習和開發(fā)過程,有助于FPGA在更廣泛的應用中的使用,以及開放社區(qū)論壇的發(fā)展。在制造商社區(qū)內(nèi)采用FPGA也有助于提高他們的能力,并為許多人群資助的FPGA評估板項目做出了貢獻,如Mojo和Papilio。 FPGA制造商還通過創(chuàng)建開發(fā)工具包和評估板,努力使設(shè)計更容易獲得,這些開發(fā)工具包和評估板在更廣泛的開源社區(qū)得到了很好的支持。所有這些舉措共同創(chuàng)造了豐富的技術(shù)信息和支持資源,有助于鼓勵設(shè)計人員考慮他們的第一個FPGA設(shè)計。
這種評估板的一個例子是Microsemi的SmartFusion2入門套件,如圖2所示。圖2:SmartFusion2入門套件。
包含Microsemi SmartFusion2的系具有相關(guān)存儲器和時鐘的FPGA SoC器件,以及承載原型區(qū)域,電源轉(zhuǎn)換器和電源管理IC的SmartFusion2基板,入門套件提供了一個完整的平臺,您可以從中開始第一次設(shè)計。
FPGA SoC器件采用32位ARM®Cortex®-M3微控制器內(nèi)核,作為微控制器子系統(tǒng)(MSS)在FPGA架構(gòu)中實現(xiàn)。它支持64 MB DDR內(nèi)存和16 MB閃存,最高可運行142 MHz。圖3顯示了SmartFusion2 SOM的功能框圖。
圖3:SmartFusion2系統(tǒng)級模塊的功能框圖。
SOM還包括一個JTAG接口,看門狗定時器,以太網(wǎng)接口和主機GPIO和串行(I 2 C,CAN,SPI和UART)接口?;宓倪B接和用戶I/O功能的全部范圍如圖4所示.FPGA結(jié)構(gòu)的大小取決于型號,范圍從6060到56520邏輯單元。 SoC代碼運行一個uClinux內(nèi)核,通過提供對所有Linux工具的訪問,包括SSH,F(xiàn)TP和Telnet等網(wǎng)絡實用程序,進一步幫助開發(fā)過程。
圖4:SmartFusion2基板功能框圖。
在編程FPGA SoC時,Microsemi的設(shè)計流程工具Libero可從Microsemi網(wǎng)站免費下載。該套件還包括完整的FPGA SoC和設(shè)置為Libero項目的電路板。 Libero將FPGA設(shè)計的設(shè)計流程與嵌入式應用程序開發(fā)集成在一起,如圖5所示。
圖5:Libero集成了傳統(tǒng)的通過微控制器固件開發(fā)實現(xiàn)FPGA設(shè)計流程。
Libero快速入門指南是使用Libero和整體設(shè)計流程的良好介紹。 Libero的一個關(guān)鍵部分是System Builder向?qū)?圖6),它通過詢問一系列有助于塑造基本系統(tǒng)要求,配置選項的問題來幫助開發(fā)人員進行架構(gòu)設(shè)計過程,并在必要時為架構(gòu)添加額外的外圍設(shè)備。 。
圖6:Libero System Builder向?qū)?- MSS中時鐘功能的示例設(shè)置。
符合傳統(tǒng)開發(fā)實踐,現(xiàn)代解讀使用閃爍的LED設(shè)計項目實施“Hello World”第一個程序。在本教程中完整記錄,該文檔指導工程師完成設(shè)計流程,以實現(xiàn)此基本設(shè)計功能。圖7是本教程的屏幕截圖,重點介紹了輸出信號到指定GPIO引腳的分配,該引腳在基板上連接了一個LED。
圖7:閃爍LED示例中GPIO引腳的分配。
結(jié)論
FPGA在原始計算能力,設(shè)計靈活性和每瓦性能方面為開發(fā)人員提供了很多幫助。以前被視為復雜程序,耗電量大且價格昂貴的設(shè)備,近年來隨著越來越多的商業(yè)應用程序正在利用其廣泛的功能,它們已經(jīng)成熟了很多。人們認識到,在工程師創(chuàng)建復雜的神經(jīng)網(wǎng)絡設(shè)計之前,存在合理的學習曲線。但是,由于本文所述的開發(fā)工具的可用性,采取第一步已變得非常容易。