在開發新的電子系統時,設計人員需要做出各種決定。最關鍵的一個決定是選擇系統架構和實現的芯片。這些組件發揮著關鍵功能,當前的選擇也十分寬范,因此錯誤的決定可能意味著市場上的失敗。
如果你恰好讀到這篇博文,那么你可能已經熟悉現場可編程門陣列(FPGA)以及相應的替代芯片類型。我認為對比一下FPGA 與其主要競品——微控制器(MCU)之間的一些關鍵差異將有所裨益。
使用FPGA設計的主要優勢
使用FPGA進行設計的最大優勢是它們的可編程架構,設計人員可以對其快速編程(和重新編程),執行幾乎所有功能。你可以將這種結構想象成許多微小的可編程邏輯“島嶼”(單元)漂浮在可編程互連的“海洋”中。每個邏輯單元都包含一些組合邏輯和一個寄存器,并且每個單元都可以通過編程來執行所需的功能。
同時,可編程互連可用于連接FPGA的通用輸入/輸出(GPIO)和所選邏輯單元的輸入和輸出(I/O),并將邏輯單元之間相互連接。此外,可以對GPIO組(bank)進行編程來支持不同的電氣接口、輸入阻抗和輸出轉換(邊緣)速率。
FPGA的可編程結構能以大規模并行方式實現數據處理算法。例如,假設一個算法需要對一些相似的數據執行100次加法。FPGA可以配置為在同一時鐘沿同時執行所有這些操作。要么在同一時間段內執行100次計算,要么以1/100的時鐘頻率執行相同數量的計算。
這種固有的靈活性有助于加快FPGA應用設計的上市時間,因為可以在最終確定系統設計的同時決定或更改集成的FPGA的功能。這種可重新編程的特性還能讓開發人員通過軟件更新來更新或更改FPGA的功能,從而延長FPGA(以及使用它們的系統)的生命周期。
使用MCU設計的主要局限性
MCU設計的思路不同。一旦硬件平臺建立起來,芯片的功能就確定了,接下來就是軟件開發人員的工作,他們使用C或C++等編程語言來完成他們的設計部分。隨后,C/C++源代碼傳遞給編譯器,編譯器生成將由MCU執行的機器代碼。
雖然MCU非常擅長執行決策任務,但大多數MCU底層的馮諾依曼架構在執行許多數據處理算法方面效率低下。這是因為該架構的工作方式是從內存中檢索指令、解碼該指令、獲取數據(如有需要)、執行指令并存儲結果(如有需要)。當然,這只是高度簡化的描述,但大抵如此。最終結果是MCU按串行順序(一個接一個)執行操作。在MCU上實現DSP需要執行的大量操作還需要高速系統時鐘,這會大大增加應用的功耗。
較早的系統架構一般同時使用MCU和FPGA,MCU提供決策功能,FPGA執行計算密集型數據處理。在更先進的系統架構中,工程團隊則利用FPGA固有的靈活性和性能優勢,完全取代MCU,并將決策和數據處理任務整合到FPGA中,大大減少了物理設計占用空間,同時降低功耗。
工程師可以在FPGA中使用“軟核”MCU來實現這種設計,MCU的功能在可編程架構中實現。FPGA還可能包含直接在芯片中以“硬核”實現的各種功能,包括SRAM、非易失性存儲器、DSP、PLL、時鐘管理器和SERDES模塊。
編輯:jq
-
dsp
+關注
關注
552文章
7962瀏覽量
348269 -
FPGA
+關注
關注
1626文章
21667瀏覽量
601858 -
mcu
+關注
關注
146文章
16992瀏覽量
350315 -
數據處理
+關注
關注
0文章
581瀏覽量
28530 -
GPIO
+關注
關注
16文章
1196瀏覽量
51918
原文標題:FPGA相對于MCU的主要優勢
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論