FPGA比單片機厲害嗎?
發(fā)布時間:2024-07-01作者:admin點擊:146
前言
做單片機開發(fā)的工程師,一般都會接觸FPGA。
有讀者大概問了這樣的問題:FPGA能做什么?比單片機厲害嗎?
這么說吧,F(xiàn)PGA在某方面也能實現(xiàn)單片機做的事,在某些領域,F(xiàn)PGA遠比單片機強的多。
當然,F(xiàn)PGA和單片機各有各的特點,在應用上也有一些區(qū)別,本文主要說下 FPGA 厲害的地方。
02
關于FPGA
FPGA(現(xiàn)場可編程門陣列)是一種可編程的硬件設備,通過編程可以定義其內部邏輯電路的結構和功能,具有高度的靈活性和可定制性。
下面說說FPGA 常見的幾大應用的領域:
1.通信系統(tǒng)
FPGA 在通信領域的應用可以說是無所不能,得益于 FPGA 內部結構的特點,它可以很容易地實現(xiàn)分布式的算法結構,這一點對于實現(xiàn)無線通信中的高速數(shù)字信號處理十分有利。
FPGA可以處理多種通信協(xié)議,如以太網、USB、PCI Express、SATA、HDMI等,實現(xiàn)高效的數(shù)據(jù)傳輸。
因為在無線通信系統(tǒng)中,許多功能模塊通常都需要大量的濾波運算,而這些濾波函數(shù)往往需要大量的乘和累加操作。而通過FPGA 來實現(xiàn)分布式的算術結構,就可以有效地實現(xiàn)這些乘和累加操作。
尤其是 Xilinx 公司的 FPGA 內部集成了大量的適合通信領域的一些資源比如:基帶處理(通道卡)、接口和連接功能以及 RF(射頻卡)三大類:
基帶處理資源基帶處理主要包括信道編解碼(LDPC、Turbo、卷積碼以及 RS 碼的編解碼算法)和同步算法的實現(xiàn)(WCDMA 系統(tǒng)小區(qū)搜索等)。
接口和連接資源接口和連接功能主要包括無線基站對外的高速通信接口(PCI Express、以太網 MAC、高速 AD/DA 接口)以及內部相應的背板協(xié)議(OBSAI、CPRI、EMIF、LinkPort)的實現(xiàn)。
RF 應用資源RF 應用主要包括調制/解調、上/下變頻(WiMAX、WCDMA、TD-SCDMA 以及 CDMA2000 系統(tǒng)的單通道、多通道 DDC/DUC)、削峰(PC-CFR)以及預失真(Predistortion)等關鍵技術的實現(xiàn)??偠灾灰?FPGA 學的好,在通信領域你絕對可以大展身手。
2.數(shù)字信號處理
FPGA在數(shù)字信號處理方面應用廣泛,包括濾波、FFT(快速傅里葉變換)、數(shù)字信號生成等。通過硬件加速技術,F(xiàn)PGA能夠實現(xiàn)高速的數(shù)字信號處理,滿足通信、雷達、無線電等領域對實時性的要求。
在數(shù)字信號處理領域 FPGA 同樣所向披靡,主要是因為它的高速并行處理能力。FPGA最大優(yōu)勢是其并行處理機制,即利用并行架構實現(xiàn)數(shù)字信號處理的功能。
這一并行機制使得 FPGA 特別適合于完成 FIR 等數(shù)字濾波這樣重復性的數(shù)字信號處理任務,對于高速并行的數(shù)字信號處理任務來說,F(xiàn)PGA性能遠遠超過通用 DSP 處理器的串行執(zhí)行架構,還有就是它接口的電壓和驅動能力都是可編程配置的不像傳統(tǒng)的 DSP 要受指令集控制,因為指令集的時鐘周期的限制,不能處理太高速的信號,對于速率級為 Gbps的 LVDS 之類信號就難以涉及。所以在數(shù)字信號處理領域 FPGA 的應用也是十分廣泛的。
3.視頻圖像處理
隨著時代的變換,人們對圖像的穩(wěn)定性、清晰度、亮度和顏色的追求越來越高,像以前的標清(SD)慢慢演變成高清(HD),到現(xiàn)在人們更是追求藍光品質的圖像。
FPGA因其高速度和低功耗的優(yōu)勢,被廣泛應用于高速圖像采集、實時圖像處理、智能監(jiān)控和醫(yī)學圖像處理等應用。
這使得處理芯片需要實時處理的數(shù)據(jù)量越來越大,并且圖像的壓縮算法也是越來越復雜,使得單純的使用 ASSP 或者 DSP 已經滿足不了如此大的數(shù)據(jù)處理量了。
這時 FPGA 的優(yōu)勢就凸顯出來了,它可以更加高效的處理數(shù)據(jù),所以在圖像處理領域在綜合考慮成本后,F(xiàn)PGA 也越來越受到市場的歡迎。
4.高速接口設計
其實看了 FPGA 在通信領域和數(shù)字信號處理領域的表現(xiàn),我想大家也已應該猜到了在高速接口設計領域,F(xiàn)PGA 必然也是有一席之地的。它的高速處理能力和多達成百上千個的 IO 決定了它在高速接口設計領域的獨特優(yōu)勢。
比如說我需要和 PC 端做數(shù)據(jù)交互,將采集到的數(shù)據(jù)送給 PC 機處理,或者將處理后的結果傳給 PC 機進行顯示。PC 機與外部系統(tǒng)通信的接口比較豐富,如 ISA、PCI、PCI Express、PS/2、USB 等。
傳統(tǒng)的做法是對應的接口使用對應的接口芯片,例如 PCI 接口芯片,當我需要很多接口時我就需要多個這樣的接口芯片,這無疑會使我們的硬件外設變得復雜,體積變得龐大,會很不方便,但是如果使用 FPGA 優(yōu)勢立馬就出來了,因為不同的接口邏輯都可以在 FPGA 內部去實現(xiàn),完全沒必要那么多的接口芯片,在配合 DDR 存儲器的使用,將使我們接口數(shù)據(jù)的處理變得更加得心應手。
5.人工智能
如果大家比較喜歡關注科技板塊的新聞的話最近一定會被 5G 通信和人工智能充斥眼球,確實 21 世紀已經不知不覺走到了 2020 年,在這 20 年間,人工智能迅速發(fā)展,5G 的順利研發(fā)也使人工智能如虎添翼,可以預見,未來必將是人工智能的天下。
FPGA 在人工智能系統(tǒng)的前端部分也是得到了廣泛的應用,例如自動駕駛,需要對行駛路線、紅綠燈、路障和行駛速度等各種交通信號進行采集,需要用到多種傳感器,對這些傳感器進行綜合驅動和融合處理就可以使用 FPGA。
還有一些智能機器人,需要對圖像進行采集和處理,或者對聲音信號進行處理都可以使用 FPGA 去完成,所以 FPGA 在人工智能系統(tǒng)的前端信息處理上使用起來得心應手。
6.IC 設計
IC 這個詞大家可能一聽到就覺得特別高深,不是凡人所能觸及到的,而 IC 設計更是一些神人才能勝任的工作。不可否認的是 IC 設計門檻確實比較高,但是我們也沒必要把它過于神話,其實簡單點來講我們可以拿 PCB 設計來與之比較,PCB 是拿一個個元器件在印制線路板上去搭建一個特定功能的電路組合,而 IC 設計呢是拿一個個 MOS 管,PN 節(jié)在硅基襯底上去搭建一個特定功能的電路組合,一個宏觀一個微觀。
PCB 如果設計廢了大不了重新設計再打樣也不會造成太大損失,但是如果 IC 設計廢了再重新設計那損失就很慘重了,俗話說大炮一開,黃金萬兩,那么在 IC 領域光刻機一開黃金萬兩也不是吹的,光刻膠貴的要命,光刻板開模也不便宜,加上其他多達幾百上千道工序,其中人力、物力、機器損耗、機器保養(yǎng),絕對是讓人肉疼的損失,所以 IC 設計都要強調一版成功。
保證 IC 一版成功就要進行充分的仿真測試和 FPGA 驗證,仿真驗證是在服務器上面跑仿真軟件進行測試,類似 ModelSim/VCS 軟件;
FPGA 驗證主要是把 IC 的代碼移植到 FPGA 上面,使用 FPGA 綜合工具進行綜合、布局布線到最終生成 bit 文件,然后下載到 FPGA 驗證板上面進行驗證,對于復雜的 IC 我們還可以給他拆成幾個部分功能去分別驗證,每個功能模塊放在一個 FPGA 上面,F(xiàn)PGA 生成的電路非常接近真實的 IC 芯片。這樣極大的方便我們 IC 設計人員去驗證自己的 IC 設計。
其他
比如電力行業(yè)的高速數(shù)據(jù)采集,醫(yī)療行業(yè)的高速、大數(shù)據(jù)量的模擬量采集傳輸,軍工行業(yè)的雷達、衛(wèi)星、制導系統(tǒng),網絡安全、工業(yè)控制等等都是FPGA的應用領域。