0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示

關(guān)于從MCU到FPGA的教學(xué)流程

貿(mào)澤電子 ? 來源:djl ? 作者:貿(mào)澤電子 ? 2019-08-20 08:50 ? 次閱讀

我是MCU的長期用戶和狂熱者,特別是對多功能低成本MCU上有著濃厚的興趣,這種MCU模塊能夠通過單芯片實現(xiàn)優(yōu)秀的通信能力。我做過很多有意思的小玩意,包括:MP3播放器、鬧鐘、無線地面濕度控制系統(tǒng)、寵物活動監(jiān)視器、低功耗藍牙姿態(tài)控制等。在這些小項目中,MCU實現(xiàn)信息的收集和傳輸,用起來十分方便。

最近,我接手一個項目,這個項目不僅要求我使用FPGA,而且還要求我使用功能更強大的ARM。這都是我從未接觸過的領(lǐng)域。在這個系列博客中,我將介紹我是如何將自己現(xiàn)有的MCU知識和經(jīng)驗運用到FPGA中的。本文是系列博客的在第一篇,我將從FPGA的優(yōu)點和缺點入手,并介紹Terasic DE10 Nano開發(fā)套件,以及IP核在FPGA設(shè)計中的作用。

關(guān)于FPGA

如果你開發(fā)的項目一直與MCU有關(guān),你一定會發(fā)現(xiàn)MCU的學(xué)習(xí)曲線并不陡峭,所用的開發(fā)工具都可以輕易獲得,開發(fā)和調(diào)試的過程簡單,設(shè)計很容易上手。不過,你也會發(fā)現(xiàn),MCU在處理復(fù)雜事務(wù)、運行速度和接口的多樣性上是很有限的。我個人所經(jīng)歷的項目,由于功能既不復(fù)雜,也沒有重要的處理需求,因此,一直以來MCU是很理想的選擇。

FPGA是包含可編程邏輯元件(LE)的集成電路,其可編程單元已經(jīng)內(nèi)置在芯片中,功能十分靈活。

例如,他們可以通過編程作為加速器或RAM來提高系統(tǒng)性能,可以通過編程實現(xiàn)新的標準或算法,也可以根據(jù)需求添加各種通信接口,所有的這些都有助于降低系統(tǒng)成本并延長產(chǎn)品生命周期。但這種設(shè)計的缺點是學(xué)習(xí)曲線非常陡峭,對于MCU開發(fā)人員來說,在剛剛學(xué)習(xí)FPGA的時候,因IO端口和編碼方式的變化,學(xué)習(xí)起來還是很困難的。對于MCU來說,在同一時刻,只能實現(xiàn)一個或一組IO的翻轉(zhuǎn),并且所有的IO只有一個電壓標準。而FPGA的IO是并行處理的,并且不同bank的IO可以遵循不同電壓標準。

幸運的是,我發(fā)現(xiàn)了Intel Cyclone V SoC DE10 Nano開發(fā)套件。英特爾Cyclone V SoC將FPGA與雙核ARM Cortex A9結(jié)合,允許使用多種方式配置FPGA,開發(fā)套件包含顯示和通信端口、按鈕和開關(guān)、引腳映射和快速配置工具、JTAG調(diào)試器以及來自Terasic和Intel的文檔說明和指南。

規(guī)劃FPGA開發(fā)

在規(guī)劃MCU開發(fā)的時候,我們首先確定需要哪些接口,如SPI,I2C,Wi-Fi等,然后根據(jù)MCU的電壓,引腳數(shù)量,提供的通信接口,支持的庫和價格作出MCU的選型。在使用FPGA的時候,所有的通信接口都是依靠編程來實現(xiàn)的,因此無需考慮通信接口的限制。其限制因素是邏輯單元的數(shù)量,因為所需要的端口,軟核或存儲器單元都是基于這些邏輯單元創(chuàng)建的。因此,需要做權(quán)衡的是,邏輯單元數(shù)目越大,F(xiàn)PGA的能力越強,其成本也越高。雖然FPGA通常具有較高的初始成本,但由于它們可以實現(xiàn)多個芯片組件的功能,并且還能夠節(jié)省大量板上空間,所以綜合來看其成本并不高。

我發(fā)現(xiàn)自己正處在一個關(guān)鍵時刻:我要如何確定我的設(shè)計需要多少邏輯單元?

答案是,這取決于對IP核的需求,IP核由協(xié)議、功能、代碼以及外部模塊執(zhí)行的特定任務(wù)組成。幾乎所有的FPGA都是由邏輯單元LE,寄存器和I / O bank組成。具體來說:

邏輯單元LE是可編程的,是FPGA內(nèi)部的門陣列,每一個邏輯單元都具有一定數(shù)量的查找表,觸發(fā)器和多路復(fù)用器

寄存器是一組觸發(fā)器,能夠保存數(shù)據(jù)并實現(xiàn)諸如定時器等功能。

I / O bank是一組連接外部電路的輸入/輸出引腳。每個bank都有一個獨立的電壓標準,并且有電流大小的限制。

最初我并沒有意識到IP核的重要性,因為我還沒有領(lǐng)會到這樣一個事實:IP核實現(xiàn)了一種能夠代替物理設(shè)備的能力,這些設(shè)備包括MCU、通信控制器或者其他一些我會使用另一個芯片實現(xiàn)的東西。

如圖1所示,Cyclone V 包含F(xiàn)PGA層和HPS層,在DE10 Nano上FPGA層主要用作低延遲的I/O擴展。所有這一切體現(xiàn)了FPGA的另一個設(shè)計特點:它可以在單個芯片上實現(xiàn)多個PCB板上芯片的功能,從而,使得后續(xù)的設(shè)計更加靈活。

關(guān)于從MCU到FPGA的教學(xué)流程

圖1:Terasic DE10 Nano Cyclone V FPGA和硬件處理器系統(tǒng)(HPS)的接口布局。(來源:Terasic)

大部分低級I / O端口通過FPGA進行控制和連接,這就降低了CPU等待低級別I/O端口的時間,同時也允許數(shù)據(jù)在傳遞到HPS之前進行相應(yīng)的處理或調(diào)整。

這是一種多么完美的設(shè)計,Cyclone V FPGA的接口可擴展,而且能夠?qū)崿F(xiàn)加速器的功能,這種設(shè)計架構(gòu)提高了HPS層的處理能力。在這種情況下,正如圖2所示,HDMI接口是非HPS本地接口,因此用作HDMI的MCU資源并不多。

關(guān)于從MCU到FPGA的教學(xué)流程

圖2:FPGA和HPS的接口布局(來源:Terasic)

HDMI的輸出在FPGA上運行,這降低CPU負載并添加了非本地接口;

存在一個OpenCV加速示例,這是為了體現(xiàn)兩種類型處理器結(jié)合的優(yōu)勢;

Terasic已經(jīng)實現(xiàn)了基本的通信功能范例,并且有一個預(yù)定義的引腳映射列表,該列表定義了電壓和電流限制。

總的來說,我很喜歡FPGA,并且對它的擴展和加速功能十分感興趣。不過,我也想知道他們到底有哪些局限性。他們能運行到高的頻率?他們可以支持哪些協(xié)議?他們會消耗多少LE?總的來說,IDE比我用過的其他軟件更簡單,并且包含了令人驚嘆的文檔。硬件似乎非常強大,現(xiàn)在我正在設(shè)計一個項目,這個項目能夠測試板上的硬件限制。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 電流
    +關(guān)注

    關(guān)注

    40

    文章

    6916

    瀏覽量

    132462
  • 加速器
    +關(guān)注

    關(guān)注

    2

    文章

    804

    瀏覽量

    37980
  • 電壓
    +關(guān)注

    關(guān)注

    45

    文章

    5626

    瀏覽量

    116043
收藏 人收藏

    評論

    相關(guān)推薦

    玩轉(zhuǎn)Altera FPGA的關(guān)鍵與FPGA開發(fā)流程分享

    如圖1.9所示。這個流程圖是一個相對比較高等級的FPGA開發(fā)流程項目的提上議程開始,設(shè)計者需要進行FPG
    的頭像 發(fā)表于 10-24 10:43 ?7575次閱讀
    玩轉(zhuǎn)Altera <b class='flag-5'>FPGA</b>的關(guān)鍵與<b class='flag-5'>FPGA</b>開發(fā)<b class='flag-5'>流程</b>分享

    FPGA如何入門高手?

    本文首先介紹了FPGA的特點與FPGA芯片結(jié)構(gòu),其次分析了FPGA與ASIC及CPLD對比,最后介紹了FPGA基礎(chǔ)入門高手相關(guān)知識與
    發(fā)表于 05-30 08:39 ?3.7w次閱讀
    <b class='flag-5'>FPGA</b>如何<b class='flag-5'>從</b>入門<b class='flag-5'>到</b>高手?

    如何利用Tcl在Vivado中實現(xiàn)定制化的FPGA設(shè)計流程

    FPGA 的設(shè)計流程簡單來講,就是源代碼比特流文件的實現(xiàn)過程。大體上跟 IC 設(shè)計流程類似,可以分為前端設(shè)計和后端設(shè)計。
    的頭像 發(fā)表于 04-23 09:08 ?2205次閱讀
    如何利用Tcl在Vivado中實現(xiàn)定制化的<b class='flag-5'>FPGA</b>設(shè)計<b class='flag-5'>流程</b>?

    求助,關(guān)于TRAVEO MCU閃存啟動流程的問題求解

    我有一個關(guān)于 TRAVEO MCU 閃存啟動流程的問題。 Q) 架構(gòu) TRM - 34.3.3 閃存啟動流程,(6)、(8)、(9)、(10)、(11)、(12) 和 (13) 可以在
    發(fā)表于 05-30 06:25

    推薦一本書《FPGA設(shè)計指南器件、工具和流程

    生海,邢聞 譯這本書是關(guān)于FPGA的講解比較全面這本的英文也很淺顯易懂。講的關(guān)于FPGA的一般的知識,基本構(gòu)架,
    發(fā)表于 09-29 10:51

    華為FPGA設(shè)計流程指南

    。l實現(xiàn)在FPGA不同廠家之間以及FPGAASIC的順利移植。l便于新員工快速掌握本部門FPGA的設(shè)計
    發(fā)表于 12-08 14:47

    華為FPGA設(shè)計流程指南

    風(fēng)格良好和完整的文檔。l實現(xiàn)在FPGA不同廠家之間以及FPGAASIC的順利移植。l便于新員工快速掌握本部門FPGA的設(shè)計
    發(fā)表于 12-18 10:45

    MCUFPGA

    MCUFPGA
    發(fā)表于 02-02 07:36

    FPGA 22年配角主角

    最初,FPGA 只是用于膠合邏輯,膠合邏輯算法邏輯再到數(shù)字信號處理、高速串行收發(fā)器和嵌入式處理器,FPGA 真正地配角變成了主角。
    發(fā)表于 11-30 16:25 ?17次下載

    賽靈思FPGA設(shè)計流程看懂FPGA設(shè)計

    不斷 賽靈思FPGA設(shè)計流程看懂FPGA設(shè)計 1.XILINX ISE傳統(tǒng)FPGA設(shè)計流程
    發(fā)表于 02-20 20:32 ?1.6w次閱讀
    <b class='flag-5'>從</b>賽靈思<b class='flag-5'>FPGA</b>設(shè)計<b class='flag-5'>流程</b>看懂<b class='flag-5'>FPGA</b>設(shè)計

    FPGA設(shè)計流程“又臭又長”?eda工具理解超級簡單!

    對于初學(xué)者而言,FPGA的設(shè)計流程是否顯的“又臭又長”呢??嗬嗬,如果真的有這樣的感覺,沒有關(guān)系,下面我就通過對軟體的使用來了解FPGA的設(shè)計流程
    發(fā)表于 06-02 07:17 ?1316次閱讀
    <b class='flag-5'>FPGA</b>設(shè)計<b class='flag-5'>流程</b>“又臭又長”?<b class='flag-5'>從</b>eda工具理解超級簡單!

    關(guān)于Xilinx FPGA的配置流程淺析

    盡管FPGA的配置模式各不相同,但整個配置過程中FPGA的工作流程是一致的,分為三個部分:設(shè)置、加載、啟動。
    發(fā)表于 08-01 15:32 ?4961次閱讀
    <b class='flag-5'>關(guān)于</b>Xilinx <b class='flag-5'>FPGA</b>的配置<b class='flag-5'>流程</b>淺析

    關(guān)于FPGA它的開發(fā)流程是怎樣的

    FPGA的設(shè)計流程就是利用EDA開發(fā)軟件和編程工具對FPGA芯片進行開發(fā)的過程。FPGA的開發(fā)流程一般包括功能定義/器件選型、設(shè)計輸入、功能
    發(fā)表于 11-06 15:17 ?2482次閱讀

    PCB完整的物聯(lián)網(wǎng)項目:關(guān)于MCU的選擇

    看官。博主郵箱:1012630739@qq.com(加的朋友請注明來意)文章目錄PCB完整的物聯(lián)網(wǎng)項目一、關(guān)于MCU的選擇二、一些名詞解釋和功能解釋①②一、
    發(fā)表于 10-28 11:05 ?1次下載
    <b class='flag-5'>從</b>PCB<b class='flag-5'>到</b>完整的物聯(lián)網(wǎng)項目:<b class='flag-5'>關(guān)于</b><b class='flag-5'>MCU</b>的選擇

    fpga原型驗證流程

    FPGA原型驗證流程是確保FPGA(現(xiàn)場可編程門陣列)設(shè)計正確性和功能性的關(guān)鍵步驟。它涵蓋了設(shè)計實現(xiàn)功能驗證的整個過程,是
    的頭像 發(fā)表于 03-15 15:05 ?1659次閱讀