FPGA(Field Programmable Gate Array)是在PAL、GAL等可編程器件的基礎上進一步發展的產物。它是做爲專用集成電路(ASIC)領域中的一種半定製電路而出現的,既解決了定製電路的不足,又克服了原有可編程器件門電路數有限的缺點 前端
FPGA設計不是簡單的芯片研究,主要是利用 FPGA 的模式進行其餘行業產品的設計。 與 ASIC 不一樣,算法
FPGA在通訊行業的應用比較普遍。經過對全球FPGA產品市場以及相關供應商的分析,結合當前我國的實際狀況以及國內領先的FPGA產品能夠發現相關技術在將來的發展方向,對我國科技水平的全面提升具備很是重要的推進做用。 [2] 編程
與傳統模式的芯片設計進行對比,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 的有關原理圖,據此實現了規模較大的專門芯片設計。經過運用Matlab以及C語言的特殊設計算法,應當能夠實現全方位的順利轉化,從而確保其符合當前的主流芯片設計思路。在此前提下,若是選擇了上述設計思路那麼一般須要着眼於有序整合各種元器件以及相應的設計語言,據此保證了可用性與可讀性較強的芯片程序設計。運用 FPGA能夠實現板機調試、代碼仿真與其餘有關的設計操做,確保當前的代碼編寫方式以及設計方案都能符合特定的設計需求。 除此之外,關於設計算法應當將合理性置於首要性的位置, 據此實現了優化的項目設計效果,而且優化了芯片運行的實效性。所以做爲設計人員來說,首先就是要構建特定的算法模塊, 以此來完成與之有關的芯片代碼設計。這是因爲預先設計代碼有助保證算法可靠性,對於總體上的芯片設計效果也能予以顯著優化。在全面完成板機調試以及仿真測試的前提下,應當能夠在根源上縮短設計整個芯片消耗的週期,同時也致力於優化當前現存的硬件總體結構。例如在涉及到開發非標準的某些硬件接口時,一般都會用到上述的新產品設計模式。 [3] 工具
FPGA設計的主要難點是熟悉硬件系統以及內部資源,保證設計的語言可以實現元器件之間的有效配合,提升程序的可讀性以及利用率。這也對設計人員提出了比較高的要求,須要通過多個項目的經驗積累才能夠達到相關的要求。 [3] 性能
在算法設計時須要重點考慮合理性,保證項目最終完成的效果,依據項目的實際狀況提出解決問題的方案,提升FPGA的運行效率。肯定算法後應當合理構建模塊,方便後期進行代碼設計。在代碼設計時能夠利用預先設計好的代碼,提升工做效率,加強可靠性。編寫測試平臺,進行代碼的仿真測試和班級調試,完成整個設計過程。FPGA同ASIC不一樣,開發的週期比較短,能夠結合設計要求改變硬件的結構,在通訊協議不成熟的狀況下能夠幫助企業迅速推出新產品,知足非標準接口開發的需求測試
優勢
(1) FPGA由邏輯單元、RAM、乘法器等硬件資源組成,經過將這些硬件資源合理組織,可實現乘法器、寄存器、地址發生器等硬件電路。 [5]
(2) FPGA可經過使用框圖或者Verilog HDL來設計,從簡單的門電路到FIR或者FFT電路。 [5]
(3) FPGA可無限地從新編程,加載一個新的設計方案只需幾百毫秒,利用重配置能夠減小硬件的開銷。 [5]
(4) FPGA的工做頻率由FPGA芯片以及設計決定,能夠經過修改設計或者更換更快的芯片來達到某些苛刻的要求(固然,工做頻率也不是無限制的能夠提升,而是受當前的IC工藝等因素制約)。 [5]
缺點
FPGA的缺點以下: [5]
(1) FPGA的全部功能均依靠硬件實現,沒法實現分支條件跳轉等操做。 [5]
(2) FPGA只能實現定點運算。 [5]
總結:FPGA依靠硬件來實現全部的功能,速度上能夠和專用芯片相比,但設計的靈活度與通用處理器相比有很大的差距。
可編程邏輯器件是經過EDA技術將電子應用系統的既定功能和技術指標具體實現的硬件載體,FPGA做爲實現這一途徑的主流器件之一,具備直接面向用戶,靈活性和通用性極大,使用方便,硬 件測試和實現快捷等特色。 [6]
硬件描述語言(HDL)是一種用來設計數字邏輯系統和描述數字電路的語言,經常使用的主要有VHDL、Verilog 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核,可方便應用於設計中
視頻分割系統
近年來,大型的總控系統獲得了日益普遍的應用,與之相關的視頻分割技術水平也在逐步提升,該技術是把用多屏拼接顯示的方式來顯示一路視頻信號,在一些須要使用大屏幕顯示的場景應用普遍。 [2]
隨着技術水平的進步, 視頻分割技術逐步成熟,知足了人們對於清晰視頻圖像的基本需求、 FPGA 芯片硬件結構比較特殊,能夠利用事先編輯的邏輯結構文件調整內部結構,利用約束的文件來調整不一樣邏輯單元的鏈接和位置,妥善處理好數據線路徑,其自身具備的靈活性和適應性方便用戶的開發和應用。在處理視頻信號時,FPGA芯片能夠充分利用自身的速度和結構優點,實現兵乓技術和流水線技術。在對外鏈接的過程當中,芯片採用數據並行鏈接的方式,使圖像信息的位寬拓寬,利用內部的邏輯功能提升圖像處理的速度。經過高速緩存結構以及時鐘管理實現對圖像處理以及其餘設備的控制。在總體的設計結構中,FPGA芯片處於核心位置,複雜數據的插值處理以及提取和存儲,還起到整體控制的做用,保證系統的穩定運行。另外,視頻信息處理與其餘數據處理不一樣,須要芯片具備特殊的邏輯單元以及RAM或者FIFO單元,保證提升足夠的數據傳輸速度。 [2]
數據延遲器和存儲設計
FPGA具備可編程的延遲數字單元,在通訊系統和各種電子設備中有着比較普遍的應用,好比同步通訊系統,時間數值化系統等,主要的設計方法包括數控延遲線法,存儲器法,計數器法等,其中存儲器法主要是利用 FPGA的RAM或者FIFO實現的。 [2]
利用 FPGA 對SD卡相關數據進行讀寫能夠依據具體算法的需求低FPGA芯片開展編程,更加實際狀況的變化實現讀寫操做的不斷更新。這種模式之下只須要利用原有的芯片即可以實現對SD卡的有效控制,明顯下降了系統的成本。 [2]
通訊行業
一般狀況下,通訊行業綜合考慮成本以及運營等各方面的因素,在終端設備數量比較多的位置,FPGA的用量比較大,基站最適合使用FPGA,基站幾乎每一塊板子都須要使用FPGA芯片,並且型號比較高端,能夠處理複雜的物理協議,實現邏輯控制。同時,因爲基站的邏輯鏈路層,物理層的協議部分須要按期更新,也比較適合採用FPGA技術。目前,FPGA主要在通訊行業的建設初期和中期應用,後期逐步被ASIC替代。 [2]
其它應用
FPGA在安防,工業等領域也有着比較普遍的應用,好比安防領域的視頻編碼解碼等協議在前端數據採集和邏輯控制的過程當中能夠利用FPGA處理。工業領域主要採用規模較小的FPGA,知足靈活性的需求。另外,因爲 FPGA具備比較高的可靠性,所以在軍工以及航天領域也有比較普遍的應用。將來,隨着技術的不斷完善,相關工藝將會完成升級改造, 在諸多新型行業好比大數據等,FPGA將會有更爲普遍的應用前景。伴隨5G網絡的建設, 初期會大量應用FPGA,人工智能等新型的領域也會更多的用到FPGA。