JP2000207444A - Method and device for extracting common part logical expression, and record medium recorded with extraction program of common part logical expression - Google Patents

Method and device for extracting common part logical expression, and record medium recorded with extraction program of common part logical expression

Info

Publication number
JP2000207444A
JP2000207444A JP11012148A JP1214899A JP2000207444A JP 2000207444 A JP2000207444 A JP 2000207444A JP 11012148 A JP11012148 A JP 11012148A JP 1214899 A JP1214899 A JP 1214899A JP 2000207444 A JP2000207444 A JP 2000207444A
Authority
JP
Japan
Prior art keywords
kernel
logical expression
node
logical
graph
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.)
Granted
Application number
JP11012148A
Other languages
Japanese (ja)
Other versions
JP3484091B2 (en
Inventor
Hiroshi Sawada
宏 澤田
Shigeru Yamashita
茂 山下
Akira Nagoya
彰 名古屋
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP01214899A priority Critical patent/JP3484091B2/en
Publication of JP2000207444A publication Critical patent/JP2000207444A/en
Application granted granted Critical
Publication of JP3484091B2 publication Critical patent/JP3484091B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Logic Circuits (AREA)

Abstract

PROBLEM TO BE SOLVED: To reduce processing time for extracting a common part logical expression from plural product-sum type logical expressions in logic design. SOLUTION: This device is provided with a kernel graph generating part 122 that generates a candidate of a common part logical expression which is called a kernel from plural product-sum type logical expressions, a kernel graph storing part 132 which stores the generated kernel and the generating process by using a directed graph consisting of nodes and branches and a node managing part 123 which decides the equivalent property of nodes of the directed graph, and ignores the kernel generation processing when what is equivalent to a node of a graph to be generated already exists in the kernel generating process.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は、論理設計支援シス
テムにおいて、積和形論理式の共通部分の抽出に適用で
き、与えられた積和形論理式をより文字数の少ない積和
形論理式の多段表現に変換する技術に関する。積和形論
理式は、NOT/AND/ORゲートを用いた論理回路
に対応するため、積和形論理式の文字数を減少させるこ
とで、より規模の小さい論理回路を設計することができ
る。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention can be applied to the extraction of a common part of a product-sum logical expression in a logic design support system. The present invention relates to a technique for converting into a multi-stage expression. Since the product-sum logic expression corresponds to a logic circuit using a NOT / AND / OR gate, a smaller-scale logic circuit can be designed by reducing the number of characters of the product-sum logic expression.

【0002】[0002]

【従来の技術】まず、積和形論理式について述べる。リ
テラルとは、0か1の値を取る変数(a,b,c,・・
・)およびその否定(a′,b′,c′,・・・)であ
る。積項とは1つ以上のリテラルの積であり、例えばa
b′deやcdeやfは積項である。積和形論理式は1
つ以上の積頃の和であり、例えばab′de+cde+
fは積和形理式である。積和形論理式は、NOT/AN
D/ORゲートを用いて論理回路として実現できる。例
えば、F1=ab′de+cde+fは、図8の(A)
に示すような論理回路となる。以下、文脈から明らかで
あれば、積和形論理式を単に論理式と呼ぶことがある。
2. Description of the Related Art First, a product-sum type logical expression will be described. A literal is a variable (a, b, c,...) That takes a value of 0 or 1.
.) And its negation (a ', b', c ',...). A product term is the product of one or more literals, for example, a
b'de, cde, and f are product terms. The product-sum formula is 1
It is the sum of two or more times, for example, ab'de + cde +
f is a product-sum formula. The product-sum logical expression is NOT / AN
It can be realized as a logic circuit using a D / OR gate. For example, F 1 = ab'de + cde + f is equivalent to (A) in FIG.
A logic circuit as shown in FIG. Hereinafter, if it is clear from the context, the product-sum type logical expression may be simply referred to as a logical expression.

【0003】複数の積和形論理式が与えられた場合、も
し積項を共有することができれば、それらを実現するた
めの論理回路のコストを削減することができる。例え
ば、F1=ab′de+cde+fと共にF2=ab′f
+cde+fが与えられた場合、G1=cde+fを共
通部分論理式として、F1=ab′de+G1,F2=a
b′f+G1とできる。
When a plurality of product-sum logical expressions are given, if the product terms can be shared, the cost of a logic circuit for realizing them can be reduced. For example, F 2 = ab'f along with F 1 = ab'de + cde + f
+ Cde + f, G 1 = cde + f is defined as a common partial logical expression, and F 1 = ab'de + G 1 , F 2 = a
It can be a b'f + G 1.

【0004】積和形論理式は、複数回現れるリテラルの
積で割ることにより、一般の数式のように変形するとが
できる。例えば、F1=ab′de+cde+fにはリ
テラルの積deを含む積項が2個あり、(ab′de+
cde)/(de)=ab′+cと割り算ができるか
ら、F1=ab′de+cde+f=(ab′+c)d
e+fと変形できる。このような操作をすることで、同
じ積項を持たない複数の論理式間でも部分論理式を共有
できることがある。例えば、F1=ab′de+cde
+fと共にF3=ab′f+cf+cg′が与えられた
場合、共通の積項は存在しないが、F3=(ab′+
c)f+cg′と変形することで、G2=ab′+cを
共通部分論理式として、F1=G2de+f、F3=G2
+cg′と変形でき、図8の(C)に示すように、全体
を実現するための論理回路のコストを削減できる。な
お、図8の(B)はF3の本来の論理回路を示す。
A product-sum logical expression can be transformed into a general mathematical expression by dividing by a product of literals that appear multiple times. For example, F 1 = ab'de + cde + f has two product terms including the literal product de, and (ab'de +
cde) / (de) = ab '+ c, so that F 1 = ab'de + cde + f = (ab' + c) d
It can be transformed to e + f. By performing such an operation, a partial logical expression may be shared between a plurality of logical expressions not having the same product term. For example, F 1 = ab'de + cde
+ F along with F 3 = ab'f + cf + cg ', there is no common product term, but F 3 = (ab' +
c) By transforming to f + cg ′, G 1 = G 2 de + f and F 3 = G 2 f where G 2 = ab ′ + c is a common partial logical expression.
+ Cg ', and as shown in FIG. 8C, the cost of the logic circuit for realizing the whole can be reduced. FIG. 8B shows the original logic circuit of F3.

【0005】上記の例ではF1をうまく変形したことに
より共通部分論理式を見つけることができたが、もしF
1=(ab′d+cd)e+fと変形した場合には、共
通部分論理式を見つけることができない。これは、部分
論理式ab′d+cdに、すべての積項に現れるリテラ
ルdが存在しているからである。以下、このようなリテ
ラルを共通リテラルと呼ぶことにする。一般に、与えら
れた論理式を複数回現れるリテラルの積で割った商のう
ち、共通リテラルを含まないものはカーネルと呼ばれ、
共通部分論理式の候補としてふさわしいとされている
(参考文献:R.K.Brayton,R.Rudell,A.Sang
iovanni-Vincentelli and A.R.Wang,「MIS:
A Multiple-Level Logic Optimization Syste
m,」IEEETransactions on Computer-Aided D
esign,vol.CAD−6,no.6,pp.1062−108
1,Nov.1987)。
In the above example, a common sub-logical expression could be found by successfully modifying F 1.
In the case of 1 = (ab'd + cd) e + f, a common partial logical expression cannot be found. This is because a literal d that appears in all product terms exists in the partial logical expression ab'd + cd. Hereinafter, such a literal is referred to as a common literal. In general, a quotient obtained by dividing a given logical expression by a product of literals that appear multiple times and not including a common literal is called a kernel,
It is considered to be suitable as a candidate for a common sub-logical formula (references: RK Brayton, R. Rudell, A. Sang
iovanni-Vincentelli and AR Wang, "MIS:
A Multiple-Level Logic Optimization System
m, "IEEE Transactions on Computer-Aided D
esign, vol. CAD-6, no. 6, pp. 1062-108
1, Nov. 1987).

【0006】与えられた論理式に対してすべてのカーネ
ルを生成する手法としては、以下に示すようなものが知
られている。 1.与えられた論理式に共通リテラルが存在すれば、そ
の全てのリテラルで論理式を割り、商の論理式をFとす
る。存在しなければ、与えられた論理式をそのままFと
する。 2.論理式Fの全てのリテラルを順序づけして、ln,l
n-1,・・・,l1とする。 3.図9に示す再帰的手続きをgenerateKernel(F,
n)で呼び出す。
The following is known as a technique for generating all kernels for a given logical expression. 1. If a common literal exists in a given logical expression, the logical expression is divided by all the literals, and the logical expression of the quotient is set to F. If it does not exist, the given logical expression is set to F as it is. 2. Ordering all the literals of the logical expression F, l n , l
n-1 ,..., l 1 . 3. The recursive procedure shown in FIG.
Call in n).

【0007】図9に示す再帰的手続きでは、基本的に、
与えられた論理式を複数回現れるリテラルで割り(演算
子/は割り算を表す)、その結果の論理式に共通リテラ
ルが存在すればさらにそれらで割り、カーネルとして登
録するという操作を再帰的に行っている。また、同じカ
ーネルを2回以上登録しないように、リテラルを順序付
けして制御を行っている。列挙するリテラルは引数とし
て与えられるtopIndex以下であるという部分、およ
び、添え字がiより大きいリテラルがcomCubeに存在す
れば以降の処理は行わないという部分がその役割を果た
している。
In the recursive procedure shown in FIG. 9, basically,
Recursively performs the operation of dividing the given logical expression by literals that occur multiple times (operator / indicates division), and if there is a common literal in the resulting logical expression, further divides them and registers them as a kernel. ing. In addition, control is performed by ordering literals so that the same kernel is not registered twice or more. The part that the enumerated literal is equal to or less than the topIndex given as an argument, and the part that the subsequent processing is not performed if a literal whose subscript is greater than i exists in the comCube, play the role.

【0008】例として、論理式F4=abcg′+ab
d+ae+bc′fg+c′fhに対してすべてのカー
ネルを生成する様子を図10に示す。与えられた論理式
に共通リテラルは存在しないので、これをそのままFと
する。リテラルの順序は図9に示すものとし、generate
Kernel(F,10)を呼び出す。複数回現れるリテラ
ルで添字が10以下のものは、a、b、c′、fであ
り、それぞれについて処理を進める。a,bで割った結
果に関しては共通リテラルcomCubeは発生しないが、
c′,fで割った結果に関しては共通リテラルcomCube
が発生する。fの場合はcomCubeに添字が4(f=
4)より大きいリテラルc′=l7が存在するため、以
降の処理はしない。
As an example, the logical expression F 4 = abcg '+ ab
FIG. 10 shows how all kernels are generated for d + ae + bc'fg + c'fh. Since there is no common literal in the given logical expression, this is set to F as it is. The order of the literals is shown in FIG.
Call Kernel (F, 10). Literals that appear a plurality of times and have a suffix of 10 or less are a, b, c ', and f, and the processing proceeds for each. A common literal comCube does not occur for the result of dividing by a and b,
For the result of dividing by c 'and f, the common literal comCube
Occurs. In the case of f, the subscript of comCube is 4 (f =
l 4 ) Since there is a literal c ′ = l 7 larger than l 4 ), the subsequent processing is not performed.

【0009】ここで、従来、一般的に行われている共通
部分論理式の抽出手順を図11に示す。まず、与えられ
たすべての論理式に対してカーネルを生成する(ステッ
プ1100,1110)。そして、共通部分論理式とし
て最も有効なカーネルを選択し、それを用いる他の論理
式を更新する(ステップ1120,1130)。更新さ
れた論理式に対しては、再びカーネルを生成し、共通部
分論理式として最も有効なカーネルの選択を、有効なも
のが存在する限り繰り返していく。
FIG. 11 shows a procedure of extracting a common partial logical expression, which is generally performed conventionally. First, kernels are generated for all given logical expressions (steps 1100 and 1110). Then, the most effective kernel is selected as the common partial logical expression, and another logical expression using it is updated (steps 1120, 1130). For the updated logical expression, a kernel is generated again, and the selection of the most effective kernel as the common partial logical expression is repeated as long as a valid one exists.

【0010】例として、図10に示す論理式F4=ab
cg′+abd+ae+bc′fg+c′fhと論理式
5=abg+ah+c′が与えられたとき、共通部分
論理式を抽出することを考える。F4のカーネルは図1
0に示す通りであり、F5のカーネルはそれ自身とbg
+hだけである。従って、bg+hが共通部分論理式と
して有効なカーネルであることがわかる。これを新たな
論理式G3=bg+hとして登録し、これを用いる論理
式を更新すると、F4=abcg′+abd+ae+
c′fG3,F5=aG3+c′となる。その後、更新さ
れたそれぞれに対して再びカーネルを生成する。更新さ
れたF4に対するカーネル生成の様子を図12に示す。
更新されたF5に関しては、それ自身以外のカーネルは
存在しない。従って、以上で共通部分論理式として有効
なものは存在しなくなったので処理を終わる。
As an example, a logical formula F 4 = ab shown in FIG.
When cg '+ abd + ae + bc'fg + c'fh and formulas F 5 = abg + ah + c ' is given, consider to extract the common partial logical expressions. Figure 4 shows the F4 kernel
Is as shown in 0, the kernel of F 5 is itself and bg
+ H only. Therefore, it can be seen that bg + h is a valid kernel as a common partial logical expression. When this is registered as a new logical expression G 3 = bg + h and the logical expression using this is updated, F 4 = abcg ′ + abd + ae +
c′fG 3 , F 5 = aG 3 + c ′ After that, the kernel is generated again for each updated. Figure 12 shows the state of the kernel generation for F 4 which is updated.
With respect to the F 5 that have been updated, it kernel other than its own does not exist. Accordingly, there is no longer any effective common partial logical expression, and the process is terminated.

【0011】[0011]

【発明が解決しようとする課題】従来の技術では、共通
部分論理式を選択して論理式を更新した後、新たな論理
式に対して再びカーネルの生成処理を行う。しかし、先
のF4の例の図10と図12を見比べると分るように、
更新前の論理式と更新後の論理式では、同じカーネルが
生成されることがしばしばある。
In the prior art, after a common partial logical expression is selected and the logical expression is updated, kernel generation processing is performed again on the new logical expression. However, as can be seen when compare to FIGS. 10 and 12 of the previous example of F 4,
The same kernel is often generated in the formula before the update and the formula after the update.

【0012】本発明の目的は、共通部分論理式の抽出に
おいて、既にカーネルを生成した部分論理式と同じ部分
論理式に対するカーネルの生成要求があった場合に、そ
の生成過程を省略し、カーネル生成のための処理時間の
削除を図ることにある。
[0012] An object of the present invention is to omit the generation process when a kernel generation request is issued for the same partial logical expression as that already generated in the extraction of the common partial logical expression. In order to eliminate the processing time.

【0013】[0013]

【課題を解決するための手段】上記目的を達成するた
め、本発明では、論理式に対してカーネルと呼ばれる共
通部分論理式の候補を生成する手段と、生成されたカー
ネル及びその生成過程を有向グラフを用いて記憶する手
段と、有向グラフの節点の等価性を判定する手段を備え
る。
In order to achieve the above object, according to the present invention, there is provided a means for generating a candidate for a common partial logical expression called a kernel for a logical expression, and a method for generating the generated kernel and its generation process by using a directed graph. And means for determining the equivalence of the nodes of the directed graph.

【0014】本発明では、生成されたカーネル及びその
生成過程を有向グラフを用いて記憶するが、そのグラフ
はカーネルの生成過程で徐々に構築されていく。カーネ
ルの生成過程では、与えられた論理式を解析して、その
グラフを構築するために必要な節点がどのようなもので
あるかが計算される。必要な節点の要求に対しては、節
点の等価性を判定する手段により、必要な節点と等価な
ものが既に存在するかどうかを調べることができる。従
って、カーネルの生成過程において、必要な節点と等価
なものが存在しない場合には新たに節点を生成して以降
の処理を進めるが、必要な節点と等価なものが既に存在
する場合にはこの節点を利用して以降の処理を省略でき
る。
In the present invention, the generated kernel and its generation process are stored using a directed graph, and the graph is gradually constructed in the kernel generation process. In the process of generating a kernel, a given logical expression is analyzed, and what kind of nodes are required to construct the graph is calculated. For a request for a required node, the means for determining the equivalence of the node can check whether or not an equivalent to the required node already exists. Therefore, in the kernel generation process, if there is no equivalent to the required node, a new node is generated and the subsequent processing proceeds, but if there is already an equivalent to the required node, this node is Subsequent processing can be omitted using the nodes.

【0015】例えば、先の論理式F4に関しては、従
来、部分論理式bcg′+bd+eに対するカーネルの
生成が、更新前の論理式と更新後の論理式の双方で行わ
れていた。本発明を適用した場合、これらの処理は一度
行うだけで良いことになる。
For example, regarding the above-mentioned logical expression F 4 , the generation of the kernel for the partial logical expression bcg ′ + bd + e has been conventionally performed by both the logical expression before the update and the logical expression after the update. When the present invention is applied, these processes need only be performed once.

【0016】[0016]

【発明の実施の形態】図1は、本発明を論理設計支援シ
ステムで適用するときの構成例を示すブロック図であ
る。図において、110は論理式の集合を入力あるいは
出力する入出力部、120は共通部分論理式の抽出処理
を行う処理部、130は入力された論理式の集合や生成
されたカーネルグラフを記憶する記憶部であり、これら
は実際にはコンピュータ資源を利用して構成される。こ
こで、処理部120は論理式管理部121、カーネルグ
ラフ生成部122、節点管理部123及び共通部分論理
式選択部124からなる。記憶部130は論理式記憶部
131とカーネルグラフ記憶部132からなる。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS FIG. 1 is a block diagram showing a configuration example when the present invention is applied to a logic design support system. In the figure, 110 is an input / output unit for inputting or outputting a set of logical expressions, 120 is a processing unit for extracting common logical expressions, and 130 stores a set of input logical expressions and a generated kernel graph. These are storage units, which are actually configured using computer resources. Here, the processing unit 120 includes a logical expression management unit 121, a kernel graph generation unit 122, a node management unit 123, and a common partial logical expression selection unit 124. The storage unit 130 includes a logical expression storage unit 131 and a kernel graph storage unit 132.

【0017】入出力部110からは、処理対象の論理式
の集合が入力され、論理式管理部121を通して論理式
記憶部131に記憶され、共通部分論理式を抽出し終わ
った後は、同じく論理式管理部121を通して入出力部
110に結果の論理式の集合が返される。論理式管理部
121では、入出力部110から与えられた論理式の集
合を論理式記憶部131に記憶するとともに該論理式の
状態を管理し、共通部分論理式選択部124で共通部分
論理式が選ばれる毎に論理式の集合を更新していき、最
終結果の論理式の集合を入出力部110に返す。カーネ
ルグラフ生成部122では、論理式管理部121から論
理式を与えられて、それを解析し、カーネルグラフを生
成してカーネルグラフ記憶部132に記憶するととも
に、必要なカーネルグラフの節点を節点管理部123に
要求する。節点管理部123では、要求された節点が既
にカーネルグラフ記憶部132に存在するかどうかを調
べ、もし存在すれば、その旨をカーネルグラフ生成部1
22に伝える。もし存在しなければ、節点を作成し、カ
ーネルグラフ生成部122には新たに節点を作成した旨
を伝える。共通部分論理式選択部124では、論理式記
憶部131に記憶されたすべての論理式に対してカーネ
ルグラフの生成が終了した後に、カーネルグラフ記憶部
124を参照して、共通部分論理式として最も有効なも
のを、生成されたカーネルの中から選択し、論理式管理
部121へ報告する。論理式管理部121では、これを
受けて、論理式記憶部131内の論理式の集合を更新す
ることになる。
A set of logical expressions to be processed is input from the input / output unit 110 and stored in the logical expression storage unit 131 through the logical expression management unit 121. After the extraction of the common partial logical expression, the logical The resulting set of logical expressions is returned to the input / output unit 110 through the expression management unit 121. The logical expression management unit 121 stores the set of logical expressions given from the input / output unit 110 in the logical expression storage unit 131 and manages the state of the logical expression. Each time is selected, the set of logical expressions is updated, and the set of logical expressions as the final result is returned to the input / output unit 110. The kernel graph generation unit 122 receives a logical expression from the logical expression management unit 121, analyzes the logical expression, generates a kernel graph, stores the generated kernel graph in the kernel graph storage unit 132, and manages necessary kernel graph nodes. Request to the unit 123. The node management unit 123 checks whether the requested node already exists in the kernel graph storage unit 132, and if so, notifies the kernel graph generation unit 1 of that fact.
Tell 22. If it does not exist, a node is created and the kernel graph generation unit 122 is notified that a new node has been created. After the generation of the kernel graphs for all the logical expressions stored in the logical expression storage unit 131, the common partial logical expression selection unit 124 refers to the kernel graph storage unit 124 to determine the most common common logical expression. A valid one is selected from the generated kernels and reported to the logical expression management unit 121. In response to this, the logical expression management unit 121 updates the set of logical expressions in the logical expression storage unit 131.

【0018】本発明による共通部分論理式抽出の手順の
概要は、先の図11と基本的にほぼ同じであり、カーネ
ルを生成する部分だけが異なる。したがって、以下では
特にカーネルグラフ生成部122、節点管理部123、
カーネルグラフ記憶部132について詳述する。
The outline of the procedure for extracting the common part logical expression according to the present invention is basically substantially the same as that of FIG. 11, except for the part for generating the kernel. Therefore, hereinafter, in particular, the kernel graph generation unit 122, the node management unit 123,
The kernel graph storage unit 132 will be described in detail.

【0019】[カーネルグラフ記憶部]カーネルグラフ
記憶部132では、カーネルグラフと名付けた有向グラ
フを記憶している。カーネルグラフは、図2に示すよう
に、節点と枝で構成され、与えられた論理式に対するす
べてのカーネルを表現するものである。その構造は、後
述のカーネルグラフ生成部122の動作による。節点
は、対応する部分論理式Fと整数値topLitIndexと枝
へのポインタの集合edgePointersを持つ。topLitInd
exは、その節点が持つ枝に現れるリテラルの添え字で最
大のものであり、枝が無い場合には0となる。枝は、リ
テラルLitとF/litの共通リテラルの積comCubeと節
点へのポインタnodePointerを持つ。
[Kernel Graph Storage Unit] The kernel graph storage unit 132 stores a directed graph named a kernel graph. As shown in FIG. 2, the kernel graph is composed of nodes and branches, and expresses all kernels for a given logical expression. The structure is based on the operation of the kernel graph generation unit 122 described later. A node has a corresponding partial logical expression F, an integer value topLitIndex, and a set of edge pointers edgePointers. topLitInd
ex is the largest suffix of a literal appearing in a branch of the node, and is 0 when there is no branch. The branch has a product comCube of a common literal of the literal Lite and F / lit and a pointer nodePointer to a node.

【0020】例として、論理式F4=abcg′+ab
d+ae+bc′fg+c′fhとF5=abg+ah
+c′に対するカーネルグラフを図3に示す。
As an example, the logical expression F 4 = abcg '+ ab
d + ae + bc'fg + c'fh and F 5 = abg + ah
The kernel graph for + c 'is shown in FIG.

【0021】なお、論理式の記憶、論理式の一致判定、
論理式の割り算、論理式における共通リテラルや複数リ
テラルの列挙等を効率良く実現するための方法として、
グラフ構造を用いて論理式を表現する方法は知られてい
る(例えば湊真一、「ゼロサプレス型二分決定グラフと
その応用」、1993年電子情報通信学会春期大会、p
p.1.368−1.369,SA−2−2)。この方
法では、同じ論理式は同じ節点で表現されるため、論理
式の一致判定が即座に行える。また、多くの論理式を表
現しても、多くのグラフの節点が違う論理式間で共有さ
れるため、それほど多くの記憶量を必要としない。
Note that storage of logical expressions, determination of coincidence of logical expressions,
As a method for efficiently realizing division of logical expressions, enumeration of common literals and multiple literals in logical expressions, etc.
A method of expressing a logical expression using a graph structure is known (for example, Shinichi Minato, “Zero Suppressed Binary Decision Diagram and Its Application”, IEICE Spring Meeting, 1993, p.
p. 1.368-1.369, SA-2-2). In this method, since the same logical expression is expressed by the same node, it is possible to immediately determine whether the logical expressions match. Even if many logical expressions are expressed, a large amount of storage is not required because many nodes of the graph are shared between different logical expressions.

【0022】[節点管理部]節点管理部123では、カ
ーネルグラフ生成部122から節点の生成要求があった
場合に、節点の等価性を判定する。その際に等価な節点
が既にあれば、その節点の生成を省略できる。等価な節
点とは、その節点から出る枝が等価であり(litとcom
Cubeが等しい)、それらの枝が指し示す節点もまた等
価なものである。後述のカーネルグラフ生成部122の
動作に従うと、以下の2つの条件が共に成り立てば、2
つの節点は等価である。 1.部分論理式Fが同じである。 2.整数値topLitIndexが同じである。
[Node Management Unit] The node management unit 123 determines equivalence of nodes when the kernel graph generation unit 122 requests a node generation. If an equivalent node already exists at that time, generation of the node can be omitted. An equivalent node is equivalent to a branch coming out of the node (lit and com
Cubes are equal), the nodes pointed to by those branches are also equivalent. According to the operation of the kernel graph generation unit 122 described later, if the following two conditions are satisfied, 2
Two nodes are equivalent. 1. The partial logical expressions F are the same. 2. The integer value topLitIndex is the same.

【0023】以下、これらFとtopLitIndexを持つ節
点をnode(F,topLitIndex)と表現することにす
る。図3における節点node(bg+h,0)は、論理式
4とF5の双方で用いられている。これは、それぞれの
論理式に対するカーネルグラフの生成過程で、等価な節
点の生成要求を行ったためである。
Hereinafter, the node having F and topLitIndex will be represented as node (F, topLitIndex). The node node (bg + h, 0) in FIG. 3 is used in both the logical expressions F 4 and F 5 . This is because an equivalent node generation request was made in the process of generating the kernel graph for each logical expression.

【0024】[カーネルグラフ生成部]カーネルグラフ
生成部122では、論理式管理部121から与えられた
論理式に対してカーネルグラフを生成する。その手順を
以下に示す。これは、従来の技術で示したカーネルを生
成する手順と大枠は同じであるが、再帰的手続きである
generateKernel(F,n)が、ここではgenKernelGr
aph(F,n)に置き換わっている。 1.与えられた論理式に共通リテラルが存在すれば、そ
の全てのリテラルで論理式を割り、結果の論理式をFと
する。存在しなければ、与えられた論理式をそのままF
とする。 2.論理式Fの全てのリテラルを順序づけして、ln
n-1,・・・,l1とする。 3.図4および図5に示す再帰的手続きをgenKernelG
raph(F,n)で呼び出す。
[Kernel Graph Generation Unit] The kernel graph generation unit 122 generates a kernel graph for the logical expression given by the logical expression management unit 121. The procedure is shown below. This is roughly the same as the procedure for generating a kernel shown in the prior art, but is a recursive procedure.
generateKernel (F, n) is genKernelGr here
aph (F, n). 1. If a common literal exists in a given logical expression, the logical expression is divided by all the literals, and the resulting logical expression is set to F. If it does not exist, the given logical expression is
And 2. Ordering all the literals of the logical expression F, l n ,
Let l n−1 ,..., l 1 . 3. The recursive procedure shown in FIG. 4 and FIG.
Called by raph (F, n).

【0025】図4および図5はカーネルグラフを生成す
る中心的な手順であるgenKernelGraphのフローチャー
トである。genKernelGraphは、論理式Fと整数値top
Indexを与えられ、処理を進める。
FIGS. 4 and 5 are flowcharts of genKernelGraph, which is a main procedure for generating a kernel graph. genKernelGraph is a logical expression F and an integer value top
Given an Index, the process proceeds.

【0026】まず、図4に示すように、論理式に複数回
現れるリテラルで添え字がtopIndex以下のものを列挙
し、それぞれのリテラルliに対して、comCubeiとcube
FreePartiを求めて登録していく。図9で示したgener
ateKernel(F,n)と同様に、同じカーネルを2回以
上処理しないように、リテラルを順序付けして制御を行
う。
First, as shown in FIG. 4, literals appearing in a logical expression a plurality of times and whose subscripts are equal to or smaller than topIndex are enumerated, and for each literal l i , comCube i and cube
Register for FreePart i . Gener shown in Fig. 9
Like ateKernel (F, n), control is performed by ordering literals so that the same kernel is not processed twice or more.

【0027】次に、図5でに示すように、登録されたリ
テラルの最大の添字をtopLitIndexとし(登録された
リテラルがない場合はこれを0とする)、論理式Fとto
pLitIndexのペアから成る節点と等価なものが既に存
在するかどうかを節点管理部123に問い合わせる。節
点管理部123では、もし存在した場合は、既にある節
点を返す。もし存在しない場合は、新たに節点を作り、
これを返す。もし既に節点が存在した場合は、カーネル
グラフ生成部122でのこれ以降の処理は省略される。
存在しなかった場合には、登録されたリテラルに対して
genKernelGraph(cubeFreeParti,i−1)を呼び出
し、その結果の節点と自身の間に枝を設け、その枝のli
t,comCubeiをそれぞれli,comCubeiとする。
Next, as shown in FIG. 5, the maximum subscript of the registered literal is set to topLitIndex (if there is no registered literal, this is set to 0), and the logical expressions F and to
An inquiry is made to the node management unit 123 as to whether or not a node equivalent to a pair of pLitIndex already exists. The node management unit 123 returns an existing node if it exists. If it does not exist, create a new node,
Return this. If a node already exists, the subsequent processing in the kernel graph generation unit 122 is omitted.
If not present, the registered literal
genKernelGraph (cubeFreePart i , i-1) is called, a branch is provided between the resulting node and itself, and li of the branch
Let t and comCube i be l i and comCube i , respectively.

【0028】[処理が省略できる例1]ここで、本発明
により、カーネル生成の処理を省略できる例を示す。従
来の技術で示した例と同様に、論理式F4=abcg′
+abd+ae+bc′fg+c′fhとF5=abg
+ah+c′が与えられ、それぞれに対してカーネルグ
ラフが生成され、共通部分論理式G3=bg+hが選ば
れたものとする。すると、F4とF5とはそれぞれ、F4R
=abcg′+abd+ae+c′fG3,F5R=aG3
+c′と更新される。
[Example 1 in which the processing can be omitted] Here, an example in which the kernel generation processing can be omitted according to the present invention will be described. As in the example shown in the prior art, the logical expression F 4 = abcg ′
+ Abd + ae + bc′fg + c′fh and F 5 = abg
+ Ah + c ′, a kernel graph is generated for each of them, and a common partial logical expression G 3 = bg + h is selected. Then, F 4 and F 5 are respectively F 4R
= Abcg '+ abd + ae + c'fG 3, F 5R = aG 3
+ C 'is updated.

【0029】その後、F4Rに対して、カーネルグラフの
生成を行う。まず、図6に示すようにリテラルの順序付
けを行う。F4Rに共通リテラルは存在しないので、gen
KernelGraph(abcg′+abd+ae+c′fh
3,11)が呼び出される。複数回現れるリテラルは
10=aとl8=bであり、それらを処理すべきリテラ
ルとして登録するので、topLitIndexは10となる。
節点管理部123にnode(abcg′+abd+ae+
c′fhG3,10)が既に存在するか問い合わせる
と、存在しないので、新たにこの節点を作る。その後、
まず、リテラルl10=aに対しgenKernelGraph(bc
g′+bd+e,9)を呼び出す。登録すべきリテラル
はl9=bだけであるから、node(bcg′+bd+
e,9)が存在するかどうかを節点管理部123に問い
合せる。この場合は、この節点が既に存在しているの
で、これ以降の処理を省略できる。同様に、リテラルl
9=bに対しgenKernelGraph(bcg′+ad+c′
fg,8)を呼び出すと、複数回現れるリテラルで添字
が8以下のものはないため、node(acg′+ad+
c′fg,0)が存在するかどうかを調べる。この場合
も既に存在し、これ以降の処理を省略できる。
After that, a kernel graph is generated for F 4R . First, literals are ordered as shown in FIG. Since the common literal does not exist in the F 4R, gen
KernelGraph (abcg '+ abd + ae + c'fh
G 3 , 11) is called. Literals that appear multiple times are l 10 = a and l 8 = b, and since they are registered as literals to be processed, topLitIndex is 10.
The node (abcg '+ abd + ae +
When c'fhG 3 , 10) is inquired as to whether it already exists, since it does not exist, this node is newly created. afterwards,
First, for a literal l 10 = a, genKernelGraph (bc
g '+ bd + e, 9) is called. Since the only literal to be registered is l 9 = b, node (bcg ′ + bd +
e, 9) is inquired to the node management unit 123 as to whether or not there is. In this case, since this node already exists, the subsequent processing can be omitted. Similarly, the literal l
9 = b for genKernelGraph (bcg '+ ad + c'
When fg, 8) is called, there is no literal that appears multiple times and has a subscript of 8 or less, so node (acg '+ ad +
Check whether c′fg, 0) exists. In this case as well, it already exists and subsequent processing can be omitted.

【0030】[処理が省略できる例2]また、1つの論
理式に対するカーネルの生成過程においても、本発明に
より、処理を省略できる例を示す。図7に、論理式F6
=acd+ace+af+bcd+bce+bfに対す
るカーネルグラフを示す。節点node(cd+ce+f,
4)やnode(a+b,0)が複数の枝で指し示されてい
る。特に、node(cd+ce+f,4)が2つの枝から
指し示されているということは、従来の技術では部分論
理式cd+ce+fに対する処理を2回行っていたが、
本発明によりその処理は1回だけで済むことを意味す
る。
[Example 2 in which processing can be omitted] An example in which processing can be omitted in the process of generating a kernel for one logical expression according to the present invention will be described. FIG. 7 shows the logical expression F 6
7 shows a kernel graph for == acd + ace + af + bcd + bce + bf. Node node (cd + ce + f,
4) and node (a + b, 0) are indicated by a plurality of branches. In particular, the fact that node (cd + ce + f, 4) is pointed out from two branches means that the processing for the partial logical expression cd + ce + f is performed twice in the related art.
The present invention means that the process only needs to be performed once.

【0031】以上、本発明の一実施形態を説明したが、
図1の処理部120で実行される本発明による共通部分
論理式抽出の手順、アルゴリズムは、共通部分論理式抽
出プログラムとして、コンピュータが読み取り可能な記
録媒体、例えばフロッピーディスクやメモリカード、コ
ンパクトディスク(CD−ROM)などに記録して提供
することが可能である。
The embodiment of the present invention has been described above.
The procedure and algorithm of the common part logical expression extraction according to the present invention, which are executed by the processing unit 120 of FIG. CD-ROM) or the like.

【0032】[0032]

【発明の効果】以上説明したように、本発明によれば、
論理設計における共通部分論理式の抽出処理において、
既にカーネルを生成した部分論理式と同じ部分論理式に
対するカーネルの生成を省略することができる。
As described above, according to the present invention,
In the process of extracting common sub-logical expressions in logical design,
It is possible to omit the generation of a kernel for the same partial logical expression as the one for which the kernel has already been generated.

【0033】共通部分論理式の抽出の処理においては、
与えられた論理式に対してカーネルを生成し、あるカー
ネルを共通部分論理式として選択し、これを用いる論理
式を更新するという処理を繰り返す。その中で、与えら
れた論理式は徐々に変化していき、更新前の論理式と更
新後の論理式は部分的に違うだけであることが多い。従
って、繰り返されるカーネル生成の際には、同じ部分論
理式に対する処理が多く現れる。また、ある1つの論理
式に対するカーネル生成の処理でも、同じ部分論理式に
対するカーネルの生成処理が行われることもある。よっ
て、同じ部分論理式に対するカーネルの生成過程を省略
できる機会は、積和形論理式から共通部分論理式を抽出
する処理の中で多く発生する。本発明を用いることで、
複数の積和形論理式から共通部分論理式を抽出する全体
の処理の中で、カーネル生成のための処理時間の総和を
大きく削減できる効果がある。
In the process of extracting the common partial logical expression,
A process is repeated in which a kernel is generated for a given logical expression, a certain kernel is selected as a common partial logical expression, and a logical expression using this is updated. Among them, a given logical expression gradually changes, and a logical expression before update and a logical expression after update often differ only partially. Therefore, when the kernel is repeatedly generated, many processes for the same partial logical expression appear. Also, even in the process of generating a kernel for one logical formula, the process of generating a kernel for the same partial logical formula may be performed. Therefore, there are many opportunities to omit the process of generating the kernel for the same partial logical expression in the process of extracting the common partial logical expression from the product-sum logical expression. By using the present invention,
In the entire process of extracting the common part logical expression from the plurality of product-sum logical expressions, there is an effect that the total processing time for kernel generation can be greatly reduced.

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

【図1】本発明を論理設計支援システムに適用したとき
の構成例を示すブロック図である。
FIG. 1 is a block diagram illustrating a configuration example when the present invention is applied to a logic design support system.

【図2】カーネルグラフの節点と枝のデータ構造を示す
図である。
FIG. 2 is a diagram illustrating a data structure of nodes and branches of a kernel graph.

【図3】カーネルグラフの例を示す図である。FIG. 3 is a diagram illustrating an example of a kernel graph.

【図4】カーネルグラフ生成の手順を示す図である。FIG. 4 is a diagram showing a procedure for generating a kernel graph.

【図5】図4のカーネルグラフ生成の手順の続きを示す
図である。
FIG. 5 is a diagram illustrating a continuation of the procedure for generating the kernel graph in FIG. 4;

【図6】更新された論理式に対するカーネルグラフの例
を示す図である。
FIG. 6 is a diagram illustrating an example of a kernel graph for an updated logical expression.

【図7】1つの論理式だけで節点の共有がおこるカーネ
ルグラフの例を示す図である。
FIG. 7 is a diagram illustrating an example of a kernel graph in which nodes are shared by only one logical expression.

【図8】論理式の共通部分の抽出例を示す図である。FIG. 8 is a diagram illustrating an example of extracting a common part of a logical expression.

【図9】一般的なカーネル生成の手順を示す図である。FIG. 9 is a diagram showing a general procedure of kernel generation.

【図10】一般的なカーネル生成の例を示す図である。FIG. 10 is a diagram illustrating an example of general kernel generation.

【図11】従来の共通部分論理式の抽出の手順の概略を
示す図である。
FIG. 11 is a diagram showing an outline of a conventional procedure for extracting a common partial logical expression.

【図12】更新された論理式に対する一般的なカーネル
生成の例を示す図である。
FIG. 12 is a diagram illustrating an example of general kernel generation for an updated logical expression.

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

110 入出力部 120 処理部 121 論理式管理部 122 カーネルグラフ生成部 123 節点管理部 124 共通部分論理式選択部 130 記憶部 131 論理式記憶部 132 カーネルグラフ記憶部 Reference Signs List 110 input / output unit 120 processing unit 121 logical expression management unit 122 kernel graph generation unit 123 node management unit 124 common partial logical expression selection unit 130 storage unit 131 logical expression storage unit 132 kernel graph storage unit

───────────────────────────────────────────────────── フロントページの続き (72)発明者 名古屋 彰 東京都新宿区西新宿三丁目19番2号 日本 電信電話株式会社内 Fターム(参考) 5B046 AA08 BA02 5J056 AA00 BB02 BB59 CC00 HH04 ────────────────────────────────────────────────── ─── Continued on the front page (72) Inventor Akira Nagoya 3-19-2 Nishi-Shinjuku, Shinjuku-ku, Tokyo F-term in Nippon Telegraph and Telephone Corporation (reference) 5B046 AA08 BA02 5J056 AA00 BB02 BB59 CC00 HH04

Claims (3)

【特許請求の範囲】[Claims] 【請求項1】 論理設計における複数の積和形論理式か
ら共通部分論理式を抽出する方法であって、 カーネルと呼ばれる共通部分論理式の候補を生成し、生
成されたカーネル及びその生成過程を、節点と枝で構成
される有向グラフを用いて記憶し、カーネル生成過程に
て、生成すべきグラフの節点と等価なものが既に存在す
るかどうかを判定し、等価な節点が既に存在する場合に
は、そのカーネル生成処理を省略することを特徴とする
共通部分論理式の抽出方法。
1. A method for extracting a common sub-logical expression from a plurality of sum-of-products logical expressions in a logic design, comprising generating a common sub-logical expression candidate called a kernel, and generating the generated kernel and its generation process. Is stored using a directed graph composed of nodes and branches, and in the kernel generation process, it is determined whether or not there is already an equivalent to the node of the graph to be generated, and if an equivalent node already exists, Is a method for extracting a common partial logical expression, wherein the kernel generation processing is omitted.
【請求項2】 論理設計における複数の積和形論理式か
ら共通部分論理式を抽出する装置であって、 カーネルと呼ばれる共通部分論理式の候補を生成する手
段と、生成されたカーネル及びその生成過程を、節点と
枝で構成される有向グラフを用いて記憶する手段と、有
向グラフの節点の等価性を判定する手段を備え、 カーネル生成過程において、生成すべきグラフの節点と
等価なものが既に存在する場合には、そのカーネル生成
処理を省略することを特徴とする共通部分論理式の抽出
装置。
2. An apparatus for extracting a common partial logical expression from a plurality of sum-of-products logical expressions in a logical design, comprising: means for generating a candidate for a common partial logical expression called a kernel; There are means for storing the process using a directed graph composed of nodes and branches, and means for determining the equivalence of the nodes of the directed graph.In the kernel generation process, there is already a node equivalent to the node of the graph to be generated In such a case, the kernel generating process is omitted, and a common partial logical expression extracting device is characterized in that the kernel generating process is omitted.
【請求項3】 論理設計における複数の積和形論理式か
ら共通部分論理式を抽出するプログラムを記録したコン
ピュータ読み取り可能な記録媒体であって、 カーネルと呼ばれる共通部分論理式の候補を生成する処
理プロセスと、生成されカーネル及びその生成過程を、
節点と枝で構成される有向グラフを用いて記憶する処理
プロセスと、カーネル生成過程にて、生成すべきグラフ
の節点と等価なものが既に存在するかどうかを判定し、
等価な節点が既に存在する場合に、そのカーネル生成処
理を省略せしめる処理プロセスとを有することを特徴と
する共通部分論理式の抽出プログラムを記録した記録媒
体。
3. A computer-readable recording medium on which a program for extracting a common partial logical expression from a plurality of product-sum logical expressions in a logical design is recorded, wherein a process for generating a common partial logical expression candidate called a kernel is performed. Process, the generated kernel and its generation process,
In the process of storing using a directed graph composed of nodes and branches, and in the kernel generation process, determine whether there is already an equivalent to the node of the graph to be generated,
A process for skipping a kernel generation process when an equivalent node already exists, in which a common part logical expression extraction program is recorded.
JP01214899A 1999-01-20 1999-01-20 Method and apparatus for extracting common partial logical expression, and recording medium storing program for extracting common partial logical expression Expired - Fee Related JP3484091B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP01214899A JP3484091B2 (en) 1999-01-20 1999-01-20 Method and apparatus for extracting common partial logical expression, and recording medium storing program for extracting common partial logical expression

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP01214899A JP3484091B2 (en) 1999-01-20 1999-01-20 Method and apparatus for extracting common partial logical expression, and recording medium storing program for extracting common partial logical expression

Publications (2)

Publication Number Publication Date
JP2000207444A true JP2000207444A (en) 2000-07-28
JP3484091B2 JP3484091B2 (en) 2004-01-06

Family

ID=11797416

Family Applications (1)

Application Number Title Priority Date Filing Date
JP01214899A Expired - Fee Related JP3484091B2 (en) 1999-01-20 1999-01-20 Method and apparatus for extracting common partial logical expression, and recording medium storing program for extracting common partial logical expression

Country Status (1)

Country Link
JP (1) JP3484091B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007121457A (en) * 2005-10-25 2007-05-17 Sony Corp Information processor, information processing method, and program

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007121457A (en) * 2005-10-25 2007-05-17 Sony Corp Information processor, information processing method, and program
US8738674B2 (en) 2005-10-25 2014-05-27 Sony Corporation Information processing apparatus, information processing method and program

Also Published As

Publication number Publication date
JP3484091B2 (en) 2004-01-06

Similar Documents

Publication Publication Date Title
US10176224B2 (en) Query plan optimization for large payload columns
US20210109920A1 (en) Method for Validating Transaction in Blockchain Network and Node for Configuring Same Network
US10249070B2 (en) Dynamic interaction graphs with probabilistic edge decay
WO2019084788A1 (en) Computation apparatus, circuit and relevant method for neural network
US10042876B2 (en) Sort-merge-join on a large architected register file
US5572454A (en) Modulo reduction method using a precomputed table
US11100074B2 (en) Method and device for managing document index
US10380111B2 (en) System and method for searching data
US10303791B2 (en) Efficient join on dynamically compressed inner for improved fit into cache hierarchy
JP2000207444A (en) Method and device for extracting common part logical expression, and record medium recorded with extraction program of common part logical expression
US20180131612A1 (en) Storing data in association with a key within a hash table and retrieving the data from the hash table using the key
US11681498B2 (en) Neural network arithmetic processing device and neural network arithmetic processing method
US11507371B2 (en) Column data driven arithmetic expression evaluation
US11275507B2 (en) Method, electronic device, and computer storage medium for information processing
US7216141B2 (en) Computing carry-in bit to most significant bit carry save adder in current stage
US6795842B2 (en) Method and apparatus for comparing two binary numbers with a power-of-two threshold
JPH0651950A (en) Adder circuit
KR20050008812A (en) Calculation method of a cumulative histogram
WO2021104478A1 (en) Query operation instruction optimization method and apparatus, electronic device and storage medium
US10740098B2 (en) Aligning most significant bits of different sized elements in comparison result vectors
US20230351150A1 (en) Neural network arithmetic processing device and neural network arithmetic processing method
US8805904B2 (en) Method and apparatus for calculating the number of leading zero bits of a binary operation
US20220308840A1 (en) Reciprocal calculating method and reciprocal calculating apparatus
JPH0635673A (en) Multiplying method and circuit
JPH0637592A (en) Method for designing digital filter

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071017

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081017

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091017

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101017

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees