(57)【要約】  複数のクロック信号（ＣＬＫ１、ＣＬＫ２・・・ＣＬＫｎ）を生成する１つ以上のクロック生成部（６１〜６Ｎ）を備え、該クロック生成部は、クロック生成動作を停止状態から動作状態に復帰させた際に、停止時の位相に相当する前記クロック信号を生成させる。このようなクロック信号を用いて検証対象装置（７２）の動作の停止又は動作再開を行っても、状態変化を生じさせることがないので、連続した長時間に亘る動作情報を取得し、記録することが可能になる。【特許請求の範囲】
【請求項１】
複数のクロック信号を生成する１つ以上のクロック生成部を備え、該クロック生成部は、クロック生成動作を停止状態から動作状態に復帰させた際に、停止時の位相に相当する前記クロック信号を継続して生成させる構成としたことを特徴とするクロック生成装置。
【請求項２】
複数のクロック信号を生成する１つ以上のクロック生成部を備え、該クロック生成部は、制御信号によりクロック生成動作が切り換えられ、クロック生成動作を停止状態から動作状態に復帰させた際に、停止時の位相に相当する前記クロック信号を継続して生成させる構成としたことを特徴とするクロック生成装置。
【請求項３】
前記クロック生成部は、前記クロック生成動作の停止時の前記クロック信号の位相を記憶する記憶部を備え、この記憶部に記憶した前記位相を元に前記クロック信号を継続して生成する構成としたことを特徴とする請求の範囲１又は２記載のクロック生成装置。
【請求項４】
マスタークロック信号を発生するマスタークロック発生部と、
このマスタークロック発生部の前記マスタークロック信号により複数のクロック信号を生成する１つ以上のクロック生成部とを備え、
該クロック生成部は、制御信号によりクロック生成動作が切り換えられ、クロック生成動作を停止状態から動作状態に復帰させた際に、停止時の位相に相当する前記クロック信号を継続して生成させる構成としたことを特徴とするクロック生成装置。
【請求項５】
検証対象装置が必要とするクロック信号及び入力信号を付与し、前記検証対象装置の動作を検証する動作検証装置であって、
前記検証対象装置が必要とする前記入力信号を生成する入力信号生成部と、
前記検証対象装置が必要とする複数のクロック信号を生成するクロック生成装置と、
前記検証対象装置から得られる出力信号を記憶する出力信号記憶部とを備え、
前記クロック生成装置が、複数のクロック信号を生成する１つ以上のクロック生成部を備え、
前記クロック生成部は、制御信号によりクロック生成動作が制御され、クロック生成動作を停止状態から動作状態に復帰させた際に、停止時の位相に相当する前記クロック信号を継続して生成させる構成としたことを特徴とする動作検証装置。
【請求項６】
前記検証対象装置に加える入力信号を記憶する記憶部を前記入力信号生成部に備え、前記入力信号生成部が、前記記憶部に対する入力信号の読出し、読込みに対応して前記クロック生成装置に前記制御信号を付与することにより、前記クロック生成動作を制御する構成としたことを特徴とする請求の範囲５記載の動作検証装置。
【請求項７】
前記出力信号記憶部は、前記検証対象装置の出力信号の読込み又は読出しに対応して前記クロック生成装置に前記制御信号を付与し、前記クロック生成動作を制御する構成としたことを特徴とする請求の範囲５記載の動作検証装置。
【請求項８】
複数のクロック信号を生成する１つ以上のクロック生成部を備え、クロック生成動作を停止状態から動作状態に復帰させた際に、停止時の位相に相当する前記クロック信号を継続して生成させる処理を含むことを特徴とするクロック生成方法。
【請求項９】
マスタークロック発生部にマスタークロック信号を発生させる処理と、
１つ以上のクロック生成部に、前記マスタークロック信号により複数のクロック信号を生成させる処理と、
制御信号によりクロック生成動作を切り換え、クロック生成動作を停止状態から動作状態に復帰させた際に、停止時の位相に相当する前記クロック信号を前記クロック生成部に継続して生成させる処理と、
を含む構成としたことを特徴とするクロック生成方法。
【請求項１０】
検証対象装置が必要とするクロック信号及び入力信号を付与し、前記検証対象装置の動作を検証する動作検証方法であって、
入力信号生成部に前記検証対象装置が必要とする前記入力信号を生成させる処理と、
クロック生成装置に前記検証対象装置が必要とする複数のクロック信号を生成させる処理と、
出力信号記憶部に前記検証対象装置から得られる出力信号を記憶させる処理と、
前記クロック生成装置に備える１つ以上のクロック生成部に複数のクロック信号を生成させる処理と、
前記クロック生成部に、制御信号によりクロック生成動作を制御し、クロック生成動作を停止状態から動作状態に復帰させた際に、停止時の位相に相当する前記クロック信号を継続して生成させる処理と、
を含む構成としたことを特徴とする動作検証方法。
【請求項１１】
前記検証対象装置に加える入力信号を記憶する記憶部を前記入力信号生成部に備え、前記入力信号生成部が、前記記憶部に対する入力信号の読出し、読込みに対応して前記クロック生成装置に前記制御信号を付与することにより、前記クロック生成動作を制御する処理を含む構成としたことを特徴とする請求の範囲１０記載の動作検証方法。
【請求項１２】
前記出力信号記憶部が、前記検証対象装置の出力信号の読込み又は読出しに対応して前記クロック生成装置に前記制御信号を付与し、前記クロック生成動作を制御する処理を含む構成としたことを特徴とする請求の範囲１０記載の動作検証方法。
【請求項１３】
複数のクロック信号を生成する１つ以上のクロック生成部を備え、クロック生成動作を停止状態から動作状態に復帰させた際に、停止時の位相に相当する前記クロック信号を継続して生成させるステップをコンピュータに実行させることを特徴とするクロック生成プログラム。
【請求項１４】
マスタークロック発生部にマスタークロック信号を発生させるステップと、
１つ以上のクロック生成部に、前記マスタークロック信号により複数のクロック信号を生成させるステップと、
制御信号によりクロック生成動作を切り換え、クロック生成動作を停止状態から動作状態に復帰させた際に、停止時の位相に相当する前記クロック信号を前記クロック生成部に継続して生成させるステップと、
をコンピュータに実行させることを特徴とするクロック生成プログラム。
【請求項１５】
検証対象装置が必要とするクロック信号及び入力信号を付与し、前記検証対象装置の動作を検証する動作検証プログラムであって、
入力信号生成部に前記検証対象装置が必要とする前記入力信号を生成させるステップと、
クロック生成装置に前記検証対象装置が必要とする複数のクロック信号を生成させるステップと、
出力信号記憶部に前記検証対象装置から得られる出力信号を記憶させるステップと、
前記クロック生成装置に備える１つ以上のクロック生成部に複数のクロック信号を生成させるステップと、
前記クロック生成部に、制御信号によりクロック生成動作を制御し、クロック生成動作を停止状態から動作状態に復帰させた際に、停止時の位相に相当する前記クロック信号を継続して生成させるステップと、
をコンピュータに実行させることを特徴とする動作検証プログラム。
【請求項１６】
前記検証対象装置に加える入力信号を記憶する記憶部を前記入力信号生成部に備え、前記入力信号生成部が、前記記憶部に対する入力信号の読出し、読込みに対応して前記クロック生成装置に前記制御信号を付与することにより、前記クロック生成動作を制御する処理を含む構成としたことを特徴とする請求の範囲１５記載の動作検証プログラム。
【請求項１７】
前記出力信号記憶部が、前記検証対象装置の出力信号の読込み又は読出しに対応して前記クロック生成装置に前記制御信号を付与し、前記クロック生成動作を制御する処理を含む構成としたことを特徴とする請求の範囲１５記載の動作検証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＬＳＩ（Large Scale Integration ）、ＦＰＧＡ（Field Program able Gate Arrays）等のハードウェアの長時間に亘る動作検証に好適なクロック生成装置、クロック生成方法、クロック生成プログラム、動作検証装置、動作検証方法及び動作検証プログラムに関する。
【背景技術】
【０００２】
ＬＳＩやＦＰＧＡ等のハードウェアは、大規模化やＳＯＣ（System On Chip）化により、複数の非同期クロックで動作させるものが一般的である。このようなハードウェアの動作を検証するには、その動作を実現するためのテスト信号を加えることによりハードウェアを動作させ、ハードウェアの内部信号や外部出力信号等、各種の動作信号を観測する必要がある。しかしながら、複数の非同期クロックを必要とするハードウェアの動作検証は、観測時間、観測信号、複数の非同期クロックの位相関係等の条件維持から非常に複雑である。【０００３】
従来、この種の動作検証では、検証対象装置にシグナルジェネレータ、クロック生成装置、ロジックアナライザ等を接続して検証システムが構成され、シグナルジェネレータで生成される信号や、クロック生成装置で生成される複数のクロック信号を検証対象装置に加え、検証対象装置から生成される内部信号、出力信号を信号記憶装置に記録している。そして、この検証に用いられるクロック信号には、検証対象装置の実際の速度を持つクロック信号、又は検証が行い易い低い速度のクロック信号が用いられ、しかも、そのクロック信号は１回の検証期間中、連続して検証対象装置に付与されている。【０００４】
ところで、この種の動作検証に関し、特許文献によれば、検証対象である記憶装置の書込みスペースがなくなったとき、外部から記憶装置に付与しているクロックを停止させ、記憶装置の読出し完了の後、クロックを再開させるマイクロプログラムトレース装置（特許文献１）や、非同期の複数のクロックで動作するマイクロコントローラのインサーキットエミュレータ（特許文献２）等が存在している。
【特許文献１】特開昭５８−１８１１５４
【特許文献２】特開平１１−２５９３２９
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、検証動作を継続すると、検証対象装置から得られる信号の記憶量が膨大になり、また、記憶信号数によっても記憶量が膨大になるので、検証結果の記録時間は自ずと制限されることになる。記憶信号数を一定にしても、信号記録時間を長くするには、信号を記憶する記憶装置の記憶容量を増やす必要がある。【０００６】
また、高速で動作する検証対象装置から得られる信号を記録するには、その高速動作に対応する半導体メモリ等、高速デバイスが必要となるとともに、記憶容量が制限される。このため、信号の記憶容量が不足する場合には同様の検証を繰り返し行い、要求される検証時間を分割して信号記憶を行う必要がある。【０００７】
また、検証対象装置の出力信号を小容量の記憶装置に記憶し、その記憶容量の限界時点で、クロックの供給を停止して検証対象装置の動作を休止させ、その記憶装置から大容量の記憶装置に記憶信号を転送させ、再び、クロック供給を再開して動作を継続させることが考えられる。複数のクロックで動作する検証対象装置においては、単純にクロック供給の停止やその再開を行うと、クロック供給の再開時点で複数のクロック間の位相関係が崩れ、クロック再開後の動作が、クロックを停止させなかった本来の動作と異なってしまうおそれがある。このような動作検証は無意味であり、クロック停止及び再開を安易に行うことはできない。【０００８】
クロック供給の再開時に、複数のクロックの位相関係を保持したクロックを生成させるには、クロック停止時の各クロックの位相を記憶し、その再開時に記憶した位相からクロック供給を再開すればよいが、実用的に高速なクロック速度で斯かる動作を実現することはできない。【０００９】
このような課題に関し、特許文献１にはその開示や示唆はなく、また、特許文献２では特定の場合のみの開示や示唆であり、特許文献１、２に開示された発明では斯かる課題を解決することはできない。【００１０】
そこで、本発明は、複数のクロック信号の休止、再開に関し、各クロック信号の休止時と再開時の位相関係の不連続化を防止することを第１の目的とする。【００１１】
また、本発明は、複数のクロック信号を必要とする動作検証に関し、長時間に亘る動作信号の記録を実現することを第２の目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するため、本発明に係るクロック生成装置は、複数のクロック信号を生成する１つ以上のクロック生成部を備え、該クロック生成部は、クロック生成動作を停止状態から動作状態に復帰させた際に、停止時の位相に相当する前記クロック信号を継続して生成させる構成である。【００１３】
斯かる構成によれば、１つ以上のクロック生成部のクロック生成動作を任意に停止、その動作の再開を行わせてクロック信号を生成させることができるとともに、その停止、生成再開に関係なく、クロック信号の位相関係を保持することができる。このようなクロック信号を必要とする各種装置に対し、その動作条件を変更することなく、動作の停止、その再開を行わせることができる。【００１４】
上記目的を達成するため、本発明に係るクロック生成装置は、複数のクロック信号を生成する１つ以上のクロック生成部を備え、該クロック生成部は、制御信号によりクロック生成動作が切り換えられ、クロック生成動作を停止状態から動作状態に復帰させた際に、停止時の位相に相当する前記クロック信号を継続して生成させる構成としてもよい。斯かる構成によれば、制御信号を用いてクロック信号の生成動作の停止、再開を行わせることができる。しかも、クロック信号の停止、再開に伴う位相関係は制御に関係なく維持することができる。【００１５】
上記目的を達成するためには、本発明に係るクロック生成装置において、前記クロック生成部は、前記クロック生成動作の停止時の前記クロック信号の位相を記憶する記憶部を備え、この記憶部に記憶した前記位相を元に前記クロック信号を継続して生成する構成としてもよい。【００１６】
上記目的を達成するため、本発明に係るクロック生成装置は、マスタークロック信号を発生するマスタークロック発生部と、このマスタークロック発生部の前記マスタークロック信号により複数のクロック信号を生成する１つ以上のクロック生成部とを備え、該クロック生成部は、制御信号によりクロック生成動作が切り換えられ、クロック生成動作を停止状態から動作状態に復帰させた際に、停止時の位相に相当する前記クロック信号を継続して生成させる構成としてもよい。【００１７】
上記目的を達成するため、本発明に係るクロック生成方法は、複数のクロック信号を生成する１つ以上のクロック生成部を備え、クロック生成動作を停止状態から動作状態に復帰させた際に、停止時の位相に相当する前記クロック信号を継続して生成させる処理を含む構成である。斯かる構成によれば、１つ以上のクロック生成部のクロック生成動作を任意に停止、その動作の再開を行わせてクロック信号を生成させることができるとともに、その停止、生成再開に関係なく、クロック信号の位相関係を保持することができる。【００１８】
上記目的を達成するため、本発明に係るクロック生成方法は、マスタークロック発生部にマスタークロック信号を発生させる処理と、１つ以上のクロック生成部に、前記マスタークロック信号により複数のクロック信号を生成させる処理と、制御信号によりクロック生成動作を切り換え、クロック生成動作を停止状態から動作状態に復帰させた際に、停止時の位相に相当する前記クロック信号を前記クロック生成部に継続して生成させる処理とを含む構成としてもよい。【００１９】
上記目的を達成するため、本発明に係るクロック生成プログラムは、複数のクロック信号を生成する１つ以上のクロック生成部を備え、クロック生成動作を停止状態から動作状態に復帰させた際に、停止時の位相に相当する前記クロック信号を継続して生成させるステップをコンピュータに実行させる構成である。斯かる構成によれば、１つ以上のクロック生成部のクロック生成動作を任意に停止、その動作の再開を行わせてクロック信号を生成させることができるとともに、その停止、生成再開に関係なく、クロック信号の位相関係を保持することができる。このようなクロック信号を必要とする各種装置に対し、その動作条件を変更することなく、動作の停止、その再開を行わせることができる。【００２０】
上記目的を達成するため、本発明に係るクロック生成プログラムは、マスタークロック発生部にマスタークロック信号を発生させるステップと、１つ以上のクロック生成部に、前記マスタークロック信号により複数のクロック信号を生成させるステップと、制御信号によりクロック生成動作を切り換え、クロック生成動作を停止状態から動作状態に復帰させた際に、停止時の位相に相当する前記クロック信号を前記クロック生成部に継続して生成させるステップとをコンピュータに実行させる構成としてもよい。【００２１】
上記目的を達成するため、本発明に係る動作検証装置は、検証対象装置が必要とするクロック信号及び入力信号を付与し、前記検証対象装置の動作を検証する動作検証装置であって、前記検証対象装置が必要とする前記入力信号を生成する入力信号生成部と、前記検証対象装置が必要とする複数のクロック信号を生成するクロック生成装置と、前記検証対象装置から得られる出力信号を記憶する出力信号記憶部とを備え、前記クロック生成装置が、複数のクロック信号を生成する１つ以上のクロック生成部を備え、前記クロック生成部は、制御信号によりクロック生成動作が制御され、クロック生成動作を停止状態から動作状態に復帰させた際に、停止時の位相に相当する前記クロック信号を継続して生成させる構成である。【００２２】
斯かる構成によれば、既述のクロック信号の生成動作、その停止、生成動作の再開によって検証対象装置の動作を停止させ、その動作を再開させることができ、しかも、動作条件に変更が加えられることがないので、検証対象装置の検証動作の連続性を維持することができ、長時間に亘る動作記録が可能になり、動作検証の信頼性の向上が図られる。【００２３】
上記目的を達成するためには、本発明に係る動作検証装置において、前記検証対象装置に加える入力信号を記憶する記憶部を前記入力信号生成部に備え、前記入力信号生成部が、前記記憶部に対する入力信号の読出し、読込みに対応して前記クロック生成装置に前記制御信号を付与することにより、前記クロック生成動作を制御する構成としてもよい。【００２４】
上記目的を達成するためには、本発明に係る動作検証装置において、前記出力信号記憶部は、前記検証対象装置の出力信号の読込み又は読出しに対応して前記クロック生成装置に前記制御信号を付与し、前記クロック生成動作を制御する構成としてもよい。【００２５】
上記目的を達成するため、本発明に係る動作検証方法は、検証対象装置が必要とするクロック信号及び入力信号を付与し、前記検証対象装置の動作を検証する動作検証方法であって、入力信号生成部に前記検証対象装置が必要とする前記入力信号を生成させる処理と、クロック生成装置に前記検証対象装置が必要とする複数のクロック信号を生成させる処理と、出力信号記憶部に前記検証対象装置から得られる出力信号を記憶させる処理と、前記クロック生成装置に備える１つ以上のクロック生成部に複数のクロック信号を生成させる処理と、前記クロック生成部に、制御信号によりクロック生成動作を制御し、クロック生成動作を停止状態から動作状態に復帰させた際に、停止時の位相に相当する前記クロック信号を継続して生成させる処理とを含む構成である。斯かる構成によれば、既述のクロック信号の生成動作、その停止、生成動作の再開によって検証対象装置の動作を停止させ、その動作を再開させることができ、しかも、動作条件に変更が加えられることがないので、検証対象装置の検証動作の連続性を維持することができ、長時間に亘る動作記録が可能になり、動作検証の信頼性の向上が図られる。【００２６】
上記目的を達成するためには、本発明に係る動作検証方法において、前記検証対象装置に加える入力信号を記憶する記憶部を前記入力信号生成部に備え、前記入力信号生成部が、前記記憶部に対する入力信号の読出し、読込みに対応して前記クロック生成装置に前記制御信号を付与することにより、前記クロック生成動作を制御する処理を含む構成としてもよい。【００２７】
上記目的を達成するためには、本発明に係る動作検証方法において、前記出力信号記憶部が、前記検証対象装置の出力信号の読込み又は読出しに対応して前記クロック生成装置に前記制御信号を付与し、前記クロック生成動作を制御する処理を含む構成としてもよい。【００２８】
上記目的を達成するため、本発明に係る動作検証プログラムは、検証対象装置が必要とするクロック信号及び入力信号を付与し、前記検証対象装置の動作を検証する動作検証プログラムであって、入力信号生成部に前記検証対象装置が必要とする前記入力信号を生成させるステップと、クロック生成装置に前記検証対象装置が必要とする複数のクロック信号を生成させるステップと、出力信号記憶部に前記検証対象装置から得られる出力信号を記憶させるステップと、前記クロック生成装置に備える１つ以上のクロック生成部に複数のクロック信号を生成させるステップと、前記クロック生成部に、制御信号によりクロック生成動作を制御し、クロック生成動作を停止状態から動作状態に復帰させた際に、停止時の位相に相当する前記クロック信号を継続して生成させるステップとをコンピュータに実行させる構成である。斯かる構成によれば、既述のクロック信号の生成動作、その停止、生成動作の再開によって検証対象装置の動作を停止させ、その動作を再開させることができ、しかも、動作条件に変更が加えられることがないので、検証対象装置の検証動作の連続性を維持することができ、長時間に亘る動作記録が可能になり、動作検証の信頼性の向上が図られる。【００２９】
上記目的を達成するためには、本発明に係る動作検証プログラムにおいて、前記検証対象装置に加える入力信号を記憶する記憶部を前記入力信号生成部に備え、前記入力信号生成部が、前記記憶部に対する入力信号の読出し、読込みに対応して前記クロック生成装置に前記制御信号を付与することにより、前記クロック生成動作を制御する処理を含む構成としてもよい。【００３０】
上記目的を達成するためには、本発明に係る動作検証プログラムにおいて、前記出力信号記憶部が、前記検証対象装置の出力信号の読込み又は読出しに対応して前記クロック生成装置に前記制御信号を付与し、前記クロック生成動作を制御する処理を含む構成としてもよい。
【発明の効果】
【００３１】
本発明によれば、次のような効果が得られる。【００３２】
(1) 本発明に係るクロック生成装置、クロック生成方法又はクロック生成プログラムによれば、複数のクロック信号が得られるとともに、各クロック信号を停止させた際の位相関係を、各クロック信号の生成再開時に維持させることができ、クロック信号の生成、その停止、生成再開に関係なく、各クロック信号の位相関係を維持することができる。【００３３】
(2) 本発明に係る動作検証装置、動作検証方法又は動作検証プログラムによれば、検証対象装置の通常動作に必要な複数のクロック信号の供給、その停止及びその再開を行っても生成されるクロック信号の位相関係が保持される、つまり、クロックの停止時間を除く任意の時間の間で各クロックの必要とされるクロック数の関係が保たれるので、クロック信号の供給、その停止及びその再開によって検証対象装置の動作が停止し、その動作を再開しても、その動作の連続性を維持することができ、動作を中断しないで動作検証記録を行った場合と同等の長時間に亘る動作記録を行うことができる。【００３４】
そして、本発明の他の目的、特徴及び利点は、添付図面及び各実施の形態を参照することにより、一層明確になるであろう。
【図面の簡単な説明】
【００３５】
【図１】本発明の第１の実施の形態に係るクロック生成装置を示す回路図である。
【図２】ゲート部の入出力関係を示すタイミングチャートである。
【図３】クロック信号の生成タイミングを示すタイミングチャートである。
【図４】ハードウェア記述言語で記述されたクロック生成部の構成例を示すリストである。
【図５】クロック生成部の構成例を示す回路図である。
【図６】クロック生成部のクロック信号の生成動作を表すフローチャートである。
【図７】クロック生成部のクロック信号の生成動作を表すフローチャートである。
【図８】ハードウェア記述言語で記述されたクロック生成部の構成例を示すリストである。
【図９】クロック生成部の構成例を示す回路図である。
【図１０】クロック生成部のクロック信号の生成動作を表すフローチャートである。
【図１１】本発明の第２の実施の形態に係るクロック生成装置の構成例を示すリストである。
【図１２】動作や生成クロック信号を表すタイミングチャートである。
【図１３】クロック生成装置のハードウェアの構成例を示す回路図である。
【図１４】クロックゲーティング動作を示すフローチャートである。
【図１５】クロックゲーティング動作を示すフローチャートである。
【図１６】クロックゲーティング動作を示すフローチャートである。
【図１７】クロック生成部のクロック信号の生成動作を示すフローチャートである。
【図１８】クロック生成部のクロック信号の生成動作を示すフローチャートである。
【図１９】クロック生成部のクロック信号の生成動作を示すフローチャートである。
【図２０】本発明の第３の実施の形態に係る動作検証装置を示すブロック図である。
【図２１】制御動作シーケンスを示す図である。
【図２２】本発明の第４の実施の形態に係る動作検証システムを示すブロック図である。
【図２３】検証制御ＰＣの構成例を示すブロック図である。
【図２４】検証対象装置の一例を示すブロック図である。
【図２５】本発明の第４の実施の形態に係る動作検証システムの変形例を示すブロック図である。
【符号の説明】
【００３６】
２  クロック生成装置
６１〜６Ｎ  クロック生成部
８  クロック発振器
１６１〜１６Ｎ  記憶部
７０  動作検証装置
７８  入力信号生成部
８６  出力信号記憶部
【発明を実施するための最良の形態】
【００３７】
第１の実施の形態【００３８】
本発明の第１の実施の形態について、図１を参照して説明する。図１は第１の実施の形態に係るクロック生成装置２を示す回路図である。【００３９】
このクロック生成装置２には、ゲート部４とともに、１つ以上のクロック生成部としてこの実施の形態では、複数のクロック生成部（ＣＬＫ１＿ＧＥＮ、ＣＬＫ２＿ＧＥＮ・・・ＣＬＫｎ＿ＧＥＮ）６１、６２・・・６Ｎが設置されている。ゲート部４の前段には、クロック発振器（ＯＳＣ）８が設置され、このＯＳＣ８からマスタークロック信号ｍｃｌｋがゲート部４に与えられ、制御入力端子１０からクロック生成制御信号ｃｌｋ＿ｅｎが加えられている。クロック生成部６１、６２・・・６Ｎには、ゲート部４から得られたゲーティングマスタークロック信号ｇ＿ｍｃｌｋを基礎として、複数の生成クロック信号ＣＬＫ１、ＣＬＫ２・・・ＣＬＫｎが得られる。また、ゲート部４に得られるゲーティングマスタークロック信号ｇ＿ｍｃｌｋは、ゲート部４から直接にクロック信号ＣＬＫ０として取り出される。従って、このクロック生成装置２では、ＣＬＫ０、ＣＬＫ１、ＣＬＫ２・・・ＣＬＫｎが得られる。【００４０】
ここで、ｇ＿ｍｃｌｋ（ゲーティングマスタークロック信号）と各ＣＬＫ０、ＣＬＫ１、ＣＬＫ２・・・ＣＬＫｎ（生成クロック信号）との関係については、ｇ＿ｍｃｌｋとＣＬＫ０とは共通のクロック信号であり、各ＣＬＫ０、ＣＬＫ１、ＣＬＫ２・・・ＣＬＫｎは独立したクロック周波数であり、単位時間当たりに必要とされるクロック数がそれぞれ異なっている。このように単位時間当たりが異なるクロック数で、ｇ＿ｍｃｌｋに対して異なるＣＬＫ１、ＣＬＫ２・・・ＣＬＫｎは、後述の例えば、携帯電話機等の検証対象装置の動作検証に必要なクロック信号として用いる等の用途に対応させるためである。【００４１】
このクロック生成装置２において、ゲート部４は例えば、ＡＮＤ回路１２及びラッチ回路（ＬＡＴＣＨ）１４で構成されている。ＬＡＴＣＨ１４は、その入力Ｄにｃｌｋ＿ｅｎ（クロック生成制御信号）、その反転入力Ｇにｍｃｌｋ（マスタークロック信号）が与えられている。クロック生成制御信号ｃｌｋ＿ｅｎは、例えば、高低（Ｈ／Ｌ）２レベルのスイッチング信号であり、ｍｃｌｋの通過を制御する制御信号である。【００４２】
クロック生成部６１〜６Ｎは、ゲート部４からｇ＿ｍｃｌｋを受け、このｇ＿ｍｃｌｋに基づき、ＣＬＫ１、ＣＬＫ２・・・ＣＬＫｎ（生成クロック信号）を生成する。ここで、クロック生成部６１〜６Ｎでは、ｇ＿ｍｃｌｋの各立上り又は立下りいずれか又は双方の時点で、クロックサイクルを更新し、各クロックサイクル内に生成するクロックが本来一定クロック幅のクロックであれば、クロックパルスが発生するかを判断し、クロックを生成する場合には、ｇ＿ｍｃｌｋの変化タイミングに合わせてクロックパルスを生成し、ＣＬＫ１、ＣＬＫ２・・・ＣＬＫｎ（生成クロック信号）を生成させる。そして、各クロック生成部６１〜６Ｎにはそれぞれ記憶部１６１、１６２・・・１６Ｎが設置されており、各記憶部１６１〜１６ＮにはＣＬＫ１、ＣＬＫ２・・・ＣＬＫｎの位相情報が格納される。即ち、ｃｌｋ＿ｅｎが解除されてｇ＿ｍｃｌｋが解除されると、ＣＬＫ１、ＣＬＫ２・・・ＣＬＫｎの生成が停止されるが、その停止の際、ＣＬＫ１、ＣＬＫ２・・・ＣＬＫｎの位相情報は記憶部１６１〜１６Ｎに格納されて保持され、クロック生成の再開時の位相情報となる。また、各クロック生成部６１〜６Ｎには、リセット入力端子１８を通して共通のリセット信号ｒｅｓｅｔが与えられ、このｒｅｓｅｔにより記憶部１６１〜１６Ｎの位相情報が初期値にリセットされる。即ち、クロック生成部６１〜６Ｎの初期化が行われる。リセット回路は必ずしも必要ない。【００４３】
次に、クロック生成装置２の動作について、図２を参照して説明する。図２はゲート部４の入出力関係を示すタイミングチャートである。【００４４】
ゲート部４には図２のＡに示すｍｃｌｋ（マスタークロック信号）が与えられるとともに、図２のＢに示すｃｌｋ＿ｅｎ（クロック生成制御信号）が与えられる。この場合、ｃｌｋ＿ｅｎはｍｃｌｋの周期Ｔａより長い区間ＴｂをＨレベルとする信号である。このような入力関係においては、ＬＡＴＣＨ１４では、図２のＣに示す出力Ｑが得られる。そして、この出力ＱとｍｃｌｋとがＡＮＤ回路１２に加わると、出力ＱのＨレベル区間Ｔｃの時間内においてｍｃｌｋがゲーティングされて出力され、図２のＤに示すｇ＿ｍｃｌｋが得られる。このｇ＿ｍｃｌｋは、ＣＬＫ０（生成クロック信号）として取り出されるとともに、クロック生成部６１〜６Ｎに与えられ、ＣＬＫ１、ＣＬＫ２・・・ＣＬＫｎ（生成クロック信号）を生成させる基礎になる。【００４５】
そこで、ｃｌｋ＿ｅｎのＨレベル区間Ｔｂにおいて、クロック生成部６１〜６ＮからＣＬＫ１、ＣＬＫ２・・・ＣＬＫｎが生成される。各ＣＬＫ１、ＣＬＫ２・・・ＣＬＫｎの既述のｇ＿ｍｃｌｋに対する位相情報は記憶部１６１〜１６Ｎに記憶され、ｃｌｋ＿ｅｎがＬレベルに移行してｇ＿ｍｃｌｋが停止された際、その時点の各ＣＬＫ１、ＣＬＫ２・・・ＣＬＫｎの位相情報が記憶部１６１〜１６Ｎに記憶されて保持される。この記憶状態はｒｅｓｅｔ（リセット信号）によってリセットされない限り保持される。【００４６】
そして、ｃｌｋ＿ｅｎがＨレベルに移行してｇ＿ｍｃｌｋが再開された際には、記憶部１６１〜１６Ｎに保持されている位相情報を以て各ＣＬＫ１、ＣＬＫ２・・・ＣＬＫｎの生成が再開され、同時にＣＬＫ０も生成される。【００４７】
このようなゲート部４及びクロック生成部６１〜６Ｎの動作について、図３を参照して説明する。図３は一般的に利用される一定周期のクロック信号ＣＬＫ１＿０、ＣＬＫ２＿０、クロック生成部６１、６２に生成させた各ＣＬＫ１、ＣＬＫ２を示すタイミングチャートである。ＣＬＫ１＿０、ＣＬＫ２＿０は説明上の仮想的なクロック信号である。【００４８】
図３において、Ａに示すＣＬＫ０は、ｇ＿ｍｃｌｋと等価であり、例えば、生成クロック幅（サイクル幅）Ｔ0 が１０〔ｎｓ〕の生成クロック信号である。Ｂ１に示すＣＬＫ１＿０は生成クロックサイクル時間Ｔ1 が１２〔ｎｓ〕の一定周期のクロック信号であり、Ｂ２に示すＣＬＫ１は、Ｂ１に対応する本実施の形態によるクロック信号である。また、Ｃ１に示すＣＬＫ２＿０は生成クロックサイクル時間Ｔ2 が２４〔ｎｓ〕の一定周期のクロック信号であり、Ｃ２に示すＣＬＫ２は、Ｃ１に対応する本実施の形態によるクロック信号である。【００４９】
このような時間設定においてＣＬＫ０、ＣＬＫ１＿０、ＣＬＫ２＿０のパルスのエッジが一致する時点は、Ｔ0 （＝１０〔ｎｓ〕）、Ｔ1 （＝１２〔ｎｓ〕）、Ｔ2 （＝２４〔ｎｓ〕）の最小公倍数である時間幅Ｔｘ（＝１２０〔ｎｓ〕）となる。この時間幅Ｔｘにより、ＣＬＫ０、ＣＬＫ１＿０、ＣＬＫ２＿０の各クロック数Ｎ0 、Ｎ1 、Ｎ2 は、
Ｎ0 ＝Ｔｘ／Ｔ0 ＝１２０〔ｎｓ〕／１０〔ｎｓ〕＝１２    ・・・(1) 
Ｎ1 ＝Ｔｘ／Ｔ1 ＝１２０〔ｎｓ〕／１２〔ｎｓ〕＝１０    ・・・(2) 
Ｎ2 ＝Ｔｘ／Ｔ2 ＝１２０〔ｎｓ〕／２４〔ｎｓ〕＝５      ・・・(3) 
となる。これは、一定時間当たりのクロック数を表している。このクロック数Ｎの値は一例であって、サイクル幅を任意に設定することにより、クロック数Ｎを所望の値に設定することができる。【００５０】
そして、この単位時間当たりに必要とされるクロック数Ｎと同じクロック数Ｎを持つＣＬＫ１（図３のＢ２）、ＣＬＫ２（図３のＣ２）がクロック生成部６１、６２で生成されている。また、ＣＬＫ１（図３のＢ２）、ＣＬＫ２（図３のＣ２）は、一定周期のｇ＿ｍｃｌｋ（ゲーティングマスタークロック信号）に対して歯抜け状クロック信号となり、個々のクロックパルスはマスタークロックの整数倍となるが、クロック周期の最小公倍数である任意の時間帯においては各クロック周波数に必要なクロック数のクロックが得られることから、位相とクロック数が一致しているとみなせるので、これらの波形上の相違点は何ら問題にならない。【００５１】
このようなＣＬＫ１、ＣＬＫ２について、ＣＬＫ０に対する位相、つまり、クロックエッジの時間差情報は各記憶部１６１、１６２に記憶され、ｇ＿ｍｃｌｋが停止された際には、その関係情報はｇ＿ｍｃｌｋが供給再開されるまで保持され、その再開時にはスタート情報となる。【００５２】
また、このクロック生成装置２においては、一番高い周波数のクロック信号をｍｃｌｋ（マスタークロック信号）とする。ｍｃｌｋはゲート部４でｃｌｋ＿ｅｎによってゲーティングされ、ＣＬＫ０、ＣＬＫ１、ＣＬＫ２・・・ＣＬＫｎ（生成クロック信号）の生成又は停止が行われる。ＣＬＫ０はゲート部４から生成され、ＣＬＫ１、ＣＬＫ２・・・ＣＬＫｎは、ｇ＿ｍｃｌｋからクロック生成部６１〜６Ｎで生成される。ｃｌｋ＿ｅｎによってｇ＿ｍｃｌｋの発生、停止が制御され、ＣＬＫ０とともにＣＬＫ１、ＣＬＫ２・・・ＣＬＫｎも停止し、ｇ＿ｍｃｌｋが供給されると、その時点からＣＬＫ０、ＣＬＫ１、ＣＬＫ２・・・ＣＬＫｎが生成される。【００５３】
そして、既述したように、クロック生成部６１〜６Ｎでは、ｇ＿ｍｃｌｋの各立上り又は立下りのいずれか又は双方の時点で、クロックサイクルを更新し、各クロックサイクル内に生成するクロックが本来一定クロック幅のクロックであればクロックパルスが発生するかを判断しており、クロック信号を生成する場合には、ｇ＿ｍｃｌｋの変化タイミングに合わせてクロックパルスを生成し、ＣＬＫ１、ＣＬＫ２・・・ＣＬＫｎを生成させている。【００５４】
従って、このクロック生成装置２によれば、複数のＣＬＫ０、ＣＬＫ１、ＣＬＫ２・・・ＣＬＫｎ（生成クロック信号）が位相関係を保ったままその生成、停止、再開を行うことができる。また、一般的には各クロックは一定周期のクロック信号が使用され、この実施の形態では、歯抜け状クロック信号として得られているが、実用上は、何ら問題にならない。【００５５】
このような機能を持つクロック生成装置２によれば、一定のサイクル幅を持つｍｃｌｋ（マスタークロック信号）を用いて各クロック周波数に対応した１つ以上のクロック信号ＣＬＫ１、ＣＬＫ２・・・ＣＬＫｎを生成できるとともに、ｍｃｌｋの停止／再開によっても、再開時に生成する各ＣＬＫ１、ＣＬＫ２・・・ＣＬＫｎとＣＬＫ０との位相関係や生成クロック数に何らの不連続性を生ずることなく、１つ以上のＣＬＫ０、ＣＬＫ１、ＣＬＫ２・・・ＣＬＫｎが継続して生成される。【００５６】
次に、クロック生成装置２のクロック生成部６１の実施の形態について、図４及び図５を参照して説明する。図４はハードウェア記述言語（一例としてVerilog ＨＤＬ）で記述されたクロック生成部６１の構成例を示すリスト、図５はクロック生成部６１の構成例を示す回路図である。【００５７】
このクロック生成部６１の構成例は、生成されるクロック信号ＣＬＫ１の周波数（ｆ＝１／Ｔ）がマスタークロック信号ｍｃｌｋの１／２を超える場合を示している。これらの関係について、図３に示すタイミングチャートを参照すれば、図３のＡに示すように、クロック信号ＣＬＫ０のサイクル幅Ｔ0 は１０〔ｎｓ〕、図３のＢ１、Ｂ２に示すように、クロック信号ＣＬＫ１＿０、ＣＬＫ１は、サイクル幅Ｔ1 が１２〔ｎｓ〕であるから、クロック信号ＣＬＫ１のサイクル幅Ｔ1 はクロック信号ＣＬＫ０のサイクル幅Ｔ0 の２倍より小さい値（Ｔ1 ＜２Ｔ0 ）となっているので、既述の条件に合致している。【００５８】
この条件に合致するように構成されるクロック生成部６１をハードウェア記述言語（Verilog ＨＤＬ）で記述すれば以下の通りである（図４）。このリストは、行番号とともに、処理内容を記述したものである。
１  reg[11:0]pos ; /＊ clkの立上り変化点＊/ 
２  reg out ; / ＊ clkのGating Register ＊/ 
３  wire clk /＊ clk信号＊/ 
４  （空白）
５  always @ (posedge rst or negedge ｇ＿ｍｃｌｋ) begin
６   if (rst==1) begin
７    pos <= clk幅/2 ; /＊変化点初期値＊/ 
８    out <= 0 ;
９   end
10   else if (pos <= mclk の幅)begin
11    out <= 1 ; /＊clk パルス出力設定＊/ 
12    pos <= pos+ (clk幅-mclk の幅) ；/ ＊変化点の更新＊/ 
13   end
14   else begin 
15    out <= 0 ; /＊Clock パルス非出力設定＊/ 
16    pos <= pos-mclk 幅；/ ＊変化点の更新＊/ 
17   end
18  end 
19  assign clk = g_mclk && out ;/ ＊Clock Gating＊/ 【００５９】
このリストにおいて、行番号１〜３はレジスタ、信号の宣言であり、行番号５〜１９は処理を示している。「〔１１：０〕」は１２ビット構成を表し、「ｐｏｓ」は、一定のクロック幅のクロック信号の立上りの変化点（時刻）を表すレジスタであって、既述の記憶部１６１を構成している。「ｏｕｔ」は、マスタークロック信号ｍｃｌｋをゲーティングするレジスタである。「ｒｓｔ」は、既述のリセット信号ｒｅｓｅｔである。「ｃｌｋ」は、生成されるクロック信号である。「ｇ＿ｍｃｌｋ」は、ゲーティングされたマスタークロック信号を表している。「ｉｆ」は、比較を表す。【００６０】
このリストで表されたクロック生成部６１では、ｒｓｔが入力されると、レジスタ（ｐｏｓ）に設定される変化点を生成クロック幅の１／２に初期設定し、レジスタ（ｏｕｔ）を「０」（クロック生成しない状態）に設定する。レジスタ（ｐｏｓ）の初期値は、生成クロック幅以下であればよい。ｇ＿ｍｃｌｋの立下りで、レジスタ（ｐｏｓ）の出力値がマスタークロック信号ｍｃｌｋのクロック信号幅以下か否かを判断し（１０行目）、クロック信号幅以下の場合、レジスタ（ｏｕｔ）は「１」（パルス生成する）が設定され、レジスタ（ｐｏｓ）の出力値に（生成クロック信号幅−マスタークロック信号ｍｃｌｋのクロック幅）を加算し、レジスタ（ｐｏｓ）の値を更新する（１１、１２行目）。レジスタ（ｐｏｓ）の出力値がマスタークロック信号ｍｃｌｋのクロック幅を超えていた場合、レジスタ（ｏｕｔ）は「０」に設定され、レジスタ（ｐｏｓ）からマスタークロック信号ｍｃｌｋのクロック幅を減算する（１５、１６行目）。生成クロック信号（ｃｌｋ）は、ｇ＿ｍｃｌｋをレジスタ（ｏｕｔ）でゲーティングしたもの（１９行目）となる。【００６１】
このようなハードウェア記述言語（Verilog ＨＤＬ）で記述されたものからハードウェアに変換すると、図５に示すように、クロック生成部６１が構成されることになる。【００６２】
このクロック生成部６１では、記憶部１６１を構成するレジスタ（ｐｏｓ）２０が設置され、このレジスタ２０は多ビットのＤ−ＦＦで構成されている。このレジスタ２０のＣＬＫ入力にはｇ＿ｍｃｌｋが反転されて与えられている。このレジスタ２０のＤ入力側にはセレクタ（ＳＥＬ）２２、出力Ｑ側には比較器２４が設置される。セレクタ２２の前段には加算器２６及び減算器２８が設置され、これら加算器２６及び減算器２８の出力が比較器２４の出力値によって選択され、その選択出力がレジスタ２０に与えられる。比較器２４ではレジスタ２０の出力値ｐｏｓ〔１１：０〕とマスタークロック信号幅ｍｃｌｋｗとの比較が行われ、出力値ｐｏｓがクロック信号幅ｍｃｌｋｗ以内であるか否かを判断し、クロック信号幅ｍｃｌｋｗ以内の場合、セレクタ２２は「１」側（パルス生成する）が選択され、クロック信号幅ｍｃｌｋｗを超えていた場合、セレクタ２２は「０」側が選択される。「１」が選択された場合には加算器２６の出力値、「０」が選択された場合には減算器２８の出力値がレジスタ２０に与えられる。加算器２６では、レジスタ２０の出力値ｐｏｓと、（生成クロック信号幅−マスタークロック信号幅）の値（ｃｌｋｗ−ｍｃｌｋｗ）とが加算され、また、減算器２８ではレジスタ２０の出力値ｐｏｓからマスタークロック信号幅ｍｃｌｋｗが減算される。また、リセット時には、レジスタ２０には初期値として生成クロック信号幅の２分の１の値（ｃｌｋｗ／２）が設定される。ｃｌｋｗ−ｍｃｌｋｗは加算器２６の前段に設置された定数出力部３０、ｍｃｌｋｗは減算器２８の前段に設置された定数出力部３２、ｃｌｋｗ／２は定数出力部３４によって与えられている。そして、レジスタ２０にはｒｓｔ（リセット信号＝ｒｅｓｅｔ）が与えられている。【００６３】
また、比較器２４の出力側にはレジスタ（ｏｕｔ）３６が設置され、このレジスタ３６のＤ入力に比較器２４の出力が与えられ、ＣＬＫ入力にはゲーティングマスタークロック信号ｇ＿ｍｃｌｋが反転されて入力され、ＲＳＴ入力にはｒｓｔ（リセット信号＝ｒｅｓｅｔ）が与えられている。このレジスタ３６の出力側にはＡＮＤ回路３８が設置され、このＡＮＤ回路３８にはレジスタ３６の出力Ｑとｇ＿ｍｃｌｋとが与えられている。ＡＮＤ回路３８から生成クロック信号ｃｌｋ（＝ＣＬＫ１）が得られる。【００６４】
次に、クロック生成部６１の動作について、図６及び図７を参照して説明する。図６及び図７は、図４及び図５に示すクロック生成部６１のクロック信号の生成動作を表すフローチャートである。【００６５】
クロック生成部６１が動作を開始すると、ｒｓｔの立上り又はｇ＿ｍｃｌｋの立下り（エッジ）の到来を待つ（ステップＳ１１）。この場合、ｒｓｔの実行を「１」、ｒｓｔの解除を「０」とし、その判定が行われる（ステップＳ１２）。ｒｓｔ＝１の場合、レジスタ２０、３６のリセット処理が実行され、レジスタ２０、３６の設定値が初期化される（ステップＳ１３）。この場合、定数出力部３４により、レジスタ２０にｃｌｋｗ／２が設定されるとともに、レジスタ３６にｏｕｔ＝０が設定された後、ステップＳ１１に戻る。そして、ｒｓｔ＝１が解除され、ｇ＿ｍｃｌｋの立下りが到来すると、ステップＳ１２を経て比較器２４の比較処理が実行される（ステップＳ１４）。レジスタ２０の出力値ｐｏｓとマスタークロック信号幅ｍｃｌｋｗとが比較される。この比較処理は、次のｍｃｌｋでｃｌｋを発生させるか否かの判断を表している。そして、ｐｏｓ≦ｍｃｌｋｗの場合には、ｏｕｔ＝１が設定され、ｐｏｓ＝ｐｏｓ＋（ｃｌｋｗ−ｍｃｌｋｗ）が設定される（ステップＳ１５）。また、ｐｏｓ＞ｍｃｌｋｗの場合には、ｏｕｔ＝０が設定され、ｐｏｓ＝ｐｏｓ−ｍｃｌｋｗが設定される（ステップＳ１６）。このような処理により、クロック生成部６１よりＣＬＫ１が生成される。【００６６】
そして、ＣＬＫ１は、ＡＮＤ回路３８による、ｇ＿ｍｃｌｋとレジスタ３６の出力値ｏｕｔとの論理積で与えられるから、図７に示す処理が実行され、この処理（ステップＳ２０）は、ｇ＿ｍｃｌｋ又はｏｕｔの何れかが変化すると、ＣＬＫ１がその論理和に変化することを表している。【００６７】
次に、クロック生成装置２のクロック生成部６２の実施の形態について、図８及び図９を参照して説明する。図８はハードウェア記述言語（Verilog ＨＤＬ）で記述されたクロック生成部６２の構成例を示すリスト、図９はクロック生成部６２の構成例を示す回路図である。【００６８】
このクロック生成部６２の構成例は、生成されるクロック信号ＣＬＫ２の周波数（ｆ＝１／Ｔ）がマスタークロック信号ｍｃｌｋの１／２以下の場合を想定している。これらの関係について、図３に示すタイミングチャートを参照すれば、図３のＡに示すように、クロック信号ＣＬＫ０のサイクル幅Ｔ0 は１０〔ｎｓ〕、図３のＣ１、Ｃ２に示すように、クロック信号ＣＬＫ２＿０、ＣＬＫ２は、サイクル幅Ｔ2 が２４〔ｎｓ〕であるから、クロック信号ＣＬＫ２のサイクル幅Ｔ2 はクロック信号ＣＬＫ０のサイクル幅Ｔ0 の２倍より大きい値（Ｔ2 ＞２Ｔ0 ）となっているので、既述の条件に合致している。【００６９】
この条件に合致するように構成されるクロック生成部６２をハードウェア記述言語（Verilog ＨＤＬ）で記述すれば以下の通りである（図８）。このリストは、既述のクロック生成部６１の場合と同様に、行番号とともに、処理内容を記述したものである。
１  reg[11:0]pos; / ＊ clkの変化点＊/ 
２  reg clk; /＊ clk信号＊/ 
３  （空白）
４  always @ (posedge rst or posedge g_mclk) begin
５   if (rst==1) begin
６    pos<=clk幅/2 ;/ ＊変化点初期値＊/ 
７    clk<=0; 
８   end
９   else if (pos<=mclk の幅)begin
10    clk<=!clk ; / ＊clk を反転＊/ 
11    pos<=pos+(clk の幅/2-mclk の幅); /＊変化点の更新＊/ 
12   end
13   else begin/＊clk 変化なし＊/ 
14    pos<=pos-mclk の幅；/ ＊変化点の更新＊/ 
15   end
16  end 【００７０】
このリストにおいて、行番号１、２はレジスタ、信号の宣言であり、行番号４〜１６は処理を示している。「〔１１：０〕」は１２ビット構成を表し、「ｐｏｓ」は、一定のクロック幅のクロック信号の立上り、又は立下りの変化点（時刻）を表すレジスタであって、既述の記憶部１６２を構成している。「ｏｕｔ」は、マスタークロック信号ｍｃｌｋをゲーティングするレジスタである。「ｒｓｔ」は、既述のリセット信号ｒｅｓｅｔである。「ｃｌｋ」は、生成されるクロック信号である。「ｇ＿ｍｃｌｋ」は、ゲーティングされたマスタークロック信号を表している。「ｉｆ」は、比較を表す。【００７１】
このリストで表されたクロック生成部６２では、ｒｓｔが入力されると、ｐｏｓを生成クロック幅の１／２に初期設定し、ｃｌｋを「０」（パルス生成しない）に設定する。ｐｏｓの初期値は、クロック生成部６１と同様に生成クロック幅の１／２以外であってもよい。【００７２】
ｇ＿ｍｃｌｋの立上りで、ｐｏｓがマスタークロック信号ｍｃｌｋのクロック信号幅以下か否かを判断し（９行目）、ｐｏｓがクロック信号幅ｍｃｌｋｗ以下の場合には、ｃｌｋを反転し、ｐｏｓに（生成クロック信号幅／２−ｍｃｌｋのクロック幅）を加算して、ｐｏｓの値を更新する（１０、１１行目）。ｐｏｓがｍｃｌｋのクロック信号幅を超えていた場合、ｐｏｓからｍｃｌｋのクロック信号幅を減算する（１４行目）。【００７３】
このクロック生成部６２では、ｍｃｌｋのサイクル毎に、生成クロック信号の立上り、立下り時刻をチェックするので、クロック生成部６１に比較して生成クロック信号のデューティは５０％に近くなる。【００７４】
このようなハードウェア記述言語（Verilog ＨＤＬ）で記述されたものからハードウェアに変換すると、図９に示すように、クロック生成部６２が構成されることになる。【００７５】
このクロック生成部６２では、記憶部１６２を構成するレジスタ（ｐｏｓ）４０が設置され、このレジスタ４０は多ビットのＤ−ＦＦで構成されている。このレジスタ４０のＣＬＫ入力にはゲーティングマスタークロック信号ｇ＿ｍｃｌｋが与えられている。このレジスタ４０のＤ入力側にはセレクタ４２、出力Ｑ側には比較器４４が設置される。セレクタ４２の前段には加算器４６及び減算器４８が設置され、これら加算器４６及び減算器４８の出力が比較器４４の出力値によって選択され、その選択出力がレジスタ４０に与えられる。比較器４４ではレジスタ４０の出力値ｐｏｓ〔１１：０〕とマスタークロック信号幅ｍｃｌｋｗとの比較が行われ、出力値ｐｏｓがマスタークロック信号幅ｍｃｌｋｗ以下か否かを判断し、クロック信号幅ｍｃｌｋｗ以下の場合、セレクタ４２は「１」側（パルス生成する）が選択され、クロック信号幅ｍｃｌｋｗを超えていた場合、セレクタ４２は「０」側が選択される。「１」が選択された場合には加算器４６の出力値、「０」が選択された場合には減算器４８の出力値がレジスタ４０に与えられる。加算器４６では、レジスタ４０の出力値ｐｏｓと、（生成クロック信号幅／２−マスタークロック信号幅）の値（ｃｌｋｗ／２−ｍｃｌｋｗ）とが加算され、また、減算器４８ではレジスタ４０の出力値ｐｏｓからマスタークロック信号幅ｍｃｌｋｗが減算される。また、リセット時には、レジスタ４０には初期値として生成クロック信号幅の２分の１の値（ｃｌｋｗ／２）が設定される。ｃｌｋｗ／２−ｍｃｌｋｗは加算器４６の前段に設置された定数出力部５０、ｍｃｌｋｗは減算器４８の前段に設置された定数出力部５２、ｃｌｋｗ／２は定数出力部５４によって与えられている。そして、レジスタ４０にはｒｓｔ（リセット信号＝ｒｅｓｅｔ）が与えられている。【００７６】
また、比較器４４の出力側にはレジスタ（ｃｌｋ）５６が設置され、このレジスタ５６のＣＥ入力に比較器４４の出力が与えられ、ＣＬＫ入力にはゲーティングマスタークロック信号ｇ＿ｍｃｌｋが入力され、ＲＳＴ入力にはリセット信号ｒｓｔが与えられている。このレジスタ５６の出力Ｑが生成クロック信号ＣＬＫ２として取り出されるとともに、インバータ５８で反転されてレジスタ５６のＤ入力に与えられている。【００７７】
次に、クロック生成部６２の動作について、図１０を参照して説明する。図１０は、図８及び図９に示すクロック生成部６２のクロック信号の生成動作を表すフローチャートである。【００７８】
クロック生成部６２が動作を開始すると、ｒｓｔの立上り又はｇ＿ｍｃｌｋの立上り（エッジ）の到来を待つ（ステップＳ３１）。この場合、ｒｓｔ動作を「１」、ｒｓｔの解除を「０」とし、その判定が行われる（ステップＳ３２）。ｒｓｔ＝１の場合、レジスタ４０、５６のリセット処理が実行され、レジスタ４０、５６の設定値が初期化される（ステップＳ３３）。この場合、定数出力部５４により、レジスタ４０にｃｌｋｗ／２が設定されるとともに、レジスタ５６にｃｌｋ＝０が設定された後、ステップＳ３１に戻る。そして、ｒｓｔ＝１が解除され、ｇ＿ｍｃｌｋの立上りが到来すると、ステップＳ３２を経て比較器４４の比較処理が実行される（ステップＳ３４）。レジスタ４０の出力値ｐｏｓとマスタークロック信号幅ｍｃｌｋｗとが比較される。この比較処理は、次のｍｃｌｋでｃｌｋを反転させるか否かの判断を表している。そして、ｐｏｓ≦ｍｃｌｋｗの場合には、ｃｌｋ＝！ｃｌｋ（ｃｌｋの反転）が設定され、ｐｏｓ＝ｐｏｓ＋（ｃｌｋｗ／２−ｍｃｌｋｗ）が設定される（ステップＳ３５）。また、ｐｏｓ＞ｍｃｌｋｗの場合には、ｐｏｓ＝ｐｏｓ−ｍｃｌｋｗが設定される（ステップＳ３６）。このような処理により、クロック生成部６２よりＣＬＫ２が生成される。【００７９】
第２の実施の形態【００８０】
次に、本発明の第２の実施の形態について、図１１及び図１２を参照して説明する。図１１はハードウェア記述言語（一例としてVerilog ＨＤＬ）で記述されたクロック生成装置２の構成例を示すリスト、図１２はその動作や生成クロック信号を表すタイミングチャートである。【００８１】
このクロック生成装置２は、ｒｓｔ（リセット信号）及びｃｌｋ＿ｅｎ（クロック生成制御信号）を入力することにより、クロック信号ｃｌｋ０、ｃｌｋ１、ｃｌｋ２を生成させ、ｃｌｋ０は１０〔ｎｓ〕、ｃｌｋ１は１２〔ｎｓ〕、ｃｌｋ２は２４〔ｎｓ〕のクロック幅を持つクロック信号を生成するVerilog ＨＤＬの記述例である。このリストでは、行番号を省略して処理内容を記述している。【００８２】
‘timescale 1ns / 1ns 
module clk_gen(rst, clk_en,clk0,clk1,clk2); 
input rst ; / ＊reset ＊/ 
input clk_en ; /＊clk_en＊/ 
output clk0 ; / ＊100MHz Master Clock 10ns＊/ 
output clk1 ; / ＊83.3MHz 12ns＊/ 
output clk2 ; / ＊41.7MHz 24ns＊/ 
wire mclk;
reg en ;
reg [11:0]pos1; 
reg [11:0]pos2; 
reg out1; 
reg clk2; 
osc iosk(mclk); / ＊OSC ＊/ 
always @ (mclk or clk_en) if(mclk==1'b0)en <= clk_en;
assign g_mclk = mclk && en ;
assign clk0 = g_mclk ;
always @ (posedge rst or negedge g_mclk) begin
if (rst==1) begin
pos1 <= 12/2 ;
out1 <= 0 ; 
end
else if (pos1 <= 10)begin
out1 <= 1 ; 
pos1 <= pos1+(12-10) ;
end
else begin 
out1 <= 0 ; 
pos1 <= pos1-10 ；
end
end 
assign clk1 = g_mclk && out1 ;
always @ (posedge rst or posedge g_mclk) begin
if (rst==1) begin
pos2 <= 24/2 ;
clk2 <= 0 ; 
end
else if (pos2 <= 10)begin
clk2 <= !clk2 ; 
pos2 <= pos2+(24/2-10) ;
end
else begin 
pos2 <= pos2-10 ；
end
end 
endmodule【００８３】
この記述例において、「ｃｌｋ０」は、生成クロック信号であるとともに、ｇ＿ｍｃｌｋ（ゲーティングマスタークロック信号）に相当する。“ｏｓｃ  ｉｏｓｃ（ｍｃｌｋ）；”の記述は、ｍｃｌｋ（マスタークロック信号）を発振する発振器モジュールを示す。２番目の「ａｌｗａｙｓ」記述文（ｂｅｇｉｎ〜ｅｎｄ）と、その次の「ａｓｓｉｇｎ」記述文で、ｃｌｋ１（生成クロック信号、既述のＣＬＫ１に相当する）が生成される。また、３番目の「ａｌｗａｙｓ」記述文（ｂｅｇｉｎ〜ｅｎｄ）と、その次の「ａｓｓｉｇｎ」記述文で、ｃｌｋ２（生成クロック信号、既述のＣＬＫ２に相当する）が生成される。【００８４】
このようなクロック生成装置２において、ｍｃｌｋを図１２のＡ、ｃｌｋ＿ｅｎを図１２のＥ、ｒｓｔを図１２のＦのように設定すれば、ｃｌｋ０（図１２のＢ）、ｃｌｋ１（図１２のＣ）、ｃｌｋ２（図１２のＤ）となる。【００８５】
次に、第２の実施の形態に係るクロック生成装置２の構成例について、図１３を参照して説明する。図１３は、ハードウェア記述言語で記載されたクロック生成装置２のハードウェアの構成例を示す回路図である。この実施の形態において、第１の実施の形態のクロック生成装置２（図１）、クロック生成部６１（図５）、クロック生成部６２（図９）と共通部分には共通符号を付してある。【００８６】
このクロック生成装置２は、ゲート部４とともに複数のクロック生成部６１、６２で構成され、ゲート部４は、図１に示すゲート部４と同一構成であり、クロック生成部６１は、図５に示すクロック生成部６１と同一構成であり、また、クロック生成部６２は、図９に示すクロック生成部６２と同一構成である。【００８７】
このクロック生成部６１は、既述した通り、記憶部１６１を構成するレジスタ（ｐｏｓ１）２０が設置され、このレジスタ２０は多ビットのＤ−ＦＦで構成されている。このレジスタ２０のＣＬＫ入力にはｇ＿ｍｃｌｋが反転されて与えられている。このレジスタ２０のＤ入力側にはセレクタ２２、出力Ｑ側には比較器２４が設置される。セレクタ２２の前段には加算器２６及び減算器２８が設置され、これら加算器２６及び減算器２８の出力が比較器２４の出力値によって選択され、その選択出力がレジスタ２０に与えられる。比較器２４ではレジスタ２０の出力値ｐｏｓ１〔１１：０〕とマスタークロック信号幅ｍｃｌｋｗとの比較が行われ、出力値ｐｏｓ１がマスタークロック信号ｍｃｌｋのクロック信号幅ｍｃｌｋｗ以内であるか否かを判断し、クロック信号幅ｍｃｌｋｗ以内の場合、セレクタ２２は「１」側（パルス生成する）が選択され、クロック信号幅ｍｃｌｋｗを超えていた場合、セレクタ２２は「０」側が選択される。「１」が選択された場合には加算器２６の出力値、「０」が選択された場合には減算器２８の出力値がレジスタ２０に与えられる。加算器２６では、レジスタ２０の出力値ｐｏｓ１と、（生成クロック信号幅−マスタークロック信号幅）の値（ｃｌｋｗ−ｍｃｌｋｗ）とが加算され、また、減算器２８ではレジスタ２０の出力値ｐｏｓ１からマスタークロック信号幅ｍｃｌｋｗが減算される。また、リセット時には、レジスタ２０には初期値として生成クロック信号幅の２分の１の値（ｃｌｋｗ／２）が設定される。ｃｌｋｗ−ｍｃｌｋｗは加算器２６の前段に設置された定数出力部３０、ｍｃｌｋｗは減算器２８の前段に設置された定数出力部３２、ｃｌｋｗ／２は定数出力部３４によって与えられている。そして、レジスタ２０にはｒｓｔ（リセット信号＝ｒｅｓｅｔ）が与えられている。【００８８】
比較器２４の出力側には、既述したように、レジスタ（ｏｕｔ１）３６が設置され、このレジスタ３６のＤ入力に比較器２４の出力が与えられ、ＣＬＫ入力にはゲーティングマスタークロック信号ｇ＿ｍｃｌｋが反転されて入力され、ＲＳＴ入力にはリセット信号ｒｅｓｅｔが与えられている。このレジスタ３６の出力側にはＡＮＤ回路３８が設置され、このＡＮＤ回路３８にはレジスタ３６の出力Ｑとｇ＿ｍｃｌｋとが与えられている。ＡＮＤ回路３８から生成クロック信号ｃｌｋ１（＝ＣＬＫ１）が得られている。【００８９】
また、クロック生成部６２には同様に、記憶部１６２を構成するレジスタ（ｐｏｓ２）４０が設置され、このレジスタ４０は多ビットのＤ−ＦＦで構成されている。このレジスタ４０のＣＬＫ入力にはゲーティングマスタークロック信号ｇ＿ｍｃｌｋが与えられている。このレジスタ４０のＤ入力側にはセレクタ４２、出力Ｑ側には比較器４４が設置される。セレクタ４２の前段には加算器４６及び減算器４８が設置され、これら加算器４６及び減算器４８の出力が比較器４４の出力値によって選択され、その選択出力がレジスタ４０に与えられる。比較器４４ではレジスタ４０の出力値ｐｏｓ２〔１１：０〕とマスタークロック信号幅ｍｃｌｋｗとの比較が行われ、レジスタ４０の出力値ｐｏｓ２がマスタークロック信号ｍｃｌｋのクロック信号幅ｍｃｌｋｗ以内か否かを判断し、クロック信号幅ｍｃｌｋｗ以内の場合、セレクタ４２は「１」側（クロック反転）が選択され、クロック信号幅ｍｃｌｋｗを超えていた場合、セレクタ４２は「０」側が選択される。「１」が選択された場合には加算器４６の出力値、「０」が選択された場合には減算器４８の出力値がレジスタ４０に与えられる。加算器４６では、レジスタ４０の出力値ｐｏｓ２と、（生成クロック信号幅／２−マスタークロック信号幅）の値（ｃｌｋｗ／２−ｍｃｌｋｗ）とが加算され、また、減算器４８ではレジスタ４０の出力値ｐｏｓ２からマスタークロック信号幅（ｍｃｌｋｗ）が減算される。また、リセット時には、レジスタ４０には初期値として生成クロック信号幅の２分の１の値（ｃｌｋｗ／２）が設定される。ｃｌｋｗ／２−ｍｃｌｋｗは加算器４６の前段に設置された定数出力部５０、ｍｃｌｋｗは減算器４８の前段に設置された定数出力部３２（図９の定数出力部５２に相当）、ｃｌｋｗ／２は定数出力部５４によって与えられている。そして、レジスタ４０にはリセット信号ｒｅｓｅｔが与えられている。【００９０】
また、比較器４４の出力側にはレジスタ（ｃｌｋ２）５６が設置され、このレジスタ５６のＣＥ入力に比較器４４の出力が与えられ、ＣＬＫ入力にはゲーティングマスタークロック信号ｇ＿ｍｃｌｋが入力され、ＲＳＴ入力にはリセット信号ｒｅｓｅｔが与えられている。このレジスタ５６の出力Ｑが生成クロック信号ｃｌｋ２として取り出されるとともに、インバータ５８で反転されてレジスタ５６のＤ入力に与えられている。【００９１】
次に、この実施の形態に係るクロック生成装置２の動作について、図１４〜図１９を参照して説明する。図１４は、ｍｃｌｋのゲート動作を示すフローチャートである。図１５及び図１６は、論理回路の動作を示すフローチャートである。図１７及び図１８はクロック生成部６１のクロック信号の生成動作を示すフローチャートである。図１９はクロック生成部６２のクロック信号の生成動作を示すフローチャートである。【００９２】
図１４に示すように、ｍｃｌｋ（マスタークロック信号）又はｃｌｋ＿ｅｎ（クロック生成制御信号）の変化を待つ（ステップＳ４１）。【００９３】
そこで、ｍｃｌｋの値、即ち、ｍｃｌｋ＝０であるか否かを判定し（ステップＳ４２）、ｍｃｌｋ≠０の場合には、ステップＳ４１に戻る。また、ｍｃｌｋ＝０の場合には、イネーブル信号ｅｎとしてｃｌｋ＿ｅｎを入力し（ステップＳ４３）、ステップＳ４１に戻る。即ち、ｍｃｌｋが０の状態を前提としてｃｌｋ＿ｅｎがｅｎに与えられる。これにより、クロック生成動作の信頼性が高められる。【００９４】
また、図１５に示すように、ｃｌｋ０はゲート部４を通過するｇ＿ｍｃｌｋで設定され（ステップＳ５０）、また、図１６に示すように、ｇ＿ｍｃｌｋはｍｃｌｋとイネーブル信号ｅｎ（＝ｃｌｋ＿ｅｎ）との論理積で与えられる（ステップＳ６０）。この処理はＡＮＤ回路１２（図１３）の動作を示し、ｍｃｌｋをｅｎでゲーティングしている。【００９５】
この場合、ｇ＿ｍｃｌｋのパルスが得られない場合には、ｇ＿ｍｃｌｋが停止された時点の状態が各クロック生成部６１、６２に保持されている。【００９６】
そして、クロック生成部６１のクロック生成処理では、図１７に示すように、ｒｓｔの立上り又はｇ＿ｍｃｌｋの立下りを待ち（ステップＳ７１）、ｒｓｔが到来したか否かを判定し（ステップＳ７２）、ｒｓｔ＝１の場合には、リセットであるから、レジスタ２０をｐｏｓ１＝１２／２に設定するとともに、レジスタ３６をｏｕｔ１＝０に設定（初期化）し（ステップＳ７３）、ステップＳ７１に戻る。【００９７】
ステップＳ７２において、ｒｓｔ＝０の場合には、ｐｏｓ１≦１０であるか否かを判定し（ステップＳ７４）、この判定では次のｍｃｌｋでクロック信号ｃｌｋを発生させるか否かを判定している。ここで、ｐｏｓ１≦１０の場合には、ｏｕｔ１＝１及びｐｏｓ１＝ｐｏｓ１＋（１２−１０）を設定し（ステップＳ７５）、ステップＳ７１に戻る。ｐｏｓ１は、レジスタ２０の出力、ｏｕｔ１は、レジスタ３６の出力、（１２−１０）は、既述のサイクル幅（Ｔ1 −Ｔ0 ）を示している。【００９８】
また、ステップＳ７４において、ｐｏｓ１＞１０の場合には、ｏｕｔ１＝０及びｐｏｓ１＝ｐｏｓ１−１０を設定し（ステップＳ７６）、ステップＳ７１に戻る。「１０」は、既述のサイクル幅Ｔ0 を示している。【００９９】
この場合、図１８に示すように、ｃｌｋ１はｇ＿ｍｃｌｋとｏｕｔ１との論理積で与えられる（ステップＳ８０）。この処理はＡＮＤ回路３８（図１３）の動作を示している。【０１００】
また、クロック生成部６２のクロック生成処理では、図１９に示すように、ｒｓｔの立上り又はｇ＿ｍｃｌｋの立上りを待ち（ステップＳ９１）、ｒｓｔが到来したか否かを判定し（ステップＳ９２）、ｒｓｔ＝１の場合には、リセットであるから、レジスタ４０をｐｏｓ２＝２４／２に設定するとともに、レジスタ５６をｃｌｋ２＝０に設定（初期化）し（ステップＳ９３）、ステップＳ９１に戻る。【０１０１】
ステップＳ９２において、ｒｓｔ＝０の場合には、ｐｏｓ２≦１０であるか否かを判定し（ステップＳ９４）、この判定では次のｍｃｌｋでクロック信号ｃｌｋを反転させるか否かを判定している。ここで、ｐｏｓ２≦１０の場合には、ｃｌｋ２＝！ｃｌｋ２（ｃｌｋ２の反転）を設定するとともに、ｐｏｓ２＝ｐｏｓ２＋（２４／２−１０）を設定し（ステップＳ９５）、ステップＳ９１に戻る。ｐｏｓ２は、レジスタ４０の出力、ｃｌｋ２は、レジスタ５６の出力、「１０」は、既述のサイクル幅Ｔ0 を示し、（２４／２−１０）は、既述のサイクル幅（Ｔ2 ／２−Ｔ0 ）を示している。【０１０２】
また、ステップＳ９４において、ｐｏｓ２＞１０の場合には、ｐｏｓ２＝ｐｏｓ２−１０を設定し（ステップＳ９６）、ステップＳ９１に戻る。【０１０３】
このような処理により、既述の生成クロック信号ｃｌｋ０、ｃｌｋ１、ｃｌｋ２（図１２）を生成させることができる。【０１０４】
第３の実施の形態【０１０５】
本発明の第３の実施の形態について、図２０及び図２１を参照して説明する。図２０は、第３の実施の形態に係る動作検証装置７０を示すブロック図、図２１は、制御動作シーケンスを示している。【０１０６】
この動作検証装置７０は、携帯電話機等の検証対象装置７２の動作検証に用いられる。この動作検証装置７０には、検証対象装置７２に対応する既述のクロック生成装置２、入力信号生成装置７４及び出力信号記憶装置７６が設置されている。【０１０７】
入力信号生成装置７４は、入力信号生成部７８及び入力信号バッファ８０を備えている。入力信号生成部７８は、検証対象装置７２が必要とする入力信号ｉｎ１、ｉｎ２・・・ｉｎｎを発生し、入力信号バッファ８０はＲＡＭ（Random-Access Memory）等で構成され、入力信号生成部７８に発生させた入力信号を記憶する。この入力信号バッファ８０から読み出された入力信号が検証対象装置７２に与えられる。また、入力信号生成装置７４は、入力信号バッファ８０の入力信号の記憶、読出しに応じてクロック生成装置２のクロック生成動作を制御するクロック生成制御信号ｃｌｋ＿ｓｔｏｐ１を発生する。このｃｌｋ＿ｓｔｏｐ１はＮＯＲ回路８２に与えられ、出力信号記憶装置７６からのクロック生成制御信号ｃｌｋ＿ｓｔｏｐ２と論理和が取られ、反転される。ＮＯＲ回路８２の出力（ｃｌｋ＿ｅｎ）がクロック生成装置２に与えられ、クロック生成装置２のクロック生成動作が制御される。入力信号バッファ８０からの入力信号の読出しが終了すると、ｃｌｋ＿ｓｔｏｐ１をＨレベル（クロック停止）としてクロック生成装置２のクロック生成動作を停止させ、入力信号バッファ８０からの入力信号の読出しを再開させるには、ｃｌｋ＿ｓｔｏｐ１をＬレベル（クロック再開）に変化させればよい。但し、ｃｌｋ＿ｅｎは、ｃｌｋ＿ｓｔｏｐ１及びｃｌｋ＿ｓｔｏｐ２のＮＯＲなので、いずれかの入力がＨレベルになるとＬとなり、クロック生成は停止する。入力信号バッファ８０は、入力信号の読出しを完了すると、リセットし、入力信号生成部７８から新たな入力信号が書き込まれる。【０１０８】
クロック生成装置２は、図１又は図１３に記載された構成を備え、検証対象装置７２が必要とする複数のクロック信号ＣＬＫ０、ＣＬＫ１、ＣＬＫ２・・・ＣＬＫｎを生成する。また、入力信号バッファ８０には読出し制御信号として例えば、クロック信号ＣＬＫ０が与えられている。また、クロック生成装置２は、ＮＯＲ回路８２を通して入力されるｃｌｋ＿ｅｎにより、既述のクロック生成動作が制御される。即ち、ｃｌｋ＿ｅｎがＨレベルの場合にクロック生成、ｃｌｋ＿ｅｎがＬレベルの場合にクロック生成の停止となる。【０１０９】
出力信号記憶装置７６は、出力信号バッファ８４及び出力信号記憶部８６を備えている。出力信号バッファ８４には、検証対象装置７２の出力信号（観測信号）Ｏ１、Ｏ２・・・Ｏｎが取り込まれる。この出力信号バッファ８４は入力信号バッファ８０と同様にＲＡＭ等で構成され、検証対象装置７２が発生した出力信号を記憶する。この出力信号バッファ８４には書込み制御信号として例えば、クロック信号ＣＬＫ０が与えられている。また、出力信号記憶装置７６は、検証対象装置７２の出力信号の記憶又は記憶信号の転送に応じてクロック生成装置２のクロック生成動作を制御するクロック生成制御信号ｃｌｋ＿ｓｔｏｐ２を発生する。このｃｌｋ＿ｓｔｏｐ２は、同様に、ＮＯＲ回路８２に与えられ、クロック生成装置２のクロック生成動作の制御に用いられる。この場合、出力信号バッファ８４の記憶容量が例えば、限界量に達すると、ｃｌｋ＿ｓｔｏｐ２をＨレベルに変化させることにより、クロック生成装置２の動作を停止させ、出力信号バッファ８４の記憶を再開させるには、ｃｌｋ＿ｓｔｏｐ２をＬレベル（クロック再開）に変化させればよい。【０１１０】
そして、出力信号記憶部８６は例えば、ハードディスク記憶装置等で構成され、出力信号バッファ８４が記憶している出力信号（観測信号）の転送を受け、その出力信号を記憶する。このデータ転送の後、出力信号バッファ８４はリセットされ、次の出力信号を記憶する。【０１１１】
このような動作検証装置７０によれば、入力信号生成装置７４では、入力信号生成部７８で生成させた入力信号を入力信号バッファ８０に記憶可能な時間幅の入力信号を一括して生成させ、それを入力信号バッファ８０に転送し、記憶させる。このような入力信号の生成及び転送の処理の間、入力信号生成装置７４から出力されているｃｌｋ＿ｓｔｏｐ１をＨレベル（クロック停止）とすることにより、クロック生成装置２のクロック生成動作の停止を指示し、検証対象装置７２の動作を停止させる。【０１１２】
入力信号生成装置７４は、入力信号バッファ８０に必要量の入力信号が転送された時点で、ｃｌｋ＿ｓｔｏｐ１をＬレベル（クロック再開）に変化させ、クロック生成動作の再開を指示する。ｃｌｋ＿ｓｔｏｐ１、ｃｌｋ＿ｓｔｏｐ２が共にＬとなれば、クロック生成装置２から検証対象装置７２にＣＬＫ０、ＣＬＫ１、ＣＬＫ２・・・ＣＬＫｎが供給される。【０１１３】
入力信号生成装置７４は、入力信号バッファ８０の入力信号の読出しが終了した場合、即ち、読み出すべき入力信号がない場合には、クロック生成装置２にクロック停止を指示するとともに、入力信号生成部７８に入力信号を生成させ、それを入力信号バッファ８０に転送させ、これが終了した時点で、入力信号の生成を開始させる。この場合、前回の入力信号バッファ８０ヘの入力信号の転送終了後、入力信号の生成の開始を検証対象装置７２の動作と並行させてもよい。【０１１４】
このような動作を検証対象装置７２の動作検証に必要な全ての入力信号の生成を完了するまで繰り返し行う。そして、出力信号記憶装置７６では、検証対象装置７２の出力信号（観測信号）Ｏ１、Ｏ２・・・Ｏｎを検証対象装置７２の動作と並行して出力信号バッファ８４に取り込み、蓄積する。出力信号記憶装置７６は、出力信号バッファ８４の記憶容量が所定量例えば、限界量に到達すると、ｃｌｋ＿ｓｔｏｐ２をＨレベル（クロック停止）に変化させ、クロック生成装置２にクロック停止を指示し、検証対象装置７２の動作を停止させる。出力信号バッファ８４に記憶されている出力信号Ｏ１、Ｏ２・・・Ｏｎは出力信号記憶部８６に転送され、その転送が終了した時点で、出力信号バッファ８４もリセットする。このとき、ｃｌｋ＿ｓｔｏｐ２をＬレベル（クロック再開）に変化させることにより、クロック生成装置２にクロック生成動作を再開させるとともに、検証対象装置７２の動作を再開させる。【０１１５】
出力信号バッファ８４のデータ転送の際に、クロック生成装置２のクロック生成動作が停止するので、入力信号バッファ８０に対する読出し制御信号も停止される。そして、クロック生成装置２にクロック生成動作を再開させるとともに、検証対象装置７２の動作開始に対応し、入力信号バッファ８０から入力信号の読出しも再開される。【０１１６】
この場合、クロック生成装置２では、検証対象装置７２の一番高い周波数のクロックに対応するクロックをｍｃｌｋとし、このｍｃｌｋにおいて、ｃｌｋ＿ｅｎによってゲーティングすることによって、ＣＬＫ０、ＣＬＫ１、ＣＬＫ２・・・ＣＬＫｎを生成させ、停止させることができる。【０１１７】
このような動作検証装置７０について、検証動作を図２１を参照して説明する。入力信号生成部７８では、予め設定された検証時間の満了を監視するため、終了時刻が到来したか否かを判定し（ステップＳ１０１）、終了時刻が到来している場合には、入力信号の生成を終了させる（ステップＳ１０２）。終了時刻が到来していなければ、入力信号を生成し（ステップＳ１０３）、この入力信号を入力信号バッファ８０に転送し（ステップＳ１０４）、割込み待ち（ステップＳ１０５）を維持し、ステップＳ１０１に戻る。【０１１８】
入力信号バッファ８０では、入力信号生成部７８の入力信号生成（ステップＳ１０３）に対応して入力信号の生成を待ち（ステップＳ２０１）、入力信号生成部７８からの入力信号を受け、それを記憶する（ステップＳ２０２）。入力信号バッファ８０は検証対象装置７２に入力信号を出力し（ステップＳ２０３）、その入力信号バッファ８０の入力信号が完了した場合、待機している入力信号生成部７８に対し（ステップＳ１０５）、割込みを生成し（ステップＳ２０４）、入力信号の終了を通知し、ステップＳ２０１に戻る。【０１１９】
クロック生成装置２では、入力信号が入力信号バッファ８０に記憶されたこと（ステップＳ２０２）を受け、クロック生成を開始、又は再開し（ステップＳ３０１）、クロック信号を生成する（ステップＳ３０２）。生成されたクロック信号ＣＬＫ０、ＣＬＫ１、ＣＬＫ２・・・ＣＬＫｎは検証対象装置７２に与えられ、クロック信号ＣＬＫ０は入力信号バッファ８０や出力信号バッファ８４にも供給される。そして、入力信号バッファ８０からの割込み（ステップＳ２０４）を受け、そのクロック信号の生成を停止し（ステップＳ３０３）、ステップＳ３０１に戻る。【０１２０】
出力信号バッファ８４では、検証対象装置７２からの出力信号を取り込み、蓄積し（ステップＳ４０１）、その記憶容量が限界に達したとき、割込みを生成し（ステップＳ４０２）、記憶している出力信号を出力信号記憶部８６（図２０）に送信し（ステップＳ４０３）、転送完了を待ち（ステップＳ４０４）、転送完了の後、ステップＳ４０１に戻る。【０１２１】
出力信号記憶部８６では、割込み待ちで待機し（ステップＳ５０１）、出力信号バッファ８４からの割込み（ステップＳ４０２）を受け、出力信号バッファ８４からの出力信号を受信し（ステップＳ５０２）、この出力信号は外部記憶装置等に保存され（ステップＳ５０３）、動作検証に用いられる。【０１２２】
第４の実施の形態【０１２３】
次に、本発明の第４の実施の形態について、図２２及び図２３を参照して説明する。図２２は、第４の実施の形態に係る動作検証システム９０を示すブロック図、図２３は検証制御ＰＣの構成例を示すブロック図である。この実施の形態において、第１の実施の形態（図１）、第３の実施の形態（図２０）と同一部分には同一符号を付してある。【０１２４】
この動作検証システム９０には動作検証部９２及びパーソナルコンピュータ（ＰＣ）９４が設置され、動作検証部９２とＰＣ９４とはバス９６を以て接続されている。動作検証部９２は、検証対象装置７２の動作を検証するものであって、この実施の形態では、検証対象装置７２として例えば、ＬＳＩ（Large Scale Integration Circuit ）９８が設置されている。【０１２５】
動作検証部９２には、検証信号処理部１００、入力信号バッファ８０としてメモリ１０２、出力信号バッファ８４としてメモリ１０４、１０６が設置されている。検証信号処理部１００は例えば、ＦＰＧＡ（Field Programmable Gate Arrays）によりＰＣインターフェイスを構成するとともに、クロック信号生成、入力メモリ制御、出力メモリ制御等の各種の処理を実行する。この検証信号処理部１００では、ＰＣインターフェイス（Ｉ／Ｆ）１０８、クロック生成装置２、入力メモリ制御部１１０、出力メモリ制御部１１２が設置されている。ＰＣ−Ｉ／Ｆ１０８にはバス９６を介してＰＣ９４が接続されてＰＣ９４との信号やデータの授受に用いられるとともに、ＯＳＣ８からマスタークロック信号ｍｃｌｋが与えられている。クロック生成装置２は、ＬＳＩ９８等の動作に必要なクロック信号を生成し、その構成は、既述の通りである（図１、図１１、図１３）。入力メモリ制御部１１０は、メモリ１０２への書込みや読出しを制御し、ＰＣ９４に発生させた入力信号（ＤＡＴＡ）をメモリ１０２に格納し、その読出し等のメモリ制御を行う。出力メモリ制御部１１２は、メモリ１０４、１０６に対する出力信号の書込みや読出しを制御し、メモリ１０４、１０６に記憶されている出力信号（ＤＡＴＡ）のＰＣ９４への転送制御を行う。【０１２６】
そして、ＰＣ９４は、入力信号生成プログラムを備えるとともに、入力データ転送、出力データ転送、出力データの記憶等を実行し、具体的には、動作検証部９２の検証動作制御とともに、既述の入力信号生成部７８及び出力信号記憶部８６を構成する。その構成は例えば、図２３に示すように、ＣＰＵ（Central Processing Unit ）等で構成されるプロセッサ１１４、記憶部１１６、インターフェイス（Ｉ／Ｆ）１１８、表示部１２０及びキーボード（ＫＢ）１２２等を備え、記憶部１１６は、検証制御プログラムを格納するとともに、既述の出力信号記憶部８６を構成している。入力信号生成部７８は、プロセッサ１１４等で構成される。【０１２７】
このような動作検証システム９０によれば、既述の制御動作シーケンス（図２１）と同様の動作がＰＣ９４によって実行され、複数のクロック信号で動作するＬＳＩ９８等の検証対象装置７２について、動作に必要な複数のクロック信号の供給、その停止又は再開を制御するとともに、このクロック信号の制御に対応して入力信号の供給又はその停止を制御し、検証対象装置７２から得られる出力信号を記憶することができる。また、このような動作検証において、クロック生成装置２では、クロック信号の停止から再開に至る時点で、複数のクロック信号の位相関係は保持され、その位相関係を保持したままでクロック信号の供給を開始することができるので、検証対象装置７２の動作条件を変更させることがなく、検証対象装置７２に供給する入力信号、検証対象装置７２から得られる出力信号は連続して、長時間に亘って記憶することができる。しかも、実用的な速度で動作するクロック生成を実現することができる。【０１２８】
また、クロック信号の位相関係がクロック信号の停止、再開によって影響されないので、入力信号を記憶する入力信号バッファ８０、出力信号を記憶する出力信号バッファ８４の記憶容量は実用的な大きさに設定し、入力信号及び出力信号の連続時間はその記憶容量に応じて定めることができ、連続した動作と同一の動作状態を以て長時間に亘る動作記録が可能である。記憶容量は極端に大きくする必要がないので、入力信号バッファ８０や出力信号バッファ８４に用いるメモリは比較的安価なものを用いることができ、経済的である。【０１２９】
次に、検証対象装置７２の一例について、図２４を参照して説明する。図２４は、検証対象装置７２の一例であるモバイルフォンディジタルベースバンドＬＳＩ（MOBILE PHONE DBB LSI）１２４及び周辺回路を示すブロック図である。【０１３０】
この検証対象装置７２であるＬＳＩ１２４には、ＣＰＵ（Central Processing Unit ）１２６、モデム（ＭＯＤＥＭ）１２８、コーデック（ＣＯＤＥＣ）１３０、出力バスインターフェイス（ＥＸＴＢＵＳ＿Ｉ／Ｆ）１３２、ＵＳＢインターフェイス（ＵＳＢ＿Ｉ／Ｆ）１３４、ＬＣＤ（Liquid Crystal Display）インターフェイス（ＬＣＤ＿Ｉ／Ｆ）１３６、キーボードインターフェイス（ＫＢ＿Ｉ／Ｆ）１３８が備えられ、ＭＯＤＥＭ１２８にはＤＳＰ（Digital Signal Processor）１４０が内蔵されている。【０１３１】
このＬＳＩ１２４を動作させるためには、ＣＰＵ１２６にはＣＰＵクロック信号ＣＰＵＣＬＫとして例えば、ＣＬＫ０、ＵＳＢ＿Ｉ／Ｆ１３４にはＵＳＢクロック信号ＵＳＢＣＬＫとして例えば、ＣＬＫ１、ＭＯＤＥＭ１２８にはモデムクロック信号ＭＯＤＥＭＣＬＫとして例えば、ＣＬＫ２を必要としている。これらはクロック生成装置２から供給される。【０１３２】
そして、ＵＳＢ＿Ｉ／Ｆ１３４にはＵＳＢホスト（ＵＳＢ＿ＨＯＳＴ）１４２が接続され、ＬＣＤ＿Ｉ／Ｆ１３６にはＬＣＤ１４４が接続され、また、ＫＢ＿Ｉ／Ｆ１３８にはキーボード（ＫＢ）１４６が接続され、これらの外部回路や機器から入力信号が加えられる。この入力信号は入力信号生成装置７４から供給される。【０１３３】
また、ＥＸＴＢＵＳ＿Ｉ／Ｆ１３２には外部記憶素子としてＳＤＲＡＭ（Synchronous Dynamic Random-Access Memory）１４８が接続され、ＭＯＤＥＭ１２８にはアナログベースバンド部（ＡＢＢ）１５０が接続され、このＡＢＢ１５０には無線部（ＲＦ）１５２が接続されている。１５４はアンテナである。即ち、ＬＳＩ１２４の出力信号は、これらの外部回路や機器に対して供給されるが、出力信号記憶装置７６に取り込まれて記憶される。【０１３４】
このような検証対象装置７２であるＬＳＩ１２４について、既述した動作検証装置７０を以てクロック信号及び入力信号を供給し、一連の動作によって得られる出力信号の記憶を長時間に亘って行うことができ、信頼性の高い動作検証を実現することができる。【０１３５】
次に、以上説明した各実施の形態について、特徴事項、利点及び変形例を列挙して説明する。【０１３６】
(1) 第３の実施の形態において、出力信号バッファ８４は、検証対象装置７２に組み込んだ構成としてもよい。【０１３７】
(2) 上記実施の形態では、検証対象装置７２としてＬＳＩ９８、１２４を例示したが、複数のクロック信号を用いる電子機器であれば、検証対象装置として用いることができ、実施の形態のＬＳＩ９８、１２４に限定されるものではない。【０１３８】
(3) 第４の実施の形態では、ＰＣ９４で入力信号生成部７８を構成したが、図２５に示すように、検証信号処理部１００に入力信号生成部７８を設置し、この検証信号処理部１００をＰＣ９４側で制御し、同様の検証動作を行うようにしてもよい。【０１３９】
(4) 上記実施の形態では、出力信号バッファ８４が出力信号記憶装置７６に設置されているが、検証対象装置７２内に組み込む構成としてもよい。斯かる構成とすれば、検証対象装置７２から動作検証データを直接取り出すことができ、動作検証の容易化が図られる。【０１４０】
(5) 上記実施の形態において、クロック生成部６１〜６Ｎは、マスタークロック信号ｍｃｌｋのクロックサイクル毎に、一定クロック幅のクロック信号のエッジが前記クロック信号内にあるかを判断し、ある場合はマスタークロック信号のエッジで変化する不定クロック幅のクロック信号をその代替クロックとして生成させることができる。【０１４１】
以上述べたように、本発明の最も好ましい実施の形態等について説明したが、本発明は、上記記載に限定されるものではなく、請求の範囲に記載され、又は発明を実施するための最良の形態に開示された発明の要旨に基づき、当業者において様々な変形や変更が可能であることは勿論であり、斯かる変形や変更が、本発明の範囲に含まれることは言うまでもない。
【産業上の利用可能性】
【０１４２】
本発明によれば、複数のクロック信号が得られるとともに、各クロック信号を停止させた際の位相関係を、各クロック信号の生成再開時に維持させることができ、クロック信号の生成、その停止、生成再開に関係なく、各クロック信号の位相関係を維持することができ、例えば、動作検証装置に用いて、検証対象装置の動作の連続性を維持し、長時間に亘る動作記録が可能になる。
【図１】
2006087806.tif 000002
【図２】
2006087806.tif 000003
【図３】
2006087806.tif 000004
【図４】
2006087806.tif 000005
【図５】
2006087806.tif 000006
【図６】
2006087806.tif 000007
【図７】
2006087806.tif 000008
【図８】
2006087806.tif 000009
【図９】
2006087806.tif 000010
【図１０】
2006087806.tif 000011
【図１１】
2006087806.tif 000012
【図１２】
2006087806.tif 000013
【図１３】
2006087806.tif 000014
【図１４】
2006087806.tif 000015
【図１５】
2006087806.tif 000016
【図１６】
2006087806.tif 000017
【図１７】
2006087806.tif 000018
【図１８】
2006087806.tif 000019
【図１９】
2006087806.tif 000020
【図２０】
2006087806.tif 000021
【図２１】
2006087806.tif 000022
【図２２】
2006087806.tif 000023
【図２３】
2006087806.tif 000024
【図２４】
2006087806.tif 000025
【図２５】
2006087806.tif 000026
【手続補正書】
【提出日】平成19年5月11日(2007.5.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のクロック信号を生成する１つ以上のクロック生成部を備え、該クロック生成部は、クロック生成動作を停止状態から動作状態に復帰させた際に、停止時の位相に相当する前記クロック信号を継続して生成させる構成としたことを特徴とするクロック生成装置。
【請求項２】
複数のクロック信号を生成する１つ以上のクロック生成部を備え、該クロック生成部は、制御信号によりクロック生成動作が切り換えられ、クロック生成動作を停止状態から動作状態に復帰させた際に、停止時の位相に相当する前記クロック信号を継続して生成させる構成としたことを特徴とするクロック生成装置。
【請求項３】
マスタークロック信号を発生するマスタークロック発生部と、
このマスタークロック発生部の前記マスタークロック信号により複数のクロック信号を生成する１つ以上のクロック生成部とを備え、
該クロック生成部は、制御信号によりクロック生成動作が切り換えられ、クロック生成動作を停止状態から動作状態に復帰させた際に、停止時の位相に相当する前記クロック信号を継続して生成させる構成としたことを特徴とするクロック生成装置。
【請求項４】
検証対象装置が必要とするクロック信号及び入力信号を付与し、前記検証対象装置の動作を検証する動作検証装置であって、
前記検証対象装置が必要とする前記入力信号を生成する入力信号生成部と、
前記検証対象装置が必要とする複数のクロック信号を生成するクロック生成装置と、
前記検証対象装置から得られる出力信号を記憶する出力信号記憶部とを備え、
前記クロック生成装置が、複数のクロック信号を生成する１つ以上のクロック生成部を備え、
前記クロック生成部は、制御信号によりクロック生成動作が制御され、クロック生成動作を停止状態から動作状態に復帰させた際に、停止時の位相に相当する前記クロック信号を継続して生成させる構成としたことを特徴とする動作検証装置。
【請求項５】
複数のクロック信号を生成する１つ以上のクロック生成部を備え、クロック生成動作を停止状態から動作状態に復帰させた際に、停止時の位相に相当する前記クロック信号を継続して生成させる処理を含むことを特徴とするクロック生成方法。
【請求項６】
マスタークロック発生部にマスタークロック信号を発生させる処理と、
１つ以上のクロック生成部に、前記マスタークロック信号により複数のクロック信号を生成させる処理と、
制御信号によりクロック生成動作を切り換え、クロック生成動作を停止状態から動作状態に復帰させた際に、停止時の位相に相当する前記クロック信号を前記クロック生成部に継続して生成させる処理と、
を含む構成としたことを特徴とするクロック生成方法。
【請求項７】
検証対象装置が必要とするクロック信号及び入力信号を付与し、前記検証対象装置の動作を検証する動作検証方法であって、
入力信号生成部に前記検証対象装置が必要とする前記入力信号を生成させる処理と、
クロック生成装置に前記検証対象装置が必要とする複数のクロック信号を生成させる処理と、
出力信号記憶部に前記検証対象装置から得られる出力信号を記憶させる処理と、
前記クロック生成装置に備える１つ以上のクロック生成部に複数のクロック信号を生成させる処理と、
前記クロック生成部に、制御信号によりクロック生成動作を制御し、クロック生成動作を停止状態から動作状態に復帰させた際に、停止時の位相に相当する前記クロック信号を継続して生成させる処理と、
を含む構成としたことを特徴とする動作検証方法。
【請求項８】
複数のクロック信号を生成する１つ以上のクロック生成部を備え、クロック生成動作を停止状態から動作状態に復帰させた際に、停止時の位相に相当する前記クロック信号を継続して生成させるステップをコンピュータに実行させることを特徴とするクロック生成プログラム。
【請求項９】
マスタークロック発生部にマスタークロック信号を発生させるステップと、
１つ以上のクロック生成部に、前記マスタークロック信号により複数のクロック信号を生成させるステップと、
制御信号によりクロック生成動作を切り換え、クロック生成動作を停止状態から動作状態に復帰させた際に、停止時の位相に相当する前記クロック信号を前記クロック生成部に継続して生成させるステップと、
をコンピュータに実行させることを特徴とするクロック生成プログラム。
【請求項１０】
検証対象装置が必要とするクロック信号及び入力信号を付与し、前記検証対象装置の動作を検証する動作検証プログラムであって、
入力信号生成部に前記検証対象装置が必要とする前記入力信号を生成させるステップと、
クロック生成装置に前記検証対象装置が必要とする複数のクロック信号を生成させるステップと、
出力信号記憶部に前記検証対象装置から得られる出力信号を記憶させるステップと、
前記クロック生成装置に備える１つ以上のクロック生成部に複数のクロック信号を生成させるステップと、
前記クロック生成部に、制御信号によりクロック生成動作を制御し、クロック生成動作を停止状態から動作状態に復帰させた際に、停止時の位相に相当する前記クロック信号を継続して生成させるステップと、
をコンピュータに実行させることを特徴とする動作検証プログラム。
【国際調査報告】
2006087806.tif 000027
2006087806.tif 000028