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

大多數(shù)FPGA的程序存儲器(FLASH)為什么都放在外面呢?FPGA的主要應用

FPGA與ASIC的區(qū)別 FPGA性能優(yōu)化技巧
ASIC集成電路如何提高系統(tǒng)效率
ASIC集成電路與FPGA的區(qū)別
FPGA和ASIC在大模型推理加速中的應用

FPGA與ASIC的優(yōu)缺點比較
FPGA仿真工具包軟件EasyGo Vs Addon介紹

評論