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