(57)【要約】【課題】  論理回路の機能を論理シミュレータで検証するにあたり、短時間でかつ簡単に精度よく機能検証時間を予測することができる機能検証時間予測方法を提供する。【解決手段】  第１ステップＳ１において論理シミュレータにランダム入力パターンを与えて論理回路に入力される第１の入力イベント数と機能検証に要した第１の時間とを求め、第２ステップＳ２において論理回路の機能検証用に用意された検証用入力パターンを論理回路の機能検証は停止した状態のまま論理回路に入力される第２の入力イベント数を求め、第３ステップＳ３において第１の入力イベント数，第１の時間，第２の入力イベント数に基づいて、検証用入力パターンを論理シミュレータに与えて論理回路の機能検証を行なった場合に要する第２の時間を予測し、第４ステップＳ４において機能検証を実際に行なっている途中で、途中までの論理回路に入力された入力イベント数と途中までの機能検証に要した実時間とに基づいて第２の時間を修正する。【選択図】        図２
2005234807.tif 000002
【特許請求の範囲】
【請求項１】
論理回路の機能を検証する論理シミュレータにランダムあるいは擬似ランダムに変化するランダム入力パターンを与えて該論理回路の機能検証を行なったときの該論理回路に入力される第１の入力イベント数と該機能検証に要した第１の時間とを求める第１ステップと、
前記論理回路の機能検証用に用意された検証用入力パターンを前記論理回路の機能検証は停止した状態のまま前記論理シミュレータに与えたときの該論理回路に入力される第２の入力イベント数を求める第２ステップと、
前記第１ステップおよび前記第２ステップで求めた前記第１の入力イベント数、前記第１の時間、および前記第２の入力イベント数に基づいて、前記検証用入力パターンを前記論理シミュレータに与えて前記論理回路の機能検証を行なった場合に要する第２の時間を予測する第３ステップとを有することを特徴とする機能検証時間予測方法。
【請求項２】
前記検証用入力パターンを前記論理シミュレータに与えて前記論理回路の機能検証を実際に行なっている途中で、該途中までの該論理回路に入力された入力イベント数と該途中までの機能検証に要した実時間とに基づいて前記第２の時間を修正する第４ステップを有することを特徴とする請求項１記載の機能検証時間予測方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理回路の機能検証時間を予測する機能検証時間予測方法に関する。
【背景技術】
【０００２】
従来より、半導体集積回路に組み込まれる論理回路をコンピュータ装置上で模擬的に動作させて、その論理回路の機能を検証する論理シミュレータがいくつか提案されている。例えば、設計対象となる論理ゲートの遅延時間よりも短い幅のパルス（スパイク）の発生を防止して、不定値が出力されないように工夫した論理シミュレータが提案されている（特許文献１参照）。また、論理シミュレーション中に得られるスパイクメッセージを活用して、誤動作する可能性のある論理回路を検出する論理シミュレータも提案されている（特許文献２参照）。さらに、フリップフロップ等に入力されるクロック信号とデータ信号とのタイミングずれによるタイミングエラーを検出する論理シミュレータも提案されている（特許文献３参照）。
【０００３】
このような論理シミュレータで論理回路の機能を検証するにあたり、その論理シミュレータには、論理回路を構成する素子間の接続情報（ネットリスト）である回路データ、およびその論理回路の機能検証用に用意された検証用入力パターン（テストパターン）が与えられる。一般に、論理シミュレーションは、ネットワークに接続された複数のワークステーションやサーバのリソース（ＣＰＵ数やメモリ容量等）をまとめて利用することができる設備環境としてのコンピュータファーム上で実行される。ここで、１つの論理回路に対して、複数のテストパターンが与えられる場合がある。このような場合、論理シミュレーションを実行する前に、対象となる論理回路の規模や論理シミュレータの性能等に基づいて、どのくらいの実行時間になるかを経験的に概算しておき、コンピュータファームを構成するワークステーションやサーバに対して、論理シミュレーションを実行するためのジョブの総実行時間が均一になるように、概算した実行時間に基づいてスケジューリングすることで、総検証時間を短縮するということが行なわれている。
【０００４】
また、論理回路の機能検証にあたり、その論理回路内部のネット状態が論理‘０’であるのかあるいは論理‘１’であるのかを知るために、論理シミュレーション実行中に、例えば、ある時刻にあるネットにおける論理値をモニタ画面に表示するための命令群（モニタ文と称する）を実行するということも行なわれている。
【特許文献１】特開平６−５２２５５号公報
【特許文献２】特開平７−２１２２０号公報
【特許文献３】特開平７−１６０７４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、コンピュータファームを構成するワークステーションやサーバに対して、ジョブの総実行時間が均一になるようにスケジューリングして総検証時間を短縮するにあたり、論理シミュレーションの実行時間を経験的に概算するのでは、正確な実行時間を事前に得ることは困難であり、従ってコンピュータファームを効率的に運用できないという問題がある。
【０００６】
また、論理回路の機能を論理シミュレータで検証するにあたり、事前に機能検証時間を予測するために、モニタ文を実行する場合がある。ここで、非常に多くの実時間が必要とされる論理シミュレーションの場合、進捗状況を適確に知るためにはモニタ文の実行を頻繁に行なう必要がある。すると、モニタ画面に表示される情報量が膨大になるとともに論理シミュレーションの負担も大きくその性能にも悪影響を及ぼす恐れがある。そこで、モニタ文の実行を少なくすることが考えられるが、これでは進捗状況を適確に知ることは困難であり、従って事前に機能検証時間を精度よく予測することは困難であるという問題が発生する。
【０００７】
本発明は、上記事情に鑑み、論理回路の機能を論理シミュレータで検証するにあたり、短時間でかつ簡単に精度よく機能検証時間を予測することができる機能検証時間予測方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成する本発明の機能検証時間予測方法は、
論理回路の機能を検証する論理シミュレータにランダムあるいは擬似ランダムに変化するランダム入力パターンを与えてその論理回路の機能検証を行なったときのその論理回路に入力される第１の入力イベント数とその機能検証に要した第１の時間とを求める第１ステップと、
上記論理回路の機能検証用に用意された検証用入力パターンを上記論理回路の機能検証は停止した状態のまま上記論理シミュレータに与えたときのその論理回路に入力される第２の入力イベント数を求める第２ステップと、
上記第１ステップおよび上記第２ステップで求めた上記第１の入力イベント数、上記第１の時間、および上記第２の入力イベント数に基づいて、上記検証用入力パターンを上記論理シミュレータに与えて上記論理回路の機能検証を行なった場合に要する第２の時間を予測する第３ステップとを有することを特徴とする。
【０００９】
尚、上記擬似ランダムに変化するランダム入力パターンとは、Ｍ系列で発生させたようなランダム入力パターンをいう。
【００１０】
本発明の機能検証時間予測方法は、先ず、論理シミュレータにランダム入力パターンを与えてその論理回路の機能検証を行なったときのその論理回路に入力される第１の入力イベント数とその機能検証に要した第１の時間とを求める。このようにすることにより、その論理回路の機能検証を行なったときの実時間を短時間でかつ簡単に求めることができる。
【００１１】
次いで、その論理回路の機能検証用に用意された検証用入力パターンをその論理回路の機能検証は停止した状態のままその論理回路に入力される第２の入力イベント数を求める。このようにすることにより、実際に機能を検証するために使用される検証用入力パターンにおける第２のイベント数を短時間でかつ簡単に求めることができる。
【００１２】
さらに、これら第１の入力イベント数、第１の時間、および第２の入力イベント数に基づいて、上記検証用入力パターンを論理シミュレータに与えてその論理回路の機能検証を行なった場合に要する第２の時間を予測する。このため、従来の、論理シミュレーションを実行する前に機能検証時間を経験的に概算する場合と比較し、短時間でかつ簡単に精度よく機能検証時間を予測することができる。
【００１３】
ここで、上記検証用入力パターンを上記論理シミュレータに与えて上記論理回路の機能検証を実際に行なっている途中で、その途中までのその論理回路に入力された入力イベント数とその途中までの機能検証に要した実時間とに基づいて上記第２の時間を修正する第４ステップを有することが好ましい。
【００１４】
このようにすると、論理回路の機能検証用に用意された検証用入力パターンを論理シミュレータに与えて論理回路の機能検証を行なった場合に要する第２の時間をさらに精度よく予測することができる。
【発明の効果】
【００１５】
本発明の機能検証時間予測方法によれば、論理回路の機能を論理シミュレータで検証するにあたり、短時間でかつ簡単に精度よく機能検証時間を予測することができる。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照して本発明の実施の形態を説明する。
【００１７】
図１は、本発明の一実施形態の機能検証時間予測方法が適用されたコンピュータ装置のブロック図である。
【００１８】
図１に示すコンピュータ装置１０には、ランダム入力パターン生成部１と論理シミュレータ２が備えられている。
【００１９】
ランダム入力パターン生成部１は、ランダムあるいは擬似ランダムに変化するランダム入力パターンを生成する。
【００２０】
論理シミュレータ２は、論理回路をコンピュータ装置１０上で模擬的に動作させるという論理シミュレーションを行なって、その論理回路の機能を検証する。この論理シミュレータ２には、ランダム入力パターン生成部１からのランダム入力パターン、検証用テストベンチａ（本発明にいう検証用入力パターンの一例に相当）、および回路データｂが与えられる。
【００２１】
ここで、検証用テストベンチａおよび回路データｂについて説明する。論理シミュレーションを行なって論理回路を検証するためには、その論理回路に入力される入力信号に論理‘０’や論理‘１’等の状態値を与え、与えられた状態値によってその論理回路の出力信号がどのような結果（論理‘０’や論理‘１’等）になるのかを期待する期待値を作成したモデルを用意する必要がある。このモデルを一般に「テストベンチ」と称し、実際に検証に用いる検証用テストベンチを、ここでは検証用テストベンチａと称する。また、回路データｂとは、論理回路の機能をシミュレーションするために必要なネットリスト等の情報をいう。
【００２２】
また、コンピュータ装置１０には、初期性能データ抽出部３と、実行状況モニタ部４と、性能データ補正部５と、実行状況画面表示部６とが備えられている。以下、図１および図２を参照して説明する。
【００２３】
図２は、図１に示すコンピュータ装置に適用された本発明の一実施形態の機能検証時間予測方法の処理フローを示す図である。
【００２４】
先ず、第１ステップＳ１において、論理シミュレータ２にランダム入力パターン生成部１からランダム入力パターンを与える。詳細には、ランダム入力パターン生成部１で、論理回路のクロック入力ピンに入力するためのクロック波形を生成するとともに、そのクロック入力ピン以外の入力ピンに入力するためのランダム入力パターンを生成する。次いで、論理シミュレータ２で、これら生成されたクロック波形およびランダム入力パターンを使用して所定の実時間分だけ論理シミュレーションを実行する。さらに、初期性能データ抽出部３で、論理シミュレータ２からのデータに基づいて、その論理回路に入力される第１の入力イベント数（ランダム入力イベント数と称する）とその機能検証に要した第１の時間（ランダム実行実時間と称する）とを求める。
【００２５】
ここで、第１の入力イベント数および第１の時間について説明する。論理シミュレーションでは、各ネットを論理‘０’や論理‘１’というように状態値を変えながら論理回路の機能を検証する。ここで、論理‘０’から論理‘１’に、または論理‘１’から論理‘０’等に状態が変化することを、一般に「イベント」と称する。また、入カイベント数とは、入力信号におけるイベント数、即ち入力信号の変化数をいう。さらに、本実施形態にいう第１のイベント数とは、ランダム入力パターン生成部１からのランダム入力パターンを表わす入力信号の変化数をいう。
【００２６】
また、第１の時間とは、ランダム入力パターンを与えて論理回路の機能検証を行なったときの実時間（初期予想時間）をいう。
【００２７】
次に、第２ステップＳ２において、論理回路の機能検証用に用意された検証用入力パターンである検証用テストベンチａを、その論理回路の機能検証は停止した状態のまま論理シミュレータ２に与えて、即ち回路データｂ（図１参照）を使用せずに検証用テストベンチａのみを使用して論理シミュレーションを実行する。さらに、初期性能データ抽出部３で論理回路に入力される第２の入力イベント数（テストベンチ入力イベント数と称する）を求める。
【００２８】
次に、第３ステップＳ３において、第１ステップＳ１および第２ステップＳ２で求めた第１の入力イベント数、第１の時間、および第２の入力イベント数に基づいて、検証用テストベンチａを論理シミュレータ２に与えて論理回路の機能検証を行なった場合に要する第２の時間（初期予想実時間と称する）を予測する。具体的には、初期性能データ抽出部３で、検証用テストベンチａの実行にかかる実時間、即ち第２の時間を算出する。
【００２９】
ここで、第２の時間（初期予想実時間）＝第２の入力イベント数（テストベンチ入力イベント数）×第１の時間（ランダム実行実時間）／第１の入力イベント数（ランダム入力イベント数）
と表わされる。
【００３０】
さらに、第４ステップＳ４において、検証用テストベンチａを論理シミュレータ２に与えて論理回路の機能検証を実際に行なっている途中で、その途中までの論理回路に入力された入力イベント数と途中までの機能検証に要した実時間とに基づいて上記第２の時間（初期予想時間）を修正する。具体的には、性能データ補正部５が、途中までの論理回路に入力された入力イベント数と途中までの機能検証に要した実時間とを初期性能データ抽出部３から入力するとともに、実行状況モニタ部４でモニタされた所定の実時間毎に処理されたテストベンチ入力イベント数（モニタテストベンチ入力イベント数と称する）を入力し、これら入力イベント数，実時間，モニタテストベンチ入力イベント数に基づいて初期予想時間を補正して、補正後予想実時間を求める。
【００３１】
ここで、補正後予想実時間＝第２の時間（初期予想実時間）×（全体ＳＩＭ時刻−現在のＳＩＭ時刻）／全体ＳＩＭ時刻＋第２の入力イベント数（テストベンチ入力イベント数）×モニタテストベンチ入力イベント数／モニタ実時間×（現在のＳＩＭ時刻／全体ＳＩＭ時刻）
と表わされる。ここで、ＳＩＭ時刻とは、論理回路を実際に形成した場合にその論理回路の動作時における時刻をいう。
【００３２】
また、実行状況画面表示部６で全体の進捗状況（進捗率、実行終了予定実時刻）を表示する。
【００３３】
ここで、進捗率（％）＝（現在のＳＩＭ時刻／全体のＳＩＭ時刻）×１００
と表わされる。
【００３４】
また、実行終了予定実時刻＝現在の実時刻＋第２の時間（初期予想時間）×（１−現在のＳＩＭ時刻／全体のＳＩＭ時刻）
と表わされる。尚、実時刻とは論理シミュレーション時における時刻をいう。
【００３５】
このように、本実施形態の機能検証時間予測方法は、第１ステップＳ１において論理シミュレータ２にランダム入力パターンを与えてその論理回路の機能検証を行なったときのその論理回路に入力される第１の入力イベント数とその機能検証に要した第１の時間とを短時間でかつ簡単に求め、第２ステップＳ２においてその論理回路の機能検証用に用意された検証用入力パターンをその論理回路の機能検証は停止した状態のままその論理回路に入力される第２の入力イベント数を短時間でかつ簡単に求め、さらに第３ステップＳ３において上記第１の入力イベント数，第１の時間，第２の入力イベント数に基づいて、上記検証用入力パターンを論理シミュレータ２に与えてその論理回路の機能検証を行なった場合に要する第２の時間を予測するため、従来の、論理シミュレーションを実行する前に機能検証時間を経験的に概算する場合と比較し、短時間でかつ簡単に精度よく機能検証時間を予測することができる。
【００３６】
さらに、本実施形態の機能検証時間予測方法は、第４ステップＳ４において、上記検証用入力パターンを論理シミュレータ２に与えて論理回路の機能検証を実際に行なっている途中で、その途中までのその論理回路に入力された入力イベント数とその途中までの機能検証に要した実時間とに基づいて上記第２の時間を修正するものであるため、論理回路の機能検証用に用意された検証用入力パターンを論理シミュレータに与えて論理回路の機能検証を行なった場合に要する第２の時間をさらに精度よく予測することができる。従って、コンピュータファーム上で論理シミュレーションを実行するにあたり、そのコンピュータファームにおいて、論理シミュレーションを行なうためのジョブを投入する際の効率的なスケジューリング、および設計者の効率的な検証スケジューリングを実施することができる。
【図面の簡単な説明】
【００３７】
【図１】本発明の一実施形態の機能検証時間予測方法が適用されたコンピュータ装置のブロック図である。
【図２】図１に示すコンピュータ装置に適用された本発明の一実施形態の機能検証時間予測方法の処理フローを示す図である。
【符号の説明】
【００３８】
１  ランダム入力パターン生成部
２  論理シミュレータ
３  初期性能データ抽出部
４  実行状況モニタ部
５  性能データ補正部
６  実行状況画面表示部
１０  コンピュータ装置
【図１】
2005234807.tif 000003
【図２】
2005234807.tif 000004