FPGA的角色也慢慢從當(dāng)初的設(shè)計(jì)數(shù)字電路,到后來也把DSP干的活給干了,再到現(xiàn)在也想把ARM的活給干了。幾年前,嵌入式處理器方面,就是三國(guó)(ARM、DSP、FPGA)鼎立,F(xiàn)PGA干的最多的也就是協(xié)處理,那時(shí)大部分人都去學(xué)習(xí)ARM,學(xué)習(xí)DSP和FPGA的寥寥無幾,沒辦法,市場(chǎng)所向,市場(chǎng)所需的DSP和FPGA開發(fā)人員就是要求少而精,當(dāng)然那時(shí)ARM也是炒得火熱,各種培訓(xùn)機(jī)構(gòu)涌現(xiàn),有種供過欲求的趨勢(shì)。如今這形勢(shì)已經(jīng)變了,ARM器件廠商一般連方案都提供了,市場(chǎng)沒必要要那么多的ARM器件開發(fā)人員,更多需要的是做上層軟件的人員,由此當(dāng)初大部分ARM器件開發(fā)人員更多的就轉(zhuǎn)向了做上層軟件和系統(tǒng)軟件方面。沒辦法,市場(chǎng)所向,智能手機(jī)出現(xiàn),需要的更多的是人/物與人/物之間的連接,由此也出現(xiàn)了近兩年做應(yīng)用軟件人員越來越多,做ARM、DSP、FPGA器件開發(fā)人員越來越少的現(xiàn)象,這情況也是和前幾年的情況一樣一樣的。
不過,現(xiàn)在的總趨勢(shì)是電子產(chǎn)品的集成度必須越來越小,一板多芯片的情況也必須改變,變成了現(xiàn)在的一板一芯片,一芯片多核的形勢(shì),而SoPC(system on the chip)的特性正好能滿足電子產(chǎn)品的集成度越來越高的特點(diǎn)。
下圖為2013年Altera和xilinx官網(wǎng)的頭條,Altera當(dāng)年提出的技術(shù)藍(lán)圖,如今Altera都已經(jīng)實(shí)現(xiàn)了,電子產(chǎn)品更新的速度還是很快的,工藝甚至超過當(dāng)初設(shè)計(jì)的發(fā)展藍(lán)圖,達(dá)到了14nm(估計(jì)也達(dá)到了一個(gè)暫時(shí)的極限,F(xiàn)PGA的單位面積邏輯門集成度也很高了,所以要在廣度上進(jìn)行擴(kuò)展),所以也集成了ARM,也能跑跑OpenCL(異構(gòu)并行計(jì)算,當(dāng)前大數(shù)據(jù)處理前衛(wèi)處理方式)。
Altera和xilinx也開始大力推廣SoC開發(fā)平臺(tái),逐漸感覺FPGA開發(fā)的軟硬件界限越來越模糊了………….
這些年FPGA芯片的發(fā)展形勢(shì)就是:?jiǎn)挝幻娣e上邏輯門越來越高、功耗越來越低、硬件集成模塊越來越多,芯片價(jià)格也越來越實(shí)惠(但是相比ARM而言還是貴的),如今感覺FPGA的功耗還是一個(gè)問題,再降功耗也是一個(gè)很大的難題,Altera在降低功耗可下了大工夫,連電源功耗管理芯片PowerSoC都開始自己做了,看來FPGA的功耗設(shè)計(jì)還是個(gè)很大的難題,沒辦法集成度、時(shí)鐘頻率、功耗是個(gè)矛盾的問題。
芯片功能方面,從cyclone用到如今的cycloneV,感覺單位的邏輯門集成度越來越高,從cyclone到cyclone IV感覺FPGA的變化就是邏輯門集成度、集成DSP處理模塊數(shù)量和功耗,基本上沒有多大的變化,所以作為一個(gè)基礎(chǔ)入門FPGA的學(xué)習(xí)也無須強(qiáng)求一定要最新的cyclone型號(hào),其實(shí)內(nèi)部基本無差,關(guān)鍵還是要掌握基礎(chǔ)的邏輯設(shè)計(jì)規(guī)則。但是從cycloneV的S信號(hào)型號(hào)開始,就開始集成ARM處理器,功能也就實(shí)現(xiàn)了一個(gè)廣度上的擴(kuò)展,當(dāng)初的三國(guó)鼎立也變成了一家,估計(jì)以后懂FPGA的,也要開始學(xué)軟件、ARM、系統(tǒng)方面的知識(shí)了,開發(fā)FPGA也要開始面臨一個(gè)轉(zhuǎn)型,也就是轉(zhuǎn)型到SoCFPGA的開發(fā),更像是一個(gè)系統(tǒng)設(shè)計(jì)。但是FPGA器件開發(fā)人員的轉(zhuǎn)型相對(duì)較難,因?yàn)殚_發(fā)語(yǔ)言沒有相通性,F(xiàn)PGA開發(fā)所看到的是觸發(fā)器、鎖存器、門電路,邏輯流也是一大堆并行的信號(hào)流,而軟件開發(fā)是串行執(zhí)行,由當(dāng)前的處理結(jié)果引導(dǎo)到下一個(gè)執(zhí)行動(dòng)作。
FPGA本身的無奈,雖然能夠并行計(jì)算、流水線處理,但是有些東西是串行實(shí)現(xiàn)的,雖然狀態(tài)機(jī)本身能夠?qū)崿F(xiàn),但是實(shí)現(xiàn)起來也是很復(fù)雜的,例如一個(gè)iic接口或者是一個(gè)SD卡讀寫操作,這種串行機(jī)制非常強(qiáng)的東西,用FPGA就是很不方便了,用狀態(tài)機(jī)的方式實(shí)現(xiàn),估計(jì)也要幾百上千行的代碼,而用C實(shí)現(xiàn)的話簡(jiǎn)單方便。如非必要,還是不要少讓FPGA干那些串行機(jī)制太強(qiáng)的活,多干些數(shù)據(jù)搬運(yùn)的工作。
FPGA應(yīng)用方面,在通信方面的應(yīng)用還最為廣泛的,但是FPGA承擔(dān)的角色主要還是高速數(shù)據(jù)搬移、高速數(shù)學(xué)運(yùn)算與數(shù)據(jù)處理、ASIC/SoC的原型驗(yàn)證。
雖然現(xiàn)在出現(xiàn)了異構(gòu)并行計(jì)算的趨勢(shì),但還不是主流,OpenCL也可以實(shí)現(xiàn)到FPGA上,在能效上FPGA也比GPU高一到兩個(gè)數(shù)量級(jí),以前運(yùn)行在GPU上工程也能夠移植到FPGA上運(yùn)行,運(yùn)行速度方面也有很大的提升,但是其所帶來的資源使用率還是個(gè)很大的問題,畢竟成本太高,開發(fā)難度也上了一個(gè)臺(tái)階,開發(fā)者要掌握的知識(shí)量也是很大的(算法層面、器件實(shí)現(xiàn)層面、并行計(jì)算層面)。異構(gòu)并行計(jì)算國(guó)內(nèi)目前估計(jì)沒幾家在研究,百度在這方面走在了前沿,需要用到更加高級(jí)的計(jì)算能力來支撐其龐大的業(yè)務(wù)和大量的數(shù)據(jù)計(jì)算,由此百度開始嘗試用FPGA打造AI專有芯片,并成就了第一版AI專有芯片版百度大腦——FPGA版百度大腦。這使得百度成為了全球最早將FPGA規(guī)模應(yīng)用在人工智能領(lǐng)域的公司,也和Altera開啟了合作。同時(shí),也有應(yīng)用于金融超級(jí)計(jì)算,單純用超級(jí)計(jì)算機(jī),需要運(yùn)行238秒,而在超級(jí)計(jì)算機(jī)中添加FPGA,運(yùn)行只需要12秒。但是,目前離FPGA廣泛用于異構(gòu)并行計(jì)算還有距離。
對(duì)于目前開始火熱起來的VR、MR,估計(jì)FPGA的應(yīng)用主要是在前期asic驗(yàn)證或者是作為一個(gè)數(shù)據(jù)協(xié)處理器件,畢竟VR和MR面臨的是消費(fèi)類電子產(chǎn)品,成本是關(guān)鍵,ASIC才是VR投向市場(chǎng)的關(guān)鍵所在。
電子產(chǎn)品朝著一板一芯片,一芯片多核的形勢(shì)短期之內(nèi)不會(huì)改變,F(xiàn)PGA硬件上該集成的已經(jīng)集成了,Altera三年前的設(shè)計(jì)藍(lán)圖已經(jīng)完成,未來如何走向還是很期待。作為FPGA器件開發(fā),要掌握的知識(shí)越來越多,面對(duì)市場(chǎng)的少而精轉(zhuǎn)變?yōu)樯俣?,F(xiàn)PGA的門檻感覺也越來越高,畢竟這個(gè)行業(yè)發(fā)展太快了,所以,從功利的角度上來講,如果是只是為了找工作的話,應(yīng)該去選擇那些就業(yè)概率更大的技術(shù)學(xué)習(xí),如果對(duì)FPGA、對(duì)并行計(jì)算感興趣的話,就堅(jiān)持學(xué)習(xí)下去,這方面還是有未來的。