(57)【要約】【課題】ディジタル回路のランダム検証システムにおいて、ランダム制約の設定や、カバレッジポイントの設定に必要な検討項目が多いため、検討に必要な工数が大きく、かつ検討の誤りに起因する検証品質の低下の余地が大きい。【解決手段】ディジタル回路の入力パラメタを予め定義されたクラスに分類して、前記分類に応じたランダム入力値を生成して、シミュレーションの実行、出力パラメタの確認を行う。また、前記分類に応じたカバレッジポイントを設定して、シミュレーションの実行、カバレッジ情報の集計、カバレッジ結果の確認を行う。【選択図】図３
2008097348.tif 000002
【特許請求の範囲】
【請求項１】
ディジタル回路が予め定められた仕様に合致しているかを検証するための検証システムであって、
前記ディジタル回路に入力される入力パラメタを分類するための、複数の分類が予め定義された分類情報と、
前記入力パラメタに所定の重みを設定するための、前記入力パラメタが分類される前記複数の分類各々に対して予め定義された重み情報と
を有し、
前記複数の分類情報を用いて入力パラメタの分類が選択されることにより、前記重み情報のうち前記選択された入力パラメタの分類に対応する重みが選択され、前記入力パラメタに対して前記選択された入力パラメタの分類に対応する重みが設定されること
を特徴とする機能検証システム。
【請求項２】
ディジタル回路が予め定められた仕様に合致しているかを検証するための検証システムであって、
前記ディジタル回路に入力される入力パラメタを、予め定められた複数のクラスの何れかに分類する分類手段と、
前記分類手段によって前記入力パラメタが分類されたクラスに応じて、前記入力パラメタに所定の重みを設定する重み付け手段と、
前記重み付け手段によって設定された重みに基づいて、前記入力パラメタ毎の制約範囲内のランダム入力値を生成する入力値生成手段と、
前記入力値生成手段によって生成されたランダム入力値を前記ディジタル回路への入力とした場合に、前記入力に対応する出力パラメタが前記仕様と合致しているかを検証する検証手段と
を備えたことを特徴とする機能検証システム。
【請求項３】
請求項２記載の機能検証システムにおいて、
前記ディジタル回路の仕様に基づいた入力パラメタの分類毎に、前記入力パラメタの取るべき値の集合をカバレッジポイントとして定義するカバレッジポイント設定手段と、
前記ディジタル回路の前記入力値生成手段によって設定された前記ランダム入力値の集合が、前記カバレッジポイントをどの程度尽くしているかを表わす統計情報を出力するカバレッジ算出手段と
をさらに備える機能検証システム。
【請求項４】
ディジタル回路が予め定められた仕様に合致しているかを検証するための検証方法であって、
前記ディジタル回路に入力される入力パラメタを、予め定められた複数のクラスの何れかに分類する分類工程と、
前記分類工程において前記入力パラメタが分類されたクラスに応じて、前記入力パラメタに所定の重みを設定する重み付け工程と、
前記重み付け工程において設定された重みに基づいて、前記入力パラメタ毎の制約範囲内のランダム入力値を生成する入力値生成工程と、
前記入力値生成工程において生成されたランダム入力値を前記ディジタル回路への入力とした場合に、前記入力に対応する出力パラメタが前記仕様と合致しているかを検証する検証工程と
を備えたことを特徴とする機能検証方法。
【請求項５】
請求項４記載の機能検証方法において、
前記ディジタル回路の仕様に基づいた入力パラメタの分類毎に、前記入力パラメタの取るべき値の集合をカバレッジポイントとして定義するカバレッジポイント設定工程と、
前記ディジタル回路の前記入力値生成工程において設定された前記ランダム入力値の集合が、前記カバレッジポイントをどの程度尽くしているかを表わす統計情報を出力するカバレッジ算出工程と
をさらに備える機能検証方法。
【請求項６】
請求項２または３記載の機能検証システムにおいて、
前記入力パラメタを分類する前記複数のクラスとして、少なくともリニア空間と、列の大きさと、タイミングの入力パラメタを分類するクラスを予め備えたことを特徴とする機能検証システム。
【請求項７】
請求項２または３記載の機能検証システムにおいて、
前記重み付け手段は、前記入力パラメタのコーナーケース近傍において入力パラメタの発生確率を他の範囲よりも高くするような重みを設定することを特徴とする機能検証システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディジタル回路の機能検証システムに関するものである。
【背景技術】
【０００２】
通常、ディジタル回路の開発においては、設計したディジタル回路が予め定められた仕様を満たすように動作するか否かを確認するための機能検証シミュレーションが行われる。シミュレーションは、被検証回路に対し入力パラメタを与え、その出力を確認することで行われる。検証の網羅性を高めるため、入力パラメタはディジタル回路の検証すべき項目に沿ってランダムに自動生成される。
【０００３】
従来の機能検証システムでは、予め定義されたディジタル回路の仕様を満たすような制約を付けたランダムな値をディジタル回路の入力パラメタとして与え、出力パラメタの値とディジタル回路の仕様との合致を確認する方法が提案されている。その際、コーナーケースと呼ばれるバグの発生しやすい入力パラメタの発生確率を高めることで、被検証回路のバグを効率的に検出できるよう工夫を加えている。
【０００４】
例えば、非特許文献１のように、ランダムなＡＴＭセルを生成して回路に入力する技術がある。
【非特許文献１】Ｊａｎｉｃｋ  Ｂｅｒｇｅｒｏｎ著、“Ｗｒｉｔｉｎｇ  Ｔｅｓｔｂｅｎｃｈｅｓ  Ｓｅｃｏｎｄ  Ｅｄｉｔｉｏｎ”  Ｋｌｕｗｅｒ  Ａｃａｄｅｍｉｃ  Ｐｕｂｌｉｓｈｅｒｓ
【発明の開示】
【発明が解決しようとする課題】
【０００５】
非特許文献１においては、コーナーケース検証的なアプローチによる機能検証が行われている。すなわち、ディジタル回路の入力パラメタがコーナーケースを有する場合に、入力パラメタの生成においてコーナーケースの発生確率を高めるような重みを付与するなどの制約を加え、バグの発生しやすい値を設定してシミュレーションを実行している。この手法では、バグの発生しやすい入力パラメタを集中的に検証することが出来るため、ディジタル回路のバグを効率的に検出することが可能になる。
【０００６】
しかし、非特許文献１の技術には以下のような課題がある。
【０００７】
まず、ディジタル回路の全入力パラメタについてそれぞれ個別にコーナーケースの有無を検討する必要がある。さらに、コーナーケースを有すると判断された全ての入力パラメタ各々に対し、コーナーケース検証的なアプローチでの設定を行った検証仕様、あるいはコーナーケースの発生確率を高めるように重みを付与したランダム検証的な検証仕様を決定して検証を実行する必要がある。一般的に、ディジタル回路の全入力パラメタ数は、設定可能なレジスタのみをとっても１つの回路あたり数百に上る。このため、ディジタル回路の全入力パラメタに対してコーナーケースの有無およびその検証方法を詳細に検討するには大きな工数を要する。また、それらの検討が人手によって行われるため、検証担当者のスキルに起因する検証品質低下の余地が発生する。
【０００８】
以上を鑑みて、本発明は上記の課題を解決する機能検証システムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の第１の機能検証システムにおいては、入力パラメタをその種類毎に分類するための分類情報と、各々の分類毎にコーナーケース発生確率を高めるよう定義された重み情報とを有する。検証担当者が分類情報に基づいて入力パラメタの分類を選択すると、その分類に対応する重みが重み情報から選択され、入力パラメタに設定される。
【００１０】
本発明の第２の機能検証システムにおいては、入力パラメタの種類ごとに予めクラスが定義されている。この定義に基づき、検証対象のディジタル回路の入力パラメタを、複数のクラスのいずれかに分類する。入力パラメタが分類される複数のクラスには、それぞれコーナーケースに対する適切な重みが定義されている。この定義に基づき、入力パラメタには分類されるクラスに所定の重みが設定され、その重みに基づいたランダマイズにより入力パラメタのランダムパターンが生成される。生成されたランダムパターンをディジタル回路に入力し、出力パラメタの対応がディジタル回路の予め定められた仕様を満たすものであるか否かを検証する。
【００１１】
本発明の第３の機能検証システムにおいては、入力パラメタの分類されたクラスに基づいて、入力パラメタとしてディジタル回路に入力されるべき値の集合をカバレッジポイントとして定義する。ディジタル回路に入力された前記ランダムパターンの情報を入力パラメタごとに保持し、カバレッジポイントと照合することによりカバレッジポイントがどの程度尽くされたかを判定し、統計情報として出力する。
【発明の効果】
【００１２】
本発明の第１の機能検証システムでは、入力パラメタが分類される分類情報と、分類毎の重み情報を予め定義することにより、検証担当者がディジタル回路に入力される入力パラメタの分類を選択するだけで、入力パラメタのコーナーケースに対して適切な重みを設定することが可能となる。その結果、個々の入力パラメタのコーナーケースの有無および検証内容の検討に伴う工数を削減することができ、効率的な機能検証が可能になる。また、人手で行うのは入力パラメタの分類を選択する工程のみであるため、検討の誤りに起因する検証品質の低下を避けることができる。
【００１３】
本発明の第２の機能検証システムでは、適切なクラスと、そのクラスに分類された入力パラメタの取る値の重み付けを予め定義することにより、ディジタル回路に入力される入力パラメタを各々いずれかのクラスに分類するだけで、コーナーケースに対して適切な重みが付いた機能検証を実行することが可能となる。その結果、個々の入力パラメタのコーナーケースの有無および検証内容の検討に伴う工数を削減することができ、また、検討の誤りに起因する検証品質の低下を避けることができる。
【００１４】
本発明の第３の機能検証システムでは、適切なクラスと、そのクラスに分類された入力パラメタのカバレッジポイントを予め定義することにより、ディジタル回路に入力される入力パラメタを各々いずれかのクラスに分類するだけで、適切なカバレッジポイントが定義されたシミュレーションを実行することが可能となる。その結果、個々の入力パラメタのカバレッジポイントを適切に設定するための検討に伴う工数を削減することができ、また、検討の誤りに起因する検証品質の低下を少なくすることが可能になる。
【発明を実施するための最良の形態】
【００１５】
図２は、本発明に係る機能シミュレーション装置のハードウェア構成例を示すブロック図である。図２において、２７はキーボードであり、文字キー、数字キー、機能指示キー等を備えていて各種キー入力を行う。２８はマウスであり、マウスカーソルの示す位置データを入力する。これらキーボード２７およびマウス２８等の入力装置によって、入力された機能シミュレーション実行の指示、機能シミュレーション結果を比較検証する際の指示等の入力を行う。２９は処理装置であり、ＣＰＵ、メモリ（ＲＯＭおよびＲＡＭ）等からなるマイクロコンピュータであって、この装置全体の制御をつかさどるとともに、ディジタル回路を機能シミュレーションするための論理演算の処理、機能シミュレーション結果を記憶装置３０にファイル形式で記憶させる処理、記憶装置３０に記憶されている機能シミュレーション結果を内部メモリに読み込む処理、機能シミュレーション結果を比較検証する際の処理、機能シミュレーション結果や比較検証の結果等を表示装置３１に表示させるための処理等を行う。記憶装置３０は、ＨＤＤ（ハードディスク装置）等であって、ディジタル回路や、ディジタル回路の機能シミュレーション結果等を記憶する。表示装置３１は、ＣＲＴ、ＬＣＤ等のディスプレイ装置であって、機能シミュレーション結果や比較検証の結果および各種メッセージ等を表示する。上記のシミュレーション装置を用いて、本発明に係る機能検証システムを実現する。
【００１６】
以下に本発明の実施の形態を説明する。なお、以下で説明する実施の形態はあくまで一例であり、様々な改変を行うことが可能である。各実施の形態の説明は図面と照らし合わせて行うが、各図において同一の構成要素には同一符号を付しており、重複する説明は省略する。
【００１７】
（１）第１の実施形態
本発明に係る機能検証システムについて、第１の実施形態を説明する。
【００１８】
（構成の説明）
本実施の形態における機能検証システムの構成と各々の機能について以下に説明する。
【００１９】
図３は、本実施の形態における機能検証システムを表わしたものであり、分類手段１０１と、重み付け手段１０２と、入力値生成手段１０３と、検証手段１０４とを備える。
【００２０】
分類手段１０１は、ディジタル回路の入力パラメタを予め定められた複数のクラスのいずれかに分類する。入力パラメタは、図１に示すように、その分類に応じたコーナーケースを有する。そのため、入力パラメタの分類に基づいてコーナーケース検証に適した入力条件を設定することが可能である。入力パラメタの分類情報は、例えば図４のようなリレーショナルデータベースによって定義される。図４のデータベースは、入力パラメタがその種類毎に分類される複数の分類名をそれぞれ主キーとし、分類名に対応するクラス名を属性として構築されている。分類名とクラス名は１対１の対応関係にある。このデータベースのクラス名に対応して、入力パラメタの分類ごとに定義された複数のクラスの中から適切なクラスが選択される。複数のクラスはそれぞれ、ＳｙｓｔｅｍＶｅｒｉｌｏｇなどのハードウェア記述言語によって定義されており、クラスライブラリに登録されている。被検証回路の入力パラメタは、クラスのオブジェクトとして宣言される（図５）。
【００２１】
重み付け手段１０２は、分類手段１０１によって入力パラメタがいずれのクラスに分類されたかに応じて、入力パラメタがとる値に適切な重み付けを行う。入力パラメタに対する重み情報は入力パラメタが分類されるクラス毎に設定されており、例えば図６のような、入力パラメタの取り得る値と入力パラメタの発生確率との相関を定義した関数として与えられる。入力パラメタの発生確率は、バグの発生しやすいポイント、すなわちコーナーケースほど高く、そうでない部分は低くなるように定義される。この関数に基づき、コーナーケースの発生確率を高めるような重みが入力パラメタに設定される。
【００２２】
入力値生成手段１０３は、重み付け手段１０２によって設定された重みに基づいて、入力パラメタのランダムパターンを生成する。例えば、ハードウェア検証言語により定義されたクラスにおいて、オブジェクトである入力パラメタに対してランダマイズメソッドが呼び出される。コーナーケースの発生確率を高める重み付けが行われた入力パラメタに対してランダマイズが実行されることにより、コーナーケース検証に適したランダムパターンが生成される。
【００２３】
検証手段１０４は、入力値生成手段１０３によって生成されたランダムパターンを被検証回路であるディジタル回路への入力として与え、ランダムパターンと出力パラメタの対応が予め定められたディジタル回路の仕様と合致しているかを検証する。例えば、図７のような被検証回路ＤＵＴ１とバス機能モデルＢＦＭ２、検証環境設定部ＳＥＴ３、検証部ＣＨＫ４により実現される。
【００２４】
ＳＥＴ３は、検査対象のＤＵＴ１に対する検証のモードを設定する。検証のモードとは、ＤＵＴ１のどの機能に対して、どのような条件で検証が行われるかの情報である。ここでいう条件には、１種類の入力パラメタのランダムパターンを用いるのか、または複数種類の入力パラメタのランダムパターンを組み合わせるのかなどの情報が含まれる。ＳＥＴ３は入力値生成手段１０３からランダムパターンを受け取り、ＢＦＭ２に転送する。また、ＢＦＭ２に転送したランダムパターンおよび検証のモードをＣＨＫ４に通知する。
【００２５】
ＢＦＭ２は被検証回路ＤＵＴ１の上位階層のモジュールであり、ＤＵＴ１に対して適宜トランザクションを発生させ、ＤＵＴ１の動作を制御する。ＳＥＴ３から送られたランダムパターンはＢＦＭ２によってハードウェアで認識できるような抽象度の低いデータに変換され、ＤＵＴ１に送られる。また、ＤＵＴ１から出力された処理結果は、ＢＦＭ２によりソフトウェアで認識できるような抽象度の高いデータに変換され、ＣＨＫ４に送られる。
【００２６】
ＤＵＴ１は検証を行いたい回路をハードウェア的に実装したものである。ＤＵＴ１は入力されたランダムパターンに所定の処理を行った後、処理結果をＢＦＭ２に対して出力する。
【００２７】
ＣＨＫ４は、ＳＥＴ３から送られたランダムパターンに対してＤＵＴ１が出力した結果が、予め定められたＤＵＴ１の仕様を満たすか否かの確認を行う。ＤＵＴ１の仕様に関する情報は予めＣＨＫ４に与えられている。ＣＨＫ４で導出された検証結果は検証手段１０４外に出力される。
【００２８】
（動作の説明）
以上のように構成された機能検証システムにおいて、ＤＭＡ転送長を入力パラメタとして持つ被検証回路の場合を例に動作を説明する。
【００２９】
検証担当者は分類手段１０１により、ＤＭＡ転送長を適切なクラスに分類する。具体的には、図５に示すように、検証担当者がデータベースから入力パラメタ「ＤＭＡ転送長」の分類として相応しい「列の大きさ」を選択する。選択は、クラスの一覧表などを用いて選択しても良いし、プルダウン式のメニューから該当するものを指定するなどの方法で行なっても良い。検証担当者が入力パラメタの分類として「列の大きさ」を選択すると、その属性であるクラス名「Ｔｒａｎｓｆｅｒ  Ｄａｔａ  Ｓｉｚｅ」に対応して、クラスライブラリからクラス「Ｔｒａｎｓｆｅｒ  Ｄａｔａ  Ｓｉｚｅ」が呼び出される。入力パラメタは、クラス「Ｔｒａｎｓｆｅｒ  Ｄａｔａ  Ｓｉｚｅ」のオブジェクトとして定義される。入力パラメタの分類結果であるクラスの情報は重み付け手段１０２に通知される。
【００３０】
次に、検証手段１０４は入力値生成手段１０３に対し、入力パラメタのランダムパターン生成を要求する。これを受けて入力値生成手段１０３は重み付け手段１０２に対し、入力パラメタの重み付けを要求する。
【００３１】
重み付け手段１０２では分類手段１０１による分類結果に基づいて、予めクラス毎に定められた重みを入力パラメタに対して設定する。具体的には、図８のように「列の大きさ」における入力パラメタの取り得る値と入力パラメタの発生確率との相関を定義した関数が、クラス「Ｔｒａｎｓｆｅｒ  Ｄａｔａ  Ｓｉｚｅ」に呼び出される。入力パラメタの発生確率は、コーナーケースの発生しやすいポイントほど高く、そうでない部分は低くなるように定義される。このクラスにおいては、データ転送長の値が小さい場合に最もコーナーケースが発生しやすいため、入力パラメタの下限付近の重みが最も大きく設定されている。この関数に基づき、コーナーケース発生確率を高める重みがクラスのオブジェクトである入力パラメタに設定される。
【００３２】
入力値生成手段１０３では、重み付け手段１０２によってコーナーケース発生確率を高める重みを設定された入力パラメタに対し、ランダマイズを実行する。具体的には、クラス「Ｔｒａｎｓｆｅｒ  Ｄａｔａ  Ｓｉｚｅ」にランダマイズメソッドが呼び出され、クラスのオブジェクトである入力パラメタのランダマイズが行われる。コーナーケース発生確率を高める重みの付いた入力パラメタがランダマイズされることにより、コーナーケース検証に適したランダムパターン、本例では入力パラメタの下限付近を重点的にテストするランダムパターンが生成される。このように生成されたランダムパターンは検証手段１０４に入力される。
【００３３】
検証手段１０４は、入力値生成手段１０３から受け取ったランダムパターンを用いて、被検証回路の入出力が予め定められた仕様に合致するかを検証する。具体的には、図７のような被検証回路ＤＵＴ１、バス機能モデルＢＦＭ２、検証環境設定部ＳＥＴ３、検証部ＣＨＫ４を備えた検証手段を用いて検証を行う。本例においてＤＵＴ１はハードウェアとして実装されている。まず、ＳＥＴ３はＤＵＴ１に入力するためのランダムパターンをＢＦＭ２に転送する。ＳＥＴ３はさらに、ＣＨＫ４に対してＢＦＭ２に転送したランダムパターンおよび検証モードの通知を行う。ＣＨＫ４は、このランダムパターンのデータを、対応する出力パラメタをＢＦＭ２から受け取って検証を実行するまで保持する。ランダムパターンがＳＥＴ３からＢＦＭ２に入力されると、ＢＦＭ２は受け取ったランダムパターンをＤＵＴ１で認識可能な電気信号などの抽象度の低いデータ形式に変換し、ＢＦＭ２とＤＵＴ１を接続するバス上にトランザクションを発生させる。このトランザクションを受けて、ＤＵＴ１では与えられたランダムパターンに対する所定の処理が実行される。ＤＵＴ１には、入力パラメタの種類に対応した複数のレジスタが備えられている。入力されたランダムパターンはＤＭＡ転送長用のレジスタに設定され、所定の処理が施される。処理結果をＢＦＭ２に送るため、ＤＵＴ１はＢＦＭ２とＤＵＴ１を接続するバス上にトランザクションを発生させる。ＢＦＭ２は、ＤＵＴ１からランダムパターンに対する出力パラメタを受け取り、出力パラメタを電気信号からより抽象度の高いデータに変換してＣＨＫ４に転送する。ＣＨＫ４では、ＳＥＴ３から受け取ったランダムパターンと、ＢＦＭ２から受け取った出力パラメタについて、ＤＵＴ１の仕様に基づいて検証を行う。つまり、検証対象であるＤＵＴ１において設定された検証モードで出力されるべき値と、実際にＤＵＴ１が出力したパラメタとを比較することにより、ＤＵＴ１がバグの発生なく正しく動作しているかを確認する。
【００３４】
以上のように、入力パラメタの分類ごとにクラスおよびコーナーケース発生確率を高める重みを予め設定しておくことにより、検証担当者は最初に入力パラメタの分類を選択するだけで、自動的にコーナーケースに適切な重みのついたランダム検証を実行することができる。すなわち、検証担当者が全入力パラメタに対して個別にコーナーケースの有無を検討する必要はなく、コーナーケースを有すると判断された全ての入力パラメタ各々に対する検証方法を詳細に検討する工程も不要になる。また、それらの検討を人手で行う必要がないため、検証担当者のスキルに起因する検証品質低下も解消できる。つまり、工程の減少と、検証の信頼性向上を同時に実現可能である。
【００３５】
（補足）
本実施の形態では、分類手段としてリレーショナルデータベースを用いたが、リレーショナルデータベースの代わりにＸＭＬデータベースや表計算ソフトウェアを用いてもよい。また、入力パラメタの分類として「リニア空間」や「列の大きさ」などを採用したが、より詳細な分類を定義してもよい。例えば、「リニア空間」の一例である「ＤＭＡ転送開始アドレス」や、「列の大きさ」の一例である「ＤＭＡ転送長」、「ＤＭＡブロック長」などをクラスとして定義し、またそれぞれに適切な重み情報を定義することで、より精度の高い検証を実行してもよい。
【００３６】
本実施の形態では、入力パラメタは１種類であったが、複数種類の入力パラメタの組み合わせに対する検証を行ってもよい。
【００３７】
本実施の形態では、被検証回路ＤＵＴはハードウェアとしたが、ハードウェア記述言語による機能記述であってもよい。
【００３８】
（２）第２の実施形態
本発明に係る機能検証システムについて、第２の実施形態を説明する。
【００３９】
（構成の説明）
本実施の形態における機能検証システムの構成と各々の機能について以下に説明する。
図９は、本実施の形態における機能検証システムを表わしたものであり、分類手段２０１と、重み付け手段２０２と、入力値生成手段２０３と、検証手段２０４と、カバレッジポイント設定手段２０５と、カバレッジ算出手段２０６とを備える。分類手段２０１、重み付け手段２０２、入力値生成手段２０３、検証手段２０４については第１の実施形態で説明した分類手段１０１、重み付け手段１０２、入力値生成手段１０３、検証手段１０４と同じであるので、説明を省略する。
【００４０】
カバレッジポイント設定手段２０５は、分類手段２０１から受け取ったクラスの情報に基づいて、予めクラス毎に定められたカバレッジポイントを設定する。カバレッジポイントは、入力パラメタについて全ての重要な入力条件が網羅されているか確認出来るよう設定されている。また、カバレッジポイント設定手段２０５は、検証手段２０４に入力されたランダムパターンの情報を受け取り、ランダムパターンの集合をログとして保持する。さらに、検証手段２０４からのカバレッジ情報出力要求を受けると、その時点までに検証手段２０４に入力されたランダムパターンの集合の情報と、予め設定されたカバレッジポイントの情報とを照らし合わせ、ランダムパターンの集合のカバレッジポイントに対する網羅度をカバレッジ情報として、カバレッジ算出手段２０６に送る。
【００４１】
カバレッジ算出手段２０６は、カバレッジポイント設定手段２０５からのカバレッジ情報を集計し、カバレッジポイント設定手段２０５で設定されたカバレッジポイントが、検証手段２０４のシミュレーションにおいて入力されたランダムパターンの集合により、どの程度満たされたかを表わす統計情報を生成、出力する。
【００４２】
（動作の説明）
以上のように構成された機能検証システムにおいて、ＤＭＡ転送長を入力パラメタとして与えた場合を例に動作を説明する。第１の実施形態と重複する内容については省く。
【００４３】
検証担当者は分類手段２０１により、ＤＭＡ転送長を適切なクラス「列の大きさ」に分類する。検証担当者が入力パラメタの分類として「列の大きさ」を選択すると、入力パラメタは、分類「列の大きさ」に対応するクラス「Ｔｒａｎｓｆｅｒ  Ｄａｔａ  Ｓｉｚｅ」のオブジェクトとして定義される。入力パラメタの分類結果であるクラスの情報は重み付け手段２０２と、カバレッジポイント設定手段２０５とに通知される。
【００４４】
カバレッジポイント設定手段２０５は、分類手段２０１から受け取ったクラスの情報に基づいて、予めクラス毎に定められたカバレッジポイントを定義する。カバレッジポイントは例えば次のように定義されている。図１０のように、「列の大きさ」の入力パラメタがとる値の範囲に任意のポイントを設け、複数の区分Ａ〜Ｃに分割する。各々の区分に入力されるべきランダムパターンの集合をカバレッジポイントとする。これにより、各々の区分にランダムパターンがどの程度入力されたかを記憶させることにより、カバレッジポイントがどの程度網羅されたかを確認することができる。本実施の形態では、各々の区分において、該当する範囲のランダムパターンが少なくとも１つ入力されると、その区分におけるカバレッジポイントを網羅したと判定する。また、入力パラメタ「列の大きさ」の取り得る値において、下限付近はバグ発生確率が最も高いコーナーケースであり、特に重要な入力条件である。そのため、下限付近ほど範囲を狭く設定することにより、重要な入力条件を網羅したかを確実にテストできる。本実施の形態では、下限付近を区分Ａとして定義する。
【００４５】
一方、入力値生成手段２０３で生成されたランダムパターンは検証手段２０４に入力されると共に、カバレッジポイント設定手段２０５にも送られる。これによりカバレッジポイント設定手段２０５は、検証手段２０４に入力されたランダムパターンの情報を得る。具体的には、図１１のようにランダムパターンａが入力されると、カバレッジポイント設定手段２０５はこれを記憶する。さらにランダムパターンｂ、ｃが入力されると、先に入力されたランダムパターンａを保持しつつ、新たに入力されたランダムパターンｂ、ｃを記憶する。ある時点で検証手段２０４からのカバレッジ情報出力要求が発生すると、カバレッジポイント設定手段２０５はそれまで記憶した複数のランダムパターンのログとカバレッジポイントを照らし合わせ、ランダムパターンそれぞれが、予め設定されたカバレッジポイントの区分のいずれに該当するかを判定する。本実施の形態ではランダムパターンａが区分Ｃに、ランダムパターンｂが区分Ａに、ランダムパターンｃが区分Ｃに該当すると判定されるため、入力されたランダムパターンの集合は、予め定められたカバレッジポイントのうち区分Ａ、Ｃを網羅し、Ｂを網羅しないものである。この入力されたランダムパターンによるカバレッジポイントの網羅の状況を、カバレッジ情報としてカバレッジ算出手段２０６に送る。
【００４６】
カバレッジ算出手段２０６では、カバレッジポイント設定手段２０５からのカバレッジ情報を基に、検証手段２０４に入力されたランダムパターンが予め定められたカバレッジポイントをどの程度満たしているかを計算し、網羅度を数値で出力する。本実施の形態では、図１１に示すように３区分のうち２区分についてカバレッジポイントが満たされているため、与えられた入力パターンに対する網羅度は６６．７％と算出され、カバレッジ結果としてカバレッジポイント算出手段２０６より出力される。
【００４７】
以上のように、入力パラメタの分類ごとにクラスおよびカバレッジポイントを予め設定しておくことにより、検証担当者は最初に入力パラメタの分類を選択するだけで、自動的にカバレッジ観測を実行することができる。すなわち、検証担当者が全入力パラメタに対して個別にカバレッジポイントを検討する必要がなくなり、また、それらの検討を人手で行う必要がないため、検証担当者のスキルに起因する検証品質低下も解消できる。つまり、工程の減少と、検証の信頼性向上を同時に実現可能である。
【００４８】
（補足）
本実施の形態においては、入力パラメタの取り得る値の範囲を３つの区分に分割したが、分割の範囲や区分数は入力パラメタの種類や検証モードに応じて適宜設定できる。その際、コーナーケースの発生確率が高いポイント近傍を、他よりも狭い範囲にして分割すると、より効率的かつ確実にカバレッジポイントが網羅されたかを検証できる。
【００４９】
また、本実施の形態では各区分に該当するランダムパターンが少なくとも１つ検証回路に入力されたかどうかを、カバレッジポイントを満たしたかどうかの条件として判定を行っているが、各区分に入力されるべきランダムパターンの数を複数にしたり、あるいは、各区分に入力されるべきランダムパターンの比率を設定したりするなど、より詳細な判定条件を設けてもよい。
【００５０】
（３）第２の実施形態の発展
本発明に係る機能検証システムについて、第２の実施形態において複数の入力パラメタの組み合わせを用いる場合を説明する。
【００５１】
一般的に、回路は複数の入力パラメタの組み合わせを条件として動作する場合がある。本実施の形態においては、複数の入力パラメタを組み合わせた場合において、検証すべき項目をカバレッジポイントとして設定し、実際のランダムパターンがどの程度カバレッジポイントを網羅したかを観測する機能検証システムを示す。
【００５２】
（構成の説明）
本実施の形態における機能検証システムの構成と各々の機能は、第２の実施形態と同様であるため説明を省略する。
【００５３】
（動作の説明）
図９のように構成された機能検証システムにおいて、ＤＭＡ転送開始アドレスと、ＤＭＡ転送長を入力パラメタとして与えた場合を例に動作を説明する。第１および第２の実施形態と重複する内容については省く。
【００５４】
検証担当者は分類手段２０１により、ＤＭＡ転送開始アドレスと、ＤＭＡ転送長の入力パラメタを適切なクラスに分類する。具体的には、図４に示すように、データベースから入力パラメタである「ＤＭＡ転送開始アドレス」の分類である「リニア空間」と、「ＤＭＡ転送長」の分類である「列の大きさ」をそれぞれ選択し、それに対応してクラスライブラリからクラス「Ｌｉｎｅａｒ」と「Ｔｒａｎｓｆｅｒ  Ｄａｔａ  Ｓｉｚｅ」が呼び出される。入力パラメタの分類結果であるクラスの情報は重み付け手段２０２およびカバレッジポイント設定手段２０５に通知される。
【００５５】
次に、検証手段２０４は入力値生成手段２０３に対し、入力パラメタのランダムパターン生成を要求する。これを受けて入力値生成手段２０３は重み付け手段２０２に対し、入力パラメタの重み付けを要求する。
【００５６】
重み付け手段２０２では分類手段２０１による分類結果に基づいて、予めクラス毎に定められた重みを設定する。具体的には、図１０のような「列の大きさ」における入力パラメタの取り得る値とバグの発生確率との相関を定義した関数が、クラス「Ｔｒａｎｓｆｅｒ  Ｄａｔａ  Ｓｉｚｅ」に呼び出される。このクラスにおいては、データ転送長の値が小さい場合に最もバグが発生しやすいため、入力パラメタの下限付近の重みが最も大きく設定されている。この関数に基づき、コーナーケースの発生確率を高める重みがクラスのオブジェクトである入力パラメタに設定される。また、図１２のような「リニア空間」における入力パラメタの取り得る値と入力パラメタの発生確率との相関を定義した関数が、クラス「Ｌｉｎｅａｒ」に呼び出される。入力パラメタの発生確率は、コーナーケースの発生しやすいポイントほど高く、そうでない部分は低くなるように定義される。このクラスにおいては、ＤＭＡ転送開始アドレスの上限、下限付近にがコーナーケースであるため、入力パラメタの上限および下限付近の重みが最も大きく設定されている。この関数に基づき、コーナーケースの発生確率を高める重みがクラスのオブジェクトである入力パラメタに設定される。
【００５７】
一方、カバレッジポイント設定手段２０５は、分類手段２０１から受け取った各々のクラスの情報に基づいて、入力パラメタに対する適切なカバレッジポイントを設定する。カバレッジポイントは、各入力パラメタについて、全ての重要な入力条件が網羅されているかを確認出来るよう設定されている。カバレッジポイントは例えば次のように定義される。図１０および図１２のように、クラス「列の大きさ」および「リニア空間」に分類される入力パラメタがとる値の範囲に任意のポイントを設け、複数の区分に分割する。２つの入力パラメタのランダムパターンについて、入力パラメタの検証すべき組み合わせを網羅するようなカバレッジポイントを設定し、実際のランダムパターンの組み合わせがどの程度カバレッジポイントを網羅したかを確認する。本実施の形態においては、図１３のような２つの入力パラメタα（列の大きさ）、β（リニア空間）各々の区分Ａ、Ｂ、Ｃの総当りの組み合わせをカバレッジポイントとして定義する。このカバレッジポイントでは、入力パラメタにおけるコーナーケース発生確率の高い値と、他方の入力パラメタ全範囲との組み合わせが網羅されたかを検証できる。
【００５８】
一方、入力値生成手段２０３で生成されたランダムパターンは検証手段２０４に入力されると共に、カバレッジポイント設定手段２０５にも送られる。これによりカバレッジポイント設定手段２０５は、検証手段２０４に入力されたランダムパターンの情報を得る。本実施の形態では、２つの入力パラメタのランダムパターンの組み合わせが検証手段２０４に入力され、そのログが保持される。ある時点で検証手段２０４からのカバレッジ情報出力要求が発生すると、カバレッジポイント設定手段２０５はそれまで記憶したランダムパターンの組み合わせのログとカバレッジポイントを照らし合わせ、予め設定されたカバレッジポイントがどの程度網羅されているかを判定する。本実施の形態では、図１３のように、入力されたランダムパターンの集合が、予め定められたカバレッジポイントのうち入力パラメタα−Ａとβ−Ｂ、α−Ｃとβ−Ｃの組み合わせを満たさないものであることが確認される。この結果をカバレッジ情報として、カバレッジ算出手段２０６に送る。
【００５９】
カバレッジ算出手段２０６では、カバレッジポイント設定手段２０５からのカバレッジ情報を基に、検証手段２０４に入力されたランダムパターンの組み合わせが予め定められたカバレッジポイントをどの程度満たしているかを計算し、出力する。
【００６０】
以上のように、入力パラメタの分類ごとにクラスを予め設定しておき、さらに、複数の入力パラメタの組み合わせが入力される場合について、検証すべき組み合わせをカバレッジポイントとして定義することにより、検証担当者は最初に入力パラメタの分類を選択するだけで、複数の入力パラメタが入力される場合にも自動的にカバレッジ観測を実行することができる。すなわち、検証担当者が複数の入力パラメタの組み合わせに対して個別にカバレッジポイントを検討する必要がなくなる。また、それらの検討を人手で行う必要がないため、検証担当者のスキルに起因する検証品質低下も解消できる。つまり、工程の減少と、検証の信頼性向上を同時に実現可能である。
【００６１】
なお、本実施の形態においては２種類の入力パラメタの組み合わせについて説明したが、組み合わせて入力されるパラメタの数はシミュレーションのモードによって決まる。
【００６２】
また、検証すべき入力パラメタの組み合わせについては、必ずしも本実施の形態のように各区分の総当りでなくてもよい。
【００６３】
また、複数のモードにおけるシミュレーション実行のカバレッジ結果をマージすることによって、包括的な検証プロセスの進行度を把握することもできる。
【００６４】
なお、本発明において上記の実施形態で示した動作は一例であって、その他の処理を実行し得ることは言うまでもない。
【産業上の利用可能性】
【００６５】
本発明は、ディジタル回路が予め定められた仕様を満たすように動作するか否かを確認するための機能検証シミュレーションに有用である。
【図面の簡単な説明】
【００６６】
【図１】入力パラメタとコーナーケースとの関係を示す図
【図２】機能シミュレーションシステムのハードウェア構成例を示すブロック図
【図３】第１の実施形態における機能検証システムの構成図
【図４】入力パラメタの分類と対応するクラスを示す図
【図５】入力パラメタに対応するクラスの選択手段を示す図
【図６】入力パラメタの取り得る値と発生確率との相関を示す図（１）
【図７】検証手段の構成を示す図
【図８】入力パラメタの取り得る値と発生確率との相関を示す図（２）
【図９】第２の実施形態における機能検証システムの構成図
【図１０】入力パラメタの取り得る値と発生確率との相関を示す図（３）
【図１１】カバレッジ情報を示す図（１）
【図１２】入力パラメタの取り得る値と発生確率との相関を示す図（４）
【図１３】カバレッジ情報を示す図（２）
【符号の説明】
【００６７】
２７  キーボード
２８  マウス
２９  処理装置
３０  記憶装置
３１  モニタ
１０１、２０１  分類手段
１０２、２０２  重み付け手段
１０３、２０３  入力値生成手段
１０４、２０４  検証手段
２０５  カバレッジポイント設定手段
２０６  カバレッジ算出手段
【図１】
2008097348.tif 000003
【図２】
2008097348.tif 000004
【図３】
2008097348.tif 000005
【図４】
2008097348.tif 000006
【図５】
2008097348.tif 000007
【図６】
2008097348.tif 000008
【図７】
2008097348.tif 000009
【図８】
2008097348.tif 000010
【図９】
2008097348.tif 000011
【図１０】
2008097348.tif 000012
【図１１】
2008097348.tif 000013
【図１２】
2008097348.tif 000014
【図１３】
2008097348.tif 000015