JPH0620000A - 組み合せ論理処理方法 - Google Patents

組み合せ論理処理方法

Info

Publication number
JPH0620000A
JPH0620000A JP4176323A JP17632392A JPH0620000A JP H0620000 A JPH0620000 A JP H0620000A JP 4176323 A JP4176323 A JP 4176323A JP 17632392 A JP17632392 A JP 17632392A JP H0620000 A JPH0620000 A JP H0620000A
Authority
JP
Japan
Prior art keywords
node
procedure
terminated
nodes
value
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.)
Withdrawn
Application number
JP4176323A
Other languages
English (en)
Inventor
Hideyuki Emura
秀之 江村
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP4176323A priority Critical patent/JPH0620000A/ja
Publication of JPH0620000A publication Critical patent/JPH0620000A/ja
Withdrawn legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】2分決定グラフのApply手続き実行時に一
時的に多くの冗長な終端ノードが作り出されることによ
る計算時間と記憶容量の増加を防ぐ。 【構成】Apply手続き実行時に常に冗長な終端ノー
ドを取り除くことによる組合せ論理処理方法。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は組み合わせ論理処理方法
に関し、特に2分決定グラフを用いた組み合わせ論理処
理方法に関する。
【0002】
【従来の技術】2分決定グラフ(BDD:Binary
Deciscon Diagrams)は組み合わせ
論理を表現する手法のひとつとして用いられている(例
えばBryant,R.E:Graph−Based
Alorinhms forBoolean Func
nion Manipulation,IEEE Tr
ans.Conputer,Vol.C−35,No.
8,pp.677−691)。
【0003】図2は論理式x1 ・x2 +x4 を2分決定
グラフで表されている。以下の説明では組み合わせ論理
の入力変数の数をNINとする。201,202,20
3は入力変数を表す非終端ノードであり、数値はそれぞ
れ入力変数x1 ,x2 ,x4の添え字(index)を
表す。204,205は定数を表す終端ノードであり、
数値はそれぞれ定数1、定数0を表す。非終端ノードは
自分より大きな添え字を持つ非終端ノードまたは終端ノ
ードへ向けて2本のエッジを持ち、一方のエッジはラベ
ル1を持つ高エッジ、もう一方はラベル0を持つ低エッ
ジである。206,207はそれぞれ201の高エッ
ジ、低エッジである。208,209はそれぞれ20
6,207のラベルである。2分決定グラフは他のノー
ドからのエッジが無いただ1個の根をもつ。201は図
2の根である。
【0004】ノードは6個の属性を持っている。ノード
をvとしたときv.lowとv.highはそれぞれ低
エッジにより接続されているノード、高エッジにより接
続されているノードを示す。終端ノードの場合はともに
空とする。v.indexは非終端ノード場合は対応す
る入力変数の添え字を示し、終端ノードの場合はNIN
+1とする。v.idは整数値をとり、後述のRedu
ce手続きで使われる。v.valは非終端ノードの場
合は常にXであり、終端ノードの場合はそのノードの
値、すなわち定数0または定数1を示す。v.mark
は真または偽の値をとり、後述のTraverse手続
きで用いられる。201をvとするとv.lowは20
3、v.highは202、v.indexは1、v.
valは0となる。205をvとするとv.lowは
空、v.highは空、v.indexは5、v.va
lは0となる。
【0005】図3はTraverse手続きを示してお
りノードvを引数として受け取る。Traverseは
vを根とする2分決定グラフに対して、その2分決定グ
ラフに属する全ノードに対して1回ずつある操作を行う
ための手続きである。この手続きは再帰的な手続きとな
っている。ノードの属性markはノードを1回だけ処
理するためのフラグとして用いられ、この手続き呼び出
し時に全てのノードのmarkが同じ値になっている必
要がある。301でmarkの値を反転し、同じノード
を2回以上処理しない用にしている。302でvに対す
る処理を行い、303でvが終端ノードならば304へ
制御を移し、そうでなけらば現在の手続きを終了して上
位の手続きへ戻る。304、305ではv.markと
v.low.markが異なる場合にはv.lowに対
して再帰的にTraverse手続きを行う。306、
307ではv.markとv.high.markが異
なる場合にはv.highに対して再帰的にTrave
rse手続きを行う。
【0006】図4、図5、図6はReduce手続きを
示しており、ノードvを引数として受け取る。Redu
ce手続きはvは根とする2分決定グラフに対して、冗
長な部分を削除しその論理を表す一意な2分決定グラフ
を求める手続きである。
【0007】図4はReduce手続きのメイン手続き
であり、401ではNIN+1個の集合の配列vlis
tを用意しv以下の全てのノードuをvlist[u.
index]に追加する。402では変数nextid
を0に初期化する。403、404、405および40
6ではループ変数iをNIN+1から1に変化させなが
らReduce step手続きを行う。407では結
果の2分決定グラフを返す。 図5はReduce s
tep手続きの前半部分を示しており、変数i、nex
tid、vlistを上位の手続きから引き継ぐ。50
1ではノードの集合Qを空にする。502では503か
ら507迄の処理をvlist[i]の全てのノードu
に対して行うための制御を行う。uが終端ノードの場合
は504でkey=(u.value)をキーとしてQ
に〈key,u〉を登録する。uが非終端ノードの場
合、u.low.idとl.high.idが等しい場
合は506でu.idにu.low.idを代入し、等
しくない場合は507でkey=(u.low.id,
u.high.id)をキーとしてQに〈key,u〉
を登録する。508ではQの要素をkeyでソートす
る。ソートの方法は同一のkeyを持つ要素が隣り合う
様になれば何でも良い。
【0008】図6はReduce step手続きの後
半部分を示している。ノードの配列subgraphを
用いる。601では直前のkeyの値を保存する変数o
ldkeyを実際のどのkeyとも一致しない値(−
1,−1)で初期化する。602では603から608
までの処理をQのすべての要素について処理するために
制御する。603ではQの先頭の要素〈key,u〉を
取り出し、Qから削除する。keyとoldkeyが一
致すれば605でu.idにnextidを代入し、一
致しなければ606でnextidに1を加え、u.i
dにnextidを代入し、subgraph[nex
tid]にuを代入する。さらに607ではu.low
にsubgraph[u.low.id]をu.hig
hにsubgraph[u.high.id]を代入
し、608でoldkeyにkeyを代入する。
【0009】図7、図8はApply手続きを示してい
る。Applyは与えられたノードを根とする2つの2
分決定グラフに対して、与えられた演算を行いその結果
の2分決定グラフを返す手続きである。この手続きは再
帰的な手続きとなっている。
【0010】図7はApply手続きをのメイン処理を
示しており、2個のノードv1 ,v2 と演算opを引数
として受け取る。701でノードの2次元の配列Tを空
で初期化し、702でノードuにAppl step
(v1 ,v2 )の結果を代入し、703でReduce
(u)の結果を返す。
【0011】図8はApply step手続き示して
おり、2個のノードv1 ,v2 を引数として受け取る。
また上位の手続きから演算opと配列Tを引き継ぐ。8
01ではuにT[v1 .id,v2 .id]を代入し、
uが空でなければuを返す。803では新しいノードを
作成しuとし、804でu.markに偽を代入し、T
[v1 .id,v2 .id]にuを代入し、u.val
にv1 .valとv2.valに演算opを行った結果
を代入する。u.valがXでなければ806でuを終
端ノードとして設定する。u.valがXならば807
でu.indexにv1 .indexとv2 .inde
xの小さいほうの値を代入し、808、809、810
でvlow1、vhigh1にノードを代入し、81
1、812、813でvlow2、vhigh2にノー
ドを代入する。814ではApplystep(vlo
w1,vlow2)の結果をu.lowに代入し、Ap
ply step(vhigh1,vhigh2)の結
果をu.highに代入する。815ではuを結果とし
て返す。
【0012】図10、図11は図9(a)と図9(b)
の2分決定グラフに論理和のApply手続きを実行し
た実行例である。図9(a)は論理式反転(x1
3 )を表し、図9(b)は論理式x2 ・x3 を表して
いる。図10は702を終了した時点での2分決定グラ
フを示し、図11はApply手続きの結果を示してい
る。
【発明が解決しようとする課題】従来の手法ではApp
ly手続き実行時に一時的に多くの終端ノードが新たに
作り出されるが、これらは最終的にReduce手続き
で2個の終端ノードに集約される冗長なノードである。
このような冗長なノードを数多く作ることにより無駄な
計算時間と気後容量を費やしている。
【0013】
【課題を解決するための手段】本発明による組合せ論理
処理方法は、定数0と定数1を表す終端ノードと、番号
付けられた入力変数を表す非終端ノードをもち、非終端
ノードを入力変数の番号順に順序付けし、冗長性を取り
除いた2分決定グラフにより表現された組み合わせ論理
を処理する方法において、終端ノードの冗長性を常に取
り除く手法を有している。
【0014】
【実施例】次に本発明について図面を参照して説明す
る。
【0015】図1は本発明の一実施例であり図8のAp
ply step手続きを改良したものである。App
ly手続き本体は図7と同じ手続きを用いる。従来の技
術ではApply step手続きを実行することにそ
の結果が終端ノード、非終端ノードにかかわらず804
で必ず1個の新しいノードを作成していた。本実施例の
方法ではApply step手続き中に終端ノードの
冗長性を常に取り除く為に、終端ノードとして値1を持
つ終端ノードNODE1と値2をもつ終端ノードNOD
E0を用意しておき、102で作ろうとするノードが終
端ノードが否かを判定し、値1をもつ終端ノードならば
105でuにNODE1を代入し、値0をもつ終端ノー
ドならば104でuにNODE0を代入している。従っ
てApply step手続きが終端ノードを返す場合
は新たなノードを作ることが無くなっている。
【0016】図12は図1の詳細を示している。
【0017】図13は図9(a)と図9(b)の2分決
定グラフに論理和のApply手続きを適用した実行例
であり、702を終了した時点での2分決定グラフを示
している。1305はNODE0を示している。このよ
うに本実施例の手法を用いれば2分決定グラフはつねに
2個の終端ノードしか持たない。
【0018】図14は本実施例を実際の論理回路に適用
した結果である。この例では同じ論理で表現の異なる論
理式からそれぞれの論理を表す2分決定グラフを作成し
た時の作成したノードの総数と従来技術の手法に比べて
削減できた終端ノードの総数を示している。
【0019】
【発明の効果】本発明の手法を用いることにより、2分
決定グラフ処理時に一時的に作成するノードの数を大幅
に削減し、計算時間と記憶容量を削減することができ
る。
【図面の簡単な説明】
【図1】本発明の一実施例の組合せ論理処理方法を示す
フローチャートである。
【図2】2分決定図の例である。
【図3】従来技術のTraverse手続きを示すフロ
ーチャートである。
【図4】従来技術のReduce手続きを示すフローチ
ャートである。
【図5】従来技術のReduce step手続きの前
半部分を示すフローチャートである。
【図6】従来技術のReduce step手続きの後
半部分を示すフローチャートである。
【図7】従来技術のApply手続きを示すフローチャ
ートである。
【図8】従来技術のApply step手続きを示す
フローチャートである。
【図9】2分決定図の例であり、(a)は論理式反転
(x1 +x3 )を表し(b)は論理式x2 ・x3 を表わ
す。
【図10】従来のApply手続きの実行例である。
【図11】従来のApply手続きの実行例である。
【図12】本発明の一実施例の組合せ論理処理方法の詳
細を示すフローチャートである。
【図13】本発明の一実施例の組合せ論理処理方法のA
pply手続きの実行例である。
【図14】本発明の一実施例の組合せ論理処理方法の実
行例である。
【符号の説明】
101 前処理工程 102,103 判定工程 201,202,203 非終端ノード 204,205 終端ノード 206,207 エッジ 208,209 ラベル 301 ノードmark値反転工程 302 2分決定グラフ操作 303,304,305,307 Traves手続
工程 401 配列vilst準備工程 402 初期化工程 403,404,405,406 Reduce−s
tep手続工程

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 定数0と定数1を表す終端ノードと、番
    号付けられた入力変数を表す非終端ノードをもち、前記
    非終端ノードを入力変数の番号順に順序付けし、冗長を
    取り除いた2分決定グラフ(BDD)により表現された
    組み合わせ論理を処理する手法において、前記終端ノー
    ドの冗長性を常に取り除く手法を有することを特徴とす
    る組み合わせ論理処理方法。
JP4176323A 1992-07-03 1992-07-03 組み合せ論理処理方法 Withdrawn JPH0620000A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4176323A JPH0620000A (ja) 1992-07-03 1992-07-03 組み合せ論理処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4176323A JPH0620000A (ja) 1992-07-03 1992-07-03 組み合せ論理処理方法

Publications (1)

Publication Number Publication Date
JPH0620000A true JPH0620000A (ja) 1994-01-28

Family

ID=16011580

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4176323A Withdrawn JPH0620000A (ja) 1992-07-03 1992-07-03 組み合せ論理処理方法

Country Status (1)

Country Link
JP (1) JPH0620000A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996034351A1 (en) * 1995-04-25 1996-10-31 Hitachi, Ltd. Method for designing semiconductor integrated circuit and automatic designing device
US6188934B1 (en) 1997-06-06 2001-02-13 Nec Corporation Register correspondence method using I/O terminals, determined registers, the number of undetermined registers and self-feedback information to define unique registers
US6260185B1 (en) 1995-04-21 2001-07-10 Hitachi, Ltd. Method for designing semiconductor integrated circuit and automatic designing device
US6845349B1 (en) 1995-04-21 2005-01-18 Renesas Technology Corp. Method for designing semiconductor integrated circuit and automatic designing device

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6260185B1 (en) 1995-04-21 2001-07-10 Hitachi, Ltd. Method for designing semiconductor integrated circuit and automatic designing device
US6845349B1 (en) 1995-04-21 2005-01-18 Renesas Technology Corp. Method for designing semiconductor integrated circuit and automatic designing device
WO1996034351A1 (en) * 1995-04-25 1996-10-31 Hitachi, Ltd. Method for designing semiconductor integrated circuit and automatic designing device
US6259276B1 (en) 1995-04-25 2001-07-10 Hitachi, Ltd. Semiconductor integrated circuit
KR100334001B1 (ko) * 1995-04-25 2002-04-25 가나이 쓰도무 반도체 집적회로의 설계방법 및 자동설계장치
US6388474B2 (en) 1995-04-25 2002-05-14 Hitachi, Ltd. Semiconductor integrated circuit
US6188934B1 (en) 1997-06-06 2001-02-13 Nec Corporation Register correspondence method using I/O terminals, determined registers, the number of undetermined registers and self-feedback information to define unique registers

Similar Documents

Publication Publication Date Title
Zhao et al. Static logic implication with application to redundancy identification
CN110297853A (zh) 频繁集挖掘方法和装置
US6993740B1 (en) Methods and arrangements for automatically interconnecting cores in systems-on-chip
Venkateswaran et al. A new pebble game that characterizes parallel complexity classes
US6397370B1 (en) Method and system for breaking complex Boolean networks
Hosobe et al. Locally simultaneous constraint satisfaction
Chitour et al. Dynamics and stability of continuous-time switched linear systems
JPH0620000A (ja) 組み合せ論理処理方法
Kapur et al. Mechanically verifying a family of multiplier circuits
CN109359334A (zh) 一种组合电路门级网表转化为aiger格式文件的方法
Ponse et al. An introduction to program and thread algebra
JPS6142031A (ja) ソ−ト処理装置
CN111142944A (zh) 一种基于流水线执行策略的硬件sat求解器
Gregorio-Rodríguez et al. Denotational semantics for probabilistic refusal testing
US6018621A (en) Identifying an optimizable logic region in a logic network
EP1019811B1 (en) Method and apparatus for processing a request to a boolean rule
US6035110A (en) Identifying candidate nodes for phase assignment in a logic network
CN120337837B (zh) 一种合并d型触发器的优化方法
CN109684761B (zh) 一种宽同或电路优化方法
JPH06149927A (ja) 積和形論理式の処理方法
Visser et al. Efficient CTL* model checking for analysis of rainbow designs
CN121351723B (zh) 一种基于Undef_SAT的电路输入敏感性分析方法
JP2003122410A (ja) コントローラの演算実行方法
JP3654941B2 (ja) 論理シミュレーション方法及び論理シミュレータ
CN116127894A (zh) 一种数据排序的电路、方法、装置及介质

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19991005