當前位置:
首頁 > 最新 > 從MCU到FPGA:第3部分

從MCU到FPGA:第3部分

當我開始這個項目的時候,我已經了解到FPGA的好處在於它可以將多種功能集成到單一的晶元中,並可以通過重配置而修改晶元功能。但是這種靈活性也讓我想知道:我應該如何處理FPGA與外部組件的介面以及介面連線等問題呢?由於FPGA的平均設計周期為兩到三年,並且考慮到諸如USB 3.0到USB Type-C等通信技術的更新換代,我很難理解FPGA如何才能真正地帶來好處。

和處理大多數MCU項目時一樣,我打算從示例代碼開始,然後通過各種示例搭建自己的項目。但是對於每一個例子,我發現越來越不熟悉,並且結果也越來越混亂。在這裡代碼被用來定義對象和調用函數,這在MCU里倒是很常見,但是有些定義是在高階函數里進行的,而其他的則是在另一個地方。像往常一樣,這些函數被用來執行一個功能或任務,但有一些函數要依賴於其他函數而另一些函數則是獨立的。正如我試圖對它們發表評論時所發現的那樣,那些沒有被直接調用的代碼仍然是代碼功能的關鍵。

我很迷糊。

我決定在YouTube上搜索「Intel FPGA Setup Cyclone V」來尋找示例和「Setup&Go」培訓。當我瀏覽這些內容時,我發現一個共同的主題(圖1):

看似不連貫的一組命令仍然有效,但似乎並不完整。

缺乏不支持FPGA的外部模塊或組件。

有了這些觀察,我回顧了更多設計樣本和代碼,並發現了英特爾Cyclone V和HPS FPGA架構顯著的優勢。

圖1顯示了HDMI命令集,其中包括一系列未被調用的代碼。它們不是按順序運行的,而是並行運行的。它們的功能很像回調函數,在HPS中如果有來自較高級別控制器的數據調用時,這些回調函數就會被激活。然後編譯器就會提高向MCU傳遞信息的能力,反之亦然。在這兩者之間需要做的就是協調定義和時間安排。

圖1:HDMI命令集,其中包括一系列未被調用的代碼。

項目流程如下所示:

+

1、Linux HPS抓取圖像。

2、Linux將OpenCV處理過程移交給FPGA。

3、Linux調整圖像。

4、FPGA接收原始圖像信息,並將其編碼為HDMI介面。

這是使用HPS和FPGA的完美示例。FPGA能夠處理大量重複的運算並實現協議,而Linux和MCU則處理了程序的動態元素。這讓我看到了FPGA的優勢。

當我深入研究僅含有MCU的設計時,我發現了FPGA的其他優點:它需要很少的元件,而且可以使成本更低,性能更好的MCU獲得非常好的效果。例如,僅含MCU的設計將需要更高的A52等條件來進行圖像處理,此外還需要一個GPU來進行圖形加速處理和更多的RAM來完成整個設計。設計完成後,最終結果仍然是一個鎖定的,有限的可升級模塊。有了FPGA,這些組件便可以被引入同一個晶元,所以產品級PCB設計更為簡單,因為它需要較少的的組件介面,而且由此產生的模塊仍然可以升級或優化。

我頭頂上的燈泡在幾英里外都可能被看到。

將多功能集成到單個電路上,減少介面數量,或者根據線路修改功能等這些都是FPGA的優勢,但它的好處遠不止這些。FPGA改變了我為了高效完成任務而增加外部組件的方式:不是「按順序執行步驟1,步驟2,步驟3」,現在我正在考慮這樣完成任務:「執行步驟A,B,C,並且當執行完B之後,就執行D」。現在,為什麼要花時間來研究MCU到FPGA開發轉換的原因也已變得越來越明晰了。

請繼續關注第4部分文章!


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 FPGA開發圈 的精彩文章:

示波器原來有這個秘密?你知道嗎?

TAG:FPGA開發圈 |