Home > THE SOUND OF CADENCE > SOC70 > 次世代SystemCベースの高位合成ツール、C-to-Silicon Compiler
次世代SystemCベースの高位合成ツール、C-to-Silicon Compiler
| ケイデンスのC-to-Silicon Compiler(CtoS)は、ケイデンスが昨年7月に発表したSystemCベースの高位合成ツールです。CtoSは、従来の高位合成ツールでは実現されていないいくつかの特徴を持っています。例えば、従来の高位合成ツールでは合成困難な制御系アプリケーションへの対応や、合成情報のデータベース化による制約とソース・コードの完全分離、インクリメンタル合成によるECOフローの実現、そして低消費電力設計フローのサポートなどにより、ハードウェア設計、SystemC設計に新しい設計技術の変革の可能性をもたらします。ここでは、CtoSの優れた特徴をご紹介します。 |
| CtoSの入出力 | ||
| CtoSの入力言語は、SystemC記述のソース・コードと論理合成用テクノロジ・ライブラリ、および高位合成制約を入力として合成を行い、出力としてはRTL記述(Verilog記述)、タイムドSystemC記述のFast Hardware Model(FHM)、RTL記述とSystemC間の等価性検証用のスクリプトやシミュレーション用のSystemCラッパを生成します。 | ||
|
||
| CtoSは幅広くSystemC/C/C++の基本文法をサポートして いる以外に、OSCI TLM 1.0も標準サポートしており、既存のSystemC TLMモデルからの合成プロセスも可能となります。 |
| 論理合成エンジンとの融合による高品質なRTL記述の実現 |
| 内蔵RCエンジン |
| CtoSは、高位合成ツールとして初めて論理合成エンジンを内蔵しました。内蔵した論理合成エンジン、RTL Compiler(RC)は高位合成のスケジューリングの際にタイミング、面積、消費電力の分析を行うために使用します。この論理合成エンジンを内蔵することによって、今までの高位合成ツールでは実現困難とされたことも可能になりました。 |
| 見積もり精度の向上 |
| RCエンジンの内蔵によってもたらされた大きなメリットは、タイミングの見積もり精度を高めたことです。高位合成ツールで人手設計と同等か、それ以上のRTL記述を生成するためには、高いタイミング精度の見積もりが欠かせない技術です。従来の高位合成ツールは、論理合成ツールとは別に実装されているために、合成回路の構成によって臨機応変にタイミングを見積もることができず、入力ソース・コードによって生成されたRTL記述の品質に大きなばらつきが生じていました。CtoSは、RCエンジンを内蔵することによって、ライブラリ変換の手間を省くだけではなく、精度の高い見積もりによって高品質なRTL記述の生成を実現しました。 |
| 制御系アプリケーションへの適用 |
| 内蔵論理合成エンジンがないことのもう一つの欠点として、制御系アプリケーションに弱いことが上げられます。通常、高位合成で合成を行う際に、事前に演算リソースについて特定のテクノロジ・ライブラリを用いて遅延などを見積もる必要があります。いわゆるライブラリ変換です。しかし、制御中心のアプリケーションの場合には演算リソースが少ないため、制御部分の論理が事前見積もりできません。そのために制御系のアプリケーションの時には、従来の高位合成ツールでは正しくタイミングを見積もれません。つまり生成されたRTL記述が要求されたタイミングを満たすことが保証できません。論理合成エンジンRCを内蔵したCtoSでは、随時生成された論理のタイミング見積もりができるため、正確に制御論理のタイミング見積もりを行い、正しくスケジューリングを行うことによって制御系のアプリケーションでも高品質なRTL記述が実現できるようになりました。 |
| 面積・タイミング・電力トレードオフの実現 |
| 内蔵論理合成エンジンを持つことで、リソース・タイプやリソース・スピードをダイナミックに切り替えることができます。論理合成エンジンを使用してこのように切り替えた後のリソースにおいても、正確なタイミング、面積、消費電力の見積もりができることから、スケジューリング時にタイミング、面積、消費電力のトレードオフを可能にします。ユーザは、CtoSではスピード優先、消費電力優先のRTL記述生成を選択することができます。 |
| BST(Behavior Structure Timing)データベース |
| CtoSは、合成途中の動作・構造・タイミング(BST)の情報をデータベースに保存することができます。従来の高位合成ツールで実現困難とされたこの機能も実現できるようになりました。 |
| 合成制約と設計の完全分離 |
| 設計の動作・構造・タイミングをデータベース化することによって、合成制約はすべてデータベースの属性をアクセスする形で実現することができました。したがって、ソース・コード中に設計制約を埋め込むような従来のやり方と違い、合成制約と設計を完全に分離することができました。こうすることによってソース・コードに変更を加える必要がなく、設計の“オリジナル性”を保つことができます。 |
| インクリメンタル合成によるECOフローのサポート |
| 高位合成を使うときに大きな問題になることの一つは、入力の動作記述を少し修正しても生成されたRTL記述が大きく変わってしまうことです。加えてツールで生成されたRTL記述は可読性が低いために、従来のRTL設計でのECO(Engineering Change Order)フローが適用困難という大きな課題があります。CtoSはこの課題を解決するために、インクリメンタル合成を実現しました。CtoSのインクリメンタル合成は、オリジナルSystemCを合成したときに保存されたデータベースを参照しながら、それに最も近いRTL記述を生成する技術です。このインクリメンタル合成の機能を使えば、SystemCコードでの変更に対しても、RTL記述上での変更も少なくなるように生成されます。さらに生成されたRTL記述をケイデンスのEncounter Conformal ECO Designerに入力すれば、SystemCからレイアウト・ネットリストまでのECOフローを自動化できます。 |
| アーキテクチャ探索の効率化 |
| CtoSのBSTデータベースのセーブとオープン機能を利用すれば、任意の段階での合成結果の保存と再開ができます。今までの合成結果を再利用して、別の合成制約を試行することができ、色々なアーキテクチャを短時間かつ効率的に試すことができます。この機能はアーキテクチャ探索時に欠かせない便利な機能の一つです。 |
| 低消費電力設計フローのサポート | ||
| CtoSではスケジュール後の電力見積もりはもちろん、スケジュール前のアルゴリズム・レベルでの電力見積もりも可能になっています。さらに電力を見積もるためのTCF(Toggle Count Format)ファイルを読み込むことができ、実際の入力 テスト・パターンで消費電力の値を見積もって、SystemC上のオブジェクトとリンクしながらボトルネック解析ができます。短時間に色々なアーキテクチャを試しながら、電力、性能、面積のトレードオフを行うことができます。電力見積もりの機能以外では、CtoSはクロック・ゲーティングの最適化機能や、消費電力を考慮したスケジューリングの技術も実現しています。 |
||
|
| GUIによる合成結果の分析 | ||
| CtoSではユーザ・フレンドリーなGUIも用意されています。設計のセットアップ、アーキテクチャの探索、合成、分析といった手順に応じて各種のビューアが用意されています。合成結果も視覚的に分かりやすいビューでタイミング、面積、消費電力の結果をレポートし、問題の分析および改善に役に立ちます。 高位合成における分析の重要な点は、各演算器等のリソースがソース・コードと生成されたRTL記述がどのように対応しているか、容易に確認が取れることです。CtoSは独自のデータベースにより強力なリンク機能を実現していますので、分析作業をより的確に行うことが可能です。 |
||
|
||
| CtoSの斬新なアイディアと優れた技術は、今後のハードウェア設計のみならず、システムレベル設計の分野にも大きく貢献します。大規模、高速、低消費電力の設計を短時間に完成させるための最も有力な設計ツールです。 ケイデンスでは、毎月CtoSの技術導入のための高位合成技術ワークショップを開催しています。ぜひこの機会にご参加ください。 |
| テクニカル・フィールド・オペレーション本部 朱 強 |