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

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

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

FPGA的基礎(chǔ)知識(shí)以及解決方案

h1654155282.3538 ? 來源:與非網(wǎng) ? 作者:與非網(wǎng) ? 2020-10-11 09:35 ? 次閱讀

最佳處理解決方案常常是由RISC、CISC、圖形處理器FPGA的組合提供,或由FPGA單獨(dú)提供,或以硬處理器內(nèi)核作為部分結(jié)構(gòu)的FPGA提供。然而,許多設(shè)計(jì)人員不熟悉FPGA的功能、其發(fā)展脈絡(luò)以及如何使用FPGA。

設(shè)計(jì)人員一直在尋找系統(tǒng)構(gòu)架的構(gòu)建方法,以提供可滿足所有應(yīng)用需求的最佳計(jì)算解決方案。在許多情況下,這種最佳解決方案常常需要使用現(xiàn)場可編程門陣列(FPGA),但令人遺憾的是,很多設(shè)計(jì)人員對這些器件的功能以及如何進(jìn)行整合并不熟悉。

為何要使用FPGA?

計(jì)算應(yīng)用多種多樣,能滿足應(yīng)用需求的最佳方法可能因應(yīng)用而異,包括現(xiàn)成的微處理器(MPU)和微控制器MCU)、現(xiàn)成的圖形處理單元(GPU)、FPGA以及定制片上系統(tǒng)(SoC)器件。為了確定使用哪一種方法,需要仔細(xì)審視應(yīng)用需求和考慮事項(xiàng)。

例如,當(dāng)研究5G基站等尖端技術(shù)時(shí),設(shè)計(jì)人員需要考慮到基礎(chǔ)標(biāo)準(zhǔn)和協(xié)議仍在不斷發(fā)展中。這意味著設(shè)計(jì)人員需要能夠快速有效地應(yīng)對任何超出控制范圍的規(guī)范變更。

同樣,他們需要能夠靈活地響應(yīng)未來在系統(tǒng)部署到現(xiàn)場后發(fā)生的標(biāo)準(zhǔn)和協(xié)議變更。此外,他們還必須能夠響應(yīng)系統(tǒng)功能中的意外錯(cuò)誤或系統(tǒng)安全性方面的漏洞,修改現(xiàn)有功能或添加新功能,從而延長系統(tǒng)使用壽命。

盡管最高性能通常是由SoC提供,但這種方法既昂貴又耗時(shí)。另外,在芯片結(jié)構(gòu)中實(shí)現(xiàn)的任何算法本質(zhì)上都是“凍結(jié)在硅片中”。鑒于上述考慮,這種固有的不靈活性便成了問題。為了找到高性能和靈活性的最優(yōu)平衡點(diǎn),需要一條替代路線。該路線常常由FPGA、微處理器/微控制器與FPGA的組合或以硬處理器內(nèi)核作為部分結(jié)構(gòu)的FPGA提供。

什么是FPGA?

這是一個(gè)很難回答的問題,因?yàn)閷Σ煌藖碚f,F(xiàn)PGA是不同的東西。而且,F(xiàn)PGA的類型有很多,每種類型都有不同的能力和功能組合。

可編程結(jié)構(gòu)是任何FPGA的核心(即“FPGA-dom”的界定方面),并以可編程邏輯塊陣列的形式呈現(xiàn)(圖1a)。每個(gè)邏輯塊都是多種元件的集合,包括查找表(LUT)、多路復(fù)用器寄存器,所有這些元件都可以進(jìn)行配置(編程)以根據(jù)需要執(zhí)行操作(圖2)。

圖1:最簡單的FPGA僅包含可編程結(jié)構(gòu)和可配置GPIO(a),不同架構(gòu)是在此基本結(jié)構(gòu)上增加其他元件而形成:SRAM塊、PLL和時(shí)鐘管理器(b),DSP塊和SERDES接口(c),以及硬處理器內(nèi)核和外設(shè)(d)。(圖片來源:Clive“Max”Maxfield)

圖2:每個(gè)可編程邏輯塊都是多種元件的集合,包括查找表、多路復(fù)用器和寄存器,所有這些元件都可以進(jìn)行配置(編程)以根據(jù)需要執(zhí)行操作。(圖片來源:Clive“Max”Maxfield)

許多FPGA使用4輸入LUT,可配置為實(shí)現(xiàn)任何4輸入邏輯功能。為了更好地支持某些應(yīng)用采用的寬數(shù)據(jù)路徑,有些FPGA提供6輸入、7輸入甚至8輸入LUT。LUT的輸出直接連接到邏輯塊輸出之一和多路復(fù)用器輸入之一。多路復(fù)用器的另一個(gè)輸入直接連接到邏輯塊輸入(e)。多路復(fù)用器可以配置為選擇其中一個(gè)輸入。

多路復(fù)用器的輸出饋入寄存器輸入。每個(gè)寄存器都可以配置為邊沿觸發(fā)的觸發(fā)器或電平敏感鎖存器(盡管如此,但不建議在FPGA內(nèi)部使用鎖存器形式的異步邏輯)。每個(gè)寄存器的時(shí)鐘(或使能信號(hào))可以配置為高電平有效或低電平有效。同樣,置位/復(fù)位輸入的有效電平也是可配置的。

這些邏輯塊可以被視為漂浮在“可編程互連之海”中的“可編程邏輯之島”。這種互連可配置為將任何邏輯塊的任何輸出連接到其他邏輯塊的任何輸入。同樣,F(xiàn)PGA的主要輸入可以連接到任何邏輯塊的輸入,任何邏輯塊的輸出都可以用來驅(qū)動(dòng)器件的主要輸出。

主要的通用輸入/輸出(GPIO)以組形式呈現(xiàn),每組可配置為支持不同的接口標(biāo)準(zhǔn),例如LVCMOS、LVDS、LVTTL、HSTL或SSTL。另外,輸入的阻抗也是可配置的,輸出的壓擺率也一樣可配置。

FPGA結(jié)構(gòu)進(jìn)一步擴(kuò)展可包括SRAM塊(稱為塊RAM(BRAM))、鎖相環(huán)(PLL)和時(shí)鐘管理器之類的東西(圖1b)。此外,還可以添加數(shù)字信號(hào)處理(DSP)塊(DSP切片)。它們包含可配置的乘法器和可配置的加法器,能夠執(zhí)行乘法累加(MAC)運(yùn)算(圖1c)。

高速SERDES塊是FPGA的另一個(gè)常見特性,能支持千兆位串行接口。必須注意的是,并非所有FPGA都支持上述全部特性。不同F(xiàn)PGA針對不同的市場和應(yīng)用提供不同的特性集合。

FPGA中的可編程結(jié)構(gòu)可用來實(shí)現(xiàn)所需的任何邏輯功能或功能集合,一直到處理器內(nèi)核甚至多個(gè)內(nèi)核。如果這些內(nèi)核是以可編程結(jié)構(gòu)實(shí)現(xiàn)的,則稱其為“軟內(nèi)核”。相較之下,有些FPGA(通常稱為SoCFPGA)包含一個(gè)或多個(gè)“硬內(nèi)核”處理器,其直接在硅片中實(shí)現(xiàn)(圖1d)。這些硬處理器內(nèi)核可能包括浮點(diǎn)單元(FPU)和L1/L2高速緩存。

同樣,外設(shè)接口功能(如CAN、I2C、SPI、UARTUSB)可以實(shí)現(xiàn)為可編程結(jié)構(gòu)中的軟內(nèi)核,但許多FPGA將其作為硬內(nèi)核在硅片中實(shí)現(xiàn)。處理器內(nèi)核、接口功能和可編程結(jié)構(gòu)之間的通信通常利用AMBA和AXI之類的高速總線實(shí)現(xiàn)。

第一批FPGA是由Xilinx于1985年推出上市,僅包含一個(gè)8x8可編程邏輯塊陣列(沒有RAM塊、DSP塊等)。相比之下,當(dāng)今的高端FPGA可以包含數(shù)十萬個(gè)邏輯塊、數(shù)千個(gè)DSP塊和以兆位(Mb)計(jì)的RAM??傮w而言,它們可能包含數(shù)十億個(gè)晶體管,相當(dāng)于數(shù)千萬個(gè)等效門(例如2輸入NAND門)。

備選配置技術(shù)

為了確定邏輯塊的功能和互連的布線,需要借助配置單元,后者可以用0/1(斷開/接通)開關(guān)來形象地表示。這些單元還用于配置GPIO接口標(biāo)準(zhǔn)、輸入阻抗、輸出壓擺率等。根據(jù)具體FPGA,這些配置單元可以采用如下三種技術(shù)之一來實(shí)現(xiàn):

反熔絲:這些配置單元是一次性可編程(OTP)單元,意味著一旦對器件進(jìn)行了編程,就無法撤回。此類器件往往僅限于太空和高安全性應(yīng)用。其銷量很小,因此價(jià)格很高,可謂昂貴的設(shè)計(jì)選擇。

閃存:像基于反熔絲的配置單元一樣,基于閃存的單元也是非易失性的。與反熔絲單元不同,閃存單元可以根據(jù)需要重新編程。閃存配置單元可以承受輻射,因而這些器件適合于太空應(yīng)用(不過要對上部金屬化層和封裝進(jìn)行修改)。

SRAM:采用這種手段時(shí),配置數(shù)據(jù)存儲(chǔ)在外部存儲(chǔ)器中,每次FPGA上電時(shí)都要從存儲(chǔ)器中加載數(shù)據(jù)(或在動(dòng)態(tài)配置情況下,按照指令要求加載數(shù)據(jù))。

對于配置單元基于反熔絲或閃存的FPGA,優(yōu)勢在于它們是“即時(shí)接通”,功耗很小。這些技術(shù)的一個(gè)缺點(diǎn)是,除了用于創(chuàng)建芯片其余部分的基礎(chǔ)CMOS工藝之外,他們還需要其他處理步驟。

對于配置單元基于SRAM技術(shù)的FPGA,優(yōu)勢在于使用與芯片其余部分相同的CMOS工藝制造,并且具有更高的性能,因?yàn)樗ǔ1确慈劢z和閃存技術(shù)領(lǐng)先一代或兩代。主要缺點(diǎn)是SRAM配置單元比(相同技術(shù)節(jié)點(diǎn)的)反熔絲和閃存單元更耗電,并且容易因?yàn)檩椛涠l(fā)生單粒子翻轉(zhuǎn)(SEU)。

長期以來,后一個(gè)缺點(diǎn)導(dǎo)致基于SRAM的FPGA被認(rèn)為不適合用于航空航天應(yīng)用。最近,業(yè)界采用了特殊緩解策略,使得基于SRAM的FPGA與基于閃存的FPGA一同出現(xiàn)在“好奇號(hào)”火星漫游車等系統(tǒng)上。

利用FPGA提供靈活性

FPGA適用于多種多樣的應(yīng)用,特別適合用于實(shí)現(xiàn)智能接口功能、電機(jī)控制、算法加速和高性能計(jì)算(HPC)、圖像和視頻處理、機(jī)器視覺、人工智能AI)、機(jī)器學(xué)習(xí)(ML)、深度學(xué)習(xí)(DL)、雷達(dá)、波束賦形、基站以及通信。

一個(gè)簡單的例子是在其他使用不同接口標(biāo)準(zhǔn)或通信協(xié)議的器件之間提供智能接口。請考慮一個(gè)現(xiàn)有系統(tǒng),其中有一個(gè)應(yīng)用處理器使用舊式接口連接到相機(jī)傳感器和顯示設(shè)備(圖3a)。

圖3:FPGA可用于在其他使用不同接口標(biāo)準(zhǔn)或通信協(xié)議的器件之間提供智能接口,從而延長基于舊式器件的現(xiàn)有設(shè)計(jì)的壽命。(圖片來源:Clive“Max”Maxfield)

現(xiàn)在,假設(shè)系統(tǒng)的創(chuàng)建者希望將相機(jī)傳感器和顯示設(shè)備升級(jí)為更輕、更便宜、功耗更低的現(xiàn)代產(chǎn)品。唯一的問題是,兩個(gè)新外設(shè)或其中之一可能使用現(xiàn)代接口標(biāo)準(zhǔn),而原應(yīng)用處理器(AP)卻無法提供支持。或者,它們可能支持完全不同的通信協(xié)議,例如移動(dòng)行業(yè)處理器接口(MIPI)。在這種情況下,采用支持多種I/O標(biāo)準(zhǔn)的FPGA,再加之以某些軟MIPIIP內(nèi)核,將能提供一條快速、低成本、無風(fēng)險(xiǎn)的升級(jí)路徑(圖3b)。

再舉一個(gè)應(yīng)用例子,考慮一些計(jì)算密集型任務(wù),例如執(zhí)行雷達(dá)系統(tǒng)所需的信號(hào)處理或通信基站中的波束賦形。采用馮諾依曼或哈佛架構(gòu)的常規(guī)處理器非常適合某些任務(wù),但不適合于需要重復(fù)執(zhí)行相同操作序列的任務(wù)。這是因?yàn)檫\(yùn)行單個(gè)線程的單個(gè)處理器內(nèi)核一次只能執(zhí)行一條指令(圖4a)。

圖4:微處理器一次只能(順序地)執(zhí)行一條指令,與此不同的是,F(xiàn)PGA中的多個(gè)功能塊可以同時(shí)(并發(fā)地)執(zhí)行。另外,F(xiàn)PGA能以大規(guī)模并行方式實(shí)現(xiàn)適當(dāng)?shù)乃惴?。(圖片來源:Clive“Max”Maxfield)

相比之下,F(xiàn)PGA中可以同時(shí)執(zhí)行多個(gè)功能,支持以流水線方式完成一系列操作,進(jìn)而實(shí)現(xiàn)更大的吞吐量。同樣,F(xiàn)PGA不像處理器那樣執(zhí)行相同的操作,例如對1,000對數(shù)據(jù)值再執(zhí)行1,000次運(yùn)算,而是在可編程結(jié)構(gòu)中實(shí)例化1,000個(gè)加法器,從而在單個(gè)時(shí)鐘周期中以大規(guī)模并行方式執(zhí)行相同的計(jì)算(圖4b)。

哪些廠商制造FPGA?

這是一幅不斷演變的畫卷。具備最高容量和性能的高端器件有兩家主要制造商,分別是Intel(其收購了Altera)和Xilinx。

Intel和Xilinx提供從低端FPGA到高端SoCFPGA的各種產(chǎn)品。另一家?guī)缀跬耆珜W⒂贔PGA的供應(yīng)商是LatticeSemiconductor,其針對的是中低端應(yīng)用。最后但并非最不重要的一家是MicrochipTechnology(通過收購Actel、AtmelMicrosemi),現(xiàn)在可提供多個(gè)系列的中小型FPGA和低端SoCFPGA類產(chǎn)品。

由于產(chǎn)品系列眾多,每個(gè)系列提供不同的資源、性能、容量和封裝樣式,因此為眼前的任務(wù)選擇最佳器件可能很棘手。

下面是一些例子:Intel器件;LatticeSemiconductor器件;以及Xilinx器件。

如何使用FPGA進(jìn)行設(shè)計(jì)?

傳統(tǒng)的FPGA設(shè)計(jì)方法是工程師使用Verilog或VHDL之類的硬件描述語言來捕獲設(shè)計(jì)意圖。首先可以對這些描述進(jìn)行仿真,以驗(yàn)證其是否符合要求,然后將其傳送給綜合工具,生成用于配置(編程)FPGA的配置文件。

每家FPGA供應(yīng)商要么有自己內(nèi)部開發(fā)的工具鏈,要么提供專業(yè)供應(yīng)商定制的工具版本。無論哪種情況,都可以從FPGA供應(yīng)商網(wǎng)站獲得這些工具。另外,成熟工具套件可能有免費(fèi)或低成本的版本。

為使FPGA更易于為軟件開發(fā)人員所用,一些FPGA供應(yīng)商現(xiàn)在提供高級(jí)綜合(HLS)工具。這些工具會(huì)解析在C、C++或OpenCL中以高級(jí)抽象所捕獲的期望行為的算法描述,并生成輸入以提供給較低級(jí)的綜合引擎。

對于希望入門的設(shè)計(jì)人員,有許多開發(fā)和評(píng)估板可用,每種板提供不同的功能和特性。這里給出三個(gè)例子:DFRobot的DFR0600開發(fā)套件,其具有Xilinx的Zynq-7000SoCFPGA;TerasicInc.的DE10Nano,其具有Intel的CycloneVSoCFPGA;ICE40HX1K-STICK-EVN評(píng)估板,其具有LatticeSemiconductor的低功耗iCE40FPGA。

若設(shè)計(jì)人員計(jì)劃使用基于FPGA的PCIe子卡來加速X86主板上運(yùn)行的應(yīng)用程序,可以關(guān)注AlveoPCIe子卡等產(chǎn)品,也是由Xilinx提供。

總結(jié)

最佳設(shè)計(jì)解決方案常常由FPGA、處理器與FPGA的組合或以硬處理器內(nèi)核作為部分結(jié)構(gòu)的FPGA提供。

FPGA多年來發(fā)展迅速,能夠滿足靈活性、處理速度、功耗等多方面的設(shè)計(jì)需求,適合于廣泛的應(yīng)用。
責(zé)任編輯人:CC

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

    關(guān)注

    1625

    文章

    21624

    瀏覽量

    601245
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    FPGA基礎(chǔ)知識(shí):什么是FPGA,為何需要FPGA

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

    哪有FPGA的verilog編程基礎(chǔ)知識(shí)

    沒接觸過FPGA開發(fā),那個(gè)verilog編程有什么入門基礎(chǔ)知識(shí)學(xué)習(xí)的?
    發(fā)表于 04-29 23:09

    FPGA典型應(yīng)用領(lǐng)域以及解決方案

    FPGA典型應(yīng)用領(lǐng)域以及解決方案
    發(fā)表于 08-20 13:36

    FPGA基礎(chǔ)知識(shí),初學(xué)者必備。

    FPGA基礎(chǔ)知識(shí),初學(xué)者必備。
    發(fā)表于 11-27 15:03

    FPGA基礎(chǔ)知識(shí)點(diǎn)及工作原理是什么

    FPGA基礎(chǔ)知識(shí)點(diǎn)及工作原理是什么
    發(fā)表于 04-30 06:14

    簡化FPGA的電源解決方案

    顯示了 FPGA 開發(fā)套件中典型的 FPGA 電源解決方案。設(shè)計(jì)該方案除了要選擇正確的器件和電感器外,還需要具備一些其它的專業(yè)知識(shí)。例如,
    發(fā)表于 11-23 07:14

    RF和天線的基礎(chǔ)知識(shí)以及實(shí)際的天線設(shè)計(jì)原理

    RF和天線的基礎(chǔ)知識(shí)以及實(shí)際的天線設(shè)計(jì)原理:ISM頻帶及小范圍設(shè)備天線基礎(chǔ):第四章在此將介紹RF和天線的基礎(chǔ)知識(shí)以及實(shí)際的天線設(shè)計(jì)原理。通道損失在通信鏈路中,用于
    發(fā)表于 09-23 19:32 ?106次下載

    FPGA基礎(chǔ)知識(shí)簡介

    FPGA基礎(chǔ)知識(shí)簡介 FPGA技術(shù)的發(fā)展歷史縱觀數(shù)字集成電路的發(fā)展歷史,經(jīng)歷了從電子管、晶體管、小規(guī)模集成電路到大規(guī)模以及超大規(guī)模集成
    發(fā)表于 02-09 08:34 ?1320次閱讀

    FPGA教程之CPLD與FPGA基礎(chǔ)知識(shí)說明

    本文檔詳細(xì)介紹的是FPGA教程之CPLD與FPGA基礎(chǔ)知識(shí)說明主要內(nèi)容包括了:一、復(fù)雜可編程邏輯器件簡介二、CPLD的組成與特點(diǎn)三、FPGA的組成與特點(diǎn)四、CPLD與
    發(fā)表于 02-27 17:09 ?32次下載
    <b class='flag-5'>FPGA</b>教程之CPLD與<b class='flag-5'>FPGA</b>的<b class='flag-5'>基礎(chǔ)知識(shí)</b>說明

    FPGA基礎(chǔ)知識(shí)培訓(xùn)教程免費(fèi)下載

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

    FPGA的入門基礎(chǔ)知識(shí)詳細(xì)說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是FPGA的入門基礎(chǔ)知識(shí)詳細(xì)說明。
    的頭像 發(fā)表于 12-20 10:13 ?9404次閱讀
    <b class='flag-5'>FPGA</b>的入門<b class='flag-5'>基礎(chǔ)知識(shí)</b>詳細(xì)說明

    了解FPGA和CPLD架構(gòu)的基礎(chǔ)知識(shí)資料下載

    電子發(fā)燒友網(wǎng)為你提供了解FPGA和CPLD架構(gòu)的基礎(chǔ)知識(shí)資料下載的電子資料下載,更有其他相關(guān)的電路圖、源代碼、課件教程、中文資料、英文資料、參考設(shè)計(jì)、用戶指南、解決方案等資料,希望可以幫助到廣大的電子工程師們。
    發(fā)表于 04-14 08:41 ?13次下載
    了解<b class='flag-5'>FPGA</b>和CPLD架構(gòu)的<b class='flag-5'>基礎(chǔ)知識(shí)</b>資料下載

    基于FPGA的加速基礎(chǔ)知識(shí)

    電子發(fā)燒友網(wǎng)站提供《基于FPGA的加速基礎(chǔ)知識(shí).pdf》資料免費(fèi)下載
    發(fā)表于 09-18 10:12 ?0次下載
    基于<b class='flag-5'>FPGA</b>的加速<b class='flag-5'>基礎(chǔ)知識(shí)</b>

    FPGA基礎(chǔ)知識(shí)介紹

    電子發(fā)燒友網(wǎng)站提供《FPGA基礎(chǔ)知識(shí)介紹.pdf》資料免費(fèi)下載
    發(fā)表于 02-23 09:45 ?29次下載

    FPGA基礎(chǔ)知識(shí)及設(shè)計(jì)和執(zhí)行FPGA應(yīng)用所需的工具

    本文將首先介紹FPGA基礎(chǔ)知識(shí),包括FPGA的工作原理以及為什么要使用FPGA等,然后討論設(shè)計(jì)和執(zhí)行F
    的頭像 發(fā)表于 11-11 11:29 ?54次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>基礎(chǔ)知識(shí)</b>及設(shè)計(jì)和執(zhí)行<b class='flag-5'>FPGA</b>應(yīng)用所需的工具