Cベース設計とは? 導入の課題は? ――人手による介入が必須,完全自動合成は幻想
●ステップ・バイ・ステップで抽象度を下げていく
実際のシステムLSI設計では,通常,図3に示すような設計の抽象化レベルが定義され,使われています.
1)仕様レベル
まず,通常,ソフトウェア工学などで述べられている要求仕様定義については,組み込み機器の設計ではMATLABやUML(Unified Modeling Language)などのツールや技術が利用されています.また,通信機器の設計では,SDL(Specification and Description Language)やUMLなどのツール,および技術が利用されています.設計対象のシステムLSIに対する要求を分析し,仕様が何らかの形で定義されます.組み込み機器の設計と通信機器の設計でツールが異なるのは,ツールや技術の特性だけでなく,過去の資産を無視できないといった理由もあります.
Cベース設計では,これらの仕様をC言語またはその拡張言語で記述することになります.通常,この仕様レベルでは,実現すべき機能の表現としての関数が定義されています.この段階では全体として時刻の概念がなく,「untimed記述」と呼ばれます.もちろん,仕様レベルでも外部とのインターフェースの関係から,実時間(リアルタイム)制約などがある場合も多いのですが,そのような時間制約は部分的なものであって,記述全体としては時刻の概念のない設計記述となっています.このuntimedの設計記述は,C言語やその拡張言語では自然に表現できます.