Cベース設計とは? 導入の課題は? ――人手による介入が必須,完全自動合成は幻想
さて,b)の「RTLからの自動合成技術」については,例えばDesign Compiler(米国Synopsys社の論理合成ツール)を使えば,それで十分高品質な回路が合成されると考えている方も多いかもしれません.しかし,実際には必ずしもそうとは言えません.各クロックで実現すべき動作が完全に決まっているのがRTLですが,実は論理式のレベルに至るまでにはまだ設計段階がいくつかあります.つまり,同じRTLの抽象度でも,いくつかの種類が存在するのです.それを示したのが図6です.
「1. スケジュール決定済み」というのが,各クロックで実現すべき動作が完全に決まったRTLです.これから,論理式のレベルである「5.制御回路の抽出」までには四つの段階的処理があります.
まず,利用するメモリの構成やレジスタ数,割り付けを決めます(図6の「2.
メモリなどのストレージの確定」).次に,実現すべき機能としての演算(例えば,加算の「+」)に対して具体的な演算器を割り付けなければなりません(図6の「3.演算器の確定」).そして,複数の演算器の間の結線方法としてバスを使うかマルチプレクサを使うかを決定する必要があります(図6の「4.バス構成の決定」).最後に,演算器,バス,マルチプレクサから構成されるデータパス部と,それらを制御する信号を生成する制御部を分離して記述します(図6の「5.制御回路の抽出」).
これらをすべて行うと,データパス部からネットリストが,制御部から論理式(状態遷移表)が得られます.実は,通常の論理合成ツールが高品質に合成できるのは,現状では最後の論理式(あるいは,状態遷移表)だけなのです.現在の論理合成ツールは,それより前の段階からでも自動合成可能ですが,合成品質は入力の記述方法に大きく依存してしまいます.
以上のことから,合成については必ずしも自動合成ではなく,何らかの意味での人手の介入も含めた,対話的な合成手法が現実的であると言えます.
〔図6〕RTLと論理合成
レジスタ転送レベル(RTL)といっても,図に示すように,実は数段階存在する.単にどのクロックで何を演算するかだけが決まったレベルから,メモリなどのストレージの決定,利用する演算器の決定,バス構成の決定などを行わないと,論理合成に向く記述とはならない.