(57)【要約】【課題】検証作業の担当者に手間や時間をかけさせることなく、ランダムシミュレーションにおけるパラメータ調整を適切におこなうこと。【解決手段】検証装置１００は、ランダムパターン生成部、ランダムシミュレーション部２００、およびパラメータ決定部２２０を備える。ランダムパターン生成部は、パラメータファイルに示されているパラメータを用いて、ランダムパターンを生成する。ランダムシミュレーション部２００は、ランダムパターン生成部が生成したランダムパターンを検証回路に入力することにより、検証回路のランダムシミュレーションをおこなう。パラメータ決定部２２０は、ランダムシミュレーションの履歴情報に基づいて、パラメータファイルに示すパラメータを決定する。【選択図】図２
2009223849.tif 000002
【特許請求の範囲】
【請求項１】
パラメータファイルに示されているパラメータを用いて、ランダムパターンを生成するランダムパターン生成手段と、
前記ランダムパターン生成手段によって生成されたランダムパターンを検証対象の論理回路に入力することにより、前記検証対象の論理回路のランダムシミュレーションをおこなうランダムシミュレーション手段と、
前記ランダムシミュレーションの履歴情報に基づいて、前記パラメータファイルに示すパラメータを決定するパラメータ決定手段と、
を備えることを特徴とする論理回路の検証装置。
【請求項２】
前記ランダムシミュレーションの実行結果に基づいて、前記ランダムシミュレーションにおける複数の検証項目の中から、次に前記ランダムシミュレーションをおこなう検証項目を決定する検証項目決定手段を備え、
前記パラメータ決定手段は、
前記検証項目決定手段によって決定された検証項目のパラメータを決定し、
前記ランダムシミュレーション手段は、
前記検証項目決定手段によって決定された検証項目の前記ランダムパターンを前記論理回路に入力することにより、前記検証項目決定手段によって決定された検証項目の前記ランダムシミュレーションをおこなうことを特徴とする請求項１に記載の論理回路の検証装置
【請求項３】
前記パラメータ決定手段は、
前記ランダムシミュレーションの履歴情報に基づいて、前回の前記ランダムシミュレーションに用いられたパラメータに近似するパラメータを、前記パラメータファイルに示すパラメータとして決定することを特徴とする請求項１または２に記載の論理回路の検証装置。
【請求項４】
前記パラメータ決定手段は、
前記ランダムシミュレーションの履歴情報に基づいて、前回の前記ランダムシミュレーションに用いられたパラメータに近似しないパラメータを、前記パラメータファイルに示すパラメータとして決定することを特徴とする請求項１または２に記載の論理回路の検証装置。
【請求項５】
前記パラメータ決定手段は、
前記ランダムシミュレーションの履歴情報に基づいて、過去の前記ランダムシミュレーションに用いられたパラメータ以外のパラメータを、前記パラメータファイルに示すパラメータとして決定することを特徴とする請求項１または２に記載の論理回路の検証装置。
【請求項６】
パラメータファイルに示されているパラメータを用いて、ランダムパターンを生成するランダムパターン生成工程と、
前記ランダムパターン生成工程によって生成されたランダムパターンを検証対象の論理回路に入力することにより、前記論理回路のランダムシミュレーションをおこなうランダムシミュレーション工程と、
前記ランダムシミュレーションの履歴情報に基づいて、前記パラメータファイルに示すパラメータを決定するパラメータ決定工程と、
を含んだことを特徴とする論理回路の検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、論理回路の動作を検証する検証装置、および検証方法に関する。
【背景技術】
【０００２】
設計後の論理回路の動作を検証する方法の一例として、ランダムシミュレーションが知られている。ランダムシミュレーションでは、ランダムパターン発生器などによりランダムな入力パターンを生成し、生成した入力パターンを用いて、論理回路の動作をコンピュータにシミュレートさせる。
【０００３】
このような、ランダムシミュレーションによれば、シミュレータが自動で入力パターンを作成するため、膨大な入力パターンの作成を軽減することができるものとされている。また、設計者や検証者が思いつかない信号やタイミングの組み合わせで入力パターンを与えることができるため、考慮漏れで検証されていない機能があるという事態を低減させることができるものとされている。
【０００４】
しかしながら、ランダムシミュレーションでは、ランダムにできる信号やタイミングの組み合わせがあまりにも多すぎると、いつまでも意図した動作の検証ができないといった問題が生じていた。そこで、このような問題を回避するための技術として、ランダムシナリオのランダム性に制限を加えるパラメータを外部から与えることにより、ランダムシナリオに方向性をもたせ、ランダムシナリオを意図した範囲内のものとする技術が考案されている（たとえば、下記特許文献１参照。）。
【０００５】
上記以外にも、ランダムシミュレーションにおける効率化を図るための技術として、検証対象より抽象度の高いリファレンスモデルに対し、あらかじめ用意したパターンが有効かどうかを判定し、パターンの取捨選択をおこなう技術（たとえば、下記特許文献２参照。）や、ランダムテストでトランザクションにおいて、同様なトランザクションを重複しないように制御する技術（たとえば、下記特許文献３参照。）などが考案されている。
【０００６】
【特許文献１】特開平１０−２８３３８８号公報
【特許文献２】特開２００７−０２６１８３号公報
【特許文献３】特開２００７−２８０２６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記従来技術では、検証項目が網羅的に検証されるかどうかはパラメータの設定次第と言える。すなわち、適切にパラメータを設定しないと、検証項目が網羅的に検証されないといった問題が生じていた。
【０００８】
（検証処理の概要）
ここで、従来技術による検証処理の概要について説明する。図２７は、従来技術による検証処理の概要を示す説明図である。
【０００９】
検証装置２７００のランダムシミュレーション部２７１０は、検証対象とする論理回路（以下、「検証回路」という）のランダムシミュレーションをおこなう。ランダムシミュレーション部２７１０は、ランダムパターン生成部を有する。
【００１０】
ランダムパターン生成部は、パラメータファイルに示されているパラメータを用いて、ランダムパターンを生成する。ランダムシミュレーション部は、生成したランダムパターンを用いて、検証回路のランダムシミュレーションをおこなう。ランダムシミュレーション部は、モニタを有する。モニタは、ランダムシミュレーションの実行結果として、たとえばどの検証項目がチェックされたかを示すログを出力する。
【００１１】
ここで、検証作業の担当者は、ログに示されている検証項目のチェック結果を確認しながら、パラメータを適切に変更する必要がある。このとき、ログの内容とパラメータとの関係を理解する必要があるので、ある程度のスキルが必要になる。したがって、ランダムシミュレーションを完了させるためにはある程度スキルのある人が手間や時間をかけて検証作業をおこなわなければならないといった問題が生じていた。
【００１２】
この発明は、上述した従来技術による問題点を解消するため、検証作業の担当者に手間や時間をかけさせることなく、ランダムシミュレーションにおけるパラメータ調整を適切におこなうことができる検証装置、および検証方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上述した課題を解決し、目的を達成するため、この検証装置、および検証方法は、パラメータファイルに示されているパラメータを用いて、ランダムパターンを生成し、生成されたランダムパターンを検証対象の論理回路に入力することにより、論理回路のランダムシミュレーションをおこない、ランダムシミュレーションの履歴情報に基づいて、パラメータファイルに示すパラメータを決定することを要件とする。
【００１４】
また、上記検証装置、および検証方法において、ランダムシミュレーションの実行結果に基づいて、ランダムシミュレーションにおける複数の検証項目の中から、次にランダムシミュレーションをおこなう検証項目を決定し、決定された検証項目のパラメータを決定し、決定された検証項目のランダムパターンを論理回路に入力することにより、決定された検証項目のランダムシミュレーションをおこなうこととしてもよい。
【発明の効果】
【００１５】
本検証装置、検証方法、検証プログラム、及び該プログラムを記録した記録媒体によれば、検証作業の担当者に手間や時間をかけさせることなく、ランダムシミュレーションにおけるパラメータ調整を適切におこなうことができるという効果を奏する。
【発明を実施するための最良の形態】
【００１６】
以下に添付図面を参照して、この発明にかかる検証装置、検証方法、検証プログラム及び該プログラムを記録した記録媒体の好適な実施の形態を詳細に説明する。
【００１７】
（実施の形態）
（検証装置のハードウェア構成）
まず、この発明の実施の形態にかかる検証装置のハードウェア構成について説明する。図１は、この発明の実施の形態にかかる検証装置のハードウェア構成を示すブロック図である。
【００１８】
図１において、検証装置１００は、ＣＰＵ１０１と、ＲＯＭ１０２と、ＲＡＭ１０３と、ＨＤＤ（ハードディスクドライブ）１０４と、ＨＤ（ハードディスク）１０５と、ＦＤＤ（フレキシブルディスクドライブ）１０６と、着脱可能な記録媒体の一例としてのＦＤ（フレキシブルディスク）１０７と、ディスプレイ１０８と、Ｉ／Ｆ（インターフェース）１０９と、キーボード１１０と、マウス１１１と、スキャナ１１２と、プリンタ１１３と、を備えており、各構成部はバス１２０によってそれぞれ接続されている。
【００１９】
ここで、ＣＰＵ１０１は、検証装置１００の全体の制御を司る。ＲＯＭ１０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ１０３は、ＣＰＵ１０１のワークエリアとして使用される。ＨＤＤ１０４は、ＣＰＵ１０１の制御にしたがってＨＤ１０５に対するデータのリード／ライトを制御する。ＨＤ１０５は、ＨＤＤ１０４の制御で書き込まれたデータを記憶する。
【００２０】
ＦＤＤ１０６は、ＣＰＵ１０１の制御にしたがってＦＤ１０７に対するデータのリード／ライトを制御する。ＦＤ１０７は、ＦＤＤ１０６の制御で書き込まれたデータを記憶したり、ＦＤ１０７に記憶されたデータを読み取らせたりする。
【００２１】
また、着脱可能な記録媒体として、ＦＤ１０７のほか、ＣＤ−ＲＯＭ（ＣＤ−Ｒ、ＣＤ−ＲＷ）、ＭＯ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、メモリーカードなどであってもよい。ディスプレイ１０８は、カーソル、アイコンあるいはツールボックスをはじめ、文章、画像、機能情報などのデータを表示する。このディスプレイ１０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００２２】
Ｉ／Ｆ１０９は、通信回線を通じてインターネットなどのネットワーク１１４に接続され、このネットワーク１１４を介してユーザ端末装置などの他の装置に接続される。そして、Ｉ／Ｆ１０９は、ネットワーク１１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ１０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００２３】
キーボード１１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス１１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００２４】
スキャナ１１２は、画像を光学的に読み取り、検証装置１００内に画像データを取り込む。なお、スキャナ１１２は、ＯＣＲ機能を持たせてもよい。また、プリンタ１１３は、画像データや文章データを印刷する。プリンタ１１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００２５】
（検証装置の機能的構成）
つぎに、この発明の実施の形態にかかる検証装置１００の機能的構成について説明する。図２は、この発明の実施の形態にかかる検証装置１００の機能的構成を示すブロック図である。図２において、検証装置１００は、ランダムシミュレーション部２００と、履歴情報更新部２１０と、パラメータ決定部２２０と、前処理部２４０と、から構成されている。
【００２６】
ランダムシミュレーション部２００は、検証回路のランダムシミュレーションをおこなう。ランダムシミュレーション部２００は、ランダムパターン生成部を有する。ランダムパターン生成部は、パラメータファイルに示されているパラメータを用いて、ランダムパターンを生成する。
【００２７】
ランダムシミュレーション部２００は、ランダムパターン生成部が生成したランダムパターンを検証回路に入力することにより、検証回路のランダムシミュレーションをおこなう。ランダムシミュレーション部２００は、モニタを有する。モニタは、ランダムシミュレーションの実行結果として、どの検証項目がチェックされたかを示すログを出力する。
【００２８】
履歴情報更新部２１０は、履歴情報の保存・更新をおこなう。たとえば、履歴情報更新部２１０は、ランダムシミュレーション部２００が用いたパラメータおよびランダムシミュレーション部２００が出力したログから、履歴情報を生成する。履歴情報には、使用したパラメータの頻度、パラメータの組み合わせとその頻度、チェックされた検証項目などが示される。
【００２９】
既に過去に生成した履歴情報が存在する場合、履歴情報更新部２１０は、既に存在する履歴情報とは別に、生成した履歴情報を保存してもよい。また、既に過去に生成した履歴情報が存在する場合、履歴情報更新部２１０は、既に存在する履歴情報に対して生成した履歴情報を結合することにより、既に存在する履歴情報を更新してもよい。ここで、未チェックのチェック項目がある場合、履歴情報更新部２１０は、未チェックのチェック項目が示された残項目ファイルを出力する。
【００３０】
パラメータ決定部２２０は、ランダムシミュレーションの履歴情報に基づいて、パラメータファイルに示すパラメータを決定する。具体的には、パラメータ決定部２２０は、履歴情報、パラメータ制約ファイル、チェック項目関連ファイル、および指示ファイルに基づいてパラメータ決定する。
【００３１】
前処理部２４０は、前処理として、パラメータファイル、パラメータ制約ファイル、チェック項目関連ファイル、および指示ファイルを生成する。パラメータファイルは、ランダムシミュレーション部２００に与えるパラメータが示されている。パラメータ制約ファイルには、パラメータのとりえる範囲が示されている。チェック項目関連ファイルには、チェック項目同士の関係が示されている。指示ファイルには、どのチェック項目のためのパラメータを生成したいか、およびパラメータの決定方法が示されている。
【００３２】
ランダムシミュレーション部２００、履歴情報更新部２１０、パラメータ決定部２２０、および前処理部２４０は、具体的には、たとえば図１に示したＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５、ＦＤ１０７に記憶されたプログラムをＣＰＵ１０１が実行することによってその機能を実現する。
【００３３】
（検証処理の概要）
つぎに、この発明の実施の形態にかかる検証装置１００による検証処理の概要について説明する。図３は、この発明の実施の形態にかかる検証装置１００による検証処理の概要を示すフローチャートである。
【００３４】
本実施形態の検証装置１００は、検証処理をおこなうことにより、適切かつ自動的にパラメータを調整する。具体的には、過去にランダムシミュレーション部２００に与えたパラメータとその結果を利用して新たにパラメータを決定する。
【００３５】
まず、前処理部２４０により、前処理をおこなう（ステップＳ３０１）。前処理においては、パラメータファイルに示すパラメータを適当な方法で生成しておく。たとえば、パラメータファイルに示すパラメータをユーザ入力してもよい。また、パラメータファイルに示すパラメータを、コンピュータが自動的に生成してもよい。なお、２回目以降の検証処理においては、前回の検証処理により検証装置１００が自動的に生成したパラメータを用いるため、前処理は必要ない。
【００３６】
つぎに、ランダムシミュレーション部２００により、ステップＳ３０１で生成されたパラメータファイルに示されているパラメータを用いて、検証回路のランダムシミュレーションをおこなう（ステップＳ３０２）。つぎに、履歴情報更新部２１０により、履歴情報の保存・更新をおこなう（ステップＳ３０３）。
【００３７】
つぎに、一連の処理を終了するか否かを判断する（ステップＳ３０４）。たとえば、検証装置１００は、残項目がある場合、または既定の回数分のシミュレーションが実行済みの場合に、一連の処理を終了すると判断する。ステップＳ３０４において、一連の処理を終了すると判断した場合（ステップＳ３０４：Ｙｅｓ）は、一連の処理を終了する。
【００３８】
一方、ステップＳ３０４において、一連の処理を終了しないと判断した場合（ステップＳ３０４：Ｎｏ）は、パラメータ決定部２２０により、パラメータを決定して（ステップＳ３０５）、ステップＳ３０２に戻り、ステップＳ３０５で決定されたパラメータを用いて、引き続き検証処理を行う。このように、本実施形態の検証装置１００によれば、手作業を介することなく、ランダムシミュレーション、履歴情報の更新、パラメータの決定を繰り返しおこなうことができる。
【００３９】
（前処理の手順の一例）
つぎに、前処理部２４０による前処理の手順の一例について説明する。図４は、前処理部２４０による前処理の手順の一例を示すフローチャートである。
【００４０】
まず、前処理部２４０は、パラメータファイルを作成する（ステップＳ４０１）。つぎに、前処理部２４０は、パラメータ制約ファイルを作成する（ステップＳ４０２）。
【００４１】
つぎに、前処理部２４０は、指示ファイルを作成する（ステップＳ４０３）。そして、前処理部２４０は、チェック項目関連ファイルを作成して（ステップＳ４０４）、一連の処理を終了する。
【００４２】
つぎに、前処理部２４０によって生成されたパラメータファイルの一例について説明する。図５は、前処理部２４０によって生成されたパラメータファイルの一例を示す説明図である。パラメータファイルのフォーマットは、ランダムシミュレーション部２００が読み取り可能な形式にする。
【００４３】
つぎに、前処理部２４０によって生成されたパラメータ制約ファイルの一例について説明する。図６は、前処理部２４０によって生成されたパラメータ制約ファイルの一例を示す説明図である。
【００４４】
パラメータ制約ファイルは、パラメータの値の範囲やとりうる値を制約として記述する。たとえば、図６に示すパラメータ制約ファイルには、「ｃｍｄ＿ｒｅａｄ」の値として、「１」から「１０」までの間のいずれかの値を設定してもよいことが示されている。また、図６に示すパラメータ制約ファイルには、「ｌｅｎ＿ｍｉｎ」の値として、「１」、「２」、「３」、「４」、または「５」のいずれかの値を設定してもよいことが示されている。また、図６に示すパラメータ制約ファイルには、「ｒｅｓｅｔ＿ｉｎｔｅｒｖａｌ＿ｍｉｎ」の値として、「１０００」から「１００００」までの間、かつ「１０００」単位の値のいずれかを設定してもよいことが示されている。
【００４５】
つぎに、前処理部２４０によって生成された指示ファイルの一例について説明する。図７は、前処理部２４０によって生成された指示ファイルの一例を示す説明図である。
【００４６】
指示ファイルには、どのチェック項目をチェック対象とするか、どの方法でパラメータを決定するかを指定する。指示ファイルは、パラメータ決定部２２０が、パラメータを決定するときに用いる。随時、指示ファイルを変更することで、パラメータ決定部２２０が、異なるチェック項目や決定方法により、パラメータを決定することができる。たとえば、図７に示す指示ファイルには、チェック対象とする項目として「ｃｈｅｃｋ＿００１」が示されている。また、図７に示す指示ファイルには、パラメータを決定する方法として「５」が示されている。
【００４７】
つぎに、前処理部２４０によって生成されたチェック項目関連ファイルの一例について説明する。図８は、前処理部２４０によって生成されたチェック項目関連ファイルの一例を示す説明図である。
【００４８】
チェック項目関連ファイルには、チェック項目同士が類似しているかを指定する。図８に示すチェック項目関連ファイルにおいて、ＡＬＩＫＥには、２つのグループ（ｃｈｅｃｋ＿００１およびｃｈｅｃｋ＿００２のグループと、ｃｈｅｃｋ＿０１０およびｃｈｅｃｋ＿０１２のグループ）があり、それぞれのグループ内のチェック項目同士は類似したチェック項目であることをあらわしている。
【００４９】
ＤＩＦＦＥＲには、２つのグループ（ｃｈｅｃｋ＿００１およびｃｈｅｃｋ＿００３のグループと、ｃｈｅｃｋ＿０１２およびｃｈｅｃｋ＿０１３のグループ）があり、それぞれのグループ内では類似していないチェック項目であることを表している。これらの設定は、類似しているかどうかにより近いパラメータでモニタが動作するかどうかを表しているが、厳密なものでなく、パラメータ決定部２２０がパラメータを決定する際のヒントとして使われる。
【００５０】
（ランダムシミュレーション処理の手順の一例）
つぎに、ランダムシミュレーション部２００によるランダムシミュレーション処理の手順の一例について説明する。図９は、ランダムシミュレーション部２００によるランダムシミュレーション処理の手順の一例を示すフローチャートである。
【００５１】
まず、ランダムシミュレーション部２００は、パラメータファイルに示されているパラメータを読み込み（ステップＳ９０１）、読み込んだパラメータに従ったランダムな信号パターンを生成し、生成した信号パターンを検証回路に供給することにより、検証回路のシミュレーションを実行する（ステップＳ９０２）。これにより、検証回路は供給された入力パターンに従って動作する。
【００５２】
そして、ランダムシミュレーション部２００は、検証回路が特定の動作を行った場合に、ログを出力して（ステップＳ９０３）、一連の処理を終了する。たとえばランダムシミュレーション部２００は、ログをデータベースやログファイルに出力する。
【００５３】
つぎに、ランダムシミュレーション部２００が出力したログの一例について説明する。図１０は、ランダムシミュレーション部２００が出力したログの一例を示す説明図である。図１０に示すログにおいて、動作したチェック項目には「１」が示されている。
【００５４】
また、図１０に示すログにおいて、動作しなかったチェック項目には「０」が示されている。たとえば、図１０に示すログにおいては、「ｃｈｅｃｋ＿００１」および「ｃｈｅｃｋ＿０１３」は動作したことが示されており、それ以外のチェック項目は動作しなかったことを示している。
【００５５】
（履歴情報更新処理の手順の一例）
つぎに、履歴情報更新部２１０による履歴情報更新処理の手順の一例について説明する。図１１は、履歴情報更新部２１０による履歴情報更新処理の手順の一例を示すフローチャートである。
【００５６】
まず、履歴情報更新部２１０は、ランダムシミュレーション部２００がシミュレーションに用いたパラメータファイルを読み込む（ステップＳ１１０１）。つぎに、履歴情報更新部２１０は、ランダムシミュレーション部２００が出力したログファイルを読み込む（ステップＳ１１０２）。つぎに、履歴情報更新部２１０は、以前の履歴情報更新処理によって出力された履歴情報を読み込む（ステップＳ１１０３）。
【００５７】
つぎに、履歴情報更新部２１０は、パラメータファイルに示されているパラメータの値に基づいて、パラメータ頻度情報を更新する（ステップＳ１１０４）。つぎに、履歴情報更新部２１０は、パラメータファイルに示されているパラメータの値とログファイルに示されているモニタの動作状況とに基づいて、チェック項目頻度情報を更新する（ステップＳ１１０５）。
【００５８】
つぎに、履歴情報更新部２１０は、パラメータファイルに示されているパラメータの値に基づいて、パラメータ組み合わせ頻度情報を更新する（ステップＳ１１０６）。つぎに、履歴情報更新部２１０は、更新した履歴情報を保存する（ステップＳ１１０７）。以前の履歴情報がある場合、履歴情報更新部２１０は、以前の履歴情報を上書きする。
【００５９】
そして、履歴情報更新部２１０は、まだチェックされていない検証項目を示す残項目ファイルを出力して（ステップＳ１１０８）、一連の処理を終了する。たとえば、履歴情報更新部２１０は、ステップＳ１１０７で保存した履歴情報を参照することにより、まだチェックされていない検証項目を特定して残項目ファイルに示す。履歴情報更新部２１０は、残項目ファイルをデータベースやログファイルなどに出力する。
【００６０】
つぎに、履歴情報更新部２１０によるパラメータ頻度情報の更新処理の一例を示す。図１２は、履歴情報更新部２１０によるパラメータ頻度情報の更新処理の一例を示す説明図である。
【００６１】
図１２に示すように、更新前のパラメータ頻度情報における、「ｃｍｄ＿ｒｅａｄ」の値「１０」の頻度は「１８」である。また、「ｃｍｄ＿ｗｒｉｔｅ」の値「５」の頻度は「２２」である。また、「ｃｍｄ＿ｓｅｅｋ」の値「１」の頻度は「７９」である。
【００６２】
図５に示した、パラメータファイルには、「ｃｍｄ＿ｒｅａｄ」の値「１０」、「ｃｍｄ＿ｗｒｉｔｅ」の値「５」、および「ｃｍｄ＿ｓｅｅｋ」の値「１」がそれぞれ示されている。したがって、履歴情報更新部２１０は、上記それぞれのパラメータ値の頻度を「１」ずつ加算する。
【００６３】
これにより、図１２に示すように、更新後のパラメータ頻度情報における、「ｃｍｄ＿ｒｅａｄ」の値「１０」の頻度は「１９」となる。また、「ｃｍｄ＿ｗｒｉｔｅ」の値「５」の頻度は「２３」となる。また、「ｃｍｄ＿ｓｅｅｋ」の値「１」の頻度は「８０」となる。
【００６４】
つぎに、履歴情報更新部２１０によるチェック項目頻度情報の更新処理の一例を示す。図１３は、履歴情報更新部２１０によるチェック項目頻度情報の更新処理の一例を示す説明図である。
【００６５】
図１０に示した、ログファイルには、「ｃｈｅｃｋ＿００１」および「ｃｈｅｃｋ＿０１３」は動作したことが示されている。また、図５に示した、パラメータファイルには、「ｃｍｄ＿ｒｅａｄ」の値「１０」、「ｃｍｄ＿ｗｒｉｔｅ」の値「５」、および「ｃｍｄ＿ｓｅｅｋ」の値「１」がそれぞれ示されている。したがって、履歴情報更新部２１０は、「ｃｈｅｃｋ＿００１」および「ｃｈｅｃｋ＿０１３」に関する、上記それぞれのパラメータ値の頻度を「１」ずつ加算する。
【００６６】
これにより、図１３に示すように、更新後のチェック項目頻度情報における、「ｃｈｅｃｋ＿００１」に関する、「ｃｍｄ＿ｒｅａｄ」の値「１０」の頻度は「３」に更新される。また、「ｃｍｄ＿ｗｒｉｔｅ」の値「５」の頻度は「２」に更新される。また、「ｃｍｄ＿ｓｅｅｋ」の値「１」の頻度は「７」に更新される。
【００６７】
つぎに、履歴情報更新部２１０によるパラメータ組み合わせ頻度情報の更新処理の一例を示す。図１４は、履歴情報更新部２１０によるパラメータ組み合わせ頻度情報の更新処理の一例を示す説明図である。
【００６８】
図５に示した、パラメータファイルには、「ｃｍｄ＿ｒｅａｄ」の値「１０」、「ｃｍｄ＿ｗｒｉｔｅ」の値「５」、「ｃｍｄ＿ｓｅｅｋ」の値「１」、「ｌｅｎ＿ｍｉｎ」の値「１」、「ｌｅｎ＿ｍａｘ」の値「２０」、「ｒｅｓｅｔ＿ｉｎｔｅｒｖａｌ＿ｍｉｎ」の値「１０００」、および「ｒｅｓｅｔ＿ｉｎｔｅｒｖａｌ＿ｍａｘ」の値「１００００」がそれぞれ示されている。
【００６９】
したがって、履歴情報更新部２１０は、上記したパラメータ値の組み合わせを示す「１０，５，１，１，２０，１０００，１００００」の頻度に「１」を加算する。これにより、図１４に示すように、更新後のパラメータ組み合わせ頻度情報における、「１０，５，１，１，２０，１０００，１００００」の頻度は「１」に更新される。
【００７０】
つぎに、履歴情報更新部２１０による更新後の履歴情報の一例について説明する。図１５は、履歴情報更新部２１０による更新後の履歴情報の一例を示す説明図である。
【００７１】
図１５に示す履歴情報には、図１２に示した履歴情報更新部２１０による更新後のパラメータ頻度情報、図１３に示した履歴情報更新部２１０による更新後のチェック項目頻度情報、および図１４に示した履歴情報更新部２１０によるパラメータ組み合わせ頻度情報が示されている。
【００７２】
つぎに、履歴情報更新部２１０が出力した残項目ファイルの一例について説明する。図１６は、履歴情報更新部２１０が出力した残項目ファイルの一例を示す説明図である。
【００７３】
図１６に示す残項目ファイルにおいては、「ｃｈｅｃｋ＿００２」、「ｃｈｅｃｋ＿００３」、「ｃｈｅｃｋ＿０１１」、および「ｃｈｅｃｋ＿０１２」が動作しなかったことを示している。
【００７４】
検証装置１００は、たとえば、残項目ファイルに何も示されてない場合、すわなち、すべての検証項目が動作された場合に、一連の検証処理を終了してもよい。また、検証処理１００は、規定回数のランダムシミュレーション処理をおこなった場合に、一連の検証処理を終了してもよい。
【００７５】
つぎに、パラメータ決定部２２０によるパラメータ決定処理の手順の一例について説明する。図１７は、パラメータ決定部２２０によるパラメータ決定処理の手順の一例を示すフローチャートである。
【００７６】
まず、パラメータ決定部２２０は、指示ファイル、パラメータ制約ファイル、チェック項目関連ファイル、および履歴情報を読み取る（ステップＳ１７０１〜ステップＳ１７０４）。このとき、指示ファイルの内容をあらかじめ修正しておいてもよい。
【００７７】
そして、パラメータ決定部２２０は、読み取った指示ファイルから、対象とする検証項目およびパラメータの決定方法を得る（ステップＳ１７０５）。たとえば、図７に示す指示ファイルから、対象とする検証項目として「ｃｈｅｃｋ＿００１」を得る。また、図７に示す指示ファイルから、パラメータを決定する方法として「５」を得る。
【００７８】
パラメータ決定部２２０は、パラメータを決定する方法が「１」で、かつ対象とする検証項目がすでにチェック済みの場合（ステップＳ１７０６：Ｙｅｓ）は、パラメータ決定方法「１．１」によりパラメータを決定して（ステップＳ１７０７）、パラメータファイルを出力する（ステップＳ１７１９）。
【００７９】
また、パラメータ決定部２２０は、パラメータを決定する方法が「１」で、かつ対象とする検証項目が未チェックの場合（ステップＳ１７０８：Ｙｅｓ）は、パラメータ決定方法「１．２」によりパラメータを決定して（ステップＳ１７０９）、パラメータファイルを出力する（ステップＳ１７１９）。
【００８０】
また、パラメータ決定部２２０は、パラメータを決定する方法が「２」で、かつ対象とする検証項目がすでにチェック済みの場合（ステップＳ１７１０：Ｙｅｓ）は、パラメータ決定方法「２．１」によりパラメータを決定して（ステップＳ１７１１）、パラメータファイルを出力する（ステップＳ１７１９）。
【００８１】
また、パラメータ決定部２２０は、パラメータを決定する方法が「２」で、かつ対象とする検証項目が未チェックの場合（ステップＳ１７１２：Ｙｅｓ）は、パラメータ決定方法「２．２」によりパラメータを決定して（ステップＳ１７１３）、パラメータファイルを出力する（ステップＳ１７１９）。
【００８２】
また、パラメータ決定部２２０は、パラメータを決定する方法が「３」の場合（ステップＳ１７１４：Ｙｅｓ）は、パラメータ決定方法「３」によりパラメータを決定して（ステップＳ１７１５）、パラメータファイルを出力する（ステップＳ１７１９）。
【００８３】
また、パラメータ決定部２２０は、パラメータを決定する方法が「４」の場合（ステップＳ１７１６：Ｙｅｓ）は、パラメータ決定方法「４」によりパラメータを決定して（ステップＳ１７１７）、パラメータファイルを出力する（ステップＳ１７１９）。
【００８４】
また、パラメータ決定部２２０は、パラメータを決定する方法が「１」〜「４」のいずれでもない場合（ステップＳ１７１６：Ｎｏ）は、パラメータ決定方法「５」によりパラメータを決定して（ステップＳ１７１８）、パラメータファイルを出力する（ステップＳ１７１９）。
【００８５】
上記によって決定されたパラメータ決定方法のうち、パラメータ決定方法「１．１」および「１．２」は、前回のランダムシミュレーションに用いられたパラメータに近似するパラメータを、次のランダムシミュレーションに用いるパラメータとして決定する。パラメータ決定方法「２．１」および「２．２」は、前回のランダムシミュレーションに用いられたパラメータに近似しないパラメータを、次のランダムシミュレーションに用いるパラメータとして決定する。
【００８６】
パラメータ決定方法「３」は、過去のランダムシミュレーションに用いられたパラメータ以外のパラメータを、前記パラメータファイルに示すパラメータとして決定する。パラメータ決定方法「４」は、試していないパラメータの値の組をなるべく使用する。パラメータ決定方法「５」では、すべてのパラメータをランダムに選択する。
【００８７】
パラメータ決定方法「１．１」、「２．１」、「３」、「４」、および「５」では、パラメータの決定をする際に重み付きランダム発生器を使用する。重み付きランダム発生器は発生させたい値とその重みの組を登録してランダム値を生成し、その重みに対応した確率でランダム値を発生させる。
【００８８】
つぎに、パラメータ決定方法「１．１」の手順の一例について説明する。図１８は、パラメータ決定方法「１．１」の手順の一例を示すフローチャートである。
【００８９】
まず、重み付きランダム発生器を用意する（ステップＳ１８０１）。図１８に示す例では、重み付きランダム発生器「ＷＲＡＮＤ」を用意する。履歴情報に頻度の記録があれば（ステップＳ１８０２：Ｙｅｓ）、ＷＲＡＮＤ［パラメータ値］＝頻度＋１とする（ステップＳ１８０３）。たとえば、図１５に示す「ｃｈｅｃｋ＿００１」の「ｃｍｄ＿ｒｅａｄ」の値「９」は、頻度が「１」なので、ＷＲＡＮＤ［９］＝１＋１となる。
【００９０】
履歴情報に頻度の記録がなければ（ステップＳ１８０２：Ｎｏ）、ＷＲＡＮＤ［パラメータ値］＝１とする（ステップＳ１８０４）。たとえば、図１５に示す「ｃｈｅｃｋ＿００１」の「ｃｍｄ＿ｒｅａｄ」の値「２」は、頻度が「０」なので、ＷＲＡＮＤ［２］＝１となる。パラメータ決定部２２０は、パラメータが取り得る値ごとにステップＳ１８０２〜Ｓ１８０４の処理をおこなう。
【００９１】
そして、重み付きランダム発生器からランダム値を得る（ステップＳ１８０５）。ステップＳ１８０５で得られた値がパラメータの値となる。パラメータ決定部２２０は、パラメータごとにステップＳ１８０２〜Ｓ１８０５の処理をおこなう。パラメータ決定部２２０は、すべてのパラメータについて値が得られたら、それをパラメータファイルとして出力する。
【００９２】
このような手順により、頻度が高い値は高い確率で選択され、頻度が低い値は低い確率で選択される。たとえば、図１５に示す「ｃｈｅｃｋ＿００１」の「ｃｍｄ＿ｒｅａｄ」の場合は、ＷＲＡＮＤから得られるランダム値は「８」になる確率が高くなる。これにより、以前と同じようなパラメータを得ることができる。ただしランダムの要素があるので全く同じではない。
【００９３】
たとえば、重点的にある検証項目の検証をおこないたい場合、少しずつパラメータを変えながら繰り返しランダムシミュレーションをおこなう必要がある。このような場合、パラメータ決定方法「１．２」によりパラメータを決定することで、重点的にある検証項目の検証をおこなうことができる。
【００９４】
つぎに、パラメータ決定方法「１．２」の手順の一例について説明する。図１９は、パラメータ決定方法「１．２」の手順の一例を示すフローチャートである。図１９では、まだチェックされていない項目「ｃｈｅｃｋ＿００２」のパラメータを決定する例について説明する。
【００９５】
まず、チェック項目関連ファイルから対象チェック項目「ｃｈｅｃｋ＿００２」と似ているチェック項目を探す（ステップＳ１９０１）。「ｃｈｅｃｋ＿００２」はチェック項目関連ファイルから「ｃｈｅｃｋ＿００１」が似ていることがわかる。
【００９６】
つぎに、対象チェック項目「ｃｈｅｃｋ＿００２」と似ているチェック項目のうち、すでにチェックされているチェック項目を探す（ステップＳ１９０２）。すでにチェックされているチェック項目がある場合は（ステップＳ１９０２：Ｙｅｓ）、パラメータ決定方法「１．１」でパラメータを決定する（ステップＳ１９０３）。たとえば、「ｃｈｅｃｋ＿００１」はチェック済みなので、パラメータ決定方法「１．１」でパラメータを決定する。一方、すでにチェックされているチェック項目がない場合は（ステップＳ１９０２：Ｎｏ）、パラメータ決定方法「３」でパラメータを決定する（ステップＳ１９０４）。
【００９７】
重点的にある検証項目の検証をおこないたい場合において、その検証項目が未チェックの場合は、パラメータ決定方法「１．１」の方法を用いることができない。そこで、パラメータ決定方法「１．２」により、類似する検証項目のパラメータを利用することで、パラメータ決定方法「１．１」と同様の処理をおこなうことができる。そして、一度でも所望の検証項目がチェックされれば、パラメータ決定方法「１．１」の方法を用いて、パラメータを決定することができる。
【００９８】
つぎに、パラメータ決定方法「２．１」の手順の一例について説明する。図２０は、パラメータ決定方法「２．１」の手順の一例を示すフローチャートである。図２０では、すでにチェックされている項目「ｃｈｅｃｋ＿００１」のパラメータを決定する例について説明する。
【００９９】
まず、重み付きランダム発生器を用意する（ステップＳ２００１）。図２０に示す例では、重み付きランダム発生器「ＷＲＡＮＤ」を用意する。つぎに、履歴情報からパラメータの値の頻度の最大値を取得して「ＭＡＸ」とする（ステップＳ２００２）。たとえば、図１５に示す「ｃｈｅｃｋ＿００１」の「ｃｍｄ＿ｒｅａｄ」の値「８」は、頻度が「６」なので、「ＭＡＸ」＝「６」となる。
【０１００】
もし履歴情報に頻度の記録があれば（ステップＳ２００３：Ｙｅｓ）、ＷＲＡＮＤ［パラメータ値］＝「ＭＡＸ」／（頻度＋１）とする（ステップＳ２００４）。たとえば、図１５に示す「ｃｈｅｃｋ＿００１」の「ｃｍｄ＿ｒｅａｄ」の値「９」は、頻度が「１」なので、ＷＲＡＮＤ［９］＝６／（１＋１）となる。
【０１０１】
もし履歴情報に頻度の記録がなければ（ステップＳ２００３：Ｎｏ）、ＷＲＡＮＤ［パラメータ値］＝「ＭＡＸ」とする（ステップＳ２００５）。たとえば、図１５に示す「ｃｈｅｃｋ＿００１」の「ｃｍｄ＿ｒｅａｄ」の値「２」は、頻度が「０」なので、ＷＲＡＮＤ［２］＝６となる。パラメータ決定部２２０は、パラメータが取り得る値ごとにステップＳ２００３〜Ｓ２００５の処理をおこなう。
【０１０２】
そして、重み付きランダム発生器からランダム値を得る（ステップＳ２００６）。ステップＳ２００６で得られた値がパラメータの値となる。パラメータ決定部２２０は、パラメータごとにステップＳ２００２〜Ｓ２００６の処理をおこなう。パラメータ決定部２２０は、すべてのパラメータについて値が得られたら、それをパラメータファイルとして出力する。
【０１０３】
このような手順により、頻度が高い値は低い確率で選択され、頻度が低い値は高い確率で選択される。たとえば、図１５に示す「ｃｈｅｃｋ＿００１」の「ｃｍｄ＿ｒｅａｄ」の場合は、ＷＲＡＮＤから得られるランダム値は「８」になる確率が低くなる。これにより、以前と異なるようなパラメータを得ることができる。
【０１０４】
たとえば、パラメータ決定方法「１．１」では、ある程度ランダムシミュレーションが実行されると、パラメータが一定の組み合わせに偏ることがある。そこで、パラメータ決定方法「２．１」を用いることにより、パラメータの組み合わせが偏ることなく、ランダムシミュレーションをおこなうことができる。
【０１０５】
つぎに、パラメータ決定方法「２．２」の手順の一例について説明する。図２１は、パラメータ決定方法「２．２」の手順の一例を示すフローチャートである。図２１では、まだチェックされていない項目「ｃｈｅｃｋ＿００２」のパラメータを決定する例について説明する。
【０１０６】
チェック項目関連ファイルから対象チェック項目「ｃｈｅｃｋ＿００２」と似ているチェック項目があり（ステップＳ２１０１：Ｙｅｓ）、対象チェック項目「ｃｈｅｃｋ＿００２」と似ているチェック項目のうち、すでにチェックされているチェック項目がある場合は（ステップＳ２１０２：Ｙｅｓ）、パラメータ決定方法「２．１」でパラメータを決定する（ステップＳ２１０３）。
【０１０７】
チェック項目関連ファイルから対象チェック項目「ｃｈｅｃｋ＿００２」と似ているチェック項目があり（ステップＳ２１０１：Ｙｅｓ）、対象チェック項目「ｃｈｅｃｋ＿００２」と似ているチェック項目のうち、すでにチェックされているチェック項目がない場合は（ステップＳ２１０２：Ｎｏ）、ステップＳ２１０４へすすむ。また、チェック項目関連ファイルから対象チェック項目「ｃｈｅｃｋ＿００２」と似ているチェック項目がない場合も（ステップＳ２１０１：Ｎｏ）、ステップＳ２１０４へすすむ。
【０１０８】
続いて、チェック項目関連ファイルから対象チェック項目「ｃｈｅｃｋ＿００２」と似ていないチェック項目がある場合は（ステップＳ２１０４：Ｙｅｓ）、パラメータ決定方法「１．２」でパラメータを決定する（ステップＳ２１０６）。一方、チェック項目関連ファイルから対象チェック項目「ｃｈｅｃｋ＿００２」と似ていないチェック項目がない場合は（ステップＳ２１０４：Ｎｏ）、パラメータ決定方法「３」でパラメータを決定する（ステップＳ２１０５）。
【０１０９】
たとえば、パラメータの組み合わせが偏らないように新たな検証項目で検証をおこないたい場合において、その検証項目が未チェックの場合は、パラメータ決定方法「２．１」の方法を用いることができない。そこで、パラメータ決定方法「２．２」により、類似する検証項目のパラメータを利用することで、パラメータ決定方法「２．１」と同様の処理をおこなうことができる。そして、一度でも所望の検証項目がチェックされれば、パラメータ決定方法「２．１」の方法を用いて、パラメータを決定することができる。
【０１１０】
つぎに、パラメータ決定方法「３」の手順の一例について説明する。図２２は、パラメータ決定方法「３」の手順の一例を示すフローチャートである。
【０１１１】
まず、重み付きランダム発生器を用意する（ステップＳ２２０１）。図２２に示す例では、重み付きランダム発生器「ＷＲＡＮＤ」を用意する。つぎに、履歴情報からパラメータの値の頻度の最大値を取得して「ＭＡＸ」とする（ステップＳ２２０２）。たとえば、図１５に示す「ｃｈｅｃｋ＿００１」の「ｃｍｄ＿ｒｅａｄ」の値「８」は、頻度が「６」なので、「ＭＡＸ」＝「６」となる。
【０１１２】
そして、履歴情報に頻度の記録があれば（ステップＳ２２０３：Ｙｅｓ）、ＷＲＡＮＤ［パラメータ値］＝「ＭＡＸ」／（頻度＋１）とする（ステップＳ２２０４）。履歴情報に頻度の記録がなければ（ステップＳ２２０３：Ｎｏ）、ＷＲＡＮＤ［パラメータ値］＝「ＭＡＸ」とする（ステップＳ２２０５）。パラメータ決定部２２０は、パラメータが取り得る値ごとにステップＳ２２０３〜Ｓ２２０５の処理をおこなう。
【０１１３】
そして、重み付きランダム発生器からランダム値を得る（ステップＳ２２０６）。ステップＳ２２０６で得られた値がパラメータの値となる。パラメータ決定部２２０は、パラメータごとにステップＳ２２０２〜Ｓ２２０６の処理をおこなう。パラメータ決定部２２０は、すべてのパラメータについて値が得られたら、それをパラメータファイルとして出力する。
【０１１４】
たとえば、パラメータ決定方法「１．１」、「１．２」、「２．１」、「２．２」だけでは、チェック対象として選択されない検証項目が発生する場合がある。そこで、パラメータ決定方法「３」を用いることにより、チェックされていない検証項目がチェック対象として選択される可能性を増やすことができる。
【０１１５】
つぎに、パラメータ決定方法「４」の手順の一例について説明する。図２３は、パラメータ決定方法「４」の手順の一例を示すフローチャートである。
【０１１６】
まず、重み付きランダム発生器を用意する（ステップＳ２３０１）。図２３に示す例では、重み付きランダム発生器「ＷＲＡＮＤ」を用意する。つぎに、履歴情報からパラメータの組み合わせの頻度の最大値を取得して「ＭＡＸ」とする（ステップＳ２３０２）。つぎに、パラメータの値の組み合わせに対して一意の番号としてＮを付与する（ステップＳ２３０３）。
【０１１７】
そして、履歴情報にそのパラメータの組み合わせの頻度の記録があるならば（ステップＳ２３０４：Ｙｅｓ）、ＷＲＡＮＤ［Ｎ］＝「ＭＡＸ」／（頻度＋１）とする（ステップＳ２３０５）。履歴情報にそのパラメータの組み合わせの頻度の記録がなければ（ステップＳ２３０４：Ｎｏ）、ＷＲＡＮＤ［Ｎ］＝「ＭＡＸ」とする（ステップＳ２３０６）。パラメータ決定部２２０は、パラメータの値の組み合わせごとにステップＳ２３０３〜Ｓ２３０６の処理をおこなう。
【０１１８】
そして、パラメータ決定部２２０は、重み付きランダム発生器からランダム値を取得して（ステップＳ２３０７）、取得したランダム値に対応する番号を有するパラメータの組み合わせをパラメータファイルに出力する（ステップＳ２３０８）。
【０１１９】
たとえば、パラメータ決定方法「１．１」、「１．２」、「２．１」、「２．２」だけでは、チェック対象として選択されないパラメータの組み合わせが発生する場合がある。そこで、パラメータ決定方法「４」を用いることにより、チェックされていないパラメータの組み合わせがチェック対象として選択される可能性を増やすことができる。
【０１２０】
つぎに、パラメータ決定方法「５」の手順の一例について説明する。図２４は、パラメータ決定方法「５」の手順の一例を示すフローチャートである。
【０１２１】
まず、重み付きランダム発生器を用意する（ステップＳ２４０１）。図２４に示す例では、重み付きランダム発生器「ＷＲＡＮＤ」を用意する。つぎに、ＷＲＡＮＤ［パラメータ値］＝１とする（ステップＳ２４０２）。パラメータ決定部２２０は、パラメータが取り得る値ごとにステップＳ２４０２の処理をおこなう。
【０１２２】
そして、重み付きランダム発生器からランダム値を得る（ステップＳ２４０３）。ステップＳ２４０３で得られた値がパラメータの値となる。パラメータ決定部２２０は、パラメータごとにステップＳ２４０２〜Ｓ２４０３の処理をおこなう。パラメータ決定部２２０は、すべてのパラメータについて値が得られたら、それをパラメータファイルとして出力する。このように、本実施形態の検証装置１００は、過去の履歴に関わらずにパラメータを決定することもできるので、ランダム性を高めることもできる。
【０１２３】
つぎに、この発明の実施の形態にかかる検証装置１００の他の機能的構成について説明する。図２５は、この発明の実施の形態にかかる検証装置１００の他の機能的構成を示すブロック図である。図２５に示す検証装置１００は、指示ファイル作成部２５００をさらに備える点が、図２に示した検証装置１００と相違する。指示ファイル作成部２５００は、ランダムシミュレーションの実行結果に基づいて、ランダムシミュレーションにおける複数の検証項目の中から、次にランダムシミュレーションをおこなう検証項目を決定する検証項目決定部として機能する。具体的には、指示ファイル作成部２５００は、次にランダムシミュレーションをおこなう検証項目が示された指示ファイルを自動生成する。
【０１２４】
つぎに、指示ファイル作成部２５００による指示ファイル作成処理の手順の一例について説明する。図２６は、指示ファイル作成部２５００による指示ファイル作成処理の手順の一例を示すフローチャートである。
【０１２５】
まず、指示ファイル作成部２５００は、指示ファイル、残項目ファイル、および予約項目ファイルを読み込む（ステップＳ２６０１〜Ｓ２６０３）。予約項目ファイルに示されている予約項目が残項目ファイルに示されている場合は（ステップＳ２６０４：Ｙｅｓ）、予約項目を次のチェック項目として（ステップＳ２６０５）、以降の残項目を残項目ファイルの先頭に挿入する（ステップＳ２６０６）。
【０１２６】
一方、予約項目ファイルに示されている予約項目が残項目ファイルに示されていない場合は（ステップＳ２６０４：Ｎｏ）、残項目ファイルに示されている先頭の残項目を次のチェック項目とする（ステップＳ２６０７）。指示ファイル作成部２５００は、予約項目ファイルに示されている全ての予約項目に対してステップＳ２６０４の処理をおこなう。
【０１２７】
そして、指示ファイル作成部２５００は、次にランダムシミュレーションをおこなう検証項目が示された指示ファイルを出力して（ステップＳ２６０８）、残項目ファイルに示されている残項目を予約項目として予約項目ファイルに出力する（ステップＳ２６０９）。
【０１２８】
以上説明したように、この発明の実施の形態にかかる検証方法、検証プログラム、該プログラムを記録した記録媒体、および検証装置によれば、過去に実行されたランダムシミュレーションの履歴に基づいてパラメータを決定する。また、指示ファイルを自動作成することもできる。このため、検証作業の担当者に手間や時間をかけさせることなく、ランダムシミュレーションにおけるパラメータ調整を適切におこなうことができる。
【０１２９】
なお、本実施の形態で説明した検証方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーション、ＣＡＤ等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。上述した実施の形態に関し、さらに以下の付記を開示する。
【０１３０】
（付記１）パラメータファイルに示されているパラメータを用いて、ランダムパターンを生成するランダムパターン生成手段と、
前記ランダムパターン生成手段によって生成されたランダムパターンを検証対象の論理回路に入力することにより、前記検証対象の論理回路のランダムシミュレーションをおこなうランダムシミュレーション手段と、
前記ランダムシミュレーションの履歴情報に基づいて、前記パラメータファイルに示すパラメータを決定するパラメータ決定手段と、
を備えることを特徴とする論理回路の検証装置。
【０１３１】
（付記２）前記ランダムシミュレーションの実行結果に基づいて、前記ランダムシミュレーションにおける複数の検証項目の中から、次に前記ランダムシミュレーションをおこなう検証項目を決定する検証項目決定手段を備え、
前記パラメータ決定手段は、
前記検証項目決定手段によって決定された検証項目のパラメータを決定し、
前記ランダムシミュレーション手段は、
前記検証項目決定手段によって決定された検証項目の前記ランダムパターンを前記論理回路に入力することにより、前記検証項目決定手段によって決定された検証項目の前記ランダムシミュレーションをおこなうことを特徴とする付記１に記載の論理回路の検証装置。
【０１３２】
（付記３）前記パラメータ決定手段は、
前記ランダムシミュレーションの履歴情報に基づいて、前回の前記ランダムシミュレーションに用いられたパラメータに近似するパラメータを、前記パラメータファイルに示すパラメータとして決定することを特徴とする付記１または２に記載の論理回路の検証装置。
【０１３３】
（付記４）前記パラメータ決定手段は、
前記ランダムシミュレーションの履歴情報に基づいて、前回の前記ランダムシミュレーションに用いられたパラメータに近似しないパラメータを、前記パラメータファイルに示すパラメータとして決定することを特徴とする付記１または２に記載の論理回路の検証装置。
【０１３４】
（付記５）前記パラメータ決定手段は、
前記ランダムシミュレーションの履歴情報に基づいて、過去の前記ランダムシミュレーションに用いられたパラメータ以外のパラメータを、前記パラメータファイルに示すパラメータとして決定することを特徴とする付記１または２に記載の論理回路の検証装置。
【０１３５】
（付記６）前記パラメータ決定手段は、
前記ランダムシミュレーションの履歴情報に基づいて、前記パラメータファイルに示すパラメータをランダムに決定することを特徴とする付記１または２に記載の論理回路の検証装置。
【０１３６】
（付記７）パラメータファイルに示されているパラメータを用いて、ランダムパターンを生成するランダムパターン生成工程と、
前記ランダムパターン生成工程によって生成されたランダムパターンを検証対象の論理回路に入力することにより、前記論理回路のランダムシミュレーションをおこなうランダムシミュレーション工程と、
前記ランダムシミュレーションの履歴情報に基づいて、前記パラメータファイルに示すパラメータを決定するパラメータ決定工程と、
を含んだことを特徴とする論理回路の検証方法。
【０１３７】
（付記８）付記７に記載の論理回路の検証方法をコンピュータに実行させることを特徴とする論理回路の検証プログラム。
【産業上の利用可能性】
【０１３８】
以上のように、本発明にかかる検証方法、検証プログラム、該プログラムを記録した記録媒体、および検証装置は、たとえば、製品等に備えられる半導体集積回路の品質を向上させることを目的とした検証作業に有用である。
【図面の簡単な説明】
【０１３９】
【図１】この発明の実施の形態にかかる検証装置のハードウェア構成を示すブロック図である。
【図２】この発明の実施の形態にかかる検証装置１００の機能的構成を示すブロック図である。
【図３】この発明の実施の形態にかかる検証装置１００による検証処理の概要を示すフローチャートである。
【図４】前処理部２４０による前処理の手順の一例を示すフローチャートである。
【図５】前処理部２４０によって生成されたパラメータファイルの一例を示す説明図である。
【図６】前処理部２４０によって生成されたパラメータ制約ファイルの一例を示す説明図である。
【図７】前処理部２４０によって生成された指示ファイルの一例を示す説明図である。
【図８】前処理部２４０によって生成されたチェック項目関連ファイルの一例を示す説明図である。
【図９】ランダムシミュレーション部２００によるランダムシミュレーション処理の手順の一例を示すフローチャートである。
【図１０】ランダムシミュレーション部２００が出力したログの一例を示す説明図である。
【図１１】履歴情報更新部２１０による履歴情報更新処理の手順の一例を示すフローチャートである。
【図１２】履歴情報更新部２１０によるパラメータ頻度情報の更新処理の一例を示す説明図である。
【図１３】履歴情報更新部２１０によるチェック項目頻度情報の更新処理の一例を示す説明図である。
【図１４】履歴情報更新部２１０によるパラメータ組み合わせ頻度情報の更新処理の一例を示す説明図である。
【図１５】履歴情報更新部２１０による更新後の履歴情報の一例を示す説明図である。
【図１６】履歴情報更新部２１０が出力した残項目ファイルの一例を示す説明図である。
【図１７】パラメータ決定部２２０によるパラメータ決定処理の手順の一例を示すフローチャートである。
【図１８】パラメータ決定方法「１．１」の手順の一例を示すフローチャートである。
【図１９】パラメータ決定方法「１．２」の手順の一例を示すフローチャートである。
【図２０】パラメータ決定方法「２．１」の手順の一例を示すフローチャートである。
【図２１】パラメータ決定方法「２．２」の手順の一例を示すフローチャートである。
【図２２】パラメータ決定方法「３」の手順の一例を示すフローチャートである。
【図２３】パラメータ決定方法「４」の手順の一例を示すフローチャートである。
【図２４】パラメータ決定方法「５」の手順の一例を示すフローチャートである。
【図２５】この発明の実施の形態にかかる検証装置１００の他の機能的構成を示すブロック図である。
【図２６】指示ファイル作成部２５００による指示ファイル作成処理の手順の一例を示すフローチャートである。
【図２７】従来技術による検証処理の概要を示す説明図である。
【符号の説明】
【０１４０】
１００  検証装置
２００  ランダムシミュレーション部
２１０  履歴情報更新部
２２０  パラメータ決定部
２４０  前処理部
２５００  指示ファイル作成部
【図１】
2009223849.tif 000003
【図２】
2009223849.tif 000004
【図３】
2009223849.tif 000005
【図４】
2009223849.tif 000006
【図５】
2009223849.tif 000007
【図６】
2009223849.tif 000008
【図７】
2009223849.tif 000009
【図８】
2009223849.tif 000010
【図９】
2009223849.tif 000011
【図１０】
2009223849.tif 000012
【図１１】
2009223849.tif 000013
【図１２】
2009223849.tif 000014
【図１３】
2009223849.tif 000015
【図１４】
2009223849.tif 000016
【図１５】
2009223849.tif 000017
【図１６】
2009223849.tif 000018
【図１７】
2009223849.tif 000019
【図１８】
2009223849.tif 000020
【図１９】
2009223849.tif 000021
【図２０】
2009223849.tif 000022
【図２１】
2009223849.tif 000023
【図２２】
2009223849.tif 000024
【図２３】
2009223849.tif 000025
【図２４】
2009223849.tif 000026
【図２５】
2009223849.tif 000027
【図２６】
2009223849.tif 000028
【図２７】
2009223849.tif 000029