FPGA現(xiàn)場(chǎng)可編程門(mén)陣列(Field-Programmable Gate Array),簡(jiǎn)稱(chēng):FPGA芯片,F(xiàn)PGA芯片概念由美國(guó)Xilinx公司首創(chuàng)(FPGA芯片廠(chǎng)家),F(xiàn)PGA芯片是一種可以提高生產(chǎn)效率的編程器件,進(jìn)行定義配置的專(zhuān)用集成電路(ASIC)。
什么是FPGA芯片
集成電路芯片包括數(shù)字芯片和模擬芯片兩大類(lèi),數(shù)字芯片可以分為存儲(chǔ)器芯片和邏輯芯片,我們熟知的邏輯芯片一般包括CPU、GPU、DSP等通用處理器芯片,以及專(zhuān)用集成電路芯片ASIC。FPGA(現(xiàn)場(chǎng)可編程門(mén)陣列,F(xiàn)ieldProgrammableGateArray)也是邏輯芯片的一種。
數(shù)字芯片的分類(lèi)
FPGA是在PAL(可編程邏輯陣列)、GAL(通用陣列邏輯)、CPLD(復(fù)雜可編程邏輯器件)等傳統(tǒng)邏輯電路和門(mén)陣列的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它利用計(jì)算機(jī)輔助設(shè)計(jì),繪制出實(shí)現(xiàn)用戶(hù)要求的原理圖、編輯布爾方程或用硬件描述語(yǔ)言等方式作為設(shè)計(jì)輸入;然后經(jīng)一系列轉(zhuǎn)換程序、自動(dòng)布局布線(xiàn)、模擬仿真的過(guò)程;最后生成FPGA的數(shù)據(jù)文件,對(duì)FPGA器件初始化。這樣就實(shí)現(xiàn)了滿(mǎn)足用戶(hù)要求的專(zhuān)用集成電路,真正達(dá)到了用戶(hù)自行設(shè)計(jì)、自行研制和自行生產(chǎn)集成電路的目的。
FPGA與CPU、GPU、ASIC等芯片的核心區(qū)別是:其底層邏輯運(yùn)算單元的連線(xiàn)和邏輯布局未固化。用戶(hù)可通過(guò)EDA軟件對(duì)邏輯單元和開(kāi)關(guān)陣列編程,進(jìn)行功能配置,從而去實(shí)現(xiàn)特定功能的集成電路芯片。而其他類(lèi)別邏輯芯片,像ASIC、CPU和GPU等,物理底層邏輯單元的運(yùn)算關(guān)系均已固定且不可變。簡(jiǎn)單地說(shuō),如果CPU、GPU、ASIC等是像建好的樓房,樓房中房間、走廊及樓梯等格局是已經(jīng)固定了;而FPGA的內(nèi)部類(lèi)似霍格沃茲中的魔法樓梯,可以隨時(shí)改變房間到房間的路線(xiàn)關(guān)系。
FPGA由可編程邏輯塊(CLB)、輸入/輸出模塊(IOB)、可編程互連資源(PIR)等三種可編程電路和用于存放編程數(shù)據(jù)的靜態(tài)存儲(chǔ)器SRAM組成。CLB是實(shí)現(xiàn)邏輯功能的基本單元,它們通常規(guī)則排列成一個(gè)陣列,散布于整個(gè)芯片中。IOB主要完成芯片上的邏輯與外部引腳的接口,通常排列在芯片的四周。PIR提供了豐富的連線(xiàn)資源,包括縱橫網(wǎng)狀連線(xiàn)、可編程開(kāi)關(guān)矩陣和可編程連接點(diǎn)等,它們將各個(gè)CLB之間、CLB與IOB之間以及IOB之間連接起來(lái),構(gòu)成特定功能的電路。靜態(tài)存儲(chǔ)器SRAM用于存放內(nèi)部IOB、CLB和PIR的編程數(shù)據(jù),并形成對(duì)IOB、CLB及PIR的控制,從而完成系統(tǒng)邏輯功能。
FPGA的基本結(jié)構(gòu)
由于FPGA需要被反復(fù)燒寫(xiě),它實(shí)現(xiàn)的組合邏輯基本結(jié)構(gòu)無(wú)法通過(guò)固定的與非門(mén)來(lái)完成,而只能采用一種易于反復(fù)配置的結(jié)構(gòu)。查找表(Look-Up-Table,簡(jiǎn)稱(chēng)為L(zhǎng)UT)可以很好地滿(mǎn)足這一要求。
LUT實(shí)質(zhì)上是一個(gè)RAM,當(dāng)用戶(hù)描述了一個(gè)邏輯電路后,軟件會(huì)計(jì)算所有可能的結(jié)果,并寫(xiě)入RAM。每一個(gè)信號(hào)進(jìn)行邏輯運(yùn)算,就等于輸入一個(gè)地址進(jìn)行查表,找出地址對(duì)應(yīng)的內(nèi)容,輸出結(jié)果。這樣也大大加快了FPGA的運(yùn)算速度。目前主流FPGA都采用了基于SRAM工藝的查找表結(jié)構(gòu),也有一些FPGA采用Flash或反熔絲工藝的查找表結(jié)構(gòu)。
FPGA有三大特點(diǎn),其中一個(gè)便是上面所講的可編程靈活性高,另外兩個(gè)特點(diǎn)是開(kāi)發(fā)周期短和并行計(jì)算效率高。
(1)開(kāi)發(fā)周期短
在邏輯芯片里面,如ASIC制造流程包括邏輯實(shí)現(xiàn)、布線(xiàn)處理和流片等多個(gè)步驟;而FPGA無(wú)需布線(xiàn)、掩膜和定制流片等,芯片開(kāi)發(fā)大大簡(jiǎn)化。一般邏輯芯片,如ASIC、DSP、SOC等,開(kāi)發(fā)周期需要14-24個(gè)月,甚至更長(zhǎng),而FPGA則只需要6-12個(gè)月,比其他芯片開(kāi)發(fā)周期減少55%的時(shí)間。
表:邏輯芯片開(kāi)發(fā)周期
類(lèi)型 |
FPGA |
ASIC |
DSP |
SOC |
名稱(chēng) |
現(xiàn)場(chǎng)可編程門(mén)陣列 |
專(zhuān)用集成電路 |
數(shù)字信號(hào)處理技術(shù) |
系統(tǒng)級(jí)芯片 |
開(kāi)發(fā)周期 |
6-12個(gè)月 |
14-24個(gè)月 |
14-24個(gè)月 |
14-24個(gè)月或更長(zhǎng) |
正如全球FPGA第一大廠(chǎng)商Xilinx認(rèn)為,更快比更便宜重要,產(chǎn)品晚上市6個(gè)月,5年內(nèi)將減少33%的利潤(rùn),每晚四周等于損失14%的市場(chǎng)份額。
(2)并行計(jì)算效率高
FPGA屬于并行計(jì)算,也即一次可執(zhí)行多個(gè)指令算法。而傳統(tǒng)的ASIC、DSP、CPU都是串行計(jì)算,一次只能處理一個(gè)指令集。因此在部分特殊任務(wù)中,F(xiàn)PGA的并行計(jì)算效率比串行計(jì)算效率更高。
FPGA芯片廠(chǎng)家設(shè)計(jì)不是簡(jiǎn)單的芯片研究,F(xiàn)PGA芯片主要是利用FPGA芯片 的模式進(jìn)行其他行業(yè)產(chǎn)品的設(shè)計(jì)。 FPGA芯片廠(chǎng)家是為(ASIC)領(lǐng)域?qū)S眉呻娐分械陌攵ㄖ齐娐范霈F(xiàn)的,既能解決定制電路的不足,也克服原有可編程器件門(mén)電路數(shù)有限的缺點(diǎn)。當(dāng)時(shí)xilinx FPGA芯片廠(chǎng)家系列受到了很多工程師的喜愛(ài),半導(dǎo)體器件CMOS LSI的主流,邏輯系統(tǒng)大規(guī)模的出現(xiàn)。大規(guī)模集成電路邏輯系統(tǒng)最簡(jiǎn)單的方式是門(mén)陣列,F(xiàn)PGA芯片門(mén)陣列是指廠(chǎng)商半定制產(chǎn)品芯片準(zhǔn)備的半導(dǎo)體,邏輯門(mén)是在硅片上形成稱(chēng)的基本單元,在主板上形成電路根據(jù)用戶(hù)需要的電路通過(guò)布線(xiàn)。FPGA芯片由宏單元(Macrocell)組合而成的 EPLD 器件個(gè)數(shù)不同,宏單元作為一個(gè)整體,固定相對(duì)的部連線(xiàn),F(xiàn)PGA芯片廠(chǎng)家編程靈活性及邏輯容量均受到限制。
FPGA 芯片型號(hào)為門(mén)級(jí)可編程,F(xiàn)PGA芯片廠(chǎng)家的編程靈活性與內(nèi)部邏輯容量遠(yuǎn)大于 EPLD。FPGA 芯片型號(hào)器件集成度高,F(xiàn)PGA芯片功耗低陣列引腳數(shù)多。FPGA芯片廠(chǎng)家型號(hào)器件具有用戶(hù)現(xiàn)場(chǎng)可編程的優(yōu)越特性。由于FPGA芯片的現(xiàn)場(chǎng)可編程特性,xilinx的FPGA芯片廠(chǎng)家在線(xiàn)的電路調(diào)試與修改不須將FPGA芯片從電路板中取出,因此能以多種封裝形式(如 PQFP、TQFP、BGA 等)減小體積,增加引腳數(shù)量。而 EPLD 須用專(zhuān)門(mén)的編程器擦寫(xiě),因而通常為 PLCC 封裝,體積大,引腳相對(duì)較少。