(57)【特許請求の範囲】
【請求項１】
同期式順序回路が機能仕様を表すプロパティを満たすか否かを検証するプロパティ検証装置が行うプロパティ検証方法において、
前記プロパティ検証装置が、検証対象の前記同期式順序回路の動作を定義した記述および検証対象のプロパティとして目的の回路内部状態への到達可能性を表すＣＴＬ式の入力を受け付けるステップと、
前記プロパティ検証装置が、前記検証対象の前記同期式順序回路の動作を定義した記述において前記ＣＴＬ式の真偽を判定する記号モデル検査法を実行するステップと、
前記プロパティ検証装置が、前記記号モデル検査法が制限時間又は制限メモリ量内で実行不可能な場合に、前記制限時間又は制限メモリ量内で求めることができた節点集合の情報に基づいて前記ＣＴＬ式が真であることの証明状態に到達可能な状態集合の情報を抽出し、前記同期式順序回路の内部状態が前記抽出した状態集合に含まれるか否かを判定するテストベンチを自動生成するステップと、
前記プロパティ検証装置が、前記テストベンチを使用し、前記記号モデル検査法の結果を補完する為の論理シミュレーションを実行するステップと、
を備えることを特徴とするプロパティ検証方法。
【請求項２】
請求項１に記載のプロパティ検証方法において、
前記論理シミュレーションでは前記生成したテストベンチに加え、外部入力信号に与える入力ベクタとしてランダムパタン又は外部から与えられたパタンを使用し、
前記論理シミュレーションの実行中、前記シミュレーション対象の同期式順序回路の内部状態が前記抽出した状態集合に相当する内部状態に達したことが検出された場合に前記ＣＴＬ式が真であると判定することにより前記論理シミュレーションが行われることを特徴とするプロパティ検証方法。
【請求項３】
同期式順序回路が機能仕様を表すプロパティを満たすか否かを検証するプロパティ検証装置において、
検証対象の前記同期式順序回路の動作を定義した記述および検証対象のプロパティとして目的の回路内部状態への到達可能性を表すＣＴＬ式の入力を受け付ける手段と、
前記検証対象の前記同期式順序回路の動作を定義した記述において前記ＣＴＬ式の真偽を判定する記号モデル検査法を実行する手段と、
前記記号モデル検査法が制限時間又は制限メモリ量内で実行不可能な場合に、前記制限時間又は制限メモリ量内で求めることができた節点集合の情報に基づいて前記ＣＴＬ式が真であることの証明状態に到達可能な状態集合の情報を抽出し、前記同期式順序回路の内部状態が前記抽出した状態集合に含まれるか否かを判定するテストベンチを自動生成する手段と、
前記テストベンチを使用し、前記記号モデル検査法の結果を補完する為の論理シミュレーションを実行する手段と、
を備えることを特徴とするプロパティ検証装置。
【請求項４】
請求項３に記載のプロパティ検証装置において、
前記論理シミュレーションでは前記生成したテストベンチに加え、外部入力信号に与える入力ベクタとしてランダムパタン又は外部から与えられたパタンを使用し、
前記論理シミュレーションの実行中、前記シミュレーション対象の同期式順序回路の内部状態が前記抽出した状態集合に相当する内部状態に達したことが検出された場合に前記ＣＴＬ式が真であると判定することにより前記論理シミュレーションが行われることを特徴とするプロパティ検証装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、同期式順序回路が機能仕様を満たしているか否かを検証するプロパティ検証装置に関し、特に機能仕様記述言語として時相論理の一種である計算木論理(Computation Tree Logic: CTL)を用いた記号モデル検査法による形式検証装置に関する。
【０００２】
【従来の技術】
従来のプロパティ検証装置は、機能仕様記述言語として時相論理の一種である計算木論理(Computation Tree Logic: CTL)を用いた記号モデル検査法によるものが一般的であった。（注記；参考文献：情報処理  35(8)  「論理関数処理に基づく形式的検証方法」平石裕実、浜口清治著）
以下に、従来の記号モデル検査法によるプロパティ検証装置について説明する。
【０００３】
まず、モデル検査法について説明するが、詳細は上記注記の文献「論理関数処理に基づく形式的検証方法」を参照されたい。
【０００４】
モデル検査法は、Kripke構造と呼ばれる有向グラフ上で、CTL(Computation Tree Logic)と呼ばれる時相論理の真偽を判定するものである。
【０００５】
Kripke構造は、節点の集合Vと、節点間の遷移関係(有向枝)を表すRと、各節点における原始命題の真偽を表すIと、初期節点を表すV0とを用いて、式(1)のように定義される。
K=(V, R, I, V0)   …（１）
同期式順序回路は、次のようにしてKripke構造にモデル化される。同期式順序回路は、図３に示すように、入力信号(x1,...,xn)、出力信号（ｚ1,...,zl）、FF信号（ｙ1,...,ｙm）、およびFF信号の次クロックの値を決定する組合せ回路から構成される。
【０００６】
入力信号およびFF信号での値の一つの組合せを一つの節点で表し、入力信号およびFF信号の各々を原始命題としてその真偽を信号値で表し、初期節点をリセット状態の信号値に対応する節点とすることで、同期式順序回路をKripke構造にモデル化できる。
【０００７】
節点間の遷移関係は、同期式順序回路において、ある信号値から次クロックで遷移可能な信号値の組合せを表すことに相当し、FF信号の次クロックの値を決定する組合せ回路の論理から求めることが可能である。
【０００８】
CTLは、原始命題の真偽の時間的な変化を記述できる時相論理であり、論理和や論理積や論理否定などの通常の論理演算子に加えて、「全ての遷移系列において」を表す演算子A、「ある遷移系列において」を表す演算子E、「将来いつか」を表す時相演算子F、「将来常に」を表す時相演算子G、「次の時刻で」を表す時相演算子X、「〜まで常に」を表す時相演算子Uを用いて記述される。
【０００９】
例えば、EFp というCTL記述は、「ある遷移系列において、将来いつかpが真である」という命題を表している。
【００１０】
Kripke構造の初期節点においてEFpが真であるか否かを求めるには、EFpが真である節点を全て求め、その中に初期節点が含まれるか否かを判定すればよい。
【００１１】
EFpが真である節点を全て求めるには、まずpが真である節点の集合を求め、次にその節点への遷移を持つ(すなわち有向枝を持つ)節点を次々と求め加えてゆけば良い。
【００１２】
新しく加えられる節点がなくなるまでこの作業を続ければ、EFpが真である節点を全て求められたことになる。
【００１３】
図2はこの作業の様子を示す図であり、pが真である節点はq8とq9であるとすると、まず、節点集合[q8,q9]をT0とし、T0への遷移を持つ節点の集合を求める。T0への遷移を持つ節点はq6とq7である。次に、q6とq7を T0に追加した節点集合[q8,q9,q6,q7]をT1とするとT1への遷移を持つ節点q3,q4,q5,q6,q7,q8,q9を求め、T1に追加した節点集合をT2=[ q8,q9,q6,q7,q3,q4,q5]とする。
【００１４】
同様にして3ステップ目ではT3=[ q8,q9,q6,q7,q3,q4,q5,q1,q2]を求め、4ステップ目ではT4=[ q8,q9,q6,q7,q3,q4,q5,q1,q2,q0]を求める。5ステップ目で、T4への遷移を持つ節点を求めるとq0,q1,q2,q3,q4,q5,q6,q7,q8,q9となるが、これらは全てT4に含まれており最早新しい節点が加えられることは無いのでこのステップで作業は停止する。
【００１５】
以上の作業で求められた節点集合T4がEFpが真である全ての節点である。T4に初期節点q0が含まれているため、初期節点でEFpが真であることが検証できる。
【００１６】
次に記号モデル検査について説明する。
【００１７】
ある節点の集合[q]から1回の遷移で到達できる節点の集合[r]を求める作業を「像計算」と言い、次のように表される。
Img([q]) = [r] …（２）
逆に、ある節点の集合[r]に1回の遷移で到達できる節点の集合[q]を求める作業を「逆像計算」と言い、次のように表す。
Img-1([r]) = [q] …（３）
上記の、EFpが真である節点を求める作業は、pが真である節点集合から開始して、逆像計算を繰り返し適用することで達せられる。
【００１８】
記号モデル検査法は、上記の像計算、逆像計算を論理関数処理で行うものである。このために、Kripke構造の各節点をそれぞれユニークな二進数で表し、これを表現するための論理変数ベクトルv=[v0,v1,..,vn]を用意する。節点の集合Sは、vを用いて次のような論理関数FS(v)で表される。
FS(v)= 1 iff v∈q …（４）
例えば、節点q0,q1,q2,q3がそれぞれ、000, 001, 010, 011 という二進数で表されるとき、節点集合S1=[q1,q2]は、次のような論理関数FS1で表される。
FS1 = !v0 * !v1 * v2 + !v0 * v1 * !v2 …（５）
ここで、!は論理否定、*は論理積、+は論理和を表す。
【００１９】
一方、節点間の遷移関係も論理関数で表現する。遷移枝の始点を論理変数ベクトルv=[v0,v1,..,vn]で表し、終点を論理変数ベクトルv=[v0,v1,..,vn]で表すことにすると、節点間の遷移関係は、次のような論理関数R(v,v)で表される。
R(v,v)=1 iff (v,v)が遷移枝 …（６）
これらの論理関数表現を用いると、上記の像計算、逆像計算を論理関数処理で行うことが可能となる。
【００２０】
ここでは、逆像計算について説明する。
【００２１】
式（３）の逆像計算の論理関数処理について説明する。節点集合[r]を表す論理関数をFr(v)とし、節点集合[q]を表す論理関数をFq(v)とする。[r]の逆像[q]は、次のような論理関数処理で求められる。
Fq(v) = ∃v.( R(v,v) * Fr(v) ) …（７）
ここで、∃v.  はスムージング演算子と呼ばれるもので、次のように定義される。
∃vi.f(v) = fvi=1(v) + fvi=0(v) …（８）
∃v.f(v) = ∃v0.f(v) * ∃v1.f(v) * ... * ∃vn.f(v) …（９）
式（８）において、fvi=1(v)はvi=1を代入したf(v)を表し、fvi=0(v)はvi=0を代入したf(v)を表す。
【００２２】
次に、同期式順序回路を対象とした記号モデル検査について説明する。図3に示すような同期式順序回路を考える。
【００２３】
この同期式順序回路は、n個の外部入力信号[x1,...,xn]とm個のフリップフロップ[y1,...,ym]、そして次クロックのフリップフロップの値を決定する組合せ回路からなる。
【００２４】
この順序回路をKripke構造にモデル化するためには、[x1,...,xn]と[y1,...,ym]を連結したベクトルを上記論理変数ベクトルvに対応付ける。
【００２５】
これは、フリップフロップと外部入力信号の値の組合せのひとつひとつをKripke構造の節点に対応させることを意味する。
【００２６】
また、次クロックにおける入力信号の値とフリップフロップの値をそれぞれ[x1,...,xn]、[y1,...,ym]で表し、連結したベクトルをvに対応付ける。
【００２７】
これらを用いて節点間の遷移関係式R(v,v)を生成する。
【００２８】
節点間の遷移関係式は、次クロックのフリップフロップの値を決定する組合せ回路から、次のような計算により求める。
【００２９】
フリップフロップyiの次クロックの値を決定する組合せ回路が、論理関数  Ni(v)で表されるとする。
R(v,v) = Π1≦i≦m ( y≡ Ni(v) ) …（10）
以上により、同期式順序回路をKripke構造にモデル化することができ、記号モデル検査による検証が可能となる。
【００３０】
記号モデル検査法における論理関数処理は、二分決定グラフ(Binary Decision  Diagrams:BDD)を用いて実行されるのが一般的である。
【００３１】
特開平１０−３０１９６３号公報では、論理装置の検証方法等に関して論理装置の検証方法に記号モデル検査法を用いる場合、状態集合を分割して大規模な論理回路の検査を行う方法について述べられている。
【００３２】
特開平１０−６３５３７号公報では、記号モデル検査法においてメモリ規模の縮小と処理時間の短縮のため、検証対象のプロパティに分岐の無い状態集合と無限ループが連結した構成の状態集合を示す単一パス表現をオートマトンにおける像計算処理だけで実行可能な手続き群に変換する事により、実行させる方法について述べられている。
【００３３】
【発明が解決しようとする課題】
しかし、これら従来の技術においては、処理時間を限定して検証を行う事ができないという第１の問題があった。
【００３４】
又処理メモリ及び処理ＣＰＵ時間に制限がある場合、所定規模以上の論理回路の検証ができないという第２の問題があった。
本発明は、これらの問題点に鑑みなされたものであり、その目的は処理時間、処理メモリに制限がある場合においても規模の大小に関わらず検査ができる方法を提供することである。
【００３５】
【課題を解決するための手段】
本発明の第１の観点によれば、同期式順序回路が機能仕様を表すプロパティを満たすか否かを検証するプロパティ検証装置が行うプロパティ検証方法において、前記プロパティ検証装置が、検証対象の前記同期式順序回路の動作を定義した記述および検証対象のプロパティとして目的の回路内部状態への到達可能性を表すＣＴＬ式の入力を受け付けるステップと、前記プロパティ検証装置が、前記検証対象の前記同期式順序回路の動作を定義した記述において前記ＣＴＬ式の真偽を判定する記号モデル検査法を実行するステップと、前記プロパティ検証装置が、前記記号モデル検査法が制限時間又は制限メモリ量内で実行不可能な場合に、前記制限時間又は制限メモリ量内で求めることができた節点集合の情報に基づいて前記ＣＴＬ式が真であることの証明状態に到達可能な状態集合の情報を抽出し、前記同期式順序回路の内部状態が前記抽出した状態集合に含まれるか否かを判定するテストベンチを自動生成するステップと、前記プロパティ検証装置が、前記テストベンチを使用し、前記記号モデル検査法の結果を補完する為の論理シミュレーションを実行するステップと、を備えることを特徴とするプロパティ検証方法が提供される。
【００３６】
上記プロパティ検証方法において、前記論理シミュレーションでは前記生成したテストベンチに加え、外部入力信号に与える入力ベクタとしてランダムパタン又は外部から与えられたパタンを使用し、前記論理シミュレーションの実行中、前記シミュレーション対象の同期式順序回路の内部状態が前記抽出した状態集合に相当する内部状態に達したことが検出された場合に前記ＣＴＬ式が真であると判定することにより前記論理シミュレーションが行われることを特徴とするプロパティ検証方法であってもよい。
【００３７】
【発明の実施の形態】
第１の実施の形態について、本発明の処理手順を示した図１のフローチャート図と従来における記号モデル検査法の処理手順の例を示した概念図である図２を用いて、詳細に説明する。
【００３８】
Ｓ102の手順で入力された検証対象の同期式順序回路が、図2に示すようなKrike構造にモデル化されたとする。また、Ｓ102で入力された機能仕様が、EFp というCTLであったとし、図2の節点のうちpが真となる節点はq8とq9であったとする。この機能仕様を対象とするプロパティ検証は、検証対象の同期式順序回路での内部状態のうち、q8とq9に相当する内部状態に到達可能であることを確認することを目的とした検証である。
【００３９】
Ｓ103の記号モデル検査では、図2に示すように、節点集合T0から開始してT0に到達可能な節点集合を繰り返し処理により求める。
【００４０】
Ｓ103の記号モデル検査が制限時間と制限メモリ量内で処理が完了した場合、すなわち節点集合T4を求めることができた場合は、プロパティ検証は終了である。
すなわち、検証対象の同期式順序回路での内部状態のうち、q8とq9に相当する内部状態に初期状態から到達可能であることを確認できたことになる。
【００４１】
一方、Ｓ103の記号モデル検査が制限時間と制限メモリ量内で処理が完了しなかった場合を考える。例として、記号モデル検査が図2における節点集合T2を求めた時点で制限時間か制限メモリ量のいずれかを超えたと仮定する。
【００４２】
この場合は, Ｓ103を終了した時点では、検証対象の同期式順序回路での内部状態のうち、q8とq9に相当する内部状態に初期状態から到達可能であることは確認できない。
【００４３】
ここで、Ｓ107は、Ｓ103の記号モデル検査から節点集合T2=[ q8,q9,q6,q7,q3,q4,q5]の情報を受け取り、「検証対象の同期式順序回路がq8,q9,q6,q7,q3,q4,q5に相当する内部状態に到達した」ことを検出するようなテストベンチを生成する。
【００４４】
次にＳ106は、Ｓ107が生成したテストベンチを使用し、外部入力信号に与える入力ベクタとしてランダムパタンあるいは設計者が与えたパタンを使用し、論理シミュレーションを実行する。論理シミュレーションの実行中、テストベンチは適当なタイミングでシミュレーション対象の同期式順序回路の内部状態がq8,q9,q6,q7,q3,q4,q5に相当する内部状態のいずれかに達したか否かを検査する。かかる内部状態に達したことが検出されれば、検証対象の同期式順序回路での内部状態のうち、q8とq9に相当する内部状態に初期状態から到達可能であることを確認できたことになる。
【００４５】
次に本発明での第２の実施の形態について、従来の記号モデル検査法の処理手順を示した概念図である図2の例を用いて、本発明での論理シミュレーションについて説明する。
【００４６】
図２に示すように、論理シミュレーションにおいては、q8とq9に相当する内部状態に初期状態から到達可能であることを確認するためには、最低4ステップのシミュレーションが必要である。
【００４７】
しかしながら、q8,q9,q6,q7,q3,q4,q5に相当する内部状態のいずれかに初期状態から到達可能であることの確認は、最低2ステップのシミュレーションで可能である。
【００４８】
到達するために長いステップが必要な状態は、ランダムパタンあるいは設計者が作成する入力パタンでは到達が困難である場合が多いが、短いステップで到達可能な状態には、高い確率で到達可能である。
【００４９】
したがって、本発明のプロパティ検証方法は、従来の記号モデル検査法によるプロパティ検証方法が処理時間や使用メモリ量の制限のため検証不可能であるような場合に対し、短い時間あるいは高い確率でプロパティ検証を可能とすることができる。
【００５０】
【発明の効果】
本発明の第１の効果は、従来の記号モデル検査法によるプロパティ検証方法が処理時間や使用メモリ量の制限のため検証不可能であるような場合であっても検証ができることである。
【００５１】
本発明の第２の効果は、論理シミュレーションにより検証対象の順序回路が機能仕様を満たすか否かを証明する内部状態に初期状態から到達可能であることを短時間で確認できる事である。
【図面の簡単な説明】
【図１】本発明での第１の実施の形態における処理手順を示したフローチャート図である。
【図２】従来における記号モデル検査法の処理手順の例を示した概念図である。
【図３】同期式順序回路の例を示した図である。
【図１】
0004577475.tif 000002
【図２】
0004577475.tif 000003
【図３】
0004577475.tif 000004