Catapult C Synthesisは、 Mentor Graphicsの商用電子設計自動化製品であり、高位合成ツールであり、アルゴリズム合成またはESL合成と呼ばれることもあります。Catapult Cは、 ANSI C / C++およびSystemC入力[1]を受け取り 、FPGAおよびASICを対象としたレジスタ転送レベル(RTL)コードを生成します。[2]
歴史
2004年、メンターグラフィックスは、アンタイムANSI C/C++記述からパイプライン化されたマルチブロックサブシステムを合成するための階層設計サポートを提供する高レベル合成製品、Catapult Cを正式に発表しました。Catapult Cの主な機能は、ASICとFPGAを対象としたRTL(VHDLとVerilog)を生成することでした。ユーザーはタイミングと面積の制約を指定し、クロック周期と宛先テクノロジを提供しました。メンターは、ASIC設計者が詳細な特性データを収集するためのCatapult Cライブラリビルダーも発表しました。[3]
2005年、メンターはCatapult Cの拡張機能を発表し、SystemCをサポートする検証環境で設計をシミュレーションするためのSystemCトランザクションレベルモデルとラッパーを自動的に作成しました。メンターはまた、C++関数の引数を渡すことによって暗示されるデータ転送を、ワイヤ、レジスタ、ハンドシェイクレジスタ、メモリ、バス、またはより複雑なユーザー定義のインターフェイスなどのハードウェアインターフェイスにマッピングするためのインターフェイス合成も導入しました。[4]
2006年、メンターは信号処理サブシステムを自動的に作成するCatapult SL(システムレベル)を発表しました。Catapult SLは、複数のクロックドメインへの分割を含む、サブシステム内の複数のブロックへのシーケンシャルC操作の分割を調整できます。Catapult SLは、サブシステムを組み立てるために適切なブロック間チャネルとメモリバッファを自動的に挿入します。[5]
2009 年 1 月、Mentor は Catapult C と Vista SystemC 設計およびシミュレーション環境を統合し、トランザクション レベル モデル (TLM) を自動的に生成することを発表しました。このプロセスでは、Catapult への時間制限のない ANSI C++ 入力が TLM ラッパーにカプセル化され、タイミング情報が合成結果から抽出され、結果のモデルにバックアノテーションされます。このフローは、Open SystemC Initiative (OSCI) の TLM-2.0 標準と互換性があります。[6]
2009年6月、メンターはCatapult Cを強化し、制御ロジックの合成、電力最適化されたRTLネットリストの作成、自動マルチレベルクロックゲーティング、および元のC++入力に対するRTLのデバッグを可能にする自動検証フローの機能を追加したことを発表しました。[7]
2010年1月、メンターはCatapult Cがサイクルベースとトランザクションレベル(TLM)の両方のサポートを含むSystemC直接入力を受け取る機能を発表しました。[8]
2011年5月、メンターはCatapult CがTLM合成をサポートすることを発表しました。抽象的なTLMモデルはピン精度のプロトコル固有のSystemCモデルに変換され、そこからRTLコードに合成されます。既存の合成可能な記述はTLMに変換できます。[9]
2011年8月、Catapult CはCalypto Design Systemsに買収されました。[10]
2015年9月、メンターグラフィックス社はカリプトデザインシステムズ社を買収し[11]、カタパルトC社を再買収した。
特徴
CatapultCは独自の拡張機能なしでANSI C/C++を合成します。C/C++言語サポートには、ポインタ、クラス、テンプレート、テンプレートの特殊化、演算子のオーバーロードが含まれており、RTLコード上での設計再利用方法を容易にします。[12]
Catapult Cはアルゴリズムと制御ロジックの両方の合成をサポートしています。[13]
設計者はCatCを使用して反復処理を行い、指定されたパフォーマンスと面積の制約に適したマイクロアーキテクチャを選択します。[14] Catapultには、スケジュールされているハードウェア回路の視覚的なビューと、CコードとVerilog RTLコード間のクロックリファレンスを備えたグラフィカルユーザーインターフェイスがあります。Catapult Cには、オリジナルのC / C ++テストベンチを使用した3種類のシミュレーションがあります。サイクルベース、RTLベース、ゲートレベルベースです。[15]
Catapult C は、仮想プラットフォーム向けの SystemC モデル生成と、元の C++ テストベンチを使用して生成された RTL を元の C++ に対して検証するための SystemC テスト環境をサポートします。
Catapult Cは、標準的な市販のバスインターフェースやカスタムプロトコルを含むトランザクションレベルモデル(TLM)の合成をサポートしています。[16]
競合するHLS製品
- Cadence Design Systemsの Stratus HLS
- Xilinxの Vivado HLS (旧称 AutoESL の AutoPilot)
- Intelの Intel HLS (旧 Altera の a++)
- BlueSpec の BlueSpec コンパイラ
- Impulse Accelerated Technologies の Impulse C 共同開発者
- Synopsysの Synphony C コンパイラ
- トロント大学のLegUpは2020年7月24日にWayback Machineにアーカイブされました
- NECのサイバーワークベンチ[1]
- C-to-Verilog.com の C-to-Verilog
- Y Explorations の eXCite は 2019-09-17 にWayback Machineにアーカイブされています
- 並列処理とハードウェア記述用に拡張された ParC C++
- MathWorksの HDL コーダ
- ミラノ工科大学の PandA-Bambu HLS [2]
参考文献
- ^ ESLと高位合成を橋渡しするチップ設計
- ^ オウル大学 C 合成を使用した次世代 HSDPA ワイヤレス システム向け効率的な VLSI アーキテクチャの迅速なスケジューリング
- ^ EETimes: 高レベル合成のロールアウトによりESLが可能に
- ^ SOCCentral Mentor Graphics が Catapult C 合成製品を拡張 2006-02-05 に Wayback Machineでアーカイブ
- ^ SOCCentral Mentor が純粋な ANSI C++ から高性能サブシステムを作成するための高レベル合成を導入。2012 年 9 月 13 日にarchive.todayにアーカイブされました。
- ^ EETimes Mentor TLM 2.0 設計フロー
- ^ SCDsource Mentor Catapult C は制御と電力管理を統合します。2011-10-09 にWayback Machineでアーカイブされました。
- ^ ESLと高位合成を橋渡しするチップ設計
- ^ EETimes メンターのTLM合成は仮想プロトタイピングとハードウェア実装をリンクします
- ^ EETimes カリプトがメンターのカタパルトCを買収
- ^ PR Newswire メンターグラフィックス、カリプトデザインシステムズを買収
- ^ オウル大学 C 合成を使用した次世代 HSDPA ワイヤレス システム向け効率的な VLSI アーキテクチャの迅速なスケジューリング
- ^ SCDsource Mentor Catapult C は制御と電力管理を統合します。2011-10-09 にWayback Machineでアーカイブされました。
- ^ ICASSP 増加する半径のリスト球検出アルゴリズムのアーキテクチャ設計と実装
- ^ 高レベル合成を使用したDeepchip C/C++チップ設計
- ^ EETimes メンターのTLM合成は仮想プロトタイピングとハードウェア実装をリンクします
外部リンク
- Calypto Design Systems Catapult C 合成製品ページ
- メンターグラフィックス Catapult C 合成製品ページ
- ESL および高位合成コミュニティ
- OpenMP ディレクティブを含む ANSI C コードを SystemC 記述に変換する
- 組み込みシステムの自動合成と検証: 希望的観測か現実か?
