FPGA(Field Programmable Gate Array)于1985年由xilinx創(chuàng)始人之一Ross Freeman發(fā)明,雖然有其他公司宣稱自己最先發(fā)明可編程邏輯器件PLD,但是真正意義上的第一顆FPGA芯片XC2064為xilinx所發(fā)明,這個(gè)時(shí)間差不多比摩爾老先生提出著名的摩爾定律晚20年左右,但是FPGA一經(jīng)發(fā)明,后續(xù)的發(fā)展速度之快,超出大多數(shù)人的想象,近些年的FPGA,始終引領(lǐng)先進(jìn)的工藝。
FPGA發(fā)明后,在這個(gè)行業(yè)里面曾經(jīng)出現(xiàn)過不少玩家,比如xilinx、altera、lattice、actel、cypress,atmel等,經(jīng)過十幾年的廝殺,玩家逐漸減少,這些公司或者出售,或者退出,如cypress,atmel完全退出,actel出售給microsemi,altera被intel收購,但這兩個(gè)廠家還在這個(gè)行業(yè)。現(xiàn)在國際上的主流廠家實(shí)際只剩xilinx,altera(intel),lattice和microsemi四家。而前兩者是絕對(duì)的霸主,占據(jù)市場總份額的近90%,處在第一陣營。后兩者份額在百分之十左右,處在第二陣營,但和第一陣營差距非常大。與國際上巨頭的兼并和退出相反,近些年國內(nèi)陸續(xù)誕生了一些FPGA設(shè)計(jì)公司,且有蒸蒸日上的趨勢,但在市場份額及技術(shù)方面和國際巨頭差距非常大,還遠(yuǎn)未達(dá)到挑戰(zhàn)領(lǐng)先巨頭的實(shí)力,后面會(huì)對(duì)國內(nèi)廠家做些分析。
下面再來簡要介紹FPGA設(shè)計(jì),這里的FPGA設(shè)計(jì)不是研發(fā)FPGA芯片,而是用FPGA做產(chǎn)品設(shè)計(jì)。業(yè)界普遍認(rèn)為FPGA設(shè)計(jì)門檻很高,相對(duì)軟件設(shè)計(jì),差別在哪呢?現(xiàn)在FPGA的主流設(shè)計(jì)還是采用verilog設(shè)計(jì)(早期有使用原理圖方式,這個(gè)方式更接近硬件搭積木,但大規(guī)模的設(shè)計(jì)無法完成)。用matlab,C語言做算法設(shè)計(jì),然后通過工具直接轉(zhuǎn)化為verilog的方式,喊了十幾年,到現(xiàn)在還未成為主流,說明工具在轉(zhuǎn)化verilog方面其效果還不如有經(jīng)驗(yàn)的FPGA人員寫的代碼。Verilog語言本身非常簡單,但FPGA設(shè)計(jì)的難點(diǎn)并不在語言,而是對(duì)FPGA器件內(nèi)部資源和硬件的熟悉,你寫的語言能和你使用的目標(biāo)器件高效的配合起來,使它的效果、利用率以及程序的可讀性達(dá)到最優(yōu),這個(gè)難度就非常大了。筆者曾經(jīng)牽頭編寫了某大型公司整個(gè)無線產(chǎn)品的coding style,有近200條規(guī)定,這些規(guī)定是幾十個(gè)FPGA開發(fā)人員多年經(jīng)驗(yàn)的積累,不按這個(gè)來,隨時(shí)可能是個(gè)坑。好的coding style,不僅程序?qū)懙煤苊烙^,可讀性好,也不容易出bug。一般來說,要成為一個(gè)有經(jīng)驗(yàn)的FPGA設(shè)計(jì)人員,起碼得從事相關(guān)工作5年以上,經(jīng)歷過3個(gè)以上大型項(xiàng)目的鍛煉,而且需要有高手帶。筆者曾經(jīng)面試過的大量的FPGA開發(fā)人員,基本上從研究所、小公司或者小團(tuán)隊(duì)出來的,盡管有些工作了很多年,其底子也不是太好(這里沒有歧視研究所和小公司的意思,術(shù)業(yè)有專攻而已)。因此,如果想在FPGA設(shè)計(jì)領(lǐng)域做得很深入,國內(nèi)著名通信設(shè)備廠家絕對(duì)是最好的選擇,沒有之一。當(dāng)然,如果有IC設(shè)計(jì)經(jīng)驗(yàn)的人,轉(zhuǎn)為FPGA開發(fā),則會(huì)快很多,而且基本功也很扎實(shí),但需要補(bǔ)充行業(yè)、系統(tǒng)經(jīng)驗(yàn)。余63%
FPGA從誕生起,就注定和ASIC站在不同的陣營。ASIC是固化好的芯片,不可以進(jìn)行硬件編程(上面跑軟件的不屬于硬件編程)而隨意改變硬件結(jié)構(gòu),而FPGA則可以根據(jù)設(shè)計(jì)者的需要改變硬件結(jié)構(gòu)。因此,從靈活性來說,F(xiàn)PGA遠(yuǎn)強(qiáng)于ASIC芯片,而且FPGA開發(fā)周期也比ASIC要短,因此在有些領(lǐng)域或者場景下,F(xiàn)PGA比ASIC有優(yōu)勢,比如通信領(lǐng)域,協(xié)議標(biāo)準(zhǔn)還不成熟時(shí),各個(gè)廠家大量的私有接口,使用FPGA能快速推出產(chǎn)品,而且高度靈活滿足了非標(biāo)準(zhǔn)接口的開發(fā)。再比如工業(yè)領(lǐng)域,很多功能也可能是非標(biāo)的,很難找到合適的ASIC芯片,這時(shí)FPGA也是很好的選擇。但是FPGA也有它的弱點(diǎn),為了保證靈活性,芯片里面預(yù)留了可配置邏輯,即相對(duì)ASIC增加了冗余的面積,這樣既增加了成本也增加了功耗,這就決定了在有些領(lǐng)域里面它很難競爭過ASIC,比如終端產(chǎn)品,它對(duì)低功耗要求比較高。在標(biāo)準(zhǔn)化的產(chǎn)品、功能里面,它不需要那么靈活,這也不是FPGA的菜。因?yàn)榻K端產(chǎn)品量非常大,而且這個(gè)世界上大部分東西都是有共性的,即可以標(biāo)準(zhǔn)、通用的可能性大,因此,F(xiàn)PGA在整個(gè)芯片行業(yè)占比總體來說比較小。這些年FPGA總體市場規(guī)模在40億美金左右(加上CPLD大概在50多億美金),而2016年全球芯片市場規(guī)模大概在4000億美金左右。
總體來說,由于FPGA本身的特點(diǎn),決定了它不是在每個(gè)行業(yè)、產(chǎn)品都適合應(yīng)用,標(biāo)準(zhǔn)化的,功耗要求很嚴(yán)格的,單價(jià)很低的產(chǎn)品都不適合,而這些恰恰是電子產(chǎn)品中占比大的,事實(shí)上,F(xiàn)PGA用得比較多的行業(yè)主要有通信、工業(yè)控制、醫(yī)療設(shè)備、及高端安防等,以及航天和軍工(可靠性要求高,但量不大),未來可能數(shù)據(jù)中心和AI會(huì)是一個(gè)爆發(fā)點(diǎn),后面會(huì)做分析。
在芯片應(yīng)用行業(yè),計(jì)算機(jī)和通訊是最大的兩個(gè)領(lǐng)域,而對(duì)于FPGA來說,應(yīng)用的第一大領(lǐng)域是通訊而不是計(jì)算機(jī)。PC機(jī)雖然數(shù)量及其巨大,但PC機(jī)里面沒有FPGA芯片,原因是PC機(jī)是一個(gè)高度標(biāo)準(zhǔn)化的產(chǎn)品,因此PC機(jī)里面所有芯片用ASIC實(shí)現(xiàn)不僅可行,而且是經(jīng)濟(jì)的。而服務(wù)器、大型機(jī)里面開始逐步在使用FPGA,主要用于大數(shù)據(jù)的協(xié)處理,目前量還不大,遠(yuǎn)遠(yuǎn)無法和通信產(chǎn)品使用的FPGA相比,但未來潛力很大,后面會(huì)做進(jìn)一步介紹。
通信產(chǎn)品可以從云、管、端層面來劃分,端不大適合使用FPGA,如前所述,因?yàn)镕PGA功耗相對(duì)ASIC偏大,至于前段時(shí)間吵得沸沸揚(yáng)揚(yáng)的lattice FPGA芯片用于三星和蘋果7的手機(jī)案例,實(shí)屬特例,千萬不要認(rèn)為未來FPGA能大規(guī)模進(jìn)軍消費(fèi)電子,從而使得FPGA市場規(guī)模將成倍甚至數(shù)十倍的增加,至少短期內(nèi)可能性不大。
通信行業(yè)講的云主要包括核心網(wǎng)及各種服務(wù)器中心,在大數(shù)據(jù)和云計(jì)算沒有規(guī)模應(yīng)用之前,核心網(wǎng)設(shè)備里面基本沒有FPGA,因?yàn)楹诵木W(wǎng)所處理的協(xié)議其實(shí)非常標(biāo)準(zhǔn)化,變化不是太大,我們常見的2G-3G-4G以及即將到來的5G,其標(biāo)準(zhǔn)的核心部分實(shí)際上主要體現(xiàn)在物理層和邏輯層,而這些功能主要在管道(基站、基站控制、承載、傳輸?shù)犬a(chǎn)品)中實(shí)現(xiàn),這些標(biāo)準(zhǔn)變化快,各設(shè)備廠家為了搶占產(chǎn)品和技術(shù)的制高點(diǎn),甚至在標(biāo)準(zhǔn)還未凍結(jié)之前就推出原型樣機(jī)甚至小批量,而這只有FPGA能做到。一般來講越往終端側(cè)靠近,設(shè)備的數(shù)量越多,用的FPGA量也越多,越靠近核心網(wǎng)側(cè)用的FPGA數(shù)量越少,但FPGA芯片的型號(hào)越高端,單片更貴。考慮量、價(jià)因素,最終還是基站側(cè)用的FPGA總價(jià)高。
為什么是基站(也可以說是管道)最適合用FPGA,而且總價(jià)最高。首先因?yàn)榛镜牧糠浅4螅倦m然和手機(jī)的量沒法比,但遠(yuǎn)多于核心網(wǎng)數(shù)量,據(jù)不完全統(tǒng)計(jì),全球存量基站有數(shù)千萬(5G部署后,可能會(huì)輕松破億),每個(gè)基站里面有數(shù)塊到10數(shù)塊板子(根據(jù)配置不同而不同),除了電源和風(fēng)扇板子沒有FPGA芯片外,幾乎每塊板子都有FPGA芯片,有的還不止一顆。其次,基站里面用的FPGA型號(hào)也不會(huì)太低端,因?yàn)橐幚韽?fù)雜的物理協(xié)議、部分算法和邏輯控制,接口速率更是一個(gè)重要的考慮。一般來講,基站中的芯片價(jià)格在一百到數(shù)千元人民幣不等。價(jià)格過高比如幾千甚至上萬人民幣的芯片,最多在初期原型驗(yàn)證用,不會(huì)大規(guī)模發(fā)貨。最后,基站主要負(fù)責(zé)實(shí)現(xiàn)通信協(xié)議中物理層、邏輯鏈路層的協(xié)議部分,這部分內(nèi)容每年都在升級(jí),而且也比較適合FPGA來實(shí)現(xiàn),尤其是協(xié)議未完全凍結(jié)時(shí),最適合FPGA來處理,因?yàn)榭梢酝ㄟ^升級(jí)FPGA版本來應(yīng)對(duì)協(xié)議變動(dòng),待協(xié)議完全凍結(jié)后,各設(shè)備廠家會(huì)逐步以ASIC來替代之前的FPGA,因?yàn)榱窟_(dá)到一定程度后,ASIC的成本和功耗優(yōu)勢就體現(xiàn)出來了,而且大型設(shè)備商的ASIC化能力又非常強(qiáng),因此FPGA在通信領(lǐng)域主要在初、中期應(yīng)用比例高,后期能被替代的都被ASIC替代了,只留下一些接口類的FPGA,這也是FPGA廠商必須要面對(duì)的一個(gè)現(xiàn)實(shí)。
除了通信領(lǐng)域,F(xiàn)PGA在安防和工業(yè)領(lǐng)域也存在大量應(yīng)用。在安防領(lǐng)域,視頻的編解碼比如MPEG和H.26x等協(xié)議基本由專用ASIC實(shí)現(xiàn),但是前端的數(shù)據(jù)采集處理及部分控制邏輯可以由FPGA來處理,因?yàn)榘卜酪彩且粋(gè)巨大的產(chǎn)業(yè),因此,F(xiàn)PGA的用量也是非常可觀的。工業(yè)領(lǐng)域主要用FPGA的靈活性來做控制,而且主要是規(guī)模比較小的FPGA。此外,軍工和航天也是FPGA應(yīng)用的一個(gè)重要領(lǐng)域,軍工和航天對(duì)FPGA的可靠性要求更高,除了xilinx和altera有軍工產(chǎn)品外,microsemi(前actel)的anti-fuse工藝(一次編程,可以更好的抗干擾和抗輻射等)FPGA因其高可靠性,主要用于軍工航天產(chǎn)品。