JP2534190B2 - 関数のプライムインプリカントの暗黙表現を自動的に生成する方法 - Google Patents

関数のプライムインプリカントの暗黙表現を自動的に生成する方法

Info

Publication number
JP2534190B2
JP2534190B2 JP5103108A JP10310893A JP2534190B2 JP 2534190 B2 JP2534190 B2 JP 2534190B2 JP 5103108 A JP5103108 A JP 5103108A JP 10310893 A JP10310893 A JP 10310893A JP 2534190 B2 JP2534190 B2 JP 2534190B2
Authority
JP
Japan
Prior art keywords
minus
function
node
branch
norme
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 - Lifetime
Application number
JP5103108A
Other languages
English (en)
Other versions
JPH0659892A (ja
Inventor
オリビエ・クデール
ジヤンークリストフ・マドル
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.)
Bull SAS
Original Assignee
Bull SAS
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 Bull SAS filed Critical Bull SAS
Publication of JPH0659892A publication Critical patent/JPH0659892A/ja
Application granted granted Critical
Publication of JP2534190B2 publication Critical patent/JP2534190B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3323Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Geometry (AREA)
  • Operations Research (AREA)
  • Probability & Statistics with Applications (AREA)
  • Evolutionary Computation (AREA)
  • Algebra (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Devices For Executing Special Programs (AREA)
  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データ処理装置を使用
してブール関数のプライムインプリカントの暗黙表現を
自動的に生成する方法に関する。
【0002】
【従来の技術】多くの分野でブール関数操作が適用され
ている。例えば、複雑な電気回路の合成及び最適化やシ
ステム障害の分析はかかる操作に基づくものである。シ
ステム障害の分析においては、ブール関数を使用して障
害の出現を、その障害を惹起したであろう外部事象の関
数として表わし得る。このような関数は、真理表、ブー
ル方程式及びKarnaughマップの形式で表され得
る。種々の公知の表現モードによって、存在し得る変数
(または事象)の各組合せを表示することができる。し
かしながら、かかる表現は、そのサイズが関数の決定に
おいて出現する変数の数の関数として指数関数的に増大
するという欠点を有する。即ち、n変数従属関数に対し
ては2n個の変数の組合せが考え得る。
【0003】つまり、例えば関数を真理表の形式で表わ
す場合、考え得る変数の各組合せ及び対応する関数の各
値を同じ行上に与えることができるが、n変数関数に対
してこのような表はn+1列及び2n行を有する。これ
はプロセッサのメモリ内に記憶され得るが、多量の領域
を占める。所与の変数の組合せに対する関数の値を求め
るためには、テーブル内の所定数の行を一覧することが
必要であり、これは処理時間に悪影響を及ぼし得る。例
えば探し求めている組合せが表の最後のものであると仮
定すると、対応する関数の値を見付け出すためにはテー
ブル内の全ての行を一覧せねばならない。
【0004】上記表現の欠点を解消するため、B.D.
Dと称される2進決定グラフまたはダイヤグラムの形式
でブール関数を与えるという概念が考え出された。尚、
B.D.D.は英語の“Binary Decisio
n Diagram”の頭文字をとったものである2進
決定ダイヤグラムとは何かを説明する前に、使用する関
数及び用語の概念及び定義を与える。
【0005】式:f=x12*+x1*x23で定義さ
れる関数fを考える。この式は命題式であり、x1
2、x3は、基準事象の出現を惹起し得る単位事象(a
tomic event)に対応する命題変数である。
【0006】システム障害の分析において、単位事象は
障害の原因であり、基準事象は、所定の方法で相互に組
合わされた原因にリンクする特定の障害である。
【0007】式に現れる“x1”、“x2”、“x3”及
び“x1*”、“x2*”、“x3*”は、命題変数x1
2、x3に対応するリテラルである。リテラルは、命題
変数が関数においてどのように作用しているか、即ち関
連事象の出現または非出現が決定要因であるかまたは無
関係であるかを表している。x12*及びx1*x23
はリテラル積である。即ち積は変数及び変数の否定の合
接(conjunction)である。
【0008】第1の積x12*は、第3変数x3の存在
または不在は無関係であることを意味する。
【0009】上記式は、第1単位事象x1は起こったが
(x1=1)第2単位事象x2は起こらなかった(x2
0)場合か、或いは、第1事象x1は起こっていないが
第2事象x2及び第3事象x3は起こった場合に、基準事
象が起こる(f=1)ことを意味している。
【0010】2進決定グラフは、枝によって相互に結ば
れた所定数のラベルからなる。各ラベルは関数から定義
される変数を表わし、各ラベルからは2つの枝が出てい
る。ラベル、即ち変数とそこから出ている2つの枝とか
らなる単位がノードを形成する。ノードは点(vert
ex)と称されることもある。各枝は、値が“0”また
は“1”である終点葉を終点にもつ終点枝か、または別
のノードのラベルを終点にもつ中間枝かのいずれかであ
る。ラベルから出る枝の一方は、低値枝または否定枝と
称され、(上述の規約を使用して)関連変数の値が
“0”であるときに何が起こるかを表わしており、高値
枝または肯定枝と称される他方の枝は、変数の値が
“1”のときに何が起こるかを示している。実際、木
は、ルートと称される単一ルート変数(ラベル)から出
発し、そこから2つの枝が出て、更に枝には他のノード
または葉がカスケード状に接続されている。
【0011】木のルートから値1の終点葉まで進むこと
により、関数が1となるリテラルの組合せが設定され
る。即ち、基準事象の出現を惹起する変数の組合せ
(積)が生成される。即ち、ルートから値が1である各
終点葉までの各経路をたどることにより、基準事象の出
現を惹起した変数の各組合せを見付け出すことができ
る。
【0012】このようなダイヤグラムまたはグラフによ
って、関数の変数の全ての組合せを極めて完全に且つ簡
潔に表示することができる。占められるメモリスペース
はテーブルと比較してより少なく、2進決定グラフ形式
で示された関数に対する処理時間ははるかに高速であ
る。
【0013】更に、各ノードはプロセッサの1メモリワ
ードに含まれる情報を使用して表され得るが故に、2進
決定グラフはプロセッサを用いての自動処理に特に有用
である。
【0014】2進決定ダイヤグラムへの異なるアプロー
チも考えられている。RandalE.Bryant
は、“IEEE Transactions on C
omputers”,Volume C−35,No.
8,1986年8月の公報に、関数中に現れる変数の種
々の組合せを極めて簡潔に、しかし完全に表わすグラフ
を得るために、変数、即ちノードをどのように並べ得る
かを示した。
【0015】しかしながら、かかるグラフでは、このよ
うに表される関数に考え得る全ての操作を効果的にまた
は迅速に実施することはできない。実際、幾つかのタイ
プの分析には関数のプライムインプリカントの計算が必
要である。例えばこれは、確率調査、ルート事象の出現
または任意の他のタイプの事象分析を実施する場合に当
てはまる。
【0016】関数のインプリカントは、その関数を含意
する積である。更に、関係PはPを“含む”(即ちP⇒
P’)が真であるならば、第1積Pは第2積P’を“含
む”。更に、プライムインプリカントとは、それを含む
他のインプリカントのないインプリカントである。
【0017】2進決定ダイヤグラムをそのルートから終
点葉まで進むことにより、その関数のプライムインプリ
カントが何であるか直接決定することができる。
【0018】最近の方法は、関数を与える2進決定ダイ
ヤグラムからその関数のプライムインプリカントを暗黙
的に計算するように勘案されている。
【0019】著書は本出願の発明者である、本出願人名
義の1991年11月の公報には、関数のプライムイン
プリカントを暗黙的に決定し得る幾つかの方法が与えら
れている。
【0020】かかる方法は、著書らによって設定された
規則を使用し、積に現れる命題変数、例えばXnに従属
する各リテラルを、他の2組の変数、即ち出現変数On
と称される第1変数と、符号変数Snと称される第2変
数とによって与えることにより、2進決定ダイヤグラム
を変換することからなる。
【0021】表現は単純である。もし関連出現変数がゼ
ロであるならば、これは、命題変数が積を得る上で無関
係であることを意味しており、この場合、関連の符号変
数の値は無意味である。出現変数が肯定、即ち2進値
“1”を有するならば、これは、関連命題変数の存在ま
たは不在が結果に有意であり、関連の符号変数は、対応
する命題変数が存在する(規約によればこの場合には符
号変数=1である)かまたは不在である(規約によれば
符号変数=0である)かを示す。
【0022】上記公報において開発された規則は、同じ
変数の積が幾つかの表現を有し得るという事実を考慮
し、“超積(meta−product)”の概念を導
入している。
【0023】実際、例えばn=4に対して、積{x2
3*・x4}は、積の標準的表現を与える出現及び符号
変数の2組の集合[(0111),(1101)]及び
[(0111),(0101)]によって表され得る。
【0024】従って、種々の積の集合は、基準対の素集
合(prime set)によって表され得る。この集
合における全ての対の論理和を求めることにより、“超
積”を構成する対の2次集合を得る。これは、積の集合
の標準的表現である。
【0025】設定規則を用いて2進決定ダイヤグラムの
ようなダイヤグラムを作製することにおいて出現及び符
号変数を使用すると、プライムインプリカントの集合の
暗黙表現を与える結果となる。ルートラベルから出発し
て論理値“1”を有する終点葉で終わる各経路は、ある
ときは出現変数に従属する肯定の枝または否定の枝に沿
って進み、あるときは符号変数に従属する肯定の枝また
は否定の枝に沿って進む。経路上の所与の出現変数(O
i)の否定枝に沿って進むことは、対応する命題変数
が、問題のプライムインプリカントを構成する積に関与
しないことを意味する。
【0026】しかしながら、上記公報に与えられた規則
は、自動用途には必ずしも最も適しているわけではな
い。
【0027】実際、それ自体が低値部分枝及び高値部分
枝からなる低値枝及び高値枝が出ているルート変数を有
する2進決定ダイヤグラムの形式で表された関数のプラ
イムインプリカントを計算するには、低値枝のプライム
インプリカントを計算すること、高値枝のプライムイン
プリカントを計算すること、そして低値枝及び高値枝の
論理積を与える関数のプライムインプリカントを計算す
ることが必要である。そうして、最終計算には、このよ
うに計算したプライムインプリカントを組合わせる集合
演算を必要とする。これには再帰計算を平行して行なう
ことが前提であり、主枝のプライムインプリカントを得
るためには、各部分枝のプライムインプリカントを計算
し、次いでそれらを組合わせることが必要である。
【0028】種々の枝及び部分枝が構造において相互に
対称であるならば、上記一連の決定に必要な集合演算
(論理和、論理積、補数計算など)は、実施に問題はな
い。順位付けが適正に行われないと、これらの必須の組
合せは作られない。
【0029】変数を対称的に順位付けする必要性によっ
て、この方法はメモリをかなり使用することになり、自
動的に実施するのは困難である。場合によっては、サイ
ズの上ではかなりのものである中間暗黙表現が得られ、
対称を維持するために、一連の計算が終了する前に装置
のメモリが飽和し得、メモリが十分であったとしても、
余剰な情報やプライムインプリカントを決定するのに不
必要な情報によって最終表現のサイズは極めて大きくな
る。
【0030】装置のメモリが、プライムインプリカント
の暗黙表現を確定するのに十分な程度まで余剰を削減す
るようにプライムインプリカントを単純化することが尚
考えられる。これは難しいことであり、所定のケースで
は不可能でもあり得る。
【0031】
【課題を解決するための手段】本発明の目的は、従来技
術の欠点をもたない、プロセッサのメモリ内に形成され
た2進決定ダイヤグラムから関数のプライムインプリカ
ントを暗示するための方法を提供することである。
【0032】本発明によれば、データ処理装置を使用
し、該装置のメモリゾーン内に最初は2進決定ダイヤグ
ラムを形成する情報の形式で与えられたブール関数
(f)のプライムインプリカントの暗黙表現(PRIM
E(f))を、該装置の別のメモリゾーン内に自動的に
生成する方法は、前記ダイヤグラムを再帰的に通る経路
をとって中間要素を決定し、次いで各再帰のあとに中間
要素を組み合わせることにより、前記情報から暗黙表現
を生成することからなり、前記中間要素の各々が、決定
ダイヤグラムの命題変数(x1,・・・,xn)の各々に
対応する出現変数(O1,・・・,On)及び符号変数
(S1,・・・Sn)を使用しており、中間要素をそれが
生成された時点で正規化してメモリ使用量を少なくする
手段と、正規化した後に中間エレメンを組み合わせる手
段とを使用することを特徴とする。
【0033】正規化は、中間体の生成において生じるパ
ラメータまたは要素の値を判定及び/または比較し、判
定または比較の結果に従って、それらが構築される前に
単純化中間体を形成することからなる。この方法によっ
てメモリを煩わすのが避けられる。しかしながら、所定
のケースにおいては中間体間の対称性が失われ、中間体
の構築には、それらを組み合わせる特別の関数の使用が
必要となる。
【0034】本発明は、プライムインプリカントに必要
な要素のみを含むプライムインプリカントの暗黙表現を
実際に与える2進決定ダイヤグラムの形式を有する構造
体を構築することができ、従ってメモリ使用量を少なく
するので特に有利である。決定は、このように形成され
た構造体のルート変数から出発し、その値が“1”であ
る終点葉で終わる種々の経路に沿って進むことにより行
われる。
【0035】添付の図面を参照する以下の詳細説明か
ら、本発明はより十分に理解されよう。
【0036】
【実施例】上述したように、命題変数は、関連する出現
変数及び符号変数の集合を使用して表わすことができ
る。
【0037】従って次に、出現変数On及び符号変数Sn
と組合わされ得る命題変数xnを考える。
【0038】図1は、3つの命題変数x1、x2、x3
現れる関数の2進決定ダイヤグラムを示す。
【0039】図1に示した例においては、ラベルx1
よって識別される第1変数はグラフのルートである。こ
の変数は2つの枝を有しており、そこから第1枝は左下
に、第2枝は右下に出ている。左側の枝は低値枝と称さ
れ、右側の枝は高値枝と称される。低値枝及び高値枝を
含むルート単位は、ダイヤグラムの第1ノードを構成し
ている。
【0040】低値枝及び高値枝の各々は、ラベルx2
識別される第2変数を終点に有する。この第2枝にも低
値枝及び高値枝が従属しており、別のノードを形成して
いる。
【0041】別の変数の低値枝に従属するラベル(また
は変数)と、枝と、葉とからなる集合は、Lでマークさ
れた該変数の低値部分と称されるものを構成する。変数
の高値枝に従属する集合はHでマークされた該変数の高
値部分を構成する。
【0042】変数x1の高値部分は、ルートが変数x2
あり、低値部分が葉0であり、高値部分が値1の葉であ
るノードから出発している。
【0043】木の枝をルートから値“1”の葉に向かっ
て進むと、x2が0であり且つ同時にx1が0であるか、
またはx1が0であり且つ同時にx2が1でありx3が1
であるときに与えられた関数は1であることが決定され
得る。
【0044】先のことは、ルートx1に従属する低値枝
を進むことからでも推論される。
【0045】更に、ルートx1に従属する高値部分か
ら、x1及びx2が同時に1であるときに関数もまた1で
あることを推論し得る。
【0046】先の結果として、与えられた関数は、 f=x1*x2*+x1*x23+x12 と書くことができる。
【0047】2進決定ダイヤグラムの構成は、図1に示
したように、本発明の課題ではない公知の設定規則に従
う。これらは、Randal E.Eryantによる
上述の公報に記載されている。
【0048】変数に従属する高値部分と低値部分との間
には、これらの高値部分と低値部分との間の論理演算を
難なく実施し得る所定の対称性があることが判る。かか
る2進決定ダイヤグラムによって与えられる関数のプラ
イムインプリカントの暗黙的決定にはこの種の演算が必
要であることも判る。
【0049】図2は、図1に与えた関数の2進決定ダイ
ヤグラムを形成する情報を含むコンピュータメモリがど
のように構成されているかを示す。但し、これは限定的
ではない。
【0050】公知の方法においては、メモリはワードに
構成されており、各ワードは絶対アドレスまたは相対ア
ドレスADnによって規定されている。
【0051】2進決定ダイヤグラムを与えるために、各
ワードは少なくとも4つのフィールド、即ち第1フィー
ルドVAR、第2フィールドINDL、第3フィールド
INDH及び第4フィールドGESTに分割され得る。
【0052】ワードの第1フィールドVARは、関数の
命題変数、例えばXnのタイプ及び順位を示す情報を含
んでいる。
【0053】第2フィールドINDLは、対応する変数
の低値枝がノードを終点に有するかまたは葉を終点に有
するかを示している。
【0054】第3フィールドINDHは、対応する変数
の高値枝が葉を終点に有するかまたはノードを終点に有
するかを示している。
【0055】第4フィールドGESTは、例えば、異な
るアドレス間を移動する際にメモリを使用するのに必要
な管理パラメータを含んでいる。
【0056】より正確には、第2及び第3フィールドは
次のように補足することできる:ワード内に含まれる命
題変数に従属する低値枝が葉を終点と場合には、図2に
示した所定のケースのように、その第2フィールドはそ
の葉の値についての情報“Val0”または“Val
1”を含む。
【0057】また、命題変数に従属する低値枝がノード
を終点に有する場合には、第2フィールドINDLは、
そのノードが書込まれているワードのメモリアドレスの
値を含む。
【0058】第3フィールドINDHは、第2フィール
ドと同様に、変数に従属する高値枝の終点にノードを有
するか葉を有するかによって、必要に応じてアドレスま
たは値を含む。
【0059】第4フィールドGESTは、既に取られた
経路を示す管理パラメータ、またはメモリの管理及び使
用に必要な任意の他のタイプの情報を含む。
【0060】アドレスAd1に割り当てられたワードか
ら出発してメモリ全体を移動しながら、処理システム
は、関数が“1”となる積を再構成し得る。即ち処理シ
ステムは、木及びその種々のノードを再構成し得る。
【0061】しかしながら、2進決定ダイヤグラム内を
移動するか又はメモリ内を移動しても関数のプライムイ
ンプリカントを見いだすことはできないことに留意され
たい。本発明によれば、ブール関数の2進決定ダイヤグ
ラムを使用して、関数のプライムインプリカントを暗黙
的に与えるダイヤグラムを生成し得る。
【0062】明瞭化のため、2進決定ダイヤグラムには
(x1,・・・,xn)を使用し、そのプライムインプリ
カントのダイヤグラムには対応する出現変数(O1,・
・・,On)及び符号変数(S1,・・・,Sn)を使用
して考える。
【0063】更に変数は、x1<x2<・・・<xn及び
1<S1<O2<S2<・・・<On<Snの順位を有する
と仮定する。
【0064】プライムインプリカントの暗黙表現のため
のダイヤグラムを見付けるのに必要な変換を行なうと、
ノードを構成することになる。
【0065】規約によって以下の説明においては、式:
y=Nd(x,L,H)は、処理システムがそのメモリ
内に、ラベルが変数xであり、左側の枝つまり低値枝が
Lであり、右側の枝つまり高値枝がHであるノードを構
成し、このノードを変数yによって識別することを意味
している。
【0066】更に規約によって、式:Nd(x,L,
H)=yは、ノードyをそのルートつまり変数x、左側
枝L及び右側枝Hに分解することを意味する。
【0067】処理システムは、ノードが生成されると以
下のオペレーションを実施する。
【0068】まず、処理システムは、ノードyを生成す
ると、低値枝Lが高値枝Hに等しいか判定する。そうで
あるならば、ルートがxであり、低値及び高値枝がそれ
ぞれL及びHであるノードを構成する代わりに、単にL
(またはH)からなるこれらの枝の一方を戻す。それ
は、勿論、終点葉(L=H=0または1の場合)または
ノードもしくはノードの集合であり得る。
【0069】LがHとは異なる場合には、システムはメ
モリ内で、構築中のノードが既にそこに存在するか検証
する。もし存在するならば、このノードを直接戻し、そ
のアドレスをメモリ内に記憶する。
【0070】ノードがメモリ内に存在しない場合には、
上述のごとくアドレスは空けたままでそのノードをメモ
リ内に構築する。
【0071】既存のノードをメモリ内に再構築すること
のない上記動作によって、メモリ及び後続オペレーショ
ン時間が節約される。
【0072】2進決定ダイヤグラムからプライムインプ
リカントの暗黙表現を構築し得る関数、即ちブール関数
(f)の変数x1,・・・,xnを有する構造をPRIM
E(f)と称する。この関数PRIME(f)によっ
て、出現変数O1,・・・,On及び符号変数S1,・・
・Snのみからなる表現を得ることができる。
【0073】まず、関数のタイプを決定する判定が行わ
れる。f=0であるならばPRIME(f)=0であ
り、f=1であるならばPRIME(f)=1である。
そうでないならば(fは0でも1でもない)、これは、
fがルートxk、低値枝L及び高値枝Hを有するノード
の形式で存在することを意味する。上述の規約を使用す
るとこれはNd(xk,L,H)=fと書くことができ
る。
【0074】この場合、後述するように再帰的である関
数PRIMEは、ノードNd(Ok,P,P’)を正規
化する関数NORMEを呼び出す。後述するように、ノ
ードNd(Ok,P,P’)のルートは、対応する2進
決定ダイヤグラムのルート変数xkに従属する出現変数
kであり、低値枝は、先行の再帰の間に構築された暗
黙表現Pであり、高値枝は、先行の再帰の間に得られた
要素を使用して構築された別の暗黙表現P’である。従
って、 PRIME(f)=NORME(Ok,P,P’) と書くことができる。
【0075】1つの好ましい実施例においては、Ok
変数であり、P及びP’が暗黙表現である関数NORM
E(Ok,P,P’)は、既に述べたように先行の再帰
の間に得られた値P及びP’についての一連の判定から
出発する。
【0076】P=P’またはP’=0であるならば、最
終結果はNORME(Ok,P,P’)=Pである。P
=0であるならば、関数NORMEによって、 NORME(Ok ,P,P’)=P’ なる結果を得ることができる。
【0077】P及びP’について先の条件のいずれも検
証されなければ、 NORME(Ok ,P,P’)=Nd(Ok ,P,
P’) で定義されるノードが得られる。
【0078】このように、P及びP’の相対値が決定さ
れた後に、正規化されたノードがメモリ内に構築され
る。これは、メモリ使用量及び処理の高速化において特
に経済的である。
【0079】図3は、関数NORMEがどのように作用
するかを示す。図の左側部分は、この関数が使用されな
かった場合に得られるノードを示している。例えば、ル
ートは出現変数Okであって、Okは、低値枝によって値
0の終点葉に接続されており、高値枝によって別のノー
ドに接続されている。この別のノードのルートはSk
低値枝はL、そして高値枝はHである。このダイヤグラ
ムに適用されるプライム関数によって呼び出される関数
NORMEによって、ルートが符号変数Skであり且つ
低値枝L及び高値枝Hを有する図3の右側に示したノー
ドを限定的に得ることができ、左側部分の表現はメモリ
内に構築されない。
【0080】値が“0”の葉に接続された左側部分の低
値枝の代わりに、高値枝と同一のノードv=Nd
(Sk,L,H)がある場合にも同じことが言える。
【0081】第1の変形例においては、P及びP’の値
について単一判定が行われる。この判定結果が否定であ
るならば、関数NORMEは、結果: NORME(Ok ,P,P’)=Nd(Ok ,P,
P’) を与える。
【0082】この変形例の第1の実施例においては、P
=P’であるかが判定される。もしそうであるならば、
与えられる結果はNORME(Ok,P,P’)=Pで
あり、そうでないならばNORME(Ok,P,P’)
=Nd(Ok,P,P’)である。
【0083】この変形例の第2の実施例においては、
P’=0であるかが判定される。もしそうであるなら
ば、結果はNORME(Ok,P,P’)=Pであり、
そうでないならばNORME(Ok,P,P’)=Nd
(Ok,P,P’)である。
【0084】この変形例の第3の実施例においては、P
=0であるかが判定される。もしそうであるならば、結
果はNORME(Ok,P,P’)=P’であり、そう
でないならばNORME(Ok,P,P’)=Nd
(Ok,P,P’)である。
【0085】P及びP’について第1条件を判定し、こ
の第1条件が検証された場合には適当な結果を与え、第
1条件が検証されなければ第2条件を与え、第2条件が
検証されなければ結果NORME(Ok,P,P’)=
Nd(Ok,P,P’)を与えるという他の変形例も考
え得る。
【0086】上記第2の変形例を使用する一連の判定は
以下のようになり得る。第1判定で例えばP=P’であ
るか判定し、もしそうならばNORME(Ok,P,
P’)=Pの結果を与え、そうでないならば第2判定で
例えばP=0であるか判定し、もしそうならばNORM
E(Ok,P,P’)=P’の結果を与え、そうでない
ならばNORME(Ok,P,P’)=Nd(Ok,P,
P’)の結果を与える。
【0087】上記2つの変形例は、これらが生成する構
造は好ましい実施モードを使用したならば正規化される
であろう点で効果が十分ではない。
【0088】しかしながら、時間を節約し得る上記変形
例は、サイズの小さいグラフに適用可能である。
【0089】正規化ノードの低値枝PはP=PRIME
(L=H)で定義される。これは、P自体が、最近記載
されている規則を適用し、2進決定ダイヤグラムによっ
て与えられる関数fの低値枝L及び高値枝Hの論理積に
おける再帰によって得られることを示している。即ち低
値枝Pは、関数の高値及び低値の2つの部分の論理積の
プライムインプリカントの暗黙表現からなる。尚、2進
決定ダイアグラムで表された2つの論理関数の論理積自
体は、Randal E. Bryantによる論文
「Graph−Based Algorithms f
or Boolean Function Manip
ulation」 (IEEE TRANSACTIO
NDS ON COMPUTERS VOL. C−
35. No8. 1986年8月)に記載されてい
る方法に従って求めることができる。
【0090】正規化ノードの高値枝P’は、 P’=Nd[Sk,MINUS{PRIME(L),P},MINUS{PRIME
(H),P}] で定義されるノードからなる。
【0091】従って、 PRIME(f)=NORME(Ok,P,Nd[Sk,MINUS{PRIME
(L),P},MINUS{PRIME(H),P}]) である。
【0092】MINUSは、得られた形式を単純化し且
つNORME関数の適用して得られた結果を先行の再帰
において考慮できるようにする中間関数である。この関
数については後述する。
【0093】NORME関数が適用されるP及びP’
は、それらの生成のために、関数fの低値枝Lのプライ
ムインプリカントPRIME(L)を暗示するダイヤグ
ラム、関数の高値枝HのプライムインプリカントPRI
ME(H)を暗示するダイヤグラム、そして最後に、関
数の高値枝及び低値枝の論理積のプライムインプリカン
トPRIME(L∧H)を暗示するダイヤグラムを事前
に構築する必要があることが判る。
【0094】上記3つのダイヤグラムPRIME
(L)、PRIME(H)及びPRIME(L∧H)の
構築には、関数fの2進決定ダイヤグラムを再帰的に一
覧することが必要である。しかしながら、従来技術で行
われていたこととは対照的に、再帰の間に構築された要
素は、特殊関数NORME及びMINUSを使用するた
めに構造中に即座に組み込まれるが故に、本発明では中
間ダイヤグラムの構築を必要としない。次に、関数NO
RME及びMINUSについて説明する。
【0095】関数NORMEは、出現変数及び符号変数
から構築された暗黙表現に適用される。
【0096】更に関数MINUSは、最初にPRIME
関数を高値枝もしくは低値枝またはこれら2つの組合せ
に適用することにより得られた暗黙表現に適用される。
【0097】結果的に、関数MINUSが作用した要素
は、ノードまたは値が0もしくは1の変数である。ノー
ドであるならば、そのルートは出現変数または符号変数
のいずれかである。
【0098】関数MINUSの結果は暗黙表現である。
【0099】P及びP’と称され得る2つ暗黙表現に適
用された関数MINUSはMINUS(P,P’)と書
くことができ、P及びP’の相対値を見いだす判定から
開始する。
【0100】P=P’またはP=0であるならば、P及
びP’に適用された関数MINUSの結果はMINUS
(P,P’)=0である。
【0101】P=1またはP’=0またはP’=1であ
るならば、関数MINUSの結果はMINUS(P,
P’)=Pである。
【0102】上記の検証条件のいずれも満足されないな
らば、ノードP及びP’は、ルートv,V’、左側また
は低値枝L,L’及び右側または高値枝H,H’に分解
され、これは前述の規約を使用してNd(v,L,H)
=P及びNd(v’,L’,H’)=P’と書くことが
できる。
【0103】2つのノードP及びP’のルート変数v及
びv’の特性及び順位を決定する判定が行われる。実
際、関数MINUSは、得られた結果に従って異なる規
則を適用する。
【0104】2つのルート変数v及びv’が出現変数で
あるならば、即ちv=Ok及びv’=Ok’であるなら
ば、順位k及びk’を決定する判定が行われる。kが
k’より小さいならば、P及びP’に適用された関数M
INUSの結果は、 MINUS(P,P')=NORME(Ok,MINUS(L),P',H) となる。
【0105】即ち、ルートが関数MINUSによって考
慮された第1ノードPのルートである変数Okであり、
ノードの左側つまり低値枝は、一方では考慮された第1
ノードPの左側枝Lに、他方では第2ノードP’に適用
された関数MINUSの結果であり、右側つまり高値枝
は、関数MINUSによって暗示された第1ノードPの
高値枝Hであるノードを正規化している。関数MINU
S自体は、得られた要素の1つがこの同じ関数を幾つか
の中間要素に適用することにより得られているので、再
帰計算を必要とすることが判る。
【0106】k=k’であるならば、関数MINUSの
結果は、ルートが変数Okであり、左側つまり低値枝
が、MINUS関数によって暗示されたノードP,P’
の低値枝L,L’にそれぞれ適用された関数MINUS
の結果であり、右側つまり高値枝が、関数MINUSに
よって暗示された2つのノードP,P’の高値枝H,
H’にそれぞれ適用された関数MINUS2の結果であ
るノードに適用された関数NORMEの結果である。。
【0107】上記関数MINUS2については後述す
る。従って、関数MINUSの結果は、 MINUS(P,P’)=NORME[Ok,MINUS(L,L'),MINUS2
(H,H')] と書くことができる。
【0108】k及びk’について判定した2つの条件の
いずれも検証されなければ、P及びP’に適用された関
数MIMUSの結果は、関数MINUSを、関数MIM
USによって暗示された第1ノードPに、及び関数MI
MUSによって暗示された第2ノードP’の低値枝L’
に適用することにより得られ、これは、 MIMUS(P,P’)=MIMUS(P,L’) と書くことができる。
【0109】変数v及びv’の特性を判定することによ
りvは出現変数であり(v=Ok)v’は符号変数であ
る(v’=Sk’)ことが明らかになった場合、k及び
k’の順位を判定する。
【0110】kがk’より小さい場合には、ルートがO
k、即ち関数MINUSによって暗示された第1ノード
Pのルート変数であり、左側つまり低値枝が、第1ノー
ドPの左側つまり低値枝L及び第2ノードP’に適用さ
れた関数MINUSの結果であり、高値つまり右側枝
が、第1ノードPの高値枝Hであるノードを正規化す
る。これは、 MINUS(P,P')=NORME(Ok,MINUS(L,P'),H) と書くことができる。
【0111】判定によりkがk’と等しいことが明らか
となった場合には、ルートが関数MINUSによって暗
示された第1ノードPの変数Okであり、低値つまり左
側枝が第1ノードPの低値枝Lであり、高値枝が、第1
ノードPの高値枝H及び第2ノードP’に適用された関
数MINUS2の結果であるノードを正規化する。これ
は、 MINUS(P,P')=NORME(Ok,L,MINUS2(H,P')) と書くことができる。
【0112】上記のk及びk’の順位についての判定が
否であった場合は、関数MINUSの結果は第1ノード
P自体である。これは、 MINUS(P,P’)=P と書くことができる。
【0113】変数v及びv’の特性についての判定から
vが符号変数であり(v=Sk )、v’が出現変数であ
る(v’=Ok ’)ことが明らかとなり得る。この場
合、kがk’より小さいと判定されたならば、関数MI
NUSの結果は関数MINUSによって暗示された第1
ノードPである。これは、 MINUS(P,P’)=P と書くことができる。
【0114】k=k’であるならば、関数MINUSの
結果は、第1ノードP及び第2ノードP’の高値つまり
右側枝H’にそれぞれ適用された関数MINUS2であ
る。これは、 MINUS(P,P’)=MINUS2(P,H’) と書くことができる。
【0115】k及びk’についての条件のいずれも検証
されなかった場合には、関数MINUSを第1ノードP
及び第2のP’の左側つまり低値枝L’に適用すること
により結果が得られる。これは、 MINUS(P,P’)=MINUS(P,L’) と書くことができる。
【0116】最後に、判定によって関数MINUSによ
って暗示された2つのノードP及びP’のルート変数v
及びv’が符号変数である(v=Sk ,v’=Sk ’)
ことが明らかとなり得る。この場合に更に、k及びk’
についての判定からkがk’と等しいことが明らかとな
ったならば、関数MINUSの結果は、ルート変数がS
k 、即ち関数MINUSによって暗示されたいずれかの
ノードのルートであり、左側つまり低値枝は、暗示され
た2つのノードP,P’の低値枝L,L’にそれぞれ適
用された関数MINUSの結果であり、高値つまり右側
枝は、暗示された2つのノードの高値つまり右側枝H,
H’に関数MINUSをそれぞれ適用することにより得
られたノードである。これは、 MINUS(P,P')=Nd[Sk,MINUS(L,L'),MINUS(H,
H')) と書くことができる。
【0117】kとk’の相関関係についての上記判定し
た条件が検証されなかった場合、関数MINUSの結果
は暗示された第1ノードPである。これは、 MINUS(P,P’)=P と書くことができる。
【0118】関数MINUSは、場合によっては、それ
自体が暗黙表現である要素に適用されるMINUS2と
称される関数を使用する必要があることは既に述べた。
【0119】かかる要素をそれぞれP及びP’と称する
と、これらの要素に適用される関数MINUS2は、 MINUS2(P,P’) と書くことができる。
【0120】この関数は、PとP’とを比較する判定か
ら開始する。PがP’と同一であることが確証されたな
ら、関数MINUS2の結果は変数“0”である。関数
MINUS2において暗示された2つのノードP及び
P’が等しいことが検証されなかった場合には、これら
2つのノードはそれぞれ、ルートSk,Sk’、左側つま
り低値枝L,L’及び高値つまり右側枝H,H’に分解
される。これは、 Nd(Sk,L,H)=P 及び Nd(Sk',L,H)=P' と書くことができる。
【0121】関数MINUS2の結果は、ルートが第1
ノードPのルート変数Skであり、低値つまり左側枝
が、関数MINUS2によって暗示された2つのノード
P,P’の各々の低値つまり左側枝L,L’に適用され
たMINUS関数の結果であり、高値つまり右側枝が、
関数MINUS2によって暗示された2つのノードP,
P’の各々の高値枝H,H’に適用されたMINUS関
数の結果であるノードである。これは、 MINUS2(P,P')=Nd[Sk,MINUS(L,L'),MINUS
(H,H')] と書くことができる。
【0122】関数MINUSは、それが適用された表現
の変数v及びv’の特性及び順位を考慮するが故に、関
数MINUS及びMINUS2によって極めて単純化さ
れた結果を得ることができる。従来技術の方法ではこの
ような単純化を達成することはできない。
【0123】図4〜図9は、図1の2進決定ダイヤグラ
ムにおけるプライムインプリカントの暗黙表現が生成さ
れる経路を順番に示すものである。
【0124】図10は、図2に関連して説明したものに
匹敵する方法を使用するという前提で、計算処理の終わ
りにプロセッサのメモリがどのように構成されているか
を示している。
【0125】上述の関数PRIMEを考えるとき、2進
決定ダイヤグラムの形式で与えられた関数のプライムイ
ンプリカントの暗黙表現を生成するためには、その関数
の高値枝及び低値枝の各々のプライムインプリカントの
暗黙表現を再帰的に生成する必要があることが判る。
【0126】関数NORME及びMINUSから生じた
単純化規則によって、適当なサイズの中間表現を得るこ
とができる。
【0127】図4は、矢印を使用して相互の関係を示し
た3つの図を示す。この図の左側部分は、図1において
円で囲まれた高値枝Hを表わす。この高値枝は、ルート
変数がx2であり、低値枝Lが変数0であり、そして高
値枝Hが変数1であるノードからなる。この枝のプライ
ムインプリカントの暗黙表現を計算するために知る必要
がある2つの枝の論理積L∧Hの結果は0である。関数
NORMEを適用すると、ノードNd(S2,0,1)
が得られ、これが、図1の2進決定ダイヤグラムの高値
部分のプライムインプリカントの暗黙表現である。この
ノードは図4の右側に示してある。
【0128】図5は、図1の2進決定ダイヤグラムの低
値部分Lを示している。この低値部分自体は、値が定数
1である低値部分Lと、ノードNd(x3,0,1)か
らなる高値部分Hとを含んでいる。低値部分Lは値が1
の定数からなるので、この図の高値部分と低値部分との
論理積L∧Hは高値部分を形成するノードを与える。即
ち、 L∧H=Nd(x3,0,1) である。
【0129】このノードの構造は、その最も近いルート
ラベルの順位において、図1における高値枝を与えるも
のと同一である。即ち、そのプライムインプリカントの
暗黙表現は、 PRIME(L∧H)=Nd(S3,0,1) である。
【0130】従って、関数NORME及びMINUSを
含む関数PRIMEを適用することによって、 PRIME(L(fig.1))=Nd[O2,Nd(S3,0,1),Nd
(S2,1,0))] からなる図5に下位部分を示した、図1のダイヤグラム
の低値部分のプライムインプリカントの暗黙表現に到達
することができる。
【0131】図6は、図1の低値枝L及び高値枝Hの論
理積を表わす図である。これは、ルートがx2であり、
低値枝が定数0であり、高値枝がノードNd(x3
0,1)であるノードを示している。後者は、図5の高
値枝または同じ図5の低値枝と高値枝の論理積と同一で
あることが判る。従って、処理システムは、メモリを一
覧して、そのプライムインプリカントの暗黙表現の計算
が既に行われていることを判定し、従ってそれを再実行
しない。
【0132】図6の要素の高値枝及び低値枝の論理積は
定数0となる。
【0133】その結果、関数NORMEは適用されない
ので、図6の要素のプライムインプリカントの暗黙表現
は図7の左側に表したものとなる。関数NORMEが存
在するために、高値枝と低値枝の論理積のプライムイン
プリカントの暗黙表現は、同じ図7の右側部分に表した
ノード、即ちノード: Nd(S2 ,0,Nd(S3 ,0,1)) である。
【0134】図8は、異なるラベルからプロットされる
同一ノード間の余剰を避ける判定を行なった場合に得ら
れる図1のダイヤグラムのプライムインプリカントの中
間暗黙表現を示している。
【0135】図8の構成は、関数PRIMEを、図4〜
図7に表された中間表現に適用することから得られる。
【0136】図8において、変数S1に従属する低値枝
を形成するノードは、関数MINUS及びMINUS2
を中間表現の所定の要素に適用した後に決定される。
【0137】結局、図8の表現は、この図の円で囲まれ
たノードNd(S3,0,1)を2回使用していること
が判る。
【0138】実際、このノードは、ラベルO2の低値枝
とラベルS2の高値枝とに関係していることが判る。こ
の理由により、このノードを2回構築するのではなくて
1回だけ構築し、ラベルS3が2つの異なる変数O2,S
2によってプロットされている図9に従う構成に到達す
る。
【0139】図9の表現は、2進決定ダイヤグラムのよ
うな概観を有する、即ちルート01から構成され、この
場合には値が0または1である終点葉を終点とする経路
を有するダイヤグラムが得られることにおいて図1のも
のと同様である。
【0140】ルートノードから出発して異なる経路を取
って、値が1の葉に向かって進むと、関連関数のプライ
ムインプリカントを見いだすことができる。
【0141】インプリカントが決定されたときに異なる
経路を記憶するためのメモリ管理が備えられている。
【0142】即ち、特定のケースでは4つの異なる経路
が見いだされ、関数のプライムインプリカントを与える
4つの積が構成され得る。
【0143】第1経路はO1*,S2,S3と読取ること
ができ、これは、出現変数O1は否であってx1は積の一
部ではなく、関連プライムインプリカントは積x23
あることを意味する。第2経路はO1,S1*,O2*,
3であり、これは要するに関連プライムインプリカン
トが積x1*x3であることを意味する。
【0144】第3経路はO1,S1*,O2,S2*であ
り、これは、関連プライムインプリカントが積x1*x2
*であることを意味する。最後に、第4経路はO1
1,S2であり、これは、関連プライムインプリカント
がx12であることを意味する。
【0145】図10は、図1及び図2に例として与えた
関数fのプライムインプリカントの暗黙表現についての
情報を受容するように設計されたメモリ部分がどのよう
に充填されるかを示している。
【0146】メモリを充填する規則は図2に関連して記
述したものと同様であると仮定する。メモリゾーン内の
アドレスAdnに割当てられた各ワードは4つのフィー
ルド、即ち、それが含む変数の特性及び順位についての
情報を受容する第1フィールドVAR、従属する低値枝
のアドレスまたは値を示す第2フィールドINDL、従
属する高値枝のアドレスまたは値を示す第3フィールド
INDH、そして最後に、例えばメモリ管理パラメータ
を含む第4フィールドGESTに分割され得る。
【0147】このメモリゾーン内の第1アドレスAd1
に割り当てられたワードは、例えば、図1の関数の高値
部Hのプライムインプリカントの暗黙表現に対応するノ
ードNd(S2,0,1)を含む。このノードについて
は図4の説明で明らかにした。アドレスAd2にある第
2ワードは、図5で明らかにしたノードNd(S3
0,1)を含む。アドレスAd3にある第3ワードは、
図1に示した関数の低値部のプライムインプリカントの
暗黙表現を与えるノードを再構成し得る情報を含む。ル
ートがO2であるこのノードについては図5の説明で明
らかにした。その低値枝はノード(S3,0,1)であ
り、その表現は既にアドレスAd2にある第2ワードに
含まれている。従って、この第3ワードの第2フィール
ドINDLは、低値枝がアドレスAd2のワードからなる
という情報を含んでおり、このことで既存のノードの再
構築を避けている。
【0148】構築されていない高値部はノードNd(S
2,1,0)からなり、アドレスAd4のワードに入れら
れ、その情報は、システムがアドレスAd4を指定し得
るように第3ワードのフィールドINDHにも入れられ
る。
【0149】アドレスAd5にある第5ワードは、図1
の高値部及び低値部の論理積を与える関数のプライムイ
ンプリカント(L∧H)の暗黙表現についての情報を含
む。
【0150】この暗黙表現は図7に表してある。それ
は、ルートが符号変数S2であり、低値部が定数0であ
り、そして高値部がノードNd(S3,0,1)である
ノードである。この高値部は既に構築されていることが
判り、それはアドレスAd2に割り当てられたワードで
ある。従って、アドレスAd5のワード内にオペレーテ
ィングシステムは、ルート変数がS2であること及びフ
ィールドINDLを適当に充填することにより低値部が
定数0からなることを示すと共に、そのINDH中に
は、その高値部が構成されるノードを見つけ出すための
アドレスAd2を指定する必要がある。
【0151】それぞれアドレスAd6及びAd7に割り当
てられた第6及び第7ワードは、図9に示した暗黙表現
の生成を終了するための情報を含む。
【0152】第6ワードはその変数フィールド内に、図
1の関数のプライムインプリカントの暗黙表現のルート
1を含む。この暗黙表現に従属する低値部は、既にメ
モリ内に書込まれている要素からなることが判る。この
情報は、既に完成されている第5ワード内に含まれてお
り、それを繰返す必要はない。従ってフィールドIND
LはアドレスAd5へのリターンを含む。
【0153】そのラベルが暗黙表現の高値部のルートで
あるノードはまだ完全には与えられておらず、この高値
部についての情報をメモリ内のアドレスAd7に書込む
必要がある。従って、アドレスAd6のフィールドIN
HはアドレスAd7への分岐を示す。そうして、アドレ
スAd7に割り当てられたワード内には、この高値部を
形成するノードのラベル、即ち変数S1を書込む。しか
しながら、このノードの低値部及び高値部は既に構築さ
れている。低値部は、アドレスAd3にある第3ワード
に書込まれているノードからなる。従って、この第7ワ
ードのフィールドINDLはこのアドレスAd3へのリタ
ーンを含む。
【0154】構築中のノードの高値部は、既に構築され
ているアドレスAd1のノードからなることが判る。
【0155】管理フィールドGESTのパラメータは、
例えば、対応するノードが暗黙表現のルートであるか中
間ノードであるかを示す。所与の時点でノードは中間表
現のルートを形成し、次いで構築物の中間要素となり得
るのであるから、このフィールドの内容は、グラフを作
製する際に変化し得ることを理解されたい。
【0156】メモリが充填されたときに、ポインタの助
けによりかかるパラメータを管理するのは処理システム
である。
【0157】図10に表されているものは、関数のプラ
イムインプリカントの暗黙表現を与えるようにメモリを
構築し得る方法の非限定的な例にすぎない。
【0158】例えば図示しない1つの変形例において
は、管理パラメータは、変化し得るが故に、各ワードに
従属するフィールド内に格納される代わりに処理システ
ムによって特定のメモリゾーン内に格納及び管理され
る。
【0159】メモリ管理に関する他の変形例は当業者の
能力内である。
【0160】本発明の実施の一部として行われる幾つか
の判定によって、従来の方法を用いて得られる表現と比
較して20分の1に縮小されたメモリスペースしか占め
ないプライムインプリカントの暗黙表現を得ることがで
きる。2進決定ダイヤグラムの定義において暗示される
変数の数が大きいほど、従来方法の使用と比較した相対
利益はより優れたものとなる。これは、2進決定ダイヤ
グラムのサイズが大きい場合にはメモリ飽和の危険性が
大きく、メモリの使用量の少ない方法を使用すべきであ
るので、本発明が実際に重要であることを示している。
【0161】付録の形式で与える以下の表は、関数PR
IME、MINUS、MINUS2をまとめて示すもの
である。
【0162】本発明の多数の変更及び変形が上記教示の
範囲内で可能である。従って、特許請求の範囲の内で、
上述の実施例及び実施態様のほかにも本発明が実現され
得ることが理解される。
【0163】付録 I.関数PRIME(f) PRIME(f)において、fは2進決定ダイヤグラム
であり、この関数PRIMEの結果はそのプライムイン
プリカントの暗黙表現である。
【0164】2進決定ダイヤグラム(f)において与え
られる関数のプライムインプリカントの暗黙表現に対す
る構築規則を決定する関係式: PRIME(f)=NORME[Ok,P,Nd(Sk,MINUS{PRIME
(L),P},MINUS{PRIME(H),P})]において、 1)f=0であるならば、PRIME(f)=0であ
り; 2)f=1であるならば、PRIME(f)=1であ
り; 3)上記いずれでもないならば、Nd(xk,L,H)
=f及びP=PRIME(L∧H)である。
【0165】II.関数NORME(x,P,P’)(好
ましい実施例) NORME(x,P,P’)において、xは変数であり、
P及びP’は暗黙表現である。
【0166】1)P=P’またはP’=0であるなら
ば、NORME(x,P,P’)=Pであり; 2)P=0であるならば、NORME(x,P,P’)
=P’であり; 3)上記いずれでもないならば、NORME(x,P,
P’)=Nd(x,P,P’)である。
【0167】III.関数MINUS(P,P’) MINUS(P,P’)〔但し、P及びP’は暗黙表現
である〕は暗黙表現を生成する。
【0168】1)P=P’またはP=0であるならば、
MINUS(P,P’)=Pであり; 2)P=1またはP’=0またはP’=1であるなら
ば、MINUS(P,P’)=Pであり; 3)上記いずれでもなく、Nd(v,L,H)=P及び
Nd(V’,L’,H’)であり、 A)v=Ok及びv’=Ok’であり、 1.k<k’であるならば、 MINUS(P,P')=NORME(Ok,MINUS(L,P’),H)で
あり; 2.k=k’であるならば、 MINUS(P,P')=NORME(Ok,MINUS(L,L’),MINUS
2(H,H'))であり; 3.上記いずれでもないならば、 MINUS(P,P’)=MINUS(P,L’)であり; B)v=Ok及びv’=Skであり、 1.k<k’であるならば、 MINUS(P,P’)=NORME(Ok,MINUS(L,P’),H)
であり; 2.k=k’であるならば、 MINUS(P,P’)=NORME(Ok,L,MINUS2(H,
P’))であり; 3.上記いずれでもないならば、 MINUS(P,P’)=Pであり; C)v=Sk及びv’=Okであり、 1.k<k’であるならば、 MINUS(P,P’)=Pであり; 2.k=k’であるならば、 MINUS(P,P’)=MINUS2(P,H’)であり; 3.上記いずれでもないならば、 MINUS(P,P’)=MINUS(P,L’)であり; D)v=Sk及びv’=Skであり、 1.k=k’であるならば、 MINUS(P,P')=Nd[Sk,MINUS(L,L'),MINUS(H,
H')]であり; 2.そうでないならば、 MINUS(P,P’)=Pである。
【0169】IV.関数MINUS2 MINUS2(P,P’)〔但し、P及びP’は暗黙表
現である〕は暗黙表現を生成する。
【0170】1)P=P’であるならば、MINUS2
(P,P’)=0であり; 2)そうではなく、Nd(Sk,L,H)=P且つNd
(Sk’,L’,H’)=P’であるならば、 MINUS2(P,P')=Nd[Sk,MINUS(L,L'),MINUS
(H,H')]である。
【0171】上述の関数MINUSのアルゴリズムは単
純化した形式でも表わし得る。
【0172】1)P=P’またはP’=0であるなら
ば、MINUS(P,P’)=0であり; 2)P=1またはP’=1またはP’=0であるなら
ば、MINUS(P,P’)=Pであり; 3)Nd(v,L,H)=P及びNd(v’,L’,
H’)=P’であり、 A)k<k’であり、 i)v=Ok(vは出現変数である)であるならば、 MINUS(P,P')=NORME[Ok,MINUS(L,P'),H]であ
り; ii)そうでないならば、 MINUS(P,P')=Pであり; B)k>k’であり、 i)v’=Ok’(v’は出現変数である)であるなら
ば、 MINUS(P,P')=MINUS(P,L')であり; ii)そうでないならば、 MINUS(P,P')=Pであり; C)v=Ok(vは出現変数である)であり、 i)v’=Ok’であるならば、 MINUS(P,P')=NORME[Ok,MINUS(L,L'),MINUS2
(H,H')]であり; ii)そうでないならば、 MINUS(P,P’)=NORME[Ok,L,MINUS2(H,P')]
であり; D)以上のいずれでもなく、 i)v’=Ok’であるならば、 MINUS(P,P')=MINUS2(P,H')であり; ii)そうでないならば、 MINUS(P,P')=Nd[Sk,MINUS(L,L'),MINUS(H,
H')]である。
【図面の簡単な説明】
【図1】ブール関数(f)の2進決定ダイヤグラムの模
式図である。
【図2】処理装置のメモリが、図1のダイヤグラムを含
む情報をどのように含んで構成され得るかを示す図であ
る。
【図3】中間要素の正規化関数を示す図である。
【図4】図1の関数(f)のプライムインプリカントの
暗黙表現を生成するステップの1つの模式図である。
【図5】図1の関数(f)のプライムインプリカントの
暗黙表現を生成するステップの1つの模式図である。
【図6】図1の関数(f)のプライムインプリカントの
暗黙表現を生成するステップの1つの模式図である。
【図7】図1の関数(f)のプライムインプリカントの
暗黙表現を生成するステップの1つの模式図である。
【図8】図1の関数(f)のプライムインプリカントの
暗黙表現を生成するステップの1つの模式図である。
【図9】図1の関数(f)のプライムインプリカントの
暗黙表現を生成するステップの1つの模式図である。
【図10】処理装置のメモリが、図1のダイヤグラムを
含む情報をどのように含んで構成され得るかを示す図で
ある。
【符号の説明】 f ブール関数 L 低値(または左側)枝 H 高値(または右側)枝 xi(i=1・・・n) 命題変数 Ok(k=1・・・n) 出現変数 Sk(k=1・・・n) 符号変数
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 PROCEEDINGS OF TH E 29TH ACM/IEEE DES IGN AUTOMATION CON FERENCE,P.36−39,O.CO UDERT ET AL.,”IMPL ICIT AND INCREMENT AL COMPUTATION OF PRIMES AND ESSENTI AL PRIMES OF BOOLE AN FUNCTIONS"

Claims (13)

    (57)【特許請求の範囲】
  1. 【請求項1】 データ処理装置を使用し、該装置のメモ
    リゾーン内に最初は2進決定ダイヤグラム(f)の形態
    で与えられたブール関数のプライムインプリカントの暗
    黙表現(PRIME(f))を、該装置の別のメモリゾ
    ーン内に生成する自動方法であって、前記ダイヤグラム
    を再帰的に移動して中間要素を決定し、各再帰のあとに
    前記中間要素を組合せることにより、前記決定ダイヤグ
    ラムを形成する情報から暗黙表現を生成することからな
    り、前記中間要素の各々が、前記決定ダイヤグラムの命
    題変数(x1,・・・,xn)の各々に対応する出現変数
    (O1,・・・,On)及び符号変数(S1,・・・,
    n)を使用し、前記中間要素が生成されたときにそれ
    らを正規化してメモリ使用量を少なくする手段と、正規
    化後の中間要素を組み合わせる手段とを使用することを
    特徴とする自動方法。
  2. 【請求項2】 前記ブール関数の2進決定ダイヤグラム
    が公知の方法においてノードNd(xk,L,H)〔こ
    こでxkはラベルまたはルート変数であり、Lは前記ラ
    ベルに従属する低値枝であり、Hは前記ラベルに従属す
    る高値枝である〕を形成しており、前記関数のプライム
    インプリカントの暗黙表現を得るために、 前記ノードをその低値枝L及び高値枝Hに分解し、 前記枝の各々のプライムインプリカントの正規化暗黙表
    現を得、 前記2つの枝の論理積に従属する2進決定ダイヤグラム
    (L∧H)を見付け出し、 前記論理積のプライムインプリカントの正規化暗黙表現
    を得、 前記正規化暗黙表現を設定規則に従って組合せて結果を
    得、 生成された結果を正規化することからなる請求項1に記
    載の方法。
  3. 【請求項3】 ノードの各枝(L,H)及びそれらの積
    (L∧H)は、最終的には論理値0または1を有する終
    点葉に達するラベル(xi)を有するノードの組合せか
    らなり得、前記枝またはそれらの積のプライムインプリ
    カントの暗黙表現を得るために、このように組合わされ
    た各ノードについて再帰的な経路をとることからなる請
    求項2に記載の方法。
  4. 【請求項4】 ルートがxkであり、低値枝がLであ
    り、そして高値枝がHである第1ノード(f)のプライ
    ムインプリカントの暗黙表現(PRIME(f))を、
    式: PRIME(f)=NORME[Ok,P,Nd(Sk,MINUS{PRIME
    (L),P},MINUS{PRIME(H),P}) ]〔式中、PRIME(0)=0,PRIME(1)=
    1であり、P=PRIME(L∧H)は、問題のノード
    の低値枝L及び高値枝Hの論理積のプライムインプリカ
    ントの暗黙表現を構成する第2ノードであり、 Nd(“変数”,A,B)は、ラベルが要素“変数”で
    あり、低値枝が要素Aであり、高値枝が要素Bであるノ
    ードを形成し、 NORMEは、ノードの正規化形式を得るための関数で
    あり、 MINUSは、2つの正規化形式に適用して暗黙表現を
    得ることのできる関数である〕に従って構築する請求項
    2または3に記載の方法。
  5. 【請求項5】 前記関数NORME(x,P,P’)
    〔但し、xは変数であり、P及びP’は2つの暗黙表現
    である〕が、前記2つの暗黙表現を比較してそれらの値
    を決定する判定を行ない、次いで前記判定の結果に従っ
    て、 P=P’またはP’=0であるならば、NORME
    (x,P,P’)=Pであり;P=0であるならば、N
    ORME(x,P,P’)=P’であり;上記のいずれ
    でもないならば、NORME(x,P,P’)=Nd
    (x,P,P’)であるという正規化結果のいずれかを
    与える請求項4に記載の方法。
  6. 【請求項6】 前記関数NORME(x,P,P’)
    〔但し、xは変数であり、P及びP’は2つの暗黙表現
    である〕が、前記2つの暗黙表現を比較してそれらの値
    を見付け出す第1判定を行ない、次いで前記判定の結果
    に従って、 P=P’であるならば、NORME(x,P,P’)=
    Pであり;そうでないならば、NORME(x,P,
    P’)=Nd(x,P,P’)であるという正規化結果
    のいずれかを与える請求項4に記載の方法。
  7. 【請求項7】 前記関数NORME(x,P,P’)
    〔但し、xは変数であり、P及びP’は2つの暗黙表現
    である〕が、前記2つの暗黙表現を比較してそれらの値
    を見付け出す第1判定を行ない、次いで前記判定の結果
    に従って、 P=0であるならば、NORME(x,P,P’)=
    P’であり;そうでないならば、NORME(x,P,
    P’)=Nd(x,P,P’)であるという正規化結果
    のいずれかを与える請求項4に記載の方法。
  8. 【請求項8】 暗黙表現を生成する前記関数MINUS
    (P,P’)〔但し、P及びP’は暗黙表現である〕
    が、前記2つの暗黙表現を比較してそれらの値を見付け
    出す第2判定を行ない、次いで前記判定の結果に従っ
    て、 P=P’または(P=0)であるならば、MINUS
    (P,P’)=0であり;P=1またはP’=0または
    P’=1であるならば、MINUS(P,P’)=P)
    であるという結果のいずれかを与える請求項4に記載の
    方法。
  9. 【請求項9】 前記第2判定の結果が、PがP’とは異
    なり、PとP’が同時には終点枝とならない、即ち2つ
    の別個のノードであることを示した場合、前記関数MI
    NUSが、 前記ノードPをそのルート(v)、低値枝L及び高値枝
    Hに分解し、 前記ノードP’をそのルート(v’)、低値枝L’及び
    高値枝H’に分解し、 前記ルート(v,v’)が出現変数であるかまたは符号
    変数であるか判定し、 それらの順位を判定し、 次いで前記2つの判定結果に従って、 A)v=Ok且つv’v’=Ok’であり、 1.k<k’であるならば、 MINUS(P,P')=NORME(Ok,MINUS(L,P'),H)で
    あり; 2.k=k’であるならば、 MINUS(P,P')=NORME(Ok,MINUS(L,L'),MINUS2
    (H,H'))であり; 3.そうでないならば、 MINUS(P,P')=MINUS(P,L')であり; B)v=Ok且つv’=Sk’であり、 1.k<k’であるならば、 MINUS(P,P')=NORME(Ok,MINUS(L,P'),H)で
    あり; 2.k=k’であるならば、 MINUS(P,P')=NORME(Ok,L,MINUS2(H,P'))で
    あり; 3.そうでないならば、 MINUS(P,P')=Pであり; C)v=Sk且つv’=Ok’であり、 1.k<k’であるならば、 MINUS(P,P')=Pであり; 2.k=k’であるならば、 MINUS(P,P')=MINUS2(P,H')であり; 3.そうでないならば、 MINUS(P,P')=MINUS(P,L')であり; D)v=Sk且つv’=Sk’であり、 1.k=k’であるならば、 MINUS(P,P')=Nd[Sk,MINUS(L,L'),MINUS(H,
    H')]であり; 2.そうでないならば、 MINUS(P,P')=Pである という結果を生成する請求項8に記載の方法。
  10. 【請求項10】 前記第2判定の結果が、PがP’とは
    異なり、PとP’は同時には終点枝とならない、即ち2
    つの別個のノードであることを示した場合、前記関数M
    INUSが、 前記ノードPをそのルート(v)、低値枝L及び高値枝
    Hに分解し、 前記ノードP’をそのルート(v’)、低値枝L’及び
    高値枝H’に分解し、 前記ルート(v,v’)が出現変数であるかまたは符号
    変数であるか判定し、 それらの順位を判定し、 次いで前記2つの判定結果に従って、 A)k<k’であり、 i)v=Ok(vは出現変数である)であるならば、 MINUS(P,P')=NORME[Ok,MINUS(L,P'),H]で
    あり; ii)そうでないならば、 MINUS(P,P')=Pであり; B)k>k’であり、 i)v’=Ok’(v’は出現変数である)であるなら
    ば、 MINUS(P,P')=MINUS(P,P')であり; ii)そうでないならば、 MINUS(P,P')=Pであり; C)v=Ok(vは出現変数である)であり、 i)v’=Ok’(v’は出現変数である)であるなら
    ば、 MINUS(P,P')=NORME[Ok,MINUS(L,L'),MINUS2
    (H,H')]であり; ii)そうでないならば、 MINUS(P,P')=NORME[Ok,L,MINUS2(H,P')]で
    あり; D)上記以外であり、 i)v’=Ok’であるならば、 MINUS(P,P')=MINUS2(P,H')]であり; ii)そうでないならば、 MINUS(P,P')=Nd[Sk,MINUS(L,L'),MINUS(H,
    H')]である という結果を生成する請求項8に記載の方法。
  11. 【請求項11】 暗黙表現を生成する前記関数MINU
    S2(P,P’)〔但しP及びP’は暗黙表現である〕
    が、前記2つの暗黙表現を比較する最終判定を行ない、
    前記判定の結果に従って、 P=P’であるならば、MINUS2(P,P’)=0
    であり; そうでないならば、ノードPをそのルート(Sk)、低
    値枝L及び高値枝Hに分解し、ノードP’をそのルート
    (Sk’)、低値枝L’及び高値枝H’に分解し、 Nd(Sk,L,H)=P及びNd(Sk’,L’,
    H’)=P’とし、従ってMINUS2(P,P’)=
    Nd[Sk,MINUS(L,L’),MINUS
    (H,H’)]である請求項9または10に記載の方
    法。
  12. 【請求項12】 前記処理システムが、新たなノードの
    パラメータを決定してから、そのノードが既にメモリ内
    に存在しているか判定し、もしそうであるならば、既に
    構築されている該ノードを再使用するためのデータをメ
    モリに入れる請求項1から11のいずれか一項に記載の
    方法。
  13. 【請求項13】 請求項1から12のいずれか一項に記
    載の方法を実施する手段を含むことを特徴とするデータ
    処理システム。
JP5103108A 1992-04-28 1993-04-28 関数のプライムインプリカントの暗黙表現を自動的に生成する方法 Expired - Lifetime JP2534190B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR929205239A FR2690541B1 (fr) 1992-04-28 1992-04-28 Procede d'elaboration automatique d'une representation implicite des impliquants premiers d'une fonction.
FR9205239 1992-04-28

Publications (2)

Publication Number Publication Date
JPH0659892A JPH0659892A (ja) 1994-03-04
JP2534190B2 true JP2534190B2 (ja) 1996-09-11

Family

ID=9429338

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5103108A Expired - Lifetime JP2534190B2 (ja) 1992-04-28 1993-04-28 関数のプライムインプリカントの暗黙表現を自動的に生成する方法

Country Status (5)

Country Link
US (1) US5434794A (ja)
EP (1) EP0568424B1 (ja)
JP (1) JP2534190B2 (ja)
DE (1) DE69329512T2 (ja)
FR (1) FR2690541B1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2697652B1 (fr) * 1992-10-30 1994-12-16 Bull Sa Procédé de détermination automatique des probabilités associées à une fonction booléenne.
ATE206223T1 (de) * 1993-09-17 2001-10-15 Bull Sa Verfahren zum automatischen beweisen
US5522063A (en) * 1993-09-27 1996-05-28 Nec Usa, Inc. Method of finding minimum-cost feedback-vertex sets for a graph for partial scan testing without exhaustive cycle enumeration
US5517506A (en) * 1994-03-28 1996-05-14 Motorola, Inc. Method and data processing system for testing circuits using boolean differences
US5602753A (en) * 1994-04-19 1997-02-11 Matsushita Electric Industrial Co., Ltd. Method and apparatus for estimating power dissipation and method and apparatus of determining layout/routing
US5805462A (en) * 1995-08-18 1998-09-08 Vlsi Technology, Inc. Automatic synthesis of integrated circuits employing boolean decomposition
US5633803A (en) * 1995-09-11 1997-05-27 Vlsi Technology, Inc. Process for the processing of specification data of logic functions of an application-specific integrated circuit
US5748490A (en) * 1995-10-26 1998-05-05 Motorola, Inc. Low power logic minimization for electrical circuits
DE19701931C1 (de) * 1997-01-21 1998-05-28 Siemens Ag Verfahren zur Detektion von Synchronizität zwischen mehreren digitalen Meßreihen mit Hilfe eines Rechners
US6389576B1 (en) * 1999-09-02 2002-05-14 Sun Microsystems, Inc. Method and apparatus for optimizing real functions in Boolean domain
US6842750B2 (en) * 2002-03-27 2005-01-11 Lsi Logic Corporation Symbolic simulation driven netlist simplification
US7735027B2 (en) * 2006-07-07 2010-06-08 Siemens Product Lifecycle Management Software Inc. Alignment of product representations
US8050986B2 (en) * 2006-07-07 2011-11-01 Siemens Product Lifecycle Management Software Inc. System and method for determining a quantity mismatch report
US20120137108A1 (en) * 2008-02-19 2012-05-31 Koch Iii Kenneth Elmon Systems and methods integrating boolean processing and memory
JP5195149B2 (ja) * 2008-08-11 2013-05-08 富士通株式会社 真偽判定方法
FR3006784B1 (fr) * 2013-06-11 2015-07-03 Inst Nat Rech Inf Automat Procede et dispositif d'elaboration automatique d'un modele de comportement d'un appareil fournissant une interface cryptographique
CN106642726A (zh) * 2016-12-28 2017-05-10 湖南坤宇网络科技有限公司 一种基于决策树系统的锅炉气体热风炉故障预警方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3764788A (en) * 1972-06-30 1973-10-09 Ibm Error checking circuit
DE3172331D1 (en) * 1981-06-25 1985-10-24 Ibm Method and device for transmitting logic signals between micro chips
US4792909A (en) * 1986-04-07 1988-12-20 Xerox Corporation Boolean logic layout generator
US5243538B1 (en) * 1989-08-09 1995-11-07 Hitachi Ltd Comparison and verification system for logic circuits and method thereof
US5237513A (en) * 1989-11-20 1993-08-17 Massachusetts Institute Of Technology Optimal integrated circuit generation

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PROCEEDINGSOFTHE29THACM/IEEEDESIGNAUTOMATIONCONFERENCE,P.36−39,O.COUDERTETAL.,"IMPLICITANDINCREMENTALCOMPUTATIONOFPRIMESANDESSENTIALPRIMESOFBOOLEANFUNCTIONS"

Also Published As

Publication number Publication date
FR2690541A1 (fr) 1993-10-29
FR2690541B1 (fr) 1994-06-17
EP0568424A1 (fr) 1993-11-03
JPH0659892A (ja) 1994-03-04
US5434794A (en) 1995-07-18
DE69329512T2 (de) 2001-05-17
EP0568424B1 (fr) 2000-10-04
DE69329512D1 (de) 2000-11-09

Similar Documents

Publication Publication Date Title
JP2534190B2 (ja) 関数のプライムインプリカントの暗黙表現を自動的に生成する方法
Cousot et al. Automatic synthesis of optimal invariant assertions: Mathematical foundations
Niedermeier et al. On efficient fixed-parameter algorithms for weighted vertex cover
US7620947B2 (en) Enhanced directed graph representation for dependency systems
Soeken et al. Embedding of large Boolean functions for reversible logic
JP3270459B2 (ja) 単一化システム及び方法
US8280836B2 (en) Converting unordered graphs to oblivious read once ordered graph representation
Arponen et al. Independent-cluster parametrizations of wave functions in model field theories. I. Introduction to their holomorphic representations
Thierry-Mieg et al. Hierarchical set decision diagrams and regular models
Thathachar On separating the read-k-times branching program hierarchy
CN109472364B (zh) 量子程序的处理方法及装置、存储介质和电子装置
Albion et al. AFLT-type Selberg integrals
Zalka Using Grover’s quantum algorithm for searching actual databases
US5796621A (en) Circuit delay abstraction tool
Rushdi et al. Derivation of all particular solutions of a ‘big’Boolean equation with applications in digital design
Larrauri et al. Limiting probabilities of first order properties of random sparse graphs and hypergraphs
Matthews Recursive function definition over coinductive types
US5905977A (en) Method for automatic demonstration
Cockx et al. Proof-relevant unification: Dependent pattern matching with only the axioms of your type theory
Hensel et al. Coalgebraic theories of sequences in PVS
CN109614140B (zh) 配置数据处理方法及装置、电子设备、存储介质
Haddad et al. Synthesis and analysis of product-form Petri nets
US5737242A (en) Method for automatically determining probabilities associated with a Boolean function
Hojati et al. Edge-Streett/edge-Rabin automata environment for formal verification using language containment
Sinha Efficient reconstruction of depth three circuits with top fan-in two

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20080627

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20090627

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20090627

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20100627

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20110627

Year of fee payment: 15

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

Free format text: PAYMENT UNTIL: 20110627

Year of fee payment: 15

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

Free format text: PAYMENT UNTIL: 20120627

Year of fee payment: 16

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

Free format text: PAYMENT UNTIL: 20130627

Year of fee payment: 17

EXPY Cancellation because of completion of term