JP2001067382A - Logic circuit synthesizing method and storage medium storing program of the synthesizing method - Google Patents

Logic circuit synthesizing method and storage medium storing program of the synthesizing method

Info

Publication number
JP2001067382A
JP2001067382A JP23720399A JP23720399A JP2001067382A JP 2001067382 A JP2001067382 A JP 2001067382A JP 23720399 A JP23720399 A JP 23720399A JP 23720399 A JP23720399 A JP 23720399A JP 2001067382 A JP2001067382 A JP 2001067382A
Authority
JP
Japan
Prior art keywords
circuit
bdd
node
replacement target
intermediate variable
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.)
Pending
Application number
JP23720399A
Other languages
Japanese (ja)
Inventor
Hiroshi Honjo
浩 本庄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to JP23720399A priority Critical patent/JP2001067382A/en
Publication of JP2001067382A publication Critical patent/JP2001067382A/en
Pending legal-status Critical Current

Links

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

PROBLEM TO BE SOLVED: To design a logic circuit small in the scale and less in the power consumption by using the least number of transistors and a given logical expression. SOLUTION: A logical expression is shown in a BDD (S1). A part to which the multi-stage logical optimization is applied is extracted from the BDD expression and replaced with an intermediate variable to generate a new BDD (S2). In the same way, the part to be replaced with the intermediate variable is searched and the part to which the multi-stage logical optimization is applied is replaced with an intermediate variable to obtain the final BDD (S3). Then the BDD is converted into an MUX cell to generate a circuit (S4). The intermediate variable serving as the input of the circuit consisting of the MUX cell that is generated from the BDD is replaced with a circuit which is optimized by the multi-stage logical optimization (S5).

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、半導体集積回路な
どの回路設計における設計自動化技術、および回路最適
化技術に用いる論理回路合成方法およびそのプログラム
を記憶する記憶媒体に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a method for synthesizing a logic circuit used for a design automation technique in circuit design of a semiconductor integrated circuit or the like, a circuit optimization technique, and a storage medium for storing a program thereof.

【0002】[0002]

【従来の技術】LSIなどの大規模集積回路の設計で
は、設計対象の回路をハードウェア記述言語により記述
し、論理合成装置を利用して論理回路を合成するトップ
ダウン設計技術の利用が普及している。論理合成の方法
には複数の方法が存在するが、最も一般的な手法とし
て、代数的な多段論理合成手法(従来手法1)がある。
この手法は、論理式から共通項を括り出し、多段化する
ことにより、回路の最適化を図るものであるが、例えば
特開平5−242193号公報に開示されている。
2. Description of the Related Art In the design of large-scale integrated circuits such as LSIs, the use of a top-down design technique for describing a circuit to be designed in a hardware description language and synthesizing a logic circuit using a logic synthesis device has become widespread. ing. There are a plurality of logic synthesis methods, and the most general method is an algebraic multi-stage logic synthesis method (conventional method 1).
This method aims at optimizing a circuit by extracting common terms from a logical expression and increasing the number of stages, which is disclosed in, for example, JP-A-5-242193.

【0003】また設計対象回路の回路方式がパストラン
ジスタ回路などの場合には、論理合成にBDD(Binary
Decision Diagram、二分決定グラフ)を利用する方式
(従来手法2)が知られている。BDDは、基本的に0
−枝と1−枝と呼ばれる2本の枝を持つノードの二分木
により論理関数を表現する方法である。情報処理学会発
行、情報処理、Vol.34,No.5, MAY 1993, pp.593-599に
詳しい説明がある。BDDにはいろいろな種類が存在す
るが、BDD全体を通して根ノードから末端に至るまで
に現れる入力変数の順序関係を固定する場合が多い。以
降本発明でのBDDは、入力変数の順序関係を固定する
種類のBDDを前提とする。BDDを利用した論理合成
方式は、例えば、特開平9−97281では、BDDか
ら回路を合成する方式が報告されている。
When the circuit system of the circuit to be designed is a pass transistor circuit or the like, a BDD (Binary
A method (conventional method 2) using a Decision Diagram (Binary Decision Diagram) is known. BDD is basically 0
This is a method of expressing a logical function by a binary tree of nodes having two branches called -branch and 1-branch. The detailed description is given in Information Processing Society of Japan, Information Processing, Vol. 34, No. 5, MAY 1993, pp. 593-599. There are various types of BDDs, and in many cases, the order relation of input variables that appear from the root node to the end throughout the BDD is fixed. Hereinafter, the BDD in the present invention is based on a type of BDD that fixes the order relation of input variables. As a logic synthesis method using BDD, for example, Japanese Patent Application Laid-Open No. 9-97281 reports a method of synthesizing a circuit from BDD.

【0004】[0004]

【発明が解決しようとする課題】従来手法1で、以下の
論理式を回路合成する。 s0=!c0*!c1*!c2*!(a00+a01)+(c0+c1+c2 )*!(b00+b01) … (1) s1=!c0*!c1*!c2*!(a10+a11)+(c0+c1+c2 )*!(b10+b11) … (2)
According to the conventional method 1, the following logical expressions are synthesized. s0 =! c0 *! c1 *! c2 *! (A00 + a01) + (c0 + c1 + c2) *! (B00 + b01) (1) s1 =! c0 *! c1 *! c2 *! (A10 + a11) + (c0 + c1 + c2) *! (B10 + b11) (2)

【0005】以下に示す中間変数tを導入し、上記論理
式(1)及び(2)の回路の簡単化を図る。 t=!(c0+c1+c2) s0=t*!(a00+a01)+!t*!(b00+
b01) s1=t*!(a10+a11)+!t*!(b10+
b11) その結果、図7のような回路が生成される。図7におけ
る各ゲート内の数字はトランジスタペア数であり、その
合計は、29トランジスタペア数である。
The following intermediate variable t is introduced to simplify the circuits of the above logical expressions (1) and (2). t =! (C0 + c1 + c2) s0 = t *! (A00 + a01) +! t *! (B00 +
b01) s1 = t *! (A10 + a11) +! t *! (B10 +
b11) As a result, a circuit as shown in FIG. 7 is generated. The number in each gate in FIG. 7 is the number of transistor pairs, and the total is 29 transistor pairs.

【0006】また従来手法2で上記論理式(1),
(2)の回路を合成する。BDDのノードは、図8のよ
うにパストランジスタを用いた回路に置き換えることが
でき、ノード1個あたり、2トランジスタペア数が必要
となる。そして、論理式(1)、(2)をBDD表現す
ると、図9のようになる。ノード数は14個(a00〜c
2までの14個)であるが、そのうち3個(図9のノー
ドa01,b01,b11)は、図10のBDDのノー
ドbのようにトランジスタ回路に置き換えても入力にな
るだけでゲート数に換算する必要はない。すなわち、ノ
ードa01,b01,b11をパストランジスタで置き
換えた場合、図8における枝aは常に1に、枝bは0に
固定され、他の入力に影響されないため、ゲート数に換
算する必要はない。図10に、ノードaの0枝を固定し
た場合を示す。従って、 (14−3)*2=22 でゲート数は、22トランジスタペア数となる。
In the conventional method 2, the above-mentioned logical expression (1),
The circuit of (2) is synthesized. The BDD node can be replaced with a circuit using a pass transistor as shown in FIG. 8, and two transistors are required for each node. FIG. 9 shows the logical expressions (1) and (2) expressed in BDD. The number of nodes is 14 (a 00 to c
2 to 14), and three of them (nodes a01, b01, and b11 in FIG. 9) become input only when replaced by a transistor circuit like node b of BDD in FIG. No conversion is required. That is, when the nodes a01, b01, and b11 are replaced by pass transistors, the branch a in FIG. 8 is always fixed to 1 and the branch b is fixed to 0, and is not affected by other inputs. . FIG. 10 shows a case where the zero branch of the node a is fixed. Therefore, (14-3) * 2 = 22, and the number of gates is 22 transistor pairs.

【0007】さて、従来手法1、2を用いないで、論理
式(1),(2)を合成すると、図11のように15ト
ランジスタペアの回路で実現することができる。しか
し、上述したように、図11の回路を従来手法1、2で
は生成することができない。これは従来手法1、従来手
法2がそれぞれ得意とする回路構成と不得意な回路構成
をもっているからである。例えば論理式(1),(2)
はセレクタ論理(複数入力から1入力を選択する回路構
造)を含んでいるのに、従来手法1が生成した回路では
MUXセルを用いない。一方BDDによる回路合成は、
BDD自身がセレクタ論理で表現されているため、論理
式に含まれているセレクタ論理を容易に検出することが
できる。しかしながらセレクタ論理以外の部分もセレク
タ論理で実現するために結果的に面積が増大する欠点が
ある。
By combining the logical expressions (1) and (2) without using the conventional methods 1 and 2, it is possible to realize a circuit of 15 transistor pairs as shown in FIG. However, as described above, the circuit of FIG. 11 cannot be generated by the conventional methods 1 and 2. This is because Conventional Method 1 and Conventional Method 2 each have a circuit configuration that they are good at and a circuit configuration that they are not good at. For example, logical expressions (1) and (2)
Includes a selector logic (a circuit structure for selecting one input from a plurality of inputs), but does not use a MUX cell in the circuit generated by the conventional method 1. On the other hand, circuit synthesis by BDD
Since the BDD itself is expressed by the selector logic, the selector logic included in the logical expression can be easily detected. However, since parts other than the selector logic are realized by the selector logic, there is a disadvantage that the area is eventually increased.

【0008】本発明の目的は、与えられた論理式から、
最小のトランジスタ数で回路を実現することにより、回
路規模が小さく、低消費電力の回路を設計する論理式合
成方法及びそのプログラムを記憶した記録媒体を提供す
ることにある。
[0008] The object of the present invention is to provide, from a given logical expression,
An object of the present invention is to provide a logical formula synthesis method for designing a circuit with a small circuit size and low power consumption by realizing a circuit with the minimum number of transistors, and a recording medium storing the program.

【0009】[0009]

【課題を解決するための手段】本発明は、論理式やハー
ドウェア記述言語などで表現された設計対象回路より、
ゲート回路あるいはトランジスタ回路を生成する論理回
路合成方法において、論理式をBDDでグラフ表現する
第1ステップと、グラフ表現されたBDDより、多段論
理最適化を適用する部分を抽出し、その部分を中間変数
に置換して、BDDを新たに構成する第2ステップと、
前記多段論理最適化を適用する部分を中間変数に置換
し、多段論理最適化を適用し、回路を生成する第3ステ
ップと、第2ステップで新たに構成したBDDをMUX
セルに変換して回路を生成する第4ステップと、第4ス
テップで得られた回路の入力となっている、第2ステッ
プで抽出した部分の中間変数を、第3ステップで選られ
た回路で置換する第5ステップとを有することを特徴と
する。
According to the present invention, a circuit to be designed expressed by a logical expression, a hardware description language, or the like is used.
In a logic circuit synthesis method for generating a gate circuit or a transistor circuit, a first step of graphically expressing a logical expression in BDD, and extracting a portion to which multi-stage logic optimization is applied from the graphed BDD, and intermediate the portion A second step of newly constructing the BDD by substituting variables,
A third step of replacing the part to which the multi-stage logic optimization is applied with an intermediate variable, applying the multi-stage logic optimization and generating a circuit, and MUX the BDD newly constructed in the second step.
A fourth step of converting the cell into a cell to generate a circuit, and converting the intermediate variables of the portion extracted in the second step, which are input to the circuit obtained in the fourth step, by the circuit selected in the third step And a fifth step of replacement.

【0010】また、本発明は、論理式やハードウェア記
述言語などで表現された設計対象回路より、ゲート回路
あるいはトランジスタ回路を生成する論理回路合成のプ
ログラムを記憶した記憶媒体において、論理式をBDD
でグラフ表現する第1ステップと、グラフ表現されたB
DDより、多段論理最適化を適用する部分を抽出し、そ
の部分を中間変数に置換して、BDDを新たに構成する
第2ステップと、前記多段論理最適化を適用する部分を
中間変数に置換し、多段論理最適化を適用し、回路を生
成する第3ステップと、第2ステップで新たに構成した
BDDをMUXセルに変換して回路を生成する第4ステ
ップと、第4ステップで得られた回路の入力となってい
る、第2ステップで抽出した部分の中間変数を、第3ス
テップで選られた回路で置換する第5ステップとを有す
ることを特徴とする。
The present invention also provides a method for converting a logical expression into a BDD in a storage medium storing a logical circuit synthesis program for generating a gate circuit or a transistor circuit from a design target circuit expressed by a logical expression or a hardware description language.
The first step in which the graph is expressed by
A second step of extracting a portion to which the multi-stage logic optimization is applied from the DD and replacing the portion with an intermediate variable to newly construct a BDD; and replacing the portion to which the multi-stage logic optimization is applied with an intermediate variable Then, a third step of applying a multi-stage logic optimization to generate a circuit, a fourth step of converting a BDD newly formed in the second step into a MUX cell to generate a circuit, and a fourth step of And a fifth step of replacing an intermediate variable of a portion extracted in the second step, which is an input of the circuit, with a circuit selected in the third step.

【0011】上記第2ステップは、さらにいくつかのス
テップを備えるが、その前にいくつかの用語について説
明する。 ・変数順序 … BDDの最上位のノードから、定数ノ
ードに至るノードの変数の順序。定数ノードに近いほう
が順序が低い。 ・下位方向ノード … 注目ノードに隣接して、かつ注
目ノードよりも変数順序が低いノード。つまり注目ノー
ドの0−枝、1−枝に接続しているノード。 ・置換対象ノード集合 … 中間変数に置換される可能
性のあるノードの集合。 ・置換対象ノード全候補集合 … 置換ノード集合に属
するノードの下位方向ノードの集合。 ・置換対象ノード候補集合 … 置換対象ノード全候補
集合から定数ノード、中間変数ノードを除いた集合。 ・対象上位ノード … 置換対象ノード候補集合の要素
のうち、変数順序が高いノード。 ・未探索上位ノード … 中間変数ノードを除くBDD
の全ノードで置換対象ノード全候補集合に一度もなって
いないノード中でもっとも変数順序が高いノード。 ・中間変数ノード … 中間変数で置換されたノード。
[0011] The second step includes some further steps, but before that, some terms will be explained. Variable order: The order of the variable of the node from the top node of the BDD to the constant node. The order is lower near the constant node. -Lower-order node: A node adjacent to the target node and having a lower variable order than the target node. That is, the nodes connected to the 0-branch and the 1-branch of the target node. -Replacement target node set: A set of nodes that may be replaced by intermediate variables. -Replacement target node all candidate set: A set of lower-order nodes of the nodes belonging to the replacement node set. -Replacement target node candidate set: A set obtained by removing constant nodes and intermediate variable nodes from all replacement target node candidate sets. -Target upper node: A node having a higher variable order among the elements of the replacement target node candidate set. -Unsearched upper node: BDD excluding intermediate variable node
Is the node with the highest variable order among the nodes that have never been in the replacement candidate node all candidate set. -Intermediate variable node ... A node replaced by an intermediate variable.

【0012】前記第2ステップは、ノードNを未探索上
位ノードとするステップと、置換対象ノード集合を空集
合するステップと、置換対象ノード集合にノードNを加
えるステップと、対象上位ノードがあるかどうかを判定
するステップと、対象上位ノードを置換対象ノード集合
に加えることを試み、加えた後の置換対象ノード集合の
置換対象ノード全候補集合の要素数が2以下であるかを
判定するステップと、置換対象ノード集合の要素数が2
以上であるかを判定するステップと、置換対象ノード集
合を中間変数に置換して、新たなはBDDを生成するス
テップと、未探索上位ノードがないことを判定するステ
ップとを有するのが望ましい。
The second step is a step of setting a node N as an unsearched upper node, a step of empty-setting a set of replacement target nodes, a step of adding a node N to the set of replacement target nodes, Determining whether or not the target upper node is to be added to the replacement target node set, and determining whether the number of elements of the replacement target node all candidate set of the replacement target node set after addition is 2 or less. , The number of elements in the replacement target node set is 2
It is desirable to have a step of determining whether the above is the case, a step of replacing the replacement target node set with an intermediate variable to generate a new BDD, and a step of determining that there is no unsearched upper node.

【0013】以上の構成により、本発明は、与えられた
論理式をBDDで表現し、そのBDD構造から、多段論
理最適化を適用する部分を抽出し、またそれ以外の部分
は、そのBDD構造をそのままMUXセルに置換するこ
とにより、実現すべき回路のトランジスタ数を削減する
ことができる。
With the above arrangement, the present invention expresses a given logical expression in BDD, extracts a part to which multi-stage logic optimization is applied from the BDD structure, and extracts the other part from the BDD structure. Can be directly replaced with MUX cells, thereby reducing the number of transistors of a circuit to be realized.

【0014】[0014]

【発明の実施の形態】以下、本発明の実施の形態につい
て図面を参照しながら説明する。
Embodiments of the present invention will be described below with reference to the drawings.

【0015】図1は、本発明に係る論理回路合成方法に
おける処理の流れを示すフローチャートである。これは
上記論理式(1)及び(2)の回路合成を実現する処理
である。まず、論理式(1)及び(2)をBDDで表現
する(ステップS1)。このBDDで表現されると図9
のようになる。
FIG. 1 is a flowchart showing the flow of processing in the logic circuit synthesis method according to the present invention. This is a process for realizing the circuit synthesis of the logical expressions (1) and (2). First, the logical expressions (1) and (2) are expressed by BDD (step S1). When represented by this BDD, FIG.
become that way.

【0016】次に図9のBDD表現から、多段論理最適
化を適用する部分を抽出し、その部分を中間変数に置換
して、BDDを新たに生成する(ステップS2)。図2
は、ステップS2の処理の流れを示すフローチャートで
ある。ステップS2の処理について詳細に説明する。
(以下、論理式(2)について説明するが、論理式
(1)についても同様である。)
Next, a portion to which the multi-stage logic optimization is applied is extracted from the BDD expression of FIG. 9 and the portion is replaced with an intermediate variable to newly generate a BDD (step S2). FIG.
Is a flowchart showing the flow of the process in step S2. The processing in step S2 will be described in detail.
(Hereinafter, the logical expression (2) will be described, but the same applies to the logical expression (1).)

【0017】ステップS21により、ノードNを未探索
上位ノードc0とする。ステップS22により、置換対
象ノード集合を空集合とする。置換対象ノード集合の要
素をノードNに加えて{c0}とする。
In step S21, the node N is set as an unsearched upper node c0. By step S22, the replacement target node set is set to an empty set. The element of the replacement target node set is added to the node N to be {c0}.

【0018】ステップS24では、対象上位ノードがあ
るかを確認し、対象上位ノードc1が存在するので、ス
テップS25を実行する。ステップS25では、対象上
位ノードはc1で、c1を置換対象ノード集合(G)に
加えることを試み、加えた後の置換対象ノード全候補集
合の要素数が2以下であるかを確認する。加えた後の置
換対象ノード集合{c0,c1}の置換対象ノード全候
補集合の個数は、{c2,b10}の2個であるので、
置換対象ノード集合を{c0,c1}として、ステップ
S24を実行する。
In step S24, it is confirmed whether or not there is a target higher-order node. Since there is a target higher-order node c1, step S25 is executed. In step S25, the target higher-level node is c1, and attempts to add c1 to the replacement target node set (G), and confirms whether the number of elements of the replacement target node all candidate set after addition is 2 or less. Since the total number of replacement target node candidate sets of the replacement target node set {c0, c1} after addition is two, {c2, b10},
Step S24 is executed with the replacement target node set as {c0, c1}.

【0019】ステップS24では、対象上位ノードc2
が存在するので、ステップS25を実行する。ステップ
S25では、対象上位ノードはc2で、c2を置換対象
ノード集合(G)に加えることを試みる。加えた後の置
換対象ノード集合{c0,c1,c2}の置換対象ノー
ド候補集合の個数は、{a10,b10}の2個である
ので、次にステップS24を実行する。
In step S24, the target upper node c2
Exists, so step S25 is executed. In step S25, the target upper node is c2, and attempts to add c2 to the replacement target node set (G). Since the number of replacement target node candidate sets in the replacement target node set {c0, c1, c2} after addition is two {a10, b10}, step S24 is executed next.

【0020】図3のだ円の点線部11,12は置換対象
ノード集合にならない。そのため、結局、だ円の実線部
13の置換ノード集合{c0,c1,c2}を中間変数
に置き換える必要があり、図4のように新たな中間変数
tを導入する。すなわち、図4(a)のだ円の実線部1
3の置換ノード集合{c0,c1,c2}に中間変数t
0(図4(b))を導入する。このt0の論理式を、 t0=c0*c1*c2 とすると、中間変数tを用いた図4(c)のようなBD
Dが新たに生成される。
The dotted lines 11 and 12 of the ellipse in FIG. 3 do not form a set of nodes to be replaced. Therefore, it is necessary to replace the replacement node set {c0, c1, c2} of the solid line portion 13 of the ellipse with an intermediate variable, and introduce a new intermediate variable t as shown in FIG. That is, the solid line part 1 of the ellipse in FIG.
3 is set to the intermediate variable t in {c0, c1, c2}.
0 (FIG. 4 (b)). Assuming that the logical expression of this t0 is t0 = c0 * c1 * c2, the BD using the intermediate variable t as shown in FIG.
D is newly generated.

【0021】同様に中間変数に置き換えられる部分を探
索して、図5の実線部で囲った部分14,15,16,
17,18が多段論理最適化を適用する部分で中間変数
t1,t2,t3,t4,t5で置き換えられ、最終的
に図6のようなBDDになる(ステップS2)。図6の
BDDのうち、ノードt0,t4がMUXセルに割り付
けられ、回路が生成される。また、ノードt1,t2,
t3,t5は図10のノードbと同様にトランジスタを
必要としない、つまりMUXセルにはならない(ステッ
プS4)。BDDから生成されたMUXセルで構成され
る回路の入力となっている中間変数を多段論理最適化に
より最適化された回路で置換する(ステップS3)。従
って、最終的には、図11のような回路となる(ステッ
プS5)。
Similarly, a portion to be replaced with an intermediate variable is searched, and portions 14, 15, 16, and 15 enclosed by solid lines in FIG.
17 and 18 are parts to which the multi-stage logic optimization is applied, and are replaced by intermediate variables t1, t2, t3, t4 and t5, and finally the BDD as shown in FIG. 6 (step S2). In the BDD of FIG. 6, nodes t0 and t4 are allocated to MUX cells, and a circuit is generated. Also, nodes t1, t2,
t3 and t5 do not require a transistor as in the case of the node b in FIG. 10, that is, they do not become MUX cells (step S4). The intermediate variable input to the circuit composed of the MUX cells generated from the BDD is replaced by a circuit optimized by multi-stage logic optimization (step S3). Therefore, the circuit finally becomes as shown in FIG. 11 (step S5).

【0022】単にBDDを用いた場合、論理式(1),
(2)で示される回路を合成すると22トランジスタペ
ア数になるが、本発明を用いることで、最小の15トラ
ンジスタペア数に削減できる。こうして、従来方法より
も20%〜30%少ないトランジスタ数で回路を実現で
きる。
When BDD is simply used, the logical expression (1)
When the circuit shown in (2) is combined, the number of pairs becomes 22. However, by using the present invention, the number of pairs can be reduced to a minimum of 15 pairs. In this way, a circuit can be realized with 20% to 30% fewer transistors than the conventional method.

【0023】[0023]

【発明の効果】本発明によれば、与えられた論理式をB
DDで表現し、そのBDD構造から、多段論理最適化を
適用する部分を抽出し、またそれ以外の部分は、そのB
DD構造をそのままMUXセルに置換することにより、
実現すべき回路のトランジスタ数を削減することができ
る。トランジスタ数が削減できるので、チップ面積が削
減でき、チップ全体のゲート容量が削減できるので、消
費電力削減が可能となる。
According to the present invention, a given logical expression is represented by B
Expressed in DD, the part to which the multi-stage logic optimization is applied is extracted from the BDD structure, and the other part is
By directly replacing the DD structure with a MUX cell,
The number of transistors of a circuit to be realized can be reduced. Since the number of transistors can be reduced, the chip area can be reduced, and the gate capacity of the entire chip can be reduced, so that power consumption can be reduced.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明に係る論理回路合成方法における処理の
流れを示すフローチャートである。
FIG. 1 is a flowchart showing a processing flow in a logic circuit synthesis method according to the present invention.

【図2】ステップS2の処理の流れを示すフローチャー
トである。
FIG. 2 is a flowchart showing the flow of the process of step S2.

【図3】BDDのノードのうち多段論理最適化を適用す
る部分を抽出するのを説明した図である。
FIG. 3 is a diagram for explaining extraction of a portion to which multi-stage logic optimization is applied from nodes of the BDD;

【図4】BDDのノードのうち多段論理最適化を適用す
る部分を抽出し、中間変数を導入して、新たなBDDを
生成するのを説明した図である。
FIG. 4 is a diagram for explaining generation of a new BDD by extracting a portion to which multi-stage logic optimization is applied from nodes of the BDD and introducing intermediate variables;

【図5】与えられた論理式をBDD表現して、そのうち
多段論理最適化を適用する部分を示した図である。
FIG. 5 is a diagram showing a portion in which a given logical expression is expressed in a BDD, and of which a multi-stage logical optimization is applied;

【図6】図10のBDDのノードのうち多段論理最適化
を適用する部分を抽出し、その部分を中間変数のノード
に置換することにより最終的に得られたBDDを示す図
である。
6 is a diagram showing a BDD finally obtained by extracting a part to which multi-stage logic optimization is applied from the nodes of the BDD of FIG. 10 and replacing the part with an intermediate variable node;

【図7】従来方法1で生成された論理回路図である。FIG. 7 is a logic circuit diagram generated by a conventional method 1.

【図8】BDDのノードがパストランジスタを用いたM
UXセルへ置換されるのを説明した図である。
FIG. 8 shows a case where the node of BDD is M using a pass transistor.
It is a figure explaining being replaced with a UX cell.

【図9】与えられた論理式から生成されたBDDを示す
図である。
FIG. 9 is a diagram showing a BDD generated from a given logical expression.

【図10】BDDのノードのうち0枝が定数ノード0、
1枝が定数ノード1に接続されるノードがパス入力にな
るのを説明した図である。
FIG. 10 is a diagram illustrating a case where the 0 branch of a BDD node is a constant node 0;
FIG. 9 is a diagram illustrating that a node whose one branch is connected to a constant node 1 becomes a path input;

【図11】与えられた論理式から生成されるトランジス
タ数が最適な回路図である。
FIG. 11 is a circuit diagram in which the number of transistors generated from a given logical expression is optimal.

【符号の説明】[Explanation of symbols]

S1〜S5 論理合成の処理におけるステップ S21〜S28 ステップS2の処理におけるステップ 11,12 置換対象ではないノード集合 13〜18 置換対象ノード集合 S1 to S5 Steps in the process of logic synthesis S21 to S28 Steps 11 and 12 in the process of step S2 Node set not to be replaced 13 to 18 Node set to be replaced

Claims (4)

【特許請求の範囲】[Claims] 【請求項1】 論理式やハードウェア記述言語などで表
現された設計対象回路より、ゲート回路あるいはトラン
ジスタ回路を生成する論理回路合成方法において、 論理式をBDDでグラフ表現する第1ステップと、 グラフ表現されたBDDより、多段論理最適化を適用す
る部分を抽出し、その部分を中間変数に置換して、BD
Dを新たに構成する第2ステップと、 前記多段論理最適化を適用する部分を中間変数に置換
し、多段論理最適化を適用し、回路を生成する第3ステ
ップと、 第2ステップで新たに構成したBDDをMUXセルに変
換して回路を生成する第4ステップと、 第4ステップで得られた回路の入力となっている、第2
ステップで抽出した部分の中間変数を、第3ステップで
選られた回路で置換する第5ステップと、 を有することを特徴とする論理回路合成方法。
1. A logic circuit synthesis method for generating a gate circuit or a transistor circuit from a circuit to be designed expressed by a logical expression, a hardware description language, or the like, a first step of graphically expressing the logical expression in BDD; From the expressed BDD, a part to which multi-stage logic optimization is applied is extracted, and the part is replaced with an intermediate variable,
A second step of newly constructing D; a third step of replacing the portion to which the multi-stage logic optimization is applied with an intermediate variable, applying a multi-stage logic optimization to generate a circuit; A fourth step of converting the configured BDD into a MUX cell to generate a circuit, and a second step of inputting the circuit obtained in the fourth step.
A fifth step of replacing the intermediate variable of the portion extracted in the step with the circuit selected in the third step.
【請求項2】 前記第2ステップは、 ノードNを未探索上位ノードとするステップと、 置換対象ノード集合を空集合するステップと、 置換対象ノード集合にノードNを加えるステップと、 対象上位ノードがあるかどうかを判定するステップと、 対象上位ノードを置換対象ノード集合に加えることを試
み、加えた後の置換対象ノード集合の置換対象ノード全
候補集合の要素数が2以下であるかを判定するステップ
と、 置換対象ノード集合の要素数が2以上であるかを判定す
るステップと、 置換対象ノード集合を中間変数に置換して、新たなはB
DDを生成するステップと、 未探索上位ノードがないことを判定するステップと、 を有することを特徴とする論理回路合成方法。
2. The method according to claim 1, wherein the second step is a step of setting a node N as an unsearched upper node, a step of empty-setting a set of replacement target nodes, a step of adding the node N to the set of replacement target nodes, A step of determining whether or not there is, and attempting to add the target upper node to the replacement target node set, and determining whether the number of elements of the replacement target node all candidate set of the replacement target node set after addition is 2 or less. A step of determining whether the number of elements of the replacement target node set is 2 or more; replacing the replacement target node set with an intermediate variable;
A logic circuit synthesis method, comprising: generating a DD; and determining that there is no unsearched upper node.
【請求項3】 論理式やハードウェア記述言語などで表
現された設計対象回路より、ゲート回路あるいはトラン
ジスタ回路を生成する論理回路合成のプログラムを記憶
した記憶媒体において、 論理式をBDDでグラフ表現する第1ステップと、 グラフ表現されたBDDより、多段論理最適化を適用す
る部分を抽出し、その部分を中間変数に置換して、BD
Dを新たに構成する第2ステップと、 前記多段論理最適化を適用する部分を中間変数に置換
し、多段論理最適化を適用し、回路を生成する第3ステ
ップと、 第2ステップで新たに構成したBDDをMUXセルに変
換して回路を生成する第4ステップと、 第4ステップで得られた回路の入力となっている、第2
ステップで抽出した部分の中間変数を、第3ステップで
選られた回路で置換する第5ステップと、 を有することを特徴とする論理回路合成のプログラムを
記録した記録媒体。
3. A logical expression is represented by BDD in a storage medium storing a logic circuit synthesis program for generating a gate circuit or a transistor circuit from a design target circuit expressed by a logical expression, a hardware description language, or the like. A first step, extracting a part to which the multi-stage logic optimization is applied from the graphed BDD, replacing the part with an intermediate variable,
A second step of newly constructing D; a third step of replacing the portion to which the multi-stage logic optimization is applied with an intermediate variable, applying a multi-stage logic optimization to generate a circuit; A fourth step of converting the configured BDD into a MUX cell to generate a circuit, and a second step of inputting the circuit obtained in the fourth step.
A fifth step of replacing an intermediate variable of a portion extracted in the step with a circuit selected in the third step; and a recording medium recording a logic circuit synthesis program.
【請求項4】 前記第2ステップは、 ノードNを未探索上位ノードとするステップと、 置換対象ノード集合を空集合するステップと、 置換対象ノード集合にノードNを加えるステップと、 対象上位ノードがあるかどうかを判定するステップと、 対象上位ノードを置換対象ノード集合に加えることを試
み、加えた後の置換対象ノード集合の置換対象ノード全
候補集合の要素数が2以下であるかを判定するステップ
と、 置換対象ノード集合の要素数が2以上であるかを判定す
るステップと、 置換対象ノード集合を中間変数に置換して、新たなはB
DDを生成するステップと、 未探索上位ノードがないことを判定するステップと、 を有することを特徴とする論理回路合成のプログラムを
記録した請求項3記載の記録媒体。
4. The second step comprises: setting a node N as an unsearched upper node; empty-setting a replacement target node set; adding a node N to the replacement target node set; A step of determining whether or not there is, and attempting to add the target upper node to the replacement target node set, and determining whether the number of elements of the replacement target node all candidate set of the replacement target node set after addition is 2 or less. A step of determining whether the number of elements of the replacement target node set is 2 or more; replacing the replacement target node set with an intermediate variable;
The recording medium according to claim 3, further comprising: generating a DD; and determining that there is no unsearched upper node.
JP23720399A 1999-08-24 1999-08-24 Logic circuit synthesizing method and storage medium storing program of the synthesizing method Pending JP2001067382A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP23720399A JP2001067382A (en) 1999-08-24 1999-08-24 Logic circuit synthesizing method and storage medium storing program of the synthesizing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP23720399A JP2001067382A (en) 1999-08-24 1999-08-24 Logic circuit synthesizing method and storage medium storing program of the synthesizing method

Publications (1)

Publication Number Publication Date
JP2001067382A true JP2001067382A (en) 2001-03-16

Family

ID=17011913

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23720399A Pending JP2001067382A (en) 1999-08-24 1999-08-24 Logic circuit synthesizing method and storage medium storing program of the synthesizing method

Country Status (1)

Country Link
JP (1) JP2001067382A (en)

Similar Documents

Publication Publication Date Title
US6721926B2 (en) Method and apparatus for improving digital circuit design
US6813750B2 (en) Logic circuit design equipment and method for designing logic circuit for reducing leakage current
JP4673203B2 (en) Logic program, method and system for optimizing layout constrained design
JP2995963B2 (en) Hierarchical circuit database optimization apparatus and hierarchical circuit database optimization method
Maheshwari et al. Efficient retiming of large circuits
KR100334001B1 (en) Method for designing semiconductor integrated circuit and automatic designing device
Gemmeke et al. Implementation of scalable power and area efficient high-throughput Viterbi decoders
JPH09162720A (en) Combined logic circuit and designing method for the same
US6313666B1 (en) Logic circuit including combined pass transistor and CMOS circuit and a method of synthesizing the logic circuit
CN113051867A (en) Method for automated design of integrated circuits
CN103840831A (en) Switching scheme for ISI mitigation in data converters
JP2689908B2 (en) How to synthesize an initializeable asynchronous circuit design
US5917728A (en) Method for designing path transistor logic circuit
JP2001067382A (en) Logic circuit synthesizing method and storage medium storing program of the synthesizing method
JP2001209670A (en) High order synthesis method and recording medium used for execution of high order synthesis method
Jaekel et al. Design of dynamic pass-transistor logic circuits using 123 decision diagrams
US7181720B2 (en) Process and device for circuit design by means of high-level synthesis
CN112131813A (en) FPGA wiring method for improving wiring speed based on port exchange technology
JPH096821A (en) Composing method for logic circuit, manufacture of semiconductor device, an optimizing method for bisect determination graph
Babu et al. A technique for logic design of voltage-mode pass transistor based multi-valued multiple-output logic circuits
CN113255257B (en) S box circuit optimization method and system based on process library
JPH0997281A (en) Path transistor logic design method
US8136061B2 (en) Method of logic circuit synthesis and design using a dynamic circuit library
EP0413831B1 (en) Method of optimising logic circuit
Dutt et al. A search-based bump-and-refit approach to incremental routing for ECO applications in FPGAs