論理合成【logic synthesis】
概要

設計者はANDゲートやORゲートなど個々の論理素子(論理ゲート)の配置や配線を手作業で指示するのではなく、回路にどのような動作をさせたいかを「レジスタ転送レベル」(RTL)という抽象度で記述する。論理合成ツールはこの記述を読み込み、目的の動作を実現する論理回路を自動的に導き出す。
合成ツールは基本的な論理素子や機能ブロックを集めたセルライブラリを参照しながら、論理素子の接続情報である「ネットリスト」(netlist)を生成する。この過程では単純な変換だけでなく、不要な論理の削除や論理式の簡略化、共通部分の統合といった最適化が同時に行われ、生成されたネットリストはその後の配置配線(P&R:Place and Route)工程に引き渡される。
最適化の際、設計者はあらかじめ動作速度や消費電力、回路面積に関する制約条件を指定できる。合成ツールはこれらの条件を踏まえ、同じ論理演算を実現する複数の回路構成の中から、信号の遅延を一定以内に収めつつ面積や消費電力を抑える構成を自動的に探索して決定する。人手で個別に調整する場合に比べ、条件を満たす回路をはるかに短時間で導き出せる。
論理合成技術の起源は、クロード・シャノン(Claude E. Shannon)が1938年にブール代数を用いてスイッチング回路の動作を表現したことにさかのぼる。1950年代のカルノー図の考案や、その後のコンピュータによる論理式の簡単化アルゴリズムの発展を経て、半導体の集積度が飛躍的に高まった1980年代後半に実用的なEDAツールとして定着した。
一つのICチップに数百万から数十億個ものトランジスタを集積する現代の大規模集積回路では、論理素子を人手で設計することは現実的ではなく、論理合成による自動化が標準的な開発手法として定着している。CPUやGPUなど複雑な処理を行うロジックICの開発において欠かせない工程となっており、動的に回路構成を変更できるFPGA(Field Programmable Gate Array)に送り込む回路情報の作成にも用いられる。