FPGA 是一種以數(shù)字電路為主的集成芯片,于 1985 年由 Xilinx 創(chuàng)始人之一 Ross Freeman 發(fā)明,屬于可編程邏輯器件(Programmable Logic Device,PLD)的一種。這個時間比著名的摩爾定律出現(xiàn)的時間晚 20 年左右,但是 FPGA 一經(jīng)發(fā)明,后續(xù)的發(fā)展速度之快,超出大多數(shù)人的想象。
圖 1 中給出了 FPGA 芯片的實物圖:
圖 1 FPGA芯片實物圖
FPGA 發(fā)展歷程
在 PLD 未發(fā)明之前,工程師使用包含若干個邏輯門的離散邏輯芯片進(jìn)行電路系統(tǒng)的搭建,復(fù)雜的邏輯功能實現(xiàn)起來較為困難。
為了解決這一問題,20 世紀(jì) 70 年代,可編程邏輯陣列(Programmable Logic Array,PLA)問世,PLA 中包含了一些固定數(shù)量的與門、非門,分別組成了“與平面”和“或平面”,即“與連接矩陣”和“或連接矩陣”,以及僅可編程一次的連接矩陣(因為此處編程是基于熔絲工藝的),因此可以實現(xiàn)一些相對復(fù)雜的與、或多項表達(dá)式的邏輯功能,PLA 內(nèi)部結(jié)構(gòu)如圖 2 所示:
圖 2 PLA內(nèi)部結(jié)構(gòu)
與 PLA 同時問世的還有可編程只讀存儲器(Programmable Read-Only Memory,PROM),其內(nèi)部結(jié)構(gòu)如圖 3 所示。與 PLA 相同,PROM 內(nèi)部包含“與連接矩陣”和“或連接矩陣”,但是與門的連接矩陣是硬件固定的,只有或門的連接矩陣可編程。
圖 3 PROM內(nèi)部結(jié)構(gòu)
若只有與門的連接矩陣可編程,而或門的連接矩陣是硬件固定的,那么這種芯片叫作可編程陣列邏輯器件(Programmable Array Logic,PAL),根據(jù)輸出電路工作模式的不同,PAL 可分為三態(tài)輸出、寄存器輸出、互補輸出,但 PAL 仍使用熔絲工藝,只可編程一次。PAL 的結(jié)構(gòu)圖如圖 4 所示。
圖 4 PAL結(jié)構(gòu)圖
在 PAL 的基礎(chǔ)上,又發(fā)展出了通用陣列邏輯器件(Generic Array Logic,GAL),相比于 PAL,GAL 有兩點改進(jìn):
-
采用了電可擦除的 CMOS 工藝,可多次編譯,增強(qiáng)了器件的可重配置性和靈活性;
-
采用了可編程的輸出邏輯宏單元(Output Logic Macro Cell,OLMC),通過編程 OLMC 可將 GAL 的輸出設(shè)置成不同狀態(tài),僅用一個型號的GAL就可以實現(xiàn)所有PAL器件輸出電路的工作模式,增強(qiáng)了器件的通用性。
GAL 的結(jié)構(gòu)圖如圖 5 所示:
圖 5 GAL結(jié)構(gòu)圖
早期的 PLD 主要由上述四種類型的芯片組成,即 PROM、PLA、PAL 和 GAL。它們的共同特點是可以實現(xiàn)速度特性較好的邏輯功能,但由于其結(jié)構(gòu)過于簡單,所以只能實現(xiàn)規(guī)模較小的數(shù)字電路。
隨著科技的發(fā)展、社會的進(jìn)步,人們對芯片的集成度要求越來越高。早期的 PLD 產(chǎn)品不能滿足人們的需求,復(fù)雜可編程邏輯器件(Complex Programmable Logic Device,CPLD)誕生。可以把 CPLD 看作 PLA 器件結(jié)構(gòu)的延續(xù),一個 CPLD 器件也可以看作若干個 PLA 和一個可編程連接矩陣的集合。CPLD 的內(nèi)部結(jié)構(gòu)圖如圖 6 所示。
圖 6 CPLD結(jié)構(gòu)圖
FPGA 比 CPLD 早幾年問世,與 CPLD 并稱為高密度可編程邏輯器件,但它們有著本質(zhì)的區(qū)別。FPGA 芯片的內(nèi)部架構(gòu)并沒有沿用類似 PLA 的結(jié)構(gòu),而是采用了邏輯單元陣列(Logic Cell Array,LCA)這樣一個概念,改變了以往 PLD 器件大量使用與門、非門的思想,主要使用查找表和寄存器。
除此之外,F(xiàn)PGA 和 CPLD 在資源類型、速度等方面也存在差異,如下表所示。
器件種類/特性 | FPGA | CPLD |
---|---|---|
內(nèi)部結(jié)構(gòu) | 查找表(Look Up Table) | 乘積項(Product Term) |
程序存儲 | 內(nèi)部為 SRAM 結(jié)構(gòu),外掛 EEPROM 或 Flash 存儲程序 | 內(nèi)部為 EEPROM 或 Flash |
資源類型 | 觸發(fā)器資源豐富 | 組合邏輯資源豐富 |
集成度 | 高 | 低 |
使用場合 | 完成比較復(fù)雜的算法 | 完成控制邏輯 |
速度 | 快 | 慢 |
其他資源 | RAM、PLL、DSP等 | —— |
保密性 | 一般不能保密(可以使用加密核) | 可加密 |
FPGA 的類型從內(nèi)部實現(xiàn)機(jī)理來講,可以分為基于 SRAM 技術(shù)、基于反熔絲技術(shù)、基于 EEPROM/Flash 技術(shù)。就電路結(jié)構(gòu)來講,F(xiàn)PGA 可編程是指三個方面的可編程:可編程邏輯塊、可編程 I/O、可編程布線資源。可編程邏輯塊是 FPGA 可編程的核心,我們上面提到的三種技術(shù)也是針對可編程邏輯塊的技術(shù)。
FPGA 的結(jié)構(gòu)圖如圖 8 所示。
圖 8 FPGA結(jié)構(gòu)圖
FPGA 的技術(shù)優(yōu)勢
許多讀者都知道 FPGA 功能強(qiáng)大,但它強(qiáng)大在哪兒?
以單片機(jī)舉例說明,我們都知道,單片機(jī)功能強(qiáng)大,幾乎無所不能,而 FPGA 與之相比只強(qiáng)不弱。因為只要單片機(jī)能實現(xiàn)的功能,F(xiàn)PGA 就一定能實現(xiàn),當(dāng)然這需要加一個大前提——在 FPGA 資源足夠多的情況下。但是 FPGA 能實現(xiàn)的功能,單片機(jī)卻不一定能夠輕松實現(xiàn),這是不爭的事實,如果你不相信,那只能說明你還不了解 FPGA。
說到這里,讀者不禁要問,既然 FPGA 這么厲害,為什么單片機(jī)的使用范圍更廣?那是因為在商業(yè)中,價格往往是影響產(chǎn)品的重要因素之一。
單片機(jī)的價格要遠(yuǎn)遠(yuǎn)低于 FPGA,而且根據(jù)性能和資源的不同,F(xiàn)PGA 的價格也存在很大差異,單枚 FPGA 芯片的價格從幾十元到幾十萬元不等。與之相比,單片機(jī)的價格要便宜很多,同樣的功能我們?nèi)绻梢杂脙r格低廉的單片機(jī)實現(xiàn),就不會選擇相對昂貴的 FPGA 了,除非單片機(jī)滿足不了功能需求。所以公司自己進(jìn)行開發(fā)時,為了節(jié)約成本,可能會選擇更加便宜的單片機(jī),而不會選擇相對昂貴的 FPGA,因為單片機(jī)、ARM 這種微處理器的需求量很大,所以價格上更有優(yōu)勢。
但無論是單片機(jī)、ARM 還是 FPGA,它們都只是一種幫助我們實現(xiàn)功能的工具,具體如何選擇,需要根據(jù)具體問題具體分析。總之,沒有萬能的工具,只有符合生產(chǎn)需求的工具。我們不應(yīng)對某種工具存在偏見,要綜合考慮。同樣,當(dāng)你了解得更多的時候,你會發(fā)現(xiàn)這些工具都需要掌握。
FPGA 的應(yīng)用場景遠(yuǎn)沒有單片機(jī)和 ARM 這么多,主要針對單片機(jī)和 ARM 無法解決的問題。比如要求靈活高效、高吞吐量、低批量延時、快速并行運算、可重構(gòu)、可重復(fù)編程、可實現(xiàn)定制性能和定制功耗的情況,這些工作只能由FPGA承擔(dān)。
而相對于出于專門目的而設(shè)計的集成電路(Application Specific Integrated Circuit,ASIC),F(xiàn)PGA 具有 3 點優(yōu)勢:
1) 靈活性
通過對 FPGA 編程,F(xiàn)PGA 可以執(zhí)行 ASIC 能夠執(zhí)行的任何邏輯功能。FPGA 的獨特優(yōu)勢在于其靈活性,即隨時可以改變芯片功能,在技術(shù)還未成熟的階段,這種特性能夠降低產(chǎn)品的成本與風(fēng)險,在 5G 技術(shù)普及初期,這種特性尤為重要。
2) 上市時間縮短
對 FPGA 編程后即可直接使用,F(xiàn)PGA 方案無須經(jīng)歷三個月至一年的芯片流片周期,為企業(yè)爭取了產(chǎn)品上市時間。
3) 有一定成本優(yōu)勢
FPGA 與 ASIC 的主要區(qū)別在于 ASIC 方案有固定成本而 FPGA 方案幾乎沒有,在使用量小的時候,采用 FPGA 方案無須一次性支付幾百萬美元的流片成本,同時也不用承擔(dān)流片失敗的風(fēng)險,此時 FPGA 方案的成本低于 ASIC 的,隨著使用量增加,F(xiàn)PGA 方案在成本上的優(yōu)勢逐漸減少,超過某一使用量后,由于大量流片產(chǎn)生了規(guī)模經(jīng)濟(jì),因此 ASIC 方案在成本上更有優(yōu)勢,如下圖所示:
圖 9 FPGA方案和ASIC方案的成本比較
因此,F(xiàn)PGA 通常在數(shù)字信號處理、視頻處理、圖像處理、5G 通信領(lǐng)域、醫(yī)療領(lǐng)域、工業(yè)控制、云服務(wù)、加速計算、人工智能、數(shù)據(jù)中心、自動駕駛、芯片驗證等領(lǐng)域發(fā)揮著不可替代的作用。只有掌握了通用的 FPGA 設(shè)計方法,才能在 FPGA 獨領(lǐng)風(fēng)騷的領(lǐng)域中大展宏圖。
FPGA的應(yīng)用方向
FPGA 介于軟件和硬件之間,用它做接口、做通信,它就偏向硬件;用它做算法、做控制,它就偏向軟件。隨著人工智能、機(jī)器視覺的崛起,F(xiàn)PGA 更加偏向軟件算法的異構(gòu),有和 GPU 一爭高下的潛力。
FPGA 與 GPU 性能對比圖如圖 10 所示:
圖 10 FPGA與GPU的性能對比圖
FPGA 軟件方向:以軟件開發(fā)為主,開發(fā) FPGA 在數(shù)據(jù)分析、人工智能、機(jī)器視覺等領(lǐng)域的加速應(yīng)用能力,主要采用 OpenCL 和 HLS 技術(shù)實現(xiàn)軟硬件協(xié)同開發(fā)。
FPGA 硬件方向:以邏輯設(shè)計為主,針對FPGA特定領(lǐng)域的應(yīng)用設(shè)計、集成電路設(shè)計以及芯片驗證能力。
FPGA 最初的應(yīng)用領(lǐng)域是通信領(lǐng)域,但是隨著信息產(chǎn)業(yè)和微電子技術(shù)的發(fā)展,F(xiàn)PGA 技術(shù)已經(jīng)成為信息產(chǎn)業(yè)最熱門的技術(shù)之一,應(yīng)用范圍擴(kuò)大,遍及航空航天、汽車、醫(yī)療、廣播、測試測量、消費電子、工業(yè)控制等熱門領(lǐng)域,而且隨著工藝的發(fā)展和技術(shù)的進(jìn)步,從各個角度開始滲透到生活當(dāng)中。

有你想看的精彩 利用FPGA開發(fā)板進(jìn)行ASIC原型開發(fā)的技巧 基于FPGA實現(xiàn)通用異步收發(fā)器基本功能的應(yīng)用設(shè)計 使用FPGA實現(xiàn)高效并行實時上采樣
掃碼加微信邀請您加入FPGA學(xué)習(xí)交流群


歡迎加入至芯科技FPGA微信學(xué)習(xí)交流群,這里有一群優(yōu)秀的FPGA工程師、學(xué)生、老師、這里FPGA技術(shù)交流學(xué)習(xí)氛圍濃厚、相互分享、相互幫助、叫上小伙伴一起加入吧!
原文標(biāo)題:FPGA是什么(超級詳細(xì))
文章出處:【微信公眾號:FPGA設(shè)計論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
FPGA
+關(guān)注
關(guān)注
1641文章
21910瀏覽量
611642
原文標(biāo)題:FPGA是什么(超級詳細(xì))
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
超級電容器均壓電路狀況與展望
超級電容器原理、分類及應(yīng)用事項

新能源汽車超級電容器?

超級電容電池的工作原理
博世超級工廠里有哪些超級力量
DS1302芯片與FPGA之間SPI通信原理

為什么被稱為超級電容?超級電容怎么用?

評論