(57)【要約】【課題】動作レベルシミュレーションの結果とRTLシミュレーションの結果とが一致することを高速に検証する検証システムを提供する。【解決手段】動作レベルシミュレーション制御部220は、データ入力装置100を介して動作レベルシミュレーションモデル、動作レベルテストパタン及びRTL記述を取得し、動作レベルシミュレーション実行部210に動作レベルシミュレーションを実行させる。そして、任意の検証期間毎に動作レベルシミュレーションの結果と内部状態とを読み出し、記憶装置300に分けて記憶させる。次に、検証期間毎に分けて記憶された内部状態を初期値とし、同じく検証期間毎に用いられるよう生成されたテストパタンを用いて、RTLシミュレーション実行部250がRTLシミュレーションを検証期間毎に並列に実行する。期待値照合部270は、動作レベルのシミュレーション結果を期待値として、RTLシミュレーションの結果と期待値との照合を実行する。【選択図】図３
2009230441.tif 000002
【特許請求の範囲】
【請求項１】
検証対象であるハードウェアの動作レベルシミュレーションを、所定のテストパタンが与えられたとの条件の下で実行し、所定の時間長を有する検証期間毎に前記テストパタンを分割するデータ処理手段と、
前記検証期間毎に、当該検証期間の開始時の動作レベルシミュレーションモデルの内部状態を記憶し、当該検証期間毎に、当該検証期間の動作レベルシミュレーション結果を表すデータを記憶する記憶手段と、を備え、
前記データ処理手段は、記憶された内部状態及び分割された前記テストパタンを用いてＲＴＬ（レジスタトランスファーレベル）シミュレーションを実行する処理と、前記動作レベルシミュレーションの結果を期待値として、当該期待値と当該ＲＴＬシミュレーションの結果とを照合し、照合結果を表すデータを生成する処理とを、各検証期間単位で並列実行する、
ことを特徴とする検証システム。
【請求項２】
検証対象であるハードウェアの動作記述からなる動作レベルシミュレーションモデル、動作レベルシミュレーション用のテストパタン、及び当該ハードウェアのＲＴＬ記述を入力する入力手段をさらに備え、
前記記憶手段は、
前記動作レベルシミュレーションの結果を表すデータを、ＲＴＬレベルシミュレーションの結果の期待値を表すデータとして記憶する期待値記憶手段と、
前記動作レベルシミュレーションモデルの内部状態を表すデータを記憶する内部状態記憶手段と、
前記ＲＴＬシミュレーションの結果を表すデータを記憶するＲＴＬシミュレーション結果記憶手段と、より構成されており、
前記データ処理手段は、
前記入力手段が入力した動作レベルシミュレーションモデルの、複数の検証期間からなる期間における動作について、前記入力手段が入力した動作レベルシミュレーション用のテストパタンが与えられたものとして動作レベルシミュレーションを実行し、当該動作レベルシミュレーションの結果を表すデータ、及び前記動作レベルシミュレーションモデルの内部状態を表すデータを、前記検証期間毎に生成する動作レベルシミュレーション実行手段と、
動作レベルシミュレーション用のテストパタンを前記検証期間別に分割することによりＲＴＬシミュレーション用の検証期間別のテストパタンを生成するＲＴＬテストパタン生成手段と、
前記入力手段が入力したＲＴＬ記述の各前記検証期間における動作について、前記動作レベルシミュレーションモデルの内部状態を表すデータにより特定される初期条件の下で前記検証期間別のテストパタンが与えられたものとして、前記検証期間毎に並行してＲＴＬシミュレーションを実行して、当該ＲＴＬシミュレーションの結果を表すデータを前記検証期間毎に生成するＲＴＬシミュレーション実行手段と、
前記期待値記憶手段が記憶するデータが表す期待値と、前記ＲＴＬシミュレーションの結果とを前記検証期間毎に照合し、照合結果を表すデータを出力する期待値照合手段と、より構成されている、
ことを特徴とする請求項１に記載の検証システム。
【請求項３】
各前記検証期間の時間長は、互いに均等なサイクル数に固定されるように区切られていることを特徴とする請求項１又は２に記載の検証システム。
【請求項４】
各前記検証期間の時間長は、各該検証区間の動作レベルシミュレーションに要する実行時間が互いに均等になるように区切られていることを特徴とする請求項１又は２に記載の検証システム。
【請求項５】
各前記検証期間の時間長は、動作レベルシミュレーションを行うことによる前記動作レベルシミュレーションモデルの内部状態の変化量が、各該検証区間につき互いに均等になるように区切られていることを特徴とする請求項１又は２に記載の検証システム。
【請求項６】
前記データ処理手段は、互いに連続する検証期間についての前記ＲＴＬシミュレーションを連続して実行することを特徴とする請求項１又は２に記載の検証システム。
【請求項７】
検証対象であるハードウェアの動作レベルシミュレーションを、所定のテストパタンが与えられたとの条件の下で実行し、所定の時間長を有する検証期間毎に前記テストパタンを分割する動作レベルシミュレーション手段と、
前記動作レベルシミュレーションモデルの内部状態及び分割された前記テストパタンを用いてＲＴＬ（レジスタトランスファーレベル）シミュレーションを実行する処理と、前記動作レベルシミュレーションの結果を期待値として、当該期待値と当該ＲＴＬシミュレーションの結果とを照合し、照合結果を表すデータを生成する処理とを、各検証期間単位で並列実行するＲＴＬシミュレーション手段と、
より構成されていることを特徴とする検証装置。
【請求項８】
前記動作レベルシミュレーション手段は、
検証対象であるハードウェアの動作記述からなる動作レベルシミュレーションモデル、及び動作レベルシミュレーション用のテストパタンを取得し、当該動作レベルシミュレーションモデルの、複数の検証期間からなる期間における動作について、当該動作レベルシミュレーション用のテストパタンが与えられたものとして動作レベルシミュレーションを実行し、当該動作レベルシミュレーションの結果を表すデータ、及び前記動作レベルシミュレーションモデルの内部状態を表すデータを、前記検証期間毎に生成する手段と、
動作レベルシミュレーション用のテストパタンを前記検証期間別に分割することによりＲＴＬシミュレーション用の検証期間別のテストパタンを生成する手段と、より構成されており、
前記ＲＴＬシミュレーション手段は、
前記前記ハードウェアのＲＴＬ記述を取得し、当該ＲＴＬ記述の各前記検証期間における動作について、前記動作レベルシミュレーションモデルの内部状態を表すデータにより特定される初期条件の下で前記検証期間別のテストパタンが与えられたものとして、前記検証期間毎に並行してＲＴＬシミュレーションを実行して、当該ＲＴＬシミュレーションの結果を表すデータを前記検証期間毎に生成する手段と、
前記動作レベルシミュレーションの結果を表すデータを期待値として、当該期待値と、前記ＲＴＬシミュレーションの結果とを前記検証期間毎に照合し、照合結果を表すデータを出力する手段と、より構成されている、
ことを特徴とする請求項７に記載の検証装置。
【請求項９】
検証対象であるハードウェアの動作レベルシミュレーションを、所定のテストパタンが与えられたとの条件の下で実行し、所定の時間長を有する検証期間毎に前記テストパタンを分割し、
前記検証期間毎に、当該検証期間の開始時の動作レベルシミュレーションモデルの内部状態を記憶し、当該検証期間毎に、当該検証期間の動作レベルシミュレーション結果を表すデータを記憶し、
記憶された内部状態及び分割された前記テストパタンを用いてＲＴＬ（レジスタトランスファーレベル）シミュレーションを実行する処理と、前記動作レベルシミュレーションの結果を期待値として、当該期待値と当該ＲＴＬシミュレーションの結果とを照合し、照合結果を表すデータを生成する処理とを、各検証期間単位で並列実行する、
ことを特徴とする検証方法。
【請求項１０】
検証対象であるハードウェアの動作記述からなる動作レベルシミュレーションモデル、動作レベルシミュレーション用のテストパタン、及び当該ハードウェアのＲＴＬ記述を入力し、
入力した動作レベルシミュレーションモデルの、複数の検証期間からなる期間における動作について、前記入力手段が入力した動作レベルシミュレーション用のテストパタンが与えられたものとして動作レベルシミュレーションを実行し、当該動作レベルシミュレーションの結果を表すデータ、及び前記動作レベルシミュレーションモデルの内部状態を表すデータを、前記検証期間毎に生成し、
前記動作レベルシミュレーションの結果を表すデータを、ＲＴＬレベルシミュレーションの結果の期待値を表すデータとして記憶し、
前記動作レベルシミュレーションモデルの内部状態を表すデータを記憶し、
動作レベルシミュレーション用のテストパタンを前記検証期間別に分割することによりＲＴＬシミュレーション用の検証期間別のテストパタンを生成し、
入力したＲＴＬ記述の各前記検証期間における動作について、前記動作レベルシミュレーションモデルの内部状態を表すデータにより特定される初期条件の下で前記検証期間別のテストパタンが与えられたものとして、前記検証期間毎に並行してＲＴＬシミュレーションを実行して、当該ＲＴＬシミュレーションの結果を表すデータを前記検証期間毎に生成し、
前記ＲＴＬシミュレーションの結果を表すデータを記憶し、
記憶された期待値と、前記ＲＴＬシミュレーションの結果とを前記検証期間毎に照合し、照合結果を表すデータを出力する、
ことを特徴とする請求項９に記載の検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動作レベルのモデルとレジスタ転送レベルの回路の動作の一致の検証を高速化する検証システム、装置及び方法に関する。
【背景技術】
【０００２】
システムＬＳｉ（大規模集積回路）は、その大規模化に伴い、その設計、検証が抽象度の高いレベルで行われることが一般的になりつつある。設計対象であるシステムＬＳｉの動作をＣ／Ｃ＋＋言語などの手続き型言語で記述したデータ（動作記述）を用いて設計対象の動作を時間の概念を用いずに検証する動作レベルや、クロックサイクルの概念までは意識して検証を行うサイクル精度レベルなど、抽象度の高いレベルでのシミュレーションを行う手法は、大規模なシステムＬＳｉの機能を高速に検証する手法であるといえる。
【０００３】
一方、動作記述に基づいて、動作記述より抽象度の低いレジスタトランスファーレベルの記述（ＲＴＬ記述）を自動生成する動作合成ツールも徐々に広まりつつある。ＲＴＬ記述は、動作記述が表す動作を実現するハードウェアの構成を記述するデータである。
【０００４】
動作レベルなど、抽象度の高いレベルで設計対象の動作のシミュレーションを行った後で、その結果を、抽象度が低いＲＴＬ記述へと反映させていく作業は、このような動作合成ツール、または人手作業に頼ることになる。その場合、動作合成ツールの不具合や、人手作業による誤りの心配があるために、ＲＴＬで再度シミュレーションを行うことが多い。
【特許文献１】特開２００２−３５８３４２号公報
【特許文献２】特開２００４−１４５７１２号公報
【特許文献３】特開２００５−０４３１１７号公報
【特許文献４】特開２００５−１７２５４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、動作合成ツールまたは人手作業によって生成されたＲＴＬ記述が正しいかどうかを検証するために行うＲＴＬシミュレーションは、動作レベルシミュレーションと比較して、膨大な時間を要するという問題があった。
【０００６】
本発明の目的は、上記のような問題点を除去して、動作レベルシミュレーションの結果とＲＴＬシミュレーションの結果とが一致することを高速に検証するための検証システム、装置及び方法を提供することである。
【課題を解決するための手段】
【０００７】
上記目的を達するため、本発明の第１の観点に係る検証システムは、
検証対象であるハードウェアの動作レベルシミュレーションを、所定のテストパタンが与えられたとの条件の下で実行し、所定の時間長を有する検証期間毎に前記テストパタンを分割するデータ処理手段と、
前記検証期間毎に、当該検証期間の開始時の動作レベルシミュレーションモデルの内部状態を記憶し、当該検証期間毎に、当該検証期間の動作レベルシミュレーション結果を表すデータを記憶する記憶手段と、を備え、
前記データ処理手段は、記憶された内部状態及び分割された前記テストパタンを用いてＲＴＬ（レジスタトランスファーレベル）シミュレーションを実行する処理と、前記動作レベルシミュレーションの結果を期待値として、当該期待値と当該ＲＴＬシミュレーションの結果とを照合し、照合結果を表すデータを生成する処理とを、各検証期間単位で並列実行する、
ことを特徴とする。
【０００８】
また、本発明の第２の観点に係る検証装置は、
検証対象であるハードウェアの動作レベルシミュレーションを、所定のテストパタンが与えられたとの条件の下で実行し、所定の時間長を有する検証期間毎に前記テストパタンを分割する動作レベルシミュレーション手段と、
前記動作レベルシミュレーションモデルの内部状態及び分割された前記テストパタンを用いてＲＴＬ（レジスタトランスファーレベル）シミュレーションを実行する処理と、前記動作レベルシミュレーションの結果を期待値として、当該期待値と当該ＲＴＬシミュレーションの結果とを照合し、照合結果を表すデータを生成する処理とを、各検証期間単位で並列実行するＲＴＬシミュレーション手段と、
より構成されていることを特徴とする。
【０００９】
また、本発明の第３の観点に係る検証方法は、
検証対象であるハードウェアの動作レベルシミュレーションを、所定のテストパタンが与えられたとの条件の下で実行し、所定の時間長を有する検証期間毎に前記テストパタンを分割し、
前記検証期間毎に、当該検証期間の開始時の動作レベルシミュレーションモデルの内部状態を記憶し、当該検証期間毎に、当該検証期間の動作レベルシミュレーション結果を表すデータを記憶し、
記憶された内部状態及び分割された前記テストパタンを用いてＲＴＬ（レジスタトランスファーレベル）シミュレーションを実行する処理と、前記動作レベルシミュレーションの結果を期待値として、当該期待値と当該ＲＴＬシミュレーションの結果とを照合し、照合結果を表すデータを生成する処理とを、各検証期間単位で並列実行する、
ことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、動作レベルシミュレーションの結果とＲＴＬシミュレーションの結果との照合を高速に並列処理することが可能になるという効果が生じる。これによって、大規模なシステムＬＳｉの検証を抽象度の高い動作レベルで行うことにより検証時間を短縮すると共に、動作レベルでの検証結果に基づいて行うＲＴＬ記述の検証をも高速化することが可能になり、設計フロー全体の検証時間が大幅に短縮される。
【発明を実施するための最良の形態】
【００１１】
次に、本発明を実施するための最良の形態を、図面を参照して詳細に説明する。
（第１の実施の形態）
本発明の第１の実施の形態に係るシステムは、例えば図１に示すように、データ処理装置２００と、これに接続された記憶装置３００から構成されている。
【００１２】
データ処理装置２００は、例えばＣＰＵ（Central Processing Unit）などのプロセッサと、ＲＡＭ（Random Access Memory）など、プロセッサのワークエリアを提供するためのメモリとから構成されている。
記憶装置３００は、例えばハードディスク装置などの不揮発性メモリより構成されている。
【００１３】
次に、図１のシステムの動作を、図２を参照して説明する。
まず、データ処理装置２００は、動作レベルシミュレーションモデルを記述するデータと、動作レベルシミュレーション用のパタン（テストパタン）と、当該動作レベルシミュレーションモデルの内部状態の対応情報を外部より取得する（図２、ステップＡ１）。
【００１４】
動作レベルシミュレーションモデルは、シミュレーションの対象であるハードウェア（ＬＳｉ等）の動作を記述したデータ（動作記述）からなるものである。動作レベルシミュレーションモデルの記述には、例えばＣあるいはＣ＋＋等のプログラミング言語が用いられる。
【００１５】
また、動作レベルシミュレーション用のパタンは、動作レベルでのシミュレーションを行うに際して、シミュレーションの対象であるハードウェアへ供給すると想定する入力信号の波形ないし状態遷移等の条件を記述するデータである。
なお、動作レベルシミュレーション用のパタンは、動作レベルでのシミュレーションの対象である一定の期間について上記の条件を記述するものである。この期間は、連続する複数の検証期間からなっており、後述するように本システムは、それぞれの検証期間についてさらにＲＴＬシミュレーションを行うものである。
【００１６】
また、動作レベルシミュレーションモデルの内部状態の対応情報とは、当該動作レベルシミュレーションモデルを構成するそれぞれの変数がＲＴＬ記述（シミュレーションの対象であるハードウェアの、レジスタトランスファーレベルにおける記述）を構成するどのレジスタの値に対応するか、また、当該動作レベルシミュレーションモデルの内部状態が、ＲＴＬ記述におけるどのような内部状態に対応するか、を示す情報である。
【００１７】
これらのデータを取得したデータ処理装置２００は、取得した動作レベルシミュレーションモデルが表すハードウェアについて、取得したパタンに従った入力信号等が与えられたとの条件の下で、動作レベルでのシミュレーションを実行する。
【００１８】
そして、動作レベルでのシミュレーションが１個の検証期間について終了する毎に、データ処理装置２００は、当該検証期間の終了時点における動作レベルシミュレーションモデルの内部状態を表すデータを、あらかじめ取得した対応情報に基づき、これに対応するＲＴＬ記述の内部状態を示すデータへと変換し、記憶装置３００に記録する（ステップＡ２）。
なお、動作レベルシミュレーションモデルの内部状態は、たとえば当該モデルを構成する各パラメータの値ないし状態により定義される。（具体的には、例えば動作レベルシミュレーションモデルの各ノードの電圧及び電流などの値による。）
【００１９】
また、ステップＡ２でデータ処理装置２００は、動作レベルでのシミュレーションが１個の検証期間について終了する毎に、その検証期間における動作レベルでのシミュレーション結果を、その検証期間についてのＲＴＬシミュレーションの結果の期待値であるものとして記憶装置３００へ記録する。
【００２０】
一方、ステップＡ３で、データ処理装置２００は、動作レベルシミュレーション用のテストパタンを検証期間単位で切り分けることにより、ＲＴＬシミュレーション用のテストパタン（ＲＴＬテストパタン）を生成する。そして、得られたＲＴＬテストパタンを記憶装置３００へ記録する。
次に、データ処理装置２００は、ステップＡ２で動作レベルでのシミュレーションの対象としたハードウェアのＲＴＬ記述を取得する（ステップＡ４）。ただし、ＲＴＬ記述はステップＡ２より前の段階、たとえばステップＡ１の段階で取得していてもよい。
【００２１】
そして、ステップＡ４でデータ処理装置２００は、記憶装置３００より、各検証期間で用いるＲＴＬテストパタンと、各検証期間について動作レベルシミュレーションモデルの内部状態を表すデータとを取り出し、これらのデータに基づいて、それぞれの検証期間につき、ＲＴＬシミュレーションを実行する。
【００２２】
なお、データ処理装置２００は、検証期間単位で複数のＲＴＬシミュレーションを独立に実行可能に構成されており、複数のＲＴＬシミュレーションを並列に実行する。
また、１個の検証期間の終了時点における動作レベルシミュレーションモデルの内部状態は、ＲＴＬシミュレーションにおいて、その検証期間に後続する検証期間についてのＲＴＬシミュレーションの初期値として用いる。
【００２３】
データ処理装置２００は、それぞれの検証期間について、シミュレーションの実行が完了すると、シミュレーションの実行結果を表すデータを記憶装置３００へ記録する。
【００２４】
次に、データ処理装置２００は、検証期間毎のＲＴＬシミュレーションの結果を表すデータと、検証期間毎のＲＴＬシミュレーション結果の期待値とを読み出す。そして、読み出した結果とその期待値との照合を行う（ステップＡ５）。すなわち、ＲＴＬシミュレーションの結果とその期待値との異同を検証期間毎に判別する。そして、照合の結果を表すデータを生成し、出力する。
【００２５】
（第２の実施の形態）
本発明の第２の実施の形態に係るシステムは、例えば図３に示すように、データ入力装置１００と、データ処理装置２００と、記憶装置３００と、出力装置４００とから構成されている。データ処理装置２００は、データ入力装置１００、記憶装置３００及び出力装置４００に接続されている。
【００２６】
データ入力装置１００は、例えば図３に示すように、動作レベルシミュレーションモデル入力装置１１０と、動作レベルテストパタン入力装置１２０と、ＲＴＬ（レジスタトランスファーレベル）記述入力装置１３０と、内部状態対応情報入力装置１４０とより構成されている。
【００２７】
動作レベルシミュレーションモデル入力装置１１０、動作レベルテストパタン入力装置１２０、ＲＴＬ記述入力装置１３０及び内部状態対応情報入力装置１４０はそれぞれ、例えばハードディスク装置やＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）等の記録媒体からデータを読みとってデータ出力装置２００へと供給する記録媒体ドライブ装置、外部からデータを取得してデータ出力装置２００へと供給するＵＳＢ（Universal Serial Bus）等のインターフェース回路、あるいは、操作者の操作に従ったデータをデータ出力装置２００へと供給するキーボード等からなる入力デバイスから構成されている。
【００２８】
本実施形態のデータ処理装置２００は、例えば図３に示すように、動作レベルシミュレーション実行部２１０と、動作レベルシミュレーション制御部２２０と、期待値処理部２３０と、ＲＴＬテストパタン生成部２４０と、ＲＴＬシミュレーション実行部２５０と、ＲＴＬシミュレーション制御部２６０と、期待値照合部２７０とを含む。
【００２９】
動作レベルシミュレーション実行部２１０、動作レベルシミュレーション制御部２２０、期待値処理部２３０、ＲＴＬテストパタン生成部２４０、ＲＴＬシミュレーション実行部２５０と、ＲＴＬシミュレーション制御部２６０及び期待値照合部２７０はそれぞれ、例えばプロセッサと、プロセッサのワークエリアを提供するためのメモリとから構成されている。（なお、１個のプロセッサあるいは１個のメモリが、動作レベルシミュレーション実行部２１０、動作レベルシミュレーション制御部２２０、期待値処理部２３０、ＲＴＬテストパタン生成部２４０、ＲＴＬシミュレーション実行部２５０と、ＲＴＬシミュレーション制御部２６０及び期待値照合部２７０のうち２個以上の機能を行う構成をとることは差し支えない。）
【００３０】
本実施形態の記憶装置３００は、図３に示すように、期待値記憶部３１０と、内部状態記憶部３２０と、ＲＴＬテストパタン記憶部３３０と、ＲＴＬシミュレーション結果記憶部３４０とを含む。
【００３１】
期待値記憶部３１０、内部状態記憶部３２０、ＲＴＬテストパタン記憶部３３０及びＲＴＬシミュレーション結果記憶部３４０はそれぞれ、例えばハードディスク装置などの不揮発性メモリより構成されている。（なお、１個の不揮発性メモリが、期待値記憶部３１０、内部状態記憶部３２０、ＲＴＬテストパタン記憶部３３０及びＲＴＬシミュレーション結果記憶部３４０のうち２個以上の機能を行う構成をとることは差し支えない。）
【００３２】
出力装置４００は、例えば、データ処理装置２００から供給されたデータを記録媒体に記録する記録媒体ドライブ装置や、ＵＳＢ等のインターフェース回路、あるいは、液晶ディスプレイ等の表示デバイスから構成されている。
【００３３】
次に、図４を参照して、図３の構成の動作を説明する。
まず、動作レベルシミュレーション制御部２２０は、動作レベルシミュレーションモデル入力装置１１０を介して、動作レベルシミュレーションモデルを記述するデータを取得する（図４、ステップＡ１）。
【００３４】
また、ステップＡ１において動作レベルシミュレーション制御部２２０は、動作レベルテストパタン入力装置１２０を介して動作レベルシミュレーション用のパタン（テストパタン）を取得し、動作レベルシミュレーション実行部２１０に供給する。
動作レベルシミュレーション実行部２１０は、自己に供給された動作レベルシミュレーションモデルが表すハードウェアについて、自己に供給されたパタンに従った入力信号等が与えられたとの条件の下で、動作レベルでのシミュレーションを実行する。
【００３５】
そして、動作レベルでのシミュレーションが１個の検証期間について終了する毎に、動作レベルシミュレーション制御部２２０は、以下述べる（ａ）〜（ｃ）の動作を行う（ステップＡ２）。
（ａ）  動作レベルシミュレーション実行部２１０から、動作レベルシミュレーションモデルの、当該検証期間の終了時点における内部状態を表すデータを読み出す。なお、動作レベルシミュレーションモデルの内部状態は、当該モデルを構成する各変数の値ないし状態により定義される。（具体的には、例えば動作レベルシミュレーションモデルの各ノードの電圧及び電流などの値による。）
（ｂ）  当該動作レベルシミュレーションモデルの内部状態の対応情報を取得する。ただし、内部状態の対応情報は、ステップＡ２より前の段階で取得してもよい。
（ｃ）  取得した対応情報に基づき、動作レベルシミュレーションモデルの内部状態を示すデータを、これに対応するＲＴＬ記述の内部状態を示すデータへと変換し、変換により得られたこのデータを内部状態記憶部３２０に記録する。
【００３６】
また、ステップＡ２では、期待値処理部２３０が、動作レベルでのシミュレーションが１個の検証期間について終了する毎に、その検証期間における動作レベルでのシミュレーション結果として動作レベルシミュレーション実行部２１０から読み出されたデータを、その検証期間についてのＲＴＬシミュレーションの結果の期待値を示すデータとして、期待値記憶部３１０へ記録する。
【００３７】
一方、ステップＡ３で、ＲＴＬテストパタン生成部２４０は、動作レベルシミュレーション用のテストパタンを検証期間単位で切り分けることにより、ＲＴＬテストパタンを生成する。そして、得られたＲＴＬテストパタンをＲＴＬテストパタン記憶部３３０へ記録する。
【００３８】
次に、ＲＴＬシミュレーション制御部２６０は、ＲＴＬ記述入力装置１３０を介して、ステップＡ２で動作レベルでのシミュレーションの対象としたハードウェアのＲＴＬ記述を取得する（ステップＡ４）。
また、ステップＡ４でＲＴＬシミュレーション制御部２６０は、ＲＴＬテストパタン記憶部３３０より各検証期間で用いるＲＴＬテストパタンを取り出し、内部状態記憶部３２０からは、各検証期間について動作レベルシミュレーションの結果である内部状態を表すデータを取り出す。そして、これらのデータをＲＴＬシミュレーション実行部２５０へ与える。１個の検証期間の終了時点における動作レベルシミュレーションモデルの内部状態は、その検証期間に後続する検証期間についてのＲＴＬシミュレーションの初期値として、ＲＴＬシミュレーションで用いられるものである。
【００３９】
ＲＴＬシミュレーション実行部２５０は、与えられたデータに基づいて、それぞれの検証期間につき、ＲＴＬシミュレーションを実行する。なお、ＲＴＬシミュレーション実行部２５０は、検証期間単位で複数のＲＴＬシミュレーションを独立に実行可能に構成されており、複数のＲＴＬシミュレーションを並列に実行する。
【００４０】
ＲＴＬシミュレーション実行部２５０は、それぞれの検証期間について、シミュレーションの実行が完了すると、シミュレーションの実行結果を表すデータをＲＴＬシミュレーション結果記憶部３４０へ記録する。
【００４１】
次に、期待値照合部２７０は、検証期間毎のＲＴＬシミュレーションの結果を表すデータをＲＴＬシミュレーション結果記憶部３４０から読み出し、また、期待値記憶部３１０から検証期間毎のＲＴＬシミュレーション結果の期待値を読み出す。そして、読み出した結果とその期待値との照合を行う（ステップＡ５）。そして、照合の結果を表すデータを生成し、出力装置４００を介して出力する。
【００４２】
次に、図４で示した流れ図のうちステップＡ２、Ａ３に相当する部分の詳細の例を、図５を参照して説明する。
【００４３】
ステップＡ２に相当する部分に入り、動作レベルシミュレーションが開始されると（図５、ステップＳ１〜Ｓ２）、動作レベルシミュレーション制御部２２０は、動作レベルシミュレーションの途中の内部状態を検証期間毎にサンプルしてＲＴＬシミュレーション用のデータを集める。
２個の連続する検証期間のうち先行する方の検証期間の終了時点における動作レベルシミュレーションの結果である内部状態は、後続する方の検証期間の開始時点における動作レベルシミュレーションの初期状態に相当する。従ってたとえば、各検証期間に先頭の検証期間を０番目として０から順番にＩＤ（識別番号）が付されているものとし、動作レベルシミュレーション開始時点の動作レベルシミュレーションモデルの内部状態の初期値をＳ０とし、ｉ番目（ｉはいずれかのＩＤ）の検証期間終了時点の内部状態をＳｉ＋１とすれば、Ｓｉ＋１は、（ｉ＋１）番目の検証期間における内部状態の初期値である。
【００４４】
そして、動作レベルシミュレーション制御部２２０は、検証期間１個分の動作レベルシミュレーションが終わる毎に、その検証期間で用いたテストパタンＴｉ、動作レベルシミュレーションの結果Ｖｉ、動作レベルシミュレーションモデルの内部状態Ｓｉ＋１を記録する（ステップＳ３〜Ｓ４。なお、ｉ番目の検証期間に動作レベルシミュレーションモデルに入力として与えたテストパタンをＴｉとし、ｉ番目の検証期間についての動作レベルシミュレーションの結果をＶｉとする）。動作レベルシミュレーション制御部２２０はこの処理を、動作レベルシミュレーションの全期間が終了するまで、各検証期間について行う（ステップＳ５〜Ｓ６）。
【００４５】
次に、図４で示した流れ図のうちステップＡ４、Ａ５に相当する部分の詳細の例を、図６を参照して説明する。
【００４６】
ＲＴＬシミュレーション実行部２５０は、たとえばｉ番目の検証期間につき、動作レベルシミュレーションモデルの内部状態Ｓｉ、テストパタンＴｉ、動作レベルシミュレーションの結果Ｖｉからなるパラメータのセット（Ｓｉ， Ｔｉ， Ｖｉ）を与えられると、このセットに基づいて、ｉ番目の検証期間につきＲＴＬシミュレーションを実行し（図６、ステップＳ８）、期待値照合部２７０は、結果と期待値Ｖｉとの照合を行う（ステップＳ９〜Ｓ１０）。そして、結果と期待値との不一致がある検証期間があると判別した場合は、その旨を示すデータを出力装置４００を介して出力する等して、動作を終了する。
【００４７】
ＲＴＬシミュレーション実行部２５０は上述の通り、複数のＲＴＬシミュレーションを、検証期間単位で並行して独立に実行できるよう構成されている。また、期待値照合部２７０は、期待値との照合を検証期間単位で並行して独立に実行できるよう構成されている。
そしてＲＴＬシミュレーション制御部２６０は、例えばＲＴＬシミュレーション実行部２５０がＲＴＬシミュレーションを最大ｋ個（ｋは自然数）独立に実行可能であるとすれば、ＲＴＬシミュレーションが未だ実行されていない検証期間のうち最大ｋ個を選択し、選択した検証期間のそれぞれについてのパラメータのセットをＲＴＬシミュレーション実行部２５０に与えることにより、最大ｋ個のＲＴＬシミュレーションを実行させる（ステップＳ７）。複数の検証期間についてのＲＴＬシミュレーションが並列に行われる結果、ＲＴＬシミュレーションの結果が期待値と一致するか否かの検証を高速化することが可能になる。
【００４８】
このようにＲＴＬシミュレーション制御部２６０は、ＲＴＬシミュレーションが終わり次第、新たな検証期間についてのパラメータのセットをＲＴＬシミュレーションにかけるという処理を、すべての検証期間についてのＲＴＬシミュレーションが終了するまで繰り返す（ステップＳ１１）。
【００４９】
すべての検証期間に対してＲＴＬシミュレーションが実行され、いずれの検証期間についてもシミュレーション結果とその期待値（ｉ番目の検証期間についての期待値はＶｉである）と一致したときには、動作レベルシミュレーションモデルのシミュレーション結果とＲＴＬシミュレーションの結果が一致したことになる。この場合、期待値照合部２７０は、すべての検証期間についてＲＴＬシミュレーションの結果とその期待値とが一致した旨を示すデータを出力装置４００を介して出力する等して、動作を終了する。
【００５０】
なお、本システムの構成は上述のものに限られない。
たとえば、各検証期間の時間長は、各検証期間の動作レベルシミュレーションに要する実行時間が互いに均等になるように区切られていてもよい。各検証期間がそのように区切られていることにより、各検証期間についてのＲＴＬシミュレーションに要する実行時間もほぼ均等になることが予測され、ＲＴＬシミュレーションの効率化が期待できる。
【００５１】
各検証期間の動作レベルシミュレーションに要する実行時間が互いに均等になるように区切る手法としては、たとえば、各検証期間が互いに均等なサイクル（クロックサイクル）数に固定されるように区切る手法や、あるいは、各検証期間の時間長は、動作レベルシミュレーションを行うことによる動作レベルシミュレーションモデルの内部状態の変化量（具体的には、たとえば内部状態を示す所定のパラメータの変化量など）が、各検証区間につき互いに均等になるように区切る手法が考えられる。
【００５２】
また、ＲＴＬシミュレーション制御部２６０は、ＲＴＬシミュレーション実行部２５０に、互いに連続する２個の検証期間についてのＲＴＬシミュレーションを連続して実行させるように、パラメータのセットを与えるものとしてもよい。
たとえば、ＲＴＬシミュレーション実行部２５０がＲＴＬシミュレーションを互いに並行して実行できるｋ個のタスクを提供するものとして、ＲＴＬシミュレーション実行部２５０は、連続する２個の検証期間のうち先行する方についてのＲＴＬシミュレーションをｊ番目（ｊはｋ以下の自然数）のタスクに実行させた場合、後続する検証期間についてのＲＴＬシミュレーションについても、ｊ番目のタスクに実行させるようにしてもよい。
【００５３】
以上、この発明の実施の形態を説明したが、この発明にかかる検証システム及び装置は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。
例えば、入出力インターフェース回路を備えたパーソナルコンピュータに上述のデータ入力装置１００、データ処理装置２００、記憶装置３００及び出力装置４００の動作を実行させるためのプログラムを格納した記録媒体（ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等）から該プログラムをインストールすることにより、上述の処理を実行するシステムを構成することができる。
【００５４】
また、例えば、通信回線の掲示板（ＢＢＳ）に該プログラムをアップロードし、これを通信回線を介して配信してもよく、また、該プログラムを表す信号により搬送波を変調し、得られた変調波を伝送し、この変調波を受信した装置が変調波を復調して該プログラムを復元するようにしてもよい。
そして、該プログラムを起動し、ＯＳの制御下に、他のアプリケーションプログラムと同様に実行することにより、上述の処理を実行することができる。
【００５５】
なお、ＯＳが処理の一部を分担する場合、あるいは、ＯＳが本願発明の１つの構成要素の一部を構成するような場合には、記録媒体には、その部分を除いたプログラムを格納してもよい。この場合も、この発明では、その記録媒体には、コンピュータが実行する各機能又はステップを実行するためのプログラムが格納されているものとする。
【図面の簡単な説明】
【００５６】
【図１】本発明の第１の実施の形態の構成を示すブロック図。
【図２】本発明の第１の実施の形態の処理を示す流れ図。
【図３】本発明の第２の実施の形態の構成を示すブロック図。
【図４】本発明の第２の実施の形態の処理を示す流れ図。
【図５】本発明の第２の実施の形態の処理のステップＡ２，Ａ３の詳細を示す流れ図。
【図６】本発明の第２の実施の形態の処理のステップＡ４，Ａ５の詳細を示す流れ図。
【符号の説明】
【００５７】
１００  データ入力装置
１１０  動作レベルシミュレーションモデル入力装置
１２０  動作レベルテストパタン入力装置
１３０  ＲＴＬ記述入力装置
１４０  内部状態対応情報入力装置
２００  データ処理装置
２１０  動作レベルシミュレーション実行部
２２０  動作レベルシミュレーション制御部
２３０  期待値処理部
２４０  ＲＴＬテストパタン生成部
２５０  ＲＴＬシミュレーション実行部
２６０  ＲＴＬシミュレーション制御部
２７０  期待値照合部
３００  記憶装置
３１０  期待値記憶部
３２０  内部状態記憶部
３３０  ＲＴＬテストパタン記憶部
３４０  ＲＴＬシミュレーション結果記憶部
４００  出力装置
【図１】
2009230441.tif 000003
【図２】
2009230441.tif 000004
【図３】
2009230441.tif 000005
【図４】
2009230441.tif 000006
【図５】
2009230441.tif 000007
【図６】
2009230441.tif 000008