In computer engineering, logic synthesis is a process by which an abstract specification of desired circuit behavior, typically at register transfer level (RTL), is turned into a design implementation in terms of logic gates, typically by a computer program called a synthesis tool. Common examples of this process include synthesis of designs specified in hardware description languages, including VHDL and Verilog.[1] Some synthesis tools generate bitstreams for programmable logic devices such as PALs or FPGAs, while others target the creation of ASICs. Logic synthesis is one step in circuit design in the electronic design automation, the others are place and route and verification and validation.
The roots of logic synthesis can be traced to the treatment of logic by George Boole (1815 to 1864), in what is now termed Boolean algebra. In 1938, Claude Shannon showed that the two-valued Boolean algebra can describe the operation of switching circuits. In the early days, logic design involved manipulating the truth table representations as Karnaugh maps. The Karnaugh map-based minimization of logic is guided by a set of rules on how entries in the maps can be combined. A human designer can typically only work with Karnaugh maps containing up to four to six variables.
The first step toward automation of logic minimization was the introduction of the Quine–McCluskey algorithm that could be implemented on a computer. This exact minimization technique presented the notion of prime implicants and minimum cost covers that would become the cornerstone of two-level minimization. Nowadays, the much more efficient Espresso heuristic logic minimizer has become the standard tool for this operation.初期の研究分野の一つに、有限状態機械(FSM)の状態最小化と符号化がありました。これは設計者にとって悩みの種でした。論理合成の応用分野は主にデジタルコンピュータの設計でした。そのため、IBMとベル研究所は論理合成の初期の自動化において重要な役割を果たしました。離散論理部品からプログラマブル論理アレイ(PLA)への進化は、効率的な2レベル最小化の必要性を加速させました。なぜなら、2レベル表現の項を最小化することでPLAの面積が縮小するからです。
2 レベル論理回路は、超大規模集積回路(VLSI) 設計において重要性が限られており、ほとんどの設計では複数のレベルの論理回路が使用されています。RTL またはビヘイビア記述による回路表現は、ほぼすべてマルチレベル表現です。マルチレベル回路の設計に使用された初期のシステムとして、IBM の LSS があります。LSS は、ローカル変換を使用して論理を簡略化しました。LSS と Yorktown Silicon Compiler の研究は、1980 年代の論理合成における急速な研究進歩を促しました。いくつかの大学が研究成果を一般に公開することで貢献し、特にカリフォルニア大学バークレー校の SIS、カリフォルニア大学ロサンゼルス校の RASP 、コロラド大学ボルダー校の BOLD が挙げられます。10 年以内に、この技術は電子設計自動化企業が提供する商用論理合成製品へと移行しました。
論理合成ソフトウェアパッケージの主要開発・提供企業は、Synopsys、Cadence、Siemensである。これらの企業の合成ツールは、Synopsys Design Compiler、Cadence First Encounter、Siemens Precision RTLである。
論理設計は、電子回路の機能設計を論理演算、算術演算、制御フローなどを捉えた表現に変換する、標準的な設計サイクルのステップです。このステップの一般的な出力はRTL記述です。論理設計の後には通常、回路設計ステップが続きます。現代の電子設計自動化では、回路の動作記述に基づく高レベル合成ツールを使用して、論理設計の一部を自動化することができます。 [ 2 ]

論理演算は通常、ブール論理のAND、OR、XOR、NAND演算から構成され、電子回路における最も基本的な演算形式です。算術演算は通常、論理演算子を用いて実装されます。
設計者の生産性向上を目指し、動作レベルで指定された回路の合成に関する研究が進められ、2004年に商用ソリューションが登場しました。[ 3 ]これらのソリューションは、複雑なASICやFPGAの設計に使用されています。これらのツールは、ANSI C/C++やSystemCなどの高レベル言語で指定された回路を、ゲートレベル論理合成フローへの入力として使用できるレジスタ転送レベル(RTL)仕様に自動的に合成します。[ 3 ] ESL合成とも呼ばれる高レベル合成では、クロックサイクルや浮動小数点ALUなどの構造コンポーネントへの作業の割り当ては、最適化手順を使用してコンパイラによって行われますが、RTL論理合成(動作VerilogやVHDLからでも、実行スレッドがクロックサイクル内で変数に対して複数の読み取りと書き込みを行うことができる)では、これらの割り当て決定は既に行われています。
論理関数の典型的な実装では、論理素子の多層ネットワークが利用されます。合成ツールは、設計のRTL記述から出発して、対応する多層ブールネットワークを構築します。
次に、技術に依存しない複数の手法を用いてこのネットワークを最適化してから、技術に依存する最適化を実行します。技術に依存しない最適化における典型的なコスト関数は、論理関数の因数分解表現の総リテラル数です(これは回路面積と非常によく相関します)。
最後に、技術依存最適化によって、技術非依存回路が特定の技術におけるゲートネットワークに変換されます。単純なコスト見積もりは、技術マッピング中およびマッピング後に、より具体的で実装主導型の見積もりに置き換えられます。マッピングは、技術ライブラリで使用可能なゲート(論理関数)、各ゲートの駆動サイズ、各ゲートの遅延、消費電力、面積特性などの要因によって制約されます。