色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

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

3天內不再提示

FPGA基礎知識及設計和執行FPGA應用所需的工具

Hack電子 ? 來源:Hack電子 ? 2024-11-11 11:29 ? 次閱讀

引言:本文將首先介紹FPGA的基礎知識,包括FPGA的工作原理以及為什么要使用FPGA等,然后討論設計和執行FPGA應用所需的工具。

1. 概述

現場可編程門陣列(FPGA)器件,其物理屬性可通過使用硬件描述語言 (HDL)來操控,該器件可在軟硬件編程之間架起一座橋梁,使軟硬件工程之間的界限變的更加模糊。

2efe0f30-9053-11ef-a511-92fbcf53809c.png

圖1:Altera Agilex 9、7、5 和 3 FPGA 家族

通常人們認為,FPGA是只能由硬件工程師編程的器件。幸運的是,今時不同往日,現代統一軟件平臺插入通用開發工具,可簡化FPGA的編程過程,軟件開發人員也可了解如何編程FPGA。

2. 什么是FPGA 以及為什么使用 FPGA?

FPGA是一種集成電路(IC),具有可配置邏輯塊(CLB)以及其它用戶可編程并可重新編程的特性。術語“現場可編程”表示FPGA的功能是可調節的,與其它由制造商硬連接的IC不一樣。

FPGA是屬于可編程邏輯器件(PLD)范疇的集成電路(IC)。FPGA技術的基本功能建立在自適應硬件之上,具有制造后可修改的獨特功能。硬件塊陣列(每塊都可配置)可根據需要進行連接,允許為所有應用構建特定域的高效架構。

2f24dfde-9053-11ef-a511-92fbcf53809c.png

圖2:GPU VS FPGA典型特點對比

這種硬件靈活應變性是CPU和GPU所不具備的獨特差異化特性。雖然CPU 靈活性很高,但其底層硬件是固定的。CPU一旦出廠,硬件就無法修改。它依靠軟件來告訴它要針對內存中的哪個數據執行哪項具體運算(算術函數)。硬件必須能夠執行所有可能的運算,稱之為使用軟件指令,通常一次只能執行一條指令。相比之下,FPGA可并行處理海量數據。與CPU相比,自適應硬件的優勢因應用而異,很大程度上取決于計算的性質及其并行化的能力,但與功能可高度并行化的CPU實現方案相比,性能提高20倍的情況并不少見。

2f48f82e-9053-11ef-a511-92fbcf53809c.jpg

圖3:CPU VS GPU典型特點對比

GPU不僅可彌補CPU的一個主要不足之處:并行處理大量數據的能力,而且運行的數據集還很寬。從根本上講,GPU和CPU類似,因為它們有固定的硬件,而且使用軟件指令運行。一條指令可處理1000個以上的數據,因此它們適用于圖形加速、高性能計算、視頻處理以及某些形式的機器學習等特定域。但從根本上講,GPU的基本架構和數據流在制造之前是固定的。

FPGA可幫助編程人員和設計人員更靈活地適應和更新計算架構,從而帶來更能滿足其需求的特定域架構。FPGA并不是什么新事物,但因人工智能等領域的創新速度,其重要性日益凸顯。第一款商用FPGA是AMD于1985年發明的,在目前的FPGA市場上占據60%至70%的份額。

3. FPGA 的用途與應用

今天,數據中心、航空航天工程、國防、人工智能(AI)、工業物聯網 (IoT)、有線及無線網絡以及汽車等眾多行業無處不見其身影。這類器件通常處于用戶需要實時信息的環境中。例如,一款家庭安防攝像頭需要將即時圖像以高分辨率和最小的時延傳給房主的智能設備。隨著消費者對通過手機收發即時信息的依賴程度越來越高,這些期望值只會增加。

此外,FPGA也有助于完成本來可以在軟件中完成的功能加速。這使得 FPGA成了一種非常有幫助的工具,可卸載需要高性能的任務,比如人工智能的深度神經網絡 (DNN) 推斷。

4. FPGA 和硬件加速

FPGA 的架構使其成了硬件加速的高效解決方案。ASIC和GPU等器件使用一種過時的方法在編程和內存之間切換。而且它們也不能適應需要實時信息的應用,因為存儲和檢索任務所需的高功率會導致性能滯后。

2facd6f0-9053-11ef-a511-92fbcf53809c.png

圖3:Xilinx KCU1500 萬兆網絡硬件加速卡

與 ASIC和GPU 不同, FPGA不需要在內存和編程之間切換,這使得存儲和檢索數據的過程更高效。FPGA架構靈活性更高,因此您可以自定義您希望 FPGA 用于特定任務的電源

2fdd1a0e-9053-11ef-a511-92fbcf53809c.png

圖4:支持PCIe Gen4 ×16的VectorPath加速卡

這種靈活性有助于將能耗極高的任務從傳統CPU或其它器件轉移到一個或幾個FPGA上。許多FPGA都可以重新編程,因此您可以對硬件加速系統輕松進行升級和調整。

5. FPGA編程是怎樣進行的?

FPGA編程可根據您希望器件具備的功能,使用HDL來操控電路。該過程不同于對GPU或CPU的編程,因為您編寫的程序將不會按順序運行。相反,您可使用HDL來創建電路,并根據您想要的功能對硬件進行物理修改。

300988c8-9053-11ef-a511-92fbcf53809c.jpg

圖5:HDL綜合成門電路

這個過程類似于軟件編程,其中您編寫的代碼將轉換成二進制文件并加載在FPGA上。但結果是HDL對硬件進行了物理修改,而不是通過嚴格優化器件來運行軟件。

FPGA上的一個程序將邏輯門和內存塊等較低層次的元件組裝在一起,其可協同工作,共同完成一項任務。因為您是從頭開始操控硬件的,因此FPGA將帶來很高的靈活性。您可以根據任務調整內存或功耗等基本功能。

6. FPGA編程語言

FPGA似乎主要服務于芯片設計人員,而不是專門從事軟件開發的工程師。畢竟,大多數用于編寫FPGA代碼的HDL都是較低級的語言,硬件工程師可能比軟件工程師更熟悉這些語言。但有些HDL與通用軟件語言的類似程度遠比您想象的高。

3029b2d8-9053-11ef-a511-92fbcf53809c.png

當我們將“編程”一詞用于FPGA時,因為程序的設置方式和執行方式的緣故,它與創建軟件并不完全相同。但使用該術語確實包含了編寫并執行FPGA代碼與創建軟件算法的過程相似的理念。最初的思維方式是,FPGA只能由電路設計硬件工程師來編程。

在統一軟件平臺的幫助下,軟件開發人員無需掌握HDL技術,便可使用他們喜歡的語言來對FPGA進行編程。這不僅可消除必須轉而采用全新編程語言的壓力,而且還可幫助軟件開發人員將工作重心從硬件轉向概念。這些平臺的工作原理本質上是將較高級的語言翻譯成較低級的語言,以便FPGA執行所需的功能。能夠與統一軟件平臺一起用于FPGA編程的語言包括:

TensorFlow 和 Pytorch 等 AI 框架:有了Vitis AI, AI 科學家現在可直接從 TensorFlow 或 Pytorch 獲取其訓練有素的深度學習模型,并針對FPGA 加速進行編譯。這不僅無需對低層次硬件進行編程,而且還可在幾分鐘內實現瞬間編譯,從而能夠與使用CPU和GPU的典型軟件編譯體驗相媲美。

C 和 C++:在高層次綜合(HLS)的幫助下,基于C語言的語言現在可用于 FPGA 設計。具體來說,AMD Vivado HLS編譯器提供的編程環境能夠與標準處理器及專用處理器共享關鍵技術,用于優化C語言程序和C++程序。這允許軟件工程師優化代碼,無需掃清有限內存空間或計算資源的路障。

Python:設計人員可使用Python語言和庫來創建高性能應用并通過PYNQ編程FPGA。PYNQ是AMD的一個開源項目,可簡化AMD平臺的使用。此外,現在主要用于FPGA編程的,也有大量主流HDL。下面簡單介紹一下其名稱和主要屬性:

Lucid:這種語言是專門針對FPGA設計的,可彌補Verilog等一些更早語言的不足。

VHDL:超高速集成電路 (VHSIC)硬件描述語言的首字母縮寫,該語言最早出現在20世紀80年代,主要基于Ada和Pascal。

Verilog:Verilog是有史以來創建的第一款HDL,今天主要用于測試分析與驗證。該語言的內核基于C語言。

7. 如何編程FPGA

雖然FPGA只存在于硬件工程師領域,但AI科學家和軟件編程人員現在可以訪問新平臺,讓該過程感覺就像編寫軟件程序一樣。有了正確的工具,您將找到一個為FPGA編程的解決方案,在當前的軟硬件知識層面滿足您的需求。

如果您習慣了針對GPU進行編程,即使結果有點不同,編寫FPGA代碼的過程也會感覺非常相似。FPGA編程包括編寫代碼、根據需要將該程序翻譯成較低級的語言,以及將該程序轉換為二進制文件。然后,您將向FPGA提供程序,操作就像讓GPU讀取一款用C++編寫的軟件一樣。就是這么簡單。

但為了優化該編程過程,您需要訪問正確的平臺。幸運的是AMD擁有完美的解決方案,這是一套開創性的工具,可在FPGA編程過程的每個環節為軟件開發人員提供幫助。

8. 使用 Vitis 統一軟件平臺簡化 FPGA 編程

Vitis統一軟件平臺是一款領先應用,可為軟件工程師、數據科學家以及 AI開發人員優化FPGA編程過程。它包括一個針對AMD FPGA和ACAP硬件平臺優化的擴展性開源庫,以及一個內核開發套件,有了該套件,沒有豐富的硬件經驗,也可無縫構建加速應用。

此外,Vitis還包括Vitis Model Composer,其在MATLABSimulink中提供了一個工具套件。它可優化設計并測試新應用的過程。

9. 如何使用 Vitis 軟件針對應用加速啟動設計

Vitis分四個步驟幫助您針對邊緣、本地或云端的數據及計算密集型應用設計加速器:

(1)確定應用中需要加速的性能關鍵部分。

(2)使用Vitis加速庫設計加速器,也可使用C、C++、OpenCL或RTL開發自己的加速器。

(3)構建、分析和調試,以驗證功能正確性并確保符合性能目標。

(4)在邊緣、本地或云端的AMD平臺上部署加速應用。

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

    關注

    1638

    文章

    21866

    瀏覽量

    610462
  • HDL
    HDL
    +關注

    關注

    8

    文章

    330

    瀏覽量

    47661
  • 現場可編程門陣列

    關注

    1

    文章

    20

    瀏覽量

    4810

原文標題:FPGA編程:原理概述

文章出處:【微信號:Hack電子,微信公眾號:Hack電子】歡迎添加關注!文章轉載請注明出處。

收藏 0人收藏

    評論

    相關推薦

    FPGA基礎知識:什么是FPGA,為何需要FPGA

    、其發展脈絡以及如何使用 FPGA。本系列文章由 5 部分組成,這是第 1 部分,將討論 FPGA基礎知識,并介紹主要提供商的一些示例解決方案。第 2 部分、第 3 部分、第 4 部分和第 5
    的頭像 發表于 01-13 14:04 ?1.3w次閱讀

    哪有FPGA的verilog編程基礎知識

    沒接觸過FPGA開發,那個verilog編程有什么入門基礎知識學習的?
    發表于 04-29 23:09

    FPGA基礎知識,初學者必備。

    FPGA基礎知識,初學者必備。
    發表于 11-27 15:03

    FPGA基礎知識點及工作原理是什么

    FPGA基礎知識點及工作原理是什么
    發表于 04-30 06:14

    FPGA基礎知識簡介

    FPGA基礎知識簡介 FPGA技術的發展歷史縱觀數字集成電路的發展歷史,經歷了從電子管、晶體管、小規模集成電路到大規模以及超大規模集成
    發表于 02-09 08:34 ?1347次閱讀

    新手的FPGA學習必備的四個基礎知識詳解

    FPGA 已成為現今的技術熱點之一,無論學生還是工程師都希望跨進FPGA的大門。網絡上各種開發板、培訓班更是多如牛毛,仿佛在告訴你不懂FPGA你就OUT啦。那么我們要玩轉FPGA必須具
    發表于 01-12 05:06 ?4.4w次閱讀

    FPGA教程之CPLD與FPGA基礎知識說明

    本文檔詳細介紹的是FPGA教程之CPLD與FPGA基礎知識說明主要內容包括了:一、復雜可編程邏輯器件簡介二、CPLD的組成與特點三、FPGA的組成與特點四、CPLD與
    發表于 02-27 17:09 ?37次下載
    <b class='flag-5'>FPGA</b>教程之CPLD與<b class='flag-5'>FPGA</b>的<b class='flag-5'>基礎知識</b>說明

    FPGA基礎知識培訓教程免費下載

    本文檔的主要人詳細介紹的是FPGA基礎知識培訓教程免費下載包括了:1.什么是FPGA ,2.Actel FPGA整體概述 3.Actel FPGA
    發表于 04-23 08:00 ?8次下載
    <b class='flag-5'>FPGA</b><b class='flag-5'>基礎知識</b>培訓教程免費下載

    FPGA硬件基礎知識FPGA的邏輯單元工程文件免費下載

    本文檔的主要內容詳細介紹的是FPGA硬件基礎知識FPGA的邏輯單元工程文件免費下載。
    發表于 12-10 15:00 ?16次下載

    FPGA的入門基礎知識詳細說明

    本文檔的主要內容詳細介紹的是FPGA的入門基礎知識詳細說明。
    的頭像 發表于 12-20 10:13 ?9786次閱讀
    <b class='flag-5'>FPGA</b>的入門<b class='flag-5'>基礎知識</b>詳細說明

    FPGA基礎知識----FPGA 簡介

    可以通過編程來改變內部結構的芯片。FPGA 功能實現:需要通過編程即設計硬件描述語言,經過 EDA 工具
    發表于 11-30 17:21 ?44次下載
    <b class='flag-5'>FPGA</b><b class='flag-5'>基礎知識</b>----<b class='flag-5'>FPGA</b> 簡介

    如何學習FPGAFPGA學習必備的基礎知識

    FPGA已成為現今的技術熱點之一,無論學生還是工程師都希望跨進FPGA的大門。網絡上各種開發板、培訓班更是多如牛毛,仿佛在告訴你不懂FPGA你就OUT啦。那么我們要玩轉FPGA必須具備
    的頭像 發表于 10-27 17:43 ?932次閱讀

    基于FPGA的加速基礎知識

    電子發燒友網站提供《基于FPGA的加速基礎知識.pdf》資料免費下載
    發表于 09-18 10:12 ?0次下載
    基于<b class='flag-5'>FPGA</b>的加速<b class='flag-5'>基礎知識</b>

    FPGA基礎知識介紹

    電子發燒友網站提供《FPGA基礎知識介紹.pdf》資料免費下載
    發表于 02-23 09:45 ?33次下載

    玩轉FPGA必備的基礎知識

    FPGA已成為現今的技術熱點之一,無論學生還是工程師都希望跨進FPGA的大門。那么我們要玩轉FPGA必須具備哪些基礎知識呢?下面我們慢慢道來。 (一) 要了解什么是
    的頭像 發表于 11-28 10:24 ?599次閱讀
    主站蜘蛛池模板: 亚洲 日韩 欧美 国产专区 | 欧美日韩免费播放一区二区 | 久久88综合 | 中文字幕精品无码一区二区 | 97精品免费视频 | 97无码欧美熟妇人妻蜜 | 国产精品色无码AV在线观看 | 亚洲AV天堂无码麻豆电影 | 爱穿丝袜的麻麻3d漫画acg | 99影视久久电影网久久看影院 | 成人免费毛片观看 | 樱桃视频影院在线播放 | 大咪咪dvd | 日韩亚洲不卡在线视频 | 小黄文纯肉污到你湿 | 小SB几天没做SAO死了H | 1000视频在线播放 | 香蕉久久夜色精品国产小说 | 日本美女bb| 在教室伦流澡到高潮HNP视频 | 野花香在线观看免费高清播放视频 | 亚洲高清视频在线观看 | 亚洲一区电影在线观看 | 日本性hd | 无人影院在线播放视频 | 动漫H片在线观看播放免费 动漫H片在线播放免费高清 | 精品日产1区2卡三卡麻豆 | 日日天干夜夜狠狠爱 | 在线观看国产高清免费不卡 | 伊人久久亚洲综合天堂 | 青青青国产依人精品视频 | 伊人久久中文字幕久久cm | 免费看亚洲 | 色欲久久精品AV无码 | 琪琪热热色原日韩在线 | 狠狠色噜噜狠狠狠狠米奇777 | 脱女学小内内摸出水网站免费 | 女人夜夜春 | 亚洲AV天堂无码麻豆电影 | 熟妇无码乱子成人精品 | 一本久道久久综合婷婷五月 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品