<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
"); //-->

博客專(zhuān)欄

EEPW首頁(yè) > 博客 > 科普 | 全面解析FPGA基礎知識

科普 | 全面解析FPGA基礎知識

發(fā)布人:旺材芯片 時(shí)間:2021-07-17 來(lái)源:工程師 發(fā)布文章

FPGA (Field Programmable Gate Array)即現場(chǎng)可編程門(mén)陣列。它是在PLA、PAL、GAL、CPLD等可編程器件的基礎上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專(zhuān)用集成電路(ASIC)領(lǐng)域中的一種半定制電路,既解決了定制電路的不足,又克服了原有可編程器件門(mén)電路數有限的缺點(diǎn)。


1、 FPGA簡(jiǎn)介


FPGA普遍用于實(shí)現數字電路模塊,用戶(hù)可對FPGA內部的邏輯模塊和I/O模塊重新配置,以實(shí)現用戶(hù)的需求。它還具有靜態(tài)可重復編程和動(dòng)態(tài)在系統重構的特性,使得硬件的功能可以像軟件一樣通過(guò)編程來(lái)修改??梢院敛豢鋸埖闹v,FPGA能完成任何數字器件的功能,下至簡(jiǎn)單的74電路,上至高性能CPU,都可以用FPGA來(lái)實(shí)現。FPGA如同一張白紙或是一堆積木,工程師可以通過(guò)傳統的原理圖輸入法,或是硬件描述語(yǔ)言自由的設計一個(gè)數字系統。 


2、FPGA發(fā)展史


FPGA的發(fā)展歷史如下圖所示。相對于PROM、PAL/GAL、CPLD而言,FPGA規模更大性能更高。



FPGA芯片主流生產(chǎn)廠(chǎng)家包括Xilinx、Altera、Lattice、Microsemi,其中前兩家的市場(chǎng)份額合計達到88%。目前FPGA主流廠(chǎng)商全部為美國廠(chǎng)商。國產(chǎn)FPGA由于研發(fā)起步較美國晚至少20年,目前還處于成長(cháng)期,僅限于低端,在通信市場(chǎng)還沒(méi)有成熟應用。


2015年12月,Intel公司斥資167億美元收購了Altera公司。Altera被收購后不久即制定了英特爾處理器與FPGA集成的產(chǎn)品路線(xiàn)圖。這兩種產(chǎn)品集成的好處是可以提供創(chuàng )新的異構多核架構,適應例如人工智能等新市場(chǎng)的需求,同時(shí)能大幅縮減功耗。



FPGA在航天、軍工、電信領(lǐng)域有非常成熟和廣泛的應用。以電信領(lǐng)域為例,在電信設備一體機階段,FPGA由于其編程的靈活性以及高性能被應用網(wǎng)絡(luò )協(xié)議解析以及接口轉換。


  • 在NFV(NetworkFunction Virtualization階段,FPGA基于通用服務(wù)器和Hypervisor實(shí)現網(wǎng)元數據面5倍的性能提升,同時(shí)能夠被通用Openstack框架管理編排。

  • 在云時(shí)代,FPGA已經(jīng)被作為基本IaaS資源在公有云提供開(kāi)發(fā)服務(wù)和加速服務(wù),AWS、華為、BAT均有類(lèi)似通用服務(wù)提供。

  • 截至目前,Intel的Stratix 10器件已被成功應用于微軟實(shí)時(shí)人工智能云平臺Brainwave項目。


3、兩家主流FPGA公司發(fā)展近況


Xilinx聚焦芯片領(lǐng)先和豐富的加速解決方案,通過(guò)開(kāi)放策略獲得主流云平臺支持,確立了其在數據中心的領(lǐng)先地位。其UltraScale+系列FPGA領(lǐng)先友商1年多,使其在云平臺競爭中占領(lǐng)先機,其VU9P器件被大量應用于包括AWS、Baidu、Ali、Tencent及華為在內的多家公司的云計算平臺。



為滿(mǎn)足加速器領(lǐng)域對FPGA芯片日益遞增的性能需求,Xilinx已發(fā)布面向數據中心的下一代ACAP芯片架構、推出7nm Everest器件。此器件已不屬于傳統的FPGA,它集成了ARM、DSP、Math Engine處理器陣列等內核,將于2019年量產(chǎn)。相較于VU9P,Everest支持的AI處理性能將能提升20倍。


Intel則提供從硬件到平臺到應用的全棧解決方案,不開(kāi)放硬件和平臺設計以避免生態(tài)碎片化,投入巨大但進(jìn)展緩慢。




FPGA在數據中心服務(wù)器市場(chǎng)的實(shí)際應用中存在一定技術(shù)難點(diǎn),具體包括如下幾方面:


  • 1、編程門(mén)檻較高:硬件描述語(yǔ)言不同于軟件開(kāi)發(fā)語(yǔ)言,需要開(kāi)發(fā)者對底層硬件有著(zhù)較深刻的認識;因此人才也就成為限制FPGA應用的一個(gè)重要因素。據了解,目前國內從事FPGA開(kāi)發(fā)的人員初步估計大約兩萬(wàn)多人。

  • 2、集成難度較大:FPGA開(kāi)發(fā)與應用需要軟硬件的協(xié)同,包括使用高級語(yǔ)言的系統建模、硬件代碼(電路)設計、硬件代碼仿真、底層驅動(dòng)軟件與硬件邏輯的聯(lián)調等等。

  • 3、開(kāi)發(fā)周期相對軟件要長(cháng):硬件開(kāi)發(fā)比軟件開(kāi)發(fā)過(guò)程復雜,調試周期也被拉長(cháng)。

  • 4、很難獲取獨立邏輯IP。


4、FPGA整體結構


FPGA架構主要包括可配置邏輯塊CLB(Configurable Logic Block)、輸入輸出塊IOB(Input Output Block)、內部連線(xiàn)(Interconnect)和其它內嵌單元四個(gè)部分。


CLB是FPGA的基本邏輯單元。實(shí)際數量和特性會(huì )依器件的不同而改變,但是每個(gè)CLB都包含一個(gè)由4或6個(gè)輸入、若干選擇電路(多路復用器等)和觸發(fā)器組成的可配置開(kāi)關(guān)矩陣。開(kāi)關(guān)矩陣具有高度的靈活性,經(jīng)配置可以處理組合型邏輯、移位寄存器或 RAM。


FPGA可支持許多種I/O標準,因而可以為系統設計提供理想的接口橋接。FPGA 內的I/O按bank分組,每個(gè)bank能獨立支持不同的I/O標準。目前最先進(jìn)的FPGA提供了十多個(gè)I/O bank,能夠提供靈活的I/O支持。


CLB 提供了邏輯性能,靈活的互連布線(xiàn)則負責在CLB和I/O之間傳遞信號。布線(xiàn)有幾種類(lèi)型,從設計用于專(zhuān)門(mén)實(shí)現 CLB 互連(短線(xiàn)資源)、到器件內的高速水平和垂直長(cháng)線(xiàn)(長(cháng)線(xiàn)資源)、再到時(shí)鐘與其它全局信號的全局低skew布線(xiàn)(全局性專(zhuān)用布線(xiàn)資源)。一般,各廠(chǎng)家設計軟件會(huì )將互連布線(xiàn)任務(wù)隱藏起來(lái),用戶(hù)根本看不到,從而大幅降低了設計復雜性。


內嵌硬核單元包括RAM、DSP、DCM(數字時(shí)鐘管理模塊)及其它特定接口硬核等,FPGA器件內部結構如下示意圖。




一般來(lái)說(shuō),器件型號數字越大,表示器件能提供的邏輯資源規模越大。在FPGA器件選型時(shí),用戶(hù)需要對照此表格,根據業(yè)務(wù)對邏輯資源(CLB)、內部BlockRAM、接口(高速Serdes對數)、數字信號處理(DSP硬核數)以及今后擴展等多方面的需求,綜合考慮項目最合適的邏輯器件。


5、FPGA開(kāi)發(fā)流程


FPGA的設計流程就是利用EDA開(kāi)發(fā)軟件和編程工具對FPGA芯片進(jìn)行開(kāi)發(fā)的過(guò)程。FPGA的開(kāi)發(fā)流程一般如下圖所示,包括功能定義/器件選型、設計輸入、功能仿真、邏輯綜合、布局布線(xiàn)與實(shí)現、編程調試等主要步驟。




1、功能定義/器件選型:在FPGA設計項目開(kāi)始之前,必須有系統功能的定義和模塊的劃分,另外就是要根據任務(wù)要求,如系統的功能和復雜度,對工作速度和器件本身的資源、成本、以及連線(xiàn)的可布性等方面進(jìn)行權衡,選擇合適的設計方案和合適的器件類(lèi)型。

 

2、 設計輸入:設計輸入指使用硬件描述語(yǔ)言將所設計的系統或電路用代碼表述出來(lái)。最常用的硬件描述語(yǔ)言是Verilog HDL。

 

3、 功能仿真:功能仿真指在邏輯綜合之前對用戶(hù)所設計的電路進(jìn)行邏輯功能驗證。仿真前,需要搭建好測試平臺并準備好測試激勵,仿真結果將會(huì )生成報告文件和輸出信號波形,從中便可以觀(guān)察各個(gè)節點(diǎn)信號的變化。如果發(fā)現錯誤,則返回設計修改邏輯設計。常用仿真工具有Model Tech公司的ModelSim、Sysnopsys公司的VCS等軟件。

 

4、 邏輯綜合:所謂綜合就是將較高級抽象層次的描述轉化成較低層次的描述。綜合優(yōu)化根據目標與要求優(yōu)化所生成的邏輯連接,使層次設計平面化,供FPGA布局布線(xiàn)軟件進(jìn)行實(shí)現。就目前的層次來(lái)看,綜合優(yōu)化是指將設計輸入編譯成由與門(mén)、或門(mén)、非門(mén)、RAM、觸發(fā)器等基本邏輯單元組成的邏輯連接網(wǎng)表,而并非真實(shí)的門(mén)級電路。



真實(shí)具體的門(mén)級電路需要利用FPGA制造商的布局布線(xiàn)功能,根據綜合后生成的標準門(mén)級結構網(wǎng)表來(lái)產(chǎn)生。為了能轉換成標準的門(mén)級結構網(wǎng)表,HDL程序的編寫(xiě)必須符合特定綜合器所要求的風(fēng)格。常用的綜合工具有Synplicity公司的Synplify/Synplify Pro軟件以及各個(gè)FPGA廠(chǎng)家自己推出的綜合開(kāi)發(fā)工具。

 

5、布局布線(xiàn)與實(shí)現:布局布線(xiàn)可理解為利用實(shí)現工具把邏輯映射到目標器件結構的資源中,決定邏輯的最佳布局,選擇邏輯與輸入輸出功能鏈接的布線(xiàn)通道進(jìn)行連線(xiàn),并產(chǎn)生相應文件(如配置文件與相關(guān)報告);實(shí)現是將綜合生成的邏輯網(wǎng)表配置到具體的FPGA芯片上。由于只有FPGA芯片生產(chǎn)商對芯片結構最為了解,所以布局布線(xiàn)必須選擇芯片開(kāi)發(fā)商提供的工具。

 

6、編程調試:設計的最后一步就是編程調試。芯片編程是指產(chǎn)生使用的數據文件(位數據流文件,Bitstream Generaon),將編程數據加載到FPGA芯片中;之后便可進(jìn)行上板測試。最后將FPGA文件(如.bit文件)從電腦下載到單板上的FPGA芯片中。


6、如何使用FPGA


FPGA開(kāi)發(fā)完畢,最終得到驗證好的加載文件。輸出加載文件后,即可開(kāi)始正常業(yè)務(wù)處理和驗證(以軟件加載方式為例,描述整個(gè)過(guò)程)

  • 1、邏輯加載;

  • 2、單板軟件加載邏輯后,需要復位邏輯;

  • 3、復位完成后,軟件需等待等待一段時(shí)間至邏輯鎖相環(huán)工作穩定;

  • 4、軟件啟動(dòng)對邏輯的外部RAM、內部Block RAM、DDRC等的自檢操作;

  • 5、軟件完成自檢以后,對邏輯所有可寫(xiě)RAM空間及寄存器進(jìn)行初始化操作;

  • 6、初始化完畢,軟件參考邏輯芯片手冊配置表項及寄存器;

  • 7、邏輯準備好,可以開(kāi)始處理業(yè)務(wù)。

 

7、FPGA適用場(chǎng)景


FPGA適合非規則性多并發(fā)、密集計算及協(xié)議解析處理場(chǎng)景,例如人工智能、基因測序、視頻編碼、數據壓縮、圖片處理、網(wǎng)絡(luò )處理等各領(lǐng)域的加速。


*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。



關(guān)鍵詞: FPGA

相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>