論理合成とは? わかりやすく解説

論理合成

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2014/03/16 22:53 UTC 版)

論理合成(ろんりごうせい、: Logic synthesis)は、抽象的な回路の動作に関する記述(レジスタ転送レベルなど)から論理回路の実装設計を行う工程である。一般にVHDLVerilogなどのハードウェア記述言語が使われる。ツールによっては、PALFPGA といったプログラマブルロジックデバイス向けの bitstream を生成する。また、ASIC向けの生成を行うツールもある。論理合成はEDAの一部である。

歴史

論理合成の歴史を遡ると、ジョージ・ブール(1815年 - 1864年)にたどり着く。彼はブール代数などにその名を留めている。1938年、クロード・シャノンは、二値ブール代数でスイッチング回路の動作を記述できることを示した。1950年代にカルノー図が発明され、使われるようになった。カルノー図は、一種の真理値表で、図の中のエントリ群をまとめることで論理の最小化ができる。人間の設計者がカルノー図で設計できる論理回路は、せいぜい4から6変数までである。

論理最小化の自動化への第一段階は、コンピュータ上で実行できるクワイン・マクラスキー法の登場であった。これにより選言標準形連言標準形で2段の論理ゲートを最小化する手法が確立した。その他の初期の論理最小化の研究として、有限オートマトンの符号化と状態最小化があった。論理合成の主な応用としてデジタルコンピュータ設計がある。初期の論理合成自動化については、IBMベル研究所が重要な役目を果たした。その後、プログラマブルロジックデバイスの登場によって効率的な論理最小化の必要性が増した(論理最小化によって回路規模を低減させるため)。

しかし、VLSI設計においては、そのような論理最小化も手法の1つにすぎない。実際、レジスタ転送レベルでの回路表現は一般に2段以上の論理ゲートに対応する。初期の多段論理回路設計システムとして IBM の LSS がある。LSS は局所的変換を使って論理を単純化する。LSS と Yorktown Silicon Compiler により1980年代の論理合成の研究が進んだ。いくつかの大学が研究成果を公開した。カリフォルニア大学バークレー校の MIS、コロラド大学ボルダー校の BOLD などが有名である。その後、これらの技術が商用の論理合成ツールに導入され、市販されるようになった。

動作合成

論理合成ツールはRTL記述から、ゲート回路(ネットリスト)を合成するツールである。動作合成は、その一階層上流の工程を自動化するツールである。すなわち、C言語等でかかれたアルゴリズム記述(動作記述)から、RTL記述を合成するツールである。動作記述とは、通常のソフトウェアのプログラムのように、処理順序どおりに動作を記述したものである。一方、(合成対象となる)RTL記述は、ハードウェアの並列動作を記述したものであり、すべての文が一クロック内に全部実行されると考えてよい。つまり、RTLはブロック図にほぼ一対一に対応可能であるため、構造を表現しており、「構造記述」とも呼ばれる。

動作合成は、C記述などの動作記述から、データフローグラフを作成し、演算子(+、*)や、配列アクセス、入出力等をスケジューリングする。合成結果は、FSM(有限状態機械)とデータパスの組み合わせとなるツールが多い。 近年(2007年)では市販ツールもあり(米国CadenceのCtoSilicon Compiler, NECのCyberWorkBench, 米国MentorのCatapultC、米国Forte社のCynthesizer等)、携帯電話やプリンタ等身の回りの製品にも、動作合成が利用されている。

設計者の生産性向上を目的として、ハードウェア記述言語(HDL)を使った動作レベル記述による回路合成の研究が数多く行われた。動作合成(Behavioral Synthesis)とは、動作に関するHDL記述をレジスタ転送レベル(RTL)の記述に変換することであり、RTL は論理ゲートレベルの論理合成の入力となる。動作最適化は、必要となるハードウェア部品数や状態数などに基づくコスト関数により行われる。コスト関数は、その設計の実装に必要な回路量の大まかな予測を提供する。動作レベルの記述や動作合成とレジスタ転送レベルの記述による論理合成は、最近では明確に区別される傾向がある。

タスクのスケジューリング、リソース割り当て、共有などにより、RTL記述のデータパスと有限オートマトン(FSM)が生成される。スケジューリングは時系列での操作割り当てであり、リソース割り当ては操作や変数へのハードウェアリソースの割り当てである。スケジュールが与えられると、リソース割り当てにより必要なハードウェアの量が最適化される。

多段論理の最小化

論理関数の典型的な実用的実装では、論理要素の多段ネットワークが使われる。RTL記述を出発点として、論理合成ツールは設計に対応する多段ブーリアンネットワークを構築する。

そして、このネットワークをまず実装に依存しない技法で最適化する。実装に依存しない最適化での典型的なコスト関数は論理関数の総リテラル数である。

さらに、実装依存の最適化では、上記で得られた論理回路を指定された実装の論理ゲートのネットワークにしていく。コスト関数もより具体的なものとなっていく。例えば、利用可能な論理ゲート数の上限、各ゲートのサイズの下限、許容遅延範囲、消費電力などにより回路が最適化される。

商用ツール

参考文献

  • Electronic Design Automation For Integrated Circuits Handbook, by Lavagno, Martin, and Scheffer, ISBN 0-8493-3096-3 EDAに関する調査。本項目の本文は Sunil Khatri と Narendra Shenoy による Volume 2, Chapter 2, Logic Synthesis に基づいている。
  • A Consistent Approach in Logic Synthesis for FPGA Architectures, by Burgun Luc, Greiner Alain, and Prado Lopes Eudes, Proceedings of the international Conference on Asic (ASICON), Pekin, October 1994, pp.104-107.

論理合成

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/01/03 09:39 UTC 版)

マイクロプログラム方式」の記事における「論理合成」の解説

マイクロプログラム完成してテストされた後、これを論理回路生成プログラム入力データとして使用する場合もある。完璧に最適化された論理回路生成できるプログラム存在しないが、それなりにできのよい論理回路を使うことでコントロールストアのためのROMに使うトランジスタを減らすことができ、結果として全体トランジスタ数を減らすことができる。これによりCPUコスト消費電力を減らすことが出来る。

※この「論理合成」の解説は、「マイクロプログラム方式」の解説の一部です。
「論理合成」を含む「マイクロプログラム方式」の記事については、「マイクロプログラム方式」の概要を参照ください。

ウィキペディア小見出し辞書の「論理合成」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「論理合成」の関連用語

論理合成のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



論理合成のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの論理合成 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaのマイクロプログラム方式 (改訂履歴)、SystemVerilog (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS