編者按——盡管協處理器架構因其數字處理性能和吞吐量而聞名,但也為嵌入式系統設計者提供了實現項目管理策略的機會,從而降低了開發成本并加快了上市速度。本文重點介紹分立式微控制器 (MCU) 和分立式現場可編程門陣列 (FPGA) 的組合,展示了這種架構如何適合高效和迭代的設計過程。利用研究資料、實證結果和案例研究,探討這種架構的好處,并提供示范性的應用。讀完本文,嵌入式系統設計者將對何時以及如何實現這種多功能硬件架構有個更好的理解。 引言 嵌入式系統設計者經常會發現自己被卡在設計限制、性能期望以及進度和預算問題上。事實上,甚至現代項目管理中有一些像”快速失敗”、“敏捷”、“面向未來”和“顛覆性!”這樣的流行語或短語,進一步突出了這一角色的不穩定性。即使試圖滿足這些期望,所涉及的手法也可能是令人痛苦的,同時這些期望一直在整個市場上傳播著并持續被強化。我們需要的是一種設計方法,能夠實現一個不斷演進的迭代過程,就像大多數嵌入式系統一樣,從硬件架構開始。 協處理器架構是一種以結合了微控制器單元 (MCU) 和現場可編程門陣列 (FPGA) 技術優勢而著稱的硬件架構,它可以為嵌入式設計者提供一個能夠滿足最苛刻要求的過程,而且它還可以為解決已知和未知挑戰提供必要的靈活性。通過提供能夠迭代調整的硬件,設計者可以展示進展,達到關鍵里程碑,并充分利用快速原型設計過程。 在這個過程中,有一些關鍵的項目里程碑,每一個里程碑都有其獨特的價值,可以為開發工作帶來好處。在本文中,我們將提到以下術語:用微控制器進行數字信號處理里程碑、用微控制器進行系統管理里程碑以及產品部署里程碑。 本文結束時,我們將證明靈活的硬件架構可以比一個較僵硬的方法更適合現代嵌入式系統設計。此外,這種方法可以使項目成本和產品上市速度都得到改善。這一立場將通過論據、所提供實例和案例研究獲得佐證。通過觀察該架構所提供設計靈活性中每個里程碑的價值,我們可以清楚地看到,自適應硬件架構是推動嵌入式系統設計發展的強大動力。 探索協處理器架構的優勢:設計靈活性和高性能處理 FPGA 設計的一個常見應用是直接與高速模數轉換器 (ADC) 連接。信號數字化后,讀入 FPGA,然后將一些數字信號處理器 (DSP) 算法應用于該信號。最后,FPGA 再根據這些結果做出決策。 本文通篇將以這樣一個應用將作為實例。此外,圖 1 展示了一個通用的協處理器架構,其中 MCU 和 FPGA 通過 MCU 的外部存儲器接口進行連接。FPGA 被當作是一塊外部靜態隨機存取存儲器 (SRAM)。信號從 FPGA 返回 MCU,充當硬件中斷線路和狀態指示。這允許 FPGA 向 MCU 指示關鍵的狀態,例如通知 ADC 轉換準備好了,或發生了故障,或發生了其他值得注意的事件。 圖 1:通用協處理器示意圖 (MCU + FPGA)。(圖片來源:CEPD) 從上述每個里程碑的交付成果來看,可能最能看出協處理器方法的優勢。價值不僅要評估一項任務或階段的成就,而且還評估這些成就所帶來的用處。通過回答以下問題有助于評估一個里程碑的交付成果的整體價值。 · 隨著項目依賴性和瓶頸的消除,其他團隊成員的進展現在能否更迅速地繼續進行下去? · 里程碑成就如何讓進一步的并行操作成為可能? 用微控制器進行數字信號處理的里程碑 圖 2:架構——用微控制器進行數字信號處理。(圖片來源:CEPD) 這種硬件架構所允許的第一個開發階段將 MCU 放在前期和中期。在同等條件下,MCU 和可執行軟件的開發比 FPGA 和硬件描述語言 (HDL) 的開發更節省資源和時間。因此,通過啟動以 MCU 為主要處理器的產品開發,算法可以更迅速地實現、測試和驗證。這使得算法和邏輯錯誤可以在設計過程的早期被發現,也使得信號鏈的實質部分可以被測試和驗證。 在這個最初的里程碑中,FPGA 的作用是作為一個高速數據的收集接口。它的任務是可靠地管理來自高速 ADC 的數據,提醒 MCU 有數據可用,并在 MCU 的外部存儲器接口上提供這些數據。雖然這個角色不包括實現基于 HDL 的 DSP 過程或其他算法,但它仍然是非常關鍵的。 在這個階段進行的 FPGA 開發為產品的最終成功奠定了基礎,無論是在產品開發過程中還是在向市場發布時。通過只關注低級別的接口,就可以有足夠的時間來測試這些基本操作。只有當 FPGA 可靠、有把握地履行這一接口作用時,才能有把握地完成這一里程碑。 這個最初的里程碑的主要交付成果包括以下好處: · 整個信號路徑——所有的放大、衰減和轉換——都將被測試和驗證。 · 通過最初在軟件 (C/C++) 中實現算法,項目開發的時間和精力將有所減少;這對管理層和其他利益相關者來說具有相當大的價值,他們必須在批準未來設計階段之前看到這個項目的可行性。 · 在 C/C++ 中實現算法的經驗將直接轉移到 HDL 實現中——通過使用“軟件到 HDL”工具,例如 Xilinx HLS。 系統管理與微控制器的里程碑 圖 3:架構——用微控制器進行系統管理。(圖片來源:CEPD) 由這種協處理器方法提供的第二個開發展階段是由 DSP 過程和算法實現從 MCU 轉移到 FPGA 來界定的。FPGA 仍然負責高速 ADC 接口,但通過承擔這些其他角色,FPGA 提供的速度和并行性得到了充分的利用。此外,與 MCU 不同,可以實現多個 DSP 進程和算法通道實例,并同步運行。 基于從 MCU 的實現中獲得的經驗,設計者會將這種信心帶入下一個里程碑。諸如前面提到的 Xilinx Vivado HLS 這樣的工具提供了從可執行 C/C++ 代碼到可綜合的 HDL 的功能轉換。現在,仍然必須定義和實現時序約束、工藝參數和其他用戶偏好,但核心功能被堅持下來并轉化為 FPGA 架構。 對于這個里程碑,MCU 的角色就是一個系統管理者。FPGA 內的狀態和控制寄存器由 MCU 監控、更新和報告。此外,MCU 還管理著用戶界面 (UI)。這個用戶界面可以采取通過以太網或 Wi-Fi 連接訪問網絡服務器的形式,也可以是一個工業觸摸屏界面,讓用戶在使用點進行訪問。從 MCU 的新的、更精細的角色中得到的關鍵啟示是:通過將其從計算密集型的處理任務中解脫出來,現在可將 MCU 和 FPGA 運用到其最適合的任務中來。 關鍵的可交付成果構成了這個里程碑,并包括以下好處: · FPGA 所提供 DSP 進程和算法實現的快速、并行執行。MCU 提供了一個反應靈敏的精簡 UI,并管理著產品的執行過程。 · 由于首先在 MCU 內進行了開發和驗證,算法風險得到了緩解,這些緩解措施被轉換為可綜合的 HDL。像 Vivado HLS 這樣的工具使得這種轉換變得更加容易。此外,通過集成的仿真工具,如 Vivado 設計套件,可以減輕 FPGA 特有的風險。 · 利益相關者不會因為將過程轉移到 FPGA 上而面臨重大風險。相反,他們可以看到并享受到 FPGA 的速度和并行性帶來的好處。觀察到明顯的性能改進后,現在可以把工作重點放在為該設計的制造做好準備。 產品部署里程碑 隨著計算密集型處理在 FPGA 內得到解決,MCU 就能很地處理其系統管理和用戶界面角色,產品部署亦因此而準備就緒。現在,本文不主張繞過 Alpha 和 Beta 版本;但是,本里程碑的重點是協處理器架構為產品部署提供的能力。 MCU 和 FPGA 都是現場可更新器件。目前已經取得了多項進展,使得 FPGA 的更新與軟件更新一樣容易。此外,由于 FPGA 在 MCU 的可尋址存儲器空間內,MCU 可以作為整個系統的存取點:同時為自已和 FPGA 接收更新。更新可以在每個最終用戶的基礎上有條件地安排、分發和定制。最后,可以進行用戶和用例日志維護并使之與特定構建實現關聯。有了這些數據集,即使在產品進入現場后,性能也能繼續得到完善和提高。 也許這種整體系統更新能力的優勢在天基應用中得到了最充分的體現。一旦產品推出,維護和更新必須在遠程進行。這可以是一個簡單的邏輯條件改變,或復雜到更新一個通信調制方案。FPGA 技術提供的可編程性和協處理器架構可以滿足這一系列能力的全部要求,同時提供防輻射的元件選擇。 這個里程碑的最后一個關鍵收獲是逐步減少成本。成本降低、材料清單 (BOM) 的變化和其他優化也可能出現在這個里程碑。在現場部署時,可能會發現使用價格較低的 MCU 或性能較差的 FPGA 也能很好地運行產品。由于協處理器的存在,架構設計者不會拘泥于使用那些能力超出其應用需求的組件。此外,如果一個組件無法使用,該架構允許新的組件被整合到設計中。單芯片、片上系統 (SoC) 架構,或試圖處理所有產品處理的高性能 DSP 或 MC,都不是這種情況。協處理器架構是能力和靈活性的良好組合,給設計者在開發階段和向市場發布時提供了更多選擇和自由。 支持調查和相關案例研究 衛星通信實例 簡而言之,協處理器的價值在于幫助主處理單元減負,讓任務在硬件上執行,其中可以利用加速和精簡優勢。這種設計選擇的好處是計算速度和能力的凈增加,而且正如本文所認為的那樣,開發成本和開發時間也會減少。也許這些好處最引人注目的一面就在空間通信系統領域。 在《作為協處理器的 FPGA 式硬件》一書中,G. Prasad 和 N. Vasantha 詳細介紹了在 FPGA 中數據處理如何混合衛星通信系統的計算需求,而沒有特定應用集成電路 (ASIC) 的高非經常性工程 (NRE) 成本或硬體系架構處理器的特定應用限制。正如在用微控制器進行數字信號處理里程碑中所描述的那樣,其設計從應用處理器開始,執行大部分的計算密集型算法。從這一出發點著手,他們確定了消耗中央處理單元 (CPU) 時鐘大部分周期的軟件關鍵部分,并將這些部分遷移到 HDL 實現。以下圖形表示與到目前為止所介紹的高度相似,然而,他們選擇將應用程序作為自己的獨立塊來表示,因為它可以在主機(處理器)或基于 FPGA 的硬件中實現。 圖 4:應用程序、主機處理器和基于 FPGA 的硬件——用于衛星通信實例。 通過利用外設組件互連 (PCI) 接口和主機處理器的直接存儲器訪問 (DMA) ,外設性能得到了極大的提高。這主要體現在對去隨機化過程的改進上。當這一過程在主機處理器的軟件中進行時,系統的實時響應顯然出現了瓶頸。然而,當轉移到 FPGA 時,我們可以看到以下好處: · 去隨機化過程實時執行,不會造成瓶頸 · 主機處理器的計算開銷大大減少,現在它可以更好地發揮所需的記錄角色。 · 整個系統的總性能就提升了。 所有這些都是在沒有 ASIC 相關開銷的情況下實現的,同時還享有可編程邏輯的靈活性 [5]。衛星通信帶來了相當大的挑戰,而這種方法可以可靠地滿足這些要求,并繼續提供設計靈活性。 汽車信息娛樂系統實例 車車娛樂系統是挑剔的消費者看重的功能。與大多數汽車電子產品不同的是,這些設備是高度可見的,人們預期很高,希望能擁有出色的響應時間和性能。然而,設計者往往在當前的設計需求和未來功能所需的靈活性之間受到擠壓。在這個例子中,我們將使用信號處理和無線通信的實現需求來強調協處理器硬件架構的優勢。 所使用的主要汽車娛樂系統架構之一是由 Delphi Delco 電子系統公司發布的。該架構采用了一個 SH-4 MCU 和一個配套的 ASIC,即日立的 HD64404 Amanda 外設。這個架構滿足了汽車市場 75% 以上的基本娛樂功能;但它缺乏解決視頻處理應用和無線通信的能力。通過在這個現有的架構中加入 FPGA,就可以為這個已經存在的設計增加進一步的靈活性和能力。 圖 5:信息娛樂系統 FPGA 協處理器架構實例 1。 圖 5 的架構同時適用于視頻處理和無線通信管理。通過將 DSP 功能推給 FPGA,Amanda 處理器可以起到系統管理的作用,并被釋放出來以實現無線通信堆棧。由于 Amanda 和 FPGA 都可以訪問外部存儲器,數據可以在系統的處理器和組件之間快速交換。 圖 6:信息娛樂系統 FPGA 協處理器架構實例 2。 圖 6 中的第二個信息娛樂系統突現了 FPGA 的能力,同時解決了高速模擬數據的傳入和視頻應用所需的壓縮和編碼處理。事實上,所有這些功能都可以推給 FPGA,通過使用并行處理,這些都可以實時處理。 通過在現有的硬件架構中加入 FPGA,現有硬件的成熟性能就可以獲得靈活性和未來適用性。即使在現有系統中,協處理器架構也為設計者提供了選擇,否則將無法使用 [6]。 快速原型開發優勢 快速原型開發過程的核心是就要覆蓋大量產品開發領域,因此要能并行執行任務、快速識別“錯誤”和設計問題以及驗證數據和信號路徑,特別是項目關鍵路徑內的數據和信號路徑。然而,要使這一過程真正產生精簡、高效的結果,必須在所需的項目領域有足夠的專業知識。 傳統上,這意味著必須有一個硬件工程師,一個嵌入式軟件或 DSP 工程師,以及一個 HDL 工程師。現在,有很多跨學科的專業人員,他們可能能夠滿足多種角色;然而在協調這些工作時,仍然涉及大量的項目開銷。 在《用于小波協處理器的基于 FPGA 的快速原型開發平臺》一文中,作者提倡使用協處理器架構可以讓一個 DSP 工程師高效地完成所有這些角色。對于這項研究,該團隊開始在 MATLAB 的 Simulink 工具中設計和仿真所需的 DSP 功能。這有兩個主要功能,即:1) 通過仿真驗證所需的性能;2) 作為基準,用以比較和參考未來的設計選擇。 仿真之后,關鍵功能被確定下來,并被劃分為不同的核心——這些是可以在 FPGA 內合成的軟核組件和處理器。這項工作中最重要的一步是定義這些核心和組件之間的接口,并將數據交換性能與期望的、仿真的性能進行比較。這一設計過程與 Xilinx 的嵌入式系統設計流程緊密結合,具體匯總見下圖 7。 圖 7:實現設計流程 通過將系統劃分為可整合的內核,DSP 工程師可以專注于信號處理鏈中最關鍵的方面。她/他不需要成為硬件或 HDL 方面的專家,就可以在 FPGA 內修改、路由或實現不同的軟核處理器或組件。因此,只要設計者了解接口和數據的格式,他們就能完全控制信號路徑,并能完善系統的性能。 實證結果——離散余弦變換案例研究 實證結果不僅證實了協處理器架構為嵌入式系統設計者提供的靈活性,而且還展示了現代 FPGA 工具的性能增強選項。像下面提到的增強功能,對于其他硬件架構來說,可能無法使用或影響較小。離散余弦變換 (DCT) 被選為計算密集型算法,其從基于 C 的實現到基于 HDL 的實現的進展是這些結果的核心。選擇 DCT 是因為這種算法可用于數字信號處理的模式識別和篩選 [8]。該實證結果基于一項實驗室工作,由作者及其同事完成,獲得了 2020-2021 年的 Xilinx 聯盟合作伙伴認證。 在這項工作中,使用了以下工具和設備: · Vivado HLS 2019 版 · 用于評估和仿真的設備是 xczu7ev-ffvc1156-2-e 從基于 C 語言的實現開始,DCT 算法接受兩個 16 位數的數組;數組 "a" 是 DCT 的輸入數組,數組 "b" 是 DCT 的輸出數組。因此,數據寬度 (DW) 被定義為 16,而數組內的元素數 (N) 為 1024/DW,即 64。最后,DCT 矩陣的大小 (DCT_SIZE) 被置為 8,這意味著使用了一個 8×8 的矩陣。 在本文前提之下,基于 C 語言的算法實現允許設計者快速開發和驗證算法的功能。盡管這是一個重要的考慮因素,但這種驗證將功能置于了比執行時間更高的權重。這種加權是允許的,因為該算法的最終實現將在 FPGA 中進行,硬件加速、循環展開和其他技術都是現成的。 圖 8:Xilinx Vivado HLS 設計流程。 一旦 DCT 代碼在 Vivado HLS 工具中作為一個項目被創建,下一步就是開始為 FPGA 的實現進行設計整合。在接下來的步驟中,將算法的執行從 MCU 轉移到 FPGA 的一些最具影響力的好處變得更加明顯——作為參考,這一步相當于上面討論的微控制器的系統管理里程碑。 現代 FPGA 工具允許進行一系列的優化和增強,從而極大地提高復雜算法的性能。在分析結果之前,有一些重要的術語需要牢記。 · 延遲 – 執行循環的所有迭代所需的時鐘周期數 [10] 。 · 間隔 – 循環的下一次迭代開始處理數據之前的時鐘周期數 [11]。 · BRAM – 塊狀隨機訪問存儲器 · DSP48E – 用于 UltraScale 架構的數字信號處理片斷 · FF – 觸發器 · LUT – 查找表 · URAM – 統一隨機訪問存儲器(可由單個晶體管組成)。 表 1:FPGA 算法執行優化結果(延遲和間隔)。 表 2:FPGA 算法執行優化結果(資源利用)。 默認 默認的優化設置來自于將基于 C 語言的算法轉換為可綜合 HDL 的未改變結果。沒有啟用任何優化,這可以作為性能參考,以更好地了解其他優化。 流水線內循環 PIPELINE 指令指示 Vivado HLS 展開內循環,這樣新的數據就可以開始被處理,而現有的數據仍在流水線中。因此,新數據不必等待現有數據完成后再開始處理。 流水線外循環 通過對外循環應用 PIPELINE 指令,外循環的操作現在被流水線化了。但內循環的操作現在是同步進行的。通過將其直接應用于外循環,延遲和間隔時間都減少了一半。 陣列劃分 這條指令將循環的內容映射到陣列中,從而將所有的存儲器訪問扁平化到這些陣列中的單個元素。這樣做,會消耗更多的 RAM,但同樣的,這個算法的執行時間也會減少一半。 數據流 這條指令允許設計者指定每個輸入讀數之間的目標時鐘周期數。這條指令只支持頂層函數。只有暴露在這個級別的循環和函數才能從這個指令中受益。 內聯 INLINE 指令平坦了所有循環,包括內循環和外循環。行和列進程現在都可以并發執行。所需的時鐘周期的數量被保持在最低水平,即使這樣也會消耗更多的 FPGA 資源。 結語 協處理器的硬件架構為嵌入式設計者提供了一個高性能的平臺,在整個開發過程中以及在產品發布后都能保持其設計靈活性。通過先在 C 或 C++ 中驗證算法,進程、數據和信號路徑以及關鍵功能都可以在相對較短的時間內得到驗證。然后,通過將處理器密集型算法轉換到協處理器 FPGA 中,設計者可以享受到硬件加速和更加模塊化設計的好處。 如果零件過時或需要優化,相同的架構可以允許這些變化。新的 MCU 和新的 FPGA 可以安裝到設計中,而所有的接口都可以保持相對不變。此外,由于 MCU 和 FPGA 都是可現場更新的,因此用戶的特定改變和優化可以在現場和遠程應用。 最后,這種架構將 MCU 的開發速度和可用性與 FPGA 的性能和可擴展性融合到了一起。由于每個開發步驟都有優化和性能提升,協處理器架構可以滿足最具挑戰性的需求——無論是今天的設計還是以后的設計。 來源:Digi-Key 作者:Noah Madinger, Colorado Electronic Product Design (CEPD) |