FPGA要取代ASIC了,這是FPGA廠商喊了十多年的口號(hào)??墒牵現(xiàn)PGA地盤(pán)占了不少,ASIC也依舊玩得愉快。這兩位仁兄到底有啥不一樣呢?
一、身份證
FPGA(Field-Programmable Gate Array),即現(xiàn)場(chǎng)可編程門(mén)陣列,是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專(zhuān)用集成電路(ASIC) 領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門(mén)電路數(shù)有限的缺點(diǎn)。它是當(dāng)今數(shù)字系統(tǒng)設(shè)計(jì)的主要硬件平臺(tái),其主要特點(diǎn)就是完全由用戶(hù)通過(guò)軟件進(jìn)行配置和編程,從而完成某種特定的功能,且可以反復(fù)擦寫(xiě)。在修改和升級(jí)時(shí),不需額外地改變PCB 電路板,只是在計(jì)算機(jī)上修改和更新程序,使硬件設(shè)計(jì)工作成為軟件開(kāi)發(fā)工作,縮短了系統(tǒng)設(shè)計(jì)的周期,提高了實(shí)現(xiàn)的靈活性并降低了成本。
ASIC(Application Specific Integrated Circuit),即專(zhuān)用集成電路,是一種為專(zhuān)門(mén)目的而設(shè)計(jì)的集成電路。是指應(yīng)特定用戶(hù)要求和特定電子系統(tǒng)的需要而設(shè)計(jì)、制造的集成電路。ASIC的特點(diǎn)是面向特定用戶(hù)的需求, ASIC分為全定制和半定制。亮點(diǎn)在于專(zhuān)用,量身定制所以執(zhí)行速度較快。一句話總結(jié)就是,市場(chǎng)上買(mǎi)不到的芯片。水果的A系列處理器就是典型的ASIC。
二、FPGA是可復(fù)用的
FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個(gè)概念,內(nèi)部包括可配置邏輯模塊CLB、輸出輸入模塊IOB和內(nèi)部連線三個(gè)部分?,F(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)是可編程器件。FPGA利用小型查找表(16×1RAM)來(lái)實(shí)現(xiàn)組合邏輯,每個(gè)查找表連接到一個(gè)D觸發(fā)器的輸入端,觸發(fā)器再來(lái)驅(qū)動(dòng)其他邏輯電路或驅(qū)動(dòng)I/O,由此構(gòu)成了即可實(shí)現(xiàn)組合邏輯功能又可實(shí)現(xiàn)時(shí)序邏輯功能的基本邏輯單元模塊,這些模塊間利用金屬連線互相連接或連接到I/O模塊。FPGA的邏輯是通過(guò)向內(nèi)部靜態(tài)存儲(chǔ)單元加載編程數(shù)據(jù)來(lái)實(shí)現(xiàn)的,存儲(chǔ)在存儲(chǔ)器單元中的值決定了邏輯單元的邏輯功能以及各模塊之間或模塊與I/O間的聯(lián)接方式,并最終決定了FPGA所能實(shí)現(xiàn)的功能。
FPGA的特點(diǎn):
加電時(shí),F(xiàn)PGA芯片將EPROM中數(shù)據(jù)讀入片內(nèi)編程RAM中,配置完成后,F(xiàn)PGA進(jìn)入工作狀態(tài)。掉電后,F(xiàn)PGA恢復(fù)成白片,內(nèi)部邏輯關(guān)系消失,因此,F(xiàn)PGA能夠反復(fù)使用。理論上,F(xiàn)PGA允許無(wú)限次的編程。?
FPGA的編程無(wú)須專(zhuān)用的FPGA編程器,只須用通用的EPROM、PROM編程器即可。
FPGA內(nèi)部有豐富的觸發(fā)器和I/O引腳。
快速成品,可以被修改來(lái)改正程序中的錯(cuò)誤和更便宜的造價(jià)。
用戶(hù)不需要介入芯片的布局布線和工藝問(wèn)題,而且可以隨時(shí)改變其邏輯功能,使用靈活。
圖 FPGA基本架構(gòu)
三、ASIC是為VIP服務(wù)的
ASIC是定制的,具體分為全定制和半定制。
全定制設(shè)計(jì)可以實(shí)現(xiàn)最小面積,最佳布線布局、最優(yōu)功耗速度,得到最好的電特性。特點(diǎn):精工細(xì)作,設(shè)計(jì)要求高、周期長(zhǎng),設(shè)計(jì)成本昂貴。
半定制設(shè)計(jì)方法又分成基于標(biāo)準(zhǔn)單元的設(shè)計(jì)方法CBIC和基于門(mén)陣列的設(shè)計(jì)方法。半定制主要適合于開(kāi)發(fā)周期短,低開(kāi)發(fā)成本、投資、風(fēng)險(xiǎn)小的小批量數(shù)字電路設(shè)計(jì)。
ASIC的特點(diǎn)是:
面向特定用戶(hù)的需求,ASIC在批量生產(chǎn)時(shí)與通用集成電路相比具有體積更小、功耗更低、可靠性提高、性能提高、保密性增強(qiáng)、成本降低等優(yōu)點(diǎn)。
ASIC需要較長(zhǎng)的開(kāi)發(fā)周期,風(fēng)險(xiǎn)較大,一旦有問(wèn)題,成片全部作廢,所以小公司已經(jīng)玩不起了。
圖 ASIC基本架構(gòu)
四、兩者的設(shè)計(jì)流程
圖 FPGA和ASIC設(shè)計(jì)流程
完整的FPGA設(shè)計(jì)流程包括功能描述、電路設(shè)計(jì)與輸入、功能仿真、綜合優(yōu)化、綜合后仿真、實(shí)現(xiàn)與布局布線、時(shí)序仿真、板級(jí)仿真與驗(yàn)證、調(diào)試與加載配置。
ASIC的設(shè)計(jì)流程(數(shù)字芯片)包括:功能描述、模塊劃分、模塊編碼輸入、模塊級(jí)仿真驗(yàn)證、系統(tǒng)集成和系統(tǒng)仿真驗(yàn)證、綜合、STA(靜態(tài)時(shí)序分析)、形式驗(yàn)證。
插一句,在ASIC 設(shè)計(jì)過(guò)程中,往往要用到FPGA 進(jìn)行原型驗(yàn)證。FPGA 驗(yàn)證是進(jìn)行ASIC 設(shè)計(jì)的重要環(huán)節(jié),其后,還需要引入ASIC 版本源碼,插入IO PAD,DFT,功耗估計(jì)和進(jìn)行其它后端流程。完成FPGA 驗(yàn)證可以說(shuō)就完成了ASIC 整套流程的50~80%。
從設(shè)計(jì)成本來(lái)考慮,小批量上FPGA占優(yōu),大批量時(shí),ASIC占優(yōu)。
?
FPGA本身就是一個(gè)芯片,只是你可以通過(guò)編程的方式修改內(nèi)部邏輯連接和配置實(shí)現(xiàn)自己想要的功能。實(shí)現(xiàn)ASIC,就如從一張白紙開(kāi)始,你得有代碼,之后綜合,之后布局,布線,得到GDSII后去流片。
五、比速度
相同的工藝和設(shè)計(jì),在FPGA上的速度應(yīng)該比ASIC跑得慢。因?yàn)镕PGA內(nèi)部是基于通用的結(jié)構(gòu),也就是LUT(look up table),它可以實(shí)現(xiàn)加法器,組合邏輯等等,而ASIC,一般加法器就是加法器,而比較器就是比較器,F(xiàn)PGA結(jié)構(gòu)上的通用性必然導(dǎo)致冗余;另外,作為FPGA基本單元是LUT(LUT組成SLICE,SLICE組成CLB--這是xilinx的結(jié)構(gòu)),為此大的設(shè)計(jì)假如一個(gè)LUT實(shí)現(xiàn)不了,就得用兩個(gè)LUT,一個(gè)SLICE實(shí)現(xiàn)不了就要用CLB,不同結(jié)構(gòu)處于特定的位置,信號(hào)之間的互聯(lián),導(dǎo)致的wire delay是不可忽略的一部分。而對(duì)于ASIC來(lái)說(shuō)沒(méi)有結(jié)構(gòu)上的限制,而且對(duì)于特定的實(shí)際可以在空間上靠得很近,相對(duì)之下wire delay和cell delay都應(yīng)該比FPGA小。當(dāng)然LUT中也有DFF,作為高速的設(shè)計(jì)一般都會(huì)在一個(gè)簡(jiǎn)單的組合邏輯操作之后打一拍,再做下一步的處理。
六、比個(gè)頭
完全相同的結(jié)構(gòu)的話,FPGA被ASIC遠(yuǎn)遠(yuǎn)踢飛。FPGA要規(guī)模大得多才能實(shí)現(xiàn)ASIC相同的功能,主頻還只有幾分之一。因此,F(xiàn)PGA相對(duì)于ASIC來(lái)說(shuō)還是大很多的。
七、功耗方面
在相同工藝條件下,F(xiàn)PGA要大于ASIC。FPGA,尤其是基于占用大量硅面積的、每個(gè)單元六個(gè)晶體管的靜態(tài)存儲(chǔ)器(SRAM)的查尋表(LUT)和配置元件技術(shù)的FPGA,其功耗要比對(duì)等的ASIC大得多。
八、比花的銀子
FPGA貴在單片,開(kāi)發(fā)工具和風(fēng)險(xiǎn)基本不存在。對(duì)于ASIC貴在流片的費(fèi)用和開(kāi)發(fā)工具,NRE費(fèi)用隨著工藝的提高變相當(dāng)貴,除非你的芯片一次成功可以量產(chǎn),否則單片費(fèi)用將其貴無(wú)比!
九、其他方面
ASIC用于大型項(xiàng)目,而對(duì)于需要快速投放市場(chǎng)且支持遠(yuǎn)程升級(jí)的小型項(xiàng)目,F(xiàn)PGA則更為適合。FPGA技術(shù)的主要優(yōu)勢(shì)仍是產(chǎn)品投放市場(chǎng)的時(shí)間較短。
在ASIC的優(yōu)勢(shì)方面,ASIC加電后可立即運(yùn)行,就單位邏輯大小而言封裝選擇更多,還可包括某些模擬邏輯。與此相對(duì)比,FPGA加載配置進(jìn)入存儲(chǔ)器需要時(shí)間,因此不能立即工作。此外,F(xiàn)PGA的封裝也較復(fù)雜。
除此之外,F(xiàn)PGA內(nèi)部還包括接口I/O,I/O分為普通I/O和高速I(mǎi)/O,高速I(mǎi)/O支持例如高速的SERDES,用于實(shí)現(xiàn)XAUI,PCIE等高速接口,這些接口動(dòng)輒幾Gbps到10Gbps以上。此外種類(lèi)多種多樣的硬核IP也是各FPGA廠商差異化競(jìng)爭(zhēng)利器,例如POWERPC、ARM等硬核IP。從而構(gòu)成CPU+FPGA于一體的集可編程性和可重構(gòu)的處理平臺(tái)。因此,相對(duì)來(lái)說(shuō),F(xiàn)PGA雖然發(fā)展有二三十年的歷史,其基本架構(gòu)一直不變不大。? ? ??
十、兩者的定位
FPGA和ASIC產(chǎn)品的使用要根據(jù)產(chǎn)品的定位和設(shè)計(jì)需要來(lái)選用,ASIC產(chǎn)品適用于設(shè)計(jì)規(guī)模特別大,如CPU、DSP或多層交換芯片等,或者是應(yīng)用于技術(shù)非常成熟且利潤(rùn)率非常低的產(chǎn)品,如家用電器和其它消費(fèi)類(lèi)電器,亦或是大量應(yīng)用的通用器件如RAM、PHY等。而FPGA產(chǎn)品適用于設(shè)計(jì)規(guī)模適中,產(chǎn)品要求快速占領(lǐng)市場(chǎng),或產(chǎn)品需要靈活變動(dòng)的特性設(shè)計(jì)等方面的產(chǎn)品,如PDH、2.5G以下SDH設(shè)備和大部分的接口轉(zhuǎn)換芯片等。當(dāng)然具體使用那種產(chǎn)品來(lái)設(shè)計(jì)還要設(shè)計(jì)者充分考慮自己的產(chǎn)品定位來(lái)決定。
十一、兩者在互相融合
最明顯的莫過(guò)于處理器中開(kāi)始集成FPGA,而可編程的ASIC也開(kāi)始興起。隨著SoC成為主流,兩者的邊界也就不辣么明顯了。
十二、最后奉上網(wǎng)友對(duì)FPGA比ASIC快的解釋
FPGA的LUT等資源已經(jīng)固定了,你用不用都在那里,不多不少。
ASIC理論上每一個(gè)你用到的CELL或者IP等資源你都可以手動(dòng)的擺放來(lái)進(jìn)行優(yōu)化。
FPGA的資源固定有兩個(gè)劣勢(shì):
劣勢(shì)一:能夠利用的資源是固定的,且不成大片,橫跨區(qū)域的產(chǎn)生邏輯,會(huì)退化時(shí)序。其實(shí)也就是你沒(méi)有辦法把邏輯盡可能的擺得近。邏輯擺得近可以減小線上的延遲,可以提高速度。ASIC的cell你可以全部的擠在一起(不違反DRC的前提下)。
如下圖所示啦,這就是一個(gè)FPGA的資源圖。
? ? 劣勢(shì)二:你的大小是固定的。你用1個(gè)門(mén)還是用10W個(gè)門(mén),都是這一片已經(jīng)固定好了的LUT給你用。如果你的邏輯很小很小,F(xiàn)PGA很大,你信號(hào)從IO進(jìn)來(lái)到邏輯,有可能會(huì)走比較長(zhǎng)的距離,這個(gè)也要花時(shí)間的。極端的例子,你從上部的IO進(jìn)來(lái),你的邏輯在下部,這走線的長(zhǎng)度感人啊。(正常的設(shè)計(jì)不會(huì)這么做的)
除此之外,F(xiàn)PGA的走線,你幾乎是動(dòng)不了的。
ASIC中你可以直接加寬金屬線,比如兩倍寬度走時(shí)鐘線,復(fù)位線啦,之類(lèi)的。金屬線寬度變大,線上的延遲變小,對(duì)速度也是有幫助的。
還有asic的庫(kù)一般還包含高性能cell,低功耗cell等。在關(guān)鍵路徑,為了提高時(shí)序,你全用高性能的cell(功耗大)。一般的路徑,時(shí)序比較松,多用低功耗的cell(性能低)。你FPGA一旦選定了,你就只有他給你的東西,你沒(méi)有選的。
ASIC還可以使用useful skew的方式來(lái)提高速度,手段會(huì)比FPGA中的多。
總的來(lái)說(shuō),就如同GPU和CPU一樣。GPU可以非??斓奶幚韴D像,但是讓GPU去處理其他的東西,GPU表示攤手。CPU很多的運(yùn)算都能處理,也能去處理圖像,只是慢而已。一旦你是沖著某個(gè)目的去的(ASIC)你為了實(shí)現(xiàn)這個(gè)目標(biāo),你各種沒(méi)節(jié)操?zèng)]下線都可以。如果你想要多方面兼顧(FPGA),你就不可能在每一個(gè)方面都做到最好,你必須trade-off。 審核編輯:黃飛
?
評(píng)論
查看更多