(57)【要約】【課題】試験対象回路の機能をランダム検証する時間を短縮することを課題とする。【解決手段】（Ａ）有効状態を表す有効無効情報Ｄ２が対応付けられた条件のいずれかを満たす入力パターンＰＡ１をランダムに生成し、試験対象回路Ｕ３から得られる検証対象パターンＰＡ２と比較パターンＰＡ３とを対比して当該検証対象パターンＰＡ２が期待されるパターンでない場合その旨の情報を生成し、（Ｃ）対比済みの検証対象パターンＰＡ２に基づいた、試験対象回路Ｕ３の各機能が実現されたか否かを表す機能カバレッジ結果（Ｔ４）を収集し、（Ｄ）機能カバレッジ結果（Ｔ４）で実現されたことが表された一以上の機能に対応した条件に対応付けられた有効無効情報Ｄ２を無効状態に変える、前記（Ａ）から前記（Ｄ）までの一連の処理を繰り返す。【選択図】図１
2011100194.tif 000002
【特許請求の範囲】
【請求項１】
試験対象回路（試験対象回路のシミュレーション手段を含む）に複数の入力パターンを順次入力し、該試験対象回路の機能による該試験対象回路からの各検証対象パターンに基づいて該試験対象回路の機能群を検証するランダム検証装置であって、
前記試験対象回路の機能を実現するための前記入力パターンの条件であって該試験対象回路の一以上の機能毎に設けられた条件のそれぞれに該条件の有効状態を表し無効状態とされ得る有効無効情報を対応付けて記憶した記憶領域と、
（Ａ）前記有効状態を表す有効無効情報が対応付けられた前記条件のいずれかを満たす前記入力パターンをランダム（擬似的なランダムを含む）に生成し、
（Ｂ）該生成された入力パターンを前記試験対象回路に入力し、該試験対象回路から得られる検証対象パターンと、前記入力パターンに対する前記試験対象回路の機能による出力として期待される比較パターンと、を対比して当該検証対象パターンが期待されるパターンでない場合その旨の情報を生成し、
（Ｃ）前記対比済みの前記検証対象パターンに基づいた、前記試験対象回路の各機能が実現されたか否かを表す機能カバレッジ結果を収集し、
（Ｄ）前記機能カバレッジ結果で実現されたことが表された前記一以上の機能に対応した前記条件に対応付けられた前記有効無効情報を前記無効状態に変える、
前記（Ａ）から前記（Ｄ）までの一連の処理を繰り返す処理手段とを備えることを特徴とするランダム検証装置。
【請求項２】
前記処理手段は、前記記憶領域に記憶された前記有効無効情報の全てが前記無効状態となったときに前記一連の処理を終了することを特徴とする請求項１に記載のランダム検証装置。
【請求項３】
前記入力パターンの条件に対応した前記一以上の機能には、複数の機能の組み合わせが含まれることを特徴とする請求項１又は請求項２に記載のランダム検証装置。
【請求項４】
試験対象回路（試験対象回路のシミュレーション手段を含む）に複数の入力パターンを順次入力し、該試験対象回路の機能による該試験対象回路からの各検証対象パターンに基づいて該試験対象回路の機能群を検証するランダム検証方法であって、
前記試験対象回路の機能を実現するための前記入力パターンの条件であって該試験対象回路の一以上の機能毎に設けられた条件のそれぞれに該条件の有効状態を表し無効状態とされ得る有効無効情報を対応付けて記憶領域に記憶する記憶工程と、
（Ａ）前記有効状態を表す有効無効情報が対応付けられた前記条件のいずれかを満たす前記入力パターンをランダム（擬似的なランダムを含む）に生成し、
（Ｂ）該生成した入力パターンを前記試験対象回路に入力し、該試験対象回路から得られる検証対象パターンと、前記入力パターンに対する前記試験対象回路の機能による出力として期待される比較パターンと、を対比して当該検証対象パターンが期待されるパターンでない場合その旨の情報を生成し、
（Ｃ）前記対比済みの前記検証対象パターンに基づいた、前記試験対象回路の各機能が実現されたか否かを表す機能カバレッジ結果を収集し、
（Ｄ）前記機能カバレッジ結果で実現されたことが表された前記一以上の機能に対応した前記条件に対応付けられた前記有効無効情報を前記無効状態に変える、
前記（Ａ）から前記（Ｄ）までの一連の処理を繰り返す処理工程とを備えることを特徴とするランダム検証方法。
【請求項５】
前記入力パターンの条件に対応した前記一以上の機能には、複数の機能の組み合わせが含まれることを特徴とする請求項４に記載のランダム検証方法。
【請求項６】
試験対象回路（試験対象回路のシミュレーション手段を含む）に複数の入力パターンを順次入力し、該試験対象回路の機能による該試験対象回路からの各検証対象パターンに基づいて該試験対象回路の機能群を検証する機能をコンピューターに実現させるランダム検証プログラムであって、
前記試験対象回路の機能を実現するための前記入力パターンの条件であって該試験対象回路の一以上の機能毎に設けられた条件のそれぞれに該条件の有効状態を表し無効状態とされ得る有効無効情報を対応付けて記憶領域に記憶する記憶機能と、
（Ａ）前記有効状態を表す有効無効情報が対応付けられた前記条件のいずれかを満たす前記入力パターンをランダム（擬似的なランダムを含む）に生成し、
（Ｂ）該生成した入力パターンを前記試験対象回路に入力し、該試験対象回路から得られる検証対象パターンと、前記入力パターンに対する前記試験対象回路の機能による出力として期待される比較パターンと、を対比して当該検証対象パターンが期待されるパターンでない場合その旨の情報を生成し、
（Ｃ）前記対比済みの前記検証対象パターンに基づいた、前記試験対象回路の各機能が実現されたか否かを表す機能カバレッジ結果を収集し、
（Ｄ）前記機能カバレッジ結果で実現されたことが表された前記一以上の機能に対応した前記条件に対応付けられた前記有効無効情報を前記無効状態に変える、
前記（Ａ）から前記（Ｄ）までの一連の処理を繰り返す処理機能とを実現させることを特徴とするランダム検証プログラム。
【請求項７】
前記入力パターンの条件に対応した前記一以上の機能には、複数の機能の組み合わせが含まれることを特徴とする請求項６に記載のランダム検証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、試験対象回路（試験対象回路のシミュレーション手段を含む）の機能群を検証するランダム検証装置、ランダム検証方法及びランダム検証プログラムに関する。
【背景技術】
【０００２】
印刷装置のＡＳＩＣ（Application Specific Integrated Circuit）等の回路を設計する際、ＲＴＬ（Register Transfer Level；レジスタ転送レベル）の言語で回路を抽象化して記述することが行われている。設計する回路の動作を検証するため、ＲＴＬ記述に従って回路の動作をシミュレーションするシミュレーションソフトウェアが用意されている。このシミュレーションソフトウェアは、ＲＴＬ記述に従った仮想の試験対象回路の機能をコンピューターに実現させるプログラムである。この試験対象回路のシミュレーション手段に対してランダムに入力パターンを入力し、試験対象回路の機能群をランダム検証することが行われている。
【０００３】
図９は、従来のランダム検証装置９００を模式的に示すブロック図である。ランダム検証装置９００は、入力パターン生成部９０１、比較パターン生成部９０２、検証結果生成部９０３、機能カバレッジ結果収集部９０４、アサーション結果収集部９０５、試験対象回路シミュレーション手段９１０、を備えている。
入力パターン生成部９０１は、シミュレーション手段９１０に入力する入力パターンＰＡ９１を順次ランダム（擬似的なランダムを含む）に生成する。入力パターンＰＡ９１は、例えば、試験対象回路に入力する複数の信号のそれぞれの状態を表す情報とされる。試験対象回路シミュレーション手段９１０からは、機能を検証する対象の検証対象パターンＰＡ９２が順次得られる。検証対象パターンＰＡ９２は、例えば、試験対象回路から得られる複数の信号のそれぞれの状態を表す情報とされ、試験対象回路から出力される出力パターンだけでなく、試験対象回路内部の信号も含まれる。
【０００４】
比較パターン生成部９０２は、入力パターンＰＡ９１に対する試験対象回路の機能による出力として期待される比較パターンＰＡ９３を順次生成する。比較パターンＰＡ９３は、検証対象パターンＰＡ９２と比較されるパターンであり、例えば、試験対象回路から得られるはずの複数の信号のそれぞれの状態を表す情報とされる。
検証結果生成部９０３は、検証対象パターンＰＡ９２と比較パターンＰＡ９３とを順次対比して当該検証対象パターンＰＡ９２が期待されるパターンでない場合その旨のエラー情報を生成する。アサーション結果収集部９０５は、例えば、検証対象パターンＰＡ９２と比較パターンＰＡ９３とが一致していなければ、アサーション（Assertion）により検証結果としてエラー情報を生成し、表示する。アサーションは、試験対象回路から出力される出力パターンだけでなく、試験対象回路内部の信号が不正動作していないかどうかもチェックするものである。
【０００５】
機能カバレッジ結果収集部９０４は、対比済みの検証対象パターンＰＡ９２に基づいた、試験対象回路の各機能が実現されたか否かを表す機能カバレッジ結果を収集する。機能カバレッジ結果収集部９０４は、試験対象回路から出力される出力パターンだけでなく、試験対象回路内部の信号からも各機能が実行されたかどうかの結果を収集する。この機能カバレッジ結果は、例えば、図７（ｂ）に示すような機能カバレッジ情報テーブルＴ４に蓄積される。
そして、入力パターンＰＡ９１を予め設定した回数生成し、エラー情報が生成されなければ、設計した回路の機能が検証に合格したとしてランダム検証処理を終了する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−９２３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述した機能カバレッジのランダム検証では、入力パターンがランダムであるため、同様のパターンが何度も発生してしまい、無駄な検証をすることがある。また、ランダム検証を進めていくと、機能カバレッジのカバー率が飽和し、全ての機能を検証することができないことがある。
【０００８】
なお、特許文献１の技術は、コードカバレッジのランダム検証方法であり、機能カバレッジのランダム検証方法ではないため、上述した課題を解決することができない。
【０００９】
以上を鑑み、本発明は、試験対象回路の機能をランダム検証する時間を短縮することを目的としている。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、本発明は、試験対象回路（試験対象回路のシミュレーション手段を含む）に複数の入力パターンを順次入力し、該試験対象回路の機能による該試験対象回路からの各検証対象パターンに基づいて該試験対象回路の機能群を検証するランダム検証装置であって、
前記試験対象回路の機能を実現するための前記入力パターンの条件であって該試験対象回路の一以上の機能毎に設けられた条件のそれぞれに該条件の有効状態を表し無効状態とされ得る有効無効情報を対応付けて記憶した記憶領域と、
（Ａ）前記有効状態を表す有効無効情報が対応付けられた前記条件のいずれかを満たす前記入力パターンをランダム（擬似的なランダムを含む）に生成し、
（Ｂ）該生成された入力パターンを前記試験対象回路に入力し、該試験対象回路から得られる検証対象パターンと、前記入力パターンに対する前記試験対象回路の機能による出力として期待される比較パターンと、を対比して当該検証対象パターンが期待されるパターンでない場合その旨の情報を生成し、
（Ｃ）前記対比済みの前記検証対象パターンに基づいた、前記試験対象回路の各機能が実現されたか否かを表す機能カバレッジ結果を収集し、
（Ｄ）前記機能カバレッジ結果で実現されたことが表された前記一以上の機能に対応した前記条件に対応付けられた前記有効無効情報を前記無効状態に変える、
前記（Ａ）から前記（Ｄ）までの一連の処理を繰り返す処理手段とを備えることを特徴とする。
【００１１】
すなわち、機能カバレッジ結果で実現されたことが表された機能に対応した条件のいずれかを満たす入力パターンが生成されない。従って、試験対象回路の機能をランダム検証する時間を短縮することができる。
【００１２】
ここで、特許請求の範囲に記載される試験対象回路には、試験対象回路を所定の言語で記述した仮想の回路などの試験対象回路のシミュレーション手段が含まれる。
上記ランダムには、擬似的なランダムが含まれる。
上記検証対象パターンには、試験対象回路から出力される出力パターン、試験対象回路内部の信号、が含まれる。
上記入力パターン、上記検証対象パターン及び上記比較パターンは、複数の信号のそれぞれの状態を表すパターンの他、時系列要素を付加した信号の状態を表すパターンが含まれる。
上記（Ｂ）において検証対象パターンが期待されるパターンでない場合、上記一連の処理を中止してもよい。
【００１３】
前記処理手段は、前記記憶領域に記憶された前記有効無効情報の全てが前記無効状態となったときに前記一連の処理を終了してもよい。これにより、ランダム検証する試験対象回路の機能をより確実にカバーすることができる。
【００１４】
前記入力パターンの条件に対応した前記一以上の機能には、複数の機能の組み合わせが含まれていてもよい。これにより、複雑な試験対象回路の機能を容易に検証することができる。
【００１５】
上述した発明は、記憶工程と処理工程とを備えるランダム検証方法、記憶機能と処理機能とをコンピューターに実現させるランダム検証プログラム、該プログラムを記録したコンピューター読み取り可能な媒体、等に適用可能である。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態に係るランダム検証装置１の構成の概略を模式的に例示するブロック図である。
【図２】ランダム検証装置１の概略を模式的に例示するブロック図である。
【図３】（ａ）は試験対象回路１１０を含む印刷装置１００の構成の概略を模式的に例示するブロック図、（ｂ）は試験対象回路１１０の周辺回路を模式的に例示するブロック図である。
【図４】入力パターンＰＡ１の条件と比較パターンＰＡ３とを例示して説明するための図である。
【図５】制約条件情報テーブルＴ１，Ｔ２の構造を模式的に例示する図である。
【図６】一連の処理に従って入力パターンＰＡ１の条件がどのように変わるかを例示して説明するための図である。
【図７】（ａ）は条件別有効無効情報テーブルＴ３の構造を模式的に例示する図、（ｂ）は機能カバレッジ情報テーブルＴ４の構造を模式的に例示する図である。
【図８】ランダム検証装置１が行うランダム検証処理を示すフローチャートである。
【図９】従来例に係るランダム検証装置９００の構成の概略を模式的に例示するブロック図である。
【発明を実施するための形態】
【００１７】
（１）ランダム検証装置の構成：
図１に示すように、本発明の一実施形態に係るランダム検証装置１は、記憶領域Ｕ１と処理手段Ｕ２とを備え、試験対象回路（試験対象回路のシミュレーション手段を含む）Ｕ３に複数の入力パターンＰＡ１を順次入力し、該試験対象回路Ｕ３の機能による該試験対象回路Ｕ３からの各検証対象パターンＰＡ２に基づいて該試験対象回路Ｕ３の機能群を検証する。本ランダム検証装置１の詳細は、後述する。
【００１８】
図２に示すように、ランダム検証装置１は、ランダム検証プログラムＰＲ１及びシミュレーションプログラムＰＲ２をインストールしたコンピューターで構成されている。本実施形態のランダム検証装置１は、パーソナルコンピューターとされている。むろん、ランダム検証装置１は、より処理能力の高いワークステーション等でもよい。ランダム検証装置１は、ＣＰＵ（Central Processing Unit）１１、半導体メモリー１２，１３、記憶装置１４、入力装置１５、出力装置１６、データ入出力装置１７、通信インターフェイス（Ｉ／Ｆ）１８、等がバスに接続されて互いに情報を入出力可能とされている。ＣＰＵ１１は、ＲＯＭ（Read Only Memory）１２に書き込まれたプログラムに従ってホスト装置全体の動作を制御する。
【００１９】
ＲＡＭ（Random Access Memory）１３は、試験対象回路をＲＴＬ（レジスタ転送レベル）の言語（所定の言語）で記述したＲＴＬ記述Ｄ１、図５に示す制約条件情報テーブルＴ１、図７（ａ）に示す条件別有効無効情報テーブルＴ３、図７（ｂ）に示す機能カバレッジ情報テーブルＴ４、等を記憶している。従って、ＲＡＭ１３は、記憶領域Ｕ１を構成する。むろん、これらの情報Ｄ１，Ｔ１，Ｔ３，Ｔ４は、記憶装置１４に記憶されてもよい。この場合、記憶装置１４が記憶領域Ｕ１を構成することになる。
記憶装置１４は、オペレーティングシステム（ＯＳ）や上述したプログラムＰＲ１，ＰＲ２等を記憶している。ランダム検証プログラムＰＲ１はコンピューターをランダム検証装置１として機能させ、ランダム検証装置１でランダム検証方法が実施される。シミュレーションプログラムＰＲ２は、試験対象回路のＲＴＬ記述Ｄ１を解釈して実行することによりコンピューターを試験対象回路シミュレーション手段Ｕ３として機能させる。プログラムＰＲ１，ＰＲ２は、該プログラムを記録した記録媒体からコンピューターにインストールされてもよいし、該プログラムを記録したサーバーコンピューターからネットワークを介して記憶装置１４にダウンロードされてもよい。記憶装置１４を構成するメモリーには、ハードディスク（磁気ディスク）、不揮発性半導体メモリー、等を用いることができる。
【００２０】
入力装置１５は、キーボードやマウス（ポインティングデバイス）といった操作入力装置等で構成することができる。出力装置１６は、ディスプレイ等の画像出力装置や音声出力装置等で構成することができる。データ入出力装置１７は、コンピューター読み取り可能な記録媒体が着脱可能に接続されたときに該記録媒体に対してデータを入出力するための装置である。通信Ｉ／Ｆ１８は、外部機器に対して情報を入出力するためのインターフェイスであり、例えば図３に示す印刷装置１００の通信Ｉ／Ｆ１０４に接続される。
【００２１】
本ランダム検証装置１は、種々の回路の機能群を検証することができる。
図３（ａ）は、試験対象回路であるＤＭＡ（Direct Memory Access）コントローラー１１０を含む印刷装置１００の構成の概略を模式的に示している。図３に示す印刷装置１００は、所定のページ記述言語で記述された印刷データに含まれる印刷コマンドに従って印刷物を形成するページプリンター（例えばレーザープリンター）とされている。印刷装置１００は、ＣＰＵ１０１、半導体メモリー１０２，１０３、コントローラー１０５、ＤＭＡコントローラー１１０、等がバスに接続されて互いに情報を入出力可能とされ、さらに、通信Ｉ／Ｆ１０４、印刷エンジン１０６、等が設けられている。通信Ｉ／Ｆ１０４は、ホスト装置に対して情報を入出力可能であり、ホスト装置から印刷ジョブを受信する。ＤＭＡコントローラー１１０は、通信Ｉ／Ｆ１０４から印刷ジョブを受け取ってＤＲＡＭ（Dynamic Random Access Memory）１０３へ転送したり、ＤＲＡＭ１０３から画像データを受け取ってコントローラー１０５へ転送したりする。コントローラー１０５は、ＤＭＡコントローラー１１０から送られた画像データを印刷エンジン１０６へ送出するための信号に変換する。印刷エンジン１０６は、コントローラー１０５から入力される信号に従って印刷媒体に対して印刷を行う。
【００２２】
図３（ｂ）は、説明の便宜上、試験対象回路１１０の周辺回路を簡略化して示している。本ＤＭＡコントローラー１１０は、回路１と回路２の何れか一方を選択するためのＳＥＬＥＣＴ信号の状態に応じて、回路１と回路３とでデータを入出力したり、回路２と回路３とでデータを入出力したりするようにされている。
【００２３】
図１に示すように、ランダム検証装置１の記憶領域Ｕ１は、条件別有効無効情報テーブルＴ３が記憶され、機能カバレッジ結果収集部とされている。この条件別有効無効情報テーブルＴ３は、図７（ａ）に示すように、試験対象回路シミュレーション手段Ｕ３の機能を実現するための入力パターンＰＡ１の制約条件毎に有効無効情報Ｄ２が格納されている。制約条件は、試験対象回路シミュレーション手段Ｕ３の一以上の機能毎に設けられ、該一以上の機能を実現するための入力パターンＰＡ１の条件とされている。有効無効情報Ｄ２は、各制約条件ｉが有効であるか無効であるかの状態を表し、制約条件のそれぞれに対応付けられて記憶領域Ｕ１に記憶されている。有効無効情報Ｄ２は、初期状態において有効状態（例えば１）とされ、ランダム検証処理の途中で無効状態（例えば０）とされ得る。
【００２４】
処理手段Ｕ２は、入力パターン生成部Ｕ２１、比較パターン生成部Ｕ２２、検証結果生成部Ｕ２３、機能カバレッジ結果収集部Ｕ２４、制約条件無効化部Ｕ２５、検証終了決定部Ｕ２６、アサーション結果収集部Ｕ２７、を備えている。
入力パターン生成部Ｕ２１は、条件別有効無効情報テーブルＴ３を参照して、制約条件毎の有効無効情報Ｄ２の状態に応じた入力パターンＰＡ１を順次ランダム（擬似的なランダムを含む）に生成する。入力パターンＰＡ１は、試験対象回路シミュレーション手段Ｕ３に入力される信号の状態を表す情報である。
【００２５】
まず、図４を参照して、入力パターンＰＡ１及び比較パターンＰＡ３の例を説明する。図３に例示したＤＭＡコントローラー１１０は、入力端子としてＳＥＬＥＣＴ端子、ＲＥＱ端子、Ｒ／Ｗ１端子、Ｒ／Ｗ２端子、複数のＡＤＲ１端子、複数のＡＤＲ２端子、等を有し、出力端子としてＲ／Ｗ端子、複数のＡＤＲ端子、等を有している。ここで、ＳＥＬＥＣＴ端子は、回路１と回路２の何れか一方を選択するためのＳＥＬＥＣＴ信号を入力するための入力部である。例えば、ＳＥＬＥＣＴ信号が１の場合に回路１が選択され、ＳＥＬＥＣＴ信号が０の場合に回路２が選択される。ＲＥＱ端子は、回路３に対してアクセス要求するためのＲＥＱ信号を入力するための入力部である。例えば、ＲＥＱ信号が０から１に切り替わるときにＲＥＱ端子以外の入力端子に入力される信号の状態がＤＭＡコントローラー１１０に読み込まれる。Ｒ／Ｗ１端子は、回路１から回路３に対してデータを読むのか書くのかを選択するためのＲ／Ｗ１信号を入力するための入力部である。Ｒ／Ｗ２端子は、回路２から回路３に対してデータを読むのか（Ｒ；リード）書くのか（Ｗ；ライト）を選択するためのＲ／Ｗ２信号を入力するための入力部である。例えば、Ｒ／Ｗ１，２信号が１（Ｒ；リード）の場合に回路３から回路１，２へデータを読み出し、Ｒ／Ｗ１，２信号が０（Ｗ；ライト）の場合に回路１，２から回路３へデータを書き込む。ＡＤＲ１端子は、回路１から回路３のアドレスを指定するためのＡＤＲ１信号を入力するための入力部である。ＡＤＲ２端子は、回路２から回路３のアドレスを指定するためのＡＤＲ２信号を入力するための入力部である。
【００２６】
図４（ａ）に示す入力パターンの条件１は、ある機能を実現するための入力パターンＰＡ１の制約条件を示しており、試験対象回路シミュレーション手段Ｕ３に入力する複数の信号のそれぞれの状態を表す情報とされている。この条件１はＳＥＬＥＣＴ信号が１、Ｒ／Ｗ１信号が０（Ｗ）、ＡＤＲ１信号が００００〜００ＦＦ（１６進数；以下同様）の範囲内であり、ＲＥＱ信号の間隔やＲ／Ｗ２信号やＡＤＲ２信号に制約は無い。この場合、ＤＭＡコントローラー１１０の出力端子は、Ｒ／Ｗ端子から０（Ｗ）のＲ／Ｗ信号が出力され、ＡＤＲ端子からＡＤＲ１信号と同じ状態（００００〜００ＦＦ）のＡＤＲ信号が出力されることが期待される。そこで、０（Ｗ）のＲ／Ｗ信号及びＡＤＲ１信号と同じ状態のＡＤＲ信号を比較パターンＰＡ３として、シミュレーション手段Ｕ３からの検証対象パターンＰＡ２と比較すればよい。
【００２７】
また、図４（ｂ）に示すように、入力パターンの条件に時系列要素を付加した信号の状態を表すパターンが含まれてもよい。図４（ｂ）に示す条件２はＳＥＬＥＣＴ信号が０、ＲＥＱ信号の間隔がｔ１〜ｔ２秒（０＜ｔ１＜ｔ２）の範囲内、Ｒ／Ｗ１信号が１（Ｒ）、ＡＤＲ２信号が０１００〜０１ＦＦの範囲内であり、Ｒ／Ｗ１信号やＡＤＲ１信号に制約は無い。この場合、ＤＭＡコントローラー１１０の出力端子は、Ｒ／Ｗ端子から１（Ｒ）のＲ／Ｗ信号が出力され、ＡＤＲ端子からＡＤＲ２信号と同じ状態（０１００〜０１ＦＦ）のＡＤＲ信号が出力されることが期待される。そこで、１（Ｒ）のＲ／Ｗ信号及びＡＤＲ２信号と同じ状態のＡＤＲ信号を比較パターンＰＡ３として、シミュレーション手段Ｕ３からの検証対象パターンＰＡ２と比較すればよい。
上述した図４では分かり易く説明するために出力端子からの信号の出力パターンを検証対象パターンＰＡ２とした例を示したが、検証対象パターンＰＡ２は、ＤＭＡコントローラー１１０内部の信号のパターンとしてもよい。
【００２８】
図５（ａ）は、図４で例示したような制約条件を表す情報を集めた制約条件情報テーブルＴ１の構造を模式的に示している。この制約条件情報テーブルＴ１の各制約条件は、試験対象回路の機能毎に設けられている。制約条件情報テーブルＴ１には、制約条件毎に、対応する機能を実現するための入力パターンＰＡ１の条件を表す情報が格納されている。
試験対象回路が複雑である場合、入力パターンＰＡ１が複数の機能の組み合わせを実現するパターンとなることがある。
【００２９】
そこで、図５（ｂ）に示す制約条件情報テーブルＴ２のように、複数の機能の組み合わせを実現するための入力パターンＰＡ１の条件を一つの制約条件としてもよい。この場合、制約条件情報テーブルＴ２の各制約条件は、試験対象回路の一以上の機能毎に設けられる。制約条件情報テーブルＴ２には、制約条件毎に、対応する一以上の機能を実現するための入力パターンＰＡ１の条件を表す情報が格納される。
【００３０】
入力パターン生成部Ｕ２１は、上述した制約条件情報テーブル及び図７（ａ）に示す条件別有効無効情報テーブルＴ３を参照して、有効とされた制約条件の範囲内で入力パターンＰＡ１をランダムに生成する。生成される入力パターンＰＡ１は、有効状態を表す有効無効情報Ｄ２が対応付けられた制約条件１，２，…，Ｎ（Ｎは２以上の整数）のいずれかを満たすパターンとされる。ここで、有効状態が対応付けられた制約条件をＶ１，Ｖ２，…，Ｖｍ、無効状態が対応付けられた制約条件をＩ１，Ｉ２，…，Ｉｎとする。有効状態が対応付けられた制約条件Ｖｉ（ｉは１〜ｍの整数）のいずれかを満たすとは、和集合の演算子Ｕを用いると、制約条件Ｖｉの和集合（Ｖ１）Ｕ（Ｖ２）Ｕ…Ｕ（Ｖｍ）を満たすことである。
一方、生成されない入力パターンは、無効状態が対応付けられた制約条件Ｉｊ（ｊは１〜ｎの整数）のいずれかを満たすとともに、有効状態が対応付けられた制約条件Ｖｉの全てを満たさないパターンとなる。このパターンは、差集合の演算子−を用いると、
｛（Ｉ１）Ｕ（Ｉ２）Ｕ…Ｕ（Ｉｎ）｝−｛（Ｖ１）Ｕ（Ｖ２）Ｕ…Ｕ（Ｖｍ）｝
を満たすパターンとなる。
【００３１】
なお、有効状態に対応付けられた制約条件が条件Ｖｂの一つとなれば、Ｖｂを満たす入力パターンＰＡ１が生成される。有効状態に対応付けられた制約条件が存在しなければ、入力パターンＰＡ１を生成する条件が無いことになる。
【００３２】
図６は、制約条件が３つであるとして順次無効状態に対応付けられたときに生成される入力パターンＰＡ１の条件を模式的に示している。
図６（ａ）に示すように、初期状態では制約条件１〜３が全て有効状態に対応付けられているため、全ての制約条件１〜３のいずれか、すなわち、集合Ｒ１〜Ｒ７の全てを満たす入力パターンＰＡ１がランダムに生成される。
【００３３】
ここで、制約条件１に対応付けられた有効無効情報Ｄ２が無効状態に変えられたとする。すると、図６（ｂ）に示すように、制約条件２，３の和集合Ｒ２〜Ｒ７を満たす入力パターンＰＡ１がランダムに生成される。また、制約条件１に加えて制約条件２に対応付けられた有効無効情報Ｄ２が無効状態に変えられたとする。すると、図６（ｃ）に示すように、制約条件３の集合Ｒ３，Ｒ５，Ｒ６，Ｒ７を満たす入力パターンＰＡ１がランダムに生成される。そして、制約条件１，２に加えて制約条件３に対応付けられた有効無効情報Ｄ２が無効状態に変えられると、図６（ｄ）に示すように、ランダム検証が終了する。
【００３４】
入力パターン生成部Ｕ２１は、順次、生成した入力パターンＰＡ１を試験対象回路シミュレーション手段Ｕ３に入力する。すると、シミュレーション手段Ｕ３からは、機能を検証する対象の検証対象パターンＰＡ２が順次得られる。
比較パターン生成部Ｕ２２は、入力パターンＰＡ１に応じて、入力パターンＰＡ１に対する試験対象回路の機能による出力として期待される比較パターンＰＡ３を順次生成する。
【００３５】
検証結果生成部Ｕ２３は、検証対象パターンＰＡ２と比較パターンＰＡ３とを順次対比して当該検証対象パターンＰＡ２が期待されるパターンでない場合その旨のエラー情報を生成する。アサーション結果収集部Ｕ２７は、例えば、検証対象パターンＰＡ２と比較パターンＰＡ３とが一致していなければ、アサーション（Assertion）により検証結果としてエラー情報を生成し、表示する。アサーション結果収集部Ｕ２７は、試験対象回路から出力される出力パターンだけでなく、試験対象回路内部の信号が不正動作していないかどうかもチェックする。
機能カバレッジ結果収集部Ｕ２４は、対比済みの検証対象パターンＰＡ２に基づいた、試験対象回路の各機能が実現されたか否かを表す機能カバレッジ結果を収集する。機能カバレッジ結果収集部Ｕ２４は、試験対象回路から出力される出力パターンだけでなく、試験対象回路内部の信号からも各機能が実行されたかどうかの結果を収集する。
【００３６】
図７（ｂ）は、機能カバレッジ情報テーブルＴ４の構造を模式的に示している。機能カバレッジ情報テーブルＴ４は、機能カバレッジ結果を表す情報を格納した情報テーブルであり、試験対象回路の機能毎に該機能の実行回数が格納されている。機能カバレッジ結果収集部Ｕ２４は、試験対象回路シミュレーション手段Ｕ３に入力パターンＰＡ１が入力される毎に実現された機能に対応した実行回数に１を加える。
【００３７】
制約条件無効化部Ｕ２５は、機能カバレッジ結果（機能カバレッジ情報テーブルＴ４）で実現されたことが表された一以上の機能に対応した制約条件に対応付けられた有効無効情報Ｄ２を無効状態に変える。図７（ｂ）に示すように、機能１が実現され、機能１のみが制約条件１に対応していれば、図７（ａ）に示す条件別有効無効情報テーブルＴ３に格納された有効無効情報Ｄ２のうち制約条件１に対応付けられた有効無効情報を有効状態から無効状態に変える。一般に、制約条件ｉに対応した一以上の機能ｉ（制約条件ｉに複数の機能ｉａ，ｉｂ，…が対応している場合には機能ｉａ，ｉｂ，…）が実現されると、図７（ａ）に示す条件別有効無効情報テーブルＴ３に格納された有効無効情報Ｄ２のうち制約条件ｉに対応付けられた有効無効情報が無効状態に変えられる。
【００３８】
本ランダム検証装置１は、検証終了決定部Ｕ２６が上述した一連の処理を終了させるまで、上述した一連の処理を繰り返す。
検証終了決定部Ｕ２６は、記憶領域Ｕ１に記憶された条件別有効無効情報テーブルＴ３の有効無効情報Ｄ２の全てが無効状態となったとき、上述した一連の処理を終了させる。これにより、ランダム検証する試験対象回路の機能をより確実にカバーすることができる。
【００３９】
（２）ランダム検証装置の動作、作用及び効果：
図８は、本実施形態のランダム検証装置１が行うランダム検証処理をフローチャートにより示している。フローチャート中には、処理手段Ｕ２の各部Ｕ２１〜Ｕ２６がどの処理を行うのかを符号により示している。本ランダム検証処理は、ランダム検証装置１のユーザーからランダム検証プログラムＰＲ１の実行を開始させる操作を受け付けたときに開始し、マルチタスクにより他の処理と並列して行われる。
【００４０】
処理を開始すると、ランダム検証装置１は、試験対象回路の機能群を検証するための入力パターンＰＡ１の条件を格納した制約条件情報テーブル（Ｔ１，Ｔ２）を取得する（ステップＳ１０２。以下、「ステップ」の記載を省略）。制約条件情報テーブルは、ユーザーがコンピューターを使用して作成するものであり、制約条件情報テーブルを作成するためのソフトウェアを利用して作成されるものでもよい。制約条件情報テーブルを取得することには、記憶装置１４や外部の記録媒体等からＲＡＭ１３に読み出すこと、ＲＡＭ１３に用意された制約条件情報テーブルの格納位置を示すアドレスを取得すること、等が含まれる。
Ｓ１０４では、試験対象回路の一以上の機能毎の有効無効情報Ｄ２を有効状態とした条件別有効無効情報テーブルＴ３を生成する。
【００４１】
Ｓ１０６では、条件別有効無効情報テーブルＴ３を参照して、制約条件毎の有効無効情報Ｄ２の状態に応じた入力パターンＰＡ１をランダムに生成する。ここで、有効状態を表す有効無効情報Ｄ２が対応付けられた制約条件Ｖｉのいずれかを満たす入力パターンＰＡ１、すなわち、
｛（Ｖ１）Ｕ（Ｖ２）Ｕ…Ｕ（Ｖｍ）｝
を満たす入力パターンＰＡ１を生成する。
Ｓ１０８では、上記入力パターンＰＡ１を試験対象回路シミュレーション手段Ｕ３に入力する。
【００４２】
Ｓ１１０では、入力パターンＰＡ１に対する試験対象回路の機能による出力として期待される比較パターンＰＡ３を入力パターンＰＡ１に基づいて生成する。
Ｓ１１２では、試験対象回路から得られた検証対象パターンＰＡ２と、比較パターン生成部Ｕ２２で生成された比較パターンＰＡ３と、を対比して当該検証対象パターンＰＡ２が期待されるパターンであるか否かを判断する。この判断処理は、例えば、検証対象パターンＰＡ２と比較パターンＰＡ３とが一致するか否かを判断することにより行うことができる。検証対象パターンＰＡ２が期待されるパターンでないと判断した場合、Ｓ１１４で検証結果として不合格を意味するエラー情報を生成し、出力装置１６に出力して、ランダム検証処理を終了する。エラー情報の出力には、表示装置からの表示、印刷装置からの印刷、音声出力装置からの音声出力、等が含まれる。
【００４３】
Ｓ１１２で検証対象パターンＰＡ２が期待されるパターンであると判断した場合、Ｓ１１６で試験対象回路の各機能が実現されたか否かを表す機能カバレッジ結果を機能カバレッジ情報テーブルＴ４に収集する。機能カバレッジ結果は、対比済みの検証対象パターンＰＡ２に基づいて得られ、シミュレーション手段Ｕ３に入力パターンＰＡ１が入力される毎に実現された機能に対応した実行回数に１が加えられる。
Ｓ１１８では、記憶領域Ｕ１に記憶されている条件別有効無効情報テーブルＴ３について、機能カバレッジ情報テーブルＴ４で実現されたことが表された一以上の機能に対応した制約条件に対応付けられた有効無効情報Ｄ２を有効状態から無効状態に変える。
【００４４】
Ｓ１２０では、条件別有効無効情報テーブルＴ３の有効無効情報Ｄ２の全てが無効状態となったか否かを判断する。有効無効情報Ｄ２に有効状態の情報が残っていれば、Ｓ１０６〜Ｓ１２０の処理を繰り返す。このとき、無効状態とされた有効無効情報Ｄ２があれば、無効状態の有効無効情報Ｄ２が対応付けられた制約条件を満たさないように入力パターンＰＡ１が生成される。これにより、既に検証された機能に対応した条件の入力パターンＰＡ１が生成されなくなるので、無駄な検証が抑制される。また、無駄な検証が抑制される結果、機能カバレッジのカバー率も向上することになる。
【００４５】
記憶領域Ｕ１に記憶された有効無効情報Ｄ２の全てが無効状態となると、Ｓ１２２で機能カバレッジのランダム検証が終了した旨を出力装置１６に出力し、ランダム検証処理を終了する。ここでも、検証終了の旨の出力には、表示装置からの表示、印刷装置からの印刷、音声出力装置からの音声出力、等が含まれる。
【００４６】
以上説明したように、無駄な入力パターンをなるべく発生させないように制約条件が動的に設定されるため、無駄な検証が抑制され、ランダム検証処理の実行時間が短縮される。むろん、制約条件が検証中に動的に設定されるため、検証中に制約条件を変えるためにランダム検証処理を中断する必要は無い。従って、本ランダム検証装置、本ランダム検証方法及び本ランダム検証プログラムは、試験対象回路の機能をランダム検証する時間を短縮することができる。
また、カバーできていない機能をカバーするような入力パターンが生成されるため、機能カバレッジのカバー率が向上する。
【００４７】
（３）変形例：
上述した処理の各ステップの順番は、適宜、変更可能である。例えば、Ｓ１１０の比較パターン生成処理は、Ｓ１０８の入力パターン入力処理よりも先に行ってもよい。
上記Ｓ１１４でエラー情報を出力した後、Ｓ１２０の判断処理に進んでランダム検証処理を継続してもよい。
機能を検証する対象は、ＲＴＬの言語で記述された回路のシミュレーション手段の他、ＲＴＬ以外の所定の言語で記述された回路のシミュレーション手段でもよいし、実際の試験対象回路そのものでもよい。
【００４８】
なお、従属請求項に係る構成要件を有しておらず独立請求項に係る構成要件のみからなる装置、方法及びプログラムでも、上述した基本的な作用、効果が得られる。例えば、ランダム検証処理を終了する条件は、上記Ｓ１２０の処理の代わりに、入力パターンＰＡ１の生成回数が所定回数以上となったとき等としてもよい。この場合、機能カバレッジのカバー率が１００％に達しない可能性があるものの、既に検証された機能に対応した条件の入力パターンが生成されなくなることにより無駄な検証が抑制されるので、機能カバレッジの一定のカバー率を得るためのランダム検証処理の時間を短縮することができる。
【００４９】
以上説明したように、本発明によると、種々の態様により、試験対象回路の機能をランダム検証する時間を短縮することが可能なランダム検証装置、ランダム検証方法、ランダム検証プログラム、該プログラムを記録したコンピューター読み取り可能な記録媒体、を提供することができる。
【００５０】
また、本発明は、上述した実施形態や変形例に限られず、上述した実施形態及び変形例の中で開示した各構成を相互に置換したり組み合わせを変更したりした構成、公知技術並びに上述した実施形態及び変形例の中で開示した各構成を相互に置換したり組み合わせを変更したりした構成、等も含まれる。
【符号の説明】
【００５１】
１…ランダム検証装置、１３…ＲＡＭ（記憶領域）、１４…記憶装置、１００…印刷装置、１１０…ＤＭＡコントローラー（試験対象回路）、Ｄ１…ＲＴＬ記述、Ｄ２…有効無効情報、ＰＡ１…入力パターン、ＰＡ２…検証対象パターン、ＰＡ３…比較パターン、ＰＲ１…ランダム検証プログラム、ＰＲ２…シミュレーションプログラム、Ｔ１，Ｔ２…制約条件情報テーブル、Ｔ３…条件別有効無効情報テーブル、Ｔ４…機能カバレッジ情報テーブル（機能カバレッジ結果）、Ｕ１…記憶領域、Ｕ２…処理手段、Ｕ３…試験対象回路シミュレーション手段、Ｕ２１…入力パターン生成部、Ｕ２２…比較パターン生成部、Ｕ２３…検証結果生成部、Ｕ２４…機能カバレッジ結果収集部、Ｕ２５…制約条件無効化部、Ｕ２６…検証終了決定部、Ｕ２７…アサーション結果収集部。
【図１】
2011100194.tif 000003
【図２】
2011100194.tif 000004
【図３】
2011100194.tif 000005
【図４】
2011100194.tif 000006
【図５】
2011100194.tif 000007
【図６】
2011100194.tif 000008
【図７】
2011100194.tif 000009
【図８】
2011100194.tif 000010
【図９】
2011100194.tif 000011