FPGA全稱為Field-Programmable Gate Array,中文含義為現場可編程門陣列。FPGA是作為專用集成電路(ASIC)領域中的半定制電路而出現的,它克服了定制電路的不足,也解決了PAL、GAL、CPLD等可編程器件門電路的缺點。由于FPGA具有布線資源豐富,可重復編程和集成度高,投資較低的特點,在數字電路設計領域得到了廣泛的應用。
買 購小編了解到,fpga主要有Verilog、VHDL和C語言進行編程,常用的還是前面兩種,雖然有些國外公司試圖C語言替代VHDL語言的目的,但是一般情況不使用C語言進行編程。
包括算法設計、代碼仿真以及設計、板機調試,設計者以及實際需求建立算法架構,利用EDA建立設計方案或HD編寫設計代碼,通過代碼仿真保證設計方案符合實際要求,最后進行板級調試,利用配置電路將相關文件下載至FPGA芯片中,驗證實際運行效果。

1、可編程輸入/輸出單元:簡稱I/O單元,是芯片與外界電路的接口部分,完成不同電氣特性下對輸入/輸出信號的驅動與匹配需求。
2、基本可編程邏輯單元:它是可編程邏輯的主體,可以根據設計靈活地改變其內部連接與配置,完成不同的邏輯功能。FPGA的基本可編程邏輯單元幾乎都是由查找表LUT和寄存器Reg組成的。
3、嵌入式塊RAM:據MA Igoo編輯了解,FPGA內部嵌入可編程RAM模塊,大大拓展了FPGA的應用范圍和使用的靈活性。
4、豐富的布線資源:布線資源連通FPGA內部所有單元,連線的長度和工藝決定著信號在連線上的驅動能力和傳輸速度。
5、底層嵌入功能單元:底層嵌入功能單元的概念比較籠統,這里指那些通用程度較高的嵌入式功能模塊、入PLL、DSP、CPU等。
6、內嵌專用硬核:這里說的硬核主要指那些通用性較弱,不是所有FPGA器件都包含硬核(Hard Core)。
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允許無限次的編程。

1、結構上的區別
單片機是微處理器結構,采用的是哈佛總線結構或馮諾依曼結構,單片機結構簡單體積小,價格便宜,應用廣泛。FPGA是查找表結構,它的程序不用考慮芯片的結構,偏重于時序上的問題,FPGA結構復雜,功能強大,通常應用在通信領域等畢竟高端的場合,價格比單片機貴。
2、速度上的區別
單片機是單線程執行,程序語句需要等待單片機周期才能執行,時間長速度慢。FPGA是硬件電路,是并行結構,這導致FPGA系統穩定性高,適合高速接口電路,一次性執行多種操作,速度上快于單片機。
3、本質上的區別
FPGA偏重于硬件電路,屬于硬件范疇,是一個通過硬件描述語言在FPGA芯片上自定義集成電路的過程。單片機偏重于軟件,單片機設計屬于軟件范疇,它的硬件(單片機芯片)是固定的,通過軟件編程語言描述軟件指令在硬件芯片上的執行。
4、應用上的區別
M aigoo小編了解到,單片機是單線程,所有指令是在控制器按順序執行。FPGA是邏輯單元,可做到并行執行,一次性執行多種操作。
5、入門難易程度區別
單片機結構簡單,功能強,價格低,入門難度不高。FPGA結構復雜,價格昂貴,入門難度不適合小白。
1、FPGA由邏輯單元、RAM、乘法器等硬件資源組成,通過將這些硬件資源合理組織,可實現乘法器、寄存器、地址發生器等硬件電路。
2、FPGA可通過使用框圖或者Verilog HDL來設計,從簡單的門電路到FIR或者FFT電路。
3、FPGA可無限地重新編程,加載一個新的設計方案只需幾百毫秒,利用重配置可以減少硬件的開銷。
4、FPGA的工作頻率由FPGA芯片以及設計決定,可以通過修改設計或者更換更快的芯片來達到某些苛刻的要求(當然,工作頻率也不是無限制的可以提高,而是受當前的IC工藝等因素制約)。
1、FPGA的所有功能均依靠硬件實現,無法實現分支條件跳轉等操作。
2、FPGA只能實現定點運算。
MAI goo小編總結:FPGA依靠硬件來實現所有的功能,速度上可以和專用芯片相比,但設計的靈活度與通用處理器相比有很大的差距。

FPGA 在通信領域的應用可以說是無所不能。在終端設備數量比較多的位置,FPGA的用量比較大,基站最適合使用FPGA,基站幾乎每一塊板子都需要使用FPGA芯片,而且型號比較高端,可以處理復雜的物理協議,實現邏輯控制。
FPGA 最大優勢是其并行處理機制,即利用并行架構實現數字信號處理的功能。對于高速并行的數字信號處理任務來說,FPGA 性能遠遠超過通用 DSP 處理器的串行執行架構,所以在數字信號處理領域 FPGA 的應用也是十分廣泛的。
人們對圖像的穩定性、清晰度、亮度和顏色的追求越來越高, 像以前的標清(SD)慢慢演變成高清(HD),到現在人們更是追求藍光品質的圖像。這使得處理芯片需要實時處理的數據量越來越大,并且圖像的壓縮算法也是越來越復雜, FPGA可以更加高效的處理數據,所以在圖像處理領域在綜合考慮成本后,FPGA 也越來越受到市場的歡迎。
FPGA的高速處理能力和多達成百上千個的 IO 決定了它在高速接口設計領域的獨特優勢。不同的接口邏輯都可以在 FPGA 內部去實現,完全沒必要那么多的接口芯片,在配合 DDR 存儲器的使用,將使接口數據的處理變得更加得心應手。
FPGA 在人工智能系統的前端部分也是得到了廣泛的應用,例如自動駕駛,需要對行駛路線、紅綠燈、路障和行駛速度等各種交通信號進行采集,需要用到多種傳感器,對這些傳感器進行綜合驅動和融合處理就可以使用 FPGA。
IC設計都要強調一版成功,保證IC一版成功就要進行充分的仿真測試和FPGA驗證,仿真驗證是在服務器上面跑仿真軟件進行測試,類似ModelSim/VCS軟件,FPGA生成的電路非常接近真實的IC芯片,這樣極大的方便IC設計人員去驗證自己的IC設計。
1、選擇有設計軟件支持的廠家的芯片,這樣可減少資本投入,降低成本。
2、選擇產品設計性能改進有余量的。如果所選擇的芯片是某一廠家產品中容量:最大,或是速度最高的,那么,一但設計需要改進,則有可能在該廠家的芯片中再選不出合適的來了。
3、設計應用的延續性和可擴展性。如果所選廠家的產品具有很大的局限性,則有可能僅僅適用于很少一部分設計,從而造成設計軟件投入上的浪費。
4、選擇性能價格比最優的。盡管象Xilinx、Altera這樣的器件生產廠家都在通過降價來作市場宣傳,大多數FPGA芯片的價格還是比較高的,所有在滿足上述準則的情況下適當考慮價格也是有必要的。
5、盡量選擇成熟的產品系列。FPGA芯片更新換代速度非常快,最新推出的FPGA系列產品一般都沒有經過大批量應用的驗證,會增加設計風險,且供貨量少價格相對高,如果成熟的產品能滿足設計指標要求,那么最好選這樣的芯片來完成設計。
6、盡量選擇兼容性好的封裝。目前,同系列的FPGA芯片一般可以做到相同物理封裝兼容不同規模的器件。例如,Xilinx的Spartan3系列FPGA,在BGA456封裝下,可以選擇3S200、2S400、3S1000、3S1500這4種型號的FPGA。
7、如果在整個電子系統中需要多個FPGA器件,那么盡量選擇一個公司的產品。這樣的好處不僅可以降低成本,而且降低開發難度。因為開發環境和工具是一致的,芯片接口電平和特性也一致,便于互聯互通。
1、每逢節日活動,就到了網購達人們大展身手的時候了,然而面對五花八門的商品、參差不齊的價格卻不知如何下手?
2、每逢節日活動,就到了網購達人們大展身手的時候了,然而面對五花八門的商品、參差不齊的價格卻不知如何下手?