PR

 論理合成ツール(logic synthesizer)は,ゲート・レベルの論理設計を自動的に行なうツール。すなわち,ハードウエア記述言語(HDL)で表現したRTL(register transfer level)記述,真理値表,状態遷移記述,(特定の半導体製造技術に依存しない)論理式などを入力すると,所望の半導体製造技術の下で最適なゲート・レベル論理回路(ネットリスト)を自動生成する。ここでRTL記述とは,所望の論理をレジスタ(フリップフロップ)およびレジスタ間の論理機能として表現した設計データを指す。

 通常,設計者は,満足させたい制約条件であるチップ面積や遅延時間,消費電力などを設定してから,論理合成ツールを稼動させる。論理合成ツールは,これらの制約条件を考慮しながら処理を進める。

 HDLを使ってRTL記述で入力データを用意する場合,そのHDLの仕様に含まれるコードの一部が使えないことがある。これらのHDLコードが含まれるていると,最適化がうまくできなかったり,ゲート・レベル論理回路が生成できないことがあるためだ。また,一般に市販されている論理合成ツールが自動生成できるのは,1相クロックのスタチックな同期回路に限られる。非同期回路やダイナミック回路は合成できない。

熟練設計者を上回るケースも

 現在の市販論理合成ツールは,数千ゲートの回路を数時間で合成できる。ゲート・レベルの論理回路設計(詳細論理設計)期間を大幅に短縮可能だ。このため,回路図エディタを使ってゲート・レベルの回路を設計するという従来の設計スタイルは次第に色あせてきた。代わって,HDLを使ってRTL記述を作成し,ゲート・レベル設計は論理合成ツールに任せるという設計スタイルへの移行が進んでいる。

 特に,最近は熟練設計者が自ら設計するよりも,論理合成ツールのほうが高性能な回路を合成するケースすら出てきた。論理合成ツールのチップ面積や遅延時間の最適化能力が向上したことや,設計対象回路が大規模化したことなどがその背景にある。設計期間の短縮だけではなく,高性能なLSIを設計するツールとしても認知されようとしている。

制御回路などランダムな回路は得意

 市販の論理合成ツールは,1980年代後半に登場した。当初は回路図エディタを使ったゲート・レベル論理設計に慣れた設計者に受け入れられなかった。1990年代に入ると,設計期間の短縮や設計者の不足などを背景に,広く普及してきた。RTL記述が比較的簡単で,かつ面積や遅延の制約がそれほど厳しくない回路から論理合成は適用され始めた。

 特に,ランダム論理で構成される制御回路やステート・マシン回路では,論理合成のメリットを享受しやすい。RTLの記述が比較的簡単であり,かつ合成された回路の品質も高いからだ。タイミングの制約が厳しい高性能LSIでも,ランダム論理回路には論理合成ツールを適用することが多くなってきた。一方,データパス回路やメモリ系の回路は,規則的な構造だったり,遅延時間をそろえるためにダイナミック回路にする必要があるなど,論理合成ツールはあまり得意としない。

3段階で処理は進む

 論理合成ツールに関する研究開発は現在も継続して行なわれているが,現在使われている製品の基本的仕組みは,米IBM Corp.のYorktown Silicon Compiler1)と米University of California, Berkeley校が開発したMIS2)と考えてよい。

 論理合成ツールの処理の流れを簡単に示したのが,上の図である。RTL記述などの入力を受け取ると,まずステート・マシンの状態コードの割り当てやフリップフロップの割り付け,組み合わせ論理の生成などを行なう。これで,ゲート・レベルの論理回路が生成されたことになる。

 ただし,この時点では特定の半導体製造技術には依存していない。たとえば,組み合わせ論理の部分は,ブール式(C=A+b,C=A*Bなど)で表現されている。入力のRTL記述に加算器などの演算器が明示的に記述されていれば,論理ゲートやフリップフロップだけでなく,演算器を割り付けることもできる製品が多い。

 次に,半導体製造プロセスに依存しない範囲で論理の最適化を実行する。ここでは,ユーザーが指定した制約条件を満たすように,論理ゲート数(チップ面積)と論理段数(遅延時間)などを調整する。たとえば,a+a*b=aのようなブール代数の性質を用いて冗長論理を削除したり,f=(a+b)*(c+d)のような論理をf=a*c+a*d+b*c+b*dのように展開したり,その逆の多段化を行なったりする。また,全体の論理機能を変えることなく,論理を再構成することもある。論理の再構成とは,機能は同じだが構成の異なる論理へ置き換えることをいう。

 最後に,特定の半導体製造技術へのマッピングを行なう。すなわち,論理(ゲート)やフリップフロップを,所望の半導体製造技術のライブラリに用意されたマクロセルに置き換える。例えば,−a*−bは,NOR機能のマクロセルにする。ファンイン数やファンアウト数に違反がある場合には,論理を多重化してそれを解消する。バッファを挿入して,ファンアウト数を減らすこともある。このマッピングの段階でも,チップ面積と速度,消費電力をある程度ならば調整できる。

 こうして最終的に,論理合成ツールは,特定の半導体製造プロセスで最適化したゲート・レベルの論理回路(ネットリスト)と,その回路の面積や遅延時間などの付加情報を出力する。


(99. 9. 6更新)

参考文献

1)Brayton,R.K.,"Algorithms for Multi-Level Logic Synthesis and Optimization," Design Systems for VLSI Circuits, edited by De Micheli,G.,Sangiovanni-Vincentelli,A.,and Antognetti,P., pp.197-248, Martinus Nijhoff Publishers, 1987.

2)Brayton,R.K. Rudell,R., Sangiovanni-Vincentelli,A.,and Wang,A.R.,"MIS: A Multiple-Level Logic Optimization System," IEEE Transaction on Computer-Aided Design of Integrated Circuits and Systems,vol. CAD-6, no.6, pp.1060-1081, Nov.1987.

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