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

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

Info

Publication number
JP2000181939A
JP2000181939A JP10358695A JP35869598A JP2000181939A JP 2000181939 A JP2000181939 A JP 2000181939A JP 10358695 A JP10358695 A JP 10358695A JP 35869598 A JP35869598 A JP 35869598A JP 2000181939 A JP2000181939 A JP 2000181939A
Authority
JP
Japan
Prior art keywords
state
node
mapping operation
transition
branch
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
JP10358695A
Other languages
English (en)
Other versions
JP3663067B2 (ja
Inventor
Hiroaki Iwashita
洋哲 岩下
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

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)

Abstract

(57)【要約】 【課題】状態数の大きい論理装置を検証装置のメモリ容
量や計算時間を適切に調整しながら有効に検証しうる論
理装置の検証方法及び装置を提供する。 【解決手段】 最初に、論理装置をモデル化した有限状
態機械が満たすべきプロパティを表現する遷移系列集合
のグラフを作成する。次に、処理すべき節点を該グラフ
から選択し、その節点に接続している枝の1つを選ぶ。
選んだ枝の始点側の節点の状態集合に写像を施し、結果
を終点側の節点の状態集合に追加する。そして、写像の
結果、目的のプロパティを満たしている状態集合が得ら
れたか否か、すなわち、遷移系列の実例を発見したか否
かを判断する。該実例を発見した場合には、遷移系列あ
りとして処理を終了する。該実例が発見されなかった場
合には、当該節点に接続されている未処理の枝があるか
否かを判断し、ある場合には上記処理を繰り返す。未処
理の枝がない場合は、遷移系列なしとして処理を終了す
る。

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 Decisi
on Diagram ;後記参照文献9,10,11,12,1
3を参照のこと)を用いている。膨大な状態数を持つ有
限状態機械を取り扱うためには、論理関数を用いた非明
示的な表現手法とBDDを用いた効率的な論理関数処理
が不可欠となっている。
【0009】図16は従来の技術の説明図であり、有限
状態機械の例を示す。前記モデル検査手法の内、記号モ
デル検査手法は、Kripke構造の論理装置モデルを論理関
数を用いて表現し、計算木論理(Computation Tree L
ogic: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回の
状態遷移で到達可能な状態集合を求める逆像計算Imager
ev({q})とを組み合わせることによって実現され
る。
【0015】例えば、図16のように、9つの状態q0
〜q8間の状態遷移で表される有限状態機械の例におい
て、像計算及び逆像計算を行った結果の例を、以下に示
す。
【0016】 Image ({q0})={q0、q1、q2、q3} Image ({q0、q2})={q0、q1、q2、q
3、q5} Imagerev({q0})={q0、q1} Imagerev({q5})={q1,q2,q3、q4} 図16に示した有限状態機械において、例えば、状態q
8を示す論理式pを用いた時相論理AFpを検証する際
には、初期状態q0から順次に像計算を繰り返し、初期
状態から遷移可能な全ての道筋が状態q8に到達するか
否かを調べれば良い。一方、時相論理EFpを検証する
場合には、状態q8から逆像計算を繰り返して、初期状
態q0に到達する道筋があるか否かを調べれば良い。
【0017】ところで、実際の記号モデル検査法におい
ては、集合演算を論理関数処理に置き換える手法が一般
的であり、また、論理関数を二分決定グラフ(BDD)
で表現することにより、論理関数処理の効率化が計られ
ている。
【0018】参照文献 1:J.E.Hopcroft and J.D.Ullman, Introduction
to Automata Theory, Languages, and Computatio
n, Addison-Wesley Publishing Company,1979. 2:平石裕実、浜口政治、“論理関数処理に基づく形式
的検証手法、”情報処理、vol.35, no.8, pp.710-71
8,1994 3:藤田昌宏、陳奔、山崎正実、“形式的検証手法の実
設計への適用例、”情報処理、vol.35,no.8,pp.719-72
5,1994. 4:木村晋二、“形式的タイミング検証について、”情
報処理、vol.35,no.8,pp726-735,1994. 5:高原厚、“プロセス代数を用いた形式的検証、”情
報処理、vol.35,no8,pp.736-741,1994. 6:谷口健一、北道敦司、“代数的手法による仕様記述
と設計及び検証、”情報処理、vol.35,no.2,pp.742-75
0,1994. 7:J.R.Burch,E.M.Clarke,K.L.McMillan,D.L.Dill, a
nd L.J.Hwang,“Symbolic Model Checking :1020
States and Beyond,”Information and Computatio
n,vol.98,no.2,pp.142-170,1992. 8:K.L.McMillan, Symbolic Model Checking, Klu
wer Academic Publishers, 1993. 9:R.E.Bryant, “Graph Based Algorithm for Bo
olean Function Manipulation,”IEEE Transact
ions on Computers, vol.C-35,no.8,pp.677-691,198
6. 10:石浦菜岐佐、“BDDとは、”情報処理、vol.3
4,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のCA
Dへの応用、”情報処理、vol.34,no.5,pp.609-616,199
3.
【0019】
【発明が解決しようとする課題】論理シミュレーション
で確認できる動作は選択された特定の入力列に対する結
果のみである。従って、状態数が多い場合、全ての動作
を試すことは膨大な長さの入力列とそれに比例した計算
時間を必要とすることになり、現実的には不可能である
場合が多い。
【0020】一般的に論理シミュレーションでは、確認
済みの動作を数学的に記録/整理する機構がないため、
全ての動作を網羅したことを判定できず、従って、ある
動作が決して起こらないことを証明することはできな
い。
【0021】モデル検査は有限状態機械の動作を数学的
に網羅する。ところが状態数が多く遷移の複雑な有限状
態機械に対しては、計算機のメモリ使用量または計算時
間の増大により、現実的には動作の確認が実行不可能と
なる場合が少なくない。これは、記号モデル検査におい
ては、遷移関係を表すBDDの規模や、論理関数処理の
途中で生成されるBDDの規模の問題となって現れる。
BDDの規模はBDDのノード数で計ることができる
が、最悪の場合、変数に対して指数オーダで増大する可
能性がある。
【0022】本出願人が、以前に出願した特願平9−4
5114号あるいは特願平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つの状態を持っている。説明を簡単にするた
め、ここでは入力を省略し、次状態は現状態に応じて非
決定的に選ばれるものとしている。例えば、現状態が0
00であれば、次状態は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.Chouek
a,“Theories of Automataon ω-Tapes:A Simplif
ied Approach 、”Journal of Computer andSystem
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、10
1、110、111}となる(ステップ3)。その際、
ステップ2で最終的に得られたA0全体について写像計
算({000、100、111}→{000、001、
011、100、101、110、111})をしても
良いし、ステップ2における増分要素に対する写像
({100、111}→{001,011,101,1
10})のみを計算し、その結果をA0に加えても良
い。
【0040】更に、もう一度、(A、A)を選んで、そ
れに写像計算を実施するとA0の要素が増えないことが
わかるので、(A、A)の未処理マークを消す(ステッ
プ4)。
【0041】この時点で、残った未処理枝は(A、B)
なので、それにラベル“δ、10x”に従った写像計算
を施してB0={100、101}を得る(ステップ
5)。すなわち、A0の全ての要素({000、00
1、011、100、101、110,111})個々
に対して写像計算を行い、その写像計算により得られた
結果の中から「10x」(xは任意であって、“0”で
あるか“1”であるかを問わない)となる状態のみをB
0の要素として保持する。このとき、(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〜ステップS
4の処理を行う。ステップS4で、遷移系列を発見した
場合には、処理を終了する(ステップS7)。また、ス
テップS5で、遷移系列は発見していないが、未処理の
枝がなくなった場合には、遷移系列なしとして処理を終
了する(ステップS6)。
【0051】なお、有向グラフが閉路を持っていると一
度写像計算を実行した枝の始点側に新たな状態が付加さ
れる場合があるが、その際にはその枝の写像計算は終了
していないとみなす。
【0052】ここで、遷移系列とは、目的のプロパティ
を満足する状態集合の遷移である。従って、ステップS
4の遷移系列が存在するか否かという判断は、次のよう
なものとなる。有向グラフ内である無限循環遷移を形成
することが目的のプロパティの場合には、該遷移系列と
して、図1〜図4で説明したように節点Bと節点Cの間
で無限回循環するような状態集合を見つける。また、目
的のプロパティが、ある状態集合が有向グラフの所定の
節点に至るべきというものである場合には、有向グラフ
上で、この状態集合に対して、写像演算を繰り返し施
し、該所定の節点に何らかの状態が現れるか否かを判断
する。
【0053】第1の実施形態においては、遷移系列の存
在を網羅的に調べるモデル検査を実現している。有向グ
ラフの形を変更することで、有限長または無限長の様々
な遷移系列集合について調べることができる。また、検
証の結果は有向グラフの枝を選ぶ順序に依存しないた
め、メモリ使用量と計算時間の要求に応じて、枝の選択
順序を変更できる。
【0054】図6は、本発明の第2の実施形態の処理を
説明するフローチャートである。
【0055】この第の実施形態は、上記第1の実施形態
を、始点側の状態集合の中から、1状態のみを選択する
処理を行ってから写像演算を施すように変更したもので
ある。
【0056】ステップS10で、上記したような、目的
のプロパティを表現する遷移系列集合の有向グラフ表現
を作成する。次に、ステップS11で、有向グラフの節
点の内の一つを選択し、この節点に接続されている有向
枝の中から処理を行う枝を選択する。ステップS12
で、該選択されてた有向枝の始点側の節点の記憶されて
いる状態中から1状態を選択する。そして、ステップS
13で、該選択された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)上の写像は、全ての現状態を任意
の次状態に写像するものであるので、写像情報リスト5
bには図1の表と同じものが写像δ、xxxとして保持
されている。枝(A、B)上の写像は、現状態の写像の
結果として(10x)という状態だけが許されるので、
写像情報リスト5cには現状態(000)、(01
1)、(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 )が“foun
d ”を返せば、グラフGに対応する遷移系列が存在し、
“not found”を返せば、そのような遷移系列は存在し
ない。
【0076】図11は、関数CheckGraph(G )のアルゴ
リズムを表す疑似コードである。
【0077】同図の処理は、図2有向グラフに目的の遷
移系列が存在するか否かを判断するものである。まず、
メインルーチンである関数CheckGraph(G) は、遷移系列
集合Sのグラフ表現Gを入力とする。次に、前述した状
態集合リスト4とイベントリスト6を初期化する。これ
により、イベントリスト6及び状態集合リスト4は、図
10と図8に示されたように初期化される。次に、whil
e 文でイベントリスト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’←Y
j∪Evaluate(X、Y、i)を実行する。ここで、節点
Xが循環節点でなく、かつ、循環節点と枝により接続さ
れる節点でもない第1の節点である場合には、Yjは、
節点Yにおいてそれまでに得られた状態集合の和を表し
ている。一方、節点Xが循環節点または循環節点と枝に
より接続される節点のような第2の節点の場合には、Y
jは空集合を表している。関数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文の条件が成立しないとして、wh
ile 文の先頭に戻って処理を繰り返す。一方、if文の条
件が成立した場合には、Yj←Yj’とした後、関数Cy
cleIsFoundによって、節点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の状態集合X
iに対して枝(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以上であるか否かを判断する。該判断の結果が「N
o」の場合、すなわち、節点Xが循環節点でない場合、
または、iが0であれば、関数の戻り値として“false
”を返す。判断の結果が「Yes」の場合には、i以
上のインデックスkを持つ状態集合Xkの和集合を生成
し、これをQに代入する。そして、for 文により、kの
値をi−1から1つずつ減少させながら、kの値が0に
なるまで、以下の処理を繰り返し行う。すなわち、Xk
がQに含まれているか否かを判断し、含まれている場合
には“true”を関数の戻り値として返すが、含まれてい
ない場合には、QとXkとの和集合を新たなQとしてfo
r 文のループをkの値が0になるまで繰り返す。そし
て、kが0になってもXk⊆Qが成り立たない場合に
は、関数の戻り値として“false ”を返す。このfor 文
のループ処理は、前述の式(1)が成立するか否かを評
価していることに対応している。すなわち、関数CycleI
sFoundの戻り値が“true”の場合には、目的の遷移系列
が発見されたことを示している。
【0086】図14は、上述した図8〜図13の本発明
の実施形態を実現する論理装置検証装置の構成を示すブ
ロック図である。
【0087】本実施形態の論理装置検証装置10は、プ
ロパティグラフ生成部11、プロパティ検証部12、状
態集合リスト記憶部13,枝リスト記憶部14、遷移関
係記憶部15、及びイベントリスト記憶部16からなっ
ている。
【0088】まず、外部から、検証すべき順序回路等の
論理装置をモデル化した有限状態機械の遷移関係を表形
式あるいはハードウェア記述言語で記述したものを、遷
移関係記憶部15に入力・記憶する。また、同じく外部
から、上記有限状態機械の目的のプロパティ(遷移系列
集合)をハードウェア記述言語などで記述したものをプ
ロパティグラフ生成部11に入力する。プロパティグラ
フ生成部11は、上記入力された目的のプロパティの記
述から該プロパティを表すグラフを生成する。すなわ
ち、まず、該生成したグラフの状態集合リスト記憶部1
3内に各節点に対する状態集合リスト4を生成・記憶さ
せる。次に、遷移関係記憶部15に記憶されている有限
状態機械の遷移関係を参照して、該生成したグラフの各
枝にラベル付けされた遷移関係(写像)を保持する枝リ
スト5を枝リスト記憶部14内に生成・記憶させる。プ
ロパティ生成部1は、更に、イベントリスト記憶部16
内にイベントリスト6を生成・記憶させる。
【0089】プロパティ検証部12は、図11〜図13
の疑似コードで記述されている各関数(プログラム)を
解釈・実行するものであり、プロパティグラフ生成部1
1からグラフの検証を依頼されると、処理を開始する。
プロパティ検証部12は、まず状態集合リスト記憶部1
3内の状態集合リスト及び、イベントリスト記憶部16
内のイベントリスト6を初期化する。そして、状態集合
リスト4の初期値とイベントリスト6の初期値から処理
を開始し、順次処理の進行に伴ってイベントリスト記憶
部16内のイベントリスト6を更新する。また、グラフ
内の各節点の写像演算を行う場合には、枝リスト記憶部
14内の枝リスト5を参照して、該各節点の現状態集合
を次状態集合に変換する写像演算を行う。このプロパテ
ィ検証部12の動作は、上述した図11〜図13の各関
数のアルゴリズムと同様であるので、詳しい説明は省略
する。
【0090】図15は、本実施形態の論理装置の検証方
法をプログラムの実行により実現する場合に必要とされ
るコンピュータ30のハードウェア環境を示すブロック
図である。
【0091】CPU20は、バス29を介してROM2
1にアクセス可能であり、電源投入時にROM21から
BIOS等を読み込んで入出力装置27を含むその他の
構成要素の検査、初期化を行い、それらの動作を可能に
する。コンピュータ30を論理装置の検証方法に専用に
使用する場合には、本実施形態を実現するプログラムを
ROM21に記憶させて使用しても良い。RAM22に
は、本実施形態の論理装置の検証方法を実現するプログ
ラムがCPU20が実行可能な形式に展開される。CP
U20は、RAM22から上記プログラムを読み込み実
行することにより、論理装置の検証を実施する。本実施
形態の論理装置の検証方法を実現するプログラムはハー
ドディスクなどの外部記憶装置24やフロッピー(登録
商標)ディスクやCD−ROMなどの可搬記録媒体26
に記録される。記録媒体読み取り装置25は、可搬記録
媒体26が装着可能で、可搬記録媒体26から該プログ
ラムを読み出し可能な駆動装置である。
【0092】入出力装置27は、上記プログラムの実行
に際して、検証すべき論理装置をモデル化した有限状態
機械の状態遷移関係の入力や該有限状態機械のプロパテ
ィを入力するための装置であり、キーボードやマウス、
ディスプレイなどからなっている。通信インタフェース
23は、LANやインターネットなどの通信網31を介
して情報提供者28との間で通信を行うものである。本
実施形態の論理装置の検証方法を実現するプログラム
を、通信インタフェース23により情報提供者28から
通信網31を介してダウンロードし、記憶装置24,あ
るいは可搬記録媒体26に一旦記憶されてから、RAM
22に展開して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. 【請求項1】(a)検証対象の論理装置をモデル化した
    有限状態機械が満たすべき目的のプロパティを表す、有
    限長または無限長の遷移系列の集合を、遷移関係式でラ
    ベル付けされた、有向枝グラフに変換し、該有向枝グラ
    フの構成情報を第1のメモリに記憶し、 (b)該有向枝グラフ上の各節点に属する状態集合を第
    2のメモリに記憶し、 (c)該有向枝グラフ状の始点側とする節点に属する状
    態集合を該第2のメモリから読み出し、該第1のメモリ
    に記憶されている有向枝グラフの構成情報を参照して、
    写像演算を行うべき枝を選択した後、該読み出した状態
    集合に対して該枝に対応する写像演算を施し、 (d)該写像演算の結果を該枝の終点側の節点に属する
    状態集合に追加して、該第2のメモリに記憶し、 (e)ステップ(c)及び(d)を繰り返し実行し、該
    第2のメモリに記憶された状態集合を基に、該有向枝グ
    ラフの示す遷移系列の集合が実際に要素を持つか否かを
    判定することによって、検証対象の論理装置が目的のプ
    ロパティを満たしているか否かを検証する、ことを特徴
    とする論理装置の検証方法。
  2. 【請求項2】前記ステップ(c)において、前記第2の
    メモリに記憶されている前記始点側の節点に属する状態
    集合から1つの状態を取り出して、該状態に対してのみ
    写像演算を行うことを特徴とする請求項1に記載の論理
    装置の検証方法。
  3. 【請求項3】前記ステップ(c)において、前記第2の
    メモリに記憶されている前記始点側の節点に属する状態
    集合から適当な部分集合を取り出して、該部分集合に対
    してのみ写像演算を行うことを特徴とする請求項1に記
    載の論理装置の検証方法。
  4. 【請求項4】前記写像演算は、前記有限状態機械の状態
    遷移関係が登録されている表を参照して行われることを
    特徴とする請求項1に記載の論理装置の検証方法。
  5. 【請求項5】前記写像演算は、前記有限状態機械の状態
    遷移関係がハードウェア記述言語で記述されたものから
    作成される情報を用いて行われることを特徴とする請求
    項1に記載の論理装置の検証方法。
  6. 【請求項6】前記ステップ(e)の判定とは、前記有向
    枝グラフの特定の節点を無限回循環する遷移系列が存在
    するか否かを判断するものであることを特徴とする請求
    項1に記載の論理装置の検証方法。
  7. 【請求項7】前記ステップ(e)の判定とは、前記有向
    枝グラフの特定の節点において、状態集合が写像演算の
    結果、実際に得られるか否かを判断するものであること
    を特徴とする請求項1に記載の論理装置の検証方法。
  8. 【請求項8】検証対象の論理装置をモデル化した有限状
    態機械が満たすべき目的のプロパティを表す、有限長ま
    たは無限長の遷移系列の集合を、遷移関係式でラベル付
    けされた、有向枝グラフに変換し、該有向枝グラフの構
    成情報を記憶する第1の記憶手段と、 該有向枝グラフ上の各節点に対応して、該節点に属する
    状態集合を記憶する第2の記憶手段と、 該有向枝グラフ上の始点側とする節点に属する状態集合
    を該第2の記憶手段から読み出し、該第1の記憶手段に
    記憶されている有向枝グラフの構成情報を参照して、写
    像演算を行うべき枝を選択した後、該読み出した状態集
    合に対して該枝に対応する写像演算を施し、該写像演算
    の結果を該枝の終点側の節点に属する状態集合に追加し
    て、該第2の記憶手段に記憶させる写像演算手段と、該
    写像演算手段の処理を繰り返し実行させ、該第2の記憶
    手段に記憶された状態集合を基に該有向枝グラフの示す
    遷移系列の集合が実際に要素を持つか否かを判定するこ
    とにより、検証対象の論理装置が目的のプロパティを満
    たすか否かを検証する判定手段と、を備えることを特徴
    とする論理装置の検証装置。
  9. 【請求項9】前記写像演算手段は、前記第2の記憶手段
    に記憶されている前記始点側の節点に属する状態集合か
    ら1つの状態を取り出して、該状態に対してのみ写像演
    算を行うことを特徴とする請求項8に記載の論理装置の
    検証装置。
  10. 【請求項10】前記写像演算手段は、前記第2の記憶手
    段に記憶されている前記始点側の節点に属する状態集合
    から適当な部分集合を取り出して、該部分集合に対して
    のみ写像演算を行うことを特徴とする請求項8に記載の
    論理装置の検証装置。
  11. 【請求項11】前記有限状態機械の状態遷移関係が登録
    されている表を記憶する状態遷移関係記憶手段を更に備
    え、 前記写像演算は、該状態遷移関係記憶手段に記憶されて
    いる表を参照して行われることを特徴とする請求項8に
    記載の論理装置の検証装置。
  12. 【請求項12】前記写像演算は、前記有限状態機械の状
    態遷移関係がハードウェア記述言語で記述されたたもの
    から作成される情報を用いて行われることを特徴とする
    請求項8に記載の論理装置の検証装置。
  13. 【請求項13】前記特定の条件とは、前記有向枝グラフ
    の特定の節点を無限回循環する遷移系列が存在するか否
    かを判断するものであることを特徴とする請求項8に記
    載の論理装置の検証装置。
  14. 【請求項14】前記特定の条件とは、前記有向枝グラフ
    の特定の節点において、状態集合が写像演算の結果、実
    際に得られるか否かを判断するものであることを特徴と
    する請求項8に記載の論理装置の検証装置。
  15. 【請求項15】論理装置が目的のプロパティを満たして
    いるか否かを検証する処理であって、コンピュータに (a)検証対象の論理装置をモデル化した有限状態機械
    が満たすべき目的のプロパティを表す、有限長または無
    限長の遷移系列の集合を、遷移関係式でラベル付けされ
    た、有向枝グラフに変換し、該有向枝グラフの構成情報
    を第1のメモリに記憶させ、 (b)該有向枝グラフ上の各節点に属する状態集合を第
    2のメモリに記憶させ、 (c)該有向枝グラフ上の始点側とする節点に属する状
    態集合を該第2のメモリから読み出させ、該第1のメモ
    リに記憶されている有向枝グラフの構成情報を参照し
    て、写像演算を行うべき枝を選択した後、該読み出した
    状態集合に対して写像演算を施させ、 (d)該写像演算の結果を該枝の終点側の節点に属する
    状態集合に追加して、該第2のメモリに記憶させ、 (e)ステップ(c)及び(d)を繰り返し実行し、該
    第2のメモリに記憶された状態集合を基に、該有向枝グ
    ラフの示す遷移系列の集合が実際に要素を持つか否かを
    判定することによって、検証対象の論理装置が目的のプ
    ロパティを満たしているか否かを検証させる、ことを特
    徴とする処理を実現させるコンピュータ読み取り可能な
    記録媒体。
  16. 【請求項16】前記ステップ(c)において、前記第2
    のメモリに記憶されている前記始点側の節点に属する状
    態集合から1つの状態を取り出して、該状態に対しての
    み、写像演算を行うことを特徴とする請求項15に記載
    のコンピュータ読み取り可能な記録媒体。
  17. 【請求項17】前記ステップ(c)において、前記第2
    のメモリに記憶されている前記始点側の節点に属する状
    態集合から適当な部分集合を取り出して、該部分集合に
    対してのみ、写像演算を行うことを特徴とする請求項1
    5に記載のコンピュータ読み取り可能な記録媒体。
  18. 【請求項18】前記写像演算は、前記有限状態機械の状
    態遷移関係が登録されている表を参照して行われること
    を特徴とする請求項15に記載のコンピュータ読み取り
    可能な記録媒体。
  19. 【請求項19】前記写像演算は、前記有限状態機械の状
    態遷移関係がハードウェア記述言語で記述されたものか
    ら作成される情報を用いて行われることを特徴とする請
    求項15に記載のコンピュータ読み取り可能な記録媒
    体。
  20. 【請求項20】前記ステップ(e)の判定とは、前記有
    向枝グラフの特定の節点を無限回循環する遷移系列が存
    在するか否かを判断するものであることを特徴とする請
    求項15に記載のコンピュータ読み取り可能な記録媒
    体。
  21. 【請求項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 true JP2000181939A (ja) 2000-06-30
JP3663067B2 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)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003030270A (ja) * 2001-07-19 2003-01-31 Nec Corp 同期式順序回路のプロパティ検証方法および装置
JP2006228065A (ja) * 2005-02-18 2006-08-31 Canon Inc プロパティ生成方法、検証方法及び検証装置
JP2008269585A (ja) * 2007-03-28 2008-11-06 Toshiba Corp プロパティ記述のカバレッジ測定装置及びプログラム
JP2009116643A (ja) * 2007-11-07 2009-05-28 Nec Corp 検査時間制御装置、方法、およびプログラム
US7676777B2 (en) 2006-03-28 2010-03-09 Fujitsu Microelectronics Limited Method and apparatus for supporting verification, and computer product
US7823101B2 (en) 2007-02-23 2010-10-26 Fujitsu Limited Device, method, and storage for verification scenario generation, and verification device
JP2012003337A (ja) * 2010-06-14 2012-01-05 Renesas Electronics Corp 静的検証プログラム、静的検証装置及び静的検証方法

Families Citing this family (15)

* 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
US7644398B2 (en) * 2001-12-19 2010-01-05 Reactive Systems, Inc. System and method for automatic 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
US8359561B2 (en) * 2007-12-06 2013-01-22 Onespin Solutions Gmbh Equivalence verification between transaction level models and RTL at the example to processors
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
US10318695B2 (en) 2013-12-05 2019-06-11 International Business Machines Corporation Phase algebra for virtual clock and mode extraction in hierarchical designs
US9268889B2 (en) * 2013-12-05 2016-02-23 International Business Machines Corporation Verification of asynchronous clock domain crossings
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
US6141633A (en) * 1997-02-28 2000-10-31 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

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003030270A (ja) * 2001-07-19 2003-01-31 Nec Corp 同期式順序回路のプロパティ検証方法および装置
JP4577475B2 (ja) * 2001-07-19 2010-11-10 日本電気株式会社 同期式順序回路のプロパティ検証方法および装置
JP2006228065A (ja) * 2005-02-18 2006-08-31 Canon Inc プロパティ生成方法、検証方法及び検証装置
JP4498167B2 (ja) * 2005-02-18 2010-07-07 キヤノン株式会社 プロパティ生成方法、検証方法及び検証装置
US7676777B2 (en) 2006-03-28 2010-03-09 Fujitsu Microelectronics Limited Method and apparatus for supporting verification, and computer product
US7823101B2 (en) 2007-02-23 2010-10-26 Fujitsu Limited Device, method, and storage for verification scenario generation, and verification device
JP2008269585A (ja) * 2007-03-28 2008-11-06 Toshiba Corp プロパティ記述のカバレッジ測定装置及びプログラム
JP2009116643A (ja) * 2007-11-07 2009-05-28 Nec Corp 検査時間制御装置、方法、およびプログラム
JP2012003337A (ja) * 2010-06-14 2012-01-05 Renesas Electronics Corp 静的検証プログラム、静的検証装置及び静的検証方法

Also Published As

Publication number Publication date
US6654715B1 (en) 2003-11-25
JP3663067B2 (ja) 2005-06-22

Similar Documents

Publication Publication Date Title
JP3663067B2 (ja) 論理装置の検証方法、検証装置及び記録媒体
Clarke et al. Model checking and the state explosion problem
Burch et al. Symbolic model checking: 1020 states and beyond
Bloem et al. Efficient decision procedures for model checking of linear time logic properties
Pastor et al. Petri net analysis using boolean manipulation
US6560758B1 (en) Method for verifying and representing hardware by decomposition and partitioning
Pastor et al. Symbolic analysis of bounded Petri nets
Kupferman et al. Modular model checking
Khomenko et al. Logic synthesis for asynchronous circuits based on STG unfoldings and incremental SAT
Khomenko et al. Detecting state encoding conflicts in STG unfoldings using SAT
CN104699883A (zh) 采用紧凑多波形表示的电路设计评估
Gupta et al. Toward formalizing a validation methodology using simulation coverage
Balabanov et al. Resolution proofs and Skolem functions in QBF evaluation and applications
Van Dijk et al. Tagged BDDs: Combining reduction rules from different decision diagram types
US7475371B2 (en) Method and system for case-splitting on nodes in a symbolic simulation framework
Kuvent et al. A symbolic justice violations transition system for unrealizable GR (1) specifications
Grumberg et al. Learning to order BDD variables in verification
US6247163B1 (en) Method and system of latch mapping for combinational equivalence checking
Di Guglielmo et al. Semi-formal functional verification by EFSM traversing via NuSMV
JP3741544B2 (ja) 順序回路の状態探索方法および装置並びに状態探索プログラムを記録した記録媒体
Khomenko et al. An algorithm for direct construction of complete merged processes
JPH1063537A (ja) プロパティ検証方法および装置
JP3847774B2 (ja) 定義集合解析方法
Safarpour et al. Trace compaction using SAT-based reachability analysis
JP4577475B2 (ja) 同期式順序回路のプロパティ検証方法および装置

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