首頁 > 常見問題 > 主體

fpga是什麼

青灯夜游
發布: 2023-01-29 15:59:43
原創
54699 人瀏覽過

FPGA是一種以數位電路為主的整合晶片,屬於可程式邏輯元件(Programmable Logic Device,PLD)的一種;FPGA是作為專用積體電路(ASIC)領域中的一種半定制電路而出現的,既解決了定制電路的不足,也克服了原有可編程器件門電路數有限的缺點。

fpga是什麼

本教學操作環境:windows7系統、Dell G3電腦。

fpga是什麼

FPGA(Field Programmable Gate Array)是在PAL (可程式陣列邏輯)、GAL(通用陣列邏輯)等可程式裝置的基礎上進一步發展的產物。它是作為專用集成電路(ASIC)領域中的一種半定制電路而出現的,既解決了定制電路的不足,又克服了原有可編程器件門電路數有限的缺點。

FPGA本質也是一種晶片,是一種以數位電路為主的整合晶片。

FPGA於 1985 年由 Xilinx 創始人之一 Ross Freeman 發明,屬於可程式邏輯元件(Programmable Logic Device,PLD)的一種。這個時間比著名的摩爾定律出現的時間晚 20 年左右,但是 FPGA 一發明,後續的發展速度之快,超出大多數人的想像。

圖1 中給出了FPGA 晶片的實體圖:

fpga是什麼
圖1 FPGA晶片實體圖

FPGA 發展歷程

在PLD 未發明之前,工程師使用包含若干個邏輯閘的離散邏輯晶片進行電路系統的搭建,複雜的邏輯功能實現起來較為困難。

為了解決這個問題,20 世紀70 年代,可程式邏輯陣列(Programmable Logic Array,PLA)問世,PLA 中包含了一些固定數量的與閘、非門,分別組成了「與平面”和“或平面”,即“與連接矩陣”和“或連接矩陣”,以及僅可編程一次的連接矩陣(因為此處編程是基於熔絲工藝的),因此可以實現一些相對複雜的與、或多項表達式的邏輯功能,PLA 內部結構如圖2 所示:


圖2 PLA內部結構

與PLA 同時問世的還有可編程唯讀記憶體(Programmable Read-Only Memory,PROM),其內部結構如圖3 所示。與 PLA 相同,PROM 內部包含“與連接矩陣”和“或連接矩陣”,但是與閘的連接矩陣是硬體固定的,只有或閘的連接矩陣可編程。


圖3 PROM內部結構

若只有與閘的連接矩陣可編程,而或閘的連接矩陣是硬體固定的,那麼這種晶片叫作可程式陣列邏輯裝置(Programmable Array Logic,PAL),根據輸出電路工作模式的不同,PAL 可分為三態輸出、暫存器輸出、互補輸出,但PAL 仍使用熔絲工藝,只可程式一次。 PAL 的結構圖如圖 4 所示。


圖4 PAL結構圖

在PAL 的基礎上,又發展出了通用陣列邏輯元件(Generic Array Logic,GAL),相比於PAL,GAL 有兩點改進:

  • 採用了電可擦除的CMOS 工藝,可多次編譯,增強了裝置的可重配置性和靈活性;
  • 採用了可程式化的輸出邏輯宏單元(Output Logic Macro Cell,OLMC),透過程式設計OLMC 可將GAL 的輸出設定成不同狀態,僅用一個型號的GAL就可以實現所有PAL裝置輸出電路的工作模式,增強了裝置的通用性。

GAL 的結構圖如圖5 所示:


圖5 GAL結構圖

早期的PLD 主要由上述四種類型的晶片組成,即PROM、PLA、PAL 和GAL。它們的共同特點是可以實現速度特性較好的邏輯功能,但由於其結構過於簡單,所以只能實現規模較小的數位電路。

隨著科技的發展、社會的進步,人們對晶片的整合度要求越來越高。早期的 PLD 產品無法滿足人們的需求,複雜可程式邏輯裝置(Complex Programmable Logic Device,CPLD)誕生。可以把 CPLD 看作 PLA 裝置結構的延續,一個 CPLD 元件也可以看作若干個 PLA 和一個可程式連接矩陣的集合。 CPLD 的內部結構圖如圖 6 所示。


圖 6 CPLD結構圖

FPGA 比 CPLD 早幾年問世,與 CPLD 並稱為高密度可程式邏輯元件,但它們有著本質上的差異。 FPGA 晶片的內部架構並沒有沿用類似PLA 的結構,而是採用了邏輯單元陣列(Logic Cell Array,LCA)這樣一個概念,改變了以往PLD 裝置大量使用與閘、非閘的思想,主要使用查找表和寄存器。

除此之外,FPGA 和 CPLD 在資源類型、速度等方面也有差異,如下表所示。

##FPGACPLD 內部結構查找表(Look Up Table)乘積項(Product Term)程式儲存內部為SRAM 結構,外掛EEPROM 或Flash 儲存程式在內部為EEPROM 或Flash資源類型觸發器資源豐富組合邏輯資源豐富集成度高使用場合完成比較複雜的演算法完成控制邏輯速度#慢
表:FPGA與CPLD的效能比較
裝置種類/特性
##快
######其他資源######RAM、PLL、DSP 等######——############保密性######一般不能保密(可以使用加密核)#######可加密############

FPGA 的類型從內部實現機制來講,可以分為基於 SRAM 技術、基於反熔絲技術、基於 EEPROM/Flash 技術。就電路結構來講,FPGA 可程式化是指三個方面的可程式化:可程式邏輯塊、可程式化 I/O、可程式佈線資源。可程式邏輯塊是 FPGA 可程式設計的核心,我們上面提到的三種技術也是針對可程式邏輯塊的技術。

FPGA 的結構圖如圖 7 所示。


圖7 FPGA結構圖

FPGA 的技術優勢

許多讀者都知道FPGA功能強大,但它強大在哪裡?

以單晶片舉例說明,我們都知道,單晶片功能強大,幾乎無所不能,而 FPGA 與之相比只強不弱。因為只要單晶片能實現的功能,FPGA 就一定能實現,當然這需要加一個大前提──在 FPGA 資源夠多的情況下。但是 FPGA 能實現的功能,單晶片不一定能夠輕鬆實現,這是不爭的事實,如果你不相信,那隻能說明你還不了解 FPGA。

說到這裡,讀者不禁要問,既然 FPGA 這麼厲害,為什麼單晶片的使用範圍更廣?那是因為在商業中,價格往往是影響產品的重要因素之一。

單晶片的價格遠低於FPGA,而且根據性能和資源的不同,FPGA 的價格也存在很大差異,單枚FPGA 晶片的價格從幾十元到幾十萬元不等。與之相比,單晶片的價格便宜很多,同樣的功能我們如果可以用價格低廉的單晶片實現,就不會選擇相對昂貴的 FPGA 了,除非單晶片滿足不了功能需求。所以公司自己進行開發時,為了節省成本,可能會選擇更便宜的單晶片,而不會選擇相對昂貴的 FPGA,因為單晶片、ARM 這種微處理器的需求很大,所以價格上更有優勢。

但無論是單晶片、ARM 或 FPGA,它們都只是一種幫助我們實現功能的工具,具體如何選擇,需要根據具體問題具體分析。總之,沒有萬能的工具,只有符合生產需求的工具。我們不應對某種工具有偏見,要綜合考量。同樣,當你了解更多的時候,你會發現這些工具都需要掌握。

FPGA 的應用場景遠沒有單晶片和 ARM 這麼多,主要針對單晶片和 ARM 無法解決的問題。例如要求靈活高效、高吞吐量、低批量延時、快速並行運算、可重構、可重複編程、可實現客製化效能和客製化功耗的情況,這些工作只能由FPGA承擔。

而相對於為專門目的而設計的積體電路(Application Specific Integrated Circuit,ASIC),FPGA 具有3 點優勢:

#1) 彈性

透過對FPGA 編程,FPGA 可以執行ASIC 能夠執行的任何邏輯功能。 FPGA 的獨特優勢在於其靈活性,即隨時可以改變晶片功能,在技術還未成熟的階段,這種特性能夠降低產品的成本與風險,在 5G 技術普及初期,這種特性尤為重要。

2) 上市時間縮短

對FPGA 編程後即可直接使用,FPGA 方案無須經歷三個月至一年的晶片流片週期,為企業爭取了產品上市時間。

3) 有一定成本優勢

FPGA 與ASIC 的主要差異在於ASIC 方案有固定成本而FPGA 方案幾乎沒有,在使用量小的時候,採用FPGA 方案無須一次支付數百萬美元的流片成本,同時也不用承擔流片失敗的風險,此時FPGA 方案的成本低於ASIC 的,隨著使用量增加,FPGA 方案在成本上的優勢逐漸減少,超過某一使用量後,由於大量流片產生了規模經濟,因此ASIC 方案在成本上更有優勢,如下圖所示:


圖8 FPGA方案與ASIC方案的成本比較

因此,FPGA 通常在數位訊號處理、視訊處理、影像處理、5G 通訊領域、醫療領域、工業控制、雲端服務、加速運算、人工智慧、資料中心、自動駕駛、晶片驗證等領域發揮著不可取代的作用。只有掌握了通用的 FPGA 設計方法,才能在 FPGA 獨領風騷的領域中大展宏圖。

FPGA的應用方向

FPGA 介於軟體和硬體之間,用它做介面、做通信,它就偏向硬體;用它做演算法、做控制,它就偏向軟體。隨著人工智慧、機器視覺的崛起,FPGA 更加偏向軟體演算法的異構,有和 GPU 一爭高下的潛力。

FPGA 與 GPU 效能比較圖如圖 9 所示:


#圖 9 FPGA與GPU的效能比較圖

FPGA 軟體方向:以軟體開發為主,開發 FPGA 在資料分析、人工智慧、機器視覺等領域的加速應用能力,主要採用 OpenCL 和 HLS 技術實現軟硬體協同開發。

FPGA 硬體方向:以邏輯設計為主,針對FPGA特定領域的應用設計、積體電路設計以及晶片驗證能力。

FPGA 最初的應用領域是通訊領域,但隨著資訊產業和微電子技術的發展,FPGA 技術已成為資訊產業最熱門的技術之一,應用範圍擴大,遍及航空航太、汽車、醫療、廣播、測試測量、消費性電子、工業控制等熱門領域,隨著製程的發展和技術的進步,從各個角度開始滲透到生活當中。

更多相關知識,請造訪常見問題欄位!

以上是fpga是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!