FPGA基礎知識簡介
FPGA技術的發展歷史
縱觀數字集成電路的發展歷史,經歷了從電子管、晶體管、小規模集成電路到大規模以及超大規模集成電路等不同的階段。發展到現在,主要有3類電子器件:存儲器、處理器和邏輯器件。
存儲器保存隨機信息(電子數據表或數據庫的內容);處理器執行軟件指令,以便完成各種任務(運行數據處理程序或視頻游戲);而邏輯器件可以提供特殊功能(器件之間的通信和系統必須執行的其他所有功能)。
邏輯器件分成兩類:
① 固定的或定制的。
② 可編程的或可變的。
其中,固定的或定制的邏輯器件通常稱為專用芯片(ASIC)。ASIC是為了滿足特定的用途而設計的芯片,例如MP3解碼芯片等。其優點是通過固化的邏輯功能和大規模的工業化生產,降低了芯片的成本,同時提高了產品的可靠性。隨著集成度的提高,ASIC的物理尺寸也在不斷的縮小。
但是,ASIC設計的周期很長,而且投資大,風險高。一旦設計結束后,功能就固化了,以后的升級改版困難比較大。電子產品的市場正在逐漸細分,為了滿足快速產品開發,產生了現場可編程邏輯器件(FPGA)。
自1984年Xilinx公司推出了第一片現場可編程邏輯器件(FPGA)至今,FPGA已經歷了20幾年的快速發展歷程。特別是近幾年來,更是發展迅速。FPGA的邏輯規模已經從最初的1000個可用門發展到現在的1000萬個可用門。
FPGA技術之所以具有巨大的市場吸引力,其根本原因在于:FPGA不僅可以解決電子系統小型化、低功耗、高可靠性等問題,而且其開發周期短、投入少,芯片價格不斷下降。FPGA正在越來越多地取代傳統上ASIC,特別是在小批量、個性化的產品市場方面。
FPGA技術的發展動向
隨著芯片設計工藝水平的不斷提高,FPGA技術呈現出了以下4個主要的發展動向。
1.基于FPGA的嵌入式系統(SoPC)技術正在成熟
System on Chip(SoC)技術在芯片設計領域被越來越廣泛地采用,而SoPC技術是SoC技術在可編程器件領域的應用。這種技術的核心是在FPGA芯片內部構建處理器。Xilinx公司主要提供基于Power PC的硬核解決方案,而Altera提供的是基于NIOSII的軟核解決方案。
Altera公司為NIOSII軟核處理器提供了完整的軟硬件解決方案,可以讓客戶短時間完成SoPC系統的構建和調試工作。
2.FPGA芯片向高性能、高密度、低壓和低功耗的方向發展
隨著芯片生產工藝不斷提高,FPGA芯片的性能和密度都在不斷提高。早期的FPGA主要是完成接口邏輯設計,比如AD/DA和DSP的粘合邏輯。現在的FPGA正在成為電路的核心部件,完成關鍵功能。
在高性能計算和高吞吐量I/O應用方面,FPGA已經取代了專用的DSP芯片,成為最佳的實現方案。因此,高性能和高密度也成為衡量FPGA芯片廠家設計能力的重要指標。
隨著FPGA性能和密度的提高,功耗也逐漸成為了FPGA應用的瓶頸。雖然FPGA比DSP等處理器的功耗低,但是要明顯高于專用芯片(ASIC)的功耗。FPGA的廠家也在采用各種新工藝和技術來降低FPGA的功耗,并且已經取得了明顯的效果。
例如,Altera公司的StratixIII系列FPGA的功耗比上一代產品StratixII系列降低了50%以上。
3.基于IP庫的設計方法
未來的FPGA芯片密度不斷提高,傳統的基于HDL的代碼設計方法很難滿足超大規模FPGA的設計需要。隨著專業的IP庫設計公司不斷增多,商業化的IP庫種類會越來越全面,支持的FPGA器件也會越來廣泛。
作為FPGA的設計者,主要的工作是找到適合項目需要的IP庫資源,然后將這些IP整合起來,完成頂層模塊設計。由于商業的IP庫都是通過驗證的,因此整個項目的仿真和驗證工作主要就是驗證IP庫的接口邏輯設計的正確性。
目前,由于國內的知識產權保護的相關法律法規還不盡完善,基于IP庫的設計方法還沒有得到廣泛應用。但是隨著FPGA密度不斷提高和IP庫的價格逐漸趨于合理化,這種設計方法將會成為主流的FPGA設計技術。
4.FPGA的動態可重構技術
FPGA動態重構技術主要是指對于特定結構的FPGA芯片,在一定的控制邏輯的驅動下,對芯片的全部或部分邏輯資源實現高速的功能變換,從而實現硬件的時分復用,節省邏輯資源。
由于密度不斷提高,FPGA能實現的功能也越來越復雜。FPGA全部邏輯配置一次的需要的時間也變長了,降低了系統的實時性。局部邏輯的配置功能可以實現“按需動態重構”,大大提高了配置的效率。
動態可重構的FPGA可以在系統運行中對電路功能進行動態配置,實現硬件的時分復用,節省了資源,主要適用于以下兩個系統設計。
① 最新通信系統。
FPGA的動態重構特性可以適應不同體制和不同標準的通信要求,滿足軟件無線電技術的發展和第三代(3G)和第四代(4G)移動通信系統的需要。
② 重構計算機:FPGA具有并行處理能力和動態配置能力,可自動改變硬件來適應正在運行的程序,產生了基于這種軟硬件環境的全新概念的計算機。