Skip to main content
QUICK REVIEW

[論文レビュー] Using Vivado-HLS for Structural Design: a NoC Case Study

Zhipeng Zhao, James C. Hoe|arXiv (Cornell University)|Oct 27, 2017
Interconnection Networks and Systems参考文献 13被引用数 6
ひとこと要約

本論文は、Xilinx Vivado-HLSが、参照RTL設計と完全に置き換え可能なサイクル精度およびビット精度のネットワークオンチップ(NoC)ルーターや完全なNoCを効果的に実装できることを示している。C++とパラメータ指定(pragmas)を用い、体系的なコーディング手法を採用することで、RTLと同等のリソース使用量とクリティカルパス遅延を達成した。また、機能検証と構造的探索における生産性の向上が顕著であったが、階層的設計の複雑さが課題を引き起こした。

ABSTRACT

There have been ample successful examples of applying Xilinx Vivado's "function-to-module" high-level synthesis (HLS) where the subject is algorithmic in nature. In this work, we carried out a design study to assess the effectiveness of applying Vivado-HLS in structural design. We employed Vivado-HLS to synthesize C functions corresponding to standalone network-on-chip (NoC) routers as well as complete multi-endpoint NoCs. Interestingly, we find that describing a complete NoC comprising router submodules faces fundamental difficulties not present in describing the routers as standalone modules. Ultimately, we succeeded in using Vivado-HLS to produce router and NoC modules that are exact cycle- and bit-accurate replacements of our reference RTL-based router and NoC modules. Furthermore, the routers and NoCs resulting from HLS and RTL are comparable in resource utilization and critical path delay. Our experience subjectively suggests that HLS is able to simplify the design effort even though much of the structural details had to be provided in the HLS description through a combination of coding discipline and explicit pragmas. The C++ source code can be found at https://github.com/zhipengzhaocmu/HLS_NoC.

研究の動機と目的

  • Vivado-HLSが同期レジスタおよび組み合わせ論理が多用される構造的ハードウェア設計に対して、どの程度有効であるかを評価すること。
  • C/C++とHLSを用いて、サイクルおよびビットレベルの正確性を備えた複雑でパラメータ化されたRTL設計(例:NoCルーター)を再現できるかを検証すること。
  • HLSを用いることで、機能的正しさと構造最適化を分離する際の生産性の向上を評価すること。
  • HLSを用いて個々のルーターモジュールから階層的NoC設計にスケーリングする際の制限および課題を同定すること。
  • LUT、フリップフロップ、クリティカルパス遅延の観点から、HLS生成とRTL生成のNoC実装の品質の結果(QoR)を比較すること。

提案手法

  • 著者らは、Xilinx Virtex-7 FPGAデバイスをターゲットに、Vivado-HLSを用いてC++でNoCルーターおよび完全なNoCを実装した。
  • データフロー、パイプライン、リソース共有を制御するため、Vivado-HLSのパラメータ指定(pragmas)を適用し、構造の決定論的性を確保した。
  • ルーターサブモジュールをC++オブジェクトとして表現するコーディングのルールを導入し、モジュラーで階層的な設計を可能にした。
  • HLSフローにおいて「evaluate」オプションを用い、1回の実行で合成と実装を同時に行なった。
  • 同等のRTL設計はCONNECT NoCジェネレータを用いて生成し、同一の戦略を用いて標準的なVivado RTLフローで合成した。
  • 複数の構成(データ幅やネットワークトポロジーの変更)において、性能とリソース使用量を比較した。

実験結果

リサーチクエスチョン

  • RQ1Vivado-HLSを用いて、同期レジスタおよび組み合わせ論理を多用する構造的設計を、サイクルおよびビットレベルの正確性で実装できるか?
  • RQ2HLS生成のNoCルーターの品質の結果(LUT、FF、クリティカルパス遅延)は、同等のRTL設計と比べてどの程度か?
  • RQ3構造的設計において、C言語とHLSを用いることで、機能検証と構造的探索の両面でどの程度の生産性向上が得られるか?
  • RQ4HLSを用いて階層的モジュラー設計(特に複数のルーターサブモジュールのネットリスト化)を実行する際、どのような課題が生じるか?
  • RQ5HLSにおいてC++オブジェクトとコーディングのルールを用いることで、QoRに悪影響を及げることなく、スケーラブルで保守性の高い構造的設計が可能になるか?

主な発見

  • HLS生成のNoCルーターは、同等のCONNECT RTLルーターと比較して、LUTが1.33倍、FFが0.42倍、クリティカルパス遅延が0.87倍であった。
  • FF使用量の削減は、HLSがより効率的なステートレジスタエンコードと最適化を実行していることに起因する。
  • 128ビット幅の構成では、仮想チャネルフラグメントバッファのデータパス論理の差異によりLUT使用量が増加したが、ストレージ自体の使用量は同等であった。
  • リング、メッシュ、トーラスなどのNoCトポロジーにおいて、HLS NoCはLUTで1.23倍以内、FFで0.46倍以内の配置・配線比を示した。
  • 同じアロケータ論理を用いても、HLSルーターのクリティカルパス遅延は、RTLと比較して良好な場合があった。これは、合成最適化の差に起因する可能性がある。
  • 生産性の向上は、主に機能検証と構造的探索の段階で顕著であり、C言語の逐次的セマンティクスとデバッグ環境のおかげである。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。