(57)【要約】【課題】検証期間の短縮化と設計者の作業労力の軽減化を図ること。【解決手段】原因結果グラフ１７００において、ノード１７０１〜１７０３は、それぞれ「状態Ａである」、「Ｃをする」、「Ｄをする」といった原因ノードである。ノード１７０４は、原因ノード１７０１，１７０２の論理積をあらわす。ノード１７０５は、「状態Ｂになる」といった結果をあらわす。ノード１７０６は、「状態Ａになる」といった結果をあらわす結果ノードだが、結果を発生させる原因が存在しない。原因結果記述データ１１１からノード１７０６を検出することで、原因結果記述データ１１１に不足が生じているかをチェックする。このため、原因結果グラフに時間概念を導入し、原因結果グラフのエッジに時間的重みを加える。重みは原因結果グラフのエッジにサイクル数を付すことで表現する。結果ノードまたは途中結果ノードについて、結果が発生する時間に「ｎ〜ｍサイクル」といった範囲が生じる場合には、時間的なＯＲ結合ノードを利用する。【選択図】図１７
2011108289.tif 000002
【特許請求の範囲】
【請求項１】
検証対象回路を構成するレジスタの状態変化の原因に関する記述と前記状態変化の結果に関する記述と前記原因から前記結果までの時間距離とを含む記述データの入力を受け付ける入力手段と、
前記入力手段によって入力された記述データに基づいて、前記原因と前記結果との関係をノードとエッジと前記時間距離によりあらわす原因結果グラフを生成する原因結果グラフ生成手段と、
前記原因結果グラフ生成手段によって生成された原因結果グラフ群の中から、一の原因結果グラフの原因に関するノード（以下、「原因ノード」という）と同一内容の結果に関するノード（以下、「結果ノード」という）を、前記一の原因結果グラフ以外の他の原因結果グラフから探索する探索手段と、
前記探索手段によって探索された探索結果に基づいて、前記一の原因結果グラフの原因ノードと前記他の原因結果グラフの結果ノードとを連結することにより、あらたな原因結果グラフを生成する連結手段と、
前記連結手段によって生成された原因結果グラフと、前記連結手段によって連結されなかった残余の原因結果グラフとに基づいて、前記記述データの整合性を検出する整合性検出手段と、
前記整合性検出手段によって検出された検出結果を出力する出力手段と、
を備えることを特徴とする検証支援装置。
【請求項２】
前記連結手段によって生成された原因結果グラフ（以下、「連結済み原因結果グラフ」という）に前記他の原因結果グラフの結果ノードを追加する追加手段と、
前記追加手段によって追加された結果ノードを含む前記連結済み原因結果グラフを構成するノードのうち、同一時間距離のノード間において排他関係があるか否かを判定することで前記記述データの矛盾性を検出する矛盾性検出手段と、を備え、
前記出力手段は、
前記矛盾性検出手段によって検出された検出結果を出力することを特徴とする請求項１に記載の検証支援装置。
【請求項３】
前記連結手段によって生成された原因結果グラフ（以下、「連結済み原因結果グラフ」という）に含まれる論理和ノードに基づいて、前記連結済み原因結果グラフからサブグラフを抽出するサブグラフ抽出手段を備え、
前記出力手段は、
前記サブグラフ抽出手段によって抽出されたサブグラフを検証シナリオとして出力することを特徴とする請求項１に記載の検証支援装置。
【請求項４】
入力手段、原因結果グラフ生成手段、探索手段、連結手段、整合性検出手段および出力手段を備えるコンピュータが、
前記入力手段により、検証対象回路を構成するレジスタの状態変化の原因に関する記述と前記状態変化の結果に関する記述と前記原因から前記結果までの時間距離とを含む記述データの入力を受け付ける入力工程と、
前記原因結果グラフ生成手段により、前記入力工程によって入力された記述データに基づいて、前記原因と前記結果との関係をノードとエッジと前記時間距離によりあらわす原因結果グラフを生成する原因結果グラフ生成工程と、
前記探索手段により、前記原因結果グラフ生成工程によって生成された原因結果グラフ群の中から、一の原因結果グラフの原因に関するノード（以下、「原因ノード」という）と同一内容の結果に関するノード（以下、「結果ノード」という）を、前記一の原因結果グラフ以外の他の原因結果グラフから探索する探索工程と、
前記連結手段により、前記探索工程によって探索された探索結果に基づいて、前記一の原因結果グラフの原因ノードと前記他の原因結果グラフの結果ノードとを連結することにより、あらたな原因結果グラフを生成する連結工程と、
前記整合性検出手段により、前記連結工程によって生成された原因結果グラフと、前記連結工程によって連結されなかった残余の原因結果グラフとに基づいて、前記記述データの整合性を検出する整合性検出工程と、
前記出力手段により、前記整合性検出工程によって検出された検出結果を出力する出力工程と、
を実行することを特徴とする検証支援方法。
【請求項５】
検証対象回路を構成するレジスタの状態変化の原因に関する記述と前記状態変化の結果に関する記述と前記原因から前記結果までの時間距離とを含む記述データの入力を受け付ける入力工程と、
前記入力工程によって入力された記述データに基づいて、前記原因と前記結果との関係をノードとエッジと前記時間距離によりあらわす原因結果グラフを生成する原因結果グラフ生成工程と、
前記原因結果グラフ生成工程によって生成された原因結果グラフ群の中から、一の原因結果グラフの原因に関するノード（以下、「原因ノード」という）と同一内容の結果に関するノード（以下、「結果ノード」という）を、前記一の原因結果グラフ以外の他の原因結果グラフから探索する探索工程と、
前記探索工程によって探索された探索結果に基づいて、前記一の原因結果グラフの原因ノードと前記他の原因結果グラフの結果ノードとを連結することにより、あらたな原因結果グラフを生成する連結工程と、
前記連結工程によって生成された原因結果グラフと、前記連結工程によって連結されなかった残余の原因結果グラフとに基づいて、前記記述データの整合性を検出する整合性検出工程と、
前記整合性検出工程によって検出された検出結果を出力する出力工程と、
をコンピュータに実行させることを特徴とする検証支援プログラム。
【請求項６】
請求項５に記載の検証支援プログラムを記録した前記コンピュータに読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＬＳＩの論理検証を支援する検証支援装置、検証支援方法、検証支援プログラム、および記録媒体に関する。
【背景技術】
【０００２】
ＬＳＩ設計では、ＬＳＩが正常に動作するか否かを検証する論理検証作業が必要不可欠であり、特に、大規模化、高機能化、高速化および低消費電力化が要求されているＬＳＩについては、高品質を維持するためにもこの論理検証作業は重要である一方、従来から検証期間の短縮による作業効率化が要求されている。
【０００３】
図３７は、従来の検証システムを示す説明図である。検証システム３７００において、設計者により作成された検証対象回路の仕様書３７０１から、設計者の手作業による変換処理３７０２により、レビュー情報３７０３や検証プロパティ３７０４を作成する。レビュー情報３７０３はフィードバックされ、仕様書３７０１を見直すことができる。
【０００４】
また、変換処理により得られた検証プロパティ３７０４や、検証シナリオ３７０５、検証対象回路の回路情報３７０６を検証装置３７１０に与えることで、検証対象回路の論理検証をおこなうことができる。なお、このような検証システムに関連する従来技術として、下記特許文献１〜３が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−１８１９３９号公報
【特許文献２】特開２００３−３０２７０号公報
【特許文献３】特開２００５−１９６６８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、論理回路におけるレジスタなどの状態保存モジュールの論理検証では仕様書より読み取った各レジスタ書き換え条件をモニタし誤りがあれば報告する検証プロパティを大量に作成する必要があった。しかもこれらの検証プロパティ間には優先順位が存在し、その優先順位を考慮した検証プロパティを誤りなく作成することは非常に困難な作業であった。
【０００７】
この発明は、上述した従来技術による問題点を解消するため、検証期間の短縮化と設計者の作業労力の軽減化を図ることができる検証支援装置、検証支援方法、検証支援プログラム、および記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一側面として、検証対象回路を構成するレジスタの状態変化の原因に関する記述と前記状態変化の結果に関する記述と前記原因から前記結果までの時間距離とを含む記述データの入力を受け付け、入力された記述データに基づいて、前記原因と前記結果との関係をノードとエッジと前記時間距離によりあらわす原因結果グラフを生成し、生成された原因結果グラフ群の中から、一の原因結果グラフの原因に関するノード（以下、「原因ノード」という）と同一内容の結果に関するノード（以下、「結果ノード」という）を、前記一の原因結果グラフ以外の他の原因結果グラフから探索し、探索された探索結果に基づいて、前記一の原因結果グラフの原因ノードと前記他の原因結果グラフの結果ノードとを連結することにより、あらたな原因結果グラフを生成し、生成された原因結果グラフと、連結されなかった残余の原因結果グラフとに基づいて、前記記述データの整合性を検出し、検出された検出結果を出力する検証支援装置、検証支援方法、検証支援プログラム、および記録媒体が提案される。
【発明の効果】
【０００９】
本発明にかかる検証支援装置、検証支援方法、検証支援プログラム、および記録媒体によれば、検証期間の短縮化と設計者の作業労力の軽減化を図ることができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】この発明の実施の形態にかかる検証システムのシステム構成図である。
【図２】図１に示したコンピュータ装置のハードウェア構成を示すブロック図である。
【図３】原因結果記述データを示す説明図である。
【図４】テンプレートＤＢの記憶内容を示す説明図である。
【図５】実施の形態１にかかる検証支援装置の機能的構成を示すブロック図である。
【図６】実施の形態１にかかる検証支援処理手順を示すフローチャートである。
【図７】実施の形態１にかかる検証プロパティの自動生成例を示す説明図である。
【図８】実施の形態２にかかる検証支援装置の機能的構成を示すブロック図である。
【図９】実施の形態２にかかる検証支援処理手順を示すフローチャートである。
【図１０】実施の形態２にかかる検証プロパティの自動生成例を示す説明図である。
【図１１】実施の形態３にかかる検証支援装置の機能的構成を示すブロック図である。
【図１２】実施の形態３にかかる検証支援処理手順を示すフローチャートである。
【図１３】実施の形態３にかかる逆命題の検証プロパティの自動生成例を示す説明図である。
【図１４】実施の形態４にかかる検証支援装置の機能的構成を示すブロック図である。
【図１５】生成された仕様書データの一例を示す説明図である。
【図１６】実施の形態４にかかる検証支援処理手順を示すフローチャートである。
【図１７】原因結果グラフを示す説明図である。
【図１８】時間の概念を導入した原因結果グラフの一例を示す説明図である。
【図１９】２つの原因結果グラフの連結例を示す説明図である。
【図２０】実施の形態５にかかる検証支援装置の機能的構成を示すブロック図である。
【図２１】実施の形態５にかかる検証支援装置の検証支援処理手順を示すフローチャートである。
【図２２】実施の形態６にかかる原因結果グラフの矛盾性を示す説明図である。
【図２３】連結処理された原因結果グラフの展開状態を示す説明図である。
【図２４】追加処理後の原因結果グラフを示す説明図である。
【図２５】矛盾が生じた原因結果グラフを示す説明図である。
【図２６】矛盾が生じない原因結果グラフを示す説明図である。
【図２７】実施の形態６にかかる検証支援装置の機能的構成を示すブロック図である。
【図２８】実施の形態６にかかる検証支援装置の検証支援処理手順を示すフローチャートである。
【図２９】原因結果グラフからの検証シナリオの選択例を示す説明図である。
【図３０】実施の形態７にかかる検証支援装置の機能的構成を示すブロック図である。
【図３１】サブグラフの抽出例を示す説明図である。
【図３２】実施の形態６にかかる検証支援装置の検証支援処理手順を示すフローチャートである。
【図３３】カバレッジ情報の生成例を示す説明図である。
【図３４】実施の形態８にかかる検証支援装置の機能的構成を示すブロック図である。
【図３５】実施の形態８にかかる検証支援装置の検証支援処理手順を示すフローチャートである。
【図３６】検証プロパティの波形表示例を示す説明図である。
【図３７】従来の検証システムを示す説明図である。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照して、この発明にかかる検証支援装置、検証支援方法、検証支援プログラム、および記録媒体の好適な実施の形態を詳細に説明する。なお、実施の形態における説明内容は、後述する各実施の形態１〜９に共通する内容である。
【００１２】
（実施の形態）
＜検証システムのシステム構成＞
まず、この発明の実施の形態にかかる検証システムについて説明する。検証システムは、検証対象回路の論理検証をおこなうシステムである。図１は、この発明の実施の形態にかかる検証システムのシステム構成図である。
【００１３】
図１において、検証システム１００は、検証支援装置１０１と検証装置１０２とから構成されている。検証支援装置１０１は、原因結果記述データ１１１を入力し、検証プロパティ１１２、検証シナリオ１１３、仕様書データ１１４、レビュー情報１１５を生成、出力するコンピュータ装置である。原因結果記述データ１１１については図３で後述する。
【００１４】
ここで、検証プロパティ１１２とは、検証対象回路を構成する論理回路におけるレジスタの動作条件を示す原因と、その動作条件を満たした場合の動作内容（状態変化）を示す結果と、からなる記述データである。
【００１５】
たとえば、『レジスタが「０」から「１」に書き換わると２サイクル後に○○になる。』といった検証プロパティ１２１や、『○○になったということは２サイクル前にレジスタが「０」から「１」に書き換わっていなければならない。』といった検証プロパティ１２２などがある。検証プロパティ１１２は、たとえば、ＰＳＬなどの検証プロパティ言語など、コンピュータが解釈可能な言語により記述される。
【００１６】
また、検証シナリオ１１３とは、検証対象回路のある機能の検証する場合に、当該機能の流れ（シナリオ）を示す記述データである。たとえば、ＣＰＵの演算器の機能を検証する場合、『Ａ＋Ｂ＝Ｃになる』という動作がおこなわれるかどうかを検証するために演算器へ入力されるパターンデータである。
【００１７】
検証装置１０２は、検証対象回路の回路情報１１６（たとえば、ＨＤＬ記述やネットリスト）と、検証支援装置１０１からの検証プロパティ１１２や検証シナリオ１１３を取り込んで、検証プロパティ１１２や検証シナリオ１１３どおりに検証対象回路が動作するかどうかを検証するコンピュータ装置である。
【００１８】
＜コンピュータ装置のハードウェア構成＞
つぎに、図１に示したコンピュータ装置（検証支援装置１０１、検証装置１０２）のハードウェア構成について説明する。図２は、図１に示したコンピュータ装置のハードウェア構成を示すブロック図である。図２において、コンピュータ装置は、ＣＰＵ２０１と、ＲＯＭ２０２と、ＲＡＭ２０３と、ＨＤＤ（ハードディスクドライブ）２０４と、ＨＤ（ハードディスク）２０５と、ＦＤＤ（フレキシブルディスクドライブ）２０６と、着脱可能な記録媒体の一例としてのＦＤ（フレキシブルディスク）２０７と、ディスプレイ２０８と、Ｉ／Ｆ（インターフェース）２０９と、キーボード２１０と、マウス２１１と、スキャナ２１２と、プリンタ２１３と、を備えている。また、各構成部はバス２００によってそれぞれ接続されている。
【００１９】
ここで、ＣＰＵ２０１は、コンピュータ装置の全体の制御を司る。ＲＯＭ２０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアとして使用される。ＨＤＤ２０４は、ＣＰＵ２０１の制御にしたがってＨＤ２０５に対するデータのリード／ライトを制御する。ＨＤ２０５は、ＨＤＤ２０４の制御で書き込まれたデータを記憶する。
【００２０】
ＦＤＤ２０６は、ＣＰＵ２０１の制御にしたがってＦＤ２０７に対するデータのリード／ライトを制御する。ＦＤ２０７は、ＦＤＤ２０６の制御で書き込まれたデータを記憶したり、ＦＤ２０７に記憶されたデータを検証支援装置１０１に読み取らせたりする。
【００２１】
また、着脱可能な記録媒体として、ＦＤ２０７のほか、ＣＤ−ＲＯＭ（ＣＤ−Ｒ、ＣＤ−ＲＷ）、ＭＯ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、メモリーカードなどであってもよい。ディスプレイ２０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ２０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００２２】
Ｉ／Ｆ２０９は、通信回線を通じてインターネットなどのネットワークに接続され、このネットワークを介して他の装置に接続される。そして、Ｉ／Ｆ２０９は、ネットワークと内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ２０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００２３】
キーボード２１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス２１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００２４】
スキャナ２１２は、画像を光学的に読み取り、コンピュータ装置内に画像データを取り込む。なお、スキャナ２１２は、ＯＣＲ機能を持たせてもよい。また、プリンタ２１３は、画像データや文書データを印刷する。プリンタ２１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００２５】
＜原因結果記述データ１１１＞
つぎに、図１に示した原因結果記述データ１１１について説明する。図３は、原因結果記述データ１１１を示す説明図である。図３において、原因結果記述データ１１１は、結果定義情報と原因定義情報と、から構成される電子データである。
【００２６】
ここで、結果定義情報とは、レジスタの状態変化の原因およびその結果のうち、レジスタが状態変化した結果を定義する情報である。結果定義情報は、レジスタ情報とフィールド情報と値情報とを有する。レジスタ情報とは、レジスタの物理位置を特定する情報であり、レジスタのアドレスとレジスタ名とから構成される。また、フィールド情報とは、フィールドの位置を示すレンジと、フィールド名から構成される。また、値情報とは、フィールドのとり得る値を特定する情報であり、書換値と当該フィールドがその書換値であるときの意味を表す値情報とその値が初期値かどうかをあらわす情報から構成される。
【００２７】
また、原因定義情報とは、レジスタの状態変化の原因およびその結果のうち、レジスタが状態変化する原因を定義する情報である。原因定義情報は、優先度と書換条件とテンプレート情報とを有する。優先度とは、当該書換条件の優先順位をあらわしている。すなわち、図３の例では、フィールド名：「IntReady0i」を、その指定値「０」に書き換えるための条件の優先度が「１」であることを示している。書換え条件とは、当該フィールドを値情報の書換値にするための条件記述を表す。たとえば、『Ｃ＿ＲＥＳＥＴ＝１となったら次のサイクルで』といったテキストデータが記述される。このテキストデータは、レビューとして表示されることとなる。テンプレート情報とは、前述の書換条件をフォーマルに定義する部であり、後述の図４に示すテンプレートＤＢのテンプレートとパラメータ値を用いて定義される情報である。具体的には、テンプレートの型を特定するテンプレートタイプと、テンプレートタイプのパラメータの定義とを記述する。図３では、テンプレートタイプとして「１−１」が記述され、その「１−１」のパラメータＡを「Ｃ＿ＲＥＳＥＴ」と定義し、パラメータＮを「１」と定義している。
【００２８】
＜テンプレートＤＢ＞
つぎに、テンプレートＤＢについて説明する。図４は、テンプレートＤＢの記憶内容を示す説明図である。図４において、テンプレートＤＢ４００は、テンプレートタイプごとにテンプレート内容とテンプレート記述とを記憶している。テンプレート内容とは、テンプレート記述の意味をあらわす情報（たとえば、テキストデータ）である。また、テンプレート記述は検証プロパティ言語で記述されている。テンプレート記述は、原因−結果に関する記述データを、パラメータを用いて抽象化した情報である。
【００２９】
（実施の形態１）
つぎに、この発明の実施の形態１について説明する。実施の形態１は、「レジスタ書換え条件が発生したらレジスタ値が指定値へ変化する」ことをチェックする検証プロパティ１１２を自動生成する形態である。
【００３０】
＜検証支援装置の機能的構成＞
まず、実施の形態１にかかる検証支援装置の機能的構成について説明する。図５は、実施の形態１にかかる検証支援装置の機能的構成を示すブロック図である。図５において、検証支援装置５００は、テンプレートＤＢ４００と、入力部５０１と、テンプレート抽出部５０２と、検証プロパティ生成部５０３とを備えている。
【００３１】
入力部５０１は、図３に示した原因結果記述データ１１１の入力を受け付ける。テンプレート抽出部５０２は、入力された原因結果記述データ１１１のテンプレートタイプを手がかりとして、テンプレートＤＢ４００からテンプレートタイプが一致するテンプレート記述を抽出する。
【００３２】
検証プロパティ生成部５０３は、テンプレート抽出部５０２によって抽出されたテンプレート記述に、原因結果記述データ１１１の記述内容を与えることにより、検証プロパティ１１２を自動生成する。生成された検証プロパティ１１２の集合は、検証プロパティ群５１０としてメモリ（たとえば、図２に示したＲＡＭ２０３、ＨＤ２０５など）に保持される。
【００３３】
なお、上述した入力部５０１、テンプレート抽出部５０２、および検証プロパティ生成部５０３は、具体的には、たとえば、図２に示したＲＯＭ２０２，ＲＡＭ２０３，ＨＤ２０５などの記録媒体に記録されているプログラムを、ＣＰＵ２０１に実行させることによって、またはＩ／Ｆ２０９によって、その機能を実現する。
【００３４】
＜検証支援装置５００の検証支援処理手順＞
図６は、実施の形態１にかかる検証支援処理手順を示すフローチャートである。図６において、まず、入力部５０１により、原因結果記述データ１１１の入力を待ち受ける（ステップＳ６０１：Ｎｏ）。
【００３５】
そして、原因結果記述データ１１１が入力された場合（ステップＳ６０１：Ｙｅｓ）、未処理のレジスタがあるか否かを判断する（ステップＳ６０２）。未処理のレジスタがあった場合（ステップＳ６０２：Ｙｅｓ）、テンプレート抽出部５０２により、その原因結果記述データ１１１に該当するテンプレート記述を抽出する（ステップＳ６０３）。
【００３６】
そして、検証プロパティ生成部５０３により、抽出されたテンプレート記述に原因結果記述データ１１１を与えることにより、検証プロパティ１１２を生成し（ステップＳ６０４）、ステップＳ６０２に戻る。なお、ステップＳ６０２において、未処理のレジスタがないと判断された場合（ステップＳ６０２：Ｎｏ）、一連の処理を終了する。生成された検証プロパティ１１２は、検証装置１０２に与えられ、検証対象回路の論理検証が実行される。
【００３７】
＜具体例＞
図７は、実施の形態１にかかる検証プロパティ１１２の自動生成例を示す説明図である。ここでは、図３に示した原因結果記述データ１１１を例にあげて説明する。図３に示した原因結果記述データ１１１が与えられた場合、原因結果記述データ１１１のテンプレートタイプを手がかりとして、図４に示したテンプレートＤＢ４００からテンプレート記述を抽出する。
【００３８】
そして、抽出されたテンプレート記述に、レジスタ書き換え条件として、原因結果記述データ１１１内のパラメータＡを与え、レジスタ値の指定値変化として、パラメータＮと、フィールド名：ＩｎｔＲｄｙ０ｉと、値：０（１’ｂ０）を与えることにより、
『ＩｎｔＲｄｙ０ｉはＣ＿ＲＥＳＥＴ＝１となったら次のサイクルで０へ書き換わり』
を意味する検証プロパティ１１２を生成する。
【００３９】
このように、実施の形態１によれば、設計者は、原因結果記述データ１１１を与えるだけで、「レジスタ書換え条件が発生したらレジスタ値が指定値へ変化する」ことをチェックする検証プロパティ１１２を簡単かつ自動的に生成することができる。したがって、設計者による検証作業の効率化、検証期間の短縮化を図ることができる。
【００４０】
（実施の形態２）
つぎに、この発明の実施の形態２について説明する。実施の形態２は、実施の形態１において、競合条件を追加表現する形態である。競合とは、複数の検証プロパティ１１２間で、矛盾しあう結果が同時に起こることである。このような場合、原因結果記述データ１１１の優先度の値をチェックして、検証プロパティ１１２に追加することで、優先順位の低い検証プロパティ１１２を用いた検証を途中でキャンセルすることができる。なお、実施の形態１と同一構成には同一符号を付し、その説明を省略する。
【００４１】
＜検証支援装置の機能的構成＞
まず、実施の形態２にかかる検証支援装置の機能的構成について説明する。図８は、実施の形態２にかかる検証支援装置の機能的構成を示すブロック図である。図８において、検証支援装置８００は、入力部５０１、テンプレート抽出部５０２、および検証プロパティ生成部５０３のほか、検証プロパティ抽出部８０１と、書換条件生成部８０２と、を有する。
【００４２】
検証プロパティ抽出部８０１は、検証プロパティ群５１０から競合しあう検証プロパティ１１２を抽出する。書換条件生成部８０２は、抽出された競合しあう検証プロパティ１１２におけるレジスタの書き換えが発生する条件を示す記述データ（書換条件）を生成する。
【００４３】
検証プロパティ生成部５０３は、競合しあう検証プロパティ生成元となる原因結果記述データ１１１の優先度に基づいて、優先度の高い書換条件を検証プロパティ１１２のキャンセル条件に追加する。具体的には、たとえば、検証プロパティ言語の一つであるＰＳＬのａｂｏｒｔ文を用いて、優先度の低い方の検証プロパティ１１２のabort文に、優先度
が高い方の検証プロパティ１１２の書換条件を追加する。
【００４４】
なお、上述した検証プロパティ抽出部８０１、および書換条件生成部８０２は、具体的には、たとえば、図２に示したＲＯＭ２０２，ＲＡＭ２０３，ＨＤ２０５などの記録媒体に記録されているプログラムを、ＣＰＵ２０１に実行させることによって、またはＩ／Ｆ２０９によって、その機能を実現する。
【００４５】
＜検証支援装置８００の検証支援処理手順＞
図９は、実施の形態２にかかる検証支援処理手順を示すフローチャートである。図９において、まず、検証プロパティ抽出部８０１により、任意の検証プロパティ１１２を抽出し（ステップＳ９０１）、この検証プロパティ１１２と競合する検証プロパティ１１２が抽出されたか否かを判断する（ステップＳ９０２）。競合する検証プロパティ１１２が抽出されなかった場合（ステップＳ９０２：Ｎｏ）、ステップＳ９０５に移行する。
【００４６】
一方、競合する検証プロパティ１１２が抽出された場合（ステップＳ９０２：Ｙｅｓ）、書換条件生成部８０２により競合しあう検証プロパティ１１２ごとに書換条件を生成する（ステップＳ９０３）。そして、検証プロパティ生成部５０３により、競合しあう検証プロパティ１１２の優先度に基づいて、優先度チェック済み検証プロパティ１１２を生成する（ステップＳ９０４）。
【００４７】
そして、優先度未チェックの検証プロパティ１１２があるか否かを判断し（ステップＳ９０５）、優先度未チェックの検証プロパティ１１２がある場合（ステップＳ９０５：Ｙｅｓ）、ステップＳ９０２に戻る。一方、優先度未チェックの検証プロパティ１１２がない場合（ステップＳ９０５：Ｎｏ）、一連の処理を終了する。
【００４８】
＜具体例＞
図１０は、実施の形態２にかかる検証プロパティ１１２の自動生成例を示す説明図である。図１０中、検証プロパティＰ１は、「Ｃ＿ＲＥＳＥＴ＝１となったら次のサイクルで０へ書き換わり」であり、検証プロパティＰ２は、「Ｉｎｉｔ０ｉビットが解除されたら１へ書き換わり」とする。ここでは、便宜上、自然言語であらわしているが、実際は検証プロパティ言語で記述されている。
【００４９】
また、検証プロパティＰ１は優先度：１とし、検証プロパティＰ２は優先度：３とする。検証プロパティＰ１と検証プロパティＰ２は、レジスタの書き換え結果が互いに矛盾するプロパティである。
【００５０】
検証プロパティ抽出部８０１により、競合しあう検証プロパティＰ１，Ｐ２が抽出されると、書換条件生成部８０２により、検証プロパティＰ１の書換条件ＣＮ１と、検証プロパティＰ２の書換条件ＣＮ２とを生成する。
【００５１】
検証プロパティＰ１において、「Ｃ＿ＲＥＳＥＴ＝１」が発生するということは、それ以前が「Ｃ＿ＲＥＳＥＴ＝０」であるということが条件となる。したがって、書換条件ＣＮ１が生成される。同様に、検証プロパティＰ２では、「Ｉｎｉｔ０ｉビット」の解除前が「１」であり解除後が「０」ということである。
【００５２】
書換条件ＣＮ１：ｅｎｄｐｏｉｎｔ  ＣＮ１＝｛〜Ｃ＿ＲＥＳＥＴ；Ｃ＿ＲＥＳＥＴ｝；書換条件ＣＮ２：ｅｎｄｐｏｉｎｔ  ＣＮ２＝｛Ｉｎｉｔ０ｉ；〜Ｉｎｉｔ０ｉ｝；
【００５３】
そして、検証プロパティ生成部５０３では、優先度の高い方の検証プロパティＰ１には、その書換条件ＣＮ１を追加することにより、優先度チェック済み検証プロパティＱ１を生成する。一方、優先度の低い方の検証プロパティＰ２には、その書換条件ＣＮ２を検証プロパティＰ２に追加するとともに、検証プロパティ言語のａｂｏｒｔなどで記述された書換条件ＣＮ１からなるキャンセル文を追加することで、優先度チェック済みプロパティＱ２を生成する。
【００５４】
これにより、優先度チェック済み検証プロパティＱ２では、書換条件ＣＮ１が発生した場合、チェックをキャンセルすることとなる。したがって、優先度チェック済み検証プロパティＱ１，Ｑ２は競合することはない。
【００５５】
したがって、検証プロパティ間で競合が発生しても、優先度の低い方の検証プロパティのチェックがキャンセルされ、優先度が高い検証プロパティのチェックが継続するということとなる。
【００５６】
このように、実施の形態２によれば、設計者は、原因結果記述データ１１１に優先度を与えるだけで、優先度が高い条件が発生したら低い条件のチェックをキャンセルするという検証プロパティを、検証プロパティ言語のキャンセル文（たとえばＰＳＬのａｂｏｒｔ文）により簡単かつ自動的に生成することができる。したがって、設計者による検証作業の効率化、検証期間の短縮化を図ることができる。
【００５７】
（実施の形態３）
つぎに、この発明の実施の形態３について説明する。実施の形態３は、実施の形態１において、逆命題の検証プロパティ１１２を生成する形態である。ここで、逆命題とは、レジスタ値が変化（０→１または１→０）したならば必ず変化する前（もしくは変化と同じタイミング）に書換え条件が発生していることをチェックすることである。
【００５８】
＜検証支援装置の機能的構成＞
まず、実施の形態３にかかる検証支援装置の機能的構成について説明する。図１１は、実施の形態３にかかる検証支援装置の機能的構成を示すブロック図である。図１１において、検証支援装置１１００は、入力部５０１、テンプレート抽出部５０２、および検証プロパティ生成部５０３のほか、逆命題書換条件生成部１１０１と、を有する。
【００５９】
逆命題書換条件生成部１１０１は、入力部５０１によって入力された原因結果記述データ１１１から書換条件を抽出し、逆命題の書換条件を生成する。具体的には、ある書換結果が発生するための一または複数の書換条件を抽出する。たとえば、『ＩｎｔＲｄｙ０ｉは次のサイクルで０へ書き換わり』という書換結果があるとすると、当該結果が発生するための書換条件（たとえば、『Ｃ＿ＲＥＳＥＴ＝１となったら』など）を抽出する。そして、個々の書換条件によるキャンセル文を（たとえばＰＳＬのａｂｏｒｔ文）を用いて表現することで、逆命題の書換条件を生成する。
【００６０】
この場合、検証プロパティ生成部５０３では、逆命題の書換条件が与えられると、検証プロパティ言語の記述の否定文（たとえばＰＳＬのｎｅｖｅｒ文）を用いて、逆命題の書換結果を表現する。この逆命題の書換条件と逆命題の書換結果とを組み合わせることで、逆命題の検証プロパティ「書換結果は発生することがない。ただし書換条件が発生する場合を除く」を生成することができる。
【００６１】
なお、上述した逆命題書換条件生成部１１０１は、具体的には、たとえば、図２に示したＲＯＭ２０２，ＲＡＭ２０３，ＨＤ２０５などの記録媒体に記録されているプログラムを、ＣＰＵ２０１に実行させることによって、またはＩ／Ｆ２０９によって、その機能を実現する。
【００６２】
＜検証支援装置１１００の検証支援処理手順＞
図１２は、実施の形態３にかかる検証支援処理手順を示すフローチャートである。図１２において、まず、入力部５０１により、原因結果記述データ１１１の入力を待ち受ける（ステップＳ１２０１：Ｎｏ）。
【００６３】
そして、原因結果記述データ１１１が入力された場合（ステップＳ１２０１：Ｙｅｓ）、未処理のレジスタがあるか否かを判断する（ステップＳ１２０２）。未処理のレジスタがあった場合（ステップＳ１２０２：Ｙｅｓ）、テンプレート抽出部５０２により、その原因結果記述データ１１１に該当するテンプレート記述を抽出する（ステップＳ１２０３）。
【００６４】
つぎに、逆命題書換条件生成部１１０１により、入力された原因結果記述データ１１１から書換条件を抽出して、逆命題の書換条件を生成する（ステップＳ１２０４）。そして、検証プロパティ生成部５０３により、逆命題の検証プロパティ１１２を生成し（ステップＳ１２０５）、ステップＳ１２０２に戻る。なお、ステップＳ１２０２において、未処理のレジスタがないと判断された場合（ステップＳ１２０２：Ｎｏ）、一連の処理を終了する。生成された逆命題の検証プロパティは、検証装置１０２に与えられ、検証対象回路の論理検証が実行される。
【００６５】
＜具体例＞
図１３は、実施の形態３にかかる逆命題の検証プロパティ１１２の自動生成例を示す説明図である。ここでは、「レジスタのＩｎｔＲｄｙ０ｉが１から０へ書き換わった」という結果を例にして説明する。
【００６６】
０への書換条件がＣＮ１〜ＣＮ９とすると、「レジスタのＩｎｔＲｄｙ０ｉが１から０へ書き換わった」ということは、書換条件ＣＮ１〜ＣＮ９のうち少なくともいずれか一つが発生しているばずである。換言すれば、「書換条件ＣＮ１〜ＣＮ９なしでは、「レジスタのＩｎｔＲｄｙ０ｉが１から０へ書き換わらない」ことと同じである。
【００６７】
したがって、書換条件ＣＮ１〜ＣＮ９によるキャンセル文をたとえばＰＳＬのａｂｏｒｔ文を用いて表現し、また、「レジスタのＩｎｔＲｄｙ０ｉが１から０へ書き換わった」という記述の否定文をたとえばＰＳＬのｎｅｖｅｒ文を用いて表現する。この２つの表現を組み合わせることで、逆命題の検証プロパティ１１２を生成することができる。
【００６８】
このように、実施の形態３によれば、設計者は、逆命題の検証プロパティを自動的に生成することができるため、検証プロパティ１１２の品質向上および検証精度の向上を図ることができる。したがって、設計者による検証作業の効率化、検証期間の短縮化を図ることができる。
【００６９】
（実施の形態４）
つぎに、実施の形態４について説明する。実施の形態４は、仕様書データ１１４を自動生成する形態である。仕様書データ１１４を自動生成することができれば、設計者の仕様書作成の負担を軽減することができる。また、設計者が作成した仕様書と比較して矛盾箇所を見つけることができる。
【００７０】
＜検証支援装置の機能的構成＞
まず、実施の形態４にかかる検証支援装置の機能的構成について説明する。図１４は、実施の形態４にかかる検証支援装置の機能的構成を示すブロック図である。図１４において、検証支援装置１４００は、入力部１４０１と、データ抽出部１４０２と、仕様書データ生成部１４０３と、から構成されている。
【００７１】
図１４において、入力部１４０１は、図３に示した原因結果記述データ１１１の入力を受け付ける。データ抽出部１４０２は、原因結果記述データ１１１から、仕様書データ１１４の生成に必要なデータを抽出する。仕様書データ生成部１４０３は、データ抽出部１４０２によって抽出されたデータを用いて、仕様書データ１１４を生成する。
【００７２】
なお、上述した入力部１４０１、データ抽出部１４０２、および仕様書データ生成部１４０３は、具体的には、たとえば、図２に示したＲＯＭ２０２，ＲＡＭ２０３，ＨＤ２０５などの記録媒体に記録されているプログラムを、ＣＰＵ２０１に実行させることによって、またはＩ／Ｆ２０９によって、その機能を実現する。
【００７３】
図１５は、生成された仕様書データ１１４の一例を示す説明図である。レジスタマップ１５０１は、レジスタ内の「アドレス」と「レジスタ名」とを関連付けたマップである。「アドレス」および「レジスタ名」は、原因結果記述データ１１１のレジスタ情報から抽出される。フィールドマップ１５０２は、「ビット番号」と「フィールド名」と「初期値」とからなるマップである。
【００７４】
「ビット番号」は、原因結果記述データ１１１のフィールド情報内の「レンジ」から抽出される。「フィールド名」は、原因結果記述データ１１１のフィールド情報内の「フィールド名」から抽出される。「初期値」は、原因結果記述データ１１１のフィールド情報内の「初期値」欄に印がある「書換値」から抽出される。
【００７５】
また、レジスタ詳細説明表（ビット詳細説明および変化条件）１５０３は、「値」とその「意味」とを関連付けたデータである。「値」は原因結果記述データ１１１のフィールド情報内の「書換値」から抽出される。「意味」は「値情報」から抽出される。
【００７６】
＜検証支援装置１４００の検証支援処理手順＞
図１６は、実施の形態４にかかる検証支援処理手順を示すフローチャートである。図１６において、まず、入力部１４０１により、原因結果記述データ１１１の入力を待ち受ける（ステップＳ１６０１：Ｎｏ）。そして、原因結果記述データ１１１が入力された場合（ステップＳ１６０１：Ｙｅｓ）、データ抽出部１４０２により、原因結果記述データ１１１のレジスタ情報から「アドレス」および「レジスタ名」を抽出する（ステップＳ１６０２）。そして、仕様書データ生成部１４０３により、レジスタマップ１５０１を生成する（ステップＳ１６０３）。
【００７７】
つぎに、生成されたレジスタマップ１５０１の中で未処理のレジスタがあるか否かを判断する（ステップＳ１６０４）。未処理のレジスタがある場合（ステップＳ１６０４：Ｙｅｓ）、データ抽出部１４０２により、原因結果記述データ１１１から「ビット番号」、「フィールド名」および「初期値」を抽出する（ステップＳ１６０５）。そして、仕様書データ生成部１４０３により、フィールドマップ１５０２を生成する（ステップＳ１６０６）。そして、ステップＳ１６０４に戻る。
【００７８】
また、ステップＳ１６０４において、未処理のレジスタがない場合（ステップＳ１６０４：Ｎｏ）、データ抽出部１４０２により、「値」および「意味」を抽出する（ステップＳ１６０７）。そして、仕様書データ生成部１４０３により、レジスタ詳細説明表１５０３を生成する（ステップＳ１６０８）。これにより、一連の処理を終了する。
【００７９】
この実施の形態４によれば、仕様書データ１１４（レジスタマップ１５０１、フィールドマップ１５０２、レジスタ詳細説明表１５０３）を自動生成することができるため、設計者の仕様書作成の負担を軽減することができる。また、設計者が作成した仕様書と比較して矛盾箇所を見つけることができる。これにより、設計者による検証作業の効率化、検証期間の短縮化を図ることができる。
【００８０】
（実施の形態５）
つぎに、実施の形態５について説明する。実施の形態５は、原因結果グラフを用いて原因結果記述データ１１１において不足な部分がないかどうかをチェックする形態である。原因結果グラフは、ノードとエッジにより、図３に示した原因結果記述データ１１１を図形化したデータである。ノードは原因と結果（途中結果含む）をあらわしている。各ノードの左側には、原因や結果（途中結果含む）をあらわす記述を付す。また、エッジはノードを連結することで、連結先のノードの原因と結果の因果関係をあらわしている。
【００８１】
図１７は、原因結果グラフを示す説明図である。図１７に示した原因結果グラフ１７００において、ノード１７０１〜１７０３は、それぞれ「状態Ａである」、「Ｃをする」、「Ｄをする」といった原因をあらわすノードである。以降、原因をあらわすノードを原因ノードと称す。リーフノードは原因ノードとなる。
【００８２】
ノード１７０４は、原因ノード１７０１，１７０２の論理積（ＡＮＤ）をあらわすノードである。ルートノードでもなくリーフノードでもないノードは途中結果ノードとなる。論理和（ＯＲ）ノードも途中結果ノードとなりうる。ノード１７０５は、「状態Ｂになる」といった結果をあらわすノードである。以降、結果をあらわすノードを結果ノードと称す。ルートノードは結果ノードとなる。
【００８３】
ノード１７０６は、ノード１７０１〜１７０５からなる原因結果グラフ１７００に連結されていないノードである。ノード１７０６は、「状態Ａになる」といった結果をあらわす結果ノードであるが、その結果を発生させる原因（レジスタ書換条件）が存在しない。実施の形態５では、原因結果記述データ１１１から、このようなノード１７０６を検出することで、原因結果記述データ１１１に不足が生じているか否かをチェックする。
【００８４】
このように、原因結果記述データ１１１の不足分をチェックするため、原因結果グラフに時間概念を導入する。時間の概念をあらわすため、原因結果グラフのエッジに時間的重みを加える。この重みは、原因結果グラフのエッジにサイクル数を付すことで表現する。
【００８５】
また、結果ノードまたは途中結果ノードについて、結果が発生する時間に「ｎ〜ｍサイクル」といった範囲が生じる場合には、時間的なＯＲ（論理和）結合ノード（以下、「ｔＯＲ」と称することもある。）を利用する。
【００８６】
図１８は、時間の概念を導入した原因結果グラフの一例を示す説明図である。この原因結果グラフ１８００は、『状態ＡのときにＣをすると２〜３サイクル後に状態Ｂになる』ということをあらわしている。
【００８７】
また、原因結果記述データ１１１から原因結果グラフが生成された場合、原因結果グラフ間の整合性チェックのため、一つの原因結果グラフの原因ノードとこの原因ノードと一致する他の原因結果グラフの結果ノードとを連結する。
【００８８】
図１９は、２つの原因結果グラフの連結例を示す説明図である。図１９において、原因結果グラフ１９０１は、図１８に示した原因結果グラフ１８００の原因ノードをまとめたグラフである。原因結果グラフ１９０１は、ノードＮａ，Ｎｂ，Ｎｃ，Ｎ１〜Ｎ３からなるグラフである。ノードＮａ，Ｎｃは原因ノード、ノードＮｂは結果ノードである。また、原因結果グラフ１９０２は、ノードＮａ，Ｎｅ，Ｎｆからなるグラフである。ノードＮｅは原因ノードであり、ノードＮａ，Ｎｆは結果ノードである。
【００８９】
図１９において、原因結果グラフ１９０１の原因ノードＮａと原因結果グラフ１９０２の結果ノードＮａとは同一であるため、原因ノードＮａと結果ノードＮａとを連結することで、あらたな原因結果グラフ１９０３を生成する。
【００９０】
＜検証支援装置の機能的構成＞
つぎに、実施の形態５にかかる検証支援装置の機能的構成について説明する。図２０は、実施の形態５にかかる検証支援装置の機能的構成を示すブロック図である。図２０において、検証支援装置２０００は、入力部２００１と、原因結果グラフ生成部２００２と、ノード探索部２００３と、連結部２００４と、整合性検出部２００５と、出力部２００６とから構成されている。
【００９１】
入力部２００１は、図３に示した原因結果記述データ１１１の入力を受け付ける。原因結果グラフ生成部２００２は、原因結果記述データ１１１に基づいて原因結果グラフを生成する。たとえば、状態変化前のレジスタの状態を原因ノードとし、状態変化後のレジスタの状態を結果ノードとし、エッジで連結する。また、テンプレート情報のパラメータＮからサイクル数を読み出して、エッジの時間的な重みとする。
【００９２】
ノード探索部２００３は、一の原因結果グラフの原因ノードに一致する他の原因結果グラフの結果ノードを探索する。具体的には、図１９に示したように、原因結果グラフ１９０１の原因ノードＮａに一致する原因結果グラフ１９０２の結果ノードＮａを探索する。
【００９３】
また、連結部２００４は、ノード探索部２００３による探索結果に基づいて、原因結果グラフどうしを連結する。具体的には、図１９に示したように、原因結果グラフ１９０１の原因ノードＮａに一致する結果ノードが他の原因結果グラフ１９０２にある場合、原因結果グラフ１９０１の原因ノードＮａと原因結果グラフ１９０２の結果ノードＮａとを連結し、あらたな原因結果グラフ１９０３を生成する。
【００９４】
整合性検出部２００５は、連結部２００４による連結終了後の原因結果グラフの中から、結果ノードのみからなる原因結果グラフを検出する。換言すれば、連結処理を繰り返した結果、原因結果グラフにおいてリーフノードが外部入力での処理のみで構成されているかどうかをチェックする。出力部２００６は、整合性検出部２００５によって検出された検出結果をレビュー情報１１５として出力する。
【００９５】
なお、上述した入力部２００１、原因結果グラフ生成部２００２、ノード探索部２００３、連結部２００４、整合性検出部２００５、および出力部２００６は、具体的には、たとえば、図２に示したＲＯＭ２０２，ＲＡＭ２０３，ＨＤ２０５などの記録媒体に記録されているプログラムを、ＣＰＵ２０１に実行させることによって、またはＩ／Ｆ２０９によって、その機能を実現する。
【００９６】
＜検証支援装置２０００の検証支援処理手順＞
つぎに、実施の形態５にかかる検証支援装置２０００の検証支援処理手順について説明する。図２１は、実施の形態５にかかる検証支援装置２０００の検証支援処理手順を示すフローチャートである。
【００９７】
図２１において、まず、入力部２００１により、原因結果記述データ１１１の入力を待ち受ける（ステップＳ２１００：Ｎｏ）。そして、原因結果記述データ１１１が入力された場合（ステップＳ２１００：Ｙｅｓ）、原因結果グラフ生成部２００２により、原因結果グラフを生成する（ステップＳ２１０２）。そして、ノード探索部２００３により、生成された原因結果グラフの集合の中から、任意の原因結果グラフを抽出する（ステップＳ２１０３）。
【００９８】
抽出した原因結果グラフのすべての原因ノードを処理していない場合（ステップＳ２１０４：Ｎｏ）、その原因結果グラフの原因ノードに一致する結果ノードを他の原因結果グラフから探索されたか否かを判断する（ステップＳ２１０５）。探索された場合（ステップＳ２１０５：Ｙｅｓ）、連結部２００４により、原因結果グラフどうしを連結し（ステップＳ２１０６）、ステップＳ２１０４に戻る。一方、探索されなかった場合（ステップＳ２１０５：Ｎｏ）、連結をおこなわずにステップＳ２１０４に戻る。
【００９９】
すべての原因ノードが処理された場合（ステップＳ２１０４：Ｙｅｓ）、すべての原因結果グラフを処理したか否かを判断する（ステップＳ２１０７）。処理していない場合（ステップＳ２１０７：Ｎｏ）、ステップＳ２１０３に戻る。一方、処理した場合（ステップＳ２１０７：Ｙｅｓ）、整合性検出部２００５により整合性チェックをおこない（ステップＳ２１０８）、その結果を出力部２００６によりレビュー情報１１５として出力する（ステップＳ２１０９）。これにより、一連の処理を終了する。
【０１００】
この実施の形態５によれば、原因結果グラフを用いて原因結果記述データ１１１において不足な部分がないかどうかという整合性のチェックをおこなうことができる。したがって、設計者は、原因結果記述データ１１１を検証プロパティ１１２の生成に先立って確認することができ、不足部分がある場合には、原因結果記述データ１１１の見直しをおこなうことができる。
【０１０１】
この見直し後の原因結果記述データ１１１を上述した実施の形態１〜４に適用することにより、高品質の検証プロパティ１１２や仕様書データ１１４を自動生成することができ、誤った検証プロパティ１１２や仕様書データ１１４の生成を未然に防止することができる。
【０１０２】
（実施の形態６）
つぎに、実施の形態６について説明する。実施の形態６は、実施の形態５に示した原因結果グラフを用いて原因結果記述データ１１１に矛盾性があるかどうかをチェックする形態である。このチェックは、原因結果グラフ間において、同一タイミングのノードどうしの排他関係の有無によりおこなわれる。
【０１０３】
矛盾性の有無は、同一タイミングのノードの内容が排他関係にあるか否かによりチェックする。たとえば、同一タイミングで、一方のノードが『レジスタのＩｎｔＲｄｙ０ｉが１から０へ書き換わった』という結果をあらわし、他方のノードが『レジスタのＩｎｔＲｄｙ０ｉが１から０へ書き換わった』という結果をあらわしている場合、両者は矛盾することとなる。
【０１０４】
図２２は、実施の形態６にかかる原因結果グラフの排他関係を示す説明図である。図２２において、原因結果グラフ２２００と原因結果グラフ２２１０は、上述した実施の形態５による連結処理前の状態を示している。そして、原因結果グラフ２２００の原因ノード２２０１と原因結果グラフ２２１０の原因ノード２２１１との間に排他関係があるか否かをチェックする。
【０１０５】
矛盾性の有無を調べる場合、それに先立って、実施の形態５で示したように、原因結果グラフを連結し、エッジに時間距離をあらわす時間的重みを付す。そして、一つのノードから結果ノードまでの経路が複数存在し、かつ、結果ノードまでの時間距離が異なる場合には、当該のノードを展開する。また、混同を避けるため、展開されたノードにレベルを付す。
【０１０６】
図２３は、連結処理された原因結果グラフの展開状態を示す説明図である。ここでは、図１９に示した連結処理後の原因結果グラフ１９０３を展開する。結果ノードＮｂをノードＮａまで辿る場合、２つの経路が特定される。１つは、Ｎｂ−Ｎ３−Ｎ１−Ｎａという経路であり、その経路におけるノードＮａ〜ノードＮｂまでの時間距離は、その経路中のエッジに付された時間的重みの合計値「２」となる。
【０１０７】
もう１つは、Ｎｂ−Ｎ３−Ｎ２−Ｎａという経路であり、その経路におけるノードＮａ〜ノードＮｂまでの時間距離は、その経路中のエッジに付された時間的重みの合計値「３」となる。このようにノードＮａから結果ノードＮｂまでの経路が複数存在するため同数の時間距離が存在する。
【０１０８】
このような場合、ノードＮａを経路ごとに展開する。この展開によりノードＮａが２つ存在することとなるが、区別するためにラベルを付す。時間距離「２」の経路Ｎｂ−Ｎ３−Ｎ１−Ｎａについては、ラベルｔ１と時間距離「２」を付し、時間距離「３」の経路Ｎｂ−Ｎ３−Ｎ２−Ｎａについては、ラベルｔ２と時間距離「３」を付す。ノードＮｃ，Ｎｅについても同様に展開する。
【０１０９】
なお、同一経路のノードには同一ラベルを付す。たとえば、ノードＮ１を含む経路Ｎｂ−Ｎ３−Ｎ１−Ｎａのノードに対しては同一ラベルｔ１を付し、ノードＮ２を含む経路Ｎｂ−Ｎ３−Ｎ２−Ｎａのノードに対しては同一ラベルｔ２を付す。
【０１１０】
このように、原因結果グラフ１９０３を展開すると、原因結果グラフ２３００が得られる。以後、展開したノードが展開した数存在するため、ラベルと時間距離を用いて区別する。たとえば、ノードＮａは２つ存在するため、一方のノードＮａをノードＮａ（ｔ１，２）と標記し、他方のノードＮａをノードＮａ（ｔ２，３）と標記する。
【０１１１】
つぎに、上述した展開処理による展開後の原因結果グラフの原因ノードに、他の結果ノードが関連付けられる場合には、当該他の結果ノードを追加する。展開後の原因結果グラフ１９０３は、もともと図１９に示した原因結果グラフ１９０１と原因結果グラフ１９０２とが連結されたグラフであり、連結後の原因結果グラフ１９０３は、結果ノードＮｂのみを結果ノードとしていたため、原因結果グラフ１９０２の結果ノードＮｆは除外していたが、ここでは、その結果ノードＮｆを原因結果グラフ１９０３に追加する。
【０１１２】
図２４は、追加処理後の原因結果グラフを示す説明図である。図２４に示した原因結果グラフ２４００は、図２３に示した原因結果グラフ２３００に、図１９に示した結果ノードＮｆを追加したグラフである。
【０１１３】
また、追加される結果ノードＮｆに対する同一原因ノードＮｅが展開により複数（ここでは２つ）存在する。原因ノードＮｅ（ｔ１，３）に対しては、結果ノードＮｆに対しても同一ラベルｔ１を付す。また、時間距離は、図１９に示した連結前の原因結果グラフにおける原因ノードＮｅと結果ノードＮｆ間のエッジの時間的重み分減算する。
【０１１４】
この場合、原因ノードＮｅ（ｔ１，３）の時間距離は「３」であり、原因ノードＮｅと結果ノードＮｆ間のエッジの時間的重みは「１」であるため、ノードＮｆの時間距離は「２」となる。原因ノードＮｅ（ｔ２，４）に対しても、上記と同様にノードＮｆを追加して、結果ノードＮｆ（ｔ２，３）とする。
【０１１５】
そして、同一ラベル、同一時間距離のノードの間に排他関係があるかどうかをチェックする。チェックされる排他関係は、ユーザーから指示されるものと、同じフィールドに異なる値書換えがあるといった関係のように自動抽出されるものとがある。
【０１１６】
図２５は、矛盾性が存在する原因結果グラフを示す説明図である。たとえば、同一ラベル同一時間距離をもつノードＮｆ（ｔ１，２）とノードＮｃ（ｔ１，２）に排他関係があるかどうかをチェックする。同様に、ノードＮｆ（ｔ２，３）とノードＮｃ（ｔ２，３）についても排他関係があるかどうかをチェックする。ラベルが異なっていたり、時間距離が異なっている場合、排他関係が存在しても矛盾は生じない。
【０１１７】
図２６は、矛盾性が生じない原因結果グラフを示す説明図である。図２６において、ノードＮｆ（ｔ１，１）とノードＮｃ（ｔ１，２）とは、時間距離が異なっている。したがって、ノードＮｆ（ｔ１，１）とノードＮｃ（ｔ１，２）の内容が排他関係にあったとしても、時間がずれているため矛盾性はなく共存することとなる。ノードＮｆ（ｔ２，２）とノードＮｃ（ｔ２，３）についても同様である。
【０１１８】
＜検証支援装置の機能的構成＞
つぎに、実施の形態６にかかる検証支援装置の機能的構成について説明する。図２７は、実施の形態６にかかる検証支援装置の機能的構成を示すブロック図である。なお、実施の形態５に示した構成と同一構成には同一符号を付し、その説明を省略する。検証支援装置２７００は、入力部２００１、原因結果グラフ生成部２００２、ノード探索部２００３、連結部２００４、整合性検出部２００５、出力部２００６のほか、連結済み原因結果グラフ群２７０１と、グラフ抽出部２７０２と、展開部２７０３と、追加部２７０４と、矛盾性検出部２７０５と、を備えている。
【０１１９】
連結済み原因結果グラフ群２７０１は、連結部２００４によって連結された連結済み原因結果グラフの集合である。グラフ抽出部２７０２は、連結済み原因結果グラフ群２７０１から連結済み原因結果グラフを抽出する。展開部２７０３は、抽出された連結済み原因結果グラフについて、図２３に示した展開処理をおこなう。追加部２７０４は、図２４に示したように、展開処理された原因結果グラフに、連結部２００４により除外された結果ノードを追加する。
【０１２０】
矛盾性検出部２７０５は、図２５および図２６に示したように、追加処理済みの原因結果グラフ内の同一ラベル、同一時間距離である二つ以上のノードの間に排他関係があるかどうかをチェックする。なお、出力部２００６は、矛盾性検出部２７０５による検出結果をレビュー情報１１５として出力する。
【０１２１】
なお、上述したグラフ抽出部２７０２、展開部２７０３、追加部２７０４、および矛盾性検出部２７０５は、具体的には、たとえば、図２に示したＲＯＭ２０２，ＲＡＭ２０３，ＨＤ２０５などの記録媒体に記録されているプログラムを、ＣＰＵ２０１に実行させることによって、またはＩ／Ｆ２０９によって、その機能を実現する。
【０１２２】
＜検証支援装置２７００の検証支援処理手順＞
つぎに、実施の形態６にかかる検証支援装置２７００の検証支援処理手順について説明する。図２８は、実施の形態６にかかる検証支援装置２７００の検証支援処理手順を示すフローチャートである。まず、グラフ抽出部２７０２により、連結済み原因結果グラフを抽出する（ステップＳ２８０１）。そして、展開部２７０３による展開処理をおこない（ステップＳ２８０２）、追加部２７０４により追加可能な結果ノードがあれば追加する（ステップＳ２８０３）。
【０１２３】
そして、矛盾性検出部２７０５により排他関係チェックをおこなう（ステップＳ２８０４）。そして、未処理の連結済み原因結果グラフがある場合（ステップＳ２８０５：Ｙｅｓ）、ステップＳ２８０１に戻り、ない場合（ステップＳ２８０５：Ｎｏ）、出力部２００６により、矛盾性チェック結果をレビュー情報１１５として出力する（ステップＳ２８０６）。これにより、一連の処理を終了する。
【０１２４】
このように、実施の形態６によれば、原因結果グラフを用いて原因結果記述データ１１１において矛盾がないかどうかという整合性のチェックをおこなうことができる。したがって、設計者は、原因結果記述データ１１１を検証プロパティ１１２の生成に先立って確認することができ、矛盾がある場合には、原因結果記述データ１１１の見直しをおこなうことができる。
【０１２５】
この見直し後の原因結果記述データ１１１を上述した実施の形態１〜４に適用することにより、高品質の検証プロパティ１１２や仕様書データ１１４を自動生成することができ、誤った検証プロパティ１１２や仕様書データ１１４の生成を未然に防止することができる。
【０１２６】
（実施の形態７）
つぎに、実施の形態７について説明する。実施の形態７は、実施の形態５に示した原因結果グラフを用いて、原因結果グラフからなるべくいくつかの原因結果を連結するシナリオ１１３を選択する形態である。これにより、効率の良い検証シナリオ１１３を生成することができる。原因結果グラフは、原因ノードと結果ノードとが直接または他のノードを介して間接的に連結されることで、検証シナリオ１１３を構成する。
【０１２７】
図２９は、原因結果グラフからの検証シナリオ１１３の選択例を示す説明図である。図２９において、原因結果グラフ２９００は、原因ノード２９０１と結果ノード２９０２とが連結されたグラフである。原因結果グラフ２９００は、原因ノード２９０１の「Ｅをする」という原因（条件）が発生した場合に「状態Ａになる」という結果が生じるという検証シナリオＳ１をあらわしている。
【０１２８】
また、原因結果グラフ２９１０は、原因ノード２９０３〜２９０５と、途中結果ノード２９０６と、結果ノード２９０７とが連結されたグラフである。原因結果グラフ２９１０は、原因ノード２９０３の「状態Ａである」と、原因ノード２９０４の「Ｃをする」とが発生した場合（途中結果ノード２９０６の「ＡＮＤ」に相当）、結果ノード２９０７の「状態Ｂになる」が少なくとも（結果ノード２９０７はＯＲノードであるため）生じるという検証シナリオＳ２である。
【０１２９】
このように、原因結果グラフが異なれば、原因結果グラフごとに検証シナリオ１１３が得られるが、検証シナリオ１１３数が多いと煩雑である。したがって、原因結果グラフ２９００の結果ノード２９０２と原因結果グラフ２９１０の原因ノード２９０３が一致することを利用して、実施の形態５で示した連結部２００４により原因結果グラフ２９００，２９１０を連結することで、検証シナリオＳ１と検証シナリオＳ２をまとめた検証シナリオＳ３を得ることができる。
【０１３０】
検証シナリオＳ３のみを用いて検証装置１０２により論理検証をおこなえば、検証シナリオＳ１，Ｓ２を用いた論理検証をおこなう必要はないため、論理検証回数の低減化を図ることができる。
【０１３１】
＜検証支援装置の機能的構成＞
つぎに、実施の形態７にかかる検証支援装置の機能的構成について説明する。図３０は、実施の形態７にかかる検証支援装置の機能的構成を示すブロック図である。なお、実施の形態５および実施の形態６に示した構成と同一構成には同一符号を付し、その説明を省略する。検証支援装置３０００は、入力部２００１、原因結果グラフ生成部２００２、ノード探索部２００３、連結部２００４、整合性検出部２００５、出力部２００６、連結済み原因結果グラフ群２７０１、グラフ抽出部２７０２、展開部２７０３のほか、サブグラフ抽出部３００１を備えている。
【０１３２】
サブグラフ抽出部３００１は、展開部２７０３による展開済みの原因結果グラフからサブグラフを抽出する。具体的には、展開済みの原因結果グラフのＯＲノードまたはｔＯＲノードを検出し、ＯＲノード，ｔＯＲノードについては、その手前のノード群を分離する。
【０１３３】
図３１は、サブグラフの抽出例を示す説明図である。図３１において、ノードＮ１はＡＮＤノードであるため、その手前のノード群（ノードＮｅ（ｔ１，３），Ｎａ（ｔ１，２））と、ノードＮｃ（ｔ１，２）とは分離しない。ノードＮ２も同様である。
【０１３４】
一方、ノードＮ３はｔＯＲノードであるため、その手前の一方のノード群（ノードＮｅ（ｔ１，３），Ｎａ（ｔ１，２），Ｎｃ（ｔ１，２），Ｎ１）と他方のノード群（ノードＮｅ（ｔ２，４），Ｎａ（ｔ２，３），Ｎｃ（ｔ２，３），Ｎ２）とを分離して、サブグラフＳＧ１とサブグラフＳＧ２を抽出する。抽出されるサブグラフＳＧ１，ＳＧ２は、ＡＮＤ結合を含みＯＲ，ｔＯＲ結合を含まないサブグラフとなる。
【０１３５】
これにより、サブグラフＳＧ１（（ノードＮｅ（ｔ１，３），Ｎａ（ｔ１，２），Ｎｃ（ｔ１，２），Ｎ１，Ｎ３，Ｎｂ）によってあらわされる検証シナリオ１１３と、サブグラフＳＧ２（（ノードＮｅ（ｔ２，４），Ｎａ（ｔ２，３），Ｎｃ（ｔ２，３），Ｎ２，Ｎ３，Ｎｂ）によってあらわされる検証シナリオ１１３とを得ることができる。
【０１３６】
なお、上述したサブグラフ抽出部３００１は、具体的には、たとえば、図２に示したＲＯＭ２０２，ＲＡＭ２０３，ＨＤ２０５などの記録媒体に記録されているプログラムを、ＣＰＵ２０１に実行させることによって、またはＩ／Ｆ２０９によって、その機能を実現する。
【０１３７】
＜検証支援装置３０００の検証支援処理手順＞
つぎに、実施の形態７にかかる検証支援装置３０００の検証支援処理手順について説明する。図３２は、実施の形態６にかかる検証支援装置３０００の検証支援処理手順を示すフローチャートである。まず、グラフ抽出部２７０２により、連結済み原因結果グラフを抽出する（ステップＳ３２０１）。そして、展開部２７０３による展開処理をおこなう（ステップＳ３２０２）。
【０１３８】
そして、サブグラフ抽出部３００１により、展開処理後の原因結果グラフからサブグラフを抽出する（ステップＳ３２０３）。そして、未処理の連結済み原因結果グラフがある場合（ステップＳ３２０４：Ｙｅｓ）、ステップＳ３２０１に戻り、ない場合（ステップＳ３２０４：Ｎｏ）、出力部２００６により、検証シナリオ１１３を出力する（ステップＳ３２０５）。これにより、一連の処理を終了する。
【０１３９】
このように、実施の形態７によれば、原因結果グラフを用いて効率的な検証シナリオ１１３を自動生成することができる。したがって、検証期間の短縮化を図ることができる。
【０１４０】
（実施の形態８）
つぎに、実施の形態８について説明する。実施の形態８は、レジスタ書き換え条件が発生しレジスタ値が指定値へセットされる条件のカバレッジを測定するプロパティを自動生成する形態である。書き換えがおこなわれたか否かをチェックするためには、最低限書き換え条件が１回でも発生していることが必要である。１回でも書き換え条件が発生し、かつ、エラーがなかった場合、書き換えは正常におこなわれたこととなる。
【０１４１】
すなわち、書き換え条件によるレジスタの書き換えにより検証済みであることを設計者に教えるために、論理検証に用いた検証プロパティ１１２についてカバレッジ情報を生成する。カバレッジ情報は、元の検証プロパティ１１２をたとえばＰＳＬのｃｏｖｅｒ文で表現することで生成される。これにより、どの検証プロパティ１１２が検証で十分チェックされたか否かを判別することができる。
【０１４２】
図３３は、カバレッジ情報の生成例を示す説明図である。検証プロパティ３３０１は、「Ｃ＿ＲＥＳＥＴ＝１となったら次のサイクルで０へ書き換わり」をあらわすプロパティである。検証装置１０２から検証済みの信号を受けたり、また設計者からの検証済みの操作入力を受けると、検証プロパティ３３０１からカバレッジ情報３３０２に変換される。カバレッジ情報３３０２は、検証プロパティ３３０１に関するｃｏｖｅｒ文である。
【０１４３】
＜検証支援装置の機能的構成＞
つぎに、実施の形態８にかかる検証支援装置の機能的構成について説明する。図３４は、実施の形態８にかかる検証支援装置の機能的構成を示すブロック図である。なお、実施の形態１に示した構成と同一構成には同一符号を付し、その説明を省略する。
【０１４４】
検証支援装置３４００は、検証プロパティ抽出部３４０１と、カバレッジ情報生成部３４０３と、から構成されている。検証プロパティ抽出部３４０１は、検証プロパティ群５１０から論理検証をおこなう検証プロパティ１１２を抽出する。
【０１４５】
なお、上述した検証プロパティ抽出部３４０１、およびカバレッジ情報生成部３４０３は、具体的には、たとえば、図２に示したＲＯＭ２０２，ＲＡＭ２０３，ＨＤ２０５などの記録媒体に記録されているプログラムを、ＣＰＵ２０１に実行させることによって、またはＩ／Ｆ２０９によって、その機能を実現する。
【０１４６】
＜検証支援装置３４００の検証支援処理手順＞
つぎに、実施の形態８にかかる検証支援装置３４００の検証支援処理手順について説明する。図３５は、実施の形態８にかかる検証支援装置３４００の検証支援処理手順を示すフローチャートである。まず、検証プロパティ抽出部３４０１により、論理検証に用いる検証プロパティ１１２を抽出する（ステップＳ３５０１）。
【０１４７】
カバレッジ情報生成部３４０３により、その検証プロパティ１１２についてカバレッジ情報を生成し（ステップＳ３５０２）、ステップＳ３５０３に移行する。
【０１４８】
ステップＳ３５０３では、未処理の検証プロパティ１１２があるか否かを判断し、未処理の検証プロパティ１１２がある場合（ステップＳ３５０３：Ｙｅｓ）、ステップＳ３５０１に戻る。一方、未処理の検証プロパティ１１２がない場合（ステップＳ３５０３：Ｎｏ）、一連の処理を終了する。
【０１４９】
このように、実施の形態８によれば、どの検証プロパティ１１２が論理検証で十分チェックされたか否かを判別することができるカバレッジ情報を生成することで、論理検証の重複実施のような無駄を防止して、検証期間の短縮化を図ることや、論理検証の不十分さを明確に示すことで、検証漏れを回避することを図ることができる。
【０１５０】
（実施の形態９）
つぎに、実施の形態９について説明する。実施の形態９は、実施の形態１〜４において、原因結果グラフにより定義された検証プロパティ１１２を波形表示し、意図した検証プロパティ１１２であるかを視覚的に確認する形態である。
【０１５１】
図３６は、検証プロパティの波形表示例を示す説明図である。ここで、検証プロパティ３６０１は、「Ｃ＿ＲＥＳＥＴが立ち上がったら次のサイクルでＩｎｔＲｄｙ０ｉを０に書き換える」というプロパティである。
【０１５２】
符号３６０２は、検証プロパティ３６０１の波形表示である。波形表示３６０２では、サイクルＣ１でＣ＿ＲＥＳＥＴの立ち上がりを検出し、次のサイクルＣ２でＩｎｔＲｄｙ０ｉ＝０を検出している。このように、実施の形態９によれば、検証プロパティ１１２を視覚的にわかりやすい形式で表示することができる。
【０１５３】
このように、上述した実施の形態によれば、検証項目のタイプを整理しパラメータを表化することで記述量を減少させ、かつ、計算機読み取り可能とすることでさまざまな検証プロパティ１１２を自動的に作成することができる。また、検証プロパティ作成だけでなく仕様書および矛盾チェックなどの支援もおこなうことで設計ＴＡＴの低減化を図ることもできる。さらに、検証プロパティ１１２を自動生成することで、ＰＳＬなどの検証プロパティ言語に精通していない設計者にも容易にアサーションベース検証を行うことができる。
【０１５４】
以上説明したように、検証支援装置、検証支援方法、検証支援プログラム、および記録媒体によれば、検証期間の短縮化と設計者の作業労力の軽減化を図ることができるという効果を奏する。
【０１５５】
なお、本実施の形態で説明した検証支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【０１５６】
（付記１）検証対象回路を構成するレジスタの状態変化の原因に関する記述と前記状態変化の結果に関する記述とテンプレート特定情報とを含む記述データの入力を受け付ける入力手段と、
検証プロパティに関するテンプレート群の中から、前記入力手段によって入力されたテンプレート特定情報により特定されるテンプレートを抽出するテンプレート抽出手段と、
前記テンプレート抽出手段によって抽出されたテンプレートと、前記入力手段によって入力された原因に関する記述および結果に関する記述とに基づいて、前記原因から前記結果までの前記レジスタの状態変化をあらわす検証プロパティを生成する検証プロパティ生成手段と、
を備えることを特徴とする検証支援装置。
【０１５７】
（付記２）前記検証プロパティ生成手段によって生成された検証プロパティ群の中から前記結果に関する記述が競合しあう検証プロパティを抽出する検証プロパティ抽出手段と、
前記検証プロパティ抽出手段によって抽出された検証プロパティのうち優先度が高い方の検証プロパティの原因に関する記述を抽出する原因記述抽出手段と、を備え、
前記生成手段は、
前記優先度が低い方の検証プロパティに、前記原因記述抽出手段によって抽出された原因に関する記述の内容を優先処理する記述を追加することにより、あらたな検証プロパティを生成することを特徴とする付記１に記載の検証支援装置。
【０１５８】
（付記３）検証対象回路を構成するレジスタの状態変化の原因に関する記述と前記状態変化の結果に関する記述とテンプレート特定情報とを含む記述データの入力を受け付ける入力手段と、
検証プロパティに関するテンプレート群の中から、前記入力手段によって入力されたテンプレート特定情報により特定されるテンプレートを抽出するテンプレート抽出手段と、
前記入力手段によって入力されたレジスタの状態変化の原因に関する記述に基づいて、逆命題の原因に関する記述を生成する逆命題原因記述生成手段と、
前記テンプレート抽出手段によって抽出されたテンプレートと、前記逆命題原因記述生成手段によって生成された記述とに基づいて、前記原因が発生しなければ前記結果が発生しないことを意味する逆命題の検証プロパティを生成する検証プロパティ生成手段と、
を備えることを特徴とする検証支援装置。
【０１５９】
（付記４）表示画面を有する表示手段と、
前記表示画面を制御して、前記検証プロパティに関する波形情報を表示する表示制御手段と、
を備えることを特徴とする付記１〜３のいずれか一つに記載の検証支援装置。
【０１６０】
（付記５）検証対象回路を構成するレジスタの状態変化の原因に関する記述と前記状態変化の結果に関する記述とを含む記述データの入力を受け付ける入力手段と、
前記入力手段によって入力された原因に関する記述および結果に関する記述の中から、レジスタのアドレスおよび動作に関するデータを抽出するデータ抽出手段と、
前記データ抽出手段によって抽出されたデータに基づいて、前記検証対象回路の仕様書データを生成する仕様書生成手段と、
を備えることを特徴とする検証支援装置。
【０１６１】
（付記６）検証対象回路を構成するレジスタの状態変化の原因に関する記述と前記状態変化の結果に関する記述と前記原因から前記結果までの時間距離とを含む記述データの入力を受け付ける入力手段と、
前記入力手段によって入力された記述データに基づいて、前記原因と前記結果との関係をノードとエッジと前記時間距離によりあらわす原因結果グラフを生成する原因結果グラフ生成手段と、
前記原因結果グラフ生成手段によって生成された原因結果グラフ群の中から、一の原因結果グラフの原因に関するノード（以下、「原因ノード」という）と同一内容の結果に関するノード（以下、「結果ノード」という）を、前記一の原因結果グラフ以外の他の原因結果グラフから探索する探索手段と、
前記探索手段によって探索された探索結果に基づいて、前記一の原因結果グラフの原因ノードと前記他の原因結果グラフの結果ノードとを連結することにより、あらたな原因結果グラフを生成する連結手段と、
前記連結手段によって生成された原因結果グラフと、前記連結手段によって連結されなかった残余の原因結果グラフとに基づいて、前記記述データの整合性を検出する整合性検出手段と、
前記整合性検出手段によって検出された検出結果を出力する出力手段と、
を備えることを特徴とする検証支援装置。
【０１６２】
（付記７）前記連結手段によって生成された原因結果グラフ（以下、「連結済み原因結果グラフ」という）に前記他の原因結果グラフの結果ノードを追加する追加手段と、
前記追加手段によって追加された結果ノードを含む前記連結済み原因結果グラフを構成するノードのうち、同一時間距離のノード間において排他関係があるか否かを判定することで前記原因結果記述データの矛盾性を検出する矛盾性検出手段と、を備え、
前記出力手段は、
前記矛盾性検出手段によって検出された検出結果を出力することを特徴とする付記６に記載の検証支援装置。
【０１６３】
（付記８）前記連結手段によって生成された原因結果グラフ（以下、「連結済み原因結果グラフ」という）に含まれる論理和ノードに基づいて、前記連結済み原因結果グラフからサブグラフを抽出するサブグラフ抽出手段を備え、
前記出力手段は、
前記サブグラフ抽出手段によって抽出されたサブグラフを検証シナリオとして出力することを特徴とする付記６に記載の検証支援装置。
【０１６４】
（付記９）検証対象回路に関する検証プロパティ群の中から任意の検証プロパティを抽出する検証プロパティ抽出手段と、
前記検証プロパティ抽出手段によって抽出された検証プロパティを用いて前記検証対象回路の論理検証が十分におこなわれたことを示すカバレッジ情報を生成するカバレッジ情報生成手段と、
を備えることを特徴とする検証支援装置。
【０１６５】
（付記１０）検証対象回路を構成するレジスタの状態変化の原因に関する記述と前記状態変化の結果に関する記述とテンプレート特定情報とを含む記述データの入力を受け付ける入力工程と、
検証プロパティに関するテンプレート群の中から、前記入力工程によって入力されたテンプレート特定情報により特定されるテンプレートを抽出するテンプレート抽出工程と、
前記テンプレート抽出工程によって抽出されたテンプレートと、前記入力工程によって入力された原因に関する記述および結果に関する記述とに基づいて、前記原因から前記結果までの前記レジスタの状態変化をあらわす検証プロパティを生成する検証プロパティ生成工程と、
を含んだことを特徴とする検証支援方法。
【０１６６】
（付記１１）検証対象回路を構成するレジスタの状態変化の原因に関する記述と前記状態変化の結果に関する記述とテンプレート特定情報とを含む記述データの入力を受け付ける入力工程と、
検証プロパティに関するテンプレート群の中から、前記入力工程によって入力されたテンプレート特定情報により特定されるテンプレートを抽出するテンプレート抽出工程と、
前記入力工程によって入力されたレジスタの状態変化の原因に関する記述に基づいて、逆命題の原因に関する記述を生成する逆命題原因記述生成工程と、
前記テンプレート抽出工程によって抽出されたテンプレートと、前記逆命題原因記述生成工程によって生成された記述とに基づいて、前記原因が発生しなければ前記結果が発生しないことを意味する逆命題の検証プロパティを生成する検証プロパティ生成工程と、
を含んだことを特徴とする検証支援方法。
【０１６７】
（付記１２）検証対象回路を構成するレジスタの状態変化の原因に関する記述と前記状態変化の結果に関する記述とを含む記述データの入力を受け付ける入力工程と、
前記入力工程によって入力された原因に関する記述および結果に関する記述の中から、レジスタのアドレスおよび動作に関するデータを抽出するデータ抽出工程と、
前記データ抽出工程によって抽出されたデータに基づいて、前記検証対象回路の仕様書データを生成する仕様書生成工程と、
を含んだことを特徴とする検証支援方法。
【０１６８】
（付記１３）検証対象回路を構成するレジスタの状態変化の原因に関する記述と前記状態変化の結果に関する記述と前記原因から前記結果までの時間距離とを含む記述データの入力を受け付ける入力工程と、
前記入力工程によって入力された記述データに基づいて、前記原因と前記結果との関係をノードとエッジと前記時間距離によりあらわす原因結果グラフを生成する原因結果グラフ生成工程と、
前記原因結果グラフ生成工程によって生成された原因結果グラフ群の中から、一の原因結果グラフの原因に関するノード（以下、「原因ノード」という）と同一内容の結果に関するノード（以下、「結果ノード」という）を、前記一の原因結果グラフ以外の他の原因結果グラフから探索する探索工程と、
前記探索工程によって探索された探索結果に基づいて、前記一の原因結果グラフの原因ノードと前記他の原因結果グラフの結果ノードとを連結することにより、あらたな原因結果グラフを生成する連結工程と、
前記連結工程によって生成された原因結果グラフと、前記連結工程によって連結されなかった残余の原因結果グラフとに基づいて、前記記述データの整合性を検出する整合性検出工程と、
前記整合性検出工程によって検出された検出結果を出力する出力工程と、
を含んだことを特徴とする検証支援方法。
【０１６９】
（付記１４）前記連結手段によって生成された原因結果グラフ（以下、「連結済み原因結果グラフ」という）に前記他の原因結果グラフの結果ノードを追加する追加工程と、
前記追加工程によって追加された結果ノードを含む前記連結済み原因結果グラフを構成するノードのうち、同一時間距離のノード間において排他関係があるか否かを判定することで前記原因結果記述データの矛盾性を検出する矛盾性検出工程と、を含み、
前記出力工程は、
前記矛盾性検出工程によって検出された検出結果を出力することを特徴とする付記１３に記載の検証支援方法。
【０１７０】
（付記１５）前記連結工程によって生成された原因結果グラフ（以下、「連結済み原因結果グラフ」という）に含まれる論理和ノードに基づいて、前記連結済み原因結果グラフからサブグラフを抽出するサブグラフ抽出工程を含み、
前記出力工程は、
前記サブグラフ抽出工程によって抽出されたサブグラフを検証シナリオとして出力することを特徴とする付記１３に記載の検証支援方法。
【０１７１】
（付記１６）検証対象回路に関する検証プロパティ群の中から任意の検証プロパティを抽出する検証プロパティ抽出工程と、
前記検証プロパティ抽出工程によって抽出された検証プロパティを用いて前記検証対象回路の論理検証が十分におこなわれたことを示すカバレッジ情報を生成するカバレッジ情報生成工程と、
を含んだことを特徴とする検証支援方法。
【０１７２】
（付記１７）検証対象回路を構成するレジスタの状態変化の原因に関する記述と前記状態変化の結果に関する記述とテンプレート特定情報とを含む記述データの入力を受け付けさせる入力工程と、
検証プロパティに関するテンプレート群の中から、前記入力工程によって入力されたテンプレート特定情報により特定されるテンプレートを抽出させるテンプレート抽出工程と、
前記テンプレート抽出工程によって抽出されたテンプレートと、前記入力工程によって入力された原因に関する記述および結果に関する記述とに基づいて、前記原因から前記結果までの前記レジスタの状態変化をあらわす検証プロパティを生成させる検証プロパティ生成工程と、
をコンピュータに実行させることを特徴とする検証支援プログラム。
【０１７３】
（付記１８）検証対象回路を構成するレジスタの状態変化の原因に関する記述と前記状態変化の結果に関する記述とテンプレート特定情報とを含む記述データの入力を受け付けさせる入力工程と、
検証プロパティに関するテンプレート群の中から、前記入力工程によって入力されたテンプレート特定情報により特定されるテンプレートを抽出させるテンプレート抽出工程と、
前記入力工程によって入力されたレジスタの状態変化の原因に関する記述に基づいて、逆命題の原因に関する記述を生成させる逆命題原因記述生成工程と、
前記テンプレート抽出工程によって抽出されたテンプレートと、前記逆命題原因記述生成工程によって生成された記述とに基づいて、前記原因が発生しなければ前記結果が発生しないことを意味する逆命題の検証プロパティを生成させる検証プロパティ生成工程と、
をコンピュータに実行させることを特徴とする検証支援プログラム。
【０１７４】
（付記１９）検証対象回路を構成するレジスタの状態変化の原因に関する記述と前記状態変化の結果に関する記述とを含む記述データの入力を受け付けさせる入力工程と、
前記入力工程によって入力された原因に関する記述および結果に関する記述の中から、レジスタのアドレスおよび動作に関するデータを抽出させるデータ抽出工程と、
前記データ抽出工程によって抽出されたデータに基づいて、前記検証対象回路の仕様書データを生成させる仕様書生成工程と、
をコンピュータに実行させることを特徴とする検証支援プログラム。
【０１７５】
（付記２０）検証対象回路を構成するレジスタの状態変化の原因に関する記述と前記状態変化の結果に関する記述と前記原因から前記結果までの時間距離とを含む記述データの入力を受け付けさせる入力工程と、
前記入力工程によって入力された記述データに基づいて、前記原因と前記結果との関係をノードとエッジと前記時間距離によりあらわす原因結果グラフを生成させる原因結果グラフ生成工程と、
前記原因結果グラフ生成工程によって生成された原因結果グラフ群の中から、一の原因結果グラフの原因に関するノード（以下、「原因ノード」という）と同一内容の結果に関するノード（以下、「結果ノード」という）を、前記一の原因結果グラフ以外の他の原因結果グラフから探索させる探索工程と、
前記探索工程によって探索された探索結果に基づいて、前記一の原因結果グラフの原因ノードと前記他の原因結果グラフの結果ノードとを連結することにより、あらたな原因結果グラフを生成させる連結工程と、
前記連結工程によって生成された原因結果グラフと、前記連結工程によって連結されなかった残余の原因結果グラフとに基づいて、前記記述データの整合性を検出させる整合性検出工程と、
前記整合性検出工程によって検出された検出結果を出力させる出力工程と、
をコンピュータに実行させることを特徴とする検証支援プログラム。
【０１７６】
（付記２１）前記連結手段によって生成された原因結果グラフ（以下、「連結済み原因結果グラフ」という）に前記他の原因結果グラフの結果ノードを追加させる追加工程と、
前記追加工程によって追加された結果ノードを含む前記連結済み原因結果グラフを構成するノードのうち、同一時間距離のノード間において排他関係があるか否かを判定することで前記原因結果記述データの矛盾性を検出させる矛盾性検出工程と、を前記コンピュータに実行させ、
前記出力工程は、
前記矛盾性検出工程によって検出された検出結果を出力させることを特徴とする付記２０に記載の検証支援プログラム。
【０１７７】
（付記２２）前記連結工程によって生成された原因結果グラフ（以下、「連結済み原因結果グラフ」という）に含まれる論理和ノードに基づいて、前記連結済み原因結果グラフからサブグラフを抽出させるサブグラフ抽出工程を、前記コンピュータに実行させ、
前記出力工程は、
前記サブグラフ抽出工程によって抽出されたサブグラフを検証シナリオとして出力させることを特徴とする付記２０に記載の検証支援プログラム。
【０１７８】
（付記２３）検証対象回路に関する検証プロパティ群の中から任意の検証プロパティを抽出させる検証プロパティ抽出工程と、
前記検証プロパティ抽出工程によって抽出された検証プロパティを用いて前記検証対象回路の論理検証が十分におこなわれたことを示すカバレッジ情報を生成させるカバレッジ情報生成工程と、
をコンピュータに実行させることを特徴とする検証支援プログラム。
【０１７９】
（付記２４）付記１７〜２３のいずれか一つに記載の検証支援プログラムを記録した前記コンピュータに読み取り可能な記録媒体。
【産業上の利用可能性】
【０１８０】
以上のように、本発明にかかる検証支援装置、検証支援方法、検証支援プログラム、および記録媒体は、ＬＳＩの論理検証の支援に有用である。
【符号の説明】
【０１８１】
１００  検証システム
１０１，５００，８００，１１００，１４００，２０００，２７００，３０００，３４００  検証支援装置
１０２  検証装置
１１１  原因結果記述データ
１１２  検証プロパティ
１１３  検証シナリオ
１１４  仕様書データ
１１５  レビュー情報
１１６  回路情報
１７００，１８００，１９０１，１９０２，１９０３，２２００，２２１０，２３００，２４００，２９００，２９１０，原因結果グラフ
３３０２  カバレッジ情報
３６０２  波形表示
【図１】
2011108289.tif 000003
【図２】
2011108289.tif 000004
【図３】
2011108289.tif 000005
【図４】
2011108289.tif 000006
【図５】
2011108289.tif 000007
【図６】
2011108289.tif 000008
【図７】
2011108289.tif 000009
【図８】
2011108289.tif 000010
【図９】
2011108289.tif 000011
【図１０】
2011108289.tif 000012
【図１１】
2011108289.tif 000013
【図１２】
2011108289.tif 000014
【図１３】
2011108289.tif 000015
【図１４】
2011108289.tif 000016
【図１５】
2011108289.tif 000017
【図１６】
2011108289.tif 000018
【図１７】
2011108289.tif 000019
【図１８】
2011108289.tif 000020
【図１９】
2011108289.tif 000021
【図２０】
2011108289.tif 000022
【図２１】
2011108289.tif 000023
【図２２】
2011108289.tif 000024
【図２３】
2011108289.tif 000025
【図２４】
2011108289.tif 000026
【図２５】
2011108289.tif 000027
【図２６】
2011108289.tif 000028
【図２７】
2011108289.tif 000029
【図２８】
2011108289.tif 000030
【図２９】
2011108289.tif 000031
【図３０】
2011108289.tif 000032
【図３１】
2011108289.tif 000033
【図３２】
2011108289.tif 000034
【図３３】
2011108289.tif 000035
【図３４】
2011108289.tif 000036
【図３５】
2011108289.tif 000037
【図３６】
2011108289.tif 000038
【図３７】
2011108289.tif 000039