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

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

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

FPGA的開發(fā)設(shè)計(jì)(1)

電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2018-09-25 07:44 ? 次閱讀

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

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

關(guān)于FPGA

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

FPGA是包含可編程邏輯元件(LE)的集成電路,其可編程單元已經(jīng)內(nèi)置在芯片中,功能十分靈活。例如,他們可以通過編程作為加速器或RAM來(lái)提高系統(tǒng)性能,可以通過編程實(shí)現(xiàn)新的標(biāo)準(zhǔn)或算法,也可以根據(jù)需求添加各種通信接口,所有的這些都有助于降低系統(tǒng)成本并延長(zhǎng)產(chǎn)品生命周期。但這種設(shè)計(jì)的缺點(diǎn)是學(xué)習(xí)曲線非常陡峭,對(duì)于MCU開發(fā)人員來(lái)說(shuō),在剛剛學(xué)習(xí)FPGA的時(shí)候,因IO端口和編碼方式的變化,學(xué)習(xí)起來(lái)還是很困難的。對(duì)于MCU來(lái)說(shuō),在同一時(shí)刻,只能實(shí)現(xiàn)一個(gè)或一組IO的翻轉(zhuǎn),并且所有的IO只有一個(gè)電壓標(biāo)準(zhǔn)。而FPGA的IO是并行處理的,并且不同bank的IO可以遵循不同電壓標(biāo)準(zhǔn)。

幸運(yùn)的是,發(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)試器以及來(lái)自Terasic和Intel的文檔說(shuō)明和指南。

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

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

我發(fā)現(xiàn)自己正處在一個(gè)關(guān)鍵時(shí)刻:我要如何確定我的設(shè)計(jì)需要多少邏輯單元?答案是,這取決于對(duì)IP核的需求,IP核由協(xié)議、功能、代碼以及外部模塊執(zhí)行的特定任務(wù)組成。幾乎所有的FPGA都是由邏輯單元LE,寄存器和I / O bank組成。具體來(lái)說(shuō):

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

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

? I / O bank是一組連接外部電路的輸入/輸出引腳。每個(gè)bank都有一個(gè)獨(dú)立的電壓標(biāo)準(zhǔn),并且有電流大小的限制。

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

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

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

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

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

圖2:FPGA和HPS的接口布局

? HDMI的輸出在FPGA上運(yùn)行,這降低CPU負(fù)載并添加了非本地接口;
? 存在一個(gè)OpenCV加速示例,這是為了體現(xiàn)兩種類型處理器結(jié)合的優(yōu)勢(shì);
? Terasic已經(jīng)實(shí)現(xiàn)了基本的通信功能范例,并且有一個(gè)預(yù)定義的引腳映射列表,該列表定義了電壓和電流限制。

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

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

    關(guān)注

    1624

    文章

    21539

    瀏覽量

    600517
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16802

    瀏覽量

    349361
  • 藍(lán)牙
    +關(guān)注

    關(guān)注

    114

    文章

    5723

    瀏覽量

    169110
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    萊迪思Propel工具套件加速FPGA應(yīng)用開發(fā)

    許多嵌入式系統(tǒng)的開發(fā)者都對(duì)使用基于FPGA的SoC系統(tǒng)感興趣,但是基于傳統(tǒng)HDL硬件描述語(yǔ)言的FPGA開發(fā)工具和復(fù)雜流程往往會(huì)令他們望而卻步。為了解決這一問題,萊迪思的Propel工具
    的頭像 發(fā)表于 08-30 17:23 ?943次閱讀

    FPGA的學(xué)習(xí)筆記---FPGA開發(fā)流程

    與通常的單片機(jī)應(yīng)用開發(fā)不同,FPGA有自己的開發(fā)流程。但具體上怎樣操作,作為初學(xué)者,沒有一點(diǎn)經(jīng)驗(yàn)。網(wǎng)站獎(jiǎng)勵(lì)的清華FPGA需要的開發(fā)軟件,到目
    發(fā)表于 06-23 14:47

    3568F-FPGA案例開發(fā)手冊(cè)

    3568F-FPGA案例開發(fā)手冊(cè)
    的頭像 發(fā)表于 04-16 11:30 ?1163次閱讀
    3568F-<b class='flag-5'>FPGA</b>案例<b class='flag-5'>開發(fā)</b>手冊(cè)

    使用國(guó)產(chǎn)的FPGA開發(fā),需要哪些準(zhǔn)備

    準(zhǔn)備抽時(shí)間學(xué)習(xí)FPGA開發(fā),國(guó)產(chǎn)的,有通用軟件可以用嗎???還是每個(gè)廠家有自己的開發(fā)工具?有沒有類似于Keil那樣的IDE開發(fā)FPGA
    發(fā)表于 04-14 19:14

    fpga開發(fā)需要掌握哪些編程語(yǔ)言

    FPGA(現(xiàn)場(chǎng)可編程門陣列)開發(fā)涉及多種編程語(yǔ)言和技術(shù).
    的頭像 發(fā)表于 03-27 14:34 ?1275次閱讀

    fpga開發(fā)一般用什么軟件

    FPGA(現(xiàn)場(chǎng)可編程門陣列)開發(fā)通常使用一系列專門的軟件工具,這些工具涵蓋了從設(shè)計(jì)、仿真到編譯和調(diào)試的整個(gè)流程。
    的頭像 發(fā)表于 03-15 14:43 ?3085次閱讀

    fpga開發(fā)是什么意思

    FPGA開發(fā)是指利用現(xiàn)場(chǎng)可編程邏輯門陣列(Field Programmable Gate Array,簡(jiǎn)稱FPGA)進(jìn)行硬件設(shè)計(jì)和實(shí)現(xiàn)的過程。FPGA是一種可編程的邏輯器件,它允許用戶
    的頭像 發(fā)表于 03-15 14:28 ?996次閱讀

    fpga開發(fā)板是什么?fpga開發(fā)板有哪些?

    FPGA開發(fā)板是一種基于FPGA(現(xiàn)場(chǎng)可編程門陣列)技術(shù)的開發(fā)平臺(tái),它允許工程師通過編程來(lái)定義和配置FPGA芯片上的邏輯電路,以實(shí)現(xiàn)各種數(shù)字
    的頭像 發(fā)表于 03-14 18:20 ?1663次閱讀

    fpga用的是什么編程語(yǔ)言 fpga用什么語(yǔ)言開發(fā)

    和VHDL都是用于邏輯設(shè)計(jì)的硬件描述語(yǔ)言,并且都已成為IEEE標(biāo)準(zhǔn)。它們能形式化地抽象表示電路的結(jié)構(gòu)和行為,支持邏輯設(shè)計(jì)中層次與領(lǐng)域的描述,具有電路仿真與驗(yàn)證機(jī)制以保證設(shè)計(jì)的正確性,并便于文檔管理和設(shè)計(jì)重用。 fpga用什么語(yǔ)言開發(fā) F
    的頭像 發(fā)表于 03-14 17:09 ?3126次閱讀

    fpga與嵌入式的區(qū)別 嵌入式和fpga開發(fā)有什么關(guān)系

    的,無(wú)法進(jìn)行大規(guī)模的硬件級(jí)別的修改。這意味著FPGA能更靈活地適應(yīng)不同的應(yīng)用場(chǎng)景和變化的需求。 開發(fā)周期:FPGA開發(fā)周期相對(duì)較短,因?yàn)樗梢酝ㄟ^重新編程來(lái)實(shí)現(xiàn)新功能。相比之下,嵌入
    的頭像 發(fā)表于 03-14 17:04 ?6481次閱讀

    fpga開發(fā)板使用教程

    FPGA開發(fā)板的使用教程主要包括以下幾個(gè)關(guān)鍵步驟。
    的頭像 發(fā)表于 03-14 15:50 ?889次閱讀

    Lattice Insights 簡(jiǎn)化FPGA設(shè)計(jì)和開發(fā)

    通過萊迪思Insights簡(jiǎn)化FPGA設(shè)計(jì)和開發(fā) 人工智能和機(jī)器學(xué)習(xí)的持續(xù)發(fā)展正在重塑生活方式和工作場(chǎng)所,現(xiàn)在隨著基礎(chǔ)模型和生成式人工智能(AI)的出現(xiàn),這種重塑更為明顯。數(shù)字化轉(zhuǎn)型的深入會(huì)帶來(lái)
    的頭像 發(fā)表于 02-20 17:22 ?1986次閱讀
    Lattice Insights 簡(jiǎn)化<b class='flag-5'>FPGA</b>設(shè)計(jì)和<b class='flag-5'>開發(fā)</b>

    fpga開發(fā)板與linux開發(fā)板區(qū)別

    FPGA開發(fā)板與Linux開發(fā)板是兩種不同的硬件開發(fā)平臺(tái),各自具有不同的特點(diǎn)和應(yīng)用場(chǎng)景。在以下的文章中,我將詳細(xì)介紹FPGA
    的頭像 發(fā)表于 02-01 17:09 ?1919次閱讀

    RK3568-ARM+FPGA通信案例開發(fā)手冊(cè) (一)

    RK3568-ARM+FPGA通信案例開發(fā)手冊(cè) (一)
    的頭像 發(fā)表于 01-19 10:31 ?929次閱讀
    RK3568-ARM+<b class='flag-5'>FPGA</b>通信案例<b class='flag-5'>開發(fā)</b>手冊(cè) (一)

    【每周一練】小眼睛FPGA1K開發(fā)板硬件平臺(tái)

    36 LD3R 30 LD4G 37 LD4Y 35 LD4R 34 外設(shè):數(shù)碼管 開發(fā)板上的數(shù)碼管為4位8段數(shù)碼管,原理圖。 信號(hào) 功能 FPGA管腳 SEG_DIG1 左側(cè)起第一位數(shù)碼管位選 4
    發(fā)表于 12-19 23:37