(57)【特許請求の範囲】
【請求項１】
回路記述及びプロパティを読み込む読込手順と、
前記プロパティに基づいて前記回路記述の静的検証を実行するとともに、当該静的検証において到達可能な状態数と、当該静的検証における探索深さに応じて到達した状態数と、を算出する静的検証手順と、
前記到達可能な状態数及び前記到達した状態数に基づいて探索カバレッジ値を算出する探索カバレッジ値算出手順と、
前記探索カバレッジ値を視認可能な状態で表示する表示手順と、をコンピュータに実行させる、
静的検証プログラム。
【請求項２】
前記探索カバレッジ値は、前記到達可能な状態数と前記到達した状態数との比であることを特徴とする、
請求項１に記載の静的検証プログラム。
【請求項３】
前記探索カバレッジ値は、前記到達した状態数を、前記到達可能な状態数で除した値であることを特徴とする、
請求項２に記載の静的検証プログラム。
【請求項４】
前記探索カバレッジ値算出手順は、算出した前記探索カバレッジ値の探索深さに対する変化を示すグラフを作成し、
前記表示手順は、前記グラフを視認可能な状態で表示することを特徴とする、
請求項１乃至３いずれか一項に記載の静的検証プログラム。
【請求項５】
前記探索カバレッジ値算出手順は、予め定められた探索深さ内における前記探索カバレッジ値が予め定められた第１の値よりも小さい場合を、前記探索カバレッジ値が飽和したものとして検出し、
前記表示手順は、前記検出の結果に応じて、前記探索カバレッジ値が飽和したことを視認可能な状態で表示することを特徴とする、
請求項１乃至４のいずれか一項に記載の静的検証プログラム。
【請求項６】
前記読込手順は、前記静的検証の制限時間を読み込み、
前記静的検証手順は、前記静的検証を開始してから検証結果が得られないまま前記制限時間が経過した場合には、当該静的検証を強制終了することを特徴とする、
請求項１乃至５のいずれか一項に記載の静的検証プログラム。
【請求項７】
回路記述及びプロパティが記憶された記憶部と、
前記プロパティに基づいて前記回路記述の静的検証を実行するとともに、当該静的検証において到達可能な状態数と、当該静的検証における探索深さに応じて到達した状態数と、を算出する静的検証部と、
前記到達可能な状態数及び前記到達した状態数に基づいて探索カバレッジ値を算出する探索カバレッジ値算出部と、
前記探索カバレッジ値を探索深さに応じて視認可能な状態で表示する表示部と、を備える、
静的検証装置。
【請求項８】
前記探索カバレッジ値は、前記到達可能な状態数と前記到達した状態数との比であることを特徴とする、
請求項７に記載の静的検証装置。
【請求項９】
前記探索カバレッジ値は、前記到達した状態数を、前記到達可能な状態数で除した値であることを特徴とする、
請求項８に記載の静的検証装置。
【請求項１０】
前記探索カバレッジ値算出部は、算出した前記探索カバレッジ値の探索深さに対する変化を示すグラフを作成し、
前記表示部は、前記グラフを視認可能な状態で表示することを特徴とする、
請求項７乃至９のいずれか一項に記載の静的検証装置。
【請求項１１】
前記探索カバレッジ値算出部は、予め定められた探索深さ内における前記探索カバレッジ値が予め定められた第１の値よりも小さい場合を、前記探索カバレッジ値が飽和したものとして検出し、
前記表示部は、前記検出結果に応じて前記探索カバレッジ値が飽和したことを視認可能な状態で表示することを特徴とする、
請求項７乃至１０のいずれか一項に記載の静的検証装置。
【請求項１２】
前記記憶部は、静的検証の制限時間が更に記憶され、
前記静的検証部は、前記静的検証を開始してから検証結果が得られないまま前記制限時間が経過した場合には、当該静的検証を強制終了することを特徴とする、
請求項７乃至１１のいずれか一項に記載の静的検証装置。
【請求項１３】
静的検証部が、記憶部に記憶された回路記述及びプロパティを読み込み、前記プロパティに基づいて前記回路記述の静的検証を実行するとともに、当該静的検証において到達可能な状態数と、当該静的検証における探索深さに応じて到達した状態数と、を算出し、
探索カバレッジ値算出部が、前記到達可能な状態数及び前記到達した状態数に基づいて探索カバレッジ値を算出し、
表示部が、前記探索カバレッジ値を探索深さに応じて視認可能な状態で表示する、
静的検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、静的検証プログラム、静的検証装置及び静的検証方法に関し、特に集積回路の動作検証に適用される静的検証プログラム、静的検証装置及び静的検証方法に関する。
【背景技術】
【０００２】
大規模集積回路の設計における回路の動作の検証技術として、静的検証が用いられている。静的検証は、近年の設計検証工数増大に伴い、不可欠なものとみなされてきている。静的検証とは、記述した仕様プロパティ(アサーション)が設計デザインを満たすことを数学的に証明する検証技術である。
【０００３】
静的検証では、仕様プロパティに記述された状態変数が取りうる全ての到達可能な状態空間について探索を行い、各状態空間において仕様プロパティを満たすことを検証する（特許文献１）。よって、静的検証は、論理シミュレーションよりも検証の網羅性の点で優れている。
【０００４】
実際のＥＤＡツールにおいては、静的検証手法として、シンボリックモデルチェッキング手法が使用される（非特許文献１）。シンボリックモデルチェッキング手法とは、状態集合や状態遷移を数式により記号的に表し、これらの数式を処理することにより状態探索を行う手法である。シンボリックモデルチェッキング手法では、ある状態集合を、前サイクルの状態集合とその状態遷移との積として算出する。上記操作は論理関数処理であるため、全てＢＤＤ（Binary decision diagram）演算またはＳＡＴ問題として処理可能である。
【０００５】
しかし、静的検証は、論理シミュレーションに比べて計算量が多くなる。そのため、検証対象となる回路の規模によっては膨大な計算時間を要するため、検証時間の延伸に繋がる。このため、静的検証の実行制限時間を設定し、検証結果が得られないまま制限時間に達した場合には、静的検証を強制終了させる方法が用いられる。正確には、処理時間内で可能な状態遷移サイクル数（探索深さ）内に到達可能な状態についてのみ検証が実施される（Boundedモデルチェッキング）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−１９６６８１号公報
【非特許文献】
【０００７】
【非特許文献１】藤田昌宏、「［特別講演］SATアルゴリズムとその形式的検証への応用」、電子情報通信学会技術研究報告、社団法人電子情報通信学会、２００６年１１月、Vol.106、No.388,391,393、p.15-20
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところが、静的検証を強制終了した場合、検証結果を得ることができない。すなわち、検証対象の回路が仕様プロパティを満たすか否かだけでなく、検証がどこまで進捗したのかを確認することができない。既存のＥＤＡツールでは、時間内に検証出来た遷移クロックサイクル数（探索深さ）を表示するのみである。
【０００９】
そのため、検証対象の回路を修正する必要の是非を判断することができない。加えて、制約条件を変更して静的検証を再実行しようとしても、制約条件の変更方針を決定するための情報を得ることもできない。すなわち、静的検証を強制終了した場合には、有用な情報を得ることができず、時間的損失及びコスト的損失が発生してしまう。
【課題を解決するための手段】
【００１０】
本発明の一態様である静的検証プログラムは、回路記述及びプロパティを読み込む読込手順と、前記プロパティに基づいて前記回路記述の静的検証を実行するとともに、当該静的検証において到達可能な状態数と、当該静的検証における探索深さに応じて到達した状態数と、を算出する静的検証手順と、前記到達可能な状態数及び前記到達した状態数に基づいて探索カバレッジ値を算出する探索カバレッジ値算出手順と、前記探索カバレッジ値を視認可能な状態で表示する表示手順と、をコンピュータに実行させるものである。本発明の一態様である静的検証プログラムでは、前記静的検証における探索深さに応じて、前記探索カバレッジ値を算出する。よって、ユーザが前記静的検証の進捗状況を把握することが可能である。
【００１１】
本発明の一態様である静的検証装置は、回路記述及びプロパティが記憶された記憶部と、前記プロパティに基づいて前記回路記述の静的検証を実行するとともに、当該静的検証において到達可能な状態数と、当該静的検証における探索深さに応じて到達した状態数と、を算出する静的検証部と、前記到達可能な状態数及び前記到達した状態数に基づいて探索カバレッジ値を算出する探索カバレッジ値算出部と、前記探索カバレッジ値を探索深さに応じて視認可能な状態で表示する表示部と、を備えるものである。本発明の一態様である静的検証装置では、前記静的検証における探索深さに応じて、前記探索カバレッジ値を算出する。よって、ユーザが前記静的検証の進捗状況を把握することが可能である。
【００１２】
本発明の一態様である静的検証方法は、静的検証部が、記憶部に記憶された回路記述及びプロパティを読み込み、前記プロパティに基づいて前記回路記述の静的検証を実行するとともに、当該静的検証において到達可能な状態数と、当該静的検証における探索深さに応じて到達した状態数と、を算出し、探索カバレッジ値算出部が、前記到達可能な状態数及び前記到達した状態数に基づいて探索カバレッジ値を算出し、表示部が、前記探索カバレッジ値を探索深さに応じて視認可能な状態で表示するものである。本発明の一態様である静的検証方法では、前記静的検証における探索深さに応じて、前記探索カバレッジ値を算出する。よって、ユーザが前記静的検証の進捗状況を把握することが可能である。
【発明の効果】
【００１３】
本発明によれば、静的検証の進捗状況を把握できる静的検証プログラム、静的検証装置及び静的検証方法を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】実施の形態１にかかる静的検証装置１００の構成図である。
【図２】表示部３に表示されるグラフの例を示す図である。
【図３】３ビットのグレイコードカウンタ６０の構成図である。
【図４】グレイコードカウンタ６０の状態遷移図である。
【図５】グレイコードカウンタ６０における時相論理を示す図である。
【図６】実施の形態２にかかる静的検証装置２００の構成図である。
【図７】静的検証装置２００により行われる静的検証の処理フローの一例を示すである。
【図８】実施の形態３にかかる静的検証装置における探索カバレッジ値の飽和の検出を示すグラフである。
【発明を実施するための形態】
【００１５】
実施の形態１
以下、図面を参照して本発明の実施の形態について説明する。本実施の形態１にかかる静的検証装置は、与えられた回路記述の動作検証としての静的検証を実行する装置である。図１は、実施の形態１にかかる静的検証装置１００の構成図である。図１に示すように、静的検証装置１００は、静的検証部１、探索カバレッジ値算出部２及び表示部３により構成される。
【００１６】
静的検証部１は、プロパティ５２、制約条件５３及び制限時間５４に基づいて、回路記述５１に対する静的検証を行う。回路記述５１、プロパティ５２、制約条件５３及び制限時間５４は、例えば記憶部５に記憶され、静的検証部１により読み出される。回路記述５１は、集積回路の論理構成が記述されたものであり、静的検証における検証対象となる回路記述である。回路記述５１は、例えばＲＴＬ（Register Transfer Level）記述による論理回路のモデルとして提供される。プロパティ５２は、要求される論理仕様から作成されたプロパティである。
【００１７】
制約条件５３は、静的検証の実行時において検証する状態空間を必要最小限に制限するための制約である。例としては、入力端子を固定値に設定するもの、既に正しいと判明しているプロパティ、ＦＩＦＯがｆｕｌｌの間は入力を行わないといった回路上の仕様といったものが挙げられる。
【００１８】
制限時間５４は、静的検証の実行時間を制限するために設定される。静的検証の開始から制限時間５４が経過しても検証結果が得られない場合には、静的検証部１は、実行中の静的検証を途中で強制終了する。
【００１９】
静的検証部１は、静的検証において到達可能な状態数１１を出力する。また、静的検証部１は、静的検証の探索深さに応じて、到達した状態数１２及び探索深さ１４を出力する。さらに、静的検証部１は、検証結果が得られた場合には検証結果１３を出力する。
【００２０】
探索カバレッジ値算出部２は、到達可能な状態数１１及び到達した状態数１２に基づいて、探索カバレッジ値２１を算出する。探索カバレッジ値算出部２による探索カバレッジ値２１の算出は、静的検証の探索深さに応じてリアルタイムに行うことが可能である。探索カバレッジ値算出部２は、静的検証を強制終了した場合には、強制終了するまでの探索深さに応じた探索カバレッジ値２１を算出する。そして、探索カバレッジ値算出部２は、算出した探索カバレッジ値２１を表示部３へ出力する。また、探索カバレッジ値算出部２は、算出した探索カバレッジ値２１の探索深さに応じたグラフを作成して、当該グラフを表示部３へ出力することも可能である。
【００２１】
探索カバレッジ値２１は、検証過程で到達した状態数ｍを、検証対象となる回路記述において到達可能な状態数Ｎにより除した値である。つまり、探索カバレッジ値２１の値Ｃは、以下の式（１）で表される。
Ｃ＝ｍ／Ｎ    ・・・（１）
【００２２】
表示部３は、静的検証部１から検証結果１３及び探索深さ１４が入力される。また、表示部３には、探索カバレッジ値算出部２から、探索カバレッジ値２１が入力される。表示部３は、入力される情報に応じて、静的検証の検証結果及び静的検証の進捗状況（探索深さ１４及び探索カバレッジ値２１）を表示する。表示部３は、探索カバレッジ値算出部２が作成した、探索カバレッジ値２１の探索深さに応じたグラフを表示することも可能である。
【００２３】
静的検証装置１００のユーザは、上述の表示を確認することにより、静的検証の探索深さに応じた探索カバレッジ値を知ることができる。図２は、表示部３に表示されるグラフの例を示す図である。曲線Ｌ１は、探索カバレッジ値が検証開始後間もなく飽和した場合である。曲線Ｌ２は、探索カバレッジ値が増加傾向を示す場合である。
【００２４】
曲線Ｌ１では、検証開始後まもなく、探索カバレッジ値が飽和している。ユーザはこの時点で飽和の原因を調べ、制約条件５３を再設定して静的検証をやり直すことにより、効率的な静的検証を行うことが可能となる。
【００２５】
曲線Ｌ２では、制限時間５４に至っても探索カバレッジ値は飽和していない。よって、ユーザは検証が順調に進展していると判断して、制限時間を延伸して静的検証を再実行することにより、より確度の高い検証が期待できる。
【００２６】
すなわち、静的検証装置１００によれば、静的検証装置１００ユーザは、静的検証の探索カバレッジ値を参照することにより、その進捗具合を観測することが可能となる。
【００２７】
続いて、静的検証装置１００の動作の具体例について説明する。以下では、回路記述５１において、３ビットのグレイコードカウンタが記述されている場合について説明する。図３は、３ビットのグレイコードカウンタ６０の構成図である。グレイコードカウンタ６０には、イネーブル信号ｅｎ及びクロック信号ＣＬＫが入力される。グレイコードカウンタ６０は、イネーブル信号ｅｎに応じて、クロック信号ＣＬＫに同期して出力ｇ＿ｏｕｔ［２：０］をカウントアップ又はカウントダウンする。例えば、イネーブル信号が「１」の場合には、グレイコードカウンタ６０はカウントアップ動作を行う。他方、イネーブル信号が「０」の場合には、グレイコードカウンタ６０はカウントダウン動作を行う。
【００２８】
グレイコードカウンタ６０の静的検証のプロパティを、「いつかは、カウンタが値１１０を保持する状態に到達する」と設定する。また、「カウンタが値０００を保持する状態」を初期状態として設定する。このプロパティと初期条件に基づいて、静的検証部１による静的検証が行われる。
【００２９】
図４は、グレイコードカウンタ６０の状態遷移図である。グレイコードカウンタ６０は３ビットのグレイコードカウンタであるので、到達可能な状態数は「８」である。グレイコードカウンタ６０は、例えばカウントアップする場合には、０００→００１→０１１→０１０→１１０→１１１→１０１→１００→０００→・・・の順に、出力ｇ＿ｏｕｔ［２：０］が変化する。
【００３０】
図５は、グレイコードカウンタ６０における時相論理を示す図である。図５の横軸は探索深さを表している。図５では「１１０」を始点とした状態遷移の結果、探索深さ「４」の時点で、初期状態である「０００」に到達している。従って、グレイコードカウンタ６０は、「いつかは、カウンタが値１１０を保持する状態に到達する」というプロパティを満たすことがわかる。
【００３１】
探索カバレッジ値算出部２は、静的検証の探索深さに応じて探索カバレッジ値を算出する。図５では、探索深さに応じた探索カバレッジ値を百分率表示している。探索深さの増加に従って、到達した状態が増加してゆき、図５では、探索深さ「４」における探索が終了した時点で探索カバレッジ値は１００％に到達する。よって、これ以上の探索は不要であるので、探索を終了する。この場合、探索深さ「４」において与えられたプロパティが満たされることが判明する。
【００３２】
なお、制限時間が探索深さ「４」に至る前に設定されている場合には、静的検証部１は、制限時間が経過した時点で検証を終了する。例えば、図５の時刻ｔ１の時点で制限時間に到達した場合には、静的検証部１は、検証結果を得ることなく探索深さ「３」で検証を強制終了する。
【００３３】
静的検証装置１００によれば、静的検証装置１００ユーザは、上述のグレイコードカウンタ６０における静的検証において、静的検証の探索カバレッジ値を参照することにより、その進捗具合を観測することができる。
【００３４】
実施の形態２
次に、実施の形態２にかかる静的検証装置について説明する。実施の形態２にかかる静的検証装置２００は、上述の静的検証装置１００に、探索カバレッジ値２１の大きさを判定する判定部４を追加したものである。図６は、静的検証装置２００の構成図である。図６に示すように、静的検証装置２００の判定部４は、探索カバレッジ値と検証結果に応じて、判定結果を表示部３に出力する。静的検証装置２００のその他の構成は、静的検証装置１００と同様であるので説明を省略する。
【００３５】
続いて、静的検証装置２００の動作について説明する。図７は、静的検証装置２００により行われる静的検証の処理フローの一例を示すフローチャートである。
【００３６】
まず、静的検証部１は、回路記述５１、プロパティ５２、制約条件５３及び制限時間５４に基づいて、静的検証を開始する（ステップＳ１）。静的検証の開始後、探索カバレッジ値算出部２は、静的検証の探索深さに応じて探索カバレッジ値２１を算出する。制限時間５４内に検証結果１３が得られる場合、すなわち探索カバレッジ値２１が１００％に達した場合またはプロパティが満たされることが判明した場合には、検証を終了する（ステップＳ２）。
【００３７】
実施の形態３
次に、実施の形態３にかかる静的検証装置について説明する。実施の形態３にかかる静的検証装置は、上述の静的検証装置１００において、探索カバレッジ値の飽和を検出する機能が追加されたものである。
【００３８】
実施の形態３にかかる静的検証装置は、探索カバレッジ値算出部２において、あるクロックサイクル期間Δｔにおける探索カバレッジ値の変化量を監視する。ここで、探索カバレッジ値算出部２には、規格値が予め設定されている。すなわち、監視している探索カバレッジ値の変化量が規格値ΔＣよりも小さい場合には、探索カバレッジ値が飽和したものとして検出する。ここで、クロックサイクル期間の単位は、探索深さの単位と同一である。
【００３９】
図８は、探索カバレッジ値の飽和の検出を示すグラフである。曲線Ｌ３では、クロックサイクル期間Δｔの探索カバレッジ値の変化量は規格値ΔＣよりも大きいので、探索カバレッジ値の飽和は検出されない。一方、曲線Ｌ４では、クロックサイクル期間Δｔの探索カバレッジ値の変化量は規格値ΔＣに収まっているので、探索カバレッジ値の飽和が検出される。
【００４０】
探索カバレッジ値算出部２は、探索カバレッジ値の飽和の飽和を検出すると、検出結果を表示部３へ通知する。表示部３は、検出結果に応じて当該検出結果を表示する。この静的検証装置のユーザは、当該表示を視認することにより、実行した静的検証が飽和状態にあることを認識することができる。また、この飽和状態が回路上妥当なものであるかを判断することが出来る。
【００４１】
その他の実施の形態
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述の実施の形態では、本発明をハードウェアの構成として説明したが、本発明は、これに限定されるものではない。本発明は、任意の処理を、ＣＰＵ（Central Processing Unit）にコンピュータプログラムを実行させることにより実現することも可能である。
【００４２】
上述のプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（random access memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【００４３】
１  静的検証部
２  探索カバレッジ値算出部
３  表示部
４  判定部
１１  到達可能な状態数
１２  到達した状態数
１３  検証結果
２１  探索カバレッジ値
５１  回路記述
５２  プロパティ
５３  制約条件
５４  制限時間
１００、２００  静的検証装置
ＣＬＫ  クロック信号
ｅｎ  イネーブル信号
ｇ＿ｏｕｔ［２：０］  出力
６０  グレイコードカウンタ
Ｌ１  曲線
Ｌ２  曲線
【図１】
0005432069.tif 000002
【図２】
0005432069.tif 000003
【図３】
0005432069.tif 000004
【図４】
0005432069.tif 000005
【図５】
0005432069.tif 000006
【図６】
0005432069.tif 000007
【図７】
0005432069.tif 000008
【図８】
0005432069.tif 000009