Cベース設計とは? 導入の課題は? ――人手による介入が必須,完全自動合成は幻想
2)アーキテクチャ決定
次の設計詳細化ステップでは,各部分動作の間の順序付けを行い,それに伴って設計に構造を導入します.これにより,設計記述は,時刻の概念を持たない「untimed記述」から,各部分動作間の実行時間関係が明確になった「timed記述」に変わります.図3では,このことを「アーキテクチャ決定」と呼んでいます.
多くの場合,この段階で,どの部分をハードウェアで実現するか,そしてどの部分をソフトウェアで実現するかが決まります.それに伴って,どのようなプロセッサを利用するか,あるいはどのようなIPマクロ(再利用可能な回路ブロック)を使うか,そして,どの部分をカスタム・ハードウェア(専用回路)にするのかが決定されます.
これらのことを図で示したものが,図4の左から中央へのステップです.ここでは「仕様+設計制約」を「アーキテクチャ+性能見積もり」へと詳細化します.図4の中央の図からわかるように,一種のブロック・レベルの設計であり,この段階でハードウェア量とソフトウェアの性能の見積もりも行います.つまり,設計対象となるシステムLSI全体の速度を評価できるようになります.
このような設計詳細化の過程は,図4からもわかるように,仕様で実現すべきとされている各部分機能をプロセッサやIPマクロ,カスタム・ハードウェア,メモリ,さらには必要に応じてアナログ回路などへ「マッピング」することに相当します.したがって,このような「マッピング」を自動化するツール,あるいは人手による「マッピング」を対話的に支援するツールを利用することになります.
〔図4〕システムLSI設計の流れ
図3で述べた各抽象化レベルに基づく設計の流れを図で示すと,このようになる.仕様レベルでは動作に関する構造が主体であるが,アーキテクチャ・レベルではそれがハードウェアの実体へとマッピングされる.さらに,設計が詳細化され,実装レベルへと変換されていく.