(57)【特許請求の範囲】
【請求項１】
コンピュータによって実行される設計回路のソフトウェア及びハードウェアによる協調検証方法であって、
前記設計回路の協調検証の開始時に、前記設計回路の性能要件を指定した性能要件データと、前記性能要件データから規定値を算出するための、前記設計回路の設計データから得られる１以上の設計値を指定した規定値算出データとを用いて算出された計数可能な前記規定値を規定値レジスタに設定し、
前記設計回路の性能測定を行う性能測定処理と、前記設計回路の機能測定を行う機能検証処理とを同時に起動して前記協調検証を実施し、
前記協調検証の実施中、前記性能測定処理において、前記性能要件に係る前記設計回路の動作をカウントし、
前記性能測定処理において、前記カウントしたカウント値と前記規定値レジスタに設定された前記規定値とを比較することによって前記性能測定が行われる
ことを特徴とする協調検証方法。
【請求項２】
前記規定値は、前記性能要件で指定される処理時間と、前記設計回路の設計データで示されるクロック周波数とに基づいて算出されたサイクル数であることを特徴とする請求項１記載の協調検証方法。
【請求項３】
前記設計回路にロードされるプログラムに異なるクロック周波数に基づく複数の規定値を含み、前記協調検証の実施中に、規定値を変更することによって、前記性能要件を満たす該クロック周波数を探索することを特徴とする請求項２記載の協調検証方法。
【請求項４】
前記規定値は、前記性能要件で指定されるバス占有率と、前記設計回路の設計データで示されるバス動作周波数及び分解能で指定された単位時間あたりのバスサイクル数であることを特徴とする請求項１記載の協調検証方法。
【請求項５】
設計回路のソフトウェア及びハードウェアによる協調検証を行なう協調検証装置であって、
前記設計回路の性能測定を行う性能測定処理と、前記設計回路の機能測定を行う機能検証処理とを同時に起動して前記協調検証を実施する性能測定部と、結果収集部とを少なくとも有する測定用付加回路を有し、
性能測定部は、
前記設計回路の性能要件を指定した性能要件データと、前記性能要件データから規定値を算出するための、前記設計回路の設計データから得られる１以上の設計値を指定した規定値算出データとを用いて算出された計数可能な規定値が設定される規定値レジスタと、
前記協調検証の実施中、前記性能測定処理において、前記性能要件に係る前記設計回路の動作をカウントするカウンタレジスタと、
前記カウンタレジスタの値と前記規定値レジスタに設定された前記規定値とを比較する性能比較部とを有し、
前記結果収集部は、前記性能比較部による結果を格納する結果格納部を有する
ことを特徴とする協調検証装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設計回路のソフトウェア及びハードウェアによる協調検証を行なう協調検証方法及び協調検証装置に関する。
【背景技術】
【０００２】
ソフトウェアの開発において、そのソフトウェアが動作するハードウェアのモデルを用いて、ソフトウェアとハードウェアとを協調動作させて検証することが行なわれている。マルチメディア向け等のＬＳＩ（Large Scale Integration）で実行されるプログラム（ソフトウェア）では、リアルタイム性が要求されるものが多く、それらのプログラムで繰り返し実行される処理単位は、常に規定時間以内で実行されなければならないという強い制約が要求される場合が多い。
【０００３】
検証を行なう際に、プログラムを実行した際の処理単位に係る処理時間を監視することが考えられる。処理時間を監視するという観点において、所定処理に対して処理時間を監視し、所定時間を経過した際にはタイムアウトを通知する技術や、ソフトウェア・ハードウェア協調検証において、ソフトウェアモデルの処理時間を検証用プラットフォームにおける検証時刻から算出したタイマの値に基づき、予め設定されたタイマ間隔でシミュレーション時刻を監視する技術などが提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０４−２３９３４１号公報
【特許文献２】特開平０４−２７９９４０号公報
【特許文献３】特開２０１０−００９１１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来の技術は、何らかの要因で処理が決められた時間に終了しない、処理がループしてしまい終了しない等の状態を監視する技術であるため、検証対象のプログラムが正常に機能する場合には、そのような機能的には問題の無いプログラムを、制約で規定された性能に基づいて、精度良く評価することができない。
【０００６】
マルチメディア用のプログラムでは、機能の制約を満たしていたとしても、例えば、グラフィック処理、オーディオ処理等で、ある処理単位の実行が規定時間を越えた場合、ノイズの混入などにより品質が問題となる場合がある。
【０００７】
ＬＳＩ設計においてシミュレータ及びエミュレータによるソフトウェア・ハードウェア協調検証を実施する際に、論理的に正しいことを検証するだけでなく、全体の処理時間を測定し、なおかつ、プログラムの個々の部分の処理に関して、規定時間内に実行されていることを同時に検証することができない。そのため、オーディオ処理において、ある瞬間のサンプリングに処理が間に合わないためのノイズが発生するケースなどを検出すること、即ち、機能に問題はないが、性能に問題がある処理の検出は困難であった。
【０００８】
よって、本発明の目的は、ＬＳＩ製造前の段階のソフトウェア・ハードウェア協調検証において、ソフトウェア及びハードウェアの機能のみならず性能上の制約を検証可能とすることである。
【課題を解決するための手段】
【０００９】
開示の技術は、コンピュータによって実行される設計回路のソフトウェア及びハードウェアによる協調検証方法であって、前記設計回路の協調検証の開始時に、前記設計回路の性能要件を指定した性能要件データと、前記性能要件データから規定値を算出するための、前記設計回路の設計データから得られる１以上の設計値を指定した規定値算出データとを用いて算出された計数可能な前記規定値を規定値レジスタに設定し、前記設計回路の性能測定を行う性能測定処理と、前記設計回路の機能測定を行う機能検証処理とを同時に起動して前記協調検証を実施し、前記協調検証の実施中、前記性能測定処理において、前記性能要件に係る前記設計回路の動作をカウントし、前記性能測定処理において、前記カウントしたカウント値と前記規定値レジスタに設定された前記規定値とを比較することによって前記性能測定が行われる。
【００１０】
また、上記課題を解決するための手段として、協調検証装置、コンピュータに上記協調検証方法として行わせるためのプログラム、及び、そのプログラムを記録した記録媒体とすることもできる。
【発明の効果】
【００１１】
開示の技術では、性能要件に基づく計数可能な規定値を用いて性能測定することによって、設計回路が性能要件を満たしているか否かを判定することができる。
【図面の簡単な説明】
【００１２】
【図１】基本構成を示す図である。
【図２】規定値算出方法の第１例を説明するための図である。
【図３】規定値算出方法の第２例を説明するための図である。
【図４】測定用付加回路の機能構成例を示す図である。
【図５】検証システムのハードウェア構成を示す図である。
【図６】性能測定処理のみをシミュレータで実施する第１実施例を説明するための図である。
【図７】性能測定処理のみをエミュレータを用いて実施する第２実施例を説明するための図である。
【図８】機能検証処理のみをシミュレータで実施する第３実施例を説明するための図である。
【図９】機能検証処理のみをエミュレータで実施する第４実施例を説明するための図である。
【図１０】性能測定処理及び機能検証処理を実施する第５実施例を説明するための図である。
【図１１】性能測定処理及び機能検証処理を実施する第６実施例を説明するための図である。
【図１２】周波数を探索する第１の探索例を説明するための図である。
【図１３】図１２の第１の探索例での処理概要を説明するためのフローチャート図である。
【図１４】機能の組み合せを探索する第２の探索例を説明するための図である。
【図１５】図１４の第２の探索例での処理概要を説明するためのフローチャート図である。
【図１６】同一の機能の組み合せにおいて性能要件を満たす条件を探索する第３の探索例を説明するための図である。
【図１７】バス占有率に基づく性能測定について説明するための図である。
【図１８】第５実施例の変形例を説明するための図である。
【図１９】第６実施例の変形例を説明するための図である。
【図２０】図１９の第６実施例の変形例での処理概要を説明するためのフローチャート図である。
【図２１】マルチメディア対応ＬＳＩの回路モデル構成の例を示す図である。
【図２２】図２１に示すマルチメディア対応ＬＳＩの性能限界の探索例を示す図である。
【図２３】データフロー例を示す図である。
【図２４】バスモニタの結果表示のためのフローチャート図である。
【図２５】ボトルネック解析の例を説明するための図である。
【図２６】バス占有率を用いた性能余裕度の検証例を説明するための図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態を図面に基づいて説明する。本実施の形態では、ＬＳＩで実行される個々の部分処理について、シミュレータ及びエミュレータを用いたソフトウェア・ハードウェア協調検証（以下、協調検証と言う）において、論理的に正しいことを検証するのに加えて、予め指定された性能要件内で実行されていることを監視することによって、性能又は／及び機能面の処理違反を検出可能とし、また、解析のためにその検証結果を提供する。
【００１４】
図１は、基本構成を示す図である。図１中、本実施の形態に係る構成部のみを示し、他構成部を省略している。図１に例示される基本構成において、検証システム１０００は、主に、規定値生成部２と、変換部４と、協調検証部５０とを有する。更に、性能要件データ１と、プログラム３と、試験プログラム５と、設計データ６と、テストベンチ７とが記憶部に格納されている。
【００１５】
後述されるように、規定値生成部２と、変換部４と、協調検証部５０とは、ワークステーションなどのコンピュータ装置において、対応するプログラムをＣＰＵが実行することによって実現される処理部である。或いは、規定値生成部２と変換部４とは、一つのワークステーションで実現され、協調検証部５０は、エミュレータで実現されてもよい。
【００１６】
性能要件データ１は、制約によって規定される性能要件を示し、検証対象の部分処理に要求される処理時間、バスの占有率などのデータを含む。
【００１７】
規定値生成部２は、性能要件データ１を読み込んで、性能検証用の規定値を生成する。性能要件データ１によって規定される性能要件に係る値から、協調検証部５０での処理において計数可能な規定値を算出する処理部である。規定値生成部２は、検証対象の部分処理が開始される際に、算出された規定値を協調検証部５０の所定のレジスタに書き込むための規定値設定プログラム３９を検証対象のプログラム３に埋め込む。
【００１８】
変換部４は、プログラム３を、検証対象ＬＳＩ９０ｍを試験するための試験プログラム５に変換する処理部である。プログラム３は、各部分処理の性能又は／及び機能を検証するために、検証対象ＬＳＩ９０ｍで実行させるプログラムである。試験プログラム５は、変換部４によって、検証対象ＬＳＩ９０ｍで実行可能なプログラムコードに変換される。
【００１９】
設計データ６は、ＲＴＬ（Register Transfer Level）などのハードウェア記述言語によってハードウェアの動作を抽象化して表現したデータである。
【００２０】
テストベンチ７は、試験プログラム５によって動作する検証対象ＬＳＩ９０ｍの性能又は／及び機能を検証するためのＲＴＬ（Register Transfer Level）などのハードウェア記述言語で作成した回路モデルを含み、協調検証部５０に実装される。本実施の形態では、テストベンチ７は、測定用に付加されるＲＴＬ（Register Transfer Level）などのハードウェア記述言語で作成された回路モデルである測定用付加回路５１を有する。
【００２１】
協調検証部５０は、シミュレータ又はエミュレータ上で協調検証を行なう処理部であり、検証対象ＬＳＩ９０ｍと、測定用付加回路５１とを有する。
【００２２】
検証対象ＬＳＩ９０ｍは、設計データ６が協調検証部５０にロードされることによって実装される、設計されたＬＳＩの動作を表す回路モデルであり、少なくともＣＰＵ９１ｍとメモリ９３ｍとを有する。ＣＰＵ９１ｍとメモリ９３ｍとも、回路モデルとして実装される。試験プログラム５がメモリ９３ｍにロードされ、ＣＰＵ９１ｍが試験プログラム５を実行することによって、協調検証が開始される。
【００２３】
所定の部分処理の開始の際に、ＣＰＵ９１ｍは、規定値生成部２によって埋め込まれた規定値設定プログラム３９に従って、規定値を測定用付加回路５１の所定レジスタに書き込んで所定の部分処理を実行し、所定の部分処理の実行中に測定用付加回路５１が検証対象ＬＳＩ９０ｍの性能又は／及び機能を測定することによって収集した結果を取得して、試験結果を判定する。
【００２４】
測定用付加回路５１は、テストベンチ７が協調検証部５０にロードされることによって実装される回路モデルであり、性能測定部５２と、機能検証部５４と、結果収集部５４とを有する。
【００２５】
性能測定部５２は、試験プログラム５によって起動され、検証対象ＬＳＩ９０ｍの動作が開始されると、ＣＰＵ９１ｍが設定した規定値に基づいて性能測定を行う処理部である。その結果は結果収集部５４によって収集されて、検証対象ＬＳＩ９０ｍに通知される。
【００２６】
機能検証部５６は、試験プログラム５によって起動され、検証対象ＬＳＩ９０ｍの動作の機能測定を行う処理部である。その結果は結果収集部５４によって収集されて、検証対象ＬＳＩ９０ｍに通知される。
【００２７】
結果収集部５４は、性能測定部５２又は／及び５６からの結果を収集して、ＣＰＵ９１ｍに通知する。ＣＰＵ９１ｍが実行している試験プログラム５によって、結果が判定される。
【００２８】
次に、規定値生成部２によって行われる規定値算出方法の例について、図２、図３で説明する。図２は、規定値算出方法の第１例を説明するための図である。図２において、性能を満たすための処理時間「３３ｍｓ」が指定されている性能要件データ１ａと、規定値を算出するために使用される規定値算出データ８ａとが、規定値生成部２に読み込まれる。
【００２９】
この第１例では、規定値算出データ８ａによって、設計データ６から得られるクロック周波数「１００ＭＨｚ」が指定される。
【００３０】
規定値生成部２は、読み込んだ性能要件データ１ａで指定される性能要件と規定値算出データ８ａで指定されるクロック周波数とに基づいて、規定値となる設計データ６に対するサイクル数を算出する。
【００３１】
規定値生成部２は、クロック周波数「１００ＭＨｚ」から設計データ６の１サイクル「１０ｎｓ」を求め、設計データ６の１サイクル「１０ｎｓ」で処理時間「３３ｍｓ」を除算することにより、処理時間「３３ｍｓ」を満たすための、設計データ６において処理を終えなければならない「３，３００，０００」サイクルを取得する。
【００３２】
規定値生成部２は、算出結果のサイクル数「３，３００，０００」を性能測定時の規定値として所定レジスタに書き込むための規定値設定プログラム３９をプログラム３に埋め込む。
【００３３】
図３は、規定値算出方法の第２例を説明するための図である。図３において、性能を満たすためのバス占有率「５０％」以下が指定されている性能要件データ１ｂと、規定値を算出するために使用される規定値算出データ８ｂとが、規定値生成部２に読み込まれる。
【００３４】
この第２例では、規定値算出データ８ｂによって、設計データ６から得られるバス動作周波数「１００ＭＨｚ」及びバス幅「６４ｂｉｔ」と、１コマンドの転送量としてreadコマンド「６４ｂｉｔ」及びwriteコマンド「６４ｂｉｔ」、分解能「１秒」が指定される。
【００３５】
規定値生成部２は、読み込んだ性能要件データ１ｂで指定される性能要件と規定値算出データ８ｂで指定されるクロック周波数とに基づいて、規定値となる設計データ６に対するサイクル数を算出する。
【００３６】
規定値生成部２は、読み込んだ性能要件データ１ｂで指定される性能要件と規定値算出データ８ｂで指定される設計データ６のバス動作周波数「１００ＭＨｚ」及びバス幅「６４ｂｉｔ」と、１コマンドの転送量とに基づいて、規定値となるコマンド発行可能最大数を算出する。
【００３７】
規定値生成部２は、バス動作周波数「１００ＭＨｚ」にバス幅「６４ｂｉｔ」を乗算することにより最大転送量（理論値）「６４００Ｍｂｐｓ」を求める。read及びwriteとも６４ｂｉｔの１コマンドの転送量を考慮すると、性能要件バス占有率「５０％」以下を満たすには、最大転送量（理論値）「６４００Ｍｂｐｓ」を１コマンド分の「６４ｂｉｔ」で除算し、更に、性能要件バス占有率「５０％」を乗算することによって、性能として要求される、１秒間あたりコマンド発行可能最大回数「５０Ｍ回」を取得する。この場合、分解能は「１秒」であるので、分解能１秒当たりのコマンド発行可能最大回数は「５０Ｍ回」となる。分解能が「２秒」の場合は、分解能２秒当たりのコマンド発行可能最大回数は「１００Ｍ回」となる。
【００３８】
規定値生成部２は、算出結果のコマンド発行可能最大回数「５０Ｍ回」を性能測定時の規定値として所定レジスタに書き込むための規定値設定プログラム３９をプログラム３に埋め込む。
【００３９】
図４は、測定用付加回路の機能構成例を示す図である。図４において、ＲＴＬで記述された回路モデルである測定用付加回路５１は、性能測定部５２と、結果収集部５４と、機能検証部５６とを有する。
【００４０】
性能測定部５２は、検証対象ＬＳＩ９０ｍの性能を測定し、制御部５２１と、性能比較部５２９と、レジスタ部５３０とを有する。
【００４１】
制御部５２１は、性能測定の開始と終了とを監視し、性能測定部５２での処理を制御する。
【００４２】
図２に示す規定値算出方法の第１例の場合、処理の開始からサイクル毎にカウントする。また、カウント値が規定値を超えた場合、制御部５２１は、結果収集部５４に通知し、性能測定の結果を、結果格納部５５０を介してメモリ５５３に記憶する。
【００４３】
また、図３に示す規定値算出方法の第２例の場合、制御部５２１は、検証対象ＬＳＩ９１ｍに対して、バスモニタを組み込んで、処理の開始からコマンド発行毎にカウントを行う。制御部５２１は、指定された分解能を変換したサイクル数分を経過するとカウンタをリセットする。カウント値が規定値を超えた場合、制御部５２１は、結果収集部５４に通知し、性能測定の結果を、結果格納部５５０を介してメモリ５５３に記憶する。
【００４４】
性能比較部５２９は、検証対象ＬＳＩ９０ｍが処理開始時に設定した規定値と処理中にカウントしたカウント値とを比較することによって性能測定を行う。レジスタ部５３０は、性能測定に必要な複数のレジスタを有する。
【００４５】
結果収集部５４は、性能測定部５２から出力される比較結果を収集し、制御部５４１と、結果格納部５５０とを有する。制御部５４１は、性能測定部５２及び機能検証部５６からの結果を受信し、結果格納部５５０のメモリ５５３に格納する。また、制御部５４１は、性能測定部５２及び機能検証部５６からの結果を検証対象ＬＳＩ９０ｍに通知する。即ち、性能測定部５２及び機能検証部５６からの結果は、検証対象ＬＳＩ９０ｍで実行されている試験プログラム５に通知される。一方、性能又は機能に問題があった場合には、制御部５４１は、測定用付加回路５１を停止させる。
【００４６】
機能検証部５６は、検証対象ＬＳＩ９０ｍの機能を測定し、入力部５６０と、制御部５６１と、期待値生成部５６２と、期待値格納メモリ５６３と、期待値比較部５６４と、レジスタ部５７０とを有する。機能の測定には、検証対象ＬＳＩ９０ｍが正しく機能しているか否かに関する測定を含む。
【００４７】
入力部５６０は、内部メモリや外部メモリへの入力データを機能検証部５６に取り込む。制御部５６１は、入力データとの比較開始条件を判断し、期待値比較部５６４によって期待値との比較を行わせる。
【００４８】
期待値生成部５６２は、期待値データ５８を生成し、期待値格納メモリ５６３に格納する。期待値比較部５６４は、入力部５６０から取り込まれた入力データと、期待値データ５８とを比較する。制御部５６１によって、比較結果に応じたデータが結果収集部５４に提供される。結果収集部５４は、機能検証部５６の制御部５６１から期待値データ５８との比較不一致が通知されると、測定用付加回路５１を停止させる。
【００４９】
上述した機能構成に基づく協調検証における処理パターンとして、
処理パターンＡ：性能測定処理のみ
処理パターンＢ：機能検証処理のみ
処理パターンＣ：性能測定処理及び機能検証処理（処理パターンＡ＋Ｂ）
このように、３種類の処理パターンがある。これら処理パターンＡ、Ｂ、及びＣ毎に、エミュレータを使用しないシミュレータのみの実施例、及びエミュレータを使用する場合の実施例の各々について、処理概要を説明する。
【００５０】
上述した機能実装Ａ、Ｂ、及びＣの説明にあたり、先ず、検証システム１０００のハードウェア構成について説明する。図５は、検証システム１０００のハードウェア構成を示す図である。図５において、検証システム１０００は、少なくともＷＳ（ワークステーション）１００を有する。
【００５１】
ＷＳ１００は、シミュレータとして機能するようにコンピュータによって制御される装置であって、ＣＰＵ（Central Processing Unit）１１と、メモリユニット１２と、表示ユニット１３と、出力ユニット１４と、入力ユニット１５と、通信ユニット１６と、記憶装置１７と、ドライブ１８とを有し、バスＢに接続される。
【００５２】
ＣＰＵ１１は、メモリユニット１２に格納されたプログラムに従ってＷＳ１００を制御する。メモリユニット１２には、ＲＡＭ（Random Access Memory）及びＲＯＭ（Read-Only Memory）等が用いられ、ＣＰＵ１１にて実行されるプログラム、ＣＰＵ１１での処理に必要なデータ、ＣＰＵ１１での処理にて得られたデータ等を格納する。また、メモリユニット１２の一部の領域が、ＣＰＵ１１での処理に利用されるワークエリアとして割り付けられている。
【００５３】
表示ユニット１３は、ＣＰＵ１１の制御のもとに必要な各種情報を表示する。出力ユニット１４は、プリンタ等を有し、利用者からの指示に応じて各種情報を出力するために用いられる。入力ユニット１５は、マウス、キーボード等を有し、ＬＳＩの開発者等のユーザがＷＳ１００が処理を行なうための必要な各種情報を入力するために用いられる。通信ユニット１６は、例えばインターネット、ＬＡＮ（Local Area Network）等に接続し、外部装置との間の通信制御をするための装置である。
【００５４】
記憶装置１７には、例えば、ハードディスクユニットが用いられ、各種処理を実行する規定値生成部２、変換部４、協調検証部５０での処理を実現するためのプログラム等、また、検証対象ＬＳＩ９０ｍで実行される検証対象の処理を行わせるためのプログラム３、メモリ９３ｍの形式に変換された試験プログラム５、設計データ６、テストベンチ７等のデータを格納する。
【００５５】
メモリユニット１２又は／及び記憶装置１７などによって、本実施の形態において必要なプログラム及びデータを記憶する記憶部が形成される。
【００５６】
ＷＳ１００によって行われる処理を実現するプログラムは、例えば、ＣＤ−ＲＯＭ（Compact Disc Read-Only Memory）等の記憶媒体１９によってＷＳ１００に提供される。即ち、プログラムが保存された記憶媒体１９がドライブ１８にセットされると、ドライブ１８が記憶媒体１９からプログラムを読み出し、その読み出されたプログラムがバスＢを介して記憶装置１７にインストールされる。そして、プログラムが起動されると、記憶装置１７にインストールされたプログラムに従ってＣＰＵ１１がその処理を開始する。尚、プログラムを格納する媒体としてＣＤ−ＲＯＭに限定するものではなく、コンピュータが読み取り可能な媒体であればよい。コンピュータ読取可能な記憶媒体として、ＣＤ−ＲＯＭの他に、ＤＶＤディスク、ＵＳＢメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリであっても良い。
【００５７】
また、ＷＳ１００によって行われる処理を実現するプログラムが、通信ユニット１６を介して外部装置から提供されてもよい。或いは、外部装置へ該プログラムを提供し、後述される各処理は外部装置で実現されるように構成してもよい。通信ユニット１６による通信は無線又は有線に限定されるものではない。
【００５８】
また、検証システム１０００は、更に、エミュレータＩ／Ｆ２０を有することにより、エミュレータ２００との通信によって、エミュレータ２００を用いた協調検証を行なうこともできる。
【００５９】
以下に、性能測定処理のみの処理パターンＡに係る機能構成及び処理手順について、シミュレータ（ＷＳ１００）で実施する場合と、エミュレータ２００を用いて実施する場合とで、夫々説明する。
【００６０】
性能測定処理のみの処理パターンＡをシミュレータ（ＷＳ１００）で実施する第１実施例に係る処理手順について、図６で説明する。図６は、性能測定処理のみをシミュレータで実施する第１実施例を説明するための図である。図６において、ＷＳ１００は、書込処理挿入部２ａを有し、測定用付加回路５１の性能測定部５２のレジスタ部５３０は、開始レジスタＡ５３１と、終了レジスタＡ５３２と、規定値レジスタＡ５３３と、カウンタＡ５３４とを有する。
【００６１】
図６に示す第１実施例において、書込処理挿入部２ａは、性能測定の対象処理（以下、処理Ａという。例えば、オーディオ処理などである。）の開始時点で開始レジスタＡ５３１に書き込む処理、及び終了時点で終了レジスタＡ５３２に書き込む処理を行うプログラムをプログラム３に挿入し、また、規定値生成部２は、性能要件データ１に基づいて、規定値を規定値レジスタＡ５３３に設定する処理を行う規定値設定プログラム３９をプログラム３に挿入する（ステップＳ１１）。
【００６２】
次に、変換部４は、プログラム３をシミュレーション用のメモリ形式に変換することによって、試験プログラム５を生成する（ステップＳ１２）。
【００６３】
そして、ＣＰＵ１１が、メモリユニット１２にロードされた、設計データ６と、テストベンチ７とを実行することによって、シミュレータである協調検証部５０ａ−１として機能し、試験プログラム５がメモリ９３ｍにロードされることによって、シミュレーションを開始する（ステップＳ１３）。
【００６４】
シミュレーションの開始によって、検証対象ＬＳＩ９０ｍのＣＰＵ９１ｍは、メモリ９３ｍにロードされた試験プログラム５に従って性能測定部５１を起動し、処理Ａに対する性能測定処理の開始の際に、処理Ａに係る規定値（サイクル数）を規定値レジスタＡ５３３に設定する（ステップＳ１４）。
【００６５】
制御部５２１は、検証対象ＬＳＩ９１ｍによる処理Ａの開始で、開始レジスタＡ５３１に書き込む（ステップＳ１５）。また、制御部５２１は、カウンタＡ５３４をリセットする（ステップＳ１６）。その後、カウンタＡ５３４は、サイクル毎にカウントアップされる。
【００６６】
検証対象ＬＳＩ９１ｍによる処理Ａの終了で、制御部５２１は、終了レジスタＡ５３２に書き込む（ステップＳ１７）。
【００６７】
性能比較部５２９は、カウンタＡ５３４のカウンタ値と規定値レジスタＡ５３３に設定された規定値とを比較する（ステップＳ１８）。性能比較部５２９による比較結果がカウンタＡ５３４のカウンタ値が規定値レジスタＡ５３３の規定値より大きいことを示す場合、制御部５２１は、性能に問題があると判定して、結果収集部５４に通知することにより、結果収集部５４の結果格納部５５０のメモリ５５３で管理されるエラーフラグを１に設定する。
【００６８】
エラーフラグが「１」を示す場合、性能に問題があると判定されたことを示し、「０」を示す場合、性能は規定内であり問題はないと判定されたことを示す。エラーフラグ「１」の設定を受信すると、結果収集部５４は、シミュレーション結果を結果格納部５５０のメモリ５５３に格納し、メモリ５５３内のエラーフラグに「１」を設定して、シミュレーションを停止する。シミュレーションを停止するかどうかは選択することが出来る。
【００６９】
一方、シミュレーションを停止せず、性能が規定内であり問題ない場合、上述したステップＳ１５からＳ１８を繰り返す。
【００７０】
性能測定処理のみの処理パターンＡをエミュレータ２００を用いて実施する第２実施例に係る処理手順について、図７で説明する。図７は、性能測定処理のみをエミュレータを用いて実施する第２実施例を説明するための図である。図７に示す第２実施例では、ＷＳ１００がコンパイラ８とコンパイルＤＢ９とを更に有する点で第１実施例と異なる。測定用付加回路５１の性能測定部５２のレジスタ部５３０は、図６と同様である。
【００７１】
図７に示す第２実施例において、書込処理挿入部２ａは、性能測定の対象処理（以下、処理Ａという。例えば、オーディオ処理などである。）の開始時点で開始レジスタＡ５３１に書き込む処理、及び終了時点て終了レジスタＡ５３２に書き込む処理を行うプログラムをプログラム３に挿入し、また、規定値生成部２は、性能要件データ１に基づいて、規定値を規定値レジスタＡ５３３に設定する処理を行う規定値設定プログラム３９をプログラム３に挿入する（ステップＳ２１）。
【００７２】
次に、変換部４は、プログラム３をシミュレーション用のメモリ形式に変換することによって、試験プログラム５を生成する（ステップＳ２２）。
【００７３】
コンパイラ８は、設計データ６と、テストベンチ７とを、エミュレータである協調検証部５０ａ−２用にコンパイルして、記憶部内のコンパイルＤＢ９に格納する（ステップＳ２３）。このステップＳ２３での処理は、ステップＳ２１での処理前に行ってもよい。
【００７４】
そして、エミュレータＩ／Ｆ２０を介して、コンパイルされた設計データ６とテストベンチ７とを含むコンパイルＤＢ９が協調検証部５０ａ−２にロードされ実行されることにより、検証対象ＬＳＩ９０ｍと測定用付加回路５１とが回路モデルとして実現され、更に、試験プログラム５がメモリ９３ｍにロードされ実行されることによって、エミュレーションが開始される（ステップＳ２４）。
【００７５】
エミュレーションの開始によって、検証対象ＬＳＩ９０ｍのＣＰＵ９１ｍは、メモリ９３ｍにロードされた試験プログラム５に従って性能測定部５１を起動し、処理Ａに対する性能測定処理の開始の際に、処理Ａに係る規定値（サイクル数）を規定値レジスタＡ５３３に設定する（ステップＳ２５）。
【００７６】
制御部５２１は、検証対象ＬＳＩ９１ｍによる処理Ａの開始で、開始レジスタＡ５３１に書き込む（ステップＳ２６）。また、制御部５２１は、カウンタＡ５３４をリセットする（ステップＳ２７）。その後、カウンタＡ５３４は、サイクル毎にカウントアップされる。
【００７７】
検証対象ＬＳＩ９１ｍによる処理Ａの終了で、制御部５２１は、終了レジスタＡ５３２に書き込む（ステップＳ２８）。
【００７８】
性能比較部５２９は、カウンタＡ５３４のカウンタ値と規定値レジスタＡ５３３に設定された規定値とを比較する（ステップＳ２９）。性能比較部５２９による比較結果がカウンタＡ５３４のカウンタ値が規定値レジスタＡ５３３の規定値より大きいことを示す場合、制御部５２１は、性能に問題があると判定して、結果収集部５４に通知することにより、結果収集部５４の結果格納部５５０のメモリ５５３で管理されるエラーフラグを１に設定する。
【００７９】
エラーフラグが「１」を示す場合、性能に問題があると判定されたことを示し、「０」を示す場合、性能は規定内であり問題はないと判定されたことを示す。エラーフラグ「１」の設定を受信すると、結果収集部５４は、エミュレーション結果を結果格納部５５０のメモリ５５３に格納し、メモリ５５３内のエラーフラグに「１」を設定して、エミュレーションを停止する。エミュレーションを停止するかどうかは選択することが出来る。
【００８０】
一方、エミュレーションを停止せず、性能が規定内であり問題ない場合、上述したステップＳ２６からＳ２９を繰り返す。
【００８１】
以下に、機能検証処理のみの処理パターンＢに係る機能構成及び処理手順について、シミュレータ（ＷＳ１００）で実施する場合と、エミュレータ２００を用いて実施する場合とで、夫々説明する。
【００８２】
機能検証処理のみの処理パターンＢをシミュレータ（ＷＳ１００）で実施する第３実施例に係る処理手順について、図８で説明する。図８は、機能検証処理のみをシミュレータで実施する第３実施例を説明するための図である。図８において、ＷＳ１００は、更に、記述追加部１０を有する。また、測定用付加回路５１の機能検証部５６のレジスタ部５７０は、期待値生成用データレジスタ５７１と、比較モードレジスタＢ５７２と、比較開始レジスタＢ５７３と、期待値比較エラーレジスタＢ５７４とを有する。
【００８３】
図８に示す第３実施例において、書込処理挿入部２ｂは、機能検証の対象処理（以下、処理Ｂという。例えば、グラフィック処理などである。）の開始時点で、比較モードレジスタＢ５７２と、比較開始レジスタＢ５７３と、期待値生成データレジスタＢ５７１とに書き込みする処理を行うプログラムをプログラム３に挿入する（ステップＳ３１）。
【００８４】
次に、変換部４は、プログラム３をシミュレーション用のメモリ形式に変換することによって、試験プログラム５を生成する（ステップＳ３２）。
【００８５】
記述追加部１０は、テストベンチ７に内部メモリや外部メモリへの入力データを機能検証部５６の入力部５６０に取り込む処理の記述を追加する（ステップＳ３３）。このステップＳ３３での処理は、ステップＳ３１での処理前に行ってもよい。
【００８６】
そして、ＣＰＵ１１が、メモリユニット１２にロードされた、設計データ６と、テストベンチ７とを実行することによって、シミュレータである協調検証部５０ｂ−１として機能し、試験プログラム５がメモリ９３ｍにロードされることによって、シミュレーションを開始する（ステップＳ３４）。
【００８７】
シミュレーションの開始によって、検証対象ＬＳＩ９０ｍのＣＰＵ９１ｍは、メモリ９３ｍにロードされた試験プログラム５に従って機能検証部５６を起動し、処理Ｂに対する機能検証処理を開始する（ステップＳ３５）。
【００８８】
制御部５６１は、比較開始レジスタＢ５７３と、入力部５６０に取り込まれた入力データとを監視し、比較開始条件になると期待値比較部５６４によって、期待値との比較を行わせる（ステップＳ３６）。そして、制御部５６１は、期待値比較部５６４による比較結果を期待値比較エラーレジスタＢ５７４に書き込む（ステップＳ３７）。
【００８９】
比較結果が不一致を示す場合、制御部５６１は、不一致となったアドレス及び入力データを結果収集部５４に通知することにより、結果収集部５４の結果格納部５５０のメモリ５５３に格納し、また、結果収集部５４に、結果格納部５５０で管理されるエラーフラグを１に設定させる（ステップＳ３８）。
【００９０】
エラーフラグが「１」を示す場合、機能に問題があると判定されたことを示し、「０」を示す場合、機能に問題はないと判定されたことを示す。エラーフラグ「１」の設定を受信すると、結果収集部５４は、シミュレーション結果を結果格納部５５０のメモリ５５３に格納し、メモリ５５３内のエラーフラグに「１」を設定して、シミュレーションを停止する。シミュレーションを停止するかどうかは選択することが出来る。
【００９１】
一方、シミュレーションを停止せず、機能に問題ない場合、上述したステップＳ３５からＳ３８を繰り返す。
【００９２】
機能検証処理のみの処理パターンＢをエミュレータ２００を用いて実施する第４実施例に係る処理手順について、図９で説明する。図９は、機能検証処理のみをエミュレータで実施する第４実施例を説明するための図である。図９に示す第４実施例では、ＷＳ１００がコンパイラ８とコンパイルＤＢ９とを更に有する点で第３実施例と異なる。測定用付加回路５１の性能測定部５２のレジスタ部５３０は、図８と同様である。
【００９３】
図９に示す第４実施例において、書込処理挿入部２ｂは、機能検証の対象処理（以下、処理Ｂという。例えば、グラフィック処理などである。）の開始時点で、比較モードレジスタＢ５７２と、比較開始レジスタＢ５７３と、期待値生成データレジスタＢ５７１とに書き込みする処理を行うプログラムをプログラム３に挿入する（ステップＳ４１）。
【００９４】
次に、変換部４は、プログラム３をシミュレーション用のメモリ形式に変換することによって、試験プログラム５を生成する（ステップＳ４２）。
【００９５】
記述追加部１０は、テストベンチ７に内部メモリや外部メモリへの入力データを機能検証部５６の入力部５６０に取り込む処理の記述を追加する（ステップＳ４３）。このステップＳ４３での処理は、ステップＳ４１での処理前に行ってもよい。
【００９６】
コンパイラ８は、設計データ６と、テストベンチ７とを、エミュレータである協調検証部５０ａ−２用にコンパイルして、記憶部内のコンパイルＤＢ９に格納する（ステップＳ４４）。このステップＳ４４での処理は、ステップＳ４１での処理前に行ってもよい。
【００９７】
そして、エミュレータＩ／Ｆ２０を介して、コンパイルされた設計データ６とテストベンチ７とを含むコンパイルＤＢ９が協調検証部５０ａ−２にロードされ実行されることにより、検証対象ＬＳＩ９０ｍと測定用付加回路５１とが回路モデルとして実現され、更に、試験プログラム５がメモリ９３ｍにロードされ実行されることによって、エミュレーションが開始される（ステップＳ４５）。
【００９８】
エミュレーションの開始によって、検証対象ＬＳＩ９０ｍのＣＰＵ９１ｍは、メモリ９３ｍにロードされた試験プログラム５に従って機能検証部５６を起動し、処理Ｂに対する機能検証処理を開始する（ステップＳ４６）。
【００９９】
制御部５６１は、比較開始レジスタＢ５７３と、入力部５６０に取り込まれた入力データとを監視し、比較開始条件になると期待値比較部５６４によって、期待値との比較を行わせる（ステップＳ４７）。そして、制御部５６１は、期待値比較部５６４による比較結果を期待値比較エラーレジスタＢ５７４に書き込む（ステップＳ４８）。
【０１００】
比較結果が不一致を示す場合、制御部５６１は、不一致となったアドレス及び入力データを結果収集部５４に通知することにより、結果収集部５４の結果格納部５５０のメモリ５５３に格納し、また、結果収集部５４に、結果格納部５５０で管理されるエラーフラグを１に設定させる（ステップＳ４９）。
【０１０１】
エラーフラグが「１」を示す場合、機能に問題があると判定されたことを示し、「０」を示す場合、機能に問題はないと判定されたことを示す。エラーフラグ「１」の設定を受信すると、結果収集部５４は、エミュレーション結果を結果格納部５５０のメモリ５５３に格納し、メモリ５５３内のエラーフラグに「１」を設定して、エミュレーションを停止する。エミュレーションを停止するかどうかは選択することが出来る。
【０１０２】
一方、エミュレーションを停止せず、機能に問題ない場合、上述したステップＳ４６からＳ４９を繰り返す。
【０１０３】
以下に、性能測定処理及び機能検証処理による処理パターンＣに係る第５及び第６実施例について説明する。第５及び第６実施例において、各回路モデルの構成は、第１から第４実施例で説明した通りである。また、第１から第４実施例より、性能測定処理及び機能検証処理による処理パターンＣにおいても、シミュレータ（ＷＳ１００）で実施することも可能であるし、エミュレータ２００を用いて実施することも可能である。
【０１０４】
性能測定処理と機能検証処理との同時実施では、図６に示す第１実施例と図８に示す第３実施例における機能構成を含み、即ち、検証対象ＬＳＩ９０ｍと図４に示す測定用付加回路５１全体とをＷＳ１００で実現する構成Ａ、又は、図７に示す第２実施例と図９に示す第４実施例における機能構成を含み、即ち、検証対象ＬＳＩ９０ｍと図４に示す測定用付加回路５１全体とをエミュレータ２００で実現する構成Ｂ、のいずれかである。
【０１０５】
以下に、上記構成Ａ又は構成Ｂを問わず、性能測定処理と機能検証処理との組み合わせを実現する基本構成５０Ｃ―１と、更に、現状の性能で性能要件を満たす条件を探索する構成５０Ｃ―２とを、夫々、第５実施例及び第６実施例として説明する。
【０１０６】
第５及び第６実施例に共通して、性能に問題があった場合は機能検証部５６を停止し、機能に問題があった場合は性能測定部５２を停止することが可能である。また、性能又は機能に問題があった場合、結果収集部５４を介してその状態をＣＰＵ９１ｍに通知することができ、ＷＳ１００によるシミュレーション又はエミュレータ２００によるエミュレーションの実行を停止することが出来る。
【０１０７】
現状の性能が性能要件を満たすための条件を探索する構成５０Ｃ―２に係る第６実施例では、クロック周波数を徐々に下げ、性能要件を満たす周波数を探索することができる。また、性能に問題があった場合、機能を選択し、性能要件を満たす機能の組み合わせを探索することができる。更に、性能要件を満たすバス占有率を探索することができる。
【０１０８】
先ず、第５実施例について図１０で説明する。図１０は、性能測定処理及び機能検証処理を実施する第５実施例を説明するための図である。図１０中、回路モデルの構成は、図６及び図８で例示される通りであるので、協調検証部５０ｃ−１では処理構成を示して、性能測定処理と機能検証処理との組み合わせに係る処理手順で第５実施例を説明する。
【０１０９】
図１０において、試験プログラム５が検証対象ＬＳＩ９０ｍのメモリ９３ｍにロードされると（ステップＳ７１）、検証対象ＬＳＩ９０ｍのＣＰＵ９１ｍによって試験処理９８ｐが開始される（ステップＳ７２）。
【０１１０】
試験処理９８ｐの開始によって、性能測定部５２が起動され（ステップＳ７３）、機能検証部５６が起動される（ステップＳ７４）。性能測定部５２及び機能検証部５６の起動する順は問わない。そして、オーディオ処理などの処理Ａ及びグラフィック処理などの処理Ｂに係る検証対象処理が開始される。検証対象処理に関して、リアルタイムに測定用付加回路５１によって、性能測定及び機能検証が行なわれる。
【０１１１】
上述したステップＳ７３の性能測定部５２の起動によって、図６のステップＳ１４、Ｓ１５、及びＳ１６、又は、図７のステップＳ２５、Ｓ２６、及びＳ２７が行われ、性能測定処理５２ｐが開始される。性能測定処理５２ｐでは、サイクル毎にカウントアップされるカウンタＡ５３４の値と、規定値レジスタＡ５３３の規定値とを比較する（ステップＳ７３１）。その比較結果がカウンタＡ５３４の値が規定値レジスタＡ５３３の規定値を超えることを示す場合（ＮＧ）、エラーフラグ「１」の設定が結果収集部５４に通知される。エラーフラグ「１」の設定を受けた結果収集部５４は、シミュレーション又はエミュレーションを停止する（ステップＳ７６−２）。シミュレーション又はエミュレーションを停止するかどうかは選択することが出来る。
【０１１２】
一方、その比較結果がカウンタＡ５３４の値が規定値レジスタＡ５３３の規定値以下であることを示す場合（ＯＫ）、処理が終了したか否かが判断される（ステップＳ７３５）。処理が終了していない場合（ＮＯ）、性能測定処理５２ｐは、ステップＳ７３１へ戻り、次のサイクルで上述した同様の比較処理を行う。一方、処理終了である場合（ＹＥＳ）、処理が終了したことが結果収集部５４に通知される。
【０１１３】
上述したステップＳ７４の機能検証部５６の起動によって、図８のステップＳ３５又は図９のステップＳ４６が行われ、機能検証処理５６ｐが開始される。機能検証処理５６ｐでは、入力データと期待値とを比較する（ステップＳ７４１）。その比較結果が不一致を示す場合（ＮＧ）、図８のステップＳ３７又は図９のステップＳ４８が実行され、エラーフラグ「１」の設定が結果収集部５４に通知される。エラーフラグ「１」の設定を受けた結果収集部５４は、シミュレーション又はエミュレーションを停止する（ステップＳ７６−２）。シミュレーション又はエミュレーションを停止するかどうかは選択することが出来る。
【０１１４】
一方、その比較結果が一致を示す場合（ＯＫ）、処理が終了したか否かが判断される（ステップＳ７３５）。処理が終了していない場合（ＮＯ）、機能検証処理５６ｐは、ステップＳ７４３へ戻り、次の入力データで上述した同様の比較処理を行う。一方、処理終了である場合（ＹＥＳ）、処理が終了したことが結果収集部５４に通知される。
【０１１５】
結果収集部５４は、性能測定部５２及び機能検証部５６からの通知によって収集された比較結果を試験処理９８ｐに通知する（試験処理９８ｐにおける結果収集：ステップＳ７６）。
【０１１６】
試験処理９８ｐにおいて、測定用付加回路５１の結果収集部５４から収集した比較結果を参照して、性能測定部５２及び機能検証部５６による比較結果の判定を行う（比較判定：ステップＳ７７）。比較結果の判定によって、性能又は／及び機能に問題があると判定した場合（ＮＧ）、性能又は／及び機能に問題があることを示す試験結果を表示ユニット１３に表示させて（ステップＳ７８−１）、この試験処理９８ｐは終了する（ステップＳ７９）。
【０１１７】
一方、性能又は／及び機能に問題がないと判定した場合（ＯＫ）、性能又は／及び機能に問題がないことを示す試験結果を表示ユニット１３に表示させて（ステップＳ７８−２）、この試験処理９８ｐは終了する（ステップＳ７９）。
【０１１８】
次に、現状の性能が性能要件を満たすための条件を探索する構成５０Ｃ―２に係る第６実施例について、図１１で説明する。図１１は、性能測定処理及び機能検証処理を実施する第６実施例を説明するための図である。図１１中、図１０と同一ステップには同一符号を付し、その説明を省略する。また、回路モデルの構成は、図７及び図９で例示される通りであるので、協調検証部５０ｃ−２では処理構成を示して、性能測定処理と機能検証処理との組み合わせに係る処理手順で第６実施例を説明する。
【０１１９】
第６実施例において、試験処理９８ｐでは、現状の性能が性能要件を満たすための条件を探索するために、異なる性能要件に対応した複数のパターンを用いて試験が行われる。各パターンは、ステップＳ７３による性能測定部５２の起動及びステップＳ７４による機能検証部５６の起動によって開始される。
【０１２０】
そして、パターン毎に、図１０で説明したようにステップＳ７７までの処理が実行され、ステップＳ７８−１又はＳ７８−２による試験結果の表示ユニット１３への表示後に、全パターンを実施したか否かが判断される（ステップＳ７８−３）。未だ実施していないパターンがある場合（ＮＯ）、次のパターンを実施するためにステップＳ７３へと戻り、上述同様の処理を繰り返す。
【０１２１】
一方、全パターンを実施した場合（ＹＥＳ）、この試験処理９８ｐは終了する（ステップＳ７９）。
【０１２２】
現状の性能が性能要件を満たすための条件の探索では、規定値生成部２によって試験プログラム９８ｐ中に複数の規定値が準備される。シミュレータ（ＷＳ１００）による、又は、エミュレータ２００を用いた協調検証の実行中に、試験処理９８ｐが規定値を自動で変更することによって、性能が性能要件を満たすための条件を探索する。条件として周波数があり、異なる周波数毎に、規定値算出方法の第１例によって性能要件をサイクル数で示す規定値が算出される。
【０１２３】
性能要件を満たす周波数を探索する第１の探索例について図１２で説明する。図１２は、周波数を探索する第１の探索例を説明するための図である。図１２において、１回目の周波数「１００ＭＨｚ」及び性能要件「３３ｍｓ」に基づく規定値１による判定１が、規定値１内で検証対象処理が終了しなかったことを示す場合（Ｓ７３３でＮＧ）、ＬＳＩの開発者は、条件となる周波数又は性能要件について再考することとなる。
【０１２４】
一方、規定値１による判定１が、規定値１内で検証対象処理が終了したことを示す場合（Ｓ７３５でＯＫ）、規定値２のパターンで判定される。２回目の周波数「９０ＭＨｚ」及び性能要件「３３ｍｓ」に基づく規定値２による判定２が、規定値２内で検証対象処理が終了しなかったことを示す場合（Ｓ７３３でＮＧ）、ＬＳＩの開発者は、１回目の規定値１による条件が限界であると判断する。
【０１２５】
一方、規定値２による判定２が、規定値２内で検証対象処理が終了したことを示す場合（Ｓ７３５でＯＫ）、規定値３のパターンで判定される。このような処理が各規定値１、２、・・・毎に繰り返されることによって、性能要件を満たす条件が探索される。
【０１２６】
規定値１は、図２に示す規定値算出方法の第１例に従って算出されたサイクル数「３，３００，０００」を示す。規定値２も同様に算出されたサイクル数「２，９７０，０００」を示す。
【０１２７】
図１３は、図１２の第１の探索例での処理概要を説明するためのフローチャート図である。図１３において、試験プログラム５によって行われる試験処理９８ｐにおいて、プログラム構成ＤＢ７１からパターンが選択される（ステップＳ８１）。
【０１２８】
選択されたパターンのプログラムがＣＰＵ９１ｍによって実行される（ステップＳ８２）。実行開始時に、パターンに対応する規定値が性能測定部５２に設定される。具体的には、性能測定部５２のレジスタ部５３０内の規定値レジスタＡ５３３（図６又は図７）に設定される。
【０１２９】
そして、性能測定部５２による規定値との比較結果が結果収集部５４の結果格納部５５０に書き込まれる（ステップＳ８３）。
【０１３０】
その後、試験処理９８ｐにおいて、全パターンを実施したか否かが判断される（ステップＳ８４）。全パターンの実施を終了していない場合、ステップＳ８１へ戻り、試験処理９８ｐにおいて、次のパターンが選択され、上述した同様の処理が繰り返される。一方、全パターンを実施した場合、試験処理９８ｐは終了する。
【０１３１】
プログラム構成ＤＢ７１は、試験プログラム５に含まれている探索用のパターンに対応したプログラムを含んでいる。この例では、探索用にパターン１、２、３、・・・が含まれていることを示している。パターンの選択は厳しい条件から実施されるようにし、比較結果がＮＧの場合、即時にシミュレーションを終了させる。パターン毎の比較判定は、表示ユニット１３に表示されることにより、ＬＳＩの開発者は、周波数の探索結果を知ることができる。
【０１３２】
パターン１が選択されると、性能測定処理５２ｐにおいて、周波数「１００ＭＨｚ」及び性能要件「３３ｍｓ」に基づいて算出された規定値１との比較が行われる。次に、パターン２が選択されると、性能測定処理５２ｐにおいて、周波数「９０ＭＨｚ」及び性能要件「３３ｍｓ」に基づいて算出された規定値２との比較が行われる。更に、パターン３が選択されると、性能測定処理５２ｐにおいて、周波数「８０ＭＨｚ」及び性能要件「３３ｍｓ」に基づいて算出された規定値３との比較が行われる。
【０１３３】
次に、図１１に示す構成５０Ｃ―２において、試験プログラム５に、複数の機能の組み合せを準備し、組み合せ毎に性能測定処理５２ｐを行い、性能要件を満たす組み合わせを探索する第２の探索例について説明する。
【０１３４】
図１４は、機能の組み合せを探索する第２の探索例を説明するための図である。図１４に示す第２の探索例では、試験プログラム５の中に、機能の組み合せ「Ａ１、Ａ２、及びＡ３」、「Ａ１及びＡ２」、及び「Ａ１及びＡ３」が準備され、シミュレーション（又はエミュレーション）の実行中に、機能の組み合せを選択して、性能要件を満たす組み合せを探索する。
【０１３５】
機能の組み合せの例として、機能Ａ１は画像の縮小、機能Ａ２は画像の一部を白黒化、そして、機能Ａ３は画像の拡大が示されている。
【０１３６】
性能要件「３３ｍｓ」の制約において、機能Ａ１、機能Ａ２、及び機能Ａ３の組み合せを１回目で行う。その結果、機能検証ではＯＫであったが、性能測定では機能Ａ１からＡ３までを終了するのにかかる所要時間が４０ｍｓとなり、性能要件の処理時間３３ｍｓを超えてＮＧであった。
【０１３７】
同一の制約において、機能Ａ１及び機能Ａ２の組み合せを２回目で行う。１回目と異なり、機能Ａ３は実行されない。その結果、機能検証がＯＫであると共に、性能測定では所要時間が３３ｍｓであり性能要件の処理時間３３ｍｓを超えることなくＯＫの判定となった。この例の場合では、１回目の機能の組み合せでは性能要件を満たすことができないが、２回目の機能の組み合わせでは性能要件を満たすことが判る。このように、どの組み合せであれば性能要件を満たすのかを探索することができる。
【０１３８】
図１５は、図１４の第２の探索例での処理概要を説明するためのフローチャート図である。図１５において、試験プログラム５によって行われる試験処理９８ｐにおいて、プログラム構成ＤＢ７２からパターンが選択される（ステップＳ９１）。
【０１３９】
選択されたパターンのプログラムがＣＰＵ９１ｍによって実行される（ステップＳ９２）。実行開始時に、規定値が性能測定部５２に設定される。この機能の組み合せによる第２の探索例では、性能測定部５２に設定される規定値は、周波数に変化はないので、どのパターンが選択されても一律である。
【０１４０】
そして、性能測定部５２による規定値との比較結果が結果収集部５４の結果格納部５５０に書き込まれる（ステップＳ９３）。
【０１４１】
その後、試験処理９８ｐにおいて、全パターンを実施したか否かが判断される（ステップＳ９４）。全パターンの実施を終了していない場合、ステップＳ９１へ戻り、試験処理９８ｐにおいて、次のパターンが選択され、上述した同様の処理が繰り返される。一方、全パターンを実施した場合、試験処理９８ｐは終了する。
【０１４２】
プログラム構成ＤＢ７２は、試験プログラム５に含まれている探索用のパターンに対応したプログラムを含んでいる。この例では、探索用にパターン１（シリアル）、パターン２（シリアル）、パターン３（パラレル）、・・・が含まれていることを示している。
【０１４３】
パターン１（シリアル）は、機能Ａ１、機能Ａ２、そして機能Ａ３の順に行うパターンである。パターン２（シリアル）は、機能Ａ１、そして機能Ａ２の順に行うパターンである。パターン３（パラレル）は、機能Ａ１及び機能Ａ３を並列で行い、そして機能Ａ２を行うパターンである。
【０１４４】
選択されたパターンのプログラムが終了するまでに要した所要時間と規定値との比較が行われ、その比較結果が結果収集部５４を介して試験処理９８ｐに通知される。
【０１４５】
第３の探索例として、機能の組み合せは同一であるが、入力画像サイズを変更して、性能要件を満たす条件（入力画像サイズ）を探索する場合について説明する。図１６は、同一の機能の組み合せにおいて性能要件を満たす条件を探索する第３の探索例を説明するための図である。
【０１４６】
図１６に示す第３の探索例では、試験プログラム５の中に、複数の入力画像サイズの入力画像データが準備され、シミュレーション（又はエミュレーション）の実行中に、入力画像サイズを変更して、組み合せ機能が性能要件を満たす条件「入力画像サイズ」を探索する。
【０１４７】
機能の組み合せの例として、機能Ａ１、Ａ２、及びＡ３が示され、機能Ａ１は画像の縮小、機能Ａ２は画像の一部を白黒化、そして、機能Ａ３は画像の拡大である。
【０１４８】
性能要件「３３ｍｓ」の制約において、機能Ａ１、機能Ａ２、及び機能Ａ３の組み合せで、入力画像サイズ「１０２４×７６８」の入力画像データを用いて１回目を行う。その結果、機能検証ではＯＫであったが、性能測定では機能Ａ１からＡ３までを終了するのにかかる所要時間が４０ｍｓとなり、性能要件の処理時間３３ｍｓを超えてＮＧであった。
【０１４９】
同一の性能要件及び同一の機能の組み合せにおいて、入力画像サイズを「８００×６００」に変更して、２回目を行う。その結果、機能検証がＯＫであると共に、性能測定では所要時間が３３ｍｓであり性能要件の処理時間３３ｍｓを超えることなくＯＫの判定となった。この例の場合では、１回目の入力画像サイズ「１０２４×７６８」では性能要件を満たすことができないが、２回目の入力画像サイズ「８００×６００」では性能要件を満たすことが判る。このように、機能の組み合せにおいて、どの条件であれば性能要件を満たすのかを探索することができる。
【０１５０】
次に、性能要件として、所要時間の代わりに、バス占有率を指定した場合について説明する。性能要件であるバス占有率は、図３の規定値算出方法の第２例で示されるように、規定値生成部２によって、計数可能な規定値で示される。図１７は、バス占有率に基づく性能測定について説明するための図である。図１７において、ＣＰＵ９６ｍと、Ｃｏｄｅｃ９７ｍと、ＭＥＭＣ９８ｍとを有する検証対象ＬＳＩ９５ｍと、ＭＥＭＣ９８ｍでコントロールされるＳＤＲＡＭ９９ｍとが試験される各回路モデルである場合を示す。各回路モデルに対して検証対象処理量を監視するためにバスモニタ６ａ、６ｂ、６ｃ、及び６ｄを組み込んで、所定時間毎にバス占有率を取得する。
【０１５１】
このようなバスモニタ６ａ、６ｂ、６ｃ、及び６ｄを組み込むことで、検証対象ＬＳＩ９０ｍ内のバス占有率１７ａと、検証対象ＬＳＩ９０ｍ外のバス占有率１７ｂとを夫々検証することが可能となる。例えば、バス占有率「５０％」を規定値とした場合、規定値を超える期間１７ｔが判るため、検証対象ＬＳＩの性能に係る設計の見直しを効果的に行うことができる。
【０１５２】
性能要件をバス占有率「５０％」以下とした場合の、性能測定処理及び機能検証処理を実施する第５実施例の変形例について図１８で説明する。図１８は、第５実施例の変形例を説明するための図である。
【０１５３】
図１８に示す変形例では、試験プログラム５によって、機能の組み合せ「Ａ１、Ａ２、及びＡ３」が実行され、バス占有率「５０％」以下が指定された性能要件に従って、機能検証処理５６ｐ及び性能測定処理５２ｐが実行された場合を示している。
【０１５４】
機能の組み合せの例として、機能Ａ１は画像の縮小、機能Ａ２は画像の一部を白黒化、そして、機能Ａ３は画像の拡大が示されている。
【０１５５】
この例では、バス占有率５０％以下の制約において、機能検証ではＯＫであったが、性能測定ではバス占有率が最大で「６０％」となる期間があり、性能要件のバス占有率５０％を超えてＮＧであった。性能測定では機能Ａ１からＡ３までを実行中に性能要件のバス占有率５０％を超えた時刻が存在したことが示されている。
【０１５６】
所定時間毎のバス占有率を結果収集部５４で収集し蓄積するようにし、プログラム実行後の試験結果を表示ユニット１３に表示させることで、時刻１１０ｍｓでバス占有率の最大値「６０％」を示した結果となったことが判る。このように、どの期間で性能要件を満たすことができなかったのかを知ることができる。
【０１５７】
次に、同一の機能の組み合せで、性能要件のバス占有率５０％以下を満たす条件「入力画像サイズ」を探索する第６実施例の変形例について説明する。図１９は、第６実施例の変形例を説明するための図である。
【０１５８】
図１９に示す第６実施例の変形例では、試験プログラム５の中に、複数の入力画像サイズの入力画像データが準備され、シミュレーション（又はエミュレーション）の実行中に、入力画像サイズを変更して、組み合せ機能が性能要件を満たす条件「入力画像サイズ」を探索する。図１６に示す第３の探索例との違いは、性能要件として「バス占有率５０％」以下が指定される。
【０１５９】
機能の組み合せの例として、機能Ａ１、Ａ２、及びＡ３が示され、機能Ａ１は画像の縮小、機能Ａ２は画像の一部を白黒化、そして、機能Ａ３は画像の拡大である。
【０１６０】
バス占有率５０％以下の制約において、機能Ａ１、機能Ａ２、及び機能Ａ３の組み合せで、入力画像サイズ「１０２４×７６８」の入力画像データを用いて１回目を行う。その結果、機能検証ではＯＫであったが、性能測定では機能Ａ１からＡ３を終了するまでの所定時間毎のバス占有率において「５０％」を超える期間が存在したためＮＧであった。
【０１６１】
同一の性能要件及び同一の機能の組み合せにおいて、入力画像サイズを「８００×６００」に変更して、２回目を行う。その結果、機能検証がＯＫであると共に、性能測定では所定時間毎のバス占有率において「５０％」以下であったためＯＫの判定となった。この例の場合では、１回目の入力画像サイズ「１０２４×７６８」では性能要件を満たすことができないが、２回目の入力画像サイズ「８００×６００」では性能要件を満たすことが判る。このように、機能の組み合せにおいて、どの条件であれば性能要件を満たすのか、を探索することができる。
【０１６２】
また、どの期間で性能要件を満たさないのかを知ることができ、機能を組み合わせた場合に性能が落ちる箇所を検証することができる。この１回目及び２回目の結果例を参照することにより、機能Ａ１−＞機能Ａ２−＞機能Ａ３のシリアルな処理において、入力画像サイズ「１０２４×７６８」の場合に、機能Ａ２で性能要件を満たさない期間が存在する等の検証が容易となる。
【０１６３】
図２０は、図１９の第６実施例の変形例での処理概要を説明するためのフローチャート図である。図２０において、試験プログラム５によって行われる試験処理９８ｐにおいて、入力画像サイズＤＢ７３からパターンが選択される（ステップＳ１０１）。
【０１６４】
所定プログラムがＣＰＵ９１ｍによって実行される（ステップＳ１０２）。実行開始時に、規定値が性能測定部５２に設定される。この変形例では、性能測定部５２に設定される規定値は、パターンの選択に影響されないため、どのパターンが選択されてもバス占有率５０％以下で一律である。
【０１６５】
そして、性能測定部５２による規定値との比較結果が結果収集部５４の結果格納部５５０に書き込まれる（ステップＳ１０３）。
【０１６６】
その後、試験処理９８ｐにおいて、全パターンを実施したか否かが判断される（ステップＳ１０４）。全パターンの実施を終了していない場合、ステップＳ１０１へ戻り、試験処理９８ｐにおいて、次のパターンが選択され、上述した同様の処理が繰り返される。一方、全パターンを実施した場合、試験処理９８ｐは終了する。
【０１６７】
入力画像サイズＤＢ７３は、性能要件を満たす条件の探索用のパターンを含んでいる。入力画像サイズＤＢ７３によって、パターン毎に、異なる入力画像サイズの入力画像データが管理される。この例では、探索される条件として、入力画像サイズ「１０２４×７６８」のパターン１、入力画像サイズ「８００×６００」のパターン２、・・・が含まれていることを示している。
【０１６８】
次に、バス占有率を性能要件とした図１１に示す第６実施例の構成５０Ｃ―２による性能測定結果の種々の使用例について説明する。第６実施例の構成５０Ｃ―２を用いて、車両等に搭載されるようなナビゲーションと、映像再生と、音楽再生とが可能な種々のマルチメディア対応のＬＳＩを検証する場合にについて説明する。
【０１６９】
図２１は、マルチメディア対応ＬＳＩの回路モデル構成の例を示す図である。図２１には、検証対象となる回路モデルが例示されている。種々のマルチメディア対応のＬＳＩ３００ｍは、ＣＰＵ３０１ｍと、ＤＭＡＣ３０２ｍと、ＭＥＭＣ３０３ｍと、画像処理回路３０５ｍと、ディスプレイコントローラ３０６ｍと、ＣＤ／ＢＤ／ＤＶＤ  Ｉ／Ｆ３０７ｍと、ＨＤＤ  Ｉ／Ｆ３０８ｍと、オーディオＩ／Ｆ３０９ｍとを有し、バス３３０ｍを介して互いに接続される。
【０１７０】
また、ＭＥＭＣ３０３ｍには、ＳＤＲＡＭ３１３ｍが接続される。ディスプレイコントローラ３０６ｍには、ディスプレイ３１５ｍ及び３１６ｍが接続される。ＣＤ／ＢＤ／ＤＶＤ  Ｉ／Ｆ３０７ｍには、ＣＤ／ＢＤ／ＤＶＤ３１７ｍが接続される。ＨＤＤ  Ｉ／Ｆ３０８ｍには、ＨＤＤ３１８が接続される。オーディオＩ／Ｆ３０９ｍには、スピーカー３１９ｍが接続される。このような検証対象となる回路モデルにおいて、検証対象処理量を監視するためにバスモニタ９ａから９ｋを組み込んで、所定時間毎にバス占有率を取得する。
【０１７１】
図２２は、図２１に示すマルチメディア対応ＬＳＩの性能限界の探索例を示す図である。図２２では、性能要件をバス占有率５０％以下とした場合の性能測定により性能限界を探索する例を示している。１回目のパターンＡでは、ナビゲーション、ＤＶＤ映像再生、再生を含むＣＤリッピングの３つの機能の組み合わせが行われる。性能測定処理５２ｐにより、全てのバスモニタの総和結果２２ａを得る。このような総和結果２２ａから、性能要件のバス占有率５０％以下を超える期間が６０ｍｓから９０ｍｓと、１７０ｍｓとに存在することが示され、３つの機能を同時に動作させることができないことが判明する。
【０１７２】
２回目のパターンＢでは、ナビゲーション、ＤＶＤ映像再生、ＨＤＤ再生のパターンＡとは異なる３つの機能の組み合わせが行われる。この機能の組み合せにおいて、ＨＤＤ再生は、ＣＤリッピングしたデータを予めＨＤＤ３１８ｍに格納しておき、ＨＤＤ３１８ｍから音楽を再生する。性能測定処理５２ｐにより、全てのバスモニタの総和結果２２ｂを得る。このような総和結果２２ｂから、ＨＤＤ３１８ｍから音楽を再生するようにした機能の組み合せでは、性能要件のバス占有率５０％以下を満たすことができ、性能に問題ないことが判明する。
【０１７３】
例えば、図２３に例示されるように、パターンＡにおけるＣＰＵ３０１ｍとＭＥＭＣ３０３ｍを介したＳＤＲＡＭ３１３ｍとの間、及び、ＭＥＭＣ３０３ｍを介したＳＤＲＡＭ３１３ｍとＨＤＤ３１８ｍとの音楽再生に係る検証対象処理が、パターンＢでは削減されることにより、性能要件のバス占有率５０％以下を満たすことができたと考えられる。
【０１７４】
図２４は、バスモニタの結果表示のためのフローチャート図である。図２４において、シミュレーションが開始されると（ステップＳ１２１）、所定プログラムを実行する（ステップＳ１２２）。性能測定部５２はバスモニタによって測定した測定データ２４ａを所定時間毎に結果収集部５４へ通知して、結果格納部５５０のメモリ５５３に書き込む（ステップＳ１２３）。
【０１７５】
シミュレーションが終了すると（ステップＳ１２４）、結果格納部５５０のメモリ５５３に書き込まれたデータ２４ａを加工してｃｓｖファイル２４ｂを得る（ステップＳ１２５）。そして、ｃｓｖファイル２４ｂを用いて作成した測定結果を示すグラフ２４ｃを表示ユニット１３に表示させる（ステップＳ１２６）。
【０１７６】
測定データ２４ａは、結果格納部５５０のメモリ５５３に１６進数で記録され、read回数データ２５ａと、write回数データ２５ｂとを含む。read回数データ２５ａは、所定時間毎にreadされた回数が示される。同様に、write回数データ２５ｂは、所定時間毎にwriteされた回数が示される。
【０１７７】
測定データ２４ａは、１０進数で表されたｃｓｖファイル２４ｂに加工される。ｃｓｖファイル２４ｂには、所定時間間隔を表す番号０、１、２、・・・毎にread回数及びwrite回数とが対応付けられて記録される。ｃｓｖファイル２４ｂへの加工は、図１０に示す試験処理９８ｐにおいて、試験結果表示（ＮＧ）を行うＳ７８−１又は試験結果表示（ＯＫ）を行うＳ７８−２などで行うようにすればよい。
【０１７８】
測定結果を示すグラフ２４ｃは、縦軸にＳＤＲＡＭ用のバス占有率を示し、横軸に時間軸を示している。測定結果を示すグラフ２４ｃが表示ユニット１３に表示されることによって、開発者は、制約要件のバス占有率５０％を満たしていない期間を視覚的に容易に確認することができる。
【０１７９】
図２１の回路モデル構成例では、測定データ２４ａを、バスモニタ９ａから９ｋの各々に対して記録することで、開発者は、より詳細な解析を行うことができる。各バスモニタ９ａ〜９ｋから得られた測定結果をグラフで表示されることにより、ボトルネック解析により性能改善を行うことができる。
【０１８０】
図２５は、ボトルネック解析の例を説明するための図である。図２５において、図２１の回路モデル構成例において各バスモニタ９ａ〜９ｋから得られた全ての測定結果からボトルネック解析を行った結果、ＳＤＲＡＭ３１３ｍのバス占有率を示すグラフ２５ｃからＳＤＲＡＭ３１３ｍのバス占有率に問題があることが判明した例が示されている。
【０１８１】
グラフ２５ｃを参照すると、ＳＤＲＡＭ３１３ｍのバス占有率が、性能要件のバス占有率５０％を超えている期間が存在することが判る。従って、開発者は、ＭＥＭＣ３０３ｍの改善、ＳＤＲＡＭ３１３ｍの種類の変更、ＳＤＲＡＭ３１３ｍの周波数を上げる等の性能改善を行う必要があると判断できる。
【０１８２】
また、バス占有率の測定結果を用いて、ＬＳＩ３００ｍの性能に余裕があるか否かを判断することも可能である。性能の余裕度を判定することにより、消費電力をより削減したＬＳＩ開発を検討することができる。例えば、ナビゲーションの機能と、ＨＤＤ再生の機能のみが行えればよい場合に、この組み合せによる性能の余裕度を、バス占有率を性能要件として設定することにより検証することができる。
【０１８３】
図２６は、バス占有率を用いた性能余裕度の検証例を説明するための図である。図２６に例示されるバス占有率の測定結果を示すグラフ２６ｃを参照することにより、バス占有率が最大となる時間７０ｍｓにおいても、性能要件のバス占有率５０％までその２割以上の余裕があることが判る。
【０１８４】
従って、設計者は、周波数を下げることにより、消費電力の削減が可能であると判断することができる。その結果、省エネ対応のＬＳＩ３００ｍとなるように周波数の変更に関する設計変更を行うことができる。
【０１８５】
上述したように、本実施例に係る検証システムでは、ＬＳＩ設計において、シミュレータ又はエミュレータによるソフトウェア及びハードウェアによる協調検証の実施において、ＬＳＩの設計が論理的に正しいことを検証するのみならず、全体の処理時間を測定し、なおかつ、プログラムの個々の部分（機能）の処理を測定し、また、プログラムの個々の部分（機能）の処理に関して、性能要件を満たしているか否かを検証することができる。
【０１８６】
性能要件を満たす、クロック周波数、機能の組み合せ、入力画像サイズなどを探索することができ、設計改善のための情報を得ることが可能となり、ＬＳＩ製造前に性能改善を行うことが可能となる。
【０１８７】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【０１８８】
以上の第１から第６実施例等を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
コンピュータによって実行される設計回路のソフトウェア及びハードウェアによる協調検証方法であって、
前記設計回路の協調検証の開始時に性能要件に基づく計数可能な規定値を規定値レジスタに設定し、
前記協調検証の実施中、前記性能要件に係る前記設計回路の動作をカウントし、
前記カウントしたカウント値と前記規定値レジスタに設定された前記規定値とを比較することによって性能測定を行う
ことを特徴とする協調検証方法。
（付記２）
前記規定値は、前記性能要件で指定される処理時間と、前記設計回路の設計データで示されるクロック周波数とに基づいて算出されたサイクル数であることを特徴とする付記１記載の協調検証方法。
（付記３）
前記設計回路にロードされるプログラムに異なるクロック周波数に基づく複数の規定値を含み、前記協調検証の実施中に、規定値を変更することによって、前記性能要件を満たす該クロック周波数を探索することを特徴とする付記２記載の協調検証方法。
（付記４）
前記規定値は、前記性能要件で指定されるバス占有率と、前記設計回路の設計データで示されるバス動作周波数及び分解能で指定された単位時間あたりのバスサイクル数であることを特徴とする付記１記載の協調検証方法。
（付記５）
前記設計回路にロードされるプログラムに複数の機能の組み合せを含み、前記協調検証の実施中に、該機能の組み合せを変更することによって、前記性能要件を満たす該機能の組み合せを探索することを特徴とする付記１記載の協調検証方法。
（付記６）
前記設計回路にロードされるプログラムに一の機能の組み合せと複数の入力画像サイズとを含み、前記協調検証の実施中に、該入力画像サイズを変更することによって、前記性能要件を満たす該入力画像サイズを探索することを特徴とする付記１記載の協調検証方法。
（付記７）
前記機能の組み合せは、シリアル又はパラレルで実行する組み合せを含むことを特徴とする付記５又は６記載の協調検証方法。
（付記８）
所定時間毎に、前記設計回路におけるバスモニタによる該設計回路のメモリへのread回数及びwrite回数とを結果格納部に格納し、
１６進数で示される前記read回数及びwrite回数を１０進数で示すデータファイルに加工し、
時系列にバス占有状態を表すグラフ図を表示ユニットに表示させる
ことを特徴とする付記１又は４記載の協調検証方法。
（付記９）
設計回路のソフトウェア及びハードウェアによる協調検証を行なう協調検証装置であって、
性能測定部と、結果収集部とを少なくとも有する測定用付加回路を有し、
性能測定部は、
前記設計回路の性能要件に基づく計数可能な規定値が設定される規定値レジスタと、
前記協調検証の実施中、前記性能要件に係る前記設計回路の動作をカウントするカウンタレジスタと、
前記カウンタレジスタの値と前記規定値レジスタに設定された前記規定値とを比較する性能比較部とを有し、
前記結果収集部は、前記性能比較部による結果を格納する結果格納部を有する
ことを特徴とする協調検証装置。
（付記１０）
前記測定用付加回路は、更に、機能検証部を有し、
前記機能検証部は、
前記設計回路によって処理されたデータを入力する入力部と、
前記入力部が入力したデータと期待値データとを比較する機能比較部とを有し、
前記結果収集部は、前記結果格納部に前記機能比較部による結果を格納することを特徴とする付記９記載の協調検証装置。
（付記１１）
前記結果収集部は、前記性能測定部又は前記機能検証部にエラーを検出した場合、前記協調検証を停止させることを特徴とする付記９又は１０記載の協調検証装置。
（付記１２）
前記測定付加回路は、ハードウェア記述言語で記述された回路であることを特徴とする付記９乃至１１記載の協調検証装置。
（付記１３）
前記協調検証装置は、シミュレータ又はエミュレータであることを特徴とする付記９乃至１２記載の協調検証装置。
（付記１４）
前記設計回路のソフトウェア及びハードウェアによる協調検証の開始時に性能要件に基づく計数可能な規定値を規定値レジスタに設定し、
前記協調検証の実施中、前記性能要件に係る前記設計回路の動作をカウントし、
前記カウントしたカウント値と前記規定値レジスタに設定された前記規定値とを比較することによって性能測定を行う
処理をコンピュータに実行させることを特徴とするプログラム。
【符号の説明】
【０１８９】
１            性能要件データ
２            規定値生成部
２ａ          書込処理挿入部
３            プログラム
４            変換部
５            試験プログラム
６            設計データ（検証対象ＬＳＩ）
７            テストベンチ
８            コンパイラ
８ａ          規定値算出データ
８ｂ          規定値算出データ
９            コンパイルＤＢ
１１          ＣＰＵ
１２          メモリユニット
１３          表示ユニット
１４          出力ユニット
１５          入力ユニット
１６          通信ユニット
１７          記憶装置
１８          ドライバ
１９          記憶媒体
３９          規定値設定プログラム
５０          協調検証部
５０ａ−１、５０ｂ−１    協調検証部（シミュレータ）
５０ａ−２、５０ｂ−２    協調検証部（エミュレータ）
５０ｃ−１、５０ｃ−２    協調検証部（シミュレータ又はエミュレータ）
５１          測定用付加回路
５２          性能測定部
５４          結果収集部
５６          機能検証部
５８          期待値データ
９０ｍ        検証対象ＬＳＩ
９１ｍ        ＣＰＵ
９３ｍ        メモリ
５２１        制御部
５２９        性能比較部
５３０        レジスタ部
５３１        開始レジスタＡ
５３２        終了レジスタＡ
５３３        規定値レジスタＡ
５３４        カウンタＡ
５４１        制御部
５５０        結果格納部
５５３        メモリ
５６０        入力部
５６１        制御部
５６２        期待値生成部
５６３        期待値格納メモリ
５６４        期待値比較部
５７０        レジスタ部
５７１        期待値生成用データレジスタＢ
５７２        比較モードレジスタＢ
５７３        比較開始レジスタＢ
５７４        期待値比較エラーレジスタＢ
１０００      検証システム
【図１】
0005909958.tif 000002
【図２】
0005909958.tif 000003
【図３】
0005909958.tif 000004
【図４】
0005909958.tif 000005
【図５】
0005909958.tif 000006
【図６】
0005909958.tif 000007
【図７】
0005909958.tif 000008
【図８】
0005909958.tif 000009
【図９】
0005909958.tif 000010
【図１０】
0005909958.tif 000011
【図１１】
0005909958.tif 000012
【図１２】
0005909958.tif 000013
【図１３】
0005909958.tif 000014
【図１５】
0005909958.tif 000015
【図１７】
0005909958.tif 000016
【図２０】
0005909958.tif 000017
【図２１】
0005909958.tif 000018
【図２２】
0005909958.tif 000019
【図２３】
0005909958.tif 000020
【図２４】
0005909958.tif 000021
【図２５】
0005909958.tif 000022
【図２６】
0005909958.tif 000023
【図１４】
0005909958.tif 000024
【図１６】
0005909958.tif 000025
【図１８】
0005909958.tif 000026
【図１９】
0005909958.tif 000027