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