Cベース設計とは? 導入の課題は? ――人手による介入が必須,完全自動合成は幻想
●Cベース設計の合成では人手の介入が不可欠
次に,以上述べてきたCベース設計手法,特に図5で示したようなハードウェア・ソフトウェア協調設計をC言語に基づいて行う場合のEDA技術(合成技術と検証技術)について考えてみることにします.図5に示したように,システムLSIでは,それを構成する各ブロックごとに,以下のような実現方法が要求仕様に合わせて適用されます.
1)すべてソフトウェア
2)すべてカスタム・ハードウェア
3)ソフトウェアとカスタム・ハードウェアの混合
4)複数のソフトウェアが並列に動作
これらを合成することを考えると,基本的に以下のEDA技術が必要になります
a)ハードウェアのビヘイビア合成技術
b)RTLからの自動合成技術
c)ソフトウェアの最適化コンパイラ
c)の「ソフトウェアの最適化コンパイラ」については,通常のRISCプロセッサなどに対する最適化コンパイラの技術がかなり進んでおり,人手によるコンパイルと同等以上のコードを生成できるようになっています.しかし,組み込み機器などで利用するDSP(ディジタル信号処理プロセッサ)や特殊なプロセッサについては,コード最適化が必ずしも十分でない場合も多く見受けられます.このような特定用途のプロセッサに対する最適化コンパイラ技術については,依然として研究的要素の大きな課題であるという認識が必要です.
a)の「ハードウェアのビヘイビア合成技術」についても,特定用途向けプロセッサ用の最適化コンパイラと同じような状況です.うまく品質の高い合成が行える場合もあるが,その一方で,「ひどい」合成結果 となってしまう場合もあるということです.言い換えると,入力となるC言語の記述のしかたに合成結果が大きく依存するのです.利用には,それなりのくふうが必要となります.