FPGA(現場可程式邏輯陣列)

FPGA

現場可程式邏輯陣列一般指本詞條

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

基本介紹

  • 中文名:現場可程式邏輯門陣列
  • 外文名:Field Programmable Gate Array
  • 簡稱:FPGA
  • 所屬類別:AI 晶片
簡介,基本結構,工作原理,晶片設計,優缺點,優點,缺點,設計語言及平台,行業套用,視頻分割系統,數據延遲器和存儲設計,通信行業,其它套用,

簡介

FPGA設計不是簡單的晶片研究,主要是利用 FPGA 的模式進行其他行業產品的設計。 與 ASIC 不同,FPGA在通信行業的套用比較廣泛。通過對全球FPGA產品市場以及相關供應商的分析,結合當前我國的實際情況以及國內領先的FPGA產品可以發現相關技術在未來的發展方向,對我國科技水平的全面提高具有非常重要的推動作用。
FPGA
FPGA
與傳統模式的晶片設計進行對比,FPGA 晶片並非單純局限於研究以及設計晶片,而是針對較多領域產品都能藉助特定晶片模型予以最佳化設計。從晶片器件的角度講,FPGA 本身構成 了半定製電路中的典型積體電路,其中含有數字管理模組、內嵌式單元、輸出單元以及輸入單元等。在此基礎上,關於FPGA晶片有必要全面著眼於綜合性的晶片最佳化設計,通過改進當前的晶片設計來增設全新的晶片功能,據此實現了晶片整體構造的簡化與性能提升。

基本結構

FPGA 器件屬於專用積體電路中的一種半定製電路,是可程式的邏輯列陣,能夠有效的解決原有的器件門電路數較少的問題。FPGA 的基本結構包括可程式輸入輸出單元,可配置邏輯塊,數字時鐘管理模組,嵌入式塊RAM,布線資源,內嵌專用硬核,底層內嵌功能單元。由於FPGA具有布線資源豐富,可重複編程和集成度高,投資較低的特點,在數字電路設計領域得到了廣泛的套用。FPGA的設計流程包括算法設計、代碼仿真以及設計、板機調試,設計者以及實際需求建立算法架構,利用EDA建立設計方案或HD編寫設計代碼,通過代碼仿真保證設計方案符合實際要求,最後進行板級調試,利用配置電路將相關檔案下載至FPGA晶片中,驗證實際運行效果。

工作原理

FPGA採用了邏輯單元陣列LCA(Logic Cell Array)這樣一個概念,內部包括可配置邏輯模組CLB(Configurable Logic Block)、輸入輸出模組IOB(Input Output Block)和內部連線(Interconnect)三個部分。 現場可程式門陣列(FPGA)是可程式器件,與傳統邏輯電路和門陣列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的結構。FPGA利用小型查找表(16×1RAM)來實現組合邏輯,每個查找表連線到一個D觸發器的輸入端,觸發器再來驅動其他邏輯電路或驅動I/O,由此構成了既可實現組合邏輯功能又可實現時序邏輯功能的基本邏輯單元模組,這些模組間利用金屬連線互相連線或連線到I/O模組。FPGA的邏輯是通過向內部靜態存儲單元載入編程數據來實現的,存儲在存儲器單元中的值決定了邏輯單元的邏輯功能以及各模組之間或模組與I/O間的聯接方式,並最終決定了FPGA所能實現的功能,FPGA允許無限次的編程。
FPGA
FPGA邏輯單元陣列

晶片設計

相比於其他種類的晶片設計,關於 FPGA晶片通常需要設定較高門檻並且擬定嚴格性較強的基本設計流程。具體在設計時,應當緊密結合 FPGA 的有關原理圖,據此實現了規模較大的專門晶片設計。通過運用Matlab以及C語言的特殊設計算法,應當可以實現全方位的順利轉化,從而確保其符合當前的主流晶片設計思路。在此前提下,如果選擇了上述設計思路那么通常需要著眼於有序整合各類元器件以及相應的設計語言,據此保證了可用性與可讀性較強的晶片程式設計。運用 FPGA可以實現板機調試、代碼仿真與其他有關的設計操作,確保當前的代碼編寫方式以及設計方案都能符合特定的設計需求。 除此以外,關於設計算法應當將合理性置於首要性的位置, 據此實現了最佳化的項目設計效果,並且最佳化了晶片運行的實效性。因此作為設計人員來講,首先就是要構建特定的算法模組, 以此來完成與之有關的晶片代碼設計。這是由於預先設計代碼有助保證算法可靠性,對於整體上的晶片設計效果也能予以顯著最佳化。在全面完成板機調試以及仿真測試的前提下,應當可以在根源上縮短設計整個晶片消耗的周期,同時也致力於最佳化當前現存的硬體整體結構。例如在涉及到開發非標準的某些硬體接口時,通常都會用到上述的新產品設計模式。
FPGA設計的主要難點是熟悉硬體系統以及內部資源,保證設計的語言能夠實現元器件之間的有效配合,提高程式的可讀性以及利用率。這也對設計人員提出了比較高的要求,需要經過多個項目的經驗積累才可以達到相關的要求。
在算法設計時需要重點考慮合理性,保證項目最終完成的效果,依據項目的實際情況提出解決問題的方案,提高FPGA的運行效率。確定算法後應當合理構建模組,方便後期進行代碼設計。在代碼設計時可以利用預先設計好的代碼,提高工作效率,增強可靠性。編寫測試平台,進行代碼的仿真測試和板機調試,完成整個設計過程。FPGA同ASIC不同,開發的周期比較短,可以結合設計要求改變硬體的結構,在通信協定不成熟的情況下可以幫助企業迅速推出新產品,滿足非標準接口開發的需求。

優缺點

優點

FPGA的優點如下:
(1) FPGA由邏輯單元、RAM、乘法器等硬體資源組成,通過將這些硬體資源合理組織,可實現乘法器、暫存器、地址發生器等硬體電路。
(2) FPGA可通過使用框圖或者Verilog HDL來設計,從簡單的門電路到FIR或者FFT電路。
(3) FPGA可無限地重新編程,載入一個新的設計方案只需幾百毫秒,利用重配置可以減少硬體的開銷。
(4) FPGA的工作頻率由FPGA晶片以及設計決定,可以通過修改設計或者更換更快的晶片來達到某些苛刻的要求(當然,工作頻率也不是無限制的可以提高,而是受當前的IC工藝等因素制約)。

缺點

FPGA的缺點如下:
(1) FPGA的所有功能均依靠硬體實現,無法實現分支條件跳轉等操作。
(2) FPGA只能實現定點運算。
總結:FPGA依靠硬體來實現所有的功能,速度上可以和專用晶片相比,但設計的靈活度與通用處理器相比有很大的差距。

設計語言及平台

可程式邏輯器件是通過EDA技術將電子套用系統的既定功能和技術指標具體實現的硬體載體,FPGA作為實現這一途徑的主流器件之一,具有直接面向用戶,靈活性和通用性極大,使用方便,硬 件測試和實現快捷等特點。
硬體描述語言(HDL)是一種用來設計數字邏輯系統和描述數字電路的語言,常用的主要有VHDLVerilog HDL、System Verilog 和 System C。
作為一種全方位的硬體描述語言,超高速積體電路硬體描述語言(VHDL)具有與具體硬體電路無關、與設計平台無關的特性,具有寬範圍描述能力、不依賴於特定的器件、可將複雜控制邏輯的設計用嚴謹簡潔的代碼進行描述等優點,得到眾多EDA公司的支持,在電子設計領域得到了廣泛套用。
VHDL是一種用於電路設計的高級語言,與其他硬體描述語言相比,其具有語言簡潔、靈活性強、不依賴於器件設計等特點,使其成為EDA技術通用的硬體描述語言,使EDA技術更便於設計者掌握。
Verilog HDL是廣泛套用的硬體描述語言,可以用於硬體設計流 程的建模、綜合、模擬等多個階段。
Verilog HDL 優點:類似C語言,上手容易,靈活。大小寫敏感。在寫激勵和建模方面有優勢。缺點:很多錯誤在編譯的時候不能被發現。
VHDL 優點:語法嚴謹,層次結構清晰。缺點:熟悉時間長,不夠靈活。
Quartus_Ⅱ軟體是由Altera公司開發的完整多平台設計環境,能滿足各種FPGA,CPLD的設計需要,是片上可程式系統設計的綜合性環境。
Vivado設計套件,是FPGA廠商賽靈思公司(Xilinx)2012年發布的集成設計環境。包括高度集成的設計環境和新一代從系統到IC級的工具,這些均建立在共享的可擴展數據模型和通用調試環境基礎上。Xilinx Vivado設計套件中提供了FIFO IP核,可方便套用於設計中。

行業套用

視頻分割系統

近年來,大型的總控系統得到了日益廣泛的套用,與之相關的視頻分割技術水平也在逐步提高,該技術是把用多屏拼接顯示的方式來顯示一路視頻信號,在一些需要使用大螢幕顯示的場景套用廣泛。
隨著技術水平的進步, 視頻分割技術逐步成熟,滿足了人們對於清晰視頻圖像的基本需求、 FPGA 晶片硬體結構比較特殊,可以利用事先編輯的邏輯結構檔案調整內部結構,利用約束的檔案來調整不同邏輯單元的連線和位置,妥善處理好數據線路徑,其自身具有的靈活性和適應性方便用戶的開發和套用。在處理視頻信號時,FPGA晶片可以充分利用自身的速度和結構優勢,實現桌球技術和流水線技術。在對外連線的過程中,晶片採用數據並行連線的方式,使圖像信息的位寬拓寬,利用內部的邏輯功能提高圖像處理的速度。通過高速快取結構以及時鐘管理實現對圖像處理以及其他設備的控制。在整體的設計結構中,FPGA晶片處於核心位置,複雜數據的插值處理以及提取和存儲,還起到總體控制的作用,保證系統的穩定運行。另外,視頻信息處理與其他數據處理不同,需要晶片具有特殊的邏輯單元以及RAM或者FIFO單元,保證提高足夠的數據傳輸速度。

數據延遲器和存儲設計

FPGA具有可程式的延遲數字單元,在通信系統和各類電子設備中有著比較廣泛的套用,比如同步通信系統,時間數值化系統等,主要的設計方法包括數控延遲線法,存儲器法,計數器法等,其中存儲器法主要是利用 FPGA的RAM或者FIFO實現的。
利用 FPGA 對SD卡相關數據進行讀寫可以依據具體算法的需求低FPGA晶片開展編程,更加實際情況的變化實現讀寫操作的不斷更新。這種模式之下只需要利用原有的晶片便可以實現對SD卡的有效控制,明顯降低了系統的成本。

通信行業

通常情況下,通信行業綜合考慮成本以及運營等各方面的因素,在終端設備數量比較多的位置,FPGA的用量比較大,基站最適合使用FPGA,基站幾乎每一塊板子都需要使用FPGA晶片,而且型號比較高端,可以處理複雜的物理協定,實現邏輯控制。同時,由於基站的邏輯鏈路層,物理層的協定部分需要定期更新,也比較適合採用FPGA技術。目前,FPGA主要在通信行業的建設初期和中期套用,後期逐步被ASIC替代。

其它套用

FPGA在安防,工業等領域也有著比較廣泛的套用,比如安防領域的視頻編碼解碼等協定在前端數據採集和邏輯控制的過程中可以利用FPGA處理。工業領域主要採用規模較小的FPGA,滿足靈活性的需求。另外,由於 FPGA具有比較高的可靠性,因此在軍工以及航天領域也有比較廣泛的套用。未來,隨著技術的不斷完善,相關工藝將會完成升級改造, 在諸多新型行業比如大數據等,FPGA將會有更為廣泛的套用前景。伴隨5G網路的建設, 初期會大量套用FPGA,人工智慧等新型的領域也會更多的用到FPGA。
2021年2月,先購買再設計的FPGA(現場可程式門陣列)被稱為“萬能晶片”。國內最早自主研發、規模生產、批量銷售通用FPGA晶片的企業之一京微齊力公司敲定,將在亦莊投資3億元建設新一代國產FPGA晶片研發與產業化項目。
check!

熱門詞條

聯絡我們