(57)【要約】【課題】検証期間の短縮化および検証者の作業負担の軽減を図ること。【解決手段】検証支援装置３００は、取得部３０１によって検証対象回路２００の実装記述情報３１０が取得し、分類部３０２により、検証対象回路２００で実行可能なコマンドごとに、検証対象回路２００内のレジスタを処理内容別に分類する。これにより、実装記述分類情報３１２が得られる。このあと、設定部３０３による検証優先度設定処理と生成部３０６による連続コマンド生成処理とを実行することで、連続コマンド３２０を出力する。【選択図】図３
2008083781.tif 000002
【特許請求の範囲】
【請求項１】
検証対象回路の実装記述情報を取得させる取得工程と、
前記取得工程によって取得された実装記述情報に基づいて、前記検証対象回路で実行可能なコマンドごとに、当該コマンドの実行に用いられる前記検証対象回路内のレジスタを、前記コマンドによる処理内容別に分類させる分類工程と、
前記分類工程によって処理内容別にレジスタが分類されたコマンドの集合の中から選ばれた、先に実行されるコマンドとその後に実行されるコマンドとの組み合わせごとに、当該組み合わせに応じた検証優先度を設定させる設定工程と、
をコンピュータに実行させることを特徴とする検証支援プログラム。
【請求項２】
検証対象回路の実装記述情報を取得させる取得工程と、
前記取得工程によって取得された実装記述情報に基づいて、前記検証対象回路で実行可能なコマンドごとに、当該コマンドの実行に用いられる前記検証対象回路内のレジスタを、前記コマンドによる処理内容別に分類させる分類工程と、
前記検証対象回路の仕様書にしたがって前記コマンドによる処理内容別に分類されたレジスタと、前記分類工程によって分類された処理内容別のレジスタとを、前記コマンドごとに比較させる比較工程と、
前記分類工程によって処理内容別にレジスタが分類されたコマンドの集合の中から選ばれた、先に実行されるコマンドとその後に実行されるコマンドとの組み合わせのうち、前記処理内容が前記仕様書とは異なる組み合わせを、前記比較工程によって比較された比較結果に基づいて検出させる検出工程と、
をコンピュータに実行させることを特徴とする検証支援プログラム。
【請求項３】
請求項１または２に記載の検証支援プログラムを記録した前記コンピュータに読み取り可能な記録媒体。
【請求項４】
検証対象回路の実装記述情報を取得する取得手段と、
前記取得手段によって取得された実装記述情報に基づいて、前記検証対象回路で実行可能なコマンドごとに、当該コマンドの実行に用いられる前記検証対象回路内のレジスタを、前記コマンドによる処理内容別に分類する分類手段と、
前記分類手段によって処理内容別にレジスタが分類されたコマンドの集合の中から選ばれた、先に実行されるコマンドとその後に実行されるコマンドとの組み合わせごとに、当該組み合わせに応じた検証優先度を設定する設定手段と、
を備えることを特徴とする検証支援装置。
【請求項５】
検証対象回路の実装記述情報を取得する取得工程と、
前記取得工程によって取得された実装記述情報に基づいて、前記検証対象回路で実行可能なコマンドごとに、当該コマンドの実行に用いられる前記検証対象回路内のレジスタを、前記コマンドによる処理内容別に分類する分類工程と、
前記分類工程によって処理内容別にレジスタが分類されたコマンドの集合の中から選ばれた、先に実行されるコマンドとその後に実行されるコマンドとの組み合わせごとに、当該組み合わせに応じた検証優先度を設定する設定工程と、
を含んだことを特徴とする検証支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ディジタル回路の論理検証、中でも機能検証を支援する検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法に関する。
【背景技術】
【０００２】
従来から、多くの場合、ＭＰＥＧのエンコーダ、デコーダ、またはその内部の逆コサイン変換ブロックなど、機能ブロックやモジュール、システムの機能は、一連の手順から成る「コマンド」によって実現される。コマンドとは、リードやライトのほか、『三角形を描画する』、『バースト転送』といったあるまとまった機能をあらわしており、一連の手順により呼び出すことができる。
【０００３】
この一連の手順とは、具体的には、各レジスタに値をセットして、所定のレジスタに値をセットすることでトリガをかけ、内部論理を実行することで、レジスタ内の値の読み出しやレジスタへの値の書込みをおこない、実行結果を取得することであり、この一連の手順によりコマンドが実行される。
【０００４】
たとえば、『三角形を描画する』というコマンドについては、レジスタに三角形の頂点座標値をセットしてトリガをかけることにより、内部論理が実行され、三角形を描画することができる。
【０００５】
上述した機能ブロックやモジュール、システムの機能検証は、単一コマンドを投入することで、シミュレーションによる当該単一コマンドの動作チェックをおこなう検証手法と、連続コマンドを投入することで、連続的なシミュレーション実行による各コマンドの一連の動作チェックをおこなう検証手法がある。
【０００６】
たとえば、『三角形を描画する』というコマンドＸと『四角形を描画する』というコマンドＹと『背景色を変更する』というコマンドＺの動作チェックをおこなう場合、前者の単一コマンドを投入する検証手法では、まず、コマンドＸを実行して動作チェックをし、レジスタを初期化してからコマンドＹを実行して動作チェックをし、またレジスタを初期化してからコマンドＺを実行して動作チェックをすることとなる。
【０００７】
この単一コマンドを投入する検証手法は、コマンドによる基本動作を確認するのに有効な手法であるが、バグがあまり検出されない。
【０００８】
一方、後者の連続コマンドを投入する検証手法では、コマンドＸ、コマンドＹ、コマンドＺを連続投入して順次シミュレーションを実行して動作チェックをおこなう。この場合、コマンド間のレジスタの初期化をおこなわれず、前のコマンドによりレジスタに書き込まれた値が保持された状態で、つぎのコマンドが実行されることとなる。
【０００９】
このように、連続コマンドを投入する検証手法では先のコマンドに依存するため、先に実行されたコマンドＸで値が書き込まれたレジスタを、後に実行するコマンドＹが参照してしまい、コマンドＹが誤った図形を描画してしまうこととなる。したがって、コマンドＸのあとコマンドＹを連続実行すると、バグが発生することが検出される。
【００１０】
この連続コマンドを投入する手法は、実際に起こり得る連続動作を想定しており、単一コマンドを投入する手法に比べより多くのバグが検出されるため効果的である。
【００１１】
なお、実際の設計・検証現場においては、上述した単一コマンドを投入する手法や連続コマンドを投入する手法は従来から一般におこなわれている。また、機能検証に関する公知例としては、たとえば、下記特許文献１〜３が開示されている。
【００１２】
【特許文献１】特開平５−１５１２９７号公報
【特許文献２】特開２００２−１５７１４５号公報
【特許文献３】特開２００４−５４５４９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、バグを効果的に検出するためには連続コマンドを投入する検証手法は非常に効果的であるが、そもそもディジタル回路で実行されるコマンドの数が膨大であるため、連続コマンドの組み合わせも膨大となる。たとえば、たかだか１００個のコマンドを３連続で実行する場合でも、理論的には１００万通りの連続コマンドが存在することとなる。したがって、実際に連続コマンドをすべて検証するとなると検証作業の長期化を招くという問題があった。
【００１４】
一方、膨大な数の連続コマンドの中にはバグが発生しない連続コマンドや実際の動作では連続しない連続コマンドも多く含まれているが、そのような連続コマンドであるか否かの判断はつき難く、どの程度まで検証をおこなえばよいかわからない。したがって、現状では、バグを効果的に検出することができないという問題があった。
【００１５】
この発明は、上述した従来技術による問題点を解消するため、膨大な数の連続コマンドを効率的に絞り込んで効果的なバグ検出をおこなうことにより、検証期間の短縮化および検証者の作業負担の軽減を図ることができる検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法を提供することを目的とする。
【課題を解決するための手段】
【００１６】
上述した課題を解決し、目的を達成するため、第１の発明にかかる検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法は、検証対象回路の実装記述情報を取得し、取得された実装記述情報に基づいて、前記検証対象回路で実行可能なコマンドごとに、当該コマンドの実行に用いられる前記検証対象回路内のレジスタを、前記コマンドによる処理内容別に分類し、処理内容別にレジスタが分類されたコマンドの集合の中から選ばれた、先に実行されるコマンドとその後に実行されるコマンドとの組み合わせごとに、当該組み合わせに応じた検証優先度を設定することを特徴とする。
【００１７】
この発明によれば、バグが発生しやすいコマンドの組み合わせやバグが発生しにくいコマンドの組み合わせを特定することができる。
【００１８】
また、上記発明において、前記組み合わせの集合の中の一の組み合わせにおいて、同一のレジスタに対し、前記先に実行されるコマンドによる処理内容が「書込み」で、前記後に実行されるコマンドによる処理内容が「読み出し」である場合、前記一の組み合わせに応じた検証優先度を、他の組み合わせに応じた検証優先度よりも高く設定することとしてもよい。
【００１９】
この発明によれば、バグが発生しやすいコマンドの組み合わせを他の組み合わせよりも明確に特定することができる。
【００２０】
また、上記発明において、前記組み合わせの集合の中の一の組み合わせにおいて、同一のレジスタに対し、前記先に実行されるコマンドによる処理内容が「書込み」で、前記後に実行されるコマンドによる処理内容が「書込み」である場合、前記一の組み合わせに応じた検証優先度を、他の組み合わせに応じた検証優先度よりも高く設定することとしてもよい。
【００２１】
この発明によれば、バグが発生しやすいコマンドの組み合わせを他の組み合わせよりも明確に特定することができる。
【００２２】
また、上記発明において、前記組み合わせの集合の中の第１の組み合わせにおいて、同一のレジスタに対し、前記先に実行されるコマンドによる処理内容が「書込み」で、前記後に実行されるコマンドによる処理内容が「読み出し」である場合、前記第１の組み合わせに応じた検証優先度を、他の組み合わせに応じた検証優先度よりも高く設定させ、前記組み合わせの集合の中の第２の組み合わせにおいて、同一のレジスタに対し、前記先に実行されるコマンドによる処理内容が「書込み」で、前記後に実行されるコマンドによる処理内容が「書込み」である場合、前記第２の組み合わせに応じた検証優先度を、前記第１の組み合わせに応じた検証優先度よりも低く、かつ前記他の組み合わせに応じた検証優先度よりも高く設定することとしてもよい。
【００２３】
この発明によれば、バグが発生しやすいコマンドの組み合わせを段階的に特定することができる。
【００２４】
また、上記発明において、前記検証対象回路の仕様書にしたがって前記コマンドによる処理内容別に分類されたレジスタと、分類された処理内容別のレジスタとを、前記コマンドごとに比較し、処理内容別にレジスタが分類されたコマンドの集合の中から選ばれた、先に実行されるコマンドとその後に実行されるコマンドとの組み合わせのうち、前記処理内容が前記仕様書とは異なる組み合わせを、比較結果に基づいて検出し、検出結果に基づいて、前記検証優先度を設定することとしてもよい。
【００２５】
この発明によれば、仕様書と実装記述情報との食い違いをバグの発生可能性に反映することができる。
【００２６】
また、上記発明において、設定された前記組み合わせごとの検証優先度に基づいて前記コマンドを時系列に並べることにより、前記検証対象回路で実行可能な連続コマンドを生成することとしてもよい。
【００２７】
この発明によれば、バグが発生しやすい連続コマンドやバグが発生しにくい連続コマンドを自動生成することができる。
【００２８】
また、上記発明において、すでに時系列に並べられた少なくとも最後尾のコマンドとの組み合わせの候補となるコマンドのうち、前記検証優先度が最高となるコマンドをあらたに並べることにより、前記連続コマンドを生成することとしてもよい。
【００２９】
この発明によれば、バグが発生しやすい連続コマンドやバグが発生しにくい連続コマンドを自動生成することができる。
【００３０】
また、上記発明において、複数のコマンドが時系列に並べられた任意の連続コマンドに関する識別情報の入力を受け付け、入力された連続コマンドに関する識別情報と、設定された検証優先度とに基づいて、前記連続コマンドの有効度を算出することとしてもよい。
【００３１】
この発明によれば、ユーザによって選ばれた連続コマンドを検証対象回路に与えた場合のバグの発生可能性を特定することができる。
【００３２】
また、第２の発明にかかる検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法は、検証対象回路の実装記述情報を取得し、取得された実装記述情報に基づいて、前記検証対象回路で実行可能なコマンドごとに、当該コマンドの実行に用いられる前記検証対象回路内のレジスタを、前記コマンドによる処理内容別に分類し、前記検証対象回路の仕様書にしたがって前記コマンドによる処理内容別に分類されたレジスタと、分類された処理内容別のレジスタとを、前記コマンドごとに比較し、処理内容別にレジスタが分類されたコマンドの集合の中から選ばれた、先に実行されるコマンドとその後に実行されるコマンドとの組み合わせのうち、前記処理内容が前記仕様書とは異なる組み合わせを、前記比較工程によって比較された比較結果に基づいて検出することを特徴とする。
【００３３】
この発明によれば、仕様書と実装記述情報との食い違う箇所を特定することができる。
【発明の効果】
【００３４】
本発明にかかる検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法によれば、膨大な数の連続コマンドを効率的に絞り込んで効果的なバグ検出をおこなうことにより、検証期間の短縮化および検証者の作業負担の軽減を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００３５】
以下に添付図面を参照して、この発明にかかる検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法の好適な実施の形態を詳細に説明する。
【００３６】
（検証支援装置のハードウェア構成）
まず、この発明の実施の形態にかかる検証支援装置のハードウェア構成について説明する。図１は、この発明の実施の形態にかかる検証支援装置のハードウェア構成を示すブロック図である。
【００３７】
図１において、検証支援装置は、ＣＰＵ１０１と、ＲＯＭ１０２と、ＲＡＭ１０３と、ＨＤＤ（ハードディスクドライブ）１０４と、ＨＤ（ハードディスク）１０５と、ＦＤＤ（フレキシブルディスクドライブ）１０６と、着脱可能な記録媒体の一例としてのＦＤ（フレキシブルディスク）１０７と、ディスプレイ１０８と、Ｉ／Ｆ（インターフェース）１０９と、キーボード１１０と、マウス１１１と、スキャナ１１２と、プリンタ１１３と、を備えている。また、各構成部はバス１００によってそれぞれ接続されている。
【００３８】
ここで、ＣＰＵ１０１は、検証支援装置の全体の制御を司る。ＲＯＭ１０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ１０３は、ＣＰＵ１０１のワークエリアとして使用される。ＨＤＤ１０４は、ＣＰＵ１０１の制御にしたがってＨＤ１０５に対するデータのリード／ライトを制御する。ＨＤ１０５は、ＨＤＤ１０４の制御で書き込まれたデータを記憶する。
【００３９】
ＦＤＤ１０６は、ＣＰＵ１０１の制御にしたがってＦＤ１０７に対するデータのリード／ライトを制御する。ＦＤ１０７は、ＦＤＤ１０６の制御で書き込まれたデータを記憶したり、ＦＤ１０７に記憶されたデータを検証支援装置に読み取らせたりする。
【００４０】
また、着脱可能な記録媒体として、ＦＤ１０７のほか、ＣＤ−ＲＯＭ（ＣＤ−Ｒ、ＣＤ−ＲＷ）、ＭＯ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、メモリーカードなどであってもよい。ディスプレイ１０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ１０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００４１】
Ｉ／Ｆ１０９は、通信回線を通じてインターネットなどのネットワーク１１４に接続され、このネットワーク１１４を介して他の装置に接続される。そして、Ｉ／Ｆ１０９は、ネットワーク１１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ１０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００４２】
キーボード１１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス１１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００４３】
スキャナ１１２は、画像を光学的に読み取り、検証支援装置内に画像データを取り込む。なお、スキャナ１１２は、ＯＣＲ機能を持たせてもよい。また、プリンタ１１３は、画像データや文書データを印刷する。プリンタ１１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００４４】
（検証対象回路の一例）
つぎに、検証対象回路の一例について説明する。図２は、検証対象回路の一例を示す説明図である。検証対象回路２００は、複数のインターフェースレジスタ（以下、単に「レジスタ」と称す）Ａ〜Ｇからなるレジスタ群２０１と内部論理２０２とを備えるディジタル回路である。各レジスタＡ〜Ｇには、コマンドに応じた値がセットされたり、コマンド実行されたときの内部論理２０２の動作により、値が書き込まれたり、保持された値が読み出されたりする。
【００４５】
（検証支援装置の機能的構成）
つぎに、この発明の実施の形態にかかる検証支援装置の機能的構成について説明する。図３は、この発明の実施の形態にかかる検証支援装置の機能的構成を示すブロック図である。図３において、検証支援装置３００は、取得部３０１と、分類部３０２と、設定部３０３と、比較部３０４と、検出部３０５と、生成部３０６と、入力部３０７と、算出部３０８とを備えている。
【００４６】
これら機能構成は、具体的には、たとえば、図１に示したＲＯＭ１０２，ＲＡＭ１０３，ＨＤ１０５などの記録媒体に記録されているプログラムを、ＣＰＵ１０１に実行させることによって、またはＩ／Ｆ１０９によって、その機能を実現する。
【００４７】
まず、取得部３０１は、検証対象回路２００の実装記述情報３１０を取得する機能を有する、また、コマンド定義ファイル群３１１からコマンド定義ファイルを取得する機能を有する。ここで、実装記述情報３１０とは、検証対象回路２００のＲＴＬのＨＤＬ記述情報や、その論理合成結果であるネットリストが含まれる。
【００４８】
また、コマンド定義ファイル群３１１とは、各種コマンドに関するコマンド定義ファイルの集合であり、コマンド定義ファイルとは当該コマンドの実行内容を記述したファイルである。
【００４９】
また、コマンドとは、［背景技術］で説明したように、リードやライトのほか、『三角形を描画する』、『バースト転送』といったあるまとまった機能をあらわしており、一連の手順により呼び出すことができる。取得部３０１では、検証対象回路２００の実装記述情報３１０を読み込むことにより、検証対象回路２００で実行可能なコマンドのコマンド定義ファイルをコマンド定義ファイル群３１１の中から読み込む。
【００５０】
また、分類部３０２は、取得部３０１によって取得された実装記述情報３１０に基づいて、検証対象回路２００で実行可能なコマンドごとに、当該コマンドの実行に用いられる検証対象回路２００内のレジスタＡ〜Ｇを、コマンドによる処理内容別に分類する機能を有する。そして、分類結果として実装記述分類情報３１２を出力する。
【００５１】
具体的には、たとえば、コマンド実行の際にセットされるレジスタ（以下、「入力レジスタ」）を起点として、実装記述情報３１０に基づいて内部論理２０２を探索して影響範囲を求めることで、更新されるレジスタ（以下、「出力レジスタ」）を検出する。また、その出力レジスタから内部論理２０２を逆に追跡することで参照されるレジスタ（以下、「参照レジスタ」）を検出する。
【００５２】
すなわち、入力レジスタにはコマンド実行の際に値がセットされ、出力レジスタにコマンド実行の際、値が更新され、参照レジスタは、コマンド実行の際、値が読み出されるレジスタである。
【００５３】
このような分類処理は、たとえば、特開２００６−１９０２０９号公報で示したような信号伝搬解析や、公知の信号フロー解析（http://portal.acm.org/affiliated/citation.cfm?id=1119797&dl=acm&coll=GUIDE&CFID=15151515&CFTOKEN=6184618）や記号シミュレーション（http://www.eetimes.com/news/latest/showArticle.jhtml?articleID=18303007）により実現することができる。
【００５４】
図４は、コマンドＸの実行解析結果を模式的に示した説明図である。図４では、コマンドＸを実行する場合、レジスタＡ〜Ｇのうち、レジスタＡ，Ｂが入力レジスタ、レジスタＤが参照レジスタ、レジスタＢ，Ｃ，Ｄ，Ｆが出力レジスタとして分類される。このようにコマンドＸのほか、他のコマンド（たとえばコマンドＹ，Ｚ）についても実行することで、コマンドごとに、当該コマンドの実行に用いられる検証対象回路２００内のレジスタを、コマンドによる処理内容別に分類する。
【００５５】
図５は、コマンドＸ〜Ｚにおける実装記述分類情報３１２を示す図表であり、図６は、コマンドＸ〜Ｚにおける実装記述分類情報３１２を示すグラフである。図６において、実線矢印は「出力レジスタ」、点線矢印は「参照レジスタ」をあらわしている。なお、図６では、各コマンドＸ〜Ｚと入力レジスタとの対応関係は省略している。
【００５６】
また、設定部３０３は、分類部３０２によって処理内容別にレジスタが分類されたコマンドの集合の中から選ばれた、先に実行されるコマンドとその後に実行されるコマンドとの組み合わせごとに、当該組み合わせに応じた検証優先度を設定する機能を有する。ここで、検証優先度とは、バグの発生し易さをあらわす指標であり、数値であらわすことができる。数値で表わした場合、数値が大きいほどバグが発生しやすく検証優先度は高くなり、数値が小さいほどバグが発生しにくく検証優先度は低くなる。
【００５７】
設定部３０３では、具体的には、たとえば、実装記述分類情報３１２を参照し、連続する１対のコマンドの組み合わせごとに、検証優先度を設定する。バグが発生しやすい組み合わせ、すなわち検証優先度が高くなる組み合わせには、たとえば、同一レジスタに対し、先に実行されるコマンドにおいてライト処理をおこない、後に実行されるコマンドにおいてリード処理（Ｒｅａｄ  ａｆｔｅｒ  Ｗｒｉｔｅ、以下「Ｒ／Ｗ処理」という）をおこなう組み合わせや、同一レジスタに対し、先に実行されるコマンドにおいてライト処理をおこない、後に実行されるコマンドにおいてライト処理（Ｗｒｉｔｅ  ａｆｔｅｒ  Ｗｒｉｔｅ、以下「Ｗ／Ｗ処理」という）をおこなう組み合わせがある。
【００５８】
一方、バグが発生しにくい組み合わせ、すなわち検証優先度が低くなる組み合わせには、たとえば、同一レジスタに対し、先に実行されるコマンドにおいてリード処理をおこない、後に実行されるコマンドにおいてリード処理（Ｒｅａｄ  ａｆｔｅｒ  Ｒｅａｄ、以下「Ｒ／Ｒ処理」という）をおこなう組み合わせや、同一レジスタに対し、先に実行されるコマンドにおいてリード処理をおこない、後に実行されるコマンドにおいてライト処理（Ｒｅａｄ  ａｆｔｅｒ  Ｗｒｉｔｅ、以下「Ｗ／Ｒ処理」という）をおこなう組み合わせがある。
【００５９】
以降、このＲ／Ｗ処理、Ｗ／Ｗ処理、Ｒ／Ｒ処理、Ｗ／Ｒ処理のようにコマンドの連続実行にともなう処理内容を「連続処理内容」と称す。
【００６０】
たとえば、図５に示した実装記述分類情報３１２を参照すると、コマンドＸでは、レジスタＦが出力レジスタに分類されており、コマンドＹではレジスタＦが参照レジスタに分類されている。したがってコマンドＸを実行したあとコマンドＹを実行（Ｒ／Ｗ処理）すると、後のコマンドＹの実行においてレジスタＦの値を参照する場合、その値は先に実行されたコマンドＸによりレジスタＦに書き込まれた値となる。
【００６１】
このため、コマンドＹの実行結果は、先に実行されたコマンドＸの実行結果に依存することとなる。すなわち、コマンドＸにおいてライト処理を仕損じてもバグが発生しやすく、また、コマンドＹにおいてリード処理を仕損じてもバグが発生しやすくなる。したがって、Ｒ／Ｗ処理に該当する組み合わせは、バグの発生可能性が最も高いため、検証優先度も最も高く設定されることとなる。
【００６２】
同様に、コマンドＸでは、レジスタＦが出力レジスタとなっており、コマンドＺではレジスタＦが出力レジスタとなっている。したがって、コマンドＸを実行したあとコマンドＺを実行（Ｗ／Ｗ処理）すると、コマンドＺの実行においてレジスタＦの値を書き込む場合、先に実行されたコマンドＸにおいてレジスタＦに書き込まれた値が上書きされる。
【００６３】
このように、後に実行されるコマンドＺにおいてライト処理を仕損じた場合、先に実行されたコマンドＸによりレジスタＦに書き込まれた値が保持されているため、バグが発生しやすくなる。一方、後に実行されるコマンドＺにおいてライト処理が正常におこなわれていれば、先に実行されたコマンドＸのライト処理が仕損じていても影響はない。
【００６４】
したがって、Ｗ／Ｗ処理に該当する組み合わせは、Ｒ／Ｗ処理に該当する組み合わせよりもバグの発生可能性は低いため検証優先度も同様に低く設定されるが、Ｒ／Ｒ処理やＷ／Ｒ処理に該当する組み合わせよりもバグの発生可能性は高いため検証優先度も同様に高く設定される。このような検証優先度の設定には、より詳細には、検証優先度設定テーブルを用いることが好ましい。
【００６５】
図７は、検証優先度設定テーブル３１３を示す説明図である。検証優先度設定テーブル３１３では、最もバグの発生可能性が高いＲ／Ｗ処理は検証優先度を「３」とし、つぎにバグの発生可能性が高いＷ／Ｗ処理は検証優先度を「１」とし、残りのＲ／Ｒ処理およびＷ／Ｒ処理については、検証優先度を「０」とする。
【００６６】
この図７に示した検証優先度設定テーブル３１３を用いて、コマンドＸ〜Ｚの組み合わせごとに、検証優先度を設定する。この設定結果は、連続するコマンドの組み合わせに共通な規則となる（以下、「コマンド組み合わせ規則」と称す。）
【００６７】
図８は、コマンド組み合わせ規則３１４の一例を示す説明図である。なお、図８では、説明の簡略化のため、入力コマンドに関しては考慮しないこととする。コマンド組み合わせ規則３１４において、先に実行されるコマンドと後に実行されるコマンドとの組み合わせの検証優先度は、交差する数値に該当する。
【００６８】
たとえば、先に実行されるコマンドがコマンドＸで、かつ、後に実行されるコマンドがコマンドＸである場合、レジスタＤに対しＲ／Ｗ処理をおこなっているため、検証優先度は「３」となる。同様に、先に実行されるコマンドがコマンドＸであり、後に実行されるコマンドがコマンドＹである場合、レジスタＤに対しＲ／Ｗ処理をおこなっているとともに、レジスタＣに対しＷ／Ｗ処理をおこなっているため、この場合の検証優先度は３＋１＝４となる。
【００６９】
また、図３において、比較部３０４は、検証対象回路２００の仕様書にしたがってコマンドによる処理内容別に分類されたレジスタと、分類部３０２によって分類された処理内容別のレジスタとを、コマンドごとに比較する機能を有する。具体的には、たとえば、仕様書分類情報３１５と、実装記述分類情報３１２とを比較する。
【００７０】
ここで、仕様書分類情報３１５とは、検証対象回路２００の仕様書に記載されている内容からユーザがコマンドによる処理内容別にレジスタＡ〜Ｇを分類し、その分類結果を、実装記述分類情報３１２のようにまとめて電子化した情報である。比較部３０４では、仕様書分類情報３１５と実装記述分類情報３１２とをレジスタＡ〜Ｇごとに比較する。
【００７１】
また、検出部３０５は、分類部３０２によって処理内容別にレジスタＡ〜Ｇが分類されたコマンドの集合の中から選ばれた、先に実行されるコマンドとその後に実行されるコマンドとの組み合わせのうち、処理内容が仕様書とは異なる組み合わせを、比較部３０４によって比較された比較結果に基づいて検出する機能を有する。
【００７２】
具体的には、たとえば、先に実行されるコマンドと後に実行されるコマンドとの組み合わせのうち、仕様書分類情報３１５と実装記述分類情報３１２とで連続処理内容が相違する組み合わせを検出する。
【００７３】
図９は、比較部３０４および検出部３０５による比較検出例を示す説明図である。図９において、仕様書分類情報３１５と実装記述分類情報３１２とを比較すると、コマンドＹにおいて、仕様書分類情報３１５では参照レジスタがないのに対し実装記述分類情報３１２ではレジスタＦが参照レジスタに分類されている点、コマンドＺにおいて、仕様書分類情報３１５ではレジスタＨが参照レジスタに分類されているのに対し実装記述分類情報３１２では参照レジスタがない点、コマンドＺにおいて、仕様書分類情報３１５ではレジスタＥが出力レジスタに分類されているのに対し実装記述分類情報３１２ではレジスタＥは出力レジスタに分類されていない点が比較結果として検出される。
【００７４】
これにより、コマンドＸを実行した後コマンドＺを実行すると、レジスタＨについて仕様書分類情報３１５ではＲ／Ｗ処理となるが、実装記述分類情報３１２ではコマンドＸによるライト処理のみであるため、連続処理内容が相違する。
【００７５】
また、コマンドＺを実行した後コマンドＸを実行すると、レジスタＥについて仕様書分類情報３１５ではＲ／Ｗ処理となるが、実装記述分類情報３１２ではコマンドＸによるリード処理のみであるため、連続処理内容が相違する。
【００７６】
また、コマンドＺを実行した後コマンドＹを実行すると、レジスタＦについて仕様書分類情報３１５ではコマンドＺによるライト処理となるが、実装記述分類情報３１２ではＲ／Ｗ処理となるため、連続処理内容が相違する。図９では、検出部３０５による検出結果を「○」、「×」により表記している。「○」は仕様書分類情報３１５と実装記述分類情報３１２との間で連続処理内容が相違する組み合わせであり、「×」は連続処理内容が同一の組み合わせである。
【００７７】
仕様書分類情報３１５と実装記述分類情報３１２との間で連続処理内容が相違する組み合わせは設計ミスであるため、バグが発生する可能性が高いと考えられる。したがって、設定部３０３では、このような検出結果も用いて、組み合わせごとの検証優先度を設定することとしてもよい。
【００７８】
また、図３において、生成部３０６は、設定部３０３によって設定された組み合わせごとの検証優先度に基づいてコマンドを時系列に並べることにより、検証対象回路２００で実行可能な連続コマンド３２０を生成する機能を有する。
【００７９】
たとえば、生成部３０６では、すでに時系列に並べられた少なくとも最後尾のコマンドとの組み合わせの候補となるコマンドのうち、検証優先度が最高となるコマンドをあらたに並べることにより、連続コマンド３２０を生成する。また、すでに時系列に並べられた少なくとも最後尾のコマンドとの組み合わせの候補となるコマンドのうち、未出現のコマンドをあらたに並べることにより、連続コマンド３２０を生成することとしてもよい。
【００８０】
さらに、すでに時系列に並べられた少なくとも最後尾のコマンドとの組み合わせの候補となる未出現のコマンドのうち、検証優先度が最高となるコマンドをあらたに並べることにより、連続コマンド３２０を生成することとしてもよい。このような連続コマンド３２０の生成処理では、具体的には、たとえば、コマンド組み合わせ規則３１４を用いて連続コマンド３２０を生成するのが好ましい。この連続コマンド３２０の生成に際し、たとえば、既配列のコマンド列中、最後尾のコマンドの次に配置すべきコマンドは、参照ルールにしたがって決定することができる。
【００８１】
図１０は、参照ルールテーブル３１６を示す図表である。図１０において、参照ルールテーブル３１６では、参照ルールＲ１，Ｒ２，・・・ごとに参照対象コマンドとあらたに並べるコマンドの決定方法とが示されている。
【００８２】
参照対象コマンドとなるのは既配列のコマンド列の中の任意のコマンドであり、具体的には、たとえば、直前のコマンド（時系列的に末尾となるコマンド）であったり、過去ｐ（ｐ≧２、ｐは任意に設定可能）回分のコマンドにすることができる。
【００８３】
また、決定方法も、『ランダム』、『検証優先度が最高』、・・・など各種設定しておくこともできる。なお、これらの参照ルールＲ１，Ｒ２，・・・は、ある連続コマンド３２０について特定の参照ルールを適用してもよく、あらたにコマンドを並べる都度参照ルールを変更することとしてもよい。
【００８４】
ここで各参照ルールについて簡単に説明する。参照ルールＲ１は、参照対象コマンドはなく、あらたに配置するコマンドをランダムに決定する。参照ルールＲ２は、参照対象コマンドとの検証優先度が最高（値）となるコマンドを、あらたに配置するコマンドに決定する。たとえば、コマンド組み合わせ規則３１４を用いると、参照対象コマンドがコマンドＸである場合、あらたに配置されるコマンドはコマンドＹとなる。
【００８５】
また、参照ルールＲ３は、参照対象コマンドとの組み合わせのうち未出現の組み合わせの検証優先度が最高（値）となるコマンドを、あらたに配置するコマンドに決定する。たとえば、コマンド組み合わせ規則３１４を用いると、参照対象コマンドがコマンドＸでありコマンドの組み合わせＸ，Ｙがすでに出現している場合、あらたに配置されるコマンドはコマンドＸとなる。
【００８６】
参照ルールＲ４は、参照対象コマンドとの検証優先度が最低（値）となるコマンドを、あらたに配置するコマンドに決定する。たとえば、コマンド組み合わせ規則３１４を用いると、参照対象コマンドがコマンドＸである場合、あらたに配置されるコマンドはコマンドＺとなる。
【００８７】
また、参照ルールＲ５は、参照対象コマンドとの組み合わせのうち未出現の組み合わせの検証優先度が最低（値）となるコマンドを、あらたに配置するコマンドに決定する。たとえば、コマンド組み合わせ規則３１４を用いると、参照対象コマンドがコマンドＸであり、コマンドの組み合わせＸ，Ｘがすでに出現している場合、あらたに配置されるコマンドはコマンドＺとなる。
【００８８】
また、参照ルールＲ６は、参照対象コマンドとの検証優先度の合計が最高（値）となるコマンドを、あらたに配置するコマンドに決定する。ここでは、参照対象コマンドを過去２（ｐ＝２）回分のコマンドとする。たとえば、コマンド組み合わせ規則３１４を用いると、参照対象コマンドがコマンド列ＸＺである場合、あらたに配置されるコマンドはコマンドＹとなる。
【００８９】
また、参照ルールＲ７は、参照対象コマンドのうち未出現のコマンドとの検証優先度の合計が最低（値）となるコマンドを、あらたに配置するコマンドに決定する。ここでは、参照対象コマンドを過去２（ｐ＝２）回分のコマンドとする。たとえば、コマンド組み合わせ規則３１４を用いると、参照対象コマンドがコマンド列ＸＺである場合、あらたに配置されるコマンドはコマンドＺとなる。
【００９０】
ここで、連続コマンド３２０の生成例について説明する。図１１は、連続コマンド３２０の生成例を示す説明図である。図１１において、左端が先頭コマンドであり、時系列的に右方向にコマンドが配列されている。（Ａ）では、まず、先頭コマンドＸに対し参照ルールＲ２を適用することで、検証優先度が最高値となるコマンドＹを配置する。このコマンドＹに対し、参照ルールＲ２を適用することで、検証優先度が最高値となるコマンドＸを配置する。
【００９１】
このコマンドＸに対し、参照ルールＲ３を適用することで、検証優先度が最高値となる組み合わせがコマンド列ＸＸとなるため、コマンドＸを配置する。このコマンドＸに対し、参照ルールＲ３を適用することで、検証優先度が最高値となる組み合わせがコマンド列ＸＺであるため、コマンドＺを配置する。このコマンドＺに対し、参照ルールＲ２を適用することで、検証優先度が最高値となるコマンドＹを配置する。このようにして連続コマンド３２０を生成することができる。
【００９２】
また、（Ｂ）では、参照ルールＲ６を適用して、過去ｐ（ｐ＝２）回分のコマンドとの検証優先度の合計が最高（最大）となるコマンドを配列している。具体的には、符号１１００で示した過去２回分のコマンド列ＺＹに対し、コマンド列ＺＹ中、コマンドＺとの検証優先度とコマンドＹとの検証優先度との合計が最高値となるコマンドＹをコマンド列ＺＹのつぎに配置する。このようにしても、連続コマンド３２０を生成することができる。
【００９３】
また、図３において、入力部３０７は、ユーザにより任意に選択された連続コマンド３３０（自動生成された連続コマンド３２０とは異なる）の入力を受け付ける機能を有する。具体的には、連続コマンド３３０そのものである必要はなく、少なくとも連続コマンド３３０の識別情報の入力を受け付けられればよい。ここで、連続コマンド３３０の識別情報とは、コマンドＸ、コマンドＹ、コマンドＺ、・・・などコマンド列を特定する文字列データ（たとえば、ＸＸＺＹＺＸＹ・・・）である。
【００９４】
また、算出部３０８は、入力部３０７によって入力された連続コマンド３３０の識別情報と、設定部３０３によって設定された検証優先度とに基づいて、連続コマンド３２０の有効度を算出する機能を有する。そして、算出結果として、優先条件付連続コマンド３４０を出力する。
【００９５】
具体的には、たとえば、コマンド組み合わせ規則３１４にしたがって連続するコマンド列の検証優先度を読み出して、その総和を有効度として算出する。すなわち、有効度とは、入力部３０７から識別情報として与えられた連続コマンドが、バグが発生しやすいコマンド列であるかバグが発生しにくいコマンド列であるかを数値化して判断するための指標である。
【００９６】
図１２は、有効度の算出例を示す説明図である。図１２においては、たとえば先頭コマンドであるコマンドＸとその次に実行されるコマンドＹとの組み合わせに応じた検証優先度は「４」、そのコマンドＹとその次に実行されるコマンドＸとの組み合わせに応じた検証優先度は「１」、・・・というように検証優先度を抽出する。そしてその合計「１２」が有効度となる。なお、有効度を算出する場合、隣接する前回のコマンドとの組み合わせである必要はなく、たとえば、過去２回分のコマンドの検証優先度を抽出して、それらの合計を優先度としてもよい。
【００９７】
（検証支援処理手順）
つぎに、この発明の実施の形態にかかる検証支援処理手順について説明する。図１３は、この発明の実施の形態にかかる検証支援処理手順の第１の例を示すフローチャートである。図１３において、まず、取得部３０１によって検証対象回路２００の実装記述情報３１０が取得されるまで待ち受け（ステップＳ１３０１：Ｎｏ）、実装記述情報３１０が取得された場合（ステップＳ１３０１：Ｙｅｓ）、分類部３０２により、検証対象回路２００で実行可能なコマンドごとに、検証対象回路２００内のレジスタを処理内容別に分類する（ステップＳ１３０２）。これにより、実装記述分類情報３１２が得られる。
【００９８】
このあと、設定部３０３による検証優先度設定処理（ステップＳ１３０３）と生成部３０６による連続コマンド生成処理（ステップＳ１３０４）とを実行することで、一連の処理を終了する。つぎに、ステップＳ１３０３で示した検証優先度設定処理について説明する。
【００９９】
図１４は、検証優先度設定処理（ステップＳ１３０３）の詳細な処理手順を示すフローチャートである。図１４において、連続するコマンドの組み合わせのうち未選択の組み合わせを選択する（ステップＳ１４０１）。つぎに、検証優先度設定テーブル３１３から、選択された組み合わせに応じた処理（Ｗ／Ｒ処理、Ｗ／Ｗ処理、Ｒ／Ｒ処理、Ｒ／Ｗ処理）に該当する検証優先度を読み出す（ステップＳ１４０２）。
【０１００】
たとえば、先に実行されるコマンドと後に実行されるコマンドとの組み合わせがコマンドＸ，Ｙであったとすると、レジスタＦについてはＲ／Ｗ処理に該当するため、検証優先度「３」を読み出すとともに、レジスタＣについてはＷ／Ｗ処理に該当するため、検証優先度「１」を読み出す。
【０１０１】
そして、当該組み合わせに応じた検証優先度を設定する（ステップＳ１４０３）。具体的には、読み出された検証優先度の総和をとることで、組み合わせに応じた検証優先度を設定する。上記のコマンドＸ，Ｙの組み合わせを例に挙げると、検証優先度「３」，「１」が読み出されたため、コマンドＸ，Ｙの組み合わせに応じた検証優先度は、「４」となる。
【０１０２】
このあと、未選択のコマンドの組み合わせがあるか否かを判断し（ステップＳ１４０４）、未選択の組み合わせがある場合（ステップＳ１４０４：Ｙｅｓ）、ステップＳ１４０１に戻る。一方、未選択の組み合わせがない場合（ステップＳ１４０４：Ｎｏ）、組み合わせに応じた検証優先度を纏め上げて、コマンド組み合わせ規則３１４を生成する（ステップＳ１４０５）。このあと、連続コマンド生成処理（ステップＳ１３０４）に移行する。つぎに、ステップＳ１３０４で示した連続コマンド生成処理について説明する。
【０１０３】
図１５は、連続コマンド生成処理（ステップＳ１３０４）の詳細な処理手順を示すフローチャートである。図１５において、まず、ユーザが所望する連続コマンド数Ｎを設定する（ステップＳ１５０１）。これによりＮ通りの連続コマンド３２０の生成処理が開始される。
【０１０４】
インデックス番号ｉをｉ＝１とし（ステップＳ１５０２）、ｉ番目の連続コマンド３２０（以下、「連続コマンドＳＣｉ」と表記する）の生成処理を実行する（ステップＳ１５０３）。連続コマンドＳＣｉが生成されると、インデックス番号ｉを１つインクリメントし（ステップＳ１５０４）、ｉ＞Ｎであるか否かを判断する（ステップＳ１５０５）。ｉ＞Ｎでない場合（ステップＳ１５０５：Ｎｏ）、ステップＳ１５０３に戻る。一方、ｉ＞Ｎである場合（ステップＳ１５０５：Ｙｅｓ）、生成されたＮ通りの連続コマンド３２０を出力する（ステップＳ１５０６）。これにより、一連の処理を終了する。
【０１０５】
つぎに、ステップＳ１５０３で示した連続コマンドＳＣｉの生成処理について説明する。図１６は、連続コマンドＳＣｉの生成処理（ステップＳ１５０３）の詳細な処理手順を示すフローチャートである。図１６において、まず、連続コマンドＳＣｉ内のコマンド個数Ｍを設定する（ステップＳ１６０１）。この設定は、連続コマンド数Ｎの設定とともにおこなってもよい。
【０１０６】
そして、検証対象回路２００で実行可能なコマンド群の中から先頭コマンドを選択する（ステップＳ１６０２）。このあと、インデックス番号ｊをｊ＝２とする（ステップＳ１６０３）。このインデックス番号ｊはコマンドの配置順（または実行順）を示す変数である。なお、ｊ＝１は先頭コマンドの配置順をあらわしている。すなわち、ｊ番目のコマンドはｊ−１番目のコマンドのつぎに実行されるコマンドとなる。
【０１０７】
つぎに、参照ルールテーブル３１６から参照ルールを選択する（ステップＳ１６０４）。そして、選択された参照ルールにしたがって、直前のコマンド（ｊ−１番目のコマンド）のつぎに実行するｊ番目のコマンドを、検証対象回路２００で実行可能なコマンド群の中から選択して配置する（ステップＳ１６０５）。
【０１０８】
このあと、インデックス番号ｊを１つインクリメントし（ステップＳ１６０６）、ｊ＞Ｍであるか否かを判断する（ステップＳ１６０７）。ｊ＞Ｍでない場合（ステップＳ１６０７：Ｎｏ）、ステップＳ１６０４に戻る。一方、ｊ＞Ｍである場合（ステップＳ１６０７：Ｙｅｓ）、ステップＳ１５０４に移行する。
【０１０９】
このように、図１３〜図１６に示した処理手順によれば、連続するコマンドの組み合わせに応じた検証優先度を、同一レジスタに対する連続処理内容により設定するため、Ｒ／Ｗ処理やＷ／Ｗ処理のようにその連続処理内容に依存関係があれば検証優先度は高く設定される。これにより、バグが発生しやすい連続コマンド３２０を自動生成することができる。
【０１１０】
また、Ｒ／Ｒ処理やＷ／Ｒ処理のようにその連続処理内容に依存関係がなければ検証優先度は低く設定される。これにより、バグが発生しにくいような連続コマンド３２０の生成を抑制することができる。また、バグが発生しにくいような連続コマンド３２０を自動生成することもできるため、明らかに連続投入する必要がない連続コマンド３２０を認識することも可能である。
【０１１１】
つぎに、この発明の実施の形態にかかる検証支援処理手順の第２の例について説明する。図１７は、この発明の実施の形態にかかる検証支援処理手順の第２の例を示すフローチャートである。この第２の例は、第１の例における検証優先度設定処理（ステップＳ１３０３）のあと、入力部３０７および算出部３０８により、あらかじめ用意された連続コマンド３３０の有効度を算出する処理が追加された処理手順である。なお、図１３に示した第１の例と同一処理内容については同一ステップ番号を付し、その説明を省略する。
【０１１２】
図１７において、ステップＳ１３０１〜ステップＳ１３０３の実行後、入力部３０７により、連続コマンド３３０の識別情報が入力されるまで待ち受け（ステップＳ１７０１：Ｎｏ）、連続コマンド３３０の識別情報が入力された場合（ステップＳ１７０１：Ｙｅｓ）、算出部３０８により、その有効度を算出する（ステップＳ１７０２）。これにより、一連の処理を終了する。
【０１１３】
これにより、あらかじめ用意された連続コマンド３３０についてバグが発生しやすいかといった評価をおこなうことができる。また、複数の連続コマンド３３０に対して有効度を算出することで、優先条件付連続コマンド３４０を出力する。これにより、バグの発生可能性についての相対的な順位が得られ、優先して検証すべき連続コマンドを認識することができ、検証資源の有効利用を図ることができる。
【０１１４】
つぎに、この発明の実施の形態にかかる検証支援処理手順の第３の例について説明する。図１８は、この発明の実施の形態にかかる検証支援処理手順の第３の例を示すフローチャートである。この第３の例は、第１の例の処理手順に比較部３０４および検出部３０５による処理を追加した処理手順である。なお、図１３に示した第１の例と同一処理内容については同一ステップ番号を付し、その説明を省略する。
【０１１５】
図１８において、まず、ステップＳ１３０１〜ステップＳ１３０２のあと、比較部３０４により、仕様書分類情報３１５を読み込んで、実装記述分類情報３１２と比較する（ステップＳ１８０１）。この比較処理により、仕様書分類情報３１５と実装記述分類情報３１２との間において、コマンドごとに分類されたレジスタの相違点が検出される。
【０１１６】
このあと、検出部３０５により、連続するコマンドの組み合わせごとに、仕様書分類情報３１５と実装記述分類情報３１２との間において相違する連続処理内容を検出する（ステップＳ１８０２）。この検出結果を出力（画面表示または印刷出力）することで、実装記述情報３１０と仕様書との食い違いを発見することができる。すなわち、仕様書に内在する設計者の認識と実装記述情報３１０に内在する実装者の認識とのずれを顕在化することができる。
【０１１７】
また、検出の後、検出結果を用いて検証優先度設定処理を実行する（ステップＳ１３０３）。具体的には、図１４に示したステップＳ１４０３の処理において、ステップＳ１８０２の検出結果を用いる。たとえば、当該組み合わせにおいて相違点が検出された場合にはバグが発生しやすくなると考えられるため、さらに検証優先度を所定ポイント加算することとしてもよい。
【０１１８】
そして、この検証優先度設定処理（ステップＳ１３０３）のあと、連続コマンド生成処理（ステップＳ１３０４）を実行することで、実装記述情報３１０と仕様書との食い違いを考慮した連続コマンド３２０を得ることができる。なお、検証優先度設定処理（ステップＳ１３０３）のあと、ステップＳ１７０１〜ステップＳ１７０２のようにあらかじめ用意された連続コマンド３２０の有効度を算出することとしてもよい。
【０１１９】
以上説明したように、この発明の実施の形態によれば、膨大な数の連続コマンド３２０を効率的に絞り込み、効果的にバグをたたき出すことができる。これにより、検証期間の短縮化および検証者の作業負担の軽減を図ることができる。
【０１２０】
なお、本実施の形態で説明した検証支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【０１２１】
（付記１）検証対象回路の実装記述情報を取得させる取得工程と、
前記取得工程によって取得された実装記述情報に基づいて、前記検証対象回路で実行可能なコマンドごとに、当該コマンドの実行に用いられる前記検証対象回路内のレジスタを、前記コマンドによる処理内容別に分類させる分類工程と、
前記分類工程によって処理内容別にレジスタが分類されたコマンドの集合の中から選ばれた、先に実行されるコマンドとその後に実行されるコマンドとの組み合わせごとに、当該組み合わせに応じた検証優先度を設定させる設定工程と、
をコンピュータに実行させることを特徴とする検証支援プログラム。
【０１２２】
（付記２）前記設定工程は、
前記組み合わせの集合の中の一の組み合わせにおいて、同一のレジスタに対し、前記先に実行されるコマンドによる処理内容が「書込み」で、前記後に実行されるコマンドによる処理内容が「読み出し」である場合、前記一の組み合わせに応じた検証優先度を、他の組み合わせに応じた検証優先度よりも高く設定させることを特徴とする付記１に記載の検証支援プログラム。
【０１２３】
（付記３）前記設定工程は、
前記組み合わせの集合の中の一の組み合わせにおいて、同一のレジスタに対し、前記先に実行されるコマンドによる処理内容が「書込み」で、前記後に実行されるコマンドによる処理内容が「書込み」である場合、前記一の組み合わせに応じた検証優先度を、他の組み合わせに応じた検証優先度よりも高く設定させることを特徴とする付記１に記載の検証支援プログラム。
【０１２４】
（付記４）前記設定工程は、
前記組み合わせの集合の中の第１の組み合わせにおいて、同一のレジスタに対し、前記先に実行されるコマンドによる処理内容が「書込み」で、前記後に実行されるコマンドによる処理内容が「読み出し」である場合、前記第１の組み合わせに応じた検証優先度を、他の組み合わせに応じた検証優先度よりも高く設定させ、
前記組み合わせの集合の中の第２の組み合わせにおいて、同一のレジスタに対し、前記先に実行されるコマンドによる処理内容が「書込み」で、前記後に実行されるコマンドによる処理内容が「書込み」である場合、前記第２の組み合わせに応じた検証優先度を、前記第１の組み合わせに応じた検証優先度よりも低く、かつ前記他の組み合わせに応じた検証優先度よりも高く設定させることを特徴とする付記１に記載の検証支援プログラム。
【０１２５】
（付記５）前記検証対象回路の仕様書にしたがって前記コマンドによる処理内容別に分類されたレジスタと、前記分類工程によって分類された処理内容別のレジスタとを、前記コマンドごとに比較させる比較工程と、
前記分類工程によって処理内容別にレジスタが分類されたコマンドの集合の中から選ばれた、先に実行されるコマンドとその後に実行されるコマンドとの組み合わせのうち、前記処理内容が前記仕様書とは異なる組み合わせを、前記比較工程によって比較された比較結果に基づいて検出させる検出工程と、を前記コンピュータに実行させ、
前記設定工程は、
前記検出工程によって検出された検出結果に基づいて、前記検証優先度を設定させることを特徴とする付記１〜４のいずれか一つに記載の検証支援プログラム。
【０１２６】
（付記６）前記設定工程によって設定された前記組み合わせごとの検証優先度に基づいて前記コマンドを時系列に並べることにより、前記検証対象回路で実行可能な連続コマンドを生成させる生成工程を前記コンピュータに実行させることを特徴とする付記１〜５のいずれか一つに記載の検証支援プログラム。
【０１２７】
（付記７）複数のコマンドが時系列に並べられた任意の連続コマンドに関する識別情報の入力を受け付けさせる入力工程と、
前記入力工程によって入力された連続コマンドに関する識別情報と、前記設定工程によって設定された検証優先度とに基づいて、前記連続コマンドの有効度を算出させる算出工程と、を前記コンピュータに実行させることを特徴とする付記１〜６のいずれか一つに記載の検証支援プログラム。
【０１２８】
（付記８）検証対象回路の実装記述情報を取得させる取得工程と、
前記取得工程によって取得された実装記述情報に基づいて、前記検証対象回路で実行可能なコマンドごとに、当該コマンドの実行に用いられる前記検証対象回路内のレジスタを、前記コマンドによる処理内容別に分類させる分類工程と、
前記検証対象回路の仕様書にしたがって前記コマンドによる処理内容別に分類されたレジスタと、前記分類工程によって分類された処理内容別のレジスタとを、前記コマンドごとに比較させる比較工程と、
前記分類工程によって処理内容別にレジスタが分類されたコマンドの集合の中から選ばれた、先に実行されるコマンドとその後に実行されるコマンドとの組み合わせのうち、前記処理内容が前記仕様書とは異なる組み合わせを、前記比較工程によって比較された比較結果に基づいて検出させる検出工程と、
をコンピュータに実行させることを特徴とする検証支援プログラム。
【０１２９】
（付記９）付記１〜付記８のいずれか一つに記載の検証支援プログラムを記録した前記コンピュータに読み取り可能な記録媒体。
【０１３０】
（付記１０）検証対象回路の実装記述情報を取得する取得手段と、
前記取得手段によって取得された実装記述情報に基づいて、前記検証対象回路で実行可能なコマンドごとに、当該コマンドの実行に用いられる前記検証対象回路内のレジスタを、前記コマンドによる処理内容別に分類する分類手段と、
前記分類手段によって処理内容別にレジスタが分類されたコマンドの集合の中から選ばれた、先に実行されるコマンドとその後に実行されるコマンドとの組み合わせごとに、当該組み合わせに応じた検証優先度を設定する設定手段と、
を備えることを特徴とする検証支援装置。
【０１３１】
（付記１１）前記設定手段は、
前記組み合わせの集合の中の一の組み合わせにおいて、同一のレジスタに対し、前記先に実行されるコマンドによる処理内容が「書込み」で、前記後に実行されるコマンドによる処理内容が「読み出し」である場合、前記一の組み合わせに応じた検証優先度を、他の組み合わせに応じた検証優先度よりも高く設定することを特徴とする付記１０に記載の検証支援装置。
【０１３２】
（付記１２）前記設定手段は、
前記組み合わせの集合の中の一の組み合わせにおいて、同一のレジスタに対し、前記先に実行されるコマンドによる処理内容が「書込み」で、前記後に実行されるコマンドによる処理内容が「書込み」である場合、前記一の組み合わせに応じた検証優先度を、他の組み合わせに応じた検証優先度よりも高く設定することを特徴とする付記１０に記載の検証支援装置。
【０１３３】
（付記１３）前記設定手段は、
前記組み合わせの集合の中の第１の組み合わせにおいて、同一のレジスタに対し、前記先に実行されるコマンドによる処理内容が「書込み」で、前記後に実行されるコマンドによる処理内容が「読み出し」である場合、前記第１の組み合わせに応じた検証優先度を、他の組み合わせに応じた検証優先度よりも高く設定し、
前記組み合わせの集合の中の第２の組み合わせにおいて、同一のレジスタに対し、前記先に実行されるコマンドによる処理内容が「書込み」で、前記後に実行されるコマンドによる処理内容が「書込み」である場合、前記第２の組み合わせに応じた検証優先度を、前記第１の組み合わせに応じた検証優先度よりも低く、かつ前記他の組み合わせに応じた検証優先度よりも高く設定することを特徴とする付記１０に記載の検証支援装置。
【０１３４】
（付記１４）前記検証対象回路の仕様書にしたがって前記コマンドによる処理内容別に分類されたレジスタと、前記分類手段によって分類された処理内容別のレジスタとを、前記コマンドごとに比較する比較手段と、
前記分類手段によって処理内容別にレジスタが分類されたコマンドの集合の中から選ばれた、先に実行されるコマンドとその後に実行されるコマンドとの組み合わせのうち、前記処理内容が前記仕様書とは異なる組み合わせを、前記比較手段によって比較された比較結果に基づいて検出する検出手段と、を備え、
前記設定手段は、
前記検出手段によって検出された検出結果に基づいて、前記検証優先度を設定することを特徴とする付記１０〜１３のいずれか一つに記載の検証支援装置。
【０１３５】
（付記１５）前記設定手段によって設定された前記組み合わせごとの検証優先度に基づいて前記コマンドを時系列に並べることにより、前記検証対象回路で実行可能な連続コマンドを生成する生成手段を備えることを特徴とする付記１０〜１４のいずれか一つに記載の検証支援装置。
【０１３６】
（付記１６）複数のコマンドが時系列に並べられた任意の連続コマンドに関する識別情報の入力を受け付ける入力手段と、
前記入力手段によって入力された連続コマンドに関する識別情報と、前記設定手段によって設定された検証優先度とに基づいて、前記連続コマンドの有効度を算出する算出手段と、
を備えることを特徴とする付記１０〜１５のいずれか一つに記載の検証支援装置。
【０１３７】
（付記１７）検証対象回路の実装記述情報を取得する取得手段と、
前記取得手段によって取得された実装記述情報に基づいて、前記検証対象回路で実行可能なコマンドごとに、当該コマンドの実行に用いられる前記検証対象回路内のレジスタを、前記コマンドによる処理内容別に分類する分類手段と、
前記検証対象回路の仕様書にしたがって前記コマンドによる処理内容別に分類されたレジスタと、前記分類手段によって分類された処理内容別のレジスタとを、前記コマンドごとに比較する比較手段と、
前記分類手段によって処理内容別にレジスタが分類されたコマンドの集合の中から選ばれた、先に実行されるコマンドとその後に実行されるコマンドとの組み合わせのうち、前記処理内容が前記仕様書とは異なる組み合わせを、前記比較手段によって比較された比較結果に基づいて検出する検出手段と、
を備えることを特徴とする検証支援装置。
【０１３８】
（付記１８）検証対象回路の実装記述情報を取得する取得工程と、
前記取得工程によって取得された実装記述情報に基づいて、前記検証対象回路で実行可能なコマンドごとに、当該コマンドの実行に用いられる前記検証対象回路内のレジスタを、前記コマンドによる処理内容別に分類する分類工程と、
前記分類工程によって処理内容別にレジスタが分類されたコマンドの集合の中から選ばれた、先に実行されるコマンドとその後に実行されるコマンドとの組み合わせごとに、当該組み合わせに応じた検証優先度を設定する設定工程と、
を含んだことを特徴とする検証支援方法。
【０１３９】
（付記１９）前記設定工程は、
前記組み合わせの集合の中の一の組み合わせにおいて、同一のレジスタに対し、前記先に実行されるコマンドによる処理内容が「書込み」で、前記後に実行されるコマンドによる処理内容が「読み出し」である場合、前記一の組み合わせに応じた検証優先度を、他の組み合わせに応じた検証優先度よりも高く設定することを特徴とする付記１８に記載の検証支援方法。
【０１４０】
（付記２０）前記設定工程は、
前記組み合わせの集合の中の一の組み合わせにおいて、同一のレジスタに対し、前記先に実行されるコマンドによる処理内容が「書込み」で、前記後に実行されるコマンドによる処理内容が「書込み」である場合、前記一の組み合わせに応じた検証優先度を、他の組み合わせに応じた検証優先度よりも高く設定することを特徴とする付記１８に記載の検証支援方法。
【０１４１】
（付記２１）前記設定工程は、
前記組み合わせの集合の中の第１の組み合わせにおいて、同一のレジスタに対し、前記先に実行されるコマンドによる処理内容が「書込み」で、前記後に実行されるコマンドによる処理内容が「読み出し」である場合、前記第１の組み合わせに応じた検証優先度を、他の組み合わせに応じた検証優先度よりも高く設定し、
前記組み合わせの集合の中の第２の組み合わせにおいて、同一のレジスタに対し、前記先に実行されるコマンドによる処理内容が「書込み」で、前記後に実行されるコマンドによる処理内容が「書込み」である場合、前記第２の組み合わせに応じた検証優先度を、前記第１の組み合わせに応じた検証優先度よりも低く、かつ前記他の組み合わせに応じた検証優先度よりも高く設定することを特徴とする付記１８に記載の検証支援方法。
【０１４２】
（付記２２）前記検証対象回路の仕様書にしたがって前記コマンドによる処理内容別に分類されたレジスタと、前記分類工程によって分類された処理内容別のレジスタとを、前記コマンドごとに比較する比較工程と、
前記分類工程によって処理内容別にレジスタが分類されたコマンドの集合の中から選ばれた、先に実行されるコマンドとその後に実行されるコマンドとの組み合わせのうち、前記処理内容が前記仕様書とは異なる組み合わせを、前記比較工程によって比較された比較結果に基づいて検出する検出工程と、を含み、
前記設定工程は、
前記検出工程によって検出された検出結果に基づいて、前記検証優先度を設定することを特徴とする付記１８〜２１のいずれか一つに記載の検証支援方法。
【０１４３】
（付記２３）前記設定工程によって設定された前記組み合わせごとの検証優先度に基づいて前記コマンドを時系列に並べることにより、前記検証対象回路で実行可能な連続コマンドを生成する生成工程を含んだことを特徴とする付記１８〜２２のいずれか一つに記載の検証支援方法。
【０１４４】
（付記２４）複数のコマンドが時系列に並べられた任意の連続コマンドに関する識別情報の入力を受け付ける入力工程と、
前記入力工程によって入力された連続コマンドに関する識別情報と、前記設定工程によって設定された検証優先度とに基づいて、前記連続コマンドの有効度を算出する算出工程と、
を含んだことを特徴とする付記１８〜２３のいずれか一つに記載の検証支援方法。
【０１４５】
（付記２５）検証対象回路の実装記述情報を取得する取得工程と、
前記取得工程によって取得された実装記述情報に基づいて、前記検証対象回路で実行可能なコマンドごとに、当該コマンドの実行に用いられる前記検証対象回路内のレジスタを、前記コマンドによる処理内容別に分類する分類工程と、
前記検証対象回路の仕様書にしたがって前記コマンドによる処理内容別に分類されたレジスタと、前記分類工程によって分類された処理内容別のレジスタとを、前記コマンドごとに比較する比較工程と、
前記分類工程によって処理内容別にレジスタが分類されたコマンドの集合の中から選ばれた、先に実行されるコマンドとその後に実行されるコマンドとの組み合わせのうち、前記処理内容が前記仕様書とは異なる組み合わせを、前記比較工程によって比較された比較結果に基づいて検出する検出工程と、
を含んだことを特徴とする検証支援方法。
【産業上の利用可能性】
【０１４６】
以上のように、本発明にかかる検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法は、ディジタル回路における機能ブロックやモジュール、システムの機能検証に有用である。
【図面の簡単な説明】
【０１４７】
【図１】この発明の実施の形態にかかる検証支援装置のハードウェア構成を示すブロック図である。
【図２】検証対象回路の一例を示す説明図である。
【図３】この発明の実施の形態にかかる検証支援装置の機能的構成を示すブロック図である。
【図４】コマンドＸの実行解析結果を模式的に示した説明図である。
【図５】コマンドＸ〜Ｚにおける実装記述分類情報を示す図表である。
【図６】コマンドＸ〜Ｚにおける実装記述分類情報を示すグラフである。
【図７】検証優先度設定テーブルを示す説明図である。
【図８】コマンド組み合わせ規則の一例を示す説明図である。
【図９】比較部および検出部による比較検出例を示す説明図である。
【図１０】参照ルールテーブルを示す図表である。
【図１１】連続コマンドの生成例を示す説明図である。
【図１２】有効度の算出例を示す説明図である。
【図１３】この発明の実施の形態にかかる検証支援処理手順の第１の例を示すフローチャートである。
【図１４】検証優先度設定処理（ステップＳ１３０３）の詳細な処理手順を示すフローチャートである。
【図１５】連続コマンド生成処理（ステップＳ１３０４）の詳細な処理手順を示すフローチャートである。
【図１６】連続コマンドＳＣｉの生成処理（ステップＳ１５０３）の詳細な処理手順を示すフローチャートである。
【図１７】この発明の実施の形態にかかる検証支援処理手順の第２の例を示すフローチャートである。
【図１８】この発明の実施の形態にかかる検証支援処理手順の第３の例を示すフローチャートである。
【符号の説明】
【０１４８】
２００  検証対象回路
２０１  レジスタ群
２０２  内部論理
３００  検証支援装置
３０１  取得部
３０２  分類部
３０３  設定部
３０４  比較部
３０５  検出部
３０６  生成部
３０７  入力部
３０８  算出部
３１０  実装記述情報
３１１  コマンド定義ファイル群
３１２  実装記述分類情報
３１３  検証優先度設定テーブル
３１４  コマンド組み合わせ規則
３１５  仕様書分類情報
３１６  参照ルールテーブル
３２０  連続コマンド
３３０  連続コマンド
３４０  優先条件付連続コマンド
【図１】
2008083781.tif 000003
【図２】
2008083781.tif 000004
【図３】
2008083781.tif 000005
【図４】
2008083781.tif 000006
【図５】
2008083781.tif 000007
【図６】
2008083781.tif 000008
【図７】
2008083781.tif 000009
【図８】
2008083781.tif 000010
【図９】
2008083781.tif 000011
【図１０】
2008083781.tif 000012
【図１１】
2008083781.tif 000013
【図１２】
2008083781.tif 000014
【図１３】
2008083781.tif 000015
【図１４】
2008083781.tif 000016
【図１５】
2008083781.tif 000017
【図１６】
2008083781.tif 000018
【図１７】
2008083781.tif 000019
【図１８】
2008083781.tif 000020