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