Intel和AMD都斥巨資收購了領(lǐng)先的FPGA公司。撇開相對(duì)較小的嵌入式計(jì)算和通信/互聯(lián)網(wǎng)市場(chǎng),這些基本上是對(duì)FPGA作為數(shù)據(jù)中心服務(wù)器CPU的關(guān)鍵組合的未來的賭注。但除非克服了在軟件程序員工作的難題和設(shè)備管理方面的主要挑戰(zhàn),否則這種組合將是個(gè)未知數(shù)。理解為什么AMD對(duì)FPGA供應(yīng)商Xilinx如此感興趣,或者說Intel多年前為何對(duì)Altera感興趣,有助于了解FPGA到底是什么,以及這些設(shè)備在目前芯片行業(yè)中發(fā)揮什么作用。人們的想法很簡(jiǎn)單,不幸的是,事實(shí)正是被這種簡(jiǎn)單的想法和許多復(fù)雜的技術(shù)所掩蓋。首先是名字。FPGA是Filed-Programmable Gate Array的縮寫,這個(gè)市場(chǎng)化的術(shù)語其實(shí)非常不合適,因?yàn)檫@些設(shè)備既不是可編程的,也不是門陣列。它們是工程師設(shè)計(jì)和構(gòu)建集成電路的方式中一些困難問題的解決方案。
與主流芯片(CPU、GPU、ASIC)的對(duì)比,優(yōu)勢(shì)何在?
今天幾乎所有復(fù)雜的數(shù)字IC都是通過單一任務(wù)鏈來構(gòu)建的,即曾經(jīng)被稱為ASIC(Application-Specific IC)的設(shè)計(jì)流程。確定了對(duì)芯片要求的精確表述后,設(shè)計(jì)者收集一系列的功能塊:處理器、內(nèi)存模塊、加速器功能和專用控制器,它們共同滿足了要求。這些模塊中的大多數(shù)都采用的IP,并從供應(yīng)商庫中提取。少數(shù)沒有這種形式的,設(shè)計(jì)者將用HDL(Hardware Description Language)來描述,但不要與C++或Python等編程語言混淆。編程語言描述了一個(gè)處理器應(yīng)該執(zhí)行的一系列步驟,以執(zhí)行一個(gè)算法。HDL描述的是一塊硬件的結(jié)構(gòu),而不是一連串的事件。然后,設(shè)計(jì)工具將這些IP模塊和HDL描述組合成一個(gè)邏輯元素、寄存器和連接它們的線段的列表,即一個(gè)SoC的基本部分。然后,設(shè)計(jì)團(tuán)隊(duì)詳盡地測(cè)試這個(gè)所謂的網(wǎng)表。隨后的工具通過幾個(gè)曲折的步驟將網(wǎng)表轉(zhuǎn)換為代表即將在SoC上制造的實(shí)際晶體管和導(dǎo)線的形式,然后轉(zhuǎn)換為在芯片上打印這些特征的圖案。
大量的數(shù)據(jù)要經(jīng)過更多的測(cè)試,然后被送到掩膜車間和制造實(shí)際集成電路的工廠。這個(gè)過程可以制造出相當(dāng)接近底層芯片工藝的潛在最大密度、速度和能效的集成電路。但它需要大量的時(shí)間,從需求到第一塊芯片誕生需要9個(gè)月的時(shí)間,這并不罕見,如果有設(shè)計(jì)錯(cuò)誤、需求變化或工廠的延誤,從開始到結(jié)束的鏈條很容易達(dá)到一年或更長時(shí)間。而且還有大量的初始成本,不僅包括設(shè)計(jì)團(tuán)隊(duì)的工作,還有一套掩模和最初運(yùn)行芯片的昂貴的成本。
在許多情況下,例如不確定的設(shè)計(jì)要求,在快速發(fā)展的市場(chǎng)或小批量的生產(chǎn),ASIC方法并不理想。FPGA來救場(chǎng)FPGA正是為了解決這個(gè)問題而出現(xiàn)的。但FPGA的密度和速度會(huì)降低,功耗也大幅增加,F(xiàn)PGA讓設(shè)計(jì)團(tuán)隊(duì)實(shí)際上跳過了網(wǎng)表開發(fā)后的所有步驟。相反,設(shè)計(jì)者直接將網(wǎng)表實(shí)施在現(xiàn)成的FPGA芯片中。這可以節(jié)省幾個(gè)月的后端芯片設(shè)計(jì)時(shí)間和掩膜車間及制造時(shí)間,以及數(shù)萬美元的前期費(fèi)用。FPGA集成電路的單價(jià)會(huì)大大高于同類ASIC芯片的量產(chǎn)單價(jià)。但通常,如果設(shè)計(jì)發(fā)生變化或產(chǎn)量較低,ASIC攤銷后的單位成本實(shí)際上可能高于FPGA。全球FPGA 市場(chǎng)規(guī)模不斷擴(kuò)大,中國市場(chǎng)增速更是快于全球。FPGA下游應(yīng)用市場(chǎng)廣泛,隨著5G技術(shù)的提升、AI的推進(jìn)以及汽車自動(dòng)化趨勢(shì)的演進(jìn),全球FPGA市場(chǎng)規(guī)模將穩(wěn)步增長。Frost&Sullivan,預(yù)計(jì)全球 FPGA需求將從2021年 68.6 億美元增長為2025年125.8億美元,年均復(fù)合增長率約為 16.4%。
全球 FPGA 市場(chǎng)規(guī)模 中國市場(chǎng)增速更是快于全球。隨著國產(chǎn)替代進(jìn)程的進(jìn)一步加速,近年來,中國 FPGA 芯片市場(chǎng)規(guī)模持續(xù)上升,從2016 年的 65.5 億元增長至 2020 年的 150.3 億元,年復(fù)合增長率達(dá) 23.1%。據(jù)預(yù)測(cè),至 2025 年中國 FPGA 市場(chǎng)規(guī)模將進(jìn)一步提升至 332.2 億元,2021-2025 年的復(fù)合增長率為 17.1%,高于全球 FPGA 市場(chǎng)的 10.85%。
中國 FPGA 市場(chǎng)規(guī)模FPGA 芯片國外起步較早,技術(shù)積累深厚,高度壟斷市場(chǎng)。在全球FPGA 市場(chǎng)中,主要被Xilinx(已被AMD收購)和Intel兩家海外企業(yè)雙寡頭壟斷,在2019年,兩家合計(jì)占據(jù)了全球市場(chǎng)份額的85%以上。由于技術(shù)壁壘高、更新?lián)Q代速度快,全球 FPGA 市場(chǎng)高度集中,國內(nèi)廠商占比較低。
2019 年全球 FPGA 市場(chǎng)競(jìng)爭(zhēng)格局 國內(nèi) FPGA 市場(chǎng)起步較晚,技術(shù)層面仍存在較大差距。目前Xilinx、Intel、Lattice三家供應(yīng)商占據(jù)中國約80%FPGA市場(chǎng)份額。盡管國外廠商占比仍然較高,在國產(chǎn)化趨勢(shì)下,但國內(nèi)廠商有所突破,中國FPGA市場(chǎng)的成長將助力國內(nèi)企業(yè)占據(jù)市場(chǎng)份額。國內(nèi)FPGA市場(chǎng)起步較晚,相關(guān)技術(shù)人員匱乏,主要面向低密度市場(chǎng)擴(kuò)展自身份額,逐步實(shí)現(xiàn)國產(chǎn)替代。
雖然國內(nèi)FPGA廠商有百家爭(zhēng)鳴之勢(shì),但基本分布在中低端市場(chǎng),大多是一些1000萬門級(jí)左右的FPGA,少數(shù)達(dá)到2000萬門級(jí)的FPGA雖然也有自主研發(fā)的,有一些是逆向工程的產(chǎn)物,或商業(yè)收購的結(jié)果。從技術(shù)水平上看,國內(nèi)廠商與國際龍頭仍存在較大差距。但隨著國內(nèi)企業(yè)加大研發(fā)布局,其設(shè)計(jì)能力已有較大提升,如復(fù)旦微 28nm 制程億門級(jí) FPGA 芯片已實(shí)現(xiàn)量產(chǎn)出貨;安路科技 28nm產(chǎn)品已正式量產(chǎn),F(xiàn)inFET 工藝產(chǎn)品已開展預(yù)研。隨著國內(nèi)企業(yè)的進(jìn)一步研發(fā),有望逐步縮小與國際先進(jìn)水平的差距,在國產(chǎn)化趨勢(shì)下擴(kuò)大國內(nèi)市場(chǎng)份額。
FPGA 芯片最大的特點(diǎn)是可編程性,可通過改變芯片內(nèi)部連接結(jié)構(gòu),實(shí)現(xiàn)任何邏輯功能。其應(yīng)用領(lǐng)域最初為通信領(lǐng)域,但目前,隨著信息產(chǎn)業(yè)和微電子技術(shù)的發(fā)展,可編程邏輯嵌入式系統(tǒng)設(shè)計(jì)技術(shù)已經(jīng)成為信息產(chǎn)業(yè)最熱門的技術(shù)之一,應(yīng)用范圍遍及人工智能、數(shù)據(jù)中心、醫(yī)療、通訊、5G、安防、汽車電子、工業(yè)等多個(gè)熱門領(lǐng)域。并隨著工藝的進(jìn)步和技術(shù)的發(fā)展,向更多、更廣泛的應(yīng)用領(lǐng)域擴(kuò)展。越來越多的設(shè)計(jì)也開始以ASIC轉(zhuǎn)向FPGA,F(xiàn)PGA正以各種電子產(chǎn)品的形式進(jìn)入我們?nèi)粘I畹母鱾€(gè)角落。隨著應(yīng)用場(chǎng)景對(duì)FPGA的需求持續(xù)提升,再加上5G、人工智能、大數(shù)據(jù)、自動(dòng)駕駛、物聯(lián)網(wǎng)的發(fā)展推動(dòng)中國FPGA市場(chǎng)擴(kuò)張,刺激增量需求釋放,從行業(yè)發(fā)展趨勢(shì)來看,F(xiàn)PGA潛力被嚴(yán)重低估,未來大有可為。對(duì)于人工智能而言,算法正處于快速迭代中。雖然ASIC芯片可以獲得最優(yōu)的性能,即面積利用率高、速度快、功耗低;但是AISC開發(fā)風(fēng)險(xiǎn)極大,需要有足夠大的市場(chǎng)來保證成本價(jià)格,而且從研發(fā)到市場(chǎng)的周期很長,不適合例如深度學(xué)習(xí)、CNN等算法正在快速迭代的領(lǐng)域。FPGA正好能適用于人工智能領(lǐng)域,滿足高速并行計(jì)算的需求,基于全球人工智能市場(chǎng)大熱,這也刺激了FPGA的市場(chǎng),有利于FPGA產(chǎn)業(yè)的發(fā)展。
FPGA工程師核心競(jìng)爭(zhēng)力是什么?
對(duì)于FPGA工程師的核心競(jìng)爭(zhēng)力,其實(shí)FPGA工程師在真正工業(yè)界還是有細(xì)分的,大致可以分為兩部分,做IC原型驗(yàn)證的(包括design和verification),用FPGA開發(fā)產(chǎn)品的。做IC原型驗(yàn)證大多不需要了解算法,只是根據(jù)設(shè)計(jì)人員的設(shè)計(jì)框圖實(shí)現(xiàn)邏輯(大公司);做產(chǎn)品開發(fā)的可能離具體的應(yīng)用和算法更近一些,相當(dāng)于將特定應(yīng)用和算法做硬件實(shí)現(xiàn)。我這里講的更加側(cè)重的是做FPGA實(shí)現(xiàn)這類的工程師(包括IC原型驗(yàn)證的design和產(chǎn)品設(shè)計(jì)的design)。我將更細(xì)致的給出一些我認(rèn)為重要的能力。
1、 RTL設(shè)計(jì)實(shí)現(xiàn)能力。
關(guān)于FPGA工程師的核心競(jìng)爭(zhēng)力,很多人會(huì)提到算法實(shí)現(xiàn)能力,我將這歸結(jié)為RTL設(shè)計(jì)實(shí)現(xiàn)能力的一部分,RTL實(shí)現(xiàn)是FPGA工程師或者說HDL開發(fā)人員的入門首先接觸到的東西,我將其總結(jié)為如下幾點(diǎn):
a、 硬件的實(shí)現(xiàn)思路HDL設(shè)計(jì)實(shí)現(xiàn)和軟件實(shí)現(xiàn)的思路不同,HDL作為一種描述語言,側(cè)重的是對(duì)硬件的映射和連接關(guān)系的描述,當(dāng)然也有邏輯、處理的實(shí)現(xiàn),但歸根揭底所有的邏輯都是在硬件上實(shí)現(xiàn)的,最終都會(huì)映射為加法器,乘法器,狀態(tài)機(jī),計(jì)數(shù)器,編碼器(優(yōu)先),解碼器等等一些列硬件資源,對(duì)于邏輯拆解和抽象能力將直接關(guān)系到最終編碼的效率。簡(jiǎn)單的來說,好的HDL編碼人員編寫的代碼更容易被編譯器綜合,對(duì)于初學(xué)者來講,編譯器的綜合(包括后續(xù)Map布局布線)時(shí)間以及warning數(shù)量以及最后綜合出來資源和你預(yù)先設(shè)計(jì)的吻合程度可以做為考量HDL代碼好壞的一種方式。
b、 資源和時(shí)序的優(yōu)化能力資源和時(shí)序的優(yōu)化能力是作為FPGA(ASIC)開發(fā)人員進(jìn)階的能力,這里就需要大量的經(jīng)驗(yàn)和反復(fù)的迭代,不斷對(duì)硬件(FPGA底層結(jié)構(gòu))深入理解才能夠達(dá)到。對(duì)于FPGA來講和ASIC設(shè)計(jì)有所不同,ASIC的硬件實(shí)現(xiàn)很多是由綜合器決定的(比如用什么樣的乘法器),但是對(duì)于FPGA來講,資源全部是固定的,F(xiàn)PGA資源可以分為三塊,運(yùn)算邏輯(LUT DSP carry chain等),存儲(chǔ)單元(REG SRL BRAM DRAM),IO(各種高速低速接口),相同的算法應(yīng)用可以用不同的資源,不同資源的組合方式來實(shí)現(xiàn)。那么如何用更少的資源,更快的主頻實(shí)現(xiàn)某一算法,這就需要有很強(qiáng)的資源和時(shí)序優(yōu)化能力,通常這種優(yōu)化是經(jīng)過多次迭代的,當(dāng)然通常頂層的設(shè)計(jì)人員會(huì)對(duì)系統(tǒng)層次的資源和時(shí)序有著較為準(zhǔn)確的把握,也會(huì)給出各個(gè)模塊的設(shè)計(jì)指標(biāo)和邊界,但是不同開發(fā)人員水平和能力最終設(shè)計(jì)的結(jié)果是不一樣的,好的資源和時(shí)序優(yōu)化能力是FPGA工程師的重要競(jìng)爭(zhēng)力。再反過頭來說軟件開發(fā),其實(shí)從優(yōu)化上來講和RTL設(shè)計(jì)或者說HDL開發(fā)沒什么不同,好的軟件設(shè)計(jì)人員更了解計(jì)算機(jī)底層,對(duì)于資源(時(shí)間,空間)的使用,對(duì)于算法的效率的分析也更加深刻,因此也能寫出更好的軟件代碼,我覺得在這一層面上無論軟件還是硬件開發(fā)都是對(duì)于邏輯的抽象能力(當(dāng)然術(shù)有所不同)。
2、 硬件調(diào)試能力。
調(diào)試能力,也是作為FPGA開發(fā)人員和所有從事硬件開發(fā)人員都一直認(rèn)可的能力或者說核心競(jìng)爭(zhēng)力。舉個(gè)例子,在找工作的時(shí)候如果你能向別人展示出你無與倫比的調(diào)試能力,別人沒有理由不要你。調(diào)試能力需要大量的現(xiàn)場(chǎng)經(jīng)驗(yàn)作為積累,同時(shí)也需要人的邏輯分析能力,當(dāng)然還需要耐心,細(xì)致等等人的高尚品質(zhì) ,這里我也做一個(gè)小小的總結(jié)。
a、 FPGA本身調(diào)試工具的使用
我想這里又可以分為兩個(gè)階段,仿真和上板調(diào)試,仿真我想作為FPGA工程師都不陌生,大型的開發(fā),通常有多個(gè)不同層次的模型,基本算法原理的模型,硬件仿真模型(通過C或matlab做定點(diǎn)仿真),然后再試HDL仿真模型(通過modelsim仿真最后的實(shí)現(xiàn)),仿真是一門很大的學(xué)問,現(xiàn)在都有專門的verification人員做。但是對(duì)于普通FPGA開發(fā)人員來京,如何利用仿真這個(gè)工具來高效率的調(diào)試是一個(gè)值得思考的問題,一些異步的輸入情況如何用仿真來排除問題,上板調(diào)試發(fā)現(xiàn)問題,根據(jù)問題輸入情況仿真排除問題,這些都是利用FPGA仿真工具來調(diào)試的手段。對(duì)于上板調(diào)試,主要就是利用chipsocpe添加調(diào)試信號(hào),這里又涉及到如何利用有限資源(chipsocpe信號(hào)數(shù)量和深度)來排除問題,通常在上板調(diào)試發(fā)現(xiàn)問題后,仿真又無法定位解決(仿真是有和硬件不一致的情況的,比如一些RAM沖突的問題)。經(jīng)過分析加入合適的調(diào)試信號(hào),設(shè)置合適的觸發(fā)條件,然后定位排除問題。這些說起來容易,實(shí)際還是需要大量的上板經(jīng)驗(yàn),特別是大型系統(tǒng)的調(diào)試經(jīng)歷不斷磨練提升。此外還有一些應(yīng)用需要配合外部儀器來獲取更多信息幫助定位問題,包括示波器,譜分析儀,網(wǎng)絡(luò)分析儀等常用實(shí)驗(yàn)室儀器。
b、問題定位分析能力上面講的是都是利用工具來進(jìn)行調(diào)試,但是硬件比軟件難得地方就在于其調(diào)試的復(fù)雜性,很多時(shí)候無法利用工具進(jìn)行問題的定位,比如現(xiàn)象無法復(fù)現(xiàn),輸入條件隨機(jī)或者過于復(fù)雜,涉及模塊邏輯很多等等情況,這時(shí)候去定位問題大多靠想,就是邏輯分析來排出問題。我認(rèn)為這是FPGA工程師真正的核心競(jìng)爭(zhēng)力,因?yàn)檫@不僅僅需要經(jīng)驗(yàn)的積累,同時(shí)還需要很好的邏輯思維和分析能力。
c、系統(tǒng)調(diào)試能力系統(tǒng)調(diào)試能力是更加難得一項(xiàng)能力,通常做到系統(tǒng)層次的人員不會(huì)再具體的寫代碼或者上手調(diào)了,當(dāng)然對(duì)于小團(tuán)隊(duì)小公司還是得自己上手。系統(tǒng)層面的調(diào)試能力一方面是對(duì)FPGA頂層的調(diào)試能力,各個(gè)模塊構(gòu)成的片上系統(tǒng)的問題分析定位能力。通常各個(gè)模塊在系統(tǒng)聯(lián)調(diào)之前都是經(jīng)過驗(yàn)證的,但是在聯(lián)調(diào)的時(shí)候還是會(huì)出現(xiàn)各種各樣的問題,這時(shí)候的問題反饋的信息更加少,設(shè)計(jì)的邏輯模塊更加多,如何一步步抽絲撥繭定位到問題所在,并且采用什么樣的方式去解決(這時(shí)候通常不是單獨(dú)解決一個(gè)內(nèi)部模塊就行的),都需要很深厚的功力。另外一方面是整個(gè)硬件軟件系統(tǒng)層次的調(diào)試能力,要看得懂原理圖PCB,懂硬件,了解軟件接口,現(xiàn)在FPGA越來越講究Hardware Software Co-design,軟件硬件這個(gè)系統(tǒng)層次的調(diào)試能力對(duì)人的要求更加高,當(dāng)然這通常已經(jīng)遠(yuǎn)離了通常FPGA工程師的職責(zé),但是我認(rèn)為這是作為FPGA工程師上升通道中的重要能力。
3、更加高層次的更加高層次的東西,我個(gè)人的理解,還是系統(tǒng)層次的東西,算法和架構(gòu)。怎樣將一系列數(shù)學(xué)公式,轉(zhuǎn)換為算法,再最終形成系統(tǒng)硬件的實(shí)現(xiàn);整個(gè)系統(tǒng)采用什么樣的架構(gòu),純FPGA,arm FPGA,DSP FPGA,SOC FPGA;FPGA頂層采用什么架構(gòu),通用總線還是自定義總線,如何考慮通用性和可擴(kuò)展性等等。再大至什么樣的應(yīng)用適合用FPGA實(shí)現(xiàn),什么樣的問題適合軟件實(shí)現(xiàn),怎樣的組合能更加低成本高效率的解決問題,這一些列問題涉及的東西就很多了,我講的都是以FPGA為核心做開發(fā)要面臨的問題,其實(shí)其他平臺(tái)的硬件、軟件產(chǎn)品都是類似,系統(tǒng)層面的問題都是復(fù)雜的問題,同時(shí)我也認(rèn)為,從系統(tǒng)層面去優(yōu)化,解決問題才是最高效率的方式。歸根結(jié)底,一個(gè)FPGA工程師的核心競(jìng)爭(zhēng)力來源于深厚的技術(shù)功底,但是技術(shù)功底也并非通過一天練成的,最重要的是時(shí)間的積累,不斷的鉆研以及真正的興趣。
更多信息可以來這里獲取==>>電子技術(shù)應(yīng)用-AET<<