JP3663067B2 - 論理装置の検証方法、検証装置及び記録媒体 - Google Patents

論理装置の検証方法、検証装置及び記録媒体 Download PDF

Info

Publication number
JP3663067B2
JP3663067B2 JP35869598A JP35869598A JP3663067B2 JP 3663067 B2 JP3663067 B2 JP 3663067B2 JP 35869598 A JP35869598 A JP 35869598A JP 35869598 A JP35869598 A JP 35869598A JP 3663067 B2 JP3663067 B2 JP 3663067B2
Authority
JP
Japan
Prior art keywords
state
node
transition
branch
mapping operation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP35869598A
Other languages
English (en)
Other versions
JP2000181939A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP35869598A priority Critical patent/JP3663067B2/ja
Priority to US09/309,584 priority patent/US6654715B1/en
Publication of JP2000181939A publication Critical patent/JP2000181939A/ja
Application granted granted Critical
Publication of JP3663067B2 publication Critical patent/JP3663067B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、有限状態機械でモデル化可能なもの全般の検証、例えば、順序回路やプロトコルの検証に利用可能な論理装置の検証方法及び検証装置に関する。
【0002】
【従来の技術】
順序回路やプロトコルの設計が、それらに要求される性質(プロパティ)を満たしているか否かを検証する手法として、モデル検査が知られている。これは、有限状態機械が時相論理で表現されたプロパティを満足する/満足しないことを数学的に証明するものである。
【0003】
有限状態機械の一般形式は、M=(Q、Σ、Φ、δ、λ、I)で与えられる。括弧内の各記号の意味を以下に示す。
・Q:状態の集合(有限)
・Σ:入力アルファベット(有限)
・Φ:出力アルファベット(有限)
・δ:遷移関係式
・λ:出力関係式
・I:初期状態集合
遷移関係式は、現状態、入力、次状態が与えられたときに、現状態と入力から次状態に遷移する場合があれば値として“1”、なければ“0”をとるような関数である。遷移関係式は次の状態を決める関数であるが、ある現状態と入力に対して次状態が一意に定まらないような非決定的な遷移を表現することもできる。なお、遷移が決定的である場合には、現状態、入力から次状態を求める関数として状態遷移を表すことが可能となる。出力関係式も同様に、出力が非決定的な場合にも対応する。
【0004】
原則的に、全ての順序回路は有限状態機械でモデル化できる。このため、論理装置を設計する際に、仕様として有限状態機械を用いる方法が広く用いられている。例えば、論理合成においては、装置の仕様を設計記述言語で記述した後、合成システムでその記述を有限状態機械に変換し、状態をフリップフロップ回路やレジスタで、遷移関係式δや出力関係式λを組み合わせ回路で実現する方法が一般的である。
【0005】
なお、有限状態機械の基礎理論に関しては後記参照文献1の第2章で詳しく論じられている。論理装置の検証では、論理装置の時間的動作が要求される性質(プロパティ)を満足しているかどうかを調べる。この目的で用いられる技術としては、論理シミュレーションとモデル検査を挙げることができる。
【0006】
論理シミュレーションとは、回路のモデル(設計記述言語による記述、ゲートレベルの回路図等)に対して適当な入力列を与えて動作を模擬する処理である。この際に、得られる動作がプロパティを満たしていることを確認する。
【0007】
モデル検査とは、論理装置を有限状態機械あるいは複数の有限状態機械のネットワークとしてモデル化し、モデルがプロパティを満たしているかどうかを数学的に判定するアプローチである。モデル検査に関しては、情報処理1994年9月号の特集記事(後記参照文献2,3,4,5,6)で詳しく述べられている。
【0008】
現在最も多く実用化されているモデル検査手法は、記号モデル検査法(後記参照文献7,8を参照のこと)と呼ばれるものである。記号モデル検査手法では、有限状態機械の動作を論理式で表し、検証手続きを論理関数処理で実現している。その際に、論理関数の表現形式として二分決定グラフ(BDD:Binary Decision Diagram ;後記参照文献9,10,11,12,13を参照のこと)を用いている。膨大な状態数を持つ有限状態機械を取り扱うためには、論理関数を用いた非明示的な表現手法とBDDを用いた効率的な論理関数処理が不可欠となっている。
【0009】
図16は従来の技術の説明図であり、有限状態機械の例を示す。前記モデル検査手法の内、記号モデル検査手法は、Kripke構造の論理装置モデルを論理関数を用いて表現し、計算木論理(Computation Tree Logic:CTL)で表された仕様を満足する空でない状態集合が存在するか否かを検査することにより、論理装置のモデルが仕様を満足するか否かを検証する手法である。
【0010】
ここで、Kripke構造とは、状態の有限集合Sと、状態の遷移関係Rと、初期状態点の集合Siと、各状態で真となる原始命題の集合Lとを用いて、次式のように表される非決定的有限オートマトンの一種である。
【0011】
K=(S、R、Si、L)
また、計算木論理は、時相論理の一種であり、通常の論理演算に加えて、全称を表す演算子A、存在を表す演算子Eとともに、「いつか」を表す時相演算子F、「いつも」を表す時相演算子G、「次に」を表す時相演算子X、及び「まで」を表す時相演算子Uを用いて表される。
【0012】
例えば、時相演算子AGaは、初期状態から到達可能な状態集合の全てにおいて論理式aが成立する旨を示している。この場合は、論理装置のモデルにおいて、初期状態から遷移可能な全ての道筋を辿っていき、その道筋の全てが論理式aが成立している状態にたどり着くか否かを調べれば良い。
【0013】
すなわち、記号モデル検査手法における検証作業は、Kripke構造の状態遷移を辿り、各状態において、仕様を表す計算木論理式が成立するかを確認する作業であり、この作業は、計算木論理の式を用いたモデル上の最小不動点、或いは最大不動点を求める集合演算に帰着される。
【0014】
このような集合演算は、ある状態集合{q}から1回の遷移で到達可能な状態集合を求める像計算Image ({q})と、ある状態集合{q}に1回の状態遷移で到達可能な状態集合を求める逆像計算Imagerev({q})とを組み合わせることによって実現される。
【0015】
例えば、図16のように、9つの状態q0〜q8間の状態遷移で表される有限状態機械の例において、像計算及び逆像計算を行った結果の例を、以下に示す。
【0016】
Image ({q0})={q0、q1、q2、q3}
Image ({q0、q2})={q0、q1、q2、q3、q5}
Imagerev({q0})={q0、q1}
Imagerev({q5})={q1,q2,q3、q4}
図16に示した有限状態機械において、例えば、状態q8を示す論理式pを用いた時相論理AFpを検証する際には、初期状態q0から順次に像計算を繰り返し、初期状態から遷移可能な全ての道筋が状態q8に到達するか否かを調べれば良い。一方、時相論理EFpを検証する場合には、状態q8から逆像計算を繰り返して、初期状態q0に到達する道筋があるか否かを調べれば良い。
【0017】
ところで、実際の記号モデル検査法においては、集合演算を論理関数処理に置き換える手法が一般的であり、また、論理関数を二分決定グラフ(BDD)で表現することにより、論理関数処理の効率化が計られている。
【0018】
参照文献
1:J.E.Hopcroft and J.D.Ullman, Introduction to Automata Theory, Languages, and Computation, Addison-Wesley Publishing Company, 1979.
2:平石裕実、浜口政治、“論理関数処理に基づく形式的検証手法、”情報処理、vol.35, no.8, pp.710-718,1994
3:藤田昌宏、陳奔、山崎正実、“形式的検証手法の実設計への適用例、”情報処理、vol.35,no.8,pp.719-725,1994.
4:木村晋二、“形式的タイミング検証について、”情報処理、vol.35,no.8,pp726-735,1994.
5:高原厚、“プロセス代数を用いた形式的検証、”情報処理、vol.35,no8,pp.736-741,1994.
6:谷口健一、北道敦司、“代数的手法による仕様記述と設計及び検証、”情報処理、vol.35,no.2,pp.742-750,1994.
7:J.R.Burch,E.M.Clarke,K.L.McMillan,D.L.Dill, and L.J.Hwang,“Symbolic Model Checking :1020 States and Beyond,”Information and Computation,vol.98,no.2,pp.142-170,1992.
8:K.L.McMillan, Symbolic Model Checking, Kluwer Academic Publishers, 1993.
9:R.E.Bryant, “Graph Based Algorithm for Boolean Function Manipulation,”IEEE Transactions on Computers, vol.C-35,no.8,pp.677-691,1986.
10:石浦菜岐佐、“BDDとは、”情報処理、vol.34,no.5,pp.585-592,1993.
11:湊真一、“計算機上でのBDDの処理技法、”情報処理,vol.34,no.5,pp.593-599,1993.
12:渡部悦穂、久木元裕治、“BDDの応用、”情報処理、vol.34,no.5,pp.600-608,1993.
13:藤田昌宏、Edmund M. Clarke, “BDDのCADへの応用、”情報処理、vol.34,no.5,pp.609-616,1993.
【0019】
【発明が解決しようとする課題】
論理シミュレーションで確認できる動作は選択された特定の入力列に対する結果のみである。従って、状態数が多い場合、全ての動作を試すことは膨大な長さの入力列とそれに比例した計算時間を必要とすることになり、現実的には不可能である場合が多い。
【0020】
一般的に論理シミュレーションでは、確認済みの動作を数学的に記録/整理する機構がないため、全ての動作を網羅したことを判定できず、従って、ある動作が決して起こらないことを証明することはできない。
【0021】
モデル検査は有限状態機械の動作を数学的に網羅する。ところが状態数が多く遷移の複雑な有限状態機械に対しては、計算機のメモリ使用量または計算時間の増大により、現実的には動作の確認が実行不可能となる場合が少なくない。これは、記号モデル検査においては、遷移関係を表すBDDの規模や、論理関数処理の途中で生成されるBDDの規模の問題となって現れる。BDDの規模はBDDのノード数で計ることができるが、最悪の場合、変数に対して指数オーダで増大する可能性がある。
【0022】
本出願人が、以前に出願した特願平9−45114号あるいは特願平10−1364号の発明は、検証手続きの途中で状態集合を分割することでBDD規模増大の問題を解決するものである。しかしながら、上記先願の発明は、ある特定の種類のプロパティに対する検証方式であり、適用範囲は現実の問題に対して十分ではなかった。
【0023】
本発明の課題は、順序回路などの論理装置を有限状態機械でモデル化して検証する場合に、状態数の大きい論理装置を、メモリ容量や計算時間を適切に調整しながら有効に検証しうる論理装置の検証方法及び装置を提供することである。
【0024】
【課題を解決するための手段】
本発明の論理装置の検証方法は、(a)検証対象の論理装置をモデル化した有限状態機械が満たすべき目的のプロパティを表す、有限長または無限長の遷移系列の集合を、遷移関係式でラベル付けされた、有向枝グラフに変換し、該有向枝グラフの構成情報を第1のメモリに記憶し、(b)該有向枝グラフ上の各節点属する状態集合を第2のメモリに記憶し、(c)該有向枝グラフ状の始点側とする節点に属する状態集合を該第2のメモリから読み出し、該第1のメモリに記憶されている有向枝グラフの構成情報を参照して、写像演算を行うべき枝を選択した後、該読み出した状態集合に対して該枝に対応する写像演算を施し、(d)該写像演算の結果を該枝の終点側の節点に属する状態集合に追加して、該第2のメモリに記憶し、(e)ステップ(c)及び(d)を繰り返し実行し、該第2のメモリに記憶された状態集合を基に、該有向枝グラフの示す遷移系列の集合が実際に要素を持つか否かを判定することによって、検証対象の論理装置が目的のプロパティを満たしているか否かを検証することを特徴とする。
【0025】
本発明の論理装置の検証装置は、検証対象の論理装置をモデル化した有限状態機械が満たすべき目的のプロパティを表す、有限長または無限長の遷移系列の集合を、遷移関係式でラベル付けされた、有向枝グラフに変換し、該有向枝グラフの構成情報を記憶する第1の記憶手段と、該有向枝グラフ上の各節点に対応して、該節点に属する状態集合を記憶する第2の記憶手段と、該有向枝グラフ上の始点側とする節点に属する状態集合を該第2の記憶手段から読み出し、該第1の記憶手段に記憶されている有向枝グラフの構成情報を参照して、写像演算を行うべき枝を選択した後、該読み出した状態集合に対して該枝に対応する写像演算を施し、該写像演算の結果を該枝の終点側の節点に属する状態集合に追加して、該第2の記憶手段に記憶させる写像演算手段と、該写像演算手段の処理を繰り返し実行させ、該第2の記憶手段に記憶された状態集合を基に該有向枝グラフの示す遷移系列の集合が実際に要素を持つか否かを判定することにより、検証対象の論理装置が目的のプロパティを満たすか否かを検証する判定手段とを備えることを特徴とする。
【0026】
本発明によれば、ある枝について写像演算を行う場合に、該枝の始点側の節点の状態集合を任意に選択することができ、例えば、1つの状態についてのみ写像演算を行うとか、部分集合についてのみ写像演算を行う等の柔軟な写像演算処理を行うことができるので、検証装置の使用メモリ容量や計算時間を適切に調整しながら処理することができる。また、写像演算を有向枝グラフの枝毎に行うので、全ての枝について写像演算を終えていなくても、目的の遷移系列が発見されればそこで、処理を終了して良いので、やはり、検証装置の使用メモリ容量及び計算時間を節約することができる。従って、従来では事実上不可能であった、状態数の非常に多い論理装置についても検証を行うことが可能になる。
【0027】
【発明の実施の形態】
図1は、本発明の実施形態が適用される有限状態機械の遷移関係を示す図である。
【0028】
同図のような遷移関係を持った有限状態機械の検証を具体例として、本発明の実施形態を説明する。
【0029】
同図の例では、有限状態機械は3ビットの状態変数v1、v2、v3で構成される。以降、v1=a、v2=b、v3=c(a,b,c∈{0,1})の状態をabcと表記する。この有限状態機械は000〜111の8つの状態を持っている。説明を簡単にするため、ここでは入力を省略し、次状態は現状態に応じて非決定的に選ばれるものとしている。例えば、現状態が000であれば、次状態は100もしくは111となる。また、現状態が010であれば、次状態は必ず000である。なお、この有限状態機械の初期状態は000である。
【0030】
有限状態機械は図1のような表で定義しても良いし、ハードウェア記述言語で定義しても良い。有限状態機械の遷移関係は明示的に(表形式のまま)保持しても良いし、BDD等を使って非明示的に(関数の形で)保持しても良い。
【0031】
ここでは、図1の有限状態機械に対し、次のように定義される遷移系列の集合Sに要素(実例)が存在するか否かを調べる場合について考える。
【0032】
S={s|sは、初期状態から任意の遷移の後、v1=1かつv2=0の状態を通り、以後v2=1とv2=0を交互に繰り返す無限長の遷移系列}
以下、このような遷移系列を目的のプロパティと呼ぶ。
【0033】
遷移系列の集合は正規表現またはω正規表現を使って与えても良いし、表やハードウェア記述言語などを使ったオートマトンまたはωオートマトンの記述を与えても良い。これらについては、例えば、Y.Choueka,“Theories of Automata on ω-Tapes:A Simplified Approach 、”Journal of Computer and System Sciences, vol.8,pp.117-141,1974. 、あるいは、H.Iwashita and T.Nakata,“Forward Model Checking Techniques Oriented to Buggy Designs, ”in Proc.ICCAD-97,pp.400-404,1997.に詳細が記載されている。
【0034】
図2は、上記遷移系列の集合Sを有向グラフ3表現した図である。
【0035】
遷移系列集合Sは図2のグラフ表現に変換できる。同図に示されたグラフ3は、3つの節点A、B、C、と4つの有向枝(A、A)、(A、B)、(B、C)、(C、B)から成っている。各枝には節点間における状態の写像を定義した式がラベル付けされている。例えば、枝(A、B)上のラベル“δ、10x”は、遷移関係δで到達可能な次状態のうちv1=1かつv2=0(v3は任意)を満たすものを選ぶ演算である。枝(A、A)上のラベル“δ、xxx”は遷移関係δで到達可能な次状態全てを表す。遷移系列の開始点は節点Aに対応する。節点A上の初期状態000から開始して、節点Cを無限回通る系列が、このグラフの表す遷移系列集合Sの要素である。
【0036】
図3及び図4は、図2のグラフ3に対して、本発明の実施形態に基づいてモデル検査を行う手法を説明する図である。
【0037】
グラフ3のデータ構造において、A0={000}と初期化し、枝(A、A)及び(A、B)に未処理マークを付ける(同図では太線で示されている:ステップ1)。
【0038】
次に、(A、A)または(A、B)のどちらかの未処理枝(未処理マークが付けられた枝)を選んで写像演算を行う。仮に(A、A)を選び、それにラベル“δ、xxx”に従った写像計算を施すと、図1の表から知られるように、{000}→{100、111}が得られる。この写像の結果をA0に加えると、A0の要素が増えるので、(A、A)の未処理マークはそのままとする(ステップ2)。
【0039】
再び、(A、A)を選び、ステップ2で得られた状態集合{000、100、111}に更にラベル“δ、xxx”に従った写像計算を施し、その結果をA0に加える。このとき、既にA0に記憶されている状態が二重には記憶されないように配慮し、A0に含まれていなかった結果のみをA0に加える様にする。すると、A0={000、001、011、100、101、110、111}となる(ステップ3)。その際、ステップ2で最終的に得られたA0全体について写像計算({000、100、111}→{000、001、011、100、101、110、111})をしても良いし、ステップ2における増分要素に対する写像({100、111}→{001,011,101,110})のみを計算し、その結果をA0に加えても良い。
【0040】
更に、もう一度、(A、A)を選んで、それに写像計算を実施するとA0の要素が増えないことがわかるので、(A、A)の未処理マークを消す(ステップ4)。
【0041】
この時点で、残った未処理枝は(A、B)なので、それにラベル“δ、10x”に従った写像計算を施してB0={100、101}を得る(ステップ5)。すなわち、A0の全ての要素({000、001、011、100、101、110,111})個々に対して写像計算を行い、その写像計算により得られた結果の中から「10x」(xは任意であって、“0”であるか“1”であるかを問わない)となる状態のみをB0の要素として保持する。このとき、(A、B)の未処理マークを除去し、新たに(B、C)に未処理マークを付ける。
【0042】
以下同様に処理を継続していく。ただし、節点Cを通過する度に状態集合のインデックスを1つ増やす。(図4のステップ7、ステップ9:すなわち、節点Cを始点とする写像計算が実施される毎に得られる節点Cの状態集合を別の集合として記憶するように操作する。例えば、ステップ8では、新たにC1が状態集合として付加され、ステップ9では、新たにC2が状態集合として付加されている。)
グラフ3の表す遷移系列が存在することは、次の式を満たす整数n、m(0≦n<m)が存在することと等価である。
【0043】
Cn⊆(Cn+1∪・・・∪Cm)・・・・・(1)
すなわち、節点Cでの写像計算をn回繰り返して得られた状態集合Cnが、n+1回目以降m回目までの写像計算によって得られる各状態集合Cn+1、・・・Cmの和集合にに含まれることを意味している。これは、状態集合Cnが出現してから、それ以降、m回写像計算を行うと、それらの写像計算の結果として得られる各状態集合の和の中にCnが含まれるようなになるので、節点Cにおいて、Cnに含まれる状態は、m回目以降において無限に出現する。すなわち、節点Bと節点Cの間を無限回循環する閉路が形成されていることを意味することになる。
【0044】
そして、このようなn、mを発見したとき(遷移系列あり)または未処理の枝がなくなったとき(遷移系列なし)に終了する。
【0045】
この例ではステップ10においてC0⊆(C1∪C2)が成立し、遷移系列が存在することがわかる。従って、上記した遷移系列Sが有限状態機械に存在しているので、この有限状態機械によってモデル化された順序回路やプロトコルは要求されたプロパティを備えているということができる。
【0046】
以上の例では、選ばれた枝の始点側の節点の全状態に対する写像を一度に計算しているが、1状態ずつ選んだり、部分集合を取り出して分割計算しても同じ検証結果が得られる。
【0047】
図5は、本発明の第1の実施形態の処理を示すフローチャートである。
【0048】
なお、同図のフローチャートの処理を開始する前に、順序回路等をモデル化する有限状態機械の状態遷移関係は、前述したような、表あるいはハードウェア記述言語で既に与えられているものとする。
【0049】
最初に、ステップS1で、有限長または無限長の遷移系列の集合を表現する有向グラフを作成する。この有向グラフは、検証すべき有限状態機械の満たすべきプロパティを表す。節点は該有限状態機械における状態集合に対応し、節点間は遷移の集合に対応した有向枝で結ばれる。後述するように、各節点の一つまたは複数の状態集合を記憶するための領域が、記憶装置内に設けられ、各節点は特定の状態集合(図1〜図4の説明では、{000}で)で初期化される。それぞれの枝には、始点側の状態あるいは状態集合から終点側の状態あるいは状態集合への写像を定義する遷移関係式が関連付けられる。この遷移関係式は、例えば、上記節点に対応して設けられた一定記憶領域を相互に関連付けるポインタと、どのような場合にポインタに従って、別の節点を表す記憶領域にアクセスするかを指示する条件と、節点に対応する記憶領域に記憶されている状態集合に対して写像演算を行うための、図1に示したような表、あるいは、ハードウェア記述言語で記述された状態遷移を特定する記述によって定義される。
【0050】
次に、ステップS2で、有向グラフの始点側の節点(所定の方法により、有向グラフ内の節点を順次選択するようにする)に接続されている有向枝の内、処理すべき枝を選択する。その後、この選択された有向枝の始点側の節点に属する状態集合に写像を施して結果を終点側の状態集合に追加する処理を繰り返し行う(ステップS3)。すなわち、ステップS3で、図1〜図4までの例で説明したような写像演算処理を選択された有向枝について行う。ステップS4で、特定の状態集合が有向グラフの特定の1または複数の有向枝から形成されるループを無限回循環遷移する場合や、所定の状態集合に対する写像演算の後に特定の節点に状態集合が現れるというような、遷移系列の実例を発見したか否かを判断する。ステップS4で、遷移系列の実例が発見されない場合、ステップS5で現在処理している節点に接続する有向枝の内、未処理の枝があるか否かが判断される。ステップS5で、未処理の枝があると判断された場合には、ステップS2に戻って、ステップS2〜ステップS4の処理を行う。ステップS4で、遷移系列を発見した場合には、処理を終了する(ステップS7)。また、ステップS5で、遷移系列は発見していないが、未処理の枝がなくなった場合には、遷移系列なしとして処理を終了する(ステップS6)。
【0051】
なお、有向グラフが閉路を持っていると一度写像計算を実行した枝の始点側に新たな状態が付加される場合があるが、その際にはその枝の写像計算は終了していないとみなす。
【0052】
ここで、遷移系列とは、目的のプロパティを満足する状態集合の遷移である。従って、ステップS4の遷移系列が存在するか否かという判断は、次のようなものとなる。有向グラフ内である無限循環遷移を形成することが目的のプロパティの場合には、該遷移系列として、図1〜図4で説明したように節点Bと節点Cの間で無限回循環するような状態集合を見つける。また、目的のプロパティが、ある状態集合が有向グラフの所定の節点に至るべきというものである場合には、有向グラフ上で、この状態集合に対して、写像演算を繰り返し施し、該所定の節点に何らかの状態が現れるか否かを判断する。
【0053】
第1の実施形態においては、遷移系列の存在を網羅的に調べるモデル検査を実現している。有向グラフの形を変更することで、有限長または無限長の様々な遷移系列集合について調べることができる。また、検証の結果は有向グラフの枝を選ぶ順序に依存しないため、メモリ使用量と計算時間の要求に応じて、枝の選択順序を変更できる。
【0054】
図6は、本発明の第2の実施形態の処理を説明するフローチャートである。
【0055】
この第の実施形態は、上記第1の実施形態を、始点側の状態集合の中から、1状態のみを選択する処理を行ってから写像演算を施すように変更したものである。
【0056】
ステップS10で、上記したような、目的のプロパティを表現する遷移系列集合の有向グラフ表現を作成する。次に、ステップS11で、有向グラフの節点の内の一つを選択し、この節点に接続されている有向枝の中から処理を行う枝を選択する。ステップS12で、該選択されてた有向枝の始点側の節点の記憶されている状態中から1状態を選択する。そして、ステップS13で、該選択された1状態に対して、写像演算を施し、その写像演算の結果得られた状態集合を写像先の節点に対応付けて記憶する。ステップS14で、遷移系列を発見したか否かを判断する。遷移系列が存在した場合には、ステップS17に進んで、処理を終了する。ステップS14で、遷移系列を発見しない場合には、ステップS15に進んで、現在処理している節点に接続している有向枝の内、未処理の枝があるか否かを判断する。未処理の枝があるとステップS15で判断された場合には、ステップS11〜ステップS14までの処理を繰り返し行う。そして、ステップS15で、未処理の枝がもうないと判断された場合には、ステップS16に進んで、遷移系列なしとして処理を終了する。
【0057】
本実施形態では、第1の実施形態のステップS3をステップS12,13に置き換え、始点側の状態集合の中から一つの状態のみを選択し、その単一状態に対する写像計算のみを用いるようにすることでメモリ使用量を最小化する様にしている。
【0058】
図7は、本発明の第3の実施形態の処理を説明するフローチャートである。
【0059】
この第3の実施形態においては、第1の実施形態を、始点側の状態集合から適当な大きさの部分集合を選択する処理を行ってから、該部分集合のっみに写像演算を施すように変更したものである。
【0060】
まず、ステップS20で、目的のプロパティを表現する遷移系列の集合のグラフ表現を作成する。ステップS21で、処理すべき節点の選択を行い、この節点に接続する有向枝の内、処理すべき枝を有向グラフの中から選択する。次に、ステップS22で、該選択した有向枝の始点側、すなわち、ステップS21で選択した節点の記憶されている状態集合の中から、写像演算を行う部分状態集合を選択する。ステップS23で、該選択された部分状態集合に対し、写像演算を施し、上記選択した有向枝の終点側の節点、状態集合に、上記写像演算の結果を追加記憶する。ステップS24で、目的の遷移系列がステップS23の写像演算によって得られたか否かを判断し、目的の遷移系列が得られた場合には、ステップS27に進んで処理を終了する。ステップS24で、目的の遷移系列が得られていないと判断された場合には、ステップS25に進んで、上記ステップS21で選択された節点に接続している有向枝の内、未処理のものがあるか否かを判断し、未処理の枝がある場合には、再び、上記ステップS21〜ステップS24までの処理を行う。そして、ステップS25で、未処理の枝がないと判断された場合には、目的の遷移系列が得られなかったとして、ステップS26に進み、処理を終了する。
【0061】
第3の実施形態は、有向枝の始点側の節点における写像演算を施す状態集合をそれまでに記憶されている状態集合の中の部分集合に限定することにより、第1の実施形態では得られない、メモリ使用量と計算時間の調整に関する新たな自由度を提供している。
【0062】
本発明においては、有限状態機械とそれに対する遷移系列集合を入力として、該遷移系列集合の要素実例が存在するか否かを判定する。
【0063】
上記遷移系列集合を表現する有向グラフの各節点に対応付けられた状態集合を保持するデータ構造を本発明の実施形態では「状態集合リスト」と呼ぶことにする。
【0064】
図8は、該状態集合リストの構成例を示す図である。
【0065】
同図の構成例では、状態集合リスト4はテーブル形式となっており、テーブルは3列で構成されており、各列は左から節点、「A」、「B」、「C」の状態集合のデータを格納する様になっている。またテーブルの各行は、各節点が有する状態集合を識別するインデックスに対応している。同図で、{000}が保持されている「A」の列のインデックスが「1」の行のフィールドは、状態集合A0を格納している。以下同様に、「A」の列のインデックス「1」の行のフィールドは状態集合A1を格納するようになっており、状態集合リスト4は各節点の、状態集合をインデックス毎に分けて保持するように構成されている。同図の場合は、図3のステップ1の処理後の状態を示しているので、状態集合リストはA0フィールドのみに状態集合{000}を保持しており、その他のフィールドは全て空集合となっている。
【0066】
有向グラフ上の枝と、枝にラベル付けされた写像を保持するデータ構造を本発明の実施形態では「枝リスト」と呼ぶことにする。
【0067】
図9は、枝リストの構成例を示す図である。
【0068】
同図は図2のグラフ構造を保持している枝リスト5の状態を示している。この例では、全ての写像は遷移関係式δの全体または一部分から作られたものになっているが、一般には各写像が全く無関係なものであっても構わない。
【0069】
図2の有向枝グラフから明らかなように、このグラフには、有向枝として(A、A)、(A、B)、(B、C)、及び(C、B)が存在する。これらのそれぞれの枝に対し、現状態に対応する写像の結果(次状態)をそれらに関連付けられ亜遷移関係式δを用いて算出し、該現状態と該次状態との対応の関係(遷移関係)をリスト5b〜5eにさせて記憶させる。現状態と次状態の写像関係とを登録する写像情報リスト5b〜5eと同図左上の枝管理リスト5aとは、枝管理リスト5aの写像の欄に、それぞれに対応する写像情報リスト5b〜5eへのポインタを設定することによってリンクされる。枝(A、A)上の写像は、全ての現状態を任意の次状態に写像するものであるので、写像情報リスト5bには図1の表と同じものが写像δ、xxxとして保持されている。枝(A、B)上の写像は、現状態の写像の結果として(10x)という状態だけが許されるので、写像情報リスト5cには現状態(000)、(011)、(100)に対して、(100)、(100)、(101)が次状態としてそれぞれ登録された表が写像δ、10xとして保持されている。同様に、枝(B、C)上の写像に関しては、写像情報リスト5dに同図に示すような写像δ、x1xの表が、枝(C、B)上の写像に関しては、写像情報リスト5eに同図に示すような写像δ、x0xの表が保持される。
【0070】
なお、同図では、有限状態機械の遷移関係を、表形式で保持するように説明しているが、必ずしも表形式である必要はなく、BDD等を用いて関数等により保持するようにしても良い。
【0071】
また、処理の途中で未処理マークを記憶するバッファの役割を果たすデータ構造を「イベントリスト」と呼ぶことにする。
【0072】
図10は、イベントリストの構成例を示す図である。
【0073】
イベントリスト6は(節点1,節点2、整数)の3種類の情報の組み合わせからなる未処理マークが付けられた有向枝(未処理枝)を示す要素(データ)を優先度の高い順から記憶する優先順位付きリストである。この整数は、後述する疑似コードで明らかになるように、1つの節点を何回通ったかを表す値である。イベントリスト6から要素を一つ取り出す場合は最も優先度の高いものが選ばれる。イベントリスト6に要素を登録する場合には、その要素は何らかの基準に従って決定された位置に挿入される。本実施形態の方法では、この基準に関係なく正しい遷移系列の実例を得ることができる。同図は、イベントリスト6が図3のステップS1における初期設定に対応したデータ内容を保持している様子である。イベントリスト6には、枝(A、A)及び(A、B)が、それぞれ、優先度が「0」、「1」の未処理枝として登録されている。
【0074】
図11〜図13は、図2の有向グラフに対して適用した本実施形態のアルゴリズムを示す図である。
【0075】
該アルゴリズム中で「循環節点」とは、そこを無限回通ることが遷移系列の条件となっている特別な節点である。本実施形態においては、節点Cが循環節点である。図11に示す関数CheckGraph(G )が“found ”を返せば、グラフGに対応する遷移系列が存在し、“not found”を返せば、そのような遷移系列は存在しない。
【0076】
図11は、関数CheckGraph(G )のアルゴリズムを表す疑似コードである。
【0077】
同図の処理は、図2有向グラフに目的の遷移系列が存在するか否かを判断するものである。まず、メインルーチンである関数CheckGraph(G) は、遷移系列集合Sのグラフ表現Gを入力とする。次に、前述した状態集合リスト4とイベントリスト6を初期化する。これにより、イベントリスト6及び状態集合リスト4は、図10と図8に示されたように初期化される。次に、while 文でイベントリスト6が空になるまで、以下の処理を行う。
【0078】
イベントリスト6には、初期化された状態で、処理すべき節点に接続されている未処理の枝を全て登録されているので、while 文内の処理が開始される。すなわち、まずイベントリスト6から未処理の枝に関する要素を1個取り出し、これを(X、Y、i)とする。そして、節点Xが循環節点であるか否か判断し、循環節点である場合には、i+1をjに代入する。一方、Xが循環節点でない場合には、iをjに代入する。この操作は、写像を施す節点Xが循環節点でない場合には、図3の節点Aのように、1つの状態集合に順次写像の結果得られる状態集合を加えていくことを意味している。また、写像を施す節点が循環節点である場合には、図3〜図4の節点Cに示されるように、写像の結果得られた状態集合を別の集合として保持していくことを示している。このようにして、jの値を設定した後、Yj’←Yj∪Evaluate(X、Y、i)を実行する。ここで、節点Xが循環節点でなく、かつ、循環節点と枝により接続される節点でもない第1の節点である場合には、Yjは、節点Yにおいてそれまでに得られた状態集合の和を表している。一方、節点Xが循環節点または循環節点と枝により接続される節点のような第2の節点の場合には、Yjは空集合を表している。関数Evaluateは、節点Xの有する状態集合と、節点Yの有する状態集合及び整数値iを入力として、写像計算を行い、写像の結果得られる状態集合を返す関数である。
【0079】
従って、節点Xが上記第1の節点である場合には、Yj’には、前回の写像計算で得られた節点Yにおける全ての状態集合と、今回、Evaluate関数によって写像計算された結果、節点Yについて得られた状態集合との和集合が代入される。一方、節点Xが上記第2の節点である場合には、Yj’には今回の写像が状態集合として代入される。次に、if文で、Yj’にYjが含まれるか否かを判断する。一般に、YjはYj’に含まれるが、YjとYj’が同じ場合には、当該if文の条件が成り立たないことになり、今回の写像によって新しい状態集合が生成されなかったことを示すので、上記while 文の先頭に戻って処理を繰り返す。一方、if文でYjがYj’に含まれていると判断された場合には、新しい状態集合が今回の写像演算によって生成されたので、YjにYj’を代入することにより状態集合リスト4の節点YのインデックスjのフィールドにYjを格納して、関数CycleIsFoundを呼び出して、節点Yに写像によって無限回循環する状態集合が存在するか否かを判断する。関数CycleIsFoundの戻り値が“true”であった場合には、節点Yに上記無限回循環する状態集合が存在するので、関数CheckGraphの戻り値として“found ”を出力する。一方、関数CycleIsFoundの戻り値が“true”ではなく、上記無限回循環する状態集合が存在しなかった場合には、次にforeach 文に進む。foreach 文では、節点Yからの枝の集合の中から、1つの枝(Y、Z)を選択し、(Y、Z、j)がイベントリスト6に未登録の場合には、それをイベントリスト6に登録してwhile 文の先頭に戻って上記処理を繰り返す。このイベントリスト6への要素(X、Y、j)の新規登録は、新しい節点に対する写像計算を行うための準備処理である。
【0080】
今までに述べて処理を、例えば、図3及び図4の場合を例にして具体的に説明すれば、イベントリスト6から(X,Y,i)を取り出したとき、節点Xが節点Cであり、節点Yが節点Bである場合には、節点Cが循環節点であるので、jにi+1が設定される。そして、Yi+1’にYi+1∪Evaluate(C、B、i)が代入される。そして、次にYi+1’にYi+1が含まれるかが判断される。このとき、Yi+1’とYi+1が等しい場合には、if文の条件が成立しないとして、while 文の先頭に戻って処理を繰り返す。一方、if文の条件が成立した場合には、Yj←Yj’とした後、関数CycleIsFoundによって、節点Cに無限回循環する状態集合が存在するか否かが判断される。無限回循環する状態集合が発見されなかった場合には、foreach 文で、節点Bの枝集合から1つの枝(B、C)を選択して、(B、C、i+1)が、イベントリスト6に登録されていない場合には、これをイベントリスト6に登録して、while 文の先頭に戻る。このように、節点Xとして節点Cが選択される毎に、イベントリスト6に登録される要素のインデックスが「1」ずつインクリメントするので、節点Bに対する写像によって得られる循環節点Cの状態集合は、別個の状態集合Yjとして状態集合リスト4に格納される。
【0081】
図12は、関数Evaluateの疑似コードを示す図である。
【0082】
関数Evaluateは、始点の節点Xと終点の節点Y及び、循環節点を何回循環したかを示すインデックスiとを入力とする。そして、写像情報リスト5aを参照して枝(X、Y)にラベル付けされた写像(図9の写像情報リスト5b〜5eのいずれかに該当する写像)をFに代入し、写像を施す節点Xの状態集合Xiを状態集合リスト4から取得してQに代入して、関数F(Q)の値を戻り値として返す。すなわち、節点Xの状態集合Xiに対して枝(X、Y)上の写像を行った結果(節点Yに属する状態集合)をである関数F(Q)の値を、関数値として返す。この関数F(Q)は、図9の写像情報リスト5b〜5eを参照して、状態集合Xi(=Q)に対する写像演算を行うものである。すなわち、関数F(Q)は、状態集合Xi内の各状態(現状態)に対応する状態(次状態)を写像情報リスト5b〜5eから取得して、該取得結果を戻り値として関数Evaluateに返す。
【0083】
図13は、関数CycleIsFoundの疑似コードを示す図である。
【0084】
関数CycleIsFoundは、無限回循環する状態集合が存在するか否かが判断される節点Xと、循環節点を通過した回数を示すインデックスiを入力として、図2の有向グラフに無限回循環する遷移系列が存在するか否かを判断する関数である。
【0085】
まず、節点Xが循環節点であり、かつ、iが1以上であるか否かを判断する。該判断の結果が「No」の場合、すなわち、節点Xが循環節点でない場合、または、iが0であれば、関数の戻り値として“false ”を返す。判断の結果が「Yes」の場合には、i以上のインデックスkを持つ状態集合Xkの和集合を生成し、これをQに代入する。そして、for 文により、kの値をi−1から1つずつ減少させながら、kの値が0になるまで、以下の処理を繰り返し行う。すなわち、XkがQに含まれているか否かを判断し、含まれている場合には“true”を関数の戻り値として返すが、含まれていない場合には、QとXkとの和集合を新たなQとしてfor 文のループをkの値が0になるまで繰り返す。そして、kが0になってもXk⊆Qが成り立たない場合には、関数の戻り値として“false ”を返す。このfor 文のループ処理は、前述の式(1)が成立するか否かを評価していることに対応している。すなわち、関数CycleIsFoundの戻り値が“true”の場合には、目的の遷移系列が発見されたことを示している。
【0086】
図14は、上述した図8〜図13の本発明の実施形態を実現する論理装置検証装置の構成を示すブロック図である。
【0087】
本実施形態の論理装置検証装置10は、プロパティグラフ生成部11、プロパティ検証部12、状態集合リスト記憶部13,枝リスト記憶部14、遷移関係記憶部15、及びイベントリスト記憶部16からなっている。
【0088】
まず、外部から、検証すべき順序回路等の論理装置をモデル化した有限状態機械の遷移関係を表形式あるいはハードウェア記述言語で記述したものを、遷移関係記憶部15に入力・記憶する。また、同じく外部から、上記有限状態機械の目的のプロパティ(遷移系列集合)をハードウェア記述言語などで記述したものをプロパティグラフ生成部11に入力する。プロパティグラフ生成部11は、上記入力された目的のプロパティの記述から該プロパティを表すグラフを生成する。すなわち、まず、該生成したグラフの状態集合リスト記憶部13内に各節点に対する状態集合リスト4を生成・記憶させる。次に、遷移関係記憶部15に記憶されている有限状態機械の遷移関係を参照して、該生成したグラフの各枝にラベル付けされた遷移関係(写像)を保持する枝リスト5を枝リスト記憶部14内に生成・記憶させる。プロパティ生成部1は、更に、イベントリスト記憶部16内にイベントリスト6を生成・記憶させる。
【0089】
プロパティ検証部12は、図11〜図13の疑似コードで記述されている各関数(プログラム)を解釈・実行するものであり、プロパティグラフ生成部11からグラフの検証を依頼されると、処理を開始する。プロパティ検証部12は、まず状態集合リスト記憶部13内の状態集合リスト及び、イベントリスト記憶部16内のイベントリスト6を初期化する。そして、状態集合リスト4の初期値とイベントリスト6の初期値から処理を開始し、順次処理の進行に伴ってイベントリスト記憶部16内のイベントリスト6を更新する。また、グラフ内の各節点の写像演算を行う場合には、枝リスト記憶部14内の枝リスト5を参照して、該各節点の現状態集合を次状態集合に変換する写像演算を行う。このプロパティ検証部12の動作は、上述した図11〜図13の各関数のアルゴリズムと同様であるので、詳しい説明は省略する。
【0090】
図15は、本実施形態の論理装置の検証方法をプログラムの実行により実現する場合に必要とされるコンピュータ30のハードウェア環境を示すブロック図である。
【0091】
CPU20は、バス29を介してROM21にアクセス可能であり、電源投入時にROM21からBIOS等を読み込んで入出力装置27を含むその他の構成要素の検査、初期化を行い、それらの動作を可能にする。コンピュータ30を論理装置の検証方法に専用に使用する場合には、本実施形態を実現するプログラムをROM21に記憶させて使用しても良い。RAM22には、本実施形態の論理装置の検証方法を実現するプログラムがCPU20が実行可能な形式に展開される。CPU20は、RAM22から上記プログラムを読み込み実行することにより、論理装置の検証を実施する。本実施形態の論理装置の検証方法を実現するプログラムはハードディスクなどの外部記憶装置24やフロッピーディスクやCD−ROMなどの可搬記録媒体26に記録される。記録媒体読み取り装置25は、可搬記録媒体26が装着可能で、可搬記録媒体26から該プログラムを読み出し可能な駆動装置である。
【0092】
入出力装置27は、上記プログラムの実行に際して、検証すべき論理装置をモデル化した有限状態機械の状態遷移関係の入力や該有限状態機械のプロパティを入力するための装置であり、キーボードやマウス、ディスプレイなどからなっている。通信インタフェース23は、LANやインターネットなどの通信網31を介して情報提供者28との間で通信を行うものである。本実施形態の論理装置の検証方法を実現するプログラムを、通信インタフェース23により情報提供者28から通信網31を介してダウンロードし、記憶装置24,あるいは可搬記録媒体26に一旦記憶されてから、RAM22に展開してCPU20により実行するような利用形態にしても良い。
【0093】
また、上記プログラムを情報提供者28側のコンピュータで実行するような形態にして、必要な入力データ等をコンピュータ30側から通信網31を介して送信し、情報提供者28側で上記プログラムを実行することによって得られた結果を通信網31を介して受信し、該実行結果を入出力装置27に出力させるなど、上記プログラムはネットワーク環境の下で遠隔実行させることも可能である。
【0094】
【発明の効果】
以上説明したように、本発明によれば、有限状態機械の検証すべき目的のプロパティをグラフにより表現し、該グラフの枝毎に異なる遷移関係を対応付けられるので、複数の有限状態機械の協調動作など、従来より複雑な検証問題に対応可能となる。
【0095】
また、写像計算を行うべき始点側の状態集合を任意の大きさの部分集合に設定可能であるので、メモリ使用量と計算時間のトレードオフに関して大きな自由度を与えることができる。これにより、従来の記号モデル検査手法ではメモリ使用量が限界を越える複雑な論理装置に対しても、検証可能となる。
【0096】
また、更に、遷移系列の実例が発見できた場合には、全ての状態遷移(枝)を網羅して処理する前に検証を終了することができる。
【図面の簡単な説明】
【図1】本発明の実施形態を説明するための有限状態機械の遷移関係を示す図である。
【図2】遷移系列の集合Sをグラフ表現した図である。
【図3】本発明の実施形態に基づいてモデル検査を行う手法の説明図(その1)である。
【図4】本発明の実施形態に基づいてモデル検査を行う手法の説明図(その2)である。
【図5】本発明の第1の実施形態の処理を示すフローチャートである。
【図6】本発明の第2の実施形態の処理を説明するフローチャートである。
【図7】本発明の第3の実施形態の処理を説明するフローチャートである。
【図8】状態集合リストの例を示す図である。
【図9】枝リストの例を示す図である。
【図10】イベントリストの例を示す図である。
【図11】本実施形態のアルゴリズムのメインルーチンを表す疑似コードである。
【図12】 Evaluate関数の疑似コードを示す図である。
【図13】 CycleIsFound関数の疑似コードを示す図である。
【図14】本発明の実施形態を実現する論理装置検証装置の構成を示す図である。
【図15】本実施形態の論理装置の検証方法をプログラムとして実現する場合に必要とされるコンピュータのハードウェア環境図である。
【図16】従来の技術の説明図である。
【符号の説明】
10 論理装置検証装置
11 プロパティグラフ生成部
12 プロパティ検証部
13 状態集合リスト記憶部
14 枝リスト記憶部
15 遷移関係記憶部
16 イベントリスト記憶部
20 CPU
21 ROM
22 RAM
23 通信インタフェース
24 記憶装置
25 記録媒体読み取り装置
26 可搬記録媒体
27 入出力装置
28 情報提供者
29 バス
30 コンピュータ
31 通信網

Claims (21)

  1. (a)検証対象の論理装置をモデル化した有限状態機械が満たすべき目的のプロパティを表す、有限長または無限長の遷移系列の集合を、遷移関係式でラベル付けされた、有向枝グラフに変換し、該有向枝グラフの構成情報を第1のメモリに記憶し、
    (b)該有向枝グラフ上の各節点に属する状態集合を第2のメモリに記憶し、(c)該有向枝グラフ状の始点側とする節点に属する状態集合を該第2のメモリから読み出し、該第1のメモリに記憶されている有向枝グラフの構成情報を参照して、写像演算を行うべき枝を選択した後、該読み出した状態集合に対して該枝に対応する写像演算を施し、
    (d)該写像演算の結果を該枝の終点側の節点に属する状態集合に追加して、該第2のメモリに記憶し、
    (e)ステップ(c)及び(d)を繰り返し実行し、該第2のメモリに記憶された状態集合を基に、該有向枝グラフの示す遷移系列の集合が実際に要素を持つか否かを判定することによって、検証対象の論理装置が目的のプロパティを満たしているか否かを検証する、
    ことを特徴とする論理装置の検証方法。
  2. 前記ステップ(c)において、前記第2のメモリに記憶されている前記始点側の節点に属する状態集合から1つの状態を取り出して、該状態に対してのみ写像演算を行うことを特徴とする請求項1に記載の論理装置の検証方法。
  3. 前記ステップ(c)において、前記第2のメモリに記憶されている前記始点側の節点に属する状態集合から適当な部分集合を取り出して、該部分集合に対してのみ写像演算を行うことを特徴とする請求項1に記載の論理装置の検証方法。
  4. 前記写像演算は、前記有限状態機械の状態遷移関係が登録されている表を参照して行われることを特徴とする請求項1に記載の論理装置の検証方法。
  5. 前記写像演算は、前記有限状態機械の状態遷移関係がハードウェア記述言語で記述されたものから作成される情報を用いて行われることを特徴とする請求項1に記載の論理装置の検証方法。
  6. 前記ステップ(e)の判定とは、前記有向枝グラフの特定の節点を無限回循環する遷移系列が存在するか否かを判断するものであることを特徴とする請求項1に記載の論理装置の検証方法。
  7. 前記ステップ(e)の判定とは、前記有向枝グラフの特定の節点において、状態集合が写像演算の結果、実際に得られるか否かを判断するものであることを特徴とする請求項1に記載の論理装置の検証方法。
  8. 検証対象の論理装置をモデル化した有限状態機械が満たすべき目的のプロパティを表す、有限長または無限長の遷移系列の集合を、遷移関係式でラベル付けされた、有向枝グラフに変換し、該有向枝グラフの構成情報を記憶する第1の記憶手段と、
    該有向枝グラフ上の各節点に対応して、該節点に属する状態集合を記憶する第2の記憶手段と、
    該有向枝グラフ上の始点側とする節点に属する状態集合を該第2の記憶手段から読み出し、該第1の記憶手段に記憶されている有向枝グラフの構成情報を参照して、写像演算を行うべき枝を選択した後、該読み出した状態集合に対して該枝に対応する写像演算を施し、該写像演算の結果を該枝の終点側の節点に属する状態集合に追加して、該第2の記憶手段に記憶させる写像演算手段と、
    該写像演算手段の処理を繰り返し実行させ、該第2の記憶手段に記憶された状態集合を基に該有向枝グラフの示す遷移系列の集合が実際に要素を持つか否かを判定することにより、検証対象の論理装置が目的のプロパティを満たすか否かを検証する判定手段と、
    を備えることを特徴とする論理装置の検証装置。
  9. 前記写像演算手段は、前記第2の記憶手段に記憶されている前記始点側の節点に属する状態集合から1つの状態を取り出して、該状態に対してのみ写像演算を行うことを特徴とする請求項8に記載の論理装置の検証装置。
  10. 前記写像演算手段は、前記第2の記憶手段に記憶されている前記始点側の節点に属する状態集合から適当な部分集合を取り出して、該部分集合に対してのみ写像演算を行うことを特徴とする請求項8に記載の論理装置の検証装置。
  11. 前記有限状態機械の状態遷移関係が登録されている表を記憶する状態遷移関係記憶手段を更に備え、
    前記写像演算は、該状態遷移関係記憶手段に記憶されている表を参照して行われることを特徴とする請求項8に記載の論理装置の検証装置。
  12. 前記写像演算は、前記有限状態機械の状態遷移関係がハードウェア記述言語で記述されたたものから作成される情報を用いて行われることを特徴とする請求項8に記載の論理装置の検証装置。
  13. 前記特定の条件とは、前記有向枝グラフの特定の節点を無限回循環する遷移系列が存在するか否かを判断するものであることを特徴とする請求項8に記載の論理装置の検証装置。
  14. 前記特定の条件とは、前記有向枝グラフの特定の節点において、状態集合が写像演算の結果、実際に得られるか否かを判断するものであることを特徴とする請求項8に記載の論理装置の検証装置。
  15. 論理装置が目的のプロパティを満たしているか否かを検証する処理であって、コンピュータに
    (a)検証対象の論理装置をモデル化した有限状態機械が満たすべき目的のプロパティを表す、有限長または無限長の遷移系列の集合を、遷移関係式でラベル付けされた、有向枝グラフに変換し、該有向枝グラフの構成情報を第1のメモリに記憶させ、
    (b)該有向枝グラフ上の各節点に属する状態集合を第2のメモリに記憶させ、
    (c)該有向枝グラフ上の始点側とする節点に属する状態集合を該第2のメモリから読み出させ、該第1のメモリに記憶されている有向枝グラフの構成情報を参照して、写像演算を行うべき枝を選択した後、該読み出した状態集合に対して写像演算を施させ、
    (d)該写像演算の結果を該枝の終点側の節点に属する状態集合に追加して、該第2のメモリに記憶させ、
    (e)ステップ(c)及び(d)を繰り返し実行し、該第2のメモリに記憶された状態集合を基に、該有向枝グラフの示す遷移系列の集合が実際に要素を持つか否かを判定することによって、検証対象の論理装置が目的のプロパティを満たしているか否かを検証させる、
    ことを特徴とする処理を実現させるコンピュータ読み取り可能な記録媒体。
  16. 前記ステップ(c)において、前記第2のメモリに記憶されている前記始点側の節点に属する状態集合から1つの状態を取り出して、該状態に対してのみ、写像演算を行うことを特徴とする請求項15に記載のコンピュータ読み取り可能な記録媒体。
  17. 前記ステップ(c)において、前記第2のメモリに記憶されている前記始点側の節点に属する状態集合から適当な部分集合を取り出して、該部分集合に対してのみ、写像演算を行うことを特徴とする請求項15に記載のコンピュータ読み取り可能な記録媒体。
  18. 前記写像演算は、前記有限状態機械の状態遷移関係が登録されている表を参照して行われることを特徴とする請求項15に記載のコンピュータ読み取り可能な記録媒体。
  19. 前記写像演算は、前記有限状態機械の状態遷移関係がハードウェア記述言語で記述されたものから作成される情報を用いて行われることを特徴とする請求項15に記載のコンピュータ読み取り可能な記録媒体。
  20. 前記ステップ(e)の判定とは、前記有向枝グラフの特定の節点を無限回循環する遷移系列が存在するか否かを判断するものであることを特徴とする請求項15に記載のコンピュータ読み取り可能な記録媒体。
  21. 前記ステップ(e)の判定とは、前記有向枝グラフの特定の節点において、状態集合が写像演算の結果、実際に得られるか否かを判断するものであることを特徴とする請求項15に記載のコンピュータ読み取り可能な記録媒体。
JP35869598A 1998-12-17 1998-12-17 論理装置の検証方法、検証装置及び記録媒体 Expired - Fee Related JP3663067B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP35869598A JP3663067B2 (ja) 1998-12-17 1998-12-17 論理装置の検証方法、検証装置及び記録媒体
US09/309,584 US6654715B1 (en) 1998-12-17 1999-05-11 Apparatus, method, and storage medium for verifying logical device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP35869598A JP3663067B2 (ja) 1998-12-17 1998-12-17 論理装置の検証方法、検証装置及び記録媒体

Publications (2)

Publication Number Publication Date
JP2000181939A JP2000181939A (ja) 2000-06-30
JP3663067B2 true JP3663067B2 (ja) 2005-06-22

Family

ID=18460640

Family Applications (1)

Application Number Title Priority Date Filing Date
JP35869598A Expired - Fee Related JP3663067B2 (ja) 1998-12-17 1998-12-17 論理装置の検証方法、検証装置及び記録媒体

Country Status (2)

Country Link
US (1) US6654715B1 (ja)
JP (1) JP3663067B2 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3488161B2 (ja) * 2000-01-31 2004-01-19 Necエレクトロニクス株式会社 プログラム開発装置、プログラム開発方法及びプログラム開発プログラムを記録した記録媒体
US6728665B1 (en) * 2000-03-20 2004-04-27 Nec Corporation SAT-based image computation with application in reachability analysis
US6892319B2 (en) * 2000-09-08 2005-05-10 Hewlett-Packard Development Company, L.P. Method for verifying abstract memory models of shared memory multiprocessors
US7283945B2 (en) * 2000-11-03 2007-10-16 Fujitsu Limited High level verification of software and hardware descriptions by symbolic simulation using assume-guarantee relationships with linear arithmetic assumptions
US7047139B2 (en) * 2000-12-22 2006-05-16 International Business Machines Corporation Sharing information between instances of a propositional satisfiability (SAT) problem
JP4577475B2 (ja) * 2001-07-19 2010-11-10 日本電気株式会社 同期式順序回路のプロパティ検証方法および装置
WO2003054666A2 (en) * 2001-12-19 2003-07-03 Steven Sims System and method for automated test-case generation for software
US7653520B2 (en) * 2002-07-19 2010-01-26 Sri International Method for combining decision procedures with satisfiability solvers
AU2003902388A0 (en) * 2003-05-16 2003-06-05 Canon Kabushiki Kaisha Method for Identifying Composite Data Types with Regular Expressions
JP4498167B2 (ja) * 2005-02-18 2010-07-07 キヤノン株式会社 プロパティ生成方法、検証方法及び検証装置
JP4783658B2 (ja) 2006-03-28 2011-09-28 富士通セミコンダクター株式会社 検証支援装置、検証支援方法、検証支援プログラム、および記録媒体
JP4850091B2 (ja) 2007-02-23 2012-01-11 富士通株式会社 検証シナリオ生成装置,方法,およびプログラム,並びに検証装置
JP5075695B2 (ja) * 2007-03-28 2012-11-21 株式会社東芝 プロパティ記述のカバレッジ測定装置及びプログラム
JP4947427B2 (ja) * 2007-11-07 2012-06-06 日本電気株式会社 検査時間制御装置、方法、およびプログラム
US8359561B2 (en) * 2007-12-06 2013-01-22 Onespin Solutions Gmbh Equivalence verification between transaction level models and RTL at the example to processors
JP5432069B2 (ja) * 2010-06-14 2014-03-05 ルネサスエレクトロニクス株式会社 静的検証プログラム、静的検証装置及び静的検証方法
GB2511072A (en) * 2013-02-22 2014-08-27 Ibm Non-deterministic finite state machine module for use in a regular expression matching system
US9916407B2 (en) 2013-12-05 2018-03-13 International Business Machines Corporation Phase algebra for analysis of hierarchical designs
US9268889B2 (en) 2013-12-05 2016-02-23 International Business Machines Corporation Verification of asynchronous clock domain crossings
US10318695B2 (en) 2013-12-05 2019-06-11 International Business Machines Corporation Phase algebra for virtual clock and mode extraction in hierarchical designs
US10521547B2 (en) * 2017-10-20 2019-12-31 Mentor Graphics Corporation Covergroup network analysis
DE102021101876A1 (de) * 2021-01-28 2022-07-28 Bayerische Motoren Werke Aktiengesellschaft Formale Verifikation eines Programms eines Steuergeräts

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5461573A (en) * 1993-09-20 1995-10-24 Nec Usa, Inc. VLSI circuits designed for testability and methods for producing them
CA2147536A1 (en) * 1994-06-01 1995-12-02 Gerard Johan Holzmann On-the-fly model checking with partial-order state space reduction
US5831853A (en) * 1995-06-07 1998-11-03 Xerox Corporation Automatic construction of digital controllers/device drivers for electro-mechanical systems using component models
EP0862128B1 (en) * 1997-02-28 2007-09-19 Fujitsu Limited Logical device verification method and apparatus
US6154801A (en) * 1997-07-31 2000-11-28 Advanced Micro Devices, Inc. Verification strategy using external behavior modeling

Also Published As

Publication number Publication date
US6654715B1 (en) 2003-11-25
JP2000181939A (ja) 2000-06-30

Similar Documents

Publication Publication Date Title
JP3663067B2 (ja) 論理装置の検証方法、検証装置及び記録媒体
Bloem et al. Efficient decision procedures for model checking of linear time logic properties
Clarke et al. Model checking and the state explosion problem
Pastor et al. Symbolic analysis of bounded Petri nets
Khomenko et al. Logic synthesis for asynchronous circuits based on STG unfoldings and incremental SAT
Aloul et al. Faster SAT and smaller BDDs via common function structure
CN104699883A (zh) 采用紧凑多波形表示的电路设计评估
Khomenko et al. Detecting state encoding conflicts in STG unfoldings using SAT
JPH11219378A (ja) 分解及び分割によるハードウェアの検証並びに表現方法
US6499132B1 (en) System and method for analyzing temporal expressions
Balabanov et al. Resolution proofs and Skolem functions in QBF evaluation and applications
Fernandez-Amoros et al. A scalable approach to exact model and commonality counting for extended feature models
Niemetz et al. Precise and complete propagation based local search for satisfiability modulo theories
US7475371B2 (en) Method and system for case-splitting on nodes in a symbolic simulation framework
Bertello et al. Leviathan: A new LTL satisfiability checking tool based on a one-pass tree-shaped tableau
US20030115559A1 (en) Hardware validation through binary decision diagrams including functions and equalities
JP3741544B2 (ja) 順序回路の状態探索方法および装置並びに状態探索プログラムを記録した記録媒体
Vinkhuijzen et al. Efficient implementation of LIMDDs for quantum circuit simulation
Silva et al. Mapping a logical representation of TSP to quantum annealing
JP3847774B2 (ja) 定義集合解析方法
Dong et al. Decision diagram based symbolic algorithm for evaluating the reliability of a multistate flow network
Mishchenko et al. Efficient solution of language equations using partitioned representations
Lehtinen Disjunctive form and the modal $\mu $ alternation hierarchy
Vinkhuijzen et al. Symbolic model checking with sentential decision diagrams
Minato et al. Arithmetic boolean expression manipulator using BDDs

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050307

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050315

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050325

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20080401

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090401

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090401

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100401

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110401

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110401

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120401

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130401

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20140401

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees