能將C語言轉換成硬體編碼語言的高級綜合HLS,跨越軟硬體編碼的隔閡,將軟體編碼的功能性與硬體編碼的高速性結合起來,借助一些不斷改進中的HLS工具(FPGA三巨頭爭破頭),已然構成了一個時新的行業,雖然大多數HLS工具能夠自動將一些回圈體或者介面進行優化,但其軟體轉換而來的結構始終難以達到資深硬體工程師的標準,故而目前HLS還是需要人工操作,針對軟體源代碼進行更細節的優化,并且已經有HLS工程師這一說,不過其要求比較苛刻,軟體編程和硬體編程是基礎,熟悉各種演算法和數字電路是閃光點,
行業背景
FPGA設計挑戰
隨著FPGA密度隨著工藝幾何尺寸的縮小而不斷增長,設計復雜性使得繼續使用傳統的HDL設計流程變得越來越困難,盡管HDL語言和工具已經發展,但是設計周期仍然長得令人討厭,
今天,在所有領域都遇到了具有挑戰性的應用程式:高級駕駛員輔助系統(ADAS),5G,深度學習,計算機視覺,金融應用程式,航空航天和國防等,所有這些都需要幾個處理內核,通常具有復雜的控制結構,這導致處理流水線不容易實作,探索架構實作以找到最佳策略來滿足約束需要花費時間和成本,而且,專案進度壓力以及設計成本增加了對首次實作正確實作的需求,在開發的后期階段遇到瓶頸時,手工重構設計的某些部分實際上將使它步履維艱,
當需求改變時,經典的FPGA設計流程也會受到影響,在產品集成和驗證階段,經常出現后期規格變更或必須應用新約束的情況,這確實很常見,功能或性能的簡單更改可能需要進行大量的設計修改,這些設計修改可能要求對體系結構進行更新,從而導致重寫部分低級HDL實作,當然,這將導致潛在的較長的重新驗證周期,
HLS加速FPGA設計的優勢和挑戰
為了幫助解決該問題,出現了高級綜合(HLS)編譯器,以使設計人員能夠進入更高的抽象級別,這些對于設計的高度復雜部分特別有用,這些部分可以通過高級語言(例如C或C ++)輕松表達,更高的抽象級別使描述復雜演算法和快速適應單調性變得更容易更改,更適合設計重用,
除了加快HDL設計的速度,HLS還具有簡化設計驗證的主要優勢,使用HLS,可以確保在門中正確實作高級C / C ++描述,不必進行擴展且費時的位級仿真,而且,由于HLS采取的高級C / C ++代碼是可執行的,因此它也用于高級應用程式驗證,
HLS的另一個主要優點是能夠通過以偽指令的形式指導編譯器來快速探索不同的體系結構設計空間,這種能力是有代價的,為了指導編譯器,設計人員必須首先對代碼以及資料在函式和回圈中的移動方式有深刻的理解, HLS編譯器是靜態工具,對理解代碼的動態特性沒有任何幫助,此外,HLS編譯器的行為通常難以預測最終的性能和資源利用率,因此,設計人員必須通過對相應的代碼部分應用各種編譯指示及其相關的引數設定,來手動探索設計空間,直到達到設計目標,
HLS工具流程

—>從C、c++、SystemC或OpenCL C開始
- 設計源代碼和測驗平臺代碼
—>C到RTL綜合
- 調度和映射資源;
- 生成通用RTL代碼;
- 使用綜合指令進行優化
—>RTL驗證
- 使用原始的C測驗臺;
- RTL模擬(XSim / ISim / ModelSim)
—>輸出到
- IP目錄;
- 系統生成器;
- DCP

HLS優勢
- 對于軟體工程,實作演算法基于硬體(ASIC或者FPGA)的計算加速,
- 對于IC設計開發,從抽象的C層級進行功能設計,
- 對于硬體驗證,從更抽象的層次進行功能性驗證,加速設計流程,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/135245.html
標籤:其他
上一篇:JQ實作ajax請求網抑云資料+art-template渲染
下一篇:windows sever 2012 R2環境下,css樣式無法正常加載,且資源決議為 text/html 而不是 text/css
