衡阳派盒市场营销有限公司

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

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

3天內不再提示

FPGA的開發設計(1)

電子設計 ? 作者:電子設計 ? 2018-09-25 07:44 ? 次閱讀

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

最近,我接手一個項目,這個項目不僅要求我使用FPGA,而且還要求我使用功能更強大的ARM。這都是我從未接觸過的領域。在這個系列博客中,我將介紹我是如何將自己現有的MCU知識和經驗運用到FPGA中的。我將從FPGA的優點和缺點入手,并介紹Terasic DE10 Nano開發套件,以及IP核在FPGA設計中的作用。

關于FPGA

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

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

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

規劃FPGA開發

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

我發現自己正處在一個關鍵時刻:我要如何確定我的設計需要多少邏輯單元?答案是,這取決于對IP核的需求,IP核由協議、功能、代碼以及外部模塊執行的特定任務組成。幾乎所有的FPGA都是由邏輯單元LE,寄存器和I / O bank組成。具體來說:

? 邏輯單元LE是可編程的,是FPGA內部的門陣列,每一個邏輯單元都具有一定數量的查找表,觸發器和多路復用器

? 寄存器是一組觸發器,能夠保存數據并實現諸如定時器等功能。

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

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

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

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

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

這是一種多么完美的設計,Cyclone V FPGA的接口可擴展,而且能夠實現加速器的功能,這種設計架構提高了HPS層的處理能力。在這種情況下,正如圖2所示,HDMI接口是非HPS本地接口,因此用作HDMI的MCU資源并不多。

圖2:FPGA和HPS的接口布局

? HDMI的輸出在FPGA上運行,這降低CPU負載并添加了非本地接口;
? 存在一個OpenCV加速示例,這是為了體現兩種類型處理器結合的優勢;
? Terasic已經實現了基本的通信功能范例,并且有一個預定義的引腳映射列表,該列表定義了電壓和電流限制。

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

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

    關注

    1630

    文章

    21796

    瀏覽量

    605998
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17317

    瀏覽量

    352640
  • 藍牙
    +關注

    關注

    114

    文章

    5866

    瀏覽量

    171214
收藏 人收藏

    評論

    相關推薦

    正點原子fpga開發指南

    定制硬件加速的應用。 1. 開發環境搭建 1.1 安裝Xilinx Vivado Vivado是Xilinx提供的綜合設計環境,用于設計、仿真和調試FPGA項目。從Xilinx官網下載并安裝最新版
    的頭像 發表于 11-13 09:35 ?707次閱讀

    正點原子fpga開發板不同型號

    正點原子作為國內領先的FPGA開發板供應商,其產品線覆蓋了從入門級到高端應用的各個領域。這些開發板不僅適用于學術研究,還廣泛應用于工業控制、通信、圖像處理等多個領域。 1. 入門級
    的頭像 發表于 11-13 09:30 ?1245次閱讀

    ARM開發板與FPGA的結合應用

    一、引言 ARM開發板是一種基于ARM架構的嵌入式開發平臺,具有高性能、低功耗的特點。FPGA是一種可編程的數字電路,可以根據需要配置不同的邏輯功能。將ARM開發板與
    的頭像 發表于 11-05 11:42 ?712次閱讀

    萊迪思Propel工具套件加速FPGA應用開發

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

    FPGA的學習筆記---FPGA開發流程

    與通常的單片機應用開發不同,FPGA有自己的開發流程。但具體上怎樣操作,作為初學者,沒有一點經驗。網站獎勵的清華FPGA需要的開發軟件,到目
    發表于 06-23 14:47

    3568F-FPGA案例開發手冊

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

    使用國產的FPGA開發,需要哪些準備

    準備抽時間學習FPGA開發,國產的,有通用軟件可以用嗎啊?還是每個廠家有自己的開發工具?有沒有類似于Keil那樣的IDE開發FPGA
    發表于 04-14 19:14

    fpga開發需要掌握哪些編程語言

    FPGA(現場可編程門陣列)開發涉及多種編程語言和技術.
    的頭像 發表于 03-27 14:34 ?1626次閱讀

    fpga開發一般用什么軟件

    FPGA(現場可編程門陣列)開發通常使用一系列專門的軟件工具,這些工具涵蓋了從設計、仿真到編譯和調試的整個流程。
    的頭像 發表于 03-15 14:43 ?3571次閱讀

    fpga開發是什么意思

    FPGA開發是指利用現場可編程邏輯門陣列(Field Programmable Gate Array,簡稱FPGA)進行硬件設計和實現的過程。FPGA是一種可編程的邏輯器件,它允許用戶
    的頭像 發表于 03-15 14:28 ?1292次閱讀

    fpga開發板是什么?fpga開發板有哪些?

    FPGA開發板是一種基于FPGA(現場可編程門陣列)技術的開發平臺,它允許工程師通過編程來定義和配置FPGA芯片上的邏輯電路,以實現各種數字
    的頭像 發表于 03-14 18:20 ?2214次閱讀

    fpga用的是什么編程語言 fpga用什么語言開發

    和VHDL都是用于邏輯設計的硬件描述語言,并且都已成為IEEE標準。它們能形式化地抽象表示電路的結構和行為,支持邏輯設計中層次與領域的描述,具有電路仿真與驗證機制以保證設計的正確性,并便于文檔管理和設計重用。 fpga用什么語言開發 F
    的頭像 發表于 03-14 17:09 ?3635次閱讀

    fpga與嵌入式的區別 嵌入式和fpga開發有什么關系

    的,無法進行大規模的硬件級別的修改。這意味著FPGA能更靈活地適應不同的應用場景和變化的需求。 開發周期:FPGA開發周期相對較短,因為它可以通過重新編程來實現新功能。相比之下,嵌入
    的頭像 發表于 03-14 17:04 ?7069次閱讀

    fpga開發板使用教程

    FPGA開發板的使用教程主要包括以下幾個關鍵步驟。
    的頭像 發表于 03-14 15:50 ?1255次閱讀

    Lattice Insights 簡化FPGA設計和開發

    通過萊迪思Insights簡化FPGA設計和開發 人工智能和機器學習的持續發展正在重塑生活方式和工作場所,現在隨著基礎模型和生成式人工智能(AI)的出現,這種重塑更為明顯。數字化轉型的深入會帶來
    的頭像 發表于 02-20 17:22 ?2103次閱讀
    Lattice Insights 簡化<b class='flag-5'>FPGA</b>設計和<b class='flag-5'>開發</b>
    青鹏百家乐官网游戏币 | 粤港澳百家乐官网娱乐| 金狮国际| 皇冠在线代理| 桐庐棋牌世界| 飞七棋牌游戏下载| 德州扑克发牌员| 顶级赌场代理| 威尼斯人娱乐城评价| 单机百家乐小游戏| 澳门百家乐网40125| 澳门百家乐赌场文| 威尼斯人娱乐场老品牌| 百家乐棋牌游戏开发| 威尼斯人娱乐场怎么样| 888百家乐的玩法技巧和规则| 在线百家乐游戏软件| 玩百家乐输澳门百家乐现场| 巴黎人百家乐的玩法技巧和规则| 建水县| 百家乐官网视频游戏账号| 电子百家乐官网博彩正网| 百家乐官网的注码技巧| 做生意的好风水| 百家乐棋牌辅助| 郑州百家乐的玩法技巧和规则 | 威尼斯人娱乐城注册| 778棋牌游戏| 百家乐官网怎么开户| 竞咪百家乐官网的玩法技巧和规则 | 莆田棋牌游戏| 视频百家乐官网是真是假| 24山安葬吉凶择日| 富二代百家乐的玩法技巧和规则| 大发888手机版| 青浦区| 云鼎百家乐官网的玩法技巧和规则 | 百家乐试用软件| 大发888网页登录| 百家乐官网桌子轮盘| 百家乐的玩法和技巧|