JP3183415B2 - Logic synthesis method - Google Patents
Logic synthesis methodInfo
- Publication number
- JP3183415B2 JP3183415B2 JP07335592A JP7335592A JP3183415B2 JP 3183415 B2 JP3183415 B2 JP 3183415B2 JP 07335592 A JP07335592 A JP 07335592A JP 7335592 A JP7335592 A JP 7335592A JP 3183415 B2 JP3183415 B2 JP 3183415B2
- Authority
- JP
- Japan
- Prior art keywords
- logic
- cell
- logic cell
- gate
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Description
【0001】[0001]
【産業上の利用分野】本発明は、ゲートアレイやPLD
(programmable logic device )の設計時等に利用可能
な、論理回路の最適化を行う論理合成方法に係り、特
に、配線数や、遅延値や、ゲート数をより最小化するこ
とができる論理合成方法に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a gate array and a PLD.
The present invention relates to a logic synthesis method for optimizing a logic circuit which can be used when designing (programmable logic device), and in particular, a logic synthesis method capable of further minimizing the number of wires, delay values, and gates. About.
【0002】[0002]
【従来の技術】近年、ますます半導体集積回路の集積度
が高くなるに連れ、半導体集積回路の設計作業量も増加
し、要求されている仕様を実現するための半導体集積回
路の設計作業内容も複雑になっている。2. Description of the Related Art In recent years, as the degree of integration of semiconductor integrated circuits has become higher and higher, the amount of design work for semiconductor integrated circuits has also increased, and the contents of semiconductor integrated circuit design work for achieving required specifications have also increased. It's complicated.
【0003】半導体集積回路に組み込む論理回路の回路
設計方法としては、従来から様々な手法が提案されてい
る。例えば、予め決定されている機能や性能や論理等か
ら、細部の構成や論理回路を順次設計していくというト
ップダウン手法と言われるものがある。又、既に実績の
ある論理ブロックを組合せながら、次第に大規模な構成
へと設計していくというボトムアップ手法と呼ばれるも
のがある。Various methods have been conventionally proposed as a circuit design method of a logic circuit incorporated in a semiconductor integrated circuit. For example, there is a so-called top-down method of sequentially designing a detailed configuration and a logic circuit from predetermined functions, performances, and logics. In addition, there is a so-called bottom-up method of gradually designing a large-scale configuration while combining logical blocks that have already been used.
【0004】又、このような論理回路設計に際し、設計
される論理回路は、機能記述入力や、所定の回路図入力
により入力される。[0004] In designing such a logic circuit, a logic circuit to be designed is input by inputting a function description or a predetermined circuit diagram.
【0005】論理回路の設計中、あるいは設計完了後、
配線数や、遅延値や、ゲート数をより最小化するため
に、論理合成が行われている。During or after the design of a logic circuit,
Logic synthesis is performed to further minimize the number of wires, delay values, and gates.
【0006】論理合成方法の1つとして、例えば、クワ
インマクラスキー法と呼ばれる論理合成方法がある。該
クワインマクラスキー法は、論理簡単化や複合ゲート化
によりゲートの遅延を小さくしたり、共有項を括り出し
てゲート数を減らしたりして、主として1出力論理セル
での割付を順次行っていくことにより、配線数や遅延値
やゲート数の最小化を図るという方法である。As one of the logic synthesis methods, for example, there is a logic synthesis method called Quinema-Cluskey method. In the Quinma-Kraskey method, logic is simplified and complex gates are used to reduce gate delays, common terms are extracted to reduce the number of gates, and assignment is mainly performed in one output logic cell sequentially. This is a method of minimizing the number of wirings, the delay value, and the number of gates.
【0007】一方、半導体集積回路の設計作業の容易化
を図る技術としては、ゲートアレイやトランジスタアレ
イやPLD等を用いるという回路設計技術がある。On the other hand, as a technique for facilitating the work of designing a semiconductor integrated circuit, there is a circuit design technique using a gate array, a transistor array, a PLD, or the like.
【0008】ゲートアレイとは、論理回路の基本となる
ゲートを、半導体集積回路チップ内に列状に多数配置し
たものである。又、トランジスタアレイとは、ゲートを
構成するのに必要なトランジスタを、半導体集積回路チ
ップ上に列状に多数敷き詰めた構成となっている。又、
PLDは、内部にマトリックス上に配置されたヒューズ
やトランジスタスイッチにより、論理回路の機能をユー
ザが任意に定義できるようになったものである。[0008] The gate array is formed by arranging a large number of gates, which form the basis of a logic circuit, in a row in a semiconductor integrated circuit chip. Further, the transistor array has a configuration in which a large number of transistors necessary for forming a gate are laid out in a row on a semiconductor integrated circuit chip. or,
The PLD is such that a user can arbitrarily define the function of a logic circuit by using a fuse or a transistor switch arranged in a matrix inside.
【0009】[0009]
【発明が達成しようとする課題】しかしながら、前述の
クワインマクラスキー法では、とりわけ、遅延値の最小
化については、十分な解を得ることが保証されていない
という問題があった。このため、該クワインマクラスキ
ー法の利用に際しては、人手により何度も設計変更を行
わなければならず、多くの設計時間が必要となってしま
うという問題があった。However, the above-described Quinma-Cluskie method has a problem that it is not guaranteed to obtain a sufficient solution, especially for minimizing the delay value. For this reason, when the Quinma-Cluskie method is used, there is a problem in that the design must be changed many times manually, and much design time is required.
【0010】本発明は、前記従来の問題点を解決するべ
くなされたもので、配線数や遅延値やゲート数を最小化
すると共に、とりわけ、遅延値を最小化した論理回路を
合成することができる、論理合成方法を提供することを
目的とする。SUMMARY OF THE INVENTION The present invention has been made to solve the above-mentioned conventional problems, and it is an object of the present invention to minimize the number of wirings, delay values, and gates, and particularly to synthesize a logic circuit having a minimized delay value. It is an object of the present invention to provide a logic synthesis method that can perform the above.
【0011】[0011]
【課題を解決するための手段】本発明は、論理回路の最
適化を行う論理合成方法において、前記論理回路中の論
理ゲートを基本論理ゲートに展開し、前記展開された基
本論理ゲートを、多入力論理ゲートに複合ゲート化し、
この後、類似回路に着目してマージング処理を施し、更
に、多出力論理ゲートに複合ゲート化することにより、
前記課題を達成したものである。According to the present invention, in a logic synthesis method for optimizing a logic circuit, logic gates in the logic circuit are developed into basic logic gates, and the developed basic logic gates are multiplied. Complex gate into input logic gate,
After that, the merging process is performed focusing on the similar circuit, and further, by forming a composite gate into a multi-output logic gate,
The above object has been achieved.
【0012】[0012]
【作用】図1は、本発明の要旨を示すフローチャートで
ある。FIG. 1 is a flowchart showing the gist of the present invention.
【0013】前記図1に示されるように、本発明は、主
として、基本論理ゲートに展開するステップ108と、
多入力論理ゲートへの複合ゲート化を行うステップ11
8と、マージング処理を行うステップ124と、多出力
論理ゲートへの複合ゲート化を行うステップ128とを
順次行うというものである。As shown in FIG. 1 above, the present invention mainly comprises a step 108 for developing into basic logic gates;
Step 11 of making a composite gate into a multi-input logic gate
8, step 124 for performing merging processing, and step 128 for performing complex gate formation into multiple output logic gates.
【0014】又、本発明の論理合成方法を、例えばCA
D(computer aided design )システム等で自動化した
場合等には、ステップ104にてまず、機能記述入力や
所定の回路図入力により、論理合成対象となる論理回路
を入力する。Also, the logic synthesis method of the present invention
In the case of automation using a D (computer aided design) system or the like, a logic circuit to be subjected to logic synthesis is first input in step 104 by inputting a function description or a predetermined circuit diagram.
【0015】又、本発明において、前記ステップ108
の前後等で、インバータの複合ゲート化を行うステップ
114を装入してもよい。例えば、前記ステップ108
の基本論理ゲート中にインバータ機能をも有する基本論
理ゲートが含まれている場合には、該ステップ108の
前方に、インバータの複合ゲート化を行うステップ11
4を装入してもよい。又、前記ステップ118の多入力
論理ゲート中にインバータ機能を有するものが含まれて
いる場合には、インバータの複合ゲート化を行うステッ
プ114を、該ステップ118の前方に装入してもよ
い。In the present invention, the step 108
Before and after step 114, a step 114 of making the inverter a composite gate may be inserted. For example, step 108
If a basic logic gate having an inverter function is also included in the basic logic gates of the above, a step 11 is carried out before the step 108 in which the inverter is turned into a composite gate.
4 may be charged. If the multi-input logic gates of step 118 include those having an inverter function, step 114 of compounding the inverters may be inserted before step 118.
【0016】前記ステップ108は、論理合成を行うに
あたって、まず、論理合成対象の論理回路を比較的単機
能の基本論理ゲートに展開するというものである。例え
ば、2入力ANDゲートや、2入力ORゲートや、イン
バータゲートや、フリップフロップ等である。又、場合
によっては、2入力NANDゲートや、2入力NORゲ
ート等である。In the step 108, when performing the logic synthesis, first, the logic circuit to be subjected to the logic synthesis is developed into a relatively single-function basic logic gate. For example, a two-input AND gate, a two-input OR gate, an inverter gate, a flip-flop, or the like is used. In some cases, a two-input NAND gate or a two-input NOR gate is used.
【0017】前記ステップ118では、続くステップ1
24やステップ128で処理可能な多入力論理ゲート、
又、該ステップ128が終了して論理合成が全て完了し
た後に、PLD等に組み込み可能な多入力論理ゲートへ
と複合ゲート化する。例えば、3入力ANDゲートや、
4入力ANDゲート等の多入力論理ゲートへ複合ゲート
化する。In step 118, the following step 1
A multi-input logic gate that can be processed in step 24 or step 128,
Further, after the completion of the step 128 and the completion of the logic synthesis, a composite gate is formed into a multi-input logic gate which can be incorporated in a PLD or the like. For example, a three-input AND gate,
It is compounded into a multi-input logic gate such as a 4-input AND gate.
【0018】前記ステップ124では、例えば共通の入
力を持つ論理ゲート等に着目し、処理対象となる回路部
分を比較していき、類似回路を共通化する。これによ
り、配線数やゲート数を最小化できるだけでなく、配線
の分岐数を減少させることで、ファンアウト数を減らす
ことができ、遅延値の最小化をも図ることができる。In step 124, attention is paid to, for example, logic gates having a common input, and circuit portions to be processed are compared to make similar circuits common. As a result, not only the number of wires and the number of gates can be minimized, but also the number of branches of the wires can be reduced, so that the number of fan-outs can be reduced and the delay value can be minimized.
【0019】前記ステップ128では、利用可能な多出
力論理ゲートへの複合ゲート化を図る。例えば、デコー
ダ等多く利用され、且つ、1つの複合ゲートとして登録
等されている多出力論理ゲートへ複合ゲート化する。In the step 128, a composite gate is formed into a usable multiple output logic gate. For example, a composite gate is formed into a multi-output logic gate which is often used as a decoder and registered as one composite gate.
【0020】以上説明した通り、本発明によれば、利用
可能な多入力論理ゲートや多出力論理ゲートへ効果的に
複合ゲート化することができる。これにより、配線数や
遅延値やゲート数を最小化すると共に、とりわけ、遅延
値を最小化した論理回路を合成することができる。As described above, according to the present invention, a composite gate can be effectively formed into a usable multiple-input logic gate or multiple-output logic gate. This makes it possible to minimize the number of wirings, delay values, and gates, and in particular to synthesize a logic circuit in which the delay value is minimized.
【0021】なお、前述のステップ118での多入力論
理ゲートへの複合ゲート化、及び前述のステップ128
での多出力論理ゲートへの複合ゲート化は、利用可能な
多入力論理ゲートや多出力論理ゲートを限度として行う
ものである。従って、例えばPLD等については、セル
構造の制約を越えるゲートの複合化は行わないようにす
る。これは、前述のステップ124のマージング処理に
ついても同様である。It is to be noted that, in the above-mentioned step 118, the complex gate is formed into a multi-input logic gate, and in the above-mentioned step 128
The complex gate formation into the multi-output logic gates in the above is performed only on the available multi-input logic gates and multi-output logic gates. Therefore, for example, in the case of a PLD or the like, the combination of gates exceeding the restrictions of the cell structure is not performed. The same applies to the merging process in step 124 described above.
【0022】[0022]
【実施例】以下、図を用いて本発明の実施例を詳細に説
明する。DESCRIPTION OF THE PREFERRED EMBODIMENTS Embodiments of the present invention will be described below in detail with reference to the drawings.
【0023】図2は、本発明の実施例のフローチャート
である。FIG. 2 is a flowchart of the embodiment of the present invention.
【0024】この図2において、ステップ200では、
本実施例の論理合成の対象となる論理回路の機能記述入
力を行う。この機能記述入力には、例えば次のような入
力方法がある。In FIG. 2, in step 200,
A function description of a logic circuit to be subjected to logic synthesis according to the present embodiment is input. This function description input includes, for example, the following input method.
【0025】(1)状態遷移入力 (2)真理値表入力 (3)ブール代数式入力 (4)HDL(Hardware Description Language
)記述入力(1) State transition input (2) Truth table input (3) Boolean expression input (4) HDL (Hardware Description Language)
) Description input
【0026】又、このような機能記述入力から論理回路
を生成する場合、共通の表現形式に変換する必要があ
る。この変換方法には、例えば、次のようなものがあ
る。When a logic circuit is generated from such a function description input, it must be converted into a common expression format. This conversion method includes, for example, the following.
【0027】(1)EDIF(Electronics Data
Interchange Format )ファイル記述:主として、そ
の出力ファイルは、論理回路図入力に用いられている。(1) EDIF (Electronics Data)
Interchange Format) File description: The output file is mainly used for inputting a logic circuit diagram.
【0028】(2)真理値表記述(2) Truth table description
【0029】本実施例では、前記共通の表現形式への変
換方法として、上記真理値表記述が用いられている。In the present embodiment, the above-described truth table description is used as a conversion method to the common expression format.
【0030】真理値表に記述されると、ステップ202
として、この図2に示される論理合成終了後に論理回路
が組み込む、例えばゲートアレイ等で利用可能な基本論
理セルに変換する。When described in the truth table, step 202
After the completion of the logic synthesis shown in FIG. 2, the logic circuit is converted into a basic logic cell which can be used in a gate array or the like, for example.
【0031】一方、ステップ204では、所定の方法に
より、論理回路図の入力を行う。On the other hand, in step 204, a logic circuit diagram is input by a predetermined method.
【0032】ステップ210では、前記ステップ202
での変換結果と、前記ステップ204での入力結果とを
合成して、1つのネットリストを生成する。In step 210, step 202
Is combined with the input result in step 204 to generate one netlist.
【0033】続いて、ステップ214では、インバータ
と他の論理セルとを複合ゲート化することにより、配線
数やゲート数を最小化する。該複合ゲート化は、対象と
なるインバータの出力ネットが分岐しているか否かによ
り、次の通り異なる。Subsequently, in step 214, the number of wirings and the number of gates are minimized by forming the inverter and other logic cells into composite gates. The complex gate formation differs as follows depending on whether or not the output net of the target inverter is branched.
【0034】(1)インバータの出力ネットが分岐して
いない場合:インバータを、基本論理セルや入出力バッ
ファへ取り込む。(1) When the output net of the inverter is not branched: The inverter is taken into a basic logic cell or an input / output buffer.
【0035】(2)インバータの出力ネットが分岐して
いる場合:インバータの出力ネットの分岐を、該インバ
ータの入力に移動させる。即ち、インバータは分岐数と
同じ数となる。この後、それぞれのインバータを、基本
論理セルの入力や出力バッファの入力へと取り込む。(2) When the output net of the inverter is branched: The branch of the output net of the inverter is moved to the input of the inverter. That is, the number of inverters is the same as the number of branches. After that, each inverter is taken into the input of the basic logic cell and the input of the output buffer.
【0036】なお、このステップ214でのインバータ
の複合ゲート化は、論理セルライブラリの構成等によっ
て制限されるものである。例えば、論理セルライブラリ
において、多入力論理セルや多出力論理セルに入力反転
の組合せを持たない場合もあるが、このような場合に
は、このステップ214の処理は省略する。It should be noted that the combination of the inverters in the step 214 is limited by the configuration of the logic cell library and the like. For example, in the logic cell library, there may be a case where the multi-input logic cell or the multi-output logic cell does not have the combination of the input inversion. In such a case, the process of step 214 is omitted.
【0037】ステップ218では、複数の基本論理セル
を、1つの複合ゲートにまとめていく。このステップ2
18の複合ゲート化は、本実施例では次の通りである。In step 218, a plurality of basic logic cells are integrated into one composite gate. This step 2
The compound gate 18 is as follows in the present embodiment.
【0038】(1)出力側のネット(以降、探索開始ネ
ットと称する)から、入力側へと順次探索していく。(1) Search sequentially from the net on the output side (hereinafter referred to as the search start net) to the input side.
【0039】(2)探索されたゲートの入力ネットの総
数が、論理セルライブラリに登録されている論理セルの
入力数の制限以下の範囲で、探索された基本論理セルを
複合ゲート化する。なお、この入力のネットの総数と
は、異なるネット番号を持つネットの総数であり、複合
ゲート化される異なる基本論理セルに入力されるネット
であっても、ネット番号の重複するものは1個として計
算する。(2) The searched basic logic cells are converted into composite gates in a range where the total number of input nets of the searched gates is equal to or less than the limit of the number of inputs of the logic cells registered in the logic cell library. Note that the total number of nets in the input is the total number of nets having different net numbers. Even if the nets are input to different basic logic cells which are formed into composite gates, only one net number is duplicated. Is calculated as
【0040】(3)探索されたネットが分岐している場
合は、それ以上入力側へ探索しない。(3) If the searched net is branched, no further search is performed on the input side.
【0041】(4)ネットを順次入力側へ辿るときの探
索の深さ、即ち探索される論理セルの個数の深さに制限
を設ける。この探索の深さは、深くすることによって総
入力ネット数を減少することができる場合もあるが、一
般に、深くしすぎると論理合成作業が増大してしまう。
なお、本実施例では、この探索の深さを、入力のネット
まで探索される基本論理セルの個数の深さと定義してい
る。(4) The search depth when sequentially tracing the net to the input side, that is, the number of logic cells to be searched is limited. By increasing the depth of the search, the total number of input nets can be reduced in some cases. However, if the depth is too large, the logic synthesis operation generally increases.
In this embodiment, the depth of the search is defined as the depth of the number of basic logic cells searched up to the input net.
【0042】続いて、ステップ224では、用いる論理
セルライブラリの制限等に従って、更に複合ゲート化を
図る。例えば、論理セルライブラリの出力数を、例えば
登録されている多出力論理セルの種類に従って制限し、
複数の論理セルの複合ゲート化を図る。本実施例のこの
ステップ224のマージング処理は、次の通りである。Subsequently, in step 224, a composite gate is further formed in accordance with the limitation of the logic cell library to be used. For example, the number of outputs of a logic cell library is limited, for example, according to the type of registered multiple output logic cells,
A composite gate of a plurality of logic cells is provided. The merging process of step 224 in the present embodiment is as follows.
【0043】(1)共通の入力を持つ論理セルに注目す
る等して、類似部分を見出して、複数の多入力論理セル
を複合ゲート化する。(1) A similar part is found by paying attention to a logic cell having a common input, and a plurality of multi-input logic cells are formed into a composite gate.
【0044】(2)全ての複合ゲート及び全ての論理セ
ルの中から取り出した2つの全ての組合せについて、論
理セルライブラリに登録されている等、使用可能な多出
力論理セルであるか否かチェックし、利用可能なものを
割付候補として抽出する(2出力のマージング処理)。(2) It is checked whether all the combination gates and all two combinations taken out of all the logic cells are usable multiple output logic cells such as registered in a logic cell library. Then, available ones are extracted as allocation candidates (two-output merging process).
【0045】(3)前記(2)で抽出した2出力の論理
セルの割付候補の論理回路において、更に、全ての複合
ゲート及び全ての論理セルから取り出した2つの全ての
組合せについて、論理セルライブラリに登録されている
か否か等、利用可能な多出力論理セルであるか否かチェ
ックし、利用可能なものを割付候補として抽出する(3
出力のマージング処理)。(3) In the logic circuit which is a candidate for allocating a two-output logic cell extracted in the above (2), a logic cell library is further provided for all the combination gates and all the two combinations taken out from all the logic cells. Check whether or not the cell is a usable multiple output logic cell, such as whether or not it is registered, and extract a usable cell as an allocation candidate (3
Output merging).
【0046】(4)前記(3)で抽出した3出力の論理
セルの割付候補の論理回路において、更に、全ての複合
ゲート及び全ての論理セルの中から取り出す2つの全て
の組合せについて、用いる論理セルライブラリの中に登
録されているものであるか否かのチェック等、利用可能
な論理セルであるか否かをチェックし、利用可能なもの
を割付候補として抽出する(4出力のマージング処
理)。(4) In the logic circuit which is a candidate for assigning a three-output logic cell extracted in the above (3), furthermore, the logic used for all two combinations extracted from all the composite gates and all the logic cells is used. Check whether or not the cell is an available logic cell, such as checking whether or not the cell is registered in the cell library, and extract a usable cell as an allocation candidate (merging process of four outputs) .
【0047】(5)上記(2)から(4)を、用いるこ
とができる論理セルの出力数の制限内で繰返して行う。(5) The above (2) to (4) are repeatedly performed within the limit on the number of outputs of the logic cells that can be used.
【0048】(6)全ての複合ゲート及び全ての論理セ
ルを、1出力の割付候補として抽出する(1出力の候補
抽出)。この処理は、多出力論理セルに割り付けられな
かった回路を保存するために行う(例えば、FPGA
(field programmable gate array )用に行う)。(6) All composite gates and all logic cells are extracted as one-output allocation candidates (one-output candidate extraction). This process is performed in order to save a circuit that has not been allocated to the multiple output logic cell (for example, an FPGA).
(For field programmable gate array)).
【0049】このステップ224の後、一般的なゲート
アレイに用いる論理回路の場合には、次にステップ23
4へと進む。一方、FPGA等のPLDに用いる論理回
路の場合には、次にステップ238へと進む。After step 224, in the case of a logic circuit used for a general gate array, step 23 is then executed.
Proceed to 4. On the other hand, in the case of a logic circuit used for a PLD such as an FPGA, the process proceeds to step 238.
【0050】ステップ234では、まず、前記ステップ
224で得られた割付候補の中から、論理回路全体を構
成するのに必要な割付候補の集合を抽出する。この後、
それぞれの集合について、以下のパラメータを算出す
る。In step 234, first, a set of allocation candidates necessary for forming the entire logic circuit is extracted from the allocation candidates obtained in step 224. After this,
The following parameters are calculated for each set.
【0051】(1)総ネット数を算出(ネット数最小化
に関する)。(1) Calculate the total number of nets (related to minimizing the number of nets).
【0052】(2)総ゲート数を算出する(ゲート数最
小化に関する):FPGA等のPLDにおいては、総ゲ
ート数を算出する。又、一般的な論理回路等、ゲートレ
ベルの場合は、総トランジスタ数を算出し、トランジス
タ数最小化を図る。(2) Calculating the total number of gates (related to minimizing the number of gates): In a PLD such as an FPGA, the total number of gates is calculated. In the case of a gate level in a general logic circuit or the like, the total number of transistors is calculated to minimize the number of transistors.
【0053】(3)総ネット分岐数を算出(ネット分岐
数最小化)。(3) Calculate the total number of net branches (minimize the number of net branches).
【0054】(4)クリティカルパスの遅延値を算出
(クリティカルパスの遅延値最小化に関する):例え
ば、ゲート段数の最小化等。(4) Calculating the delay value of the critical path (related to minimizing the delay value of the critical path): For example, minimizing the number of gate stages.
【0055】この後、該ステップ234では、求められ
た前記4種類のパラメータそれぞれの値を前記割付候補
の集合相互について比較しながら、又、前記4種類のパ
ラメータ項目間の優先度をも配慮しながら、1つの割付
候補の集合を選択する。Thereafter, in step 234, the values of the four types of parameters obtained are compared with each other with respect to the set of allocation candidates, and the priority between the four types of parameter items is also considered. While selecting one set of allocation candidates.
【0056】一方、FPGA等のPLDについては、前
記ステップ224の後に行われるステップ238の処理
は、前記ステップ234の処理とほぼ同一である。しか
しながら、用いられる論理セルの条件は、PLDのセル
構造の制約によるものとなる。On the other hand, for a PLD such as an FPGA, the processing in step 238 performed after step 224 is almost the same as the processing in step 234. However, the condition of the logic cell used depends on the restrictions on the cell structure of the PLD.
【0057】図3は、本実施例の論理合成対象となる論
理回路例の論理回路図である。FIG. 3 is a logic circuit diagram of an example of a logic circuit to be subjected to logic synthesis in this embodiment.
【0058】以下、この図3に示される論理回路を例と
して、以下の条件に従って、本実施例の作用を説明す
る。Hereinafter, the operation of this embodiment will be described by taking the logic circuit shown in FIG. 3 as an example and under the following conditions.
【0059】(1)論理セルライブラリの入力数の制限
=4入力 (2)基本論理セルを複合ゲート化する際の探索の深さ
の制限=2 (3)論理セルライブラリの出力数の制限=4出力(1) Restriction on the number of inputs of the logic cell library = 4 inputs (2) Restriction on the depth of search when forming a basic logic cell into a composite gate = 2 (3) Restriction on the number of outputs of the logic cell library = 4 outputs
【0060】なお、図14を用いて後述する例について
は、この出力数の制限は2となっている。In the example described later with reference to FIG. 14, the limit on the number of outputs is two.
【0061】なお、この図3に示される論理回路は、A
ND論理セルである合計8個の論理セルU01〜U08
と、OR論理セルである合計4個の論理セルU09〜U
12と、インバータゲートである合計4個の論理セルU
13〜U16とで構成されている。又、この図3に示さ
れる論理回路の、合計4個の入力はそれぞれ端子A〜端
子Dであり、合計4個の出力はそれぞれ端子Z0〜端子
Z3である。符号N01〜N20は、それぞれ、各部分
のネットに付けられたネット番号である。The logic circuit shown in FIG.
A total of eight logic cells U01 to U08 which are ND logic cells
And a total of four logic cells U09 to U which are OR logic cells
12 and a total of four logic cells U as inverter gates
13 to U16. Further, a total of four inputs of the logic circuit shown in FIG. 3 are terminals A to D, respectively, and a total of four outputs are terminals Z0 to Z3, respectively. Symbols N01 to N20 are net numbers assigned to the nets of the respective parts.
【0062】まず、前記図3の論理回路が、前記図2の
フローチャートのステップ200、202、204、2
10にて入力され、且つ、前記ステップ214でインバ
ータの複合ゲート化が完了すると、図4に示されるよう
な論理回路となる。First, the logic circuit of FIG. 3 performs steps 200, 202, 204, and 2 of the flowchart of FIG.
When the input is made at 10 and the completion of the compounding of the inverters at step 214 is completed, a logic circuit as shown in FIG. 4 is obtained.
【0063】この図4においては、前記図3に比較し
て、合計4個の論理セルU13〜U16が削減されてい
る。又、合計4個のネットN05〜N08が消滅してい
る。In FIG. 4, a total of four logic cells U13 to U16 are reduced as compared with FIG. Further, a total of four nets N05 to N08 have disappeared.
【0064】なお、図5は、前記図2のステップ214
のインバータの複合ゲート化終了後における、総入力数
2の基本論理セルの一覧である。FIG. 5 is a flow chart showing the processing in step 214 in FIG.
7 is a list of basic logic cells having a total number of inputs of 2 after the completion of the composite gate formation of the inverter of FIG.
【0065】前記図4及び前記図5の段階においては、
総ゲート数は、12個となっている。又、総ネット数
は、12個となっている。In the steps of FIGS. 4 and 5,
The total number of gates is 12. The total number of nets is 12.
【0066】前記図2のステップ214の後、ステップ
218が行われると、図6に示されるように、複合ゲー
ト化される。When step 218 is performed after step 214 in FIG. 2, the composite gate is formed as shown in FIG.
【0067】図6は、多入力論理セルへの複合ゲート化
後の各論理セルを示す線図である。FIG. 6 is a diagram showing each logic cell after it has been converted into a composite gate into a multi-input logic cell.
【0068】この図6に示されるように、前記図4や前
記図5で示された論理セルU01と論理セルU09とは
複合され、論理セルU21となる。論理セルU02と論
理セルU09とは複合され、論理セルU22となる。論
理セルU03a と論理セルU10とは複合され、論理セ
ルU23となる。論理セルU04a と論理セルU10と
は複合され、論理セルU24となる。論理セルU05a
と論理セルU11とは複合され、論理セルU25とな
る。論理セルU06a と論理セルU11とは複合され、
論理セルU26となる。論理セルU07a と論理セルU
12とは複合され、論理セルU27となる。論理セルU
08a と論理セルU12とは複合され、論理セルU28
となる。As shown in FIG. 6, the logic cell U01 and the logic cell U09 shown in FIGS. 4 and 5 are combined to form a logic cell U21. Logic cell U02 and logic cell U09 are combined to form logic cell U22. The logic cell U03a and the logic cell U10 are combined to form a logic cell U23. Logic cell U04a and logic cell U10 are combined to form logic cell U24. Logic cell U05a
And the logic cell U11 are combined to form a logic cell U25. The logic cell U06a and the logic cell U11 are combined,
The logic cell becomes U26. Logic cell U07a and logic cell U
12 is compounded to form a logic cell U27. Logic cell U
08a and the logic cell U12 are combined, and the logic cell U28
Becomes
【0069】従って、前記図2のステップ218の終了
後には、この図6に示されるように、総ゲート数は、合
計8個に削減される。Therefore, after the end of step 218 in FIG. 2, the total number of gates is reduced to eight as shown in FIG.
【0070】前記図2のステップ218に続いて、前記
ステップ224の基本論理セル及び複合ゲートのマージ
ングは、図7〜図10に示されるように順次行われる。Following the step 218 in FIG. 2, merging of the basic logic cell and the composite gate in the step 224 is sequentially performed as shown in FIGS.
【0071】図7は、1出力の論理セルの段階の、マー
ジング処理の終了時の論理セルを示す線図である。FIG. 7 is a diagram showing a logic cell at the stage of one output logic cell at the end of the merging process.
【0072】この図7に示される段階では、類似回路に
着目したマージング処理が完了している。該段階におい
ては、前記図4や前記図5に示される論理セルU01、
論理セルU02及び論理セルU09が、論理セルU31
に複合されている。論理セルU03a 、論理セルU04
a 及び論理セルU10が、論理セルU32に複合されて
いる。論理セルU05a 、論理セルU06a 及び論理セ
ルU11が、論理セルU33に複合されている。論理セ
ルU07a 、論理セルU08a 及び論理セルU12が、
論理セルU34に複合されている。At the stage shown in FIG. 7, the merging process focusing on similar circuits has been completed. At this stage, the logic cells U01, shown in FIG. 4 and FIG.
Logic cell U02 and logic cell U09 are connected to logic cell U31.
Has been compounded. Logic cell U03a, logic cell U04
a and the logic cell U10 are combined with the logic cell U32. Logic cell U05a, logic cell U06a and logic cell U11 are combined into logic cell U33. Logic cell U07a, logic cell U08a and logic cell U12
It is combined with the logic cell U34.
【0073】この図7の段階においては、総ゲート数
は、合計4個に最小化されている。In the stage of FIG. 7, the total number of gates is minimized to a total of four gates.
【0074】図8は、2出力の論理セルの段階の、マー
ジング処理の終了時の論理セルを示す線図である。FIG. 8 is a diagram showing a logic cell at the stage of a two-output logic cell at the end of the merging process.
【0075】この図8に示される段階においては、前記
図7の論理セルU31と論理セルU32とが複合され、
論理セルU41となっている。この図8に示される段階
においては、図示されない前記論理セルU33及び前記
論理セルU34を含め、総ゲート数は3個となってい
る。At the stage shown in FIG. 8, the logic cell U31 and the logic cell U32 of FIG.
The logic cell is U41. At the stage shown in FIG. 8, the total number of gates is three, including the logic cell U33 and the logic cell U34 not shown.
【0076】図9は、3出力の論理セルの段階の、マー
ジング処理の終了時の論理セルを示す線図である。FIG. 9 is a diagram showing a logic cell at the stage of a three-output logic cell at the end of the merging process.
【0077】この図9の段階においては、前記図8の論
理セルU41と、前記図7の論理セルU33とが複合さ
れ、論理セルU42となっている。従って、この段階に
おいては、図示されない前記図7の前記論理セルU34
を含め、総ゲート数は2個となっている。In the stage of FIG. 9, the logic cell U41 of FIG. 8 and the logic cell U33 of FIG. 7 are combined to form a logic cell U42. Therefore, at this stage, the logic cell U34 in FIG.
, The total number of gates is two.
【0078】図10は、4出力の論理セルの段階の、マ
ージング処理の終了時の論理セルを示す線図である。FIG. 10 is a diagram showing the logic cells at the end of the merging process at the stage of the four-output logic cells.
【0079】この図10に示される段階においては、前
記図9の前記論理セルU42と、前記図7の前記論理セ
ルU34とが複合され、論理セルU43となっている。
この段階においては、総ゲート数は1個となっている。At the stage shown in FIG. 10, the logic cell U42 of FIG. 9 and the logic cell U34 of FIG. 7 are combined to form a logic cell U43.
At this stage, the total number of gates is one.
【0080】なお、前記図7〜図10及び前記図2のス
テップ224に関するマージング処理によれば、通常
は、複数の割付候補を生成しながら、論理回路全体を構
成するのに必要な割付候補の複数の集合が抽出される。According to the merging process relating to steps 224 in FIGS. 7 to 10 and FIG. 2, usually, a plurality of allocation candidates are generated while the allocation candidates necessary to constitute the entire logic circuit are generated. Multiple sets are extracted.
【0081】前記図2のステップ234あるいはステッ
プ238では、このような複数の集合の中から、選択基
準となるそれぞれの集合の前述のようなパラメータを算
出したり、これら集合間で算出されたこれらパラメータ
を相互に比較して、1つの論理回路を選択する。In step 234 or step 238 in FIG. 2, the above-mentioned parameters of each set serving as a selection criterion are calculated from the plurality of sets, and the parameters calculated between these sets are calculated. The parameters are compared with each other to select one logic circuit.
【0082】図11は、ゲートアレイ用に選択された論
理回路の論理回路図である。FIG. 11 is a logic circuit diagram of a logic circuit selected for a gate array.
【0083】この図11においては、4入力4出力以下
で、反転入力も含めて全ての論理に対応できる多入力多
出力論理セル群を有している論理セルライブラリを備え
ているという条件に従って選択されている。この図11
に示される論理セルU44は、前記図10の前記論理セ
ルU43に対応するものとなっている。In FIG. 11, selection is made in accordance with the condition that a logic cell library having a group of logic circuits of multiple inputs and multiple outputs with four inputs and four outputs or less and capable of handling all logics including inverted inputs is provided. Have been. This FIG.
The logic cell U44 shown in FIG. 10 corresponds to the logic cell U43 in FIG.
【0084】この図11に示されるように論理合成が終
了すると、総ゲート数は1個まで減少することができ、
総ネット数は8個となる。When logic synthesis is completed as shown in FIG. 11, the total number of gates can be reduced to one.
The total number of nets is eight.
【0085】一方、次に列挙する制限条件のFPGAに
おいては、前記ステップ224の終了後には、図12及
び図13に示される論理セルが生成される。On the other hand, in the FPGA having the following restriction conditions, the logic cells shown in FIGS. 12 and 13 are generated after the end of the step 224.
【0086】(1)論理セルライブラリの入力数の制限
=4 (2)基本論理セルの探索の深さ=2 (3)論理セルライブラリの出力数の制限=2(1) Limit of the number of inputs of the logic cell library = 4 (2) Depth of search for the basic logic cell = 2 (3) Limit of the number of outputs of the logic cell library = 2
【0087】前記図12や前記図13に示されるような
割付候補の複数の集合が抽出されると、前記図2のステ
ップ238では、図14に示されるような論理回路を選
択する。When a plurality of sets of allocation candidates as shown in FIGS. 12 and 13 are extracted, in step 238 in FIG. 2, a logic circuit as shown in FIG. 14 is selected.
【0088】この図14において、論理セルU45は前
記図12に示されるものであり、論理セルU46は前記
図13に示されるものである。これら論理セルU45及
び論理セルU46は、いずれも、FPGAにより構成さ
れている。In FIG. 14, the logic cell U45 is as shown in FIG. 12, and the logic cell U46 is as shown in FIG. Each of the logic cell U45 and the logic cell U46 is configured by an FPGA.
【0089】以上説明した通り、図14に示されるよう
に論理合成されると、総ゲート数は2個まで減少するこ
とができ、総ネット数は8個となる。As described above, when logic synthesis is performed as shown in FIG. 14, the total number of gates can be reduced to two, and the total number of nets becomes eight.
【0090】[0090]
【発明の効果】以上説明した通り、本発明によれば、配
線数や、遅延値や、ゲート数を最小化すると共に、とり
わけ、遅延値を最小化した論理回路を合成することがで
きるという優れた効果を得ることができる。As described above, according to the present invention, it is possible to minimize the number of wirings, delay values, and gates, and especially to synthesize a logic circuit with a minimized delay value. The effect can be obtained.
【図1】図1は、本発明の要旨を示すフローチャートで
ある。FIG. 1 is a flowchart showing the gist of the present invention.
【図2】図2は、本発明の実施例のフローチャートであ
る。FIG. 2 is a flowchart of an embodiment of the present invention.
【図3】図3は、本実施例の論理合成対象となる論理回
路例の論理回路図である。FIG. 3 is a logic circuit diagram of an example of a logic circuit to be subjected to logic synthesis according to the embodiment;
【図4】図4は、インバータの複合ゲート化終了後の論
理回路の論理回路図である。FIG. 4 is a logic circuit diagram of a logic circuit after completion of the complex gate conversion of the inverter.
【図5】図5は、インバータの複合ゲート化後の、総入
力数2の基本論理セル一覧の線図である。FIG. 5 is a diagram of a list of basic logic cells having a total number of inputs of 2 after the inverter is formed into a composite gate.
【図6】図6は、多入力論理セルへの複合ゲート化後の
論理セルを示す線図である。FIG. 6 is a diagram showing a logic cell after complex gate formation into a multi-input logic cell;
【図7】図7は、1出力の論理セルの段階の、マージン
グ処理の終了時の論理セルを示す線図である。FIG. 7 is a diagram showing a logic cell at the stage of one output logic cell at the end of the merging process.
【図8】図8は、2出力の論理セルの段階の、マージン
グ処理の終了時の論理セルを示す線図である。FIG. 8 is a diagram showing a logic cell at the stage of a two-output logic cell at the end of the merging process.
【図9】図9は、3出力の論理セルの段階の、マージン
グ処理の終了時の論理セルを示す線図である。FIG. 9 is a diagram showing a logic cell at the stage of a three-output logic cell at the end of the merging process.
【図10】図10は、4出力の論理セルの段階の、マー
ジング処理の終了時の論理セルを示す線図である。FIG. 10 is a diagram showing a logic cell at the stage of a four-output logic cell at the end of the merging process.
【図11】図11は、ゲートアレイ用に選択された論理
回路の論理回路図である。FIG. 11 is a logic circuit diagram of a logic circuit selected for a gate array.
【図12】図12は、FPGA用にマージングされた第
1の論理セルの論理回路図である。FIG. 12 is a logic circuit diagram of a first logic cell merged for an FPGA.
【図13】図13は、FPGA用にマージングされた第
2の論理セルの論理回路図である。FIG. 13 is a logic circuit diagram of a second logic cell merged for an FPGA.
【図14】図14は、FPGA用に選択された論理回路
の論理回路図である。FIG. 14 is a logic circuit diagram of a logic circuit selected for an FPGA.
U01〜U16、U03a 〜U12a 、U09b 〜U1
2b…基本論理セル、 U21〜U28、U31〜U34…多入力論理セル、 U41〜U46…多出力論理セル、 A〜D…入力、 Z0〜Z3…出力、 N01〜N20…ネット(配線)。U01 to U16, U03a to U12a, U09b to U1
2b: basic logic cells, U21 to U28, U31 to U34: multiple input logic cells, U41 to U46: multiple output logic cells, A to D: input, Z0 to Z3 ... output, N01 to N20: net (wiring).
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 17/50 H01L 27/118 H01L 21/82 ──────────────────────────────────────────────────続 き Continued on the front page (58) Field surveyed (Int.Cl. 7 , DB name) G06F 17/50 H01L 27/118 H01L 21/82
Claims (1)
いて、 前記論理回路中の論理ゲートを基本論理ゲートに展開
し、 前記展開された基本論理ゲートを、多入力論理ゲートに
複合ゲート化し、 この後、類似回路に着目してマージング処理を施し、 更に、多出力論理ゲートに複合ゲート化することを特徴
とする論理合成方法。1. A logic synthesis method for optimizing a logic circuit, comprising: expanding a logic gate in the logic circuit into a basic logic gate; converting the expanded basic logic gate into a multi-input logic gate; Thereafter, a merging process is performed by paying attention to similar circuits, and furthermore, a composite gate is formed into a multi-output logic gate.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP07335592A JP3183415B2 (en) | 1992-02-25 | 1992-02-25 | Logic synthesis method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP07335592A JP3183415B2 (en) | 1992-02-25 | 1992-02-25 | Logic synthesis method |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH05233755A JPH05233755A (en) | 1993-09-10 |
JP3183415B2 true JP3183415B2 (en) | 2001-07-09 |
Family
ID=13515780
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP07335592A Expired - Fee Related JP3183415B2 (en) | 1992-02-25 | 1992-02-25 | Logic synthesis method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3183415B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1073951A1 (en) * | 1999-02-15 | 2001-02-07 | Koninklijke Philips Electronics N.V. | Data processor with a configurable functional unit and method using such a data processor |
US6482884B1 (en) | 2000-02-28 | 2002-11-19 | Pirelli Pneumatici S.P.A. | Silica reinforced rubber compositions of improved processability and storage stability |
JP5050905B2 (en) * | 2008-02-19 | 2012-10-17 | 富士通セミコンダクター株式会社 | Semiconductor circuit design program and semiconductor circuit design apparatus |
-
1992
- 1992-02-25 JP JP07335592A patent/JP3183415B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH05233755A (en) | 1993-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5719783A (en) | Method and apparatus for performing timing analysis on a circuit design | |
US5761078A (en) | Field programmable gate arrays using semi-hard multicell macros | |
US5956257A (en) | Automated optimization of hierarchical netlists | |
WO1994028475A1 (en) | Field programmable logic device with dynamic interconnections to a dynamic logic core | |
US6601228B1 (en) | Method for modifying an integrated circuit | |
US20030233625A1 (en) | Method for allocating spare cells in auto-place-route blocks | |
Chang et al. | Postlayout logic restructuring using alternative wires | |
US5574655A (en) | Method of allocating logic using general function components | |
JP2001357090A (en) | Logic synthesis method and logic synthesis device | |
US5563800A (en) | Automated logic circuit design system | |
JPH06274568A (en) | How to expand hierarchical figure data | |
JP3183415B2 (en) | Logic synthesis method | |
Nowick et al. | Synthesis of asynchronous circuits for stuck-at and robust path delay fault testability | |
JP3260622B2 (en) | Method for manufacturing semiconductor device | |
US7117467B2 (en) | Methods for optimizing package and silicon co-design of integrated circuit | |
Kravets et al. | M32: A constructive multilevel logic synthesis system | |
Fujita et al. | Delay estimation and optimization of logic circuits: a survey | |
Um et al. | Layout-aware synthesis of arithmetic circuits | |
JP2872216B1 (en) | Macro design method | |
JP3130810B2 (en) | Automatic placement and routing method | |
US6957406B1 (en) | Analytical placement methods with minimum preplaced components | |
US5745373A (en) | Logic circuit generating method and apparatus | |
JP2002342400A (en) | Automatic design method for lsi | |
Aggarwal et al. | Speeding up technology-independent timing optimization by network partitioning | |
JP3087690B2 (en) | Logic synthesis method of semiconductor integrated circuit and logic synthesis chip |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |