99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

基于FPGA的可重構(gòu)計算平臺設(shè)計

FPGA之家 ? 來源:數(shù)字ICer ? 作者:ligibbs ? 2022-04-13 08:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

緒論

在計算機與電子產(chǎn)品的世界中,我們習(xí)慣于通過兩種截然不同的方法實現(xiàn)計算:硬件以及軟件。計算機硬件,比如專用集成電路(ASIC),為關(guān)鍵任務(wù)提供了運算快速與資源高度優(yōu)化的方案。但是 ASIC 一旦設(shè)計與加工完成,這其中需要花費數(shù)以百萬美元的成本與大量努力,就只能永久性地配置為單一應(yīng)用的解決方案。計算機軟件可以靈活地改變應(yīng)用,可以進(jìn)行大量不同的計算任務(wù)。但是軟件相比 ASIC 硬件實現(xiàn),在性能、硅片面積效率以及功耗等方面的表現(xiàn)有數(shù)量級的差距。

現(xiàn)場可編程邏輯門陣列(FPGA)是一種真正意義上的革命性器件,融合了軟件與硬件各自的優(yōu)勢。FPGA 所實現(xiàn)的電路與專用硬件相似,提供遠(yuǎn)超軟件的功耗、面積以及性能。而且,能夠輕易并低成本地重新編程,以適應(yīng)范圍廣泛的、不同的計算任務(wù)。與專用計算硬件一樣,F(xiàn)PGA 能夠利用空間上分布于整個芯片的資源并行數(shù)以百萬計的運算,相較于軟件所基于的通用處理器,速度運算最高可以快上百倍。然而,與 ASIC 不同的是,這些運算任務(wù)是編程到 FPGA 器件中的,而不是像 ASIC 一樣是在生產(chǎn)中固化的。這意味著基于 FPGA 的系統(tǒng)可以多次編程或者重編程(reprogrammed)。

有時,重編程可用于修復(fù)系統(tǒng)的錯誤行為,或者用于添加新的功能。而有時,F(xiàn)PGA 也可通過重編程轉(zhuǎn)換為一個為新運算任務(wù)量身設(shè)計的計算引擎。利用在運行過程中的可重編程特性,單個 FPGA 芯片甚至能夠?qū)崿F(xiàn)多塊專用芯片的不同功能。

但確實,F(xiàn)PGA 實現(xiàn)軟硬件兩者的優(yōu)勢并不是沒有代價的。FPGA 幾乎具有軟件所有的靈活性優(yōu)勢以及可以使用軟件開發(fā)模型,并且具有接近硬件的高效率優(yōu)勢——但無論是相比軟件還是硬件,F(xiàn)PGA 實現(xiàn)還是有差距。相較于運行軟件的通用微處理器,F(xiàn)PGA 的性能與功耗效率最高可比前者要高上幾個數(shù)量級,但是高效的 FPGA 系統(tǒng)開發(fā)過程要復(fù)雜的多。通常來說,F(xiàn)PGA 只適合于處理以較長數(shù)據(jù)流為輸入的運算,比如信號處理、網(wǎng)絡(luò)以及其他數(shù)據(jù)流應(yīng)用。相較于 ASIC,F(xiàn)PGA 在面積、延遲以及性能方面有 5-25 倍的差距。然而, 單個 ASIC 設(shè)計需要數(shù)個月到幾年的時間,花費幾百萬美元,F(xiàn)PGA 開發(fā)則僅需幾天,成本在幾十至幾百美元之間。(譯注:通常這個說法適用于 FPGA 實現(xiàn)單一功能,而不是整個系統(tǒng),后者的開銷無疑會更高)對于那些不需要極高性能或者效率的系統(tǒng)來說,F(xiàn)PGA 實現(xiàn)是一個更吸引人的方案,因為 FPGA 方案開發(fā)更為簡單,并可通過可重編程特性輕松地修復(fù)缺陷與添加功能。對于許多任務(wù),尤其是對初學(xué)的電子開發(fā)者來說,F(xiàn)PGA 是一種理想的選擇。

基于FPGA的可重構(gòu)計算平臺設(shè)計

圖 I.1 FPGA 內(nèi)部結(jié)構(gòu)抽象;邏輯塊(內(nèi)部大方塊)嵌入在通用布線結(jié)構(gòu)中

圖 I.1展示了 FPGA 的內(nèi)部構(gòu)造。其內(nèi)部由邏輯塊組成,邏輯塊嵌入在一個通用的布線結(jié)構(gòu)中。邏輯塊可實現(xiàn)基礎(chǔ)邏輯門(Gate),大量邏輯塊排列成陣列(Array),這就是 FPGA 中的 ‘G’ 和 ‘A’ 的由來。邏輯塊由處理單元與觸發(fā)器構(gòu)成,分別用于實現(xiàn)組合邏輯與時序邏輯。處理單元是一小塊存儲空間,可實現(xiàn)任意的五輸入或者六輸入的布爾函數(shù)。(譯注:處理單元即為查找表(LUT),輸入數(shù)量取決于具體器件)通用布線結(jié)構(gòu)支持邏輯塊端口間任意的連線,所以各個邏輯塊可以按開發(fā)者設(shè)想的順序連接。

得益于 FPGA 的通用性與靈活性,可以實現(xiàn)非常復(fù)雜的電路。目前的 FPGA 器件可以實現(xiàn)百萬門(譯注:電路中的組合邏輯電路規(guī)模等效于百萬個基礎(chǔ)邏輯門,如與非門)電路,工作頻率達(dá)到上百MHz(譯注:一般在300MHz以下)。為了提高電路的速度以及規(guī)模,F(xiàn)PGA 在邏輯塊陣列的基礎(chǔ)上增加了一些特別的單元,比如大規(guī)模的存儲塊(BRAM)、乘法器、快速進(jìn)位鏈(fast-carry)甚至加入整個微處理器單元。(譯注:還有以太網(wǎng)控制器、DDR控制器以及高速總線的串行收發(fā)器,這些單元都是固化電路,不可編程的)通過這些預(yù)先定義并固化在硅片上的額外單元,單片 FPGA 便有能力構(gòu)成整個完整的系統(tǒng)。

FPGA 中的邏輯以及布線單元的可重構(gòu)由編程節(jié)點控制(programming points),基于反熔絲(antifuse)、SRAM 或者 FLASH 技術(shù),一般來說 SRAM FPGA 對于可重構(gòu)計算是一個適宜的選擇,SRAM 也是目前商用 FPGA 的主流技術(shù)。在 SRAM FPGA 中,每個布線或者邏輯單元的功能都由存儲于 SRAM 介質(zhì)中的內(nèi)容決定。整個器件中的 SRAM 內(nèi)容可通過一個配置文件或者比特流(bitstream)進(jìn)行配置,編程為用戶定義的功能。因此,整個配置過程可以快速地進(jìn)行,并且不需要一些固化步驟。(譯注:SRAM 的寫入擦除均十分快速且易于進(jìn)行)開發(fā)者能夠很方便地在自己的工作臺上對器件進(jìn)行編程。哪怕 FPGA 器件已經(jīng)安裝于終端產(chǎn)品中,編程也十分容易進(jìn)行。這就是為什么 FPGA 會被稱為現(xiàn)場可編程(Field programmable)的原因,并區(qū)別于那些僅在生產(chǎn)時可編程的掩膜可編程(mask programmable)器件,這些器件的可編程只能在產(chǎn)線上通過相應(yīng)設(shè)備進(jìn)行,無法在客戶現(xiàn)場完成。

譯注:Field programmable 指產(chǎn)品出了問題,帶著電腦去用戶現(xiàn)場調(diào)試,干過這事兒都懂:苦差啊。

因為 FPGA 的定制只需要將相應(yīng)的內(nèi)容寫入到片上的存儲中,因此和編譯、然后將程序加載到計算機中運行這一軟件開發(fā)流程相似。FPGA 相對應(yīng)的流程是創(chuàng)建與 FPGA 電路對應(yīng)的比特流、然后將比特流寫入到器件中(可見圖 I.2)。盡管有多種建立 FPGA 電路的方法,可以借助工具將軟件代碼(譯注:HLS)、原理圖或者其他格式的數(shù)據(jù)轉(zhuǎn)換為電路。FPGA 開發(fā)者一般還是通過硬件描述語言(HDL,Hardware description language)來構(gòu)建一個應(yīng)用,比如 Verilog 和 VHDL。由 HDL 描述的電路經(jīng)過一系列步驟轉(zhuǎn)換為可映射至 FPGA 器件的邏輯,這些步驟包括:

邏輯綜合(logic synthesis),將高級語法以及行為級描述,轉(zhuǎn)換為邏輯門網(wǎng)表。

工藝映射(technology mapping ),將若干邏輯門為劃分至一個邏輯組,并將邏輯組高效地映射于 FPGA 的邏輯資源。

布局布線(placement & routing,P&R),將邏輯組指定至器件上某個具體的邏輯單元,并按照用戶定義連接各個邏輯單元之間的端口。

生成比特流(bitstream generation),將布局布線后的信息生成為一個二進(jìn)制文件,用于恰當(dāng)?shù)嘏渲闷骷壿媶卧c布線資源。

在設(shè)計編譯完成后,我們可以通過比特流將 FPGA 器件編程為對應(yīng)于某個計算應(yīng)用的平臺。一般通過主機上的處理器完成比特流的下載工作。或者可以將預(yù)先編程完成的存儲介質(zhì)連接至 FPGA 的配置管腳。無論如何,F(xiàn)PGA 在每次上電之后都需要讀取比特流進(jìn)行配置?;蛘咴谶\行時,用戶可以按需控制器件重新下載比特流進(jìn)行重配置。一旦 FPGA 配置完成,那么就會像一個具有特定功能的數(shù)字電路一樣工作。

因為 FPGA 同時具有軟件靈活性與硬件高性能兩項特性,F(xiàn)PGA 開發(fā)者的思路需要區(qū)別于純粹的軟件或者硬件開發(fā)者。軟件開發(fā)者一般開發(fā)串行執(zhí)行的程序,最大化利用微處理器的性能,來執(zhí)行一系列的指令

譯注:假設(shè)程序員只有一個單獨的處理核,并且目標(biāo)運算的指令數(shù)量固定。軟件程序員的目標(biāo)就是降低相同數(shù)量指令的執(zhí)行時間,換句話說,減少微處理器的等待時間。

但是在高質(zhì)量的 FPGA 設(shè)計開發(fā)中需要考慮空間的并行性,即使用芯片上的多路資源并行計算,盡可能地減少運算整體時間。

譯注:假設(shè)資源是無限的,對于目標(biāo)運算,F(xiàn)PGA開發(fā)者的目標(biāo)是盡可能實現(xiàn)指令的并行,將指令盡可能地分配到多個并行處理單元上。

對于 ASIC 等硬件開發(fā)人員來說,因為會從硬件電路實現(xiàn)出發(fā),所以在硬件設(shè)計中具有一定優(yōu)勢(譯注:在設(shè)計階段實現(xiàn)更好的 PPA,Performance/Power/Area)。但是 FPGA 的靈活特性能夠給開發(fā)者帶來 ASIC 或者其他固化器件設(shè)計中不存在的新機遇。FPGA 設(shè)計可以更快地進(jìn)行新功能的迭代和部署,甚至在現(xiàn)場重新編程。因此,F(xiàn)PGA 設(shè)計不需要 ASIC 開發(fā)那么大規(guī)模的設(shè)計團(tuán)隊,所需的驗證工作也會更少 。此外,F(xiàn)PGA 的動態(tài)可重編程特性使一些設(shè)計成為可能。比如,在運算過程中設(shè)計可以根據(jù)當(dāng)前的外部需求的動態(tài)改變重編程,動態(tài)地優(yōu)化自身的結(jié)構(gòu)?;蛘咄ㄟ^定時對自身功能進(jìn)行重構(gòu),在小型的器件上時分復(fù)用功能,實現(xiàn)規(guī)模更大的設(shè)計。但是有一點,F(xiàn)PGA 相比 ASIC 運行速度要低得多,并且容量也小得多,設(shè)計者需要細(xì)致地對設(shè)計進(jìn)行優(yōu)化,以契合目標(biāo)器件。

基于FPGA的可重構(gòu)計算平臺設(shè)計

圖 I.2 典型的 FPGA 開發(fā)流程示意圖

FPGA 是一項擁有獨立機遇以及挑戰(zhàn)的器件,是一個非常靈活的硬件平臺。本書《可重構(gòu)計算:可重構(gòu)計算的原理與實踐》旨在介紹基于 FPGA 平臺的各個方面,這些方面可能是積極的,也有可能是面臨問題的,本書主要包括 6 個部分:

第一部分介紹硬件器件,包括 FPGA 以及那些為可重構(gòu)專門優(yōu)化的器件(章 1-4)

第二部分關(guān)注可重構(gòu)計算平臺的編程實現(xiàn),包括編程語言以及編程模型(章 5-12)

第三部分關(guān)注 FPGA 開發(fā)流程的軟件,包括圖 I.2 中每個步驟的詳情(章 13-20)

第四部分關(guān)注面向應(yīng)用的 FPGA 設(shè)計,討論范圍包括:如何最高效地利用器件的邏輯資源(章21-26)這部分可以認(rèn)為是 FPGA 開發(fā)者的最后一課了,因為學(xué)完的讀者應(yīng)該已經(jīng)完全掌握了 FPGA 開發(fā)與軟件編程、ASIC 設(shè)計之間的區(qū)別。

第五部分是一系列案例學(xué)習(xí),闡述了可編程器件在各領(lǐng)域的應(yīng)用(章27-35)

第六部分包括了一些進(jìn)階主題,比如可重構(gòu)計算的理論模型以及衡量標(biāo)準(zhǔn)。此外還包括了可重構(gòu)的缺陷、容錯(fault tolerance)等主題以及可重構(gòu)計算與納米技術(shù)之間潛在的協(xié)同作用。(章36-38)

在完成了所有 38 個章節(jié)的閱讀后,讀者會發(fā)現(xiàn) FPGA 當(dāng)前存在一些重大挑戰(zhàn)。但更重要的是,可重構(gòu)器件為計算科學(xué)帶來的獨特機遇與收益將遠(yuǎn)超為了克服這些挑戰(zhàn)所付出的努力。

原文標(biāo)題:可重構(gòu)計算:基于FPGA可重構(gòu)計算的理論與實踐

文章出處:【微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

審核編輯:湯梓紅

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

    關(guān)注

    1646

    文章

    22053

    瀏覽量

    618769
  • 計算
    +關(guān)注

    關(guān)注

    2

    文章

    453

    瀏覽量

    39357
  • 可編程邏輯
    +關(guān)注

    關(guān)注

    7

    文章

    526

    瀏覽量

    44772

原文標(biāo)題:可重構(gòu)計算:基于FPGA可重構(gòu)計算的理論與實踐

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    FPGA重構(gòu)設(shè)計的結(jié)構(gòu)基礎(chǔ)

      重構(gòu)設(shè)計是指利用重用的軟、硬件資源,根據(jù)不同的應(yīng)用需求,靈活地改變自身體系結(jié)構(gòu)的設(shè)計方法。FPGA器件可多次重復(fù)配置邏輯的特性使
    發(fā)表于 05-27 10:22

    FPGA重構(gòu)方式

    需要特定的基于SRAM或FLASH結(jié)構(gòu)的新型FPGA的支持。隨著其產(chǎn)品和技術(shù)的相對成熟,動態(tài)重構(gòu)FPGA的設(shè)計理論和設(shè)計方法已經(jīng)逐漸成為新的研究熱點?! 「鶕?jù)實現(xiàn)重構(gòu)的面積不同,
    發(fā)表于 05-27 10:22

    基于FPGA重構(gòu)系統(tǒng)結(jié)構(gòu)分析

    系統(tǒng)運行過程中動態(tài)產(chǎn)生。重構(gòu)時系統(tǒng)可以邊重構(gòu)邊工作。這種重構(gòu)系統(tǒng)設(shè)計復(fù)雜,但靈活性大,能充分發(fā)揮出硬件運算的效率,較適合高速數(shù)字濾波器、演化計算、定制
    發(fā)表于 05-27 10:24

    【懸賞100塊】如何實現(xiàn)FPGA重構(gòu)計算(Android平臺

    LZ我是大四計算機的,沒錯,我在做畢設(shè),而且?guī)缀跻换I莫展。題目是在Android平臺上實現(xiàn)重構(gòu)計算:簡單說,就是實現(xiàn)應(yīng)用程序把一部分
    發(fā)表于 05-20 20:03

    采用FPGA實現(xiàn)重構(gòu)計算應(yīng)用

    重構(gòu)計算技術(shù)概述隨著20世紀(jì)80年代中期Xilinx公司推出其第一款現(xiàn)場可編程門陣列(FPGA)以來,另一種實現(xiàn)手段——
    發(fā)表于 07-29 06:26

    有什么FPGA重構(gòu)方法可以對EPCS在線編程?

    0 引言重構(gòu)體系結(jié)構(gòu)已經(jīng)成為FPGA系統(tǒng)開發(fā)的研究熱點,并已有許多令人矚目的研究成果及產(chǎn)品應(yīng)用。FPGA
    發(fā)表于 07-31 07:15

    怎么實現(xiàn)基于FPGA重構(gòu)智能儀器的設(shè)計?

    重構(gòu)技術(shù)具有什么優(yōu)點?怎么實現(xiàn)基于FPGA重構(gòu)智能儀器的設(shè)計
    發(fā)表于 05-06 06:44

    怎么實現(xiàn)基于FPGA的動態(tài)重構(gòu)系統(tǒng)設(shè)計?

    本文提出的通過微處理器加FPGA結(jié)合串行菊花鏈實現(xiàn)重構(gòu)的方式,實現(xiàn)了動態(tài)重構(gòu)FPGA結(jié)構(gòu)設(shè)計
    發(fā)表于 05-10 06:22

    基于對EPCS在線編程的FPGA重構(gòu)方法

    基于對EPCS在線編程的FPGA重構(gòu)方法 0 引言    重構(gòu)體系結(jié)構(gòu)已經(jīng)成為
    發(fā)表于 12-08 17:22 ?1639次閱讀

    重構(gòu)計算(Reconfigurable Computing)

    重構(gòu)計算(Reconfigurable Computing) RC:whatwhy RC的體系結(jié)構(gòu) RC的研究項目 RC與DSAG 重構(gòu)
    發(fā)表于 11-03 22:41 ?34次下載

    重構(gòu)技術(shù)分析及動態(tài)重構(gòu)系統(tǒng)設(shè)計

    FPGA的不同配置電路功能,在不同時段執(zhí)行不同的算法,實現(xiàn)了虛擬硬件重構(gòu)計算技術(shù)。這里提出的通過微處理器加FPGA結(jié)合串行菊花鏈實現(xiàn)
    發(fā)表于 11-25 10:20 ?1.4w次閱讀
    <b class='flag-5'>可</b><b class='flag-5'>重構(gòu)</b>技術(shù)分析及動態(tài)<b class='flag-5'>可</b><b class='flag-5'>重構(gòu)</b>系統(tǒng)設(shè)計

    基于FPGA硬件平臺重構(gòu)系統(tǒng)調(diào)度算法詳解

    重構(gòu)系統(tǒng)是指以軟件改變硬件結(jié)構(gòu)以實現(xiàn)具體應(yīng)用的計算平臺,一般由非柔性但可編程的處理器和柔性的以程序控制重構(gòu)的數(shù)字邏輯器件構(gòu)成。目前國內(nèi)外
    發(fā)表于 07-11 11:20 ?2329次閱讀
    基于<b class='flag-5'>FPGA</b>硬件<b class='flag-5'>平臺</b>的<b class='flag-5'>可</b><b class='flag-5'>重構(gòu)</b>系統(tǒng)調(diào)度算法詳解

    重構(gòu)和自適應(yīng)計算:理論與應(yīng)用

    重構(gòu)計算技術(shù)和自適應(yīng)系統(tǒng)作為最有前途的微處理器體系結(jié)構(gòu)之一引起了人們的極大興趣。重構(gòu)系統(tǒng)的起源,也被稱為可編程邏輯器件或現(xiàn)場可編程門陣列
    發(fā)表于 03-28 09:40 ?5次下載

    重構(gòu)計算:基于FPGA重構(gòu)計算的理論與實踐 1.器件架構(gòu) 譯文(一)

    根本上來說,重構(gòu)計算可以最好地發(fā)揮重構(gòu)硬件的潛力。雖然一個完整的系統(tǒng)必須包括編譯軟件和高性能的應(yīng)用程序,但了解
    發(fā)表于 01-26 18:23 ?7次下載
    <b class='flag-5'>可</b><b class='flag-5'>重構(gòu)</b><b class='flag-5'>計算</b>:基于<b class='flag-5'>FPGA</b><b class='flag-5'>可</b><b class='flag-5'>重構(gòu)</b><b class='flag-5'>計算</b>的理論與實踐 1.器件架構(gòu) 譯文(一)

    關(guān)于FPGA重構(gòu)技術(shù)分析

    FPGA上的重構(gòu)技術(shù)根據(jù)FPGA芯片內(nèi)部的不同結(jié)構(gòu)可以分為兩種,分別是動態(tài)重構(gòu)和靜態(tài)
    發(fā)表于 11-03 20:09 ?1126次閱讀