behavioral synthesizer

 動作合成ツールは,ハードウエアの動作を表現する動作記述から,論理合成ツールに入力するRTL(register transfer level)記述を生成するEDAツールである注1)。人手設計に比べて約1/10の期間で設計することを狙っている。動作記述は普通,ハードウエア記述言語(HDL)で表現する。

 一般に動作記述には,ハードウエアで実現したい動作が,ソフトウエアのプログラムのように逐次的に記述してあるだけで,演算器の数やレジスタの数といったアーキテクチャの詳細は記述していない。動作合成ツールは,このような動作記述から,ハードウエアの動作順序およびデータパスの構成を自動生成・最適化し,制御回路とデータパス回路のRTL記述を出力する。

 動作合成処理に当たって,ユーザーは演算器の数や,動作のステップ数(クロック・サイクル数)などを制約条件として設定することができる。動作合成ツールは,その制約条件を満たすように最適なRTL記述を合成する。例えば,演算器を増やせば,少ないクロック・サイクル数で処理が終了する。すなわち,チップ面積が増えるが,性能が上がることになる。設計者は動作合成結果を見て,制約条件や動作記述を変更し,最適なRTL記述を短時間で得ることができる。

アーキテクチャの検討が容易に

 動作合成ツールは実用化が始まったばかりで,メリットが広く知られているとは言えないが,使いこなせば論理合成ツールを上回る設計生産性の向上が期待できる。以下,動作合成ツールのメリットを享受しやすい局面をいくつか紹介する。

■動作合成ツールでは,制約条件を変えるだけで,レジスタ数や演算器数などが異なるさまざまなアーキテクチャの回路を短時間で生成できる。外部端子から見た動作が保証されていれば,内部回路のアーキテクチャが問われない場合には,ユーザーはより良いアーキテクチャを短時間に探すことが可能になる。

■動作合成ツールでは,制御回路のRTL記述が自動的に生成される。動作の順序が非常に複雑な場合には,その制御回路のRTL記述(ステート・マシン記述)を人手で作成するとミスが混入しやすかったが,動作合成ツールを導入すればその心配がなくなる。

■動作記述はソフトウエア・プログラムとほぼ等価な情報のため,たとえば,組み込み型マイクロコントローラ向けのプログラムをASICに置き換えるような場合には,比較的簡単にASICの設計データが得られる。

■動作合成ツールと論理合成ツールを組み合わせることで,動作記述が完了すると,数時間で数万ゲート規模のFPGAの設計データが得られる。すなわち,ソフトウエア・プログラムに近い動作記述から,ハードウエアのプロトタイプが半日程度でできあがる。液晶ディスプレイやハード・ディスク装置のコントローラなど,実動作を確認したい場合にはメリットが大きい。

実設計への適用始まる

 研究レベルの動作合成ツールは1980年代から学会などで数多く紹介されていたが,適用できるアプリケーションが限られていた。最近になって論理合成ツールが普及したことに伴い,そのフロント・エンド・ツールとして動作合成ツールは設計現場にも認知されてきた。研究用の動作合成ツールでは多くの実用チップを設計した例が発表されており1),注2),数年以内に市販ツールの合成能力が実設計に耐えるようになると考えられる。

 論理合成ツールには「生成できる回路は基本的に,1相クロックのスタチックな同期回路のみ」という制限があるが,これが動作合成ツールの実用化にも寄与している。この制限を念頭に置いて,最適化を進めればよいからだ。

 しかし,現在の市販の動作合成ツールは,合成できる回路の規模や種類ともに十分とは言えない。広く使われるには完成度がやや不足している。また,論理合成ツールを使いこなしている設計者は全体からみれば少数派であり,そのフロント・エンドに当たる動作合成ツールのユーザーが増えるには,なお時間がかかるとみられる。先端的なユーザーが努力しながら使用しているというのが現状である。

演算器数や実行ステップ数を決める

 動作合成ツールは,入力の動作記述を受け取ると,その記述の制御とデータの流れを示す「コントロール・データ・フロー・グラフ(CDFG:control data flow graph)」に変換するのが一般的である。例えば,図(a)のような

 xaba

という動作は図(b)に示すようなCDFGになる。CDFGを基に,所望の動作を実行する演算器数とステップ数を決める処理が「スケジューリング」である。例えば,加算器が1つでは実行に2ステップかかる(図(c))。一方,加算器が2つあれば1ステップで実行できる(図(d))。

 さらに「アロケーション(データパス割り当て)」と呼ばれる処理を実行する。ここでは,変数や演算にレジスタや演算器に割り当てる。例えば図(c)で,レジスタtxは同時に使われないので1つのレジスタで共用し,さらにxの加算器への入力先の左右を入れ替えると,同じ動作をレジスタ数,マルチプレクサ数の少ない回路で実行できる(図(e))。

 スケジューリングとデータパス割り当てが終了すると,回路のシーケンスを決めてデータパスの制御信号を出力するステート・マシンを生成し,データパスの記述とともに論理合成可能なRTL記述に変換する。

 図の例題は非常に単純明解だが, 実際のCDFGは分岐やループなどを含んだ複雑なものとなる。また動作合成の制約条件として,演算器数やレジスタ数,入出力端子数,さらにアクセス時間などが設定されるのが普通である。このため,どんな回路でも設計できるという訳ではなく,現在もさまざまな手法の検討がされている。


(99. 9. 6更新)

参考文献

1)若林,古林,斎藤,加納,篠原,田中,中越,北村,「伝送用LSIを動作合成で開発,機能設計の期間が1/10に短縮」,『日経エレクトロニクス』,1996年2月12日号,no.655,pp.147-169.

注1) 論理合成ツールは,その名の通り,論理設計(ゲート・レベル論理設計)を自動化する。一方,動作合成ツールが自動化する設計工程(動作記述→RTL記述)は,一般に機能設計と呼ばれる。この意味では,機能合成ツールと呼ぶ方が正しいが,市販製品の例にならって,ここでが動作合成ツールと呼ぶ。

注2) 例えば,NECの動作合成ツール「Cyber」は伝送装置制御チップの設計に適用した1)。また,米University of California, Irvine校の「SpecSyn」はファジー制御チップに,ベルギーIMECの「Cathedral」はDSPに,米University of California, Riverside校の「MEBS」はATM制御チップの設計にそれぞれ利用された実績がある。

このEDA用語辞典は,日経エレクトロニクス,1996年10月14日号,no.673に掲載した「EDAツール辞典(NEC著)」を改訂・増補したものです。