カタパルトC
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 Library Builder」も発表しました。[ 3 ]
2005年、メンターはCatapult Cの拡張機能を発表しました。これにより、SystemCをサポートする検証環境で設計をシミュレーションするためのSystemCトランザクションレベルモデルとラッパーが自動生成されます。また、メンターはC++関数の引数を渡すことによって生じるデータ転送を、配線、レジスタ、ハンドシェイクレジスタ、メモリ、バス、あるいはより複雑なユーザー定義インターフェースなどのハードウェアインターフェースにマッピングするインターフェース合成機能も導入しました。[ 4 ]
2006年、メンターは信号処理サブシステムを自動作成するCatapult SL(システムレベル)を発表しました。Catapult SLは、サブシステム内の複数のブロックへのシーケンシャルC演算の分割、特に複数のクロックドメインへの分割を調整できます。Catapult SLは、適切なブロック間チャネルとメモリバッファを自動的に挿入し、サブシステムを組み立てます。[ 5 ]
2009年1月、メンターは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のCyberWorkBench [1]
- C-to-Verilog.comの C-to-Verilog
- Y Explorations の eXCite はWayback Machineで 2019-09-17 にアーカイブされています
- 並列処理とハードウェア記述用に拡張されたParC C++
- MathWorksの HDL Coder
- ミラノ工科大学の PandA-Bambu HLS [2]
参考文献
- ^ ESLと高位合成を繋ぐチップ設計
- ^オウル大学C言語合成を用いた次世代HSDPA無線システム向け高効率VLSIアーキテクチャの高速スケジューリング
- ^ EETimes:高位合成のロールアウトによりESLが可能に
- ^ SOCCentral Mentor GraphicsがCatapult C合成製品を拡張Archived 2006-02-05 at the Wayback Machine
- ^ SOCCentral Mentor が純粋な ANSI C++ から高性能サブシステムを作成するための高レベル合成を導入。2012年 9 月 13 日にarchive.todayにアーカイブ。
- ^ EETimes Mentor TLM 2.0 設計フロー
- ^ SCDsource Mentor Catapult C は制御と電力管理を合成します。 2011年10月9日、 Wayback Machineにアーカイブされています。
- ^ ESLと高位合成を繋ぐチップ設計
- ^ EETimesメンターのTLM合成は仮想プロトタイピングとハードウェア実装をリンクします
- ^ EETimesカリプトがメンターのカタパルトCを買収
- ^ PR Newswireメンター・グラフィックス、カリプト・デザイン・システムズを買収
- ^オウル大学C言語合成を用いた次世代HSDPA無線システム向け高効率VLSIアーキテクチャの高速スケジューリング
- ^ SCDsource Mentor Catapult C は制御と電力管理を合成します。 2011年10月9日、 Wayback Machineにアーカイブされています。
- ^ ICASSP増加半径リスト球検出アルゴリズムのアーキテクチャ設計と実装
- ^高位合成を使用したDeepchip
- ^ EETimesメンターのTLM合成は仮想プロトタイピングとハードウェア実装をリンクします