您的位置:首頁>設計>正文

使用系統優化編譯器加速汽車電子產品設計

得益於摩爾定律, 汽車電氣系統經歷了快速的技術增長。 現代化的汽車已獲得長足發展, 不再是耦合了 AM 無線電的簡單發動機電氣系統。 如今現代化的汽車搭載了多種高級電子系統, 能夠執行發動機控制、高級駕駛員輔助系統 (ADAS)、牽引力與穩定性控制、資訊娛樂等功能, 此外還針對某些尖端應用提供了自主操作能力。

這種汽車內電子系統部署的顯著增長也帶來了幾個必須由設計人員解決的挑戰:

· 性能 – 需要即時、低時延與高確定性的性能以實現例如 ADAS、ECU、牽引力與穩定性控制等多種車載功能。

· 安全 – 汽車電子系統實現關鍵功能, 故障會導致受傷或死亡。 因此, 系統必須實現資訊安全保障與防篡改技術, 以防止未授權的修改。

· 安全性 – 必須符合 ISO26262 規定的汽車安全完整性水準。

· 介面 – 必須能夠連接多種感測器、驅動器與其他制動器。

· 功率效率 – 必須在有限的功耗預算內高效運行。

· 軟體定義 – 具備高靈活性以適應多種市場中的不同標準與條件。

為應對這些挑戰, 汽車電子系統開發人員正在部署片上異構系統 (SoC) 器件。 異構器件將一個處理單元(通常為多核)與一個或多個異構協同處理器(例如 GPU、DSP 或可程式設計邏輯)相結合。

將處理單元與可程式設計邏輯相結合可構成緊密集成型系統, 以便利用可程式設計邏輯的固有並行特性。

該特性支援使用可程式設計邏輯 (PL) 實現高性能演算法和介面連接, 同時由處理系統實現更高級的決策制定、通信與系統管理功能。 完成結合後, 便可使可程式設計邏輯分擔處理任務, 從而創建更具回應性、確定性並且能效更高的解決方案。

就介面連接而言, 異構 SoC 可支援多種業界標準介面, 這些介面可通過處理系統或可程式設計邏輯實現。 得益於 IO 結構的靈活性, 可使用可程式設計邏輯實現關鍵的原有介面與定制介面。 然而, 這需要添加一個外部 PHY 來實現協議的實體層, 從而提供任意連接。

某些異構 SoC 面向多個器件級與系統級安全功能提供支援, 便於輕鬆實現。 這些器件能夠對啟動和配置過程進行加密與驗證。

如果處理器內核是基於 ARM 處理器的, 那麼可使用 Trustzone 保證軟體環境安全。 有了 Trustzone, 開發團隊便可創建正交環境, 通過使用程式管理器, 對軟體訪問底層硬體進行限制。 此外, 這裡也提供幾個額外的設計選擇, 例如功能隔離, 可以在設計中實現, 以進一步加強取決於需求的安全解決方案。

傳統的異構 SoC 開發流程把設計劃分為處理器系統和可程式設計邏輯兩大部分。 這種方法在過去需要兩個獨立的開發團隊, 這會增加非重複性工程成本、開發時間與技術風險。 此外, 該方法還將設計功能固定在處理器內核或可程式設計邏輯中, 使後期優化難以進行。

人們所需的開發工具應該可實現整個器件的軟體定義開發, 並有能力根據需要將功能從處理器內核轉移到可程式設計邏輯,

而且非 HDL 專家也能完成。

這正是系統優化編譯器的用武之地。 系統優化編譯器能利用 C、C++ 或 OpenCL™ 等高階語言以軟體方式定義整個系統行為。 然後, 使用系統優化編譯器執行處理器系統與可程式設計邏輯之前的功能分區, 該編譯器能夠使功能無縫移動, 以便選擇是在處理器系統中運行還是在可程式設計邏輯中實現。

圖 1 - 使用系統優化編譯器選擇要加速的功能。

通過使用處理系統內部的內置計時器來為功能執行時間計時, 可找出造成瓶頸的功能, 從而創建瓶頸功能清單。 這些瓶頸功能便成為候選, 以備通過使用系統優化編譯器在可程式設計邏輯中實現加速。

處理系統與可程式設計邏輯之間的移動是通過系統優化編譯器的高層次綜合(可將 C、C++、OpenCL 程式轉換為 Verilog 或 VHDL 描述的工具)與軟體定義連接框架之間的結合來實現的。 軟體定義連接框架能夠無縫地將 HLS 結果連接至軟體應用, 設計團隊使用這種方法, 一鍵點擊就能在處理器和可程式設計邏輯間移動功能。 當然在使用者把功能移動到可程式設計邏輯時,他們也得到了明顯的性能提升,自然這是使用可程式設計邏輯的結果。與 CPU/GPU 解決方案相比,在 PL 中進行加速還能提高確定性並降低時延,這對諸如 ECU 和 ADAS 的應用來說是至關重要的。

圖 2 - 使用系統優化編譯器對資源與性能進行估算。

庫支援

很多汽車應用都是使用業界標準開源庫進行開發,例如在 ADAS 系統中使用 OpenCV 或 Caffe,或在 ECU 中使用標準數學庫。為加快這些應用的開發,系統優化編譯器需要能夠支援多個 HLS 庫,以便開發人員在其應用中使用。系統優化編譯器應支援多個關鍵庫,其中包括:

· OpenCV – 能夠加速電腦視覺功能

· Caffe – 能夠加速機器學習推理引擎

· 數學庫 – 提供標準數學庫的可綜合實現。

· IP 庫 – 為實現 FFT、FIR 和移位暫存器 LUT 功能提供 IP 庫。

· 線性代數庫 – 提供通用線性代數功能庫。

· 任意精度資料類型庫 – 使用有符號和不帶正負號的整數支援非2次冪的任意長度資料。該庫允許開發人員更高效地使用 FPGA 資源。

這些庫的提供為開發團隊提供相當大的支援,讓開發團隊不必開發類似的功能。

真實實例

很多汽車應用的關鍵元素是保護資料以防止未授權修改,避免導致不安全操作。用來保護存儲資料與傳輸資料安全的一種常用演算法是高級加密標準 (AES)。AES 是在高級層面描述的,但最適合在可程式設計邏輯架構中實現的演算法的範例。為了演示使用系統優化編譯器的優勢,已開發一款面向三種常用作業系統的簡單 AES 256 應用。該實例最初只在處理器系統中執行,然後在可程式設計邏輯中實現功能的加速。

圖 3 - 當使用系統優化編譯器時,不同作業系統的 AES 加速結果。

結論

異構 SoC 能夠解決汽車電子系統設計人員面臨的挑戰。通過使用高階語言,系統優化編譯器能夠對這些器件進行開發,一旦使用處理器完成對應用功能的開發與原型設計後,處理器系統與可程式設計邏輯之間的功能分區即可得到優化,從而縮短開發時間,實現更安全、回應性更強、能效更高的解決方案。

當然在使用者把功能移動到可程式設計邏輯時,他們也得到了明顯的性能提升,自然這是使用可程式設計邏輯的結果。與 CPU/GPU 解決方案相比,在 PL 中進行加速還能提高確定性並降低時延,這對諸如 ECU 和 ADAS 的應用來說是至關重要的。

圖 2 - 使用系統優化編譯器對資源與性能進行估算。

庫支援

很多汽車應用都是使用業界標準開源庫進行開發,例如在 ADAS 系統中使用 OpenCV 或 Caffe,或在 ECU 中使用標準數學庫。為加快這些應用的開發,系統優化編譯器需要能夠支援多個 HLS 庫,以便開發人員在其應用中使用。系統優化編譯器應支援多個關鍵庫,其中包括:

· OpenCV – 能夠加速電腦視覺功能

· Caffe – 能夠加速機器學習推理引擎

· 數學庫 – 提供標準數學庫的可綜合實現。

· IP 庫 – 為實現 FFT、FIR 和移位暫存器 LUT 功能提供 IP 庫。

· 線性代數庫 – 提供通用線性代數功能庫。

· 任意精度資料類型庫 – 使用有符號和不帶正負號的整數支援非2次冪的任意長度資料。該庫允許開發人員更高效地使用 FPGA 資源。

這些庫的提供為開發團隊提供相當大的支援,讓開發團隊不必開發類似的功能。

真實實例

很多汽車應用的關鍵元素是保護資料以防止未授權修改,避免導致不安全操作。用來保護存儲資料與傳輸資料安全的一種常用演算法是高級加密標準 (AES)。AES 是在高級層面描述的,但最適合在可程式設計邏輯架構中實現的演算法的範例。為了演示使用系統優化編譯器的優勢,已開發一款面向三種常用作業系統的簡單 AES 256 應用。該實例最初只在處理器系統中執行,然後在可程式設計邏輯中實現功能的加速。

圖 3 - 當使用系統優化編譯器時,不同作業系統的 AES 加速結果。

結論

異構 SoC 能夠解決汽車電子系統設計人員面臨的挑戰。通過使用高階語言,系統優化編譯器能夠對這些器件進行開發,一旦使用處理器完成對應用功能的開發與原型設計後,處理器系統與可程式設計邏輯之間的功能分區即可得到優化,從而縮短開發時間,實現更安全、回應性更強、能效更高的解決方案。

Next Article
喜欢就按个赞吧!!!
点击关闭提示