複製鏈接
請複製以下鏈接發送給好友

FPGA

鎖定
FPGA(Field Programmable Gate Array)是在PAL (可編程陣列邏輯)、GAL(通用陣列邏輯)等可編程器件的基礎上進一步發展的產物。它是作為專用集成電路(ASIC)領域中的一種半定製電路而出現的,既解決了定製電路的不足,又克服了原有可編程器件門電路數有限的缺點。 [1] 
中文名
現場可編程邏輯門陣列
外文名
Field Programmable Gate Array
簡    稱
FPGA
所屬類別
AI 芯片

FPGA簡介

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

FPGA基本結構

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

FPGA工作原理

FPGA邏輯單元陣列 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允許無限次的編程。 [4] 

FPGA芯片設計

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

FPGA優缺點

FPGA優點

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

FPGA缺點

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

FPGA設計語言及平台

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

FPGA行業應用

FPGA視頻分割系統

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

FPGA數據延遲器和存儲設計

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

FPGA通信行業

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

FPGA其它應用

FPGA在安防,工業等領域也有着比較廣泛的應用,比如安防領域的視頻編碼解碼等協議在前端數據採集和邏輯控制的過程中可以利用FPGA處理。工業領域主要採用規模較小的FPGA,滿足靈活性的需求。另外,由於 FPGA具有比較高的可靠性,因此在軍工以及航天領域也有比較廣泛的應用。未來,隨着技術的不斷完善,相關工藝將會完成升級改造, 在諸多新型行業比如大數據等,FPGA將會有更為廣泛的應用前景。伴隨5G網絡的建設, 初期會大量應用FPGA,人工智能等新型的領域也會更多的用到FPGA。 [2] 
2021年2月,先購買再設計的FPGA(現場可編程門陣列)被稱為“萬能芯片”。國內最早自主研發、規模生產、批量銷售通用FPGA芯片的企業之一京微齊力公司敲定,將在亦莊投資3億元建設新一代國產FPGA芯片研發與產業化項目。 [10] 
參考資料
  • 1.    楊喜權主編.數字邏輯電路:電子科技大學出版社,2004年11月第1版:第150頁
  • 2.    FPGA芯片設計及其應用  .知網[引用日期2019-07-22]
  • 3.    田雨晨.FPGA芯片設計及其應用[J].數字通信世界,2019,(4):228. DOI:10.3969/J.ISSN.1672-7274.2019.04.187.
  • 4.    馮建文等編著.基於FPGA的數字電路實驗指導書:西安電子科技大學出版社,2016.04:第4頁
  • 5.    李洪濤等編著.數字信號處理系統設計:國防工業出版社,2017.01:第180頁
  • 6.    吳雪顏.基於FPGA的電梯控制器[J].軟件,2019,40(4):190-195. DOI:10.3969/j.issn.1003-6970.2019.04.041.
  • 7.    林振宇,梁耀升.基於VHDL語言的作息時間控制器設計[J].機電信息,2019,(14):5-6.
  • 8.    錢虹凌.基於EDA軟件QuartusII的數字頻率計的設計[J].內蒙古科技與經濟,2017,(11):90-92. DOI:10.3969/j.issn.1007-6921.2017.11.041.
  • 9.    李鵬治.基於Vivado的Xilinx FIFO IP核應用與仿真[J].信息通信,2019,(2):124-125.
  • 10.    高端產業引領北京經濟高質量發展--經濟·科技--人民網  .人民網[引用日期2022-03-18]