Stratus High-Level Synthesis

仕様からシリコンまでの最速パス

Cadence Stratus High-Level Synthesis (HLS) は、抽象度の高い IEEE 1666 SystemC、C++、および MATLAB 記述から、ASIC、システムオンチップ(SoC)、およびFPGAをターゲットとした高品質なレジスタトランスファレベル(RTL)の設計インプリメンテーションを自動的に実現します。Stratus HLS による製品設計は、一貫した高品質な結果、完成された機能性、完全な設計カバレッジなど、その成功例は世界中に広がっています。画像処理、ワイヤレス、マシンラーニング(ML) アプリケーションに最も広く使用されているほか、Stratus HLSのテクノロジで作られた製品は、家や自動車からポケットの中まで、多くの場面で活用されています。

概要

Stratus HLS により、設計チームは抽象度の高い IEEE 1666 合成可能なSystemC、C、C++、 MATLAB モデルから、高品質の RTLインプリメンテーションを迅速に設計、検証することができます。モデルはStratus integrated design environment (IDE) を使用して容易に設計可能です。Stratus HLSの合成可能な SystemC IP は、一般の算術演算やデータ型と同様に、汎用バスインタフェースやポイントツーポイント通信プロトコルのシミュレーションおよび合成モデルを提供します。

Stratus HLS の設計環境では、Cadence Genus synthesisやJoules RTL power エンジンを活用することで、パワー、パフォーマンス、エリア(PPA) の結果は、通常、手書きRTL で達成される結果と同等、もしくはそれ以上になります。フロントエンド設計者はCadenceデジタルフローとの完全な統合を通じて、高品質な PPA 見積りを取得します。

Stratus HLS を使用すると、SystemC、C、C++、MATLAB モデルを新しいテクノロジプラットフォームにリターゲットでき、従来の手書き RTL より簡単に再利用できます。Stratus graphical user interface (GUI) を使用すると、設計者は高位合成環境内から PPAのトレードオフを動的情報や静的情報から評価することもできます。

Stratus HLS はtransaction-level models (TLM) からゲートまでの、何百ものブロックの設計・検証フローを自動化します。さらに、Stratus HLS は、Cadence ツール群のフルフローと緊密に統合しているため、フローの終盤に短期での解決が要求されるengineering change orders (ECO) とレイアウト上での配線性の問題の現実的な解決に役立ちます。

図1: Stratus HLS はGenus synthesisとJoules RTL powerエンジンを活用し、テクノロジと設計の制約をターゲットとした高品質な RTL を生成

主な利点

  • 業界標準のIEEE 1666 SystemC、C、C++をサポート
  • MATLAB から Stratus HLS への統合により、
    ・アルゴリズム開発者はPPAを早期かつ正確に把握可能
    ・RTL 設計者は、 MATLAB から最適化された RTL への自動生成手段が利用可能に
    ・マイクロアーキテクチャの最適化を実現
    ・MATLABコードからRTL への手動変換が不要
  • 先進的な第6世代HLSの最適化とCadenceデジタルインプリメンテーションフローとの緊密な統合により、業界をリードするquality of results(QoR)を実現
  • Stratus HLS のGenus synthesis エンジンにより、設計に必須とされる正確なカスタムデータパスコンポーネントの作成とQoR の向上を実現
  • Stratus HLS の Genus synthesisとJoules RTL powerエンジンにより、タイミング、エリア、パワーの正確な推定値を提供
  • Cadenceデジタルフルフローとの完全統合により、後工程の収束が予測可能
  • 制御中心の設計とデータパス中心の設計の双方を含めた、設計領域全体にわたる幅広い適用性
  • 複数のモジュールやスレッドを含む階層的な設計・検証をサポート
  • 汎用バスベース、ポイントツーポイントI/O、ユーザー定義精度の固定小数点および浮動小数点演算、一般の算術演算およびライブラリ関数などの、IEEE 1666 SystemCシミュレーションおよび合成用モデルの提供
  • 先進的なパイプライン最適化により、パイプラインストール、データドレイン、バブルスカッシングを伴う完全パイプライン設計および部分パイプライン設計をサポート
  • トップダウンとボトムアップ両方のECOをサポート
  • ローパワー最適化による最大50%の電力削減
  • 物理高位合成による配線混雑の軽減
  • 複数の合成シナリオの自動サポートにより、定量的な設計スペースの探索と最適化が可能
  • SystemC アサーションおよびC++ アサートから SystemVerilog assertions (SVA) への合成
  • 言語混在(SystemCとRTL)のシミュレーションとデバッグを含む、TLMモデルからゲートまでの一貫した検証環境での何百ものブロックの設計と検証を自動化
  • Cadence Jasper フォーマル検証の統合による、異なるRTL実装間の等価性チェック
  • Stratus HLSナレッジベース(http://support.cadence.com/StratusHLS) のオンラインサポート(入門ガイド、設計例、ベストプラクティス、アプリケーションノートを含む)
Complete graphical analysis with links to source code
図2: ソースコードへのリンクを含む完全なグラフィカル解析

特長

IEEE 1666 SystemC、C、C++ 合成

Stratus HLS は、業界標準の IEEE 1666 SystemC および C、C++ のセマンティクスをサポートします。

SystemC クラスライブラリはモジュール化、並列化、ビット精度を提供し、設計者は使い慣れた階層化を使用して、設計の複雑さを管理できます。SystemC は階層とマルチスレッドをサポートすることにより、同時動作するアルゴリズムとそのインターフェイスの設計・検証を可能にします。

Stratus HLS では、ハードウェアインターフェイスを備えたハードウェアモジュールのコンテキストに、C または C++ アルゴリズムコードを自動的に配置することもできます。

幅広い適用性

Stratus HLSの利用と共に構築されたシリコンは、世界中の数多くの製品に組み込まれています。それら製品は、画像処理、ワイヤレス、および MLアプリケーションの分野で最も広く使用されているほか、幅広いアプリケーションで使用されています。

Stratus HLS は、アンタイムド、タイムドの SystemC および C++ モデル (両方の混在を含む) をサポートし、設計者に最大限の柔軟性を提供します。出力は、設計仕様に合わせて、最大スループットの実現に向け完全パイプライン化 (サイクルごとに新しいデータ)、スループットを低下させてパイプライン化(複数サイクルごとに新しいデータ)、またはパイプライン化しないこともできます。また、ハードストールやソフトストール、パイプラインデータドレインやバブルスカッシングなど、複数のパイプラインストールモードもサポートしています。Stratus HLS は、生成RTLのfinitestate machine (FSM)、データパス、およびメモリインターフェイスが、最も複雑なストールシナリオであっても正しく実装されることを保証します。

Stratus IP ビルディングブロックには、アプリケーション固有の IP と汎用 IP が含まれます。たとえば、Stratus ラインバッファ IP は画像処理および動画アプリケーションで、複雑なデータ型はワイヤレスアプリケーションで広く使用されます。また、浮動小数点型の bfloat のサポートには ML 、artificial intelligence (AI)アプリケーションで使用されます。一方で、すべての設計において、ポイントツーポイントおよびバスベースの通信 IP を活用できます。

階層設計

Stratus HLS は、単一のブロック、または HLS ブロックと RTL ブロックの両方を含むモジュールの複雑な階層に適用可能です。Stratus HLSの設計と検証の自動化により、設計者は 一つ、部分、またはすべてのモジュールを合成し、SystemC と RTL を組み合わせたシミュレーションや検証を行うことができます。

Stratus GUI includes a full SystemC IDE
図3: Stratus GUI には高機能な SystemC IDE が含まれる

各モジュールには、一つ、またはそれ以上の SystemC スレッドやメソッドを用意します。そして、 Stratus 通信IP を使用し、各モジュールを SystemC または RTL としてシミュレートできますStratus 通信 IP を使用しても SystemC と RTL の混在シミュレーションが可能であり、またユーザはSystemCとRTL間を接続するために複雑な混在シミュレーション環境を準備する必要はありません。また、設計が複数のクロックドメインを持っていたとしても、Stratus clock-domain crossing (CDC) IP により、信号がクロック境界を越えて正しく伝搬されます。

Stratus HLS は、階層モジュールの作成もサポートします。設計者が関数単体や生成されるFSM、データパスを個別のモジュールとして実装することも可能です。Stratus HLS では、SystemCコードを複雑に書き直す代わりに、Tcl やディレクティブを使用して、これを行うことができます。

Stratus HLS は、メモリテストポートを最上位モジュールに引き上げたり、メモリをモジュール階層の外側に抽出したりする機能を含め、階層内外での多様なメモリの実装方法をサポートしています。

Cadenceベリフィケーションスイートと統合された Stratus HLS は、アサーション、デバッグ、波形、元の SystemC 設計へのリンクなど、自動化された言語混在 (SystemC および RTL) 検証とデバッグをサポートします。

GUI

Stratus GUI には IDE が内蔵されており、新規ユーザー、上級ユーザー共に、簡単かつ直感的にSystemC開発を行うことができます。標準的な IDE 機能に加え、Stratus IDE を使用すると、事前に定義された設計テンプレートを使用して、新たなモデルを簡単かつ迅速に作成でき、設計とデバッグにかかる時間を短縮できます。

Stratus 解析環境には、SystemC および RTLソースリンク、コントロール/データフローグラフ、スケマティックビューワ、パイプライン解析のほか、アーキテクチャの最適化に対する影響を判断するための QoR レポートおよび可視化機能が含まれています。一般的には GUI 経由で最も多用されますが、このような解析は Stratus Tcl API 経由でも使用できます。

IP ビルディングブロック

Stratus HLS は、設計者が短期間で設計を立ち上げられるように、合成可能なビルディングブロックを提供しており、 IP ライブラリと Stratusインターフェイスジェネレーターが含まれています。最適化されたこれらの機能IPは高位のSystemC コードで実装されているため、性能やエリアを損なうことなくRTLに実装可能です。その結果、設計・検証プロセスを加速する、真の再利用可能な設計 IP となります。

Stratus IP ライブラリには、高速シミュレーションモデルとビット精度合成可能なモデルが含まれています。

  • 浮動小数点のデータ型と単位は、IEEE 754 の単精度/倍精度に加え、マシンラーニングデータ型 bfloat、およびユーザー指定の指数部と仮数部の構成もサポートします。
  • ラインバッファ、サーキュラバッファ、trigger-done、ストリームデータ、FIFOベース、メモリインターフェイスなどのユーザー設定可能な接続インターフェイスが使用できます。
  • sin、cos、log、min、max、clip などの汎用ライブラリ関数の合成に最適化されたバージョンを提供しています。
  • マルチクロック設計のためのCDC回路を提供しています。
  • Arm AMBA AXIとAPBインターコネクトを用いた接続用フレームバッファおよびバスインターフェイスを含む、専用プロトコルインターフェイスを提供しています。

設計・検証フローの自動化

Stratus HLS は、完全に統合された自動化システムを搭載しています。一つの Tcl ファイルから、以下のすべての設定と自動化が可能です。

  • C++のコンパイルとリンク
  • 合成ディレクティブ
  • SystemCとRTLシミュレーション
  • SystemC、RTL、または両方の構成の解析とデバッグ
  • 波形解析
  • アサーションの合成
  • 複数のRTL実装間のフォーマル等価性
  • 論理合成
  • パワー解析
  • 結果の可視化
  • 複数構成の設計探索
  • 定量的なトレードオフ解析

この自動化により、設計者は Stratus HLS を使用して複数のアーキテクチャとインプリメンテーションを検討できると同時に、設計初期の TLMモデルからゲートまで一貫した環境を提供することで検証を向上させることができます。

ECOサポート

設計フローのどの時点でも設計変更が必要になる場合があります。設計フローの後半で変更が発生した場合でも、Stratus HLSのECOモードは開発スケジュールへの影響を最小化する際に有効です。

新たにRTL を作成して RTL-GDSIIインプリメンテーション全体を完全にやり直す代わりに、Stratus HLS は最小限の変更で RTLインプリメンテーションを作成します。Cadence Conformal ECO Designer が ECO パッチを作成し、設計やスケジュールに対する変更の影響を最小限に抑えることができます。

Conformal ECO Designer と連携すると、パッチはネットリスト、配置配線された設計、またはメタルオンリーの ECO が可能な場合は、ポストマスクネットリストでも適用できます。これにより、パッチが正しく、設計はQoR目標を満たします。

ローパワー最適化

Stratus HLS により、設計チームは、ファイングレインドブロックレベルのクロックゲーティング、FSM 最適化、パワー指向の演算スケジューリング (再順序付け) など、手書きのRTL では実現が困難または不可能な、複雑なローパワー最適化を自動化できます。

設計者は、Stratus HLS の探索機能を使用して、設計 PPAを迅速にトレードオフすることができます。MLにおける精度や無線通信における損失など、アプリケーションにより、追加で考慮が必要なクライテリアもあります。

これらの最適化により、設計によってはローパワー最適化による最大50%の電力削減が可能になります。

設計収束

Stratus HLS は、生成RTL に対し、各パスを徹底的に解析し、演算をスケジュールすることで、より容易に、タイミング収束を実現し、指定のクロック周期内に収めます。

Stratus HLS は、データパス最適化テクノロジ(特許取得済み)と組み込みGenus synthesis により、指定されたテクノロジライブラリを用いてデータパスコンポーネント、マルチプレクサ、レジスタを構築し、正確なタイミングとエリアのモデルを生成します。

ユーザーはStratus HLSが各クロック周期に演算をどれだけ積極的に落とし込むかを制御することができます。Stratus HLSの活用により、タイミング収束の問題解決に費やされる、数ヶ月に及ぶバックエンドでの作業期間が短縮できます。

フロントエンド設計者は、Stratus HLSとGenus physical synthesisとの統合により、配線混雑の問題を早期に可視化してフィードバックすることで、早期にバックエンドの問題を回避できます。

ビヘイビア IPの再利用

Stratus HLS は、ビヘイビアIP の作成と適用を可能にし、真のIP再利用を提供します。

Stratus HLS を使用すると、検証済みのソースコードを変更せずに、様々なプロセステクノロジ、クロック周波数、PPA ターゲットに対して再利用できます。アルゴリズム、アーキテクチャ、インターフェイスの変更は、高位設計で段階的に行うことができ、以前のような広範な RTL 書き換えは不要となります。

ビヘイビア IPの再利用をすることで、設計全体の工数が大幅に削減され、return on investment (ROI) が最大化されます。

ケイデンスのサービスとサポート

  • ケイデンスのアプリケーション・エンジニアは、電話、電子メール、またはインターネットでお客様の技術的な質問にお答えします。また、技術支援やカスタム・トレーニングを提供することもできます。
  • ケイデンス認定講師が70以上のコースを担当し、実体験を生かした授業を展開しています。
  • 25以上のInternet Learning Series (iLS)オンラインコースは、インターネットを通じてご自身のパソコンで柔軟にトレーニングができます。
  • Cadence Online Supportは、最新のソリューション、技術文書、ソフトウェアのダウンロードなどのナレッジベースに24時間365日オンラインでアクセスすることができます。
  • 詳しくは、サポートおよびトレーニングのページをご覧ください。