改訂版EDA用語辞典とは・著者一覧

 論理合成は,ハードウェア記述言語(HDL)で表したRTL(register transfer level)記述から,所定のASIC(application specific integrated circuit)またはFPGA(field programmable gate array)のゲート・レベル・ネットリストを生成することを言う。HDLとしてはVerilog HDLやVHDL(Very High Speed Integrated Circuit Hardware Description Language)が使われることが多い。

 論理合成は,ロジック回路を対象としており,アナログ回路は扱わない。また,論理合成ツールが最適化しているのは基本的に組み合わせ回路のみで,順序回路の最適化は行わない。

 また市販の論理合成ツールは,入力順序を変更して,組み合わせ出力にハザードが発生しないようにする機能を持たないことが多い。このため論理合成ツールは,基本的に同期回路向けで,非同期回路生成に利用する場合には,注意が必要である。

1980年代にツールが登場

 市販の論理合成ツールは,1980年代後半に登場した。当初は,真理値表やツール・ベンダー独自の言語を使って入力していた。また,扱えるのは,組み合わせ回路のみだった。

 1989年に,フリップフロップを含むRTL記述からの論理合成が可能になった。RTL記述には,当時流行し始めたハードウェア記述言語の「Verilog HDL」が使われた。この頃から,論理合成ツールはASICの設計現場で使わるようになる。

 その後,VHDLを使ったRTL記述も論理合成ツールに入力できるようになった。1995年頃になるとASICのロジック設計の半分は,従来の「回路図入力」から「論理合成の利用を前提にしたRTL記述入力」のスタイルに移行した。

 この間、ロジック回路設計の規模も大きくなった。1990年当時は5000~2万ゲートぐらいが主流であったが、1995年頃になると100万ゲート以上のロジック回路設計が行なわれるようになった。設計規模の拡大は、RTL設計の普及と、それを可能にした論理合成の果たした役割が大きい。

 RTL記述を入力とする論理合成ツールは,当初,専らASIC設計向けだった。1993年にFPGA設計に使えるツールが登場した。そして2000年以降は,ASICやFPGAを含めてロジック回路設計の大半は,論理合成を利用するようになった。

論理合成に与える条件と制約

 論理合成を使う際には,設計対象のRTL記述以外に,使用条件と満足させたい制約をスプリプトとして記述する(図1)。使用条件には,使うASICまたはFPGAのライブラリと,チップの「動作環境」や「仮想配線遅延」がある。一方,制約には,「クロック周期」,「入力遅延値」,「出力遅延値」などがある。

【図1 論理合成の入力と出力】出典はエッチ・ディー・ラボ。
【図1 論理合成の入力と出力】出典はエッチ・ディー・ラボ。 (画像のクリックで拡大)

 これらのうち「動作環境」としては,合成対象回路の遅延にとって最も良い条件と,最も悪い条件を指定する。なお,回路の遅延時間は,温度や電圧に左右されるため,最も良い条件と悪い条件になる温度や電圧を,それぞれ設定することになる。

 また,「仮想配線遅延」は,レイアウト後の配線の遅延値を想定したものである。使用するASICの種類や,回路面積によって変わる。論理合成ツールは,レイアウト設計を行わないので,配線遅延はこの仮想配線遅延によって求める。

 しかし,こうして求めた配線遅延値は,実際にレイアウト設計した後の結果と大きくずれることがある。このため,最近は,論理合成する際に,レイアウト設計を仮にある程度進めて,配線遅延をより正確に求める方法が採りいれられている。

 なお,スクリプトの「クロック周期」は,クロックごとに1周期の時間を指定する。入力遅延値,出力遅延値は,論理合成対象回路の外側にある回路の遅延値を指定する。

論理合成は2段階の処理

 論理合成は,2段階の処理で進む。最初の段階では,RTL記述を解釈して,論理式に変換する。次の段階では,最適化を行う。具体的には,論理を圧縮するなどして,回路の動作速度を向上させたり,チップ面積を削減する。

 最初の段階である論理式への変換では,if文やcase文,論理式,算術演算を解析して,ルールとして定義されている回路変換を繰り返す。これで,ゲート・レベル回路を生成したり,簡単化する。この段階で「リソース・シェアリング」と呼ばれる算術演算器数の最小化処理も行われている。(図2)。

【図2 論理合成における変換処理の例】出典はエッチ・ディー・ラボ。
【図2 論理合成における変換処理の例】出典はエッチ・ディー・ラボ。 (画像のクリックで拡大)

 二つ目の段階の最適化は,論理式レベルとゲート・レベルに分かれる(図3)。論理式レベルでは,論理の共有化や多段化によって論理を圧縮する。論理式レベルの最適化が終了すると,論理式を特定のASICまたはFPGAのゲート(セル)にマッピングする。ゲート・レベルでは,各ゲートの遅延と配線の遅延を計算し,精度の高い最適化を実施する。

【図3 論理合成における最適化処理の例】出典はエッチ・ディー・ラボ。
【図3 論理合成における最適化処理の例】出典はエッチ・ディー・ラボ。 (画像のクリックで拡大)

消費電力削減の取り組み

 論理合成ツールによっては,遅延制約を満たす範囲で,消費電力が少ないゲート/セルを選択できる。先端プロセスのASICでは,消費電力は少ないが動作速度の遅いライブラリと,消費電力は多いが動作速度が速いライブラリの2種類が供給されている場合が多い。論理合成ツールが,対象回路に適したライブラリを選ぶ。

 また論理合成ツールによっては,消費電力削減のために「ゲーテド・クロック」を自動生成できる。

参考文献:
1)エッチ・ディー・ラボ「トレーニングテキスト:論理合成入門」,2008年.
2)長谷川裕恭.,「HDLの記述スタイル」,『Design Wave Magazine』,2001年2月-2002年11月.
3)半導体理工学研究センター,『RTL設計スタイルガイド』,2005年.
4)藤田昌宏,「「論理合成」は「魔法の道具」にあらず」,『Design Wave Magazine』,2001年1月-2002年2月.