(57)【要約】【課題】  多くのバスモデルが接続され、それぞれのバスモデルが並列動作を行う場合に、最適な検証効率を実現することができる機能検証装置、テストベンチ、シミュレータプログラム及び記憶媒体を提供する。【解決手段】  一のバスモデル１０４は、実際にモデル５０に対して動作した場合、動作したことを示す動作状態情報を他のバスモデル１０５に対して送って認識させ、当該動作状態情報を受け取った他のバスモデル１０５は、受け取った動作状態情報を基に動作機能を選択してモデル５０に対して動作する。これにより、多くのバスモデルが接続され、それぞれのバスモデルが並列動作を行う場合であっても、バスモデル間の動作制約を意識せずに検証することができるので、一定時間のWAIT動作そのものが必要なくなり、また並列動作による状態変動を気にせず、最適な検証効率を実現することができる。【選択図】    図２
2006018429.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェア記述言語により設計されたモデルについての機能検証を、テストベンチを用いたシミュレーション結果に基づいて行う機能検証装置において、
前記テストベンチは、
前記モデルに備えられた複数のＩ／Ｆ系バスに応答もしくはアクセスするための複数のバスモデルと、
前記モデルへのレジスタ設定や前記各バスモデルへの動作機能設定を行い、前記モデルに種々のテスト動作を実行させるための指示を出すテストシナリオと、
前記モデルにバス接続される仮想的なＣＰＵであるＣＰＵバスモデルと、
を備えており、
一の前記バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を他の前記バスモデルに対して送って認識させ、
当該動作状態情報を受け取った他の前記バスモデルは、受け取った動作状態情報を基に動作機能を選択して前記モデルに対して動作する、
ことを特徴とする機能検証装置。
【請求項２】
前記バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を前記テストシナリオに対して送って認識させ、
動作状態情報を受け取った前記テストシナリオは、当該テストシナリオが有しているタイミング制約情報を、当該動作状態情報を送ってきた前記バスモデルに送信し、
タイミング制約情報を受け取った前記バスモデルは、当該タイミング制約情報を動作開始条件に追加して動作選択する、
ことを特徴とする請求項１記載の機能検証装置。
【請求項３】
前記各バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を前記テストシナリオに対して送って認識させ、
複数の動作状態情報を受け取った前記テストシナリオは、動作状態情報の組み合わせに応じて選択した当該テストシナリオが有しているタイミング制約情報を、動作状態情報をそれぞれ送ってきた前記各バスモデルに送信し、
タイミング制約情報を受け取った前記各バスモデルは、当該タイミング制約情報を動作開始条件に追加して動作選択する、
ことを特徴とする請求項１記載の機能検証装置。
【請求項４】
前記各バスモデルは、受け取った動作状態情報の蓄積を行い、蓄積した動作状態情報を出力する、
ことを特徴とする請求項１記載の機能検証装置。
【請求項５】
前記各バスモデルは、受け取った動作状態情報及びタイミング制約情報の蓄積を行い、蓄積した動作状態情報及びタイミング制約情報を出力する、
ことを特徴とする請求項２または３記載の機能検証装置。
【請求項６】
前記テストシナリオは、動作した機能組合せ情報の蓄積を行い、蓄積した機能組合せ情報を前記各バスモデルが蓄積した動作状態情報及びタイミング制約情報とともに出力する、
ことを特徴とする請求項５記載の機能検証装置。
【請求項７】
ハードウェア記述言語により設計されたモデルに対する各種のシミュレーションを行うテストベンチにおいて、
前記モデルに備えられた複数のＩ／Ｆ系バスに応答もしくはアクセスするための複数のバスモデルと、
前記モデルへのレジスタ設定や前記各バスモデルへの動作機能設定を行い、前記モデルに種々のテスト動作を実行させるための指示を出すテストシナリオと、
前記モデルにバス接続される仮想的なＣＰＵであるＣＰＵバスモデルと、
を備えており、
一の前記バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を他の前記バスモデルに対して送って認識させ、
当該動作状態情報を受け取った他の前記バスモデルは、受け取った動作状態情報を基に動作機能を選択して前記モデルに対して動作する、
ことを特徴とするテストベンチ。
【請求項８】
前記バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を前記テストシナリオに対して送って認識させ、
動作状態情報を受け取った前記テストシナリオは、当該テストシナリオが有しているタイミング制約情報を、当該動作状態情報を送ってきた前記バスモデルに送信し、
タイミング制約情報を受け取った前記バスモデルは、当該タイミング制約情報を動作開始条件に追加して動作選択する、
ことを特徴とする請求項７記載のテストベンチ。
【請求項９】
前記各バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を前記テストシナリオに対して送って認識させ、
複数の動作状態情報を受け取った前記テストシナリオは、動作状態情報の組み合わせに応じて選択した当該テストシナリオが有しているタイミング制約情報を、動作状態情報をそれぞれ送ってきた前記各バスモデルに送信し、
タイミング制約情報を受け取った前記各バスモデルは、当該タイミング制約情報を動作開始条件に追加して動作選択する、
ことを特徴とする請求項７記載のテストベンチ。
【請求項１０】
前記各バスモデルは、受け取った動作状態情報の蓄積を行い、蓄積した動作状態情報を出力する、
ことを特徴とする請求項７記載のテストベンチ。
【請求項１１】
前記各バスモデルは、受け取った動作状態情報及びタイミング制約情報の蓄積を行い、蓄積した動作状態情報及びタイミング制約情報を出力する、
ことを特徴とする請求項８または９記載のテストベンチ。
【請求項１２】
前記テストシナリオは、動作した機能組合せ情報の蓄積を行い、蓄積した機能組合せ情報を前記各バスモデルが蓄積した動作状態情報及びタイミング制約情報とともに出力する、
ことを特徴とする請求項１１記載のテストベンチ。
【請求項１３】
ハードウェア記述言語により設計されたモデルに対する各種のシミュレーションをコンピュータに実行させるコンピュータに読取り可能なシミュレータプログラムにおいて、
前記モデルに備えられた複数のＩ／Ｆ系バスに応答もしくはアクセスするための複数のバスモデルを生成する機能と、
前記モデルへのレジスタ設定や前記各バスモデルへの動作機能設定を行い、前記モデルに種々のテスト動作を実行させるための指示を出すテストシナリオを生成する機能と、
前記モデルにバス接続される仮想的なＣＰＵであるＣＰＵバスモデルを生成する機能と、
を前記コンピュータに実行させ、            
一の前記バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を他の前記バスモデルに対して送って認識させ、
当該動作状態情報を受け取った他の前記バスモデルは、受け取った動作状態情報を基に動作機能を選択して前記モデルに対して動作する、
ことを特徴とするシミュレータプログラム。
【請求項１４】
前記バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を前記テストシナリオに対して送って認識させ、
動作状態情報を受け取った前記テストシナリオは、当該テストシナリオが有しているタイミング制約情報を、当該動作状態情報を送ってきた前記バスモデルに送信し、
タイミング制約情報を受け取った前記バスモデルは、当該タイミング制約情報を動作開始条件に追加して動作選択する、
ことを特徴とする請求項１３記載のシミュレータプログラム。
【請求項１５】
前記各バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を前記テストシナリオに対して送って認識させ、
複数の動作状態情報を受け取った前記テストシナリオは、動作状態情報の組み合わせに応じて選択した当該テストシナリオが有しているタイミング制約情報を、動作状態情報をそれぞれ送ってきた前記各バスモデルに送信し、
タイミング制約情報を受け取った前記各バスモデルは、当該タイミング制約情報を動作開始条件に追加して動作選択する、
ことを特徴とする請求項１３記載のシミュレータプログラム。
【請求項１６】
前記各バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を前記テストシナリオに対して送って認識させ、
複数の動作状態情報を受け取った前記テストシナリオは、動作状態情報の組み合わせに応じて選択した当該テストシナリオが有しているタイミング制約情報を、動作状態情報をそれぞれ送ってきた前記各バスモデルに送信し、
タイミング制約情報を受け取った前記各バスモデルは、当該タイミング制約情報を動作開始条件に追加して動作選択する、
ことを特徴とする請求項１３記載のシミュレータプログラム。
【請求項１７】
前記各バスモデルは、受け取った動作状態情報及びタイミング制約情報の蓄積を行い、蓄積した動作状態情報及びタイミング制約情報を出力する、
ことを特徴とする請求項１４または１５記載のシミュレータプログラム。
【請求項１８】
前記テストシナリオは、動作した機能組合せ情報の蓄積を行い、蓄積した機能組合せ情報を前記各バスモデルが蓄積した動作状態情報及びタイミング制約情報とともに出力する、
ことを特徴とする請求項１７記載のシミュレータプログラム。
【請求項１９】
請求項１３ないし１８の何れか一記載のコンピュータに読取り可能なシミュレータプログラムを格納したことを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードウェア記述言語により設計されたモデルについての機能検証を、テストベンチを用いたシミュレーション結果に基づいて行う機能検証装置、テストベンチ、シミュレータプログラム及び記憶媒体に関する。
【背景技術】
【０００２】
近年、ＡＳＩＣ（Application Specified IC）の設計手法は、その回路規模の増大に伴い、回路図による設計から抽象度の高いＨＤＬ（ハードウェア記述言語）によるディジタル回路設計へと移ってきている。このＨＤＬにより設計される回路図は、きわめて膨大であり、動作がきわめて複雑になる。そのため、ＨＤＬにより設計された回路は、ＨＤＬで記述された他のモジュールと合わせてシミュレーション等を行うＨＤＬシミュレータを用いることにより、機能検証作業を行うことが必要となっている。
【０００３】
より詳細には、ＨＤＬシミュレータは工程の全ての局面で使用されるものであり、各レベルでのシミュレーション結果に基本的な差がないことを確認するものである。このようなＨＤＬシミュレータは、検証の対象とするＨＤＬモデル（ＡＳＩＣ）に対して、それをテストするためのテストベンチと呼ぶ新たなＨＤＬ記述を追加する。テストベンチは、テスト・スティミュラス（テスト・ベクター）を含み、これをテストの対象とするＨＤＬモデル（ＡＳＩＣ）に与え、シミュレーションを自動実行させるような手順をＨＤＬで記述するものである。すなわち、図６に示すような、テストベンチ・モジュールを最上位とする１つのモデルが完成することになる。これをコンパイル、リンクしてコンピュータ上の実行モジュールを作成し、シミュレータ・コントロール・パネル上で実行をコントロールしながら波形を観察することにより、機能検証を行う。
【０００４】
例えば、特許文献１には、テストベンチを用いてコンピュータシミュレーションすることにより、半導体集積回路装置の機能を検証するテスト用プログラムが提案されている。
【０００５】
また、ＡＳＩＣを検証するテストベンチの技術向上、精度向上、生産性向上などは重要な課題になっており、いくつかの提案がなされている。提案の１つに、ＡＳＩＣにバス接続されるバスモデルと各種設定を行うテストシナリオを別物として取り扱うことで、テストベンチの生産性や再利用性を向上させるとともに、複数のデータパスの存在するＡＳＩＣにおける同時動作の検証を行えるテストベンチを提供するものがある。
【０００６】
【特許文献１】特開２００２−８３０１０公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、複数のデータパスの存在するＡＳＩＣにおける同時動作の検証を行えるテストベンチにおいては、ＡＳＩＣを含むシステムの動作制約でバスモデル１の動作開始条件に、別のバスモデル２の特定動作が条件になるものがある。この場合、バスモデル２の起動を実行した後、一定時間のWAIT動作を行い、バスモデル１の動作起動を実行することになる。
【０００８】
しかし、多くのＩ／Ｆを有しているＡＳＩＣは、多くのバスモデルが接続され、またそれぞれのバスモデルが並列動作を行う場合、バスモデル１の動作開始条件になる別のバスモデルの特定動作の開始時間がその他のバスモデルの並列動作の状態により大きく変動してしまい、必要なWAIT動作の時間が変動する。この場合、WAIT動作の時間をかなり大きく設定すれば対応できるが、各バスモデルの状態によっては設定されたWAIT動作時間よりはるかに早くバスモデル２は特定動作を開始している場合もあり、バスモデル１の動作開始は必要以上に待つことになる。すなわち、上記の手法を採った場合には、検証効率が低下することになり、検証時間が増大し、生産性が低下することになる。
【０００９】
本発明は、多くのバスモデルが接続され、それぞれのバスモデルが並列動作を行う場合に、最適な検証効率を実現することができる機能検証装置、テストベンチ、シミュレータプログラム及び記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【００１０】
請求項１記載の発明の機能検証装置は、ハードウェア記述言語により設計されたモデルについての機能検証を、テストベンチを用いたシミュレーション結果に基づいて行う機能検証装置において、前記テストベンチは、前記モデルに備えられた複数のＩ／Ｆ系バスに応答もしくはアクセスするための複数のバスモデルと、前記モデルへのレジスタ設定や前記各バスモデルへの動作機能設定を行い、前記モデルに種々のテスト動作を実行させるための指示を出すテストシナリオと、前記モデルにバス接続される仮想的なＣＰＵであるＣＰＵバスモデルと、を備えており、一の前記バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を他の前記バスモデルに対して送って認識させ、当該動作状態情報を受け取った他の前記バスモデルは、受け取った動作状態情報を基に動作機能を選択して前記モデルに対して動作する。
【００１１】
したがって、多くのバスモデルが接続され、それぞれのバスモデルが並列動作を行う場合であっても、バスモデル間の動作制約を意識せずに検証することが可能になるので、一定時間のWAIT動作そのものが必要なくなり、また並列動作による状態変動を気にせず、最適な検証効率を実現することが可能になる。
【００１２】
請求項２記載の発明は、請求項１記載の機能検証装置において、前記バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を前記テストシナリオに対して送って認識させ、動作状態情報を受け取った前記テストシナリオは、当該テストシナリオが有しているタイミング制約情報を、当該動作状態情報を送ってきた前記バスモデルに送信し、タイミング制約情報を受け取った前記バスモデルは、当該タイミング制約情報を動作開始条件に追加して動作選択する。
【００１３】
したがって、最適な状態以外を、他の並列動作の状態に依存せず簡単に作りだすことが可能になるので、効率良く検証精度を向上させることが可能になる。
【００１４】
請求項３記載の発明は、請求項１記載の機能検証装置において、前記各バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を前記テストシナリオに対して送って認識させ、複数の動作状態情報を受け取った前記テストシナリオは、動作状態情報の組み合わせに応じて選択した当該テストシナリオが有しているタイミング制約情報を、動作状態情報をそれぞれ送ってきた前記各バスモデルに送信し、タイミング制約情報を受け取った前記各バスモデルは、当該タイミング制約情報を動作開始条件に追加して動作選択する。
【００１５】
したがって、動作組合せを確認しながら検証できるようにすることで、意図した組合せを制御できるようになり、並列動作での検証精度を効率良く向上させることが可能になる。
【００１６】
請求項４記載の発明は、請求項１記載の機能検証装置において、前記各バスモデルは、受け取った動作状態情報の蓄積を行い、蓄積した動作状態情報を出力する。
【００１７】
したがって、テストベンチの機能カバレッジを単独動作、並列動作で行うことが可能になるので、テストベンチの品質を確保、向上することが可能になる。
【００１８】
請求項５記載の発明は、請求項２または３記載の機能検証装置において、前記各バスモデルは、受け取った動作状態情報及びタイミング制約情報の蓄積を行い、蓄積した動作状態情報及びタイミング制約情報を出力する。
【００１９】
したがって、テストベンチの機能カバレッジを単独動作、並列動作で行うことが可能になるので、テストベンチの品質を確保、向上することが可能になる。
【００２０】
請求項６記載の発明は、請求項５記載の機能検証装置において、前記テストシナリオは、動作した機能組合せ情報の蓄積を行い、蓄積した機能組合せ情報を前記各バスモデルが蓄積した動作状態情報及びタイミング制約情報とともに出力する。
【００２１】
したがって、テストベンチの機能カバレッジを単独動作、並列動作で行うことが可能になるので、テストベンチの品質を確保、向上することが可能になる。
【００２２】
請求項７記載の発明のテストベンチは、ハードウェア記述言語により設計されたモデルに対する各種のシミュレーションを行うテストベンチにおいて、前記モデルに備えられた複数のＩ／Ｆ系バスに応答もしくはアクセスするための複数のバスモデルと、前記モデルへのレジスタ設定や前記各バスモデルへの動作機能設定を行い、前記モデルに種々のテスト動作を実行させるための指示を出すテストシナリオと、前記モデルにバス接続される仮想的なＣＰＵであるＣＰＵバスモデルと、を備えており、一の前記バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を他の前記バスモデルに対して送って認識させ、当該動作状態情報を受け取った他の前記バスモデルは、受け取った動作状態情報を基に動作機能を選択して前記モデルに対して動作する。
【００２３】
したがって、多くのバスモデルが接続され、それぞれのバスモデルが並列動作を行う場合であっても、バスモデル間の動作制約を意識せずに検証することが可能になるので、一定時間のWAIT動作そのものが必要なくなり、また並列動作による状態変動を気にせず、最適な検証効率を実現することが可能になる。
【００２４】
請求項８記載の発明は、請求項７記載のテストベンチにおいて、前記バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を前記テストシナリオに対して送って認識させ、動作状態情報を受け取った前記テストシナリオは、当該テストシナリオが有しているタイミング制約情報を、当該動作状態情報を送ってきた前記バスモデルに送信し、タイミング制約情報を受け取った前記バスモデルは、当該タイミング制約情報を動作開始条件に追加して動作選択する。
【００２５】
したがって、最適な状態以外を、他の並列動作の状態に依存せず簡単に作りだすことが可能になるので、効率良く検証精度を向上させることが可能になる。
【００２６】
請求項９記載の発明は、請求項７記載のテストベンチにおいて、前記各バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を前記テストシナリオに対して送って認識させ、複数の動作状態情報を受け取った前記テストシナリオは、動作状態情報の組み合わせに応じて選択した当該テストシナリオが有しているタイミング制約情報を、動作状態情報をそれぞれ送ってきた前記各バスモデルに送信し、タイミング制約情報を受け取った前記各バスモデルは、当該タイミング制約情報を動作開始条件に追加して動作選択する。
【００２７】
したがって、動作組合せを確認しながら検証できるようにすることで、意図した組合せを制御できるようになり、並列動作での検証精度を効率良く向上させることが可能になる。
【００２８】
請求項１０記載の発明は、請求項７記載のテストベンチにおいて、前記各バスモデルは、受け取った動作状態情報の蓄積を行い、蓄積した動作状態情報を出力する。
【００２９】
したがって、テストベンチの機能カバレッジを単独動作、並列動作で行うことが可能になるので、テストベンチの品質を確保、向上することが可能になる。
【００３０】
請求項１１記載の発明は、請求項８または９記載のテストベンチにおいて、前記各バスモデルは、受け取った動作状態情報及びタイミング制約情報の蓄積を行い、蓄積した動作状態情報及びタイミング制約情報を出力する。
【００３１】
したがって、テストベンチの機能カバレッジを単独動作、並列動作で行うことが可能になるので、テストベンチの品質を確保、向上することが可能になる。
【００３２】
請求項１２記載の発明は、請求項１１記載のテストベンチにおいて、前記テストシナリオは、動作した機能組合せ情報の蓄積を行い、蓄積した機能組合せ情報を前記各バスモデルが蓄積した動作状態情報及びタイミング制約情報とともに出力する。
【００３３】
したがって、テストベンチの機能カバレッジを単独動作、並列動作で行うことが可能になるので、テストベンチの品質を確保、向上することが可能になる。
【００３４】
請求項１３記載の発明のシミュレータプログラムは、ハードウェア記述言語により設計されたモデルに対する各種のシミュレーションをコンピュータに実行させるコンピュータに読取り可能なシミュレータプログラムにおいて、前記モデルに備えられた複数のＩ／Ｆ系バスに応答もしくはアクセスするための複数のバスモデルを生成する機能と、前記モデルへのレジスタ設定や前記各バスモデルへの動作機能設定を行い、前記モデルに種々のテスト動作を実行させるための指示を出すテストシナリオを生成する機能と、前記モデルにバス接続される仮想的なＣＰＵであるＣＰＵバスモデルを生成する機能と、を前記コンピュータに実行させ、一の前記バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を他の前記バスモデルに対して送って認識させ、当該動作状態情報を受け取った他の前記バスモデルは、受け取った動作状態情報を基に動作機能を選択して前記モデルに対して動作する。
【００３５】
したがって、多くのバスモデルが接続され、それぞれのバスモデルが並列動作を行う場合であっても、バスモデル間の動作制約を意識せずに検証することが可能になるので、一定時間のWAIT動作そのものが必要なくなり、また並列動作による状態変動を気にせず、最適な検証効率を実現することが可能になる。
【００３６】
請求項１４記載の発明は、請求項１３記載のシミュレータプログラムにおいて、前記バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を前記テストシナリオに対して送って認識させ、動作状態情報を受け取った前記テストシナリオは、当該テストシナリオが有しているタイミング制約情報を、当該動作状態情報を送ってきた前記バスモデルに送信し、タイミング制約情報を受け取った前記バスモデルは、当該タイミング制約情報を動作開始条件に追加して動作選択する。
【００３７】
したがって、最適な状態以外を、他の並列動作の状態に依存せず簡単に作りだすことが可能になるので、効率良く検証精度を向上させることが可能になる。
【００３８】
請求項１５記載の発明は、請求項１３記載のシミュレータプログラムにおいて、前記各バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を前記テストシナリオに対して送って認識させ、複数の動作状態情報を受け取った前記テストシナリオは、動作状態情報の組み合わせに応じて選択した当該テストシナリオが有しているタイミング制約情報を、動作状態情報をそれぞれ送ってきた前記各バスモデルに送信し、タイミング制約情報を受け取った前記各バスモデルは、当該タイミング制約情報を動作開始条件に追加して動作選択する。
【００３９】
したがって、動作組合せを確認しながら検証できるようにすることで、意図した組合せを制御できるようになり、並列動作での検証精度を効率良く向上させることが可能になる。
【００４０】
請求項１６記載の発明は、請求項１３記載のシミュレータプログラムにおいて、前記各バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を前記テストシナリオに対して送って認識させ、複数の動作状態情報を受け取った前記テストシナリオは、動作状態情報の組み合わせに応じて選択した当該テストシナリオが有しているタイミング制約情報を、動作状態情報をそれぞれ送ってきた前記各バスモデルに送信し、タイミング制約情報を受け取った前記各バスモデルは、当該タイミング制約情報を動作開始条件に追加して動作選択する。
【００４１】
したがって、テストベンチの機能カバレッジを単独動作、並列動作で行うことが可能になるので、テストベンチの品質を確保、向上することが可能になる。
【００４２】
請求項１７記載の発明は、請求項１４または１５記載のシミュレータプログラムにおいて、前記各バスモデルは、受け取った動作状態情報及びタイミング制約情報の蓄積を行い、蓄積した動作状態情報及びタイミング制約情報を出力する。
【００４３】
したがって、テストベンチの機能カバレッジを単独動作、並列動作で行うことが可能になるので、テストベンチの品質を確保、向上することが可能になる。
【００４４】
請求項１８記載の発明は、請求項１７記載のシミュレータプログラムにおいて、前記テストシナリオは、動作した機能組合せ情報の蓄積を行い、蓄積した機能組合せ情報を前記各バスモデルが蓄積した動作状態情報及びタイミング制約情報とともに出力する。
【００４５】
したがって、テストベンチの機能カバレッジを単独動作、並列動作で行うことが可能になるので、テストベンチの品質を確保、向上することが可能になる。
【００４６】
請求項１９記載の発明の記憶媒体は、請求項１３ないし１８の何れか一記載のコンピュータに読取り可能なシミュレータプログラムを格納した。
【００４７】
したがって、請求項１３ないし１８の何れか一記載の発明と同様な作用を奏する。
【発明の効果】
【００４８】
本発明によれば、多くのバスモデルが接続され、それぞれのバスモデルが並列動作を行う場合に、最適な検証効率を実現することができる。
【発明を実施するための最良の形態】
【００４９】
［第一の実施の形態］
本発明の第一の実施の形態を図１ないし図３に基づいて説明する。
【００５０】
図１は、本発明が適用される機能検証装置１のハードウェア構成を概略的に示すブロック図である。図１に示すように、機能検証装置１は、例えばパーソナルコンピュータやワークステーションであり、コンピュータの主要部であって各部を集中的に制御するＣＰＵ（Central Processing Unit）２を備えている。このＣＰＵ２には、ＢＩＯＳなどを記憶した読出し専用メモリであるＲＯＭ（Read Only Memory）３と、各種データを書換え可能に記憶するＲＡＭ（Random Access Memory）４とがバス５で接続されている。
【００５１】
さらにバス５には、各種のプログラム等を格納するＨＤＤ（Hard Disk Drive）６と、配布されたプログラムであるコンピュータソフトウェアを読み取るための機構としてＣＤ（Compact Disc）−ＲＯＭ７を読み取るＣＤ−ＲＯＭドライブ８と、機能検証装置１とネットワーク９との通信を司る通信制御装置１０と、機能検証時の各種操作指示を行うキーボードやマウスなどの入力装置１１と、機能検証時のシミュレーション結果等を表示するＣＲＴ（Cathode Ray Tube）、ＬＣＤ（Liquid Crystal Display）などの表示装置１２とが、図示しないＩ／Ｏを介して接続されている。
【００５２】
ＲＡＭ４は、各種データを書換え可能に記憶する性質を有していることから、ＣＰＵ２の作業エリアとして機能してバッファ等の役割を果たす。
【００５３】
図１に示すＣＤ−ＲＯＭ７は、この発明の記憶媒体を実施するものであり、ＯＳ（Operating System）や各種のプログラムが記憶されている。ＣＰＵ２は、ＣＤ−ＲＯＭ７に記憶されているプログラムをＣＤ−ＲＯＭドライブ８で読み取り、ＨＤＤ６にインストールする。
【００５４】
なお、記憶媒体としては、ＣＤ−ＲＯＭ７のみならず、ＤＶＤなどの各種の光ディスク、各種光磁気ディスク、フレキシブル・ディスクなどの各種磁気ディスク等、半導体メモリ等の各種方式のメディアを用いることができる。また、通信制御装置１０を介してインターネットなどのネットワーク９からプログラムをダウンロードし、ＨＤＤ６にインストールするようにしてもよい。この場合に、送信側のサーバでプログラムを記憶している記憶装置も、この発明の記憶媒体である。なお、プログラムは、所定のＯＳ（Operating System）上で動作するものであってもよいし、その場合に後述の各種処理の一部の実行をＯＳに肩代わりさせるものであってもよいし、所定のアプリケーションソフトやＯＳなどを構成する一群のプログラムファイルの一部として含まれているものであってもよい。
【００５５】
このシステム全体の動作を制御するＣＰＵ２は、このシステムの主記憶として使用されるＨＤＤ６上にロードされたプログラムに基づいて各種処理を実行する。
【００５６】
次に、機能検証装置１のＨＤＤ６にインストールされている各種のプログラムがＣＰＵ２に実行させる機能のうち、本実施の形態の機能検証装置１が備える特長的な機能について説明する。ここでは、ＨＤＬシミュレータプログラムがＣＰＵ２に実行させるＨＤＬシミュレータ機能について説明する。ＨＤＬシミュレータ機能は、概略的には、ＨＤＬ（ハードウェア記述言語）により設計されたモデルに対してシミュレーションを行うものである。
【００５７】
図２は、ＨＤＬシミュレータ１００のテストベンチ１０１と検証対象ＡＳＩＣ５０との関連構成を概略的に示す機能ブロック図である。ＨＤＬシミュレータ１００は、ＨＤＬにより設計されたモデルである検証対象ＡＳＩＣ５０に対するＨＤＬシミュレータ機能を発揮するものである。図２に示すように、ＨＤＬシミュレータ１００のテストベンチ１０１は、第１テストシナリオ１０２と、第２テストシナリオ１０３と、第１バスモデル１０４と、第２バスモデル１０５と、ＣＰＵバスモデル１０６とで構成される。このようなテストベンチ１０１は、検証対象ＡＳＩＣ５０を検証するために、Verilog、VHDL、C/C++、Ｅ言語、Vera等の言語を用いてコーディングされたものである。
【００５８】
第１バスモデル１０４及び第２バスモデル１０５は、検証対象ＡＳＩＣ５０の対応するＩ／Ｆ系バス（図示せず）に応答もしくはアクセスするためのものである。また、詳細は後述するが、第１バスモデル１０４と第２バスモデル１０５とは、それぞれのバスモデルの動作状態情報を相互に伝達可能に構成されている。
【００５９】
ＣＰＵバスモデル１０６は、検証対象ＡＳＩＣ５０に接続されるＣＰＵ（図示せず）をソフトウェアでモデル化したもの（ソフトウェアで書かれた仮想的なＣＰＵ）である。
【００６０】
第１テストシナリオ１０２は第１バスモデル１０４に対応したテストシナリオであり、第２テストシナリオ１０３は第２バスモデル１０５に対応したテストシナリオである。第１テストシナリオ１０２及び第２テストシナリオ１０３は、検証対象ＡＳＩＣ５０に種々の動作をさせるためのプログラムであり、ＣＰＵバスモデル１０６を経由して検証対象ＡＳＩＣ５０へのレジスタ設定や第１バスモデル１０４又は第２バスモデル１０５への動作機能設定等を行う。検証対象ＡＳＩＣ５０にはレジスタ（ＡＳＩＣの種々動作を司る機能）が内蔵されており、このレジスタに対する第１テストシナリオ１０２及び第２テストシナリオ１０３からのアクセス又は指示によって、検証対象ＡＳＩＣ５０が所望の動作を実行するのである。
【００６１】
ここで、バスモデルの内部概念について詳述する。図３は、バスモデルの内部概念を示す機能ブロック図である。図３に示すように、第１バスモデル１０４及び第２バスモデル１０５は、機能アービタ１１０と、動作機能選択部１１１と、検証対象ＡＳＩＣ５０に対する動作機能１〜動作機能Ｎを格納する動作機能群部１１２とで構成されている。以下、各部について説明する。
【００６２】
所定のバスモデル（第１バスモデル１０４）の機能アービタ１１０は、動作機能群部１１２内の動作機能１〜動作機能Ｎのどれを優先するかを決定し、動作機能選択部１１１に選択情報を送る。その際、他のバスモデル（第２バスモデル１０５）の動作状態に起動制約が存在するものは、動作状態情報を選択条件に追加する。
【００６３】
動作機能選択部１１１は、機能アービタ１１０から送られた選択情報に従い、動作機能群部１１２内の動作機能１〜動作機能Ｎのどれかを選択する。
【００６４】
選択された動作機能群部１１２の動作機能１〜動作機能Ｎは、実際に検証対象ＡＳＩＣ５０に対して動作した場合、他のバスモデル（第２バスモデル１０５）の機能アービタ１１０に対して動作したことを示す動作状態情報を送る。
【００６５】
他のバスモデル（第２バスモデル１０５）の機能アービタ１１０は、バスモデル（第１バスモデル１０４）の機能アービタ１１０から動作機能１〜動作機能Ｎの何れかが動作したことを示す動作状態情報を受け取ると、受け取った動作状態情報を基にアービトレーションを行い、動作機能選択部１１１に選択情報を送る。
【００６６】
また、動作機能１〜動作機能Ｎの何れかが動作したことを示す動作状態情報を受け取った機能アービタ１１０は、受け取った動作状態情報の蓄積を行う。このようにして各機能アービタ１１０が蓄積した動作状態情報を出力することにより、検証で実際に動作した情報が確認できるようになり、テストベンチの機能カバレッジを確認することができ、テストベンチの品質を確保、向上させることができる。
【００６７】
以上のような動作を繰り返し、条件により選択する動作機能を順次変更していく。なお、アービトレーション条件は限定されない。
【００６８】
これにより、バスモデルがその動作状態情報を基に動作することにより、異なるバスモデル間で機能同期とることが可能になり、複雑な検証動作でもバスモデル間の動作制約を意識せずに検証することができるので、検証効率を向上させることができる。
【００６９】
すなわち、他のバスモデルの動作開始条件になる特定動作をもつバスモデルの動作状態情報を対象となるバスモデルに認識させ、バスモデルがその動作状態情報を基に動作することにより、一定時間のWAIT動作そのものが必要なくなり、また並列動作による状態変動を気にせず、最適な検証効率を実現できるようになる。
【００７０】
なお、本実施の形態においては、バスモデル及びテストシナリオの数を“２”としたが、これに限るものではない。
【００７１】
［第二の実施の形態］
本発明の第二の実施の形態を図４に基づいて説明する。なお、前述した第一の実施の形態と同一部分は同一符号で示し説明も省略する。本実施の形態は、前述した第一の実施の形態とは、バスモデルの動作状態情報をテストシナリオで認識させ、バスモデルの動作を制御する点で異なるものである。
【００７２】
図４は、テストシナリオとバスモデルとの機能選択関連の内部概念を示す機能ブロック図である。図４に示すように、第１テストシナリオ１０２は、第１バスモデル１０４の機能アービタ１１０から、動作機能１〜動作機能Ｎの動作状態情報を受け取る。動作状態情報を受け取った第１テストシナリオ１０２は、機能同期をとって最適に動作しようとする第１バスモデル１０４に対してタイミング制約情報を付加させる場合、第１タイミング選択部１１３で設定されたタイミング制約情報を機能組み合わせ選択部１１４に伝える。
【００７３】
機能組合せ選択部１１４は、その信号を基に第１バスモデル１０４の機能アービタ１１０に情報を送る。この場合、機能組合せ選択部１１４は、他のバスモデル（第２バスモデル１０５）の動作機能組合せがない状態である。
【００７４】
そして、第１バスモデル１０４の機能アービタ１１０は、第１テストシナリオ１０２からのその信号情報を追加し動作選択する。
【００７５】
また、動作機能１〜動作機能Ｎの何れかが動作したことを示す動作状態情報及びタイミング制約情報を受け取った機能アービタ１１０は、受け取った動作状態情報及びタイミング制約情報の蓄積を行う。このようにして機能アービタ１１０が蓄積した動作状態情報及びタイミング制約情報を出力することにより、検証で実際に動作した情報が確認できるようになり、テストベンチの機能カバレッジを確認することができ、テストベンチの品質を確保、向上させることができる。
【００７６】
同様に、第２テストシナリオ１０３は、第２バスモデル１０５の機能アービタ１１０から、動作機能１〜動作機能Ｎの動作状態情報を受け取る。動作状態情報を受け取った第２テストシナリオ１０３は、機能同期をとって最適に動作しようとする第２バスモデル１０５に対してタイミング制約情報を付加させる場合、第２タイミング選択部１１５で設定されたタイミング制約情報を機能組み合わせ選択部１１６に伝える。
【００７７】
機能組合せ選択部１１６は、その信号を基に第２バスモデル１０５の機能アービタ１１０に情報を送る。この場合、機能組合せ選択部１１４は、他のバスモデル（第１バスモデル１０４）の動作機能組合せがない状態である。
【００７８】
また、動作機能１〜動作機能Ｎの何れかが動作したことを示す動作状態情報及びタイミング制約情報を受け取った機能アービタ１１０は、受け取った動作状態情報及びタイミング制約情報の蓄積を行う。このようにして機能アービタ１１０が蓄積した動作状態情報及びタイミング制約情報を出力することにより、検証で実際に動作した情報が確認できるようになり、テストベンチの機能カバレッジを確認することができ、テストベンチの品質を確保、向上させることができる。
【００７９】
そして、第２バスモデル１０５の機能アービタ１１０は、第２テストシナリオ１０３からのその信号情報を追加し動作選択する。
【００８０】
これにより、バスモデルの動作状態情報をテストシナリオでも認識し、テストシナリオが有している情報もバスモデルの動作開始条件に追加することにより、最適な状態以外を、他の並列動作の状態に依存せず簡単に作りだすことができるようになり、効率良く検証精度を向上させることができる。
【００８１】
なお、本実施の形態においては、バスモデル及びテストシナリオの数を“２”としたが、これに限るものではない。
【００８２】
［第三の実施の形態］
本発明の第三の実施の形態を図５に基づいて説明する。なお、前述した第一の実施の形態または第二の実施の形態と同一部分は同一符号で示し説明も省略する。本実施の形態は、前述した第一の実施の形態または第二の実施の形態とは、複数のバスモデルの動作状態情報をテストシナリオで認識し、動作状態情報の組み合わせを確認しながら、各バスモデルの動作を制御する点で異なるものである。
【００８３】
図５は、テストシナリオとバスモデルとの機能選択関連の内部概念を示す機能ブロック図である。なお、図５においては、第１テストシナリオ１０２及び第２テストシナリオ１０３を包含して示しており、テストシナリオ１０７としている。図５に示すように、テストシナリオ１０７は、第１バスモデル１０４の機能アービタ１１０から、動作機能１〜動作機能Ｎの動作状態情報を受け取る。加えて、テストシナリオ１０７は、第２バスモデル１０５の機能アービタ１１０から、動作機能１〜動作機能Ｎの動作状態情報を受け取る。
【００８４】
各バスモデル１０４，１０５の機能アービタ１１０から動作状態情報をそれぞれ受け取ったテストシナリオ１０７は、第１バスモデル１０４の動作機能と第２バスモデル１０５の動作機能との組合せを、機能組合せ選択部１１４において選択する。そして、この動作状態情報の組み合わせに応じて、第１タイミング選択部１１３及び第２タイミング選択部１１５でタイミング制約情報をそれぞれ選択し、機能組み合わせ選択部１１４に伝える。機能組合せ選択部１１４は、第１タイミング選択部１１３で選択されたタイミング制約情報及び第２タイミング選択部１１５で選択されたタイミング制約情報を追加し、その選択された情報を基に、第１バスモデル１０４の機能アービタ１１０と第２バスモデル１０５の機能アービタ１１０とに情報を送る。また、機能組合せ選択部１１４は、動作した機能組合せ情報の蓄積を行う。このようにして機能組合せ選択部１１４が蓄積した機能組合せ情報を各機能アービタ１１０が蓄積した動作状態情報及びタイミング制約情報とともに出力することにより、検証で実際に動作した情報が確認できるようになり、テストベンチの機能カバレッジを確認することができ、テストベンチの品質を確保、向上させることができる。
【００８５】
そして、第１バスモデル１０４の機能アービタ１１０と第２バスモデル１０５の機能アービタ１１０とは、テストシナリオ１０７からのその信号情報も含め動作機能１〜動作機能Ｎの動作選択情報をそれぞれの動作機能選択部１１１に送るようになる。
【００８６】
これにより、動作組合せを確認しながら検証できるようになり、意図した組合せを制御できることで、並列動作での検証精度を効率よく向上させることができる。
【００８７】
すなわち、Ｉ／Ｆに依存するバスモデルは、対応するＩ／Ｆの動作状態を認識しながら動作、振る舞いを独立して行う。そのため、他のＩ／Ｆがどのようは動作状態にあるかは関係なく動作するが、並列動作を行う場合、関連するＩ／Ｆ間の動作状態の組み合せが発生する。そこで、各バスモデルの複数の動作状態情報をテストシナリオで認識させ、動作組合せを確認しながら検証できるようにすることで、意図した組合せを制御できるようになり、並列動作での検証精度を効率よく向上させることができる。
【００８８】
なお、本実施の形態においては、バスモデル及びテストシナリオの数を“２”としたが、これに限るものではない。
【図面の簡単な説明】
【００８９】
【図１】本発明の第一の実施の形態の機能検証装置のハードウェア構成を概略的に示すブロック図である。
【図２】ＨＤＬシミュレータのテストベンチと検証対象ＡＳＩＣとの関連構成を概略的に示す機能ブロック図である。
【図３】バスモデルの内部概念を示す機能ブロック図である。
【図４】本発明の第二の実施の形態のテストシナリオとバスモデルとの機能選択関連の内部概念を示す機能ブロック図である。
【図５】本発明の第三の実施の形態のテストシナリオとバスモデルとの機能選択関連の内部概念を示す機能ブロック図である。
【図６】ＨＤＬシミュレータの構成を概略的に示す模式図である。
【符号の説明】
【００９０】
１      機能検証装置
７      記憶媒体
５０        ハードウェア記述言語により設計されたモデル
１０１      テストベンチ
１０２，１０３      テストシナリオ
１０４，１０５      バスモデル
１０６      ＣＰＵバスモデル
【図１】
2006018429.tif 000003
【図２】
2006018429.tif 000004
【図３】
2006018429.tif 000005
【図４】
2006018429.tif 000006
【図５】
2006018429.tif 000007
【図６】
2006018429.tif 000008