高級綜合(High-level Synthesis,縮寫 HLS),又譯高層次綜合,另又稱C合成(C synthesis)、電子系統層次合成(Electronic System Level synthesis,縮寫 ESL synthesis),是將電路設計規範的算法級或行為級描述在一定的約束條件下轉化為電路結構描述的方法過程。高層次綜合又稱為行為級綜合、算法級綜合等。它使設計者能夠在更高層次進行電子設計,更快速有效地在較高層次設計驗證仿真,而較低層次的工作由工具自動完成,從而讓數字電路系統設計工程師可以有更多的精力和更充分的條件去進行設計空間的搜索,尋求最佳的設計方案。

HLS 的過程通常基本包括預處理編譯轉換調度分配控制器綜合RTL生成、和反編譯等幾個部分。編譯、轉換部分決定了軟件的兼容性和易用性,調度(schedule)和分配(binding)主要決定了產生的 RTL 的性能、資源大小等。

發展

編輯

高層次綜合技術的發展經歷了三個階段。儘管早在20世紀80年代初就開始了關於高層次綜合技術的研究,並且在90年代推出了一些商業工具,高層次綜合設計方法直到最近兩三年才取得了一定的成功,得到了集成電路設計公司更多的接受和應用。

第一階段從80年代初到90年代初,關於 HLS 的研究主要集中在學術科研機構,他們完成了高層次綜合的早期的許多研究工作,包括許多關於 HLS 的基本的概念和技術。當時集成電路設計自動化系統開始了迅猛的發展,但限於當時的技術水平和 IC 工業界提出的需求,多數研究努力都停留在較低的設計層次上。因此高層次綜合技術被認為是學院派的探索,主要限於在大學和一些基礎性研究所中進行學術研究。

第二階段從90年代初到2000年初,主要是幾大 EDA 公司開始嘗試推動商業化高層次綜合技術,包括SynopsysCadenceMentor,均推出了商業工具,多以行為級的 HDL 為輸入語言。但是由於當時 RTL 設計方法能夠滿足複雜度的需求,HLS 技術的成熟度不夠,並且當時的設計主要都是面向控制的,而 HLS 對控制行為的綜合 QoR(Quality of Result)較差;以及其它一些因素導致這些工具在商業上都很不成功,而退出市場。

從2000年初到現在,第三階段的發展是眾多 EDA 公司和學術機構一起在推動 HLS 技術的發展和應用,HLS 技術開始走向成熟和商業應用。新的高層次綜合技術的解決了導致前兩代 HLS 技術商業化失敗的三個主要問題:

  1. 輸入語言採用了類 C語言而非前兩代的 HDL 語言,如 C、C++SystemC 以及 SpecCHandelC 等,這能夠使得系統模型得到復用,進行進一步的軟硬件實現。
  2. 實現了對時序(timing)比較精確的評估和調度。
  3. 實現了對驗證環境的重複使用,通過 TLM 建模技術可以將系統驗證環境復用於 RTL 級驗證,降低了驗證的複雜度。

HLS採用的輸入語言主要有C、C++、SystemC、SystemVerilog等。

參考文獻

編輯