明 細 書
クロック生成装置、クロック生成方法、クロック生成プログラム、動作検証装 置、動作検証方法及び動作検証プログラム
技術分野
[0001] 本発明は、 LSI (Large Scale Integration )、 FPGA (Field Program able Gate
Arrays)等のハードウェアの長時間に亘る動作検証に好適なクロック生成装置、クロッ ク生成方法、クロック生成プログラム、動作検証装置、動作検証方法及び動作検証プ ログラムに関する。
背景技術
[0002] LSIや FPGA等のハードウェアは、大規模化や SOC (System On Chip)化により、 複数の非同期クロックで動作させるものが一般的である。このようなハードウェアの動 作を検証するには、その動作を実現するためのテスト信号を加えることによりハードウ アを動作させ、ハードウェアの内部信号や外部出力信号等、各種の動作信号を観 測する必要がある。しかしながら、複数の非同期クロックを必要とするハードウエアの 動作検証は、観測時間、観測信号、複数の非同期クロックの位相関係等の条件維持 力 非常に複雑である。
[0003] 従来、この種の動作検証では、検証対象装置にシグナルジェネレータ、クロック生 成装置、ロジックアナライザ等を接続して検証システムが構成され、シグナルジエネレ ータで生成される信号や、クロック生成装置で生成される複数のクロック信号を検証 対象装置に加え、検証対象装置から生成される内部信号、出力信号を信号記憶装 置に記録している。そして、この検証に用いられるクロック信号には、検証対象装置 の実際の速度を持つクロック信号、又は検証が行 、易 、低 、速度のクロック信号が 用いられ、し力も、そのクロック信号は 1回の検証期間中、連続して検証対象装置に 付与されている。
[0004] ところで、この種の動作検証に関し、特許文献によれば、検証対象である記憶装置 の書込みスペースがなくなったとき、外部力も記憶装置に付与しているクロックを停止 させ、記憶装置の読出し完了の後、クロックを再開させるマイクロプログラムトレース装
置 (特許文献 1)や、非同期の複数のクロックで動作するマイクロコントローラのインサ 一キットエミュレータ (特許文献 2)等が存在して 、る。
特許文献 1 :特開昭 58-181154
特許文献 2:特開平 11-259329
発明の開示
発明が解決しょうとする課題
[0005] ところで、検証動作を継続すると、検証対象装置力 得られる信号の記憶量が膨大 になり、また、記憶信号数によっても記憶量が膨大になるので、検証結果の記録時間 は自ずと制限されることになる。記憶信号数を一定にしても、信号記録時間を長くす るには、信号を記憶する記憶装置の記憶容量を増やす必要がある。
[0006] また、高速で動作する検証対象装置から得られる信号を記録するには、その高速 動作に対応する半導体メモリ等、高速デバイスが必要となるとともに、記憶容量が制 限される。このため、信号の記憶容量が不足する場合には同様の検証を繰り返し行 Vヽ、要求される検証時間を分割して信号記憶を行う必要がある。
[0007] また、検証対象装置の出力信号を小容量の記憶装置に記憶し、その記憶容量の 限界時点で、クロックの供給を停止して検証対象装置の動作を休止させ、その記憶 装置から大容量の記憶装置に記憶信号を転送させ、再び、クロック供給を再開して 動作を継続させることが考えられる。複数のクロックで動作する検証対象装置におい ては、単純にクロック供給の停止やその再開を行うと、クロック供給の再開時点で複 数のクロック間の位相関係が崩れ、クロック再開後の動作力 クロックを停止させな力 つた本来の動作と異なってしまうおそれがある。このような動作検証は無意味であり、 クロック停止及び再開を安易に行うことはできな!、。
[0008] クロック供給の再開時に、複数のクロックの位相関係を保持したクロックを生成させ るには、クロック停止時の各クロックの位相を記憶し、その再開時に記憶した位相から クロック供給を再開すればよいが、実用的に高速なクロック速度で斯カる動作を実現 することはできない。
[0009] このような課題に関し、特許文献 1にはその開示や示唆はなぐまた、特許文献 2で は特定の場合のみの開示や示唆であり、特許文献 1、 2に開示された発明では斯か
る課題を解決することはでさな 、。
[0010] そこで、本発明は、複数のクロック信号の休止、再開に関し、各クロック信号の休止 時と再開時の位相関係の不連続ィ匕を防止することを第 1の目的とする。
[0011] また、本発明は、複数のクロック信号を必要とする動作検証に関し、長時間に亘る 動作信号の記録を実現することを第 2の目的とする。
課題を解決するための手段
[0012] 上記目的を達成するため、本発明に係るクロック生成装置は、複数のクロック信号 を生成する 1つ以上のクロック生成部を備え、該クロック生成部は、クロック生成動作 を停止状態力 動作状態に復帰させた際に、停止時の位相に相当する前記クロック 信号を継続して生成させる構成である。
[0013] 斯カる構成によれば、 1つ以上のクロック生成部のクロック生成動作を任意に停止、 その動作の再開を行わせてクロック信号を生成させることができるとともに、その停止 、生成再開に関係なぐクロック信号の位相関係を保持することができる。このようなク ロック信号を必要とする各種装置に対し、その動作条件を変更することなぐ動作の 停止、その再開を行わせることができる。
[0014] 上記目的を達成するため、本発明に係るクロック生成装置は、複数のクロック信号 を生成する 1つ以上のクロック生成部を備え、該クロック生成部は、制御信号によりク ロック生成動作が切り換えられ、クロック生成動作を停止状態力 動作状態に復帰さ せた際に、停止時の位相に相当する前記クロック信号を継続して生成させる構成とし てもよい。斯カる構成によれば、制御信号を用いてクロック信号の生成動作の停止、 再開を行わせることができる。し力も、クロック信号の停止、再開に伴う位相関係は制 御に関係なく維持することができる。
[0015] 上記目的を達成するためには、本発明に係るクロック生成装置において、前記クロ ック生成部は、前記クロック生成動作の停止時の前記クロック信号の位相を記憶する 記憶部を備え、この記憶部に記憶した前記位相を元に前記クロック信号を継続して 生成する構成としてもよい。
[0016] 上記目的を達成するため、本発明に係るクロック生成装置は、マスタークロック信号 を発生するマスタークロック発生部と、このマスタークロック発生部の前記マスタークロ
ック信号により複数のクロック信号を生成する 1つ以上のクロック生成部とを備え、該ク ロック生成部は、制御信号によりクロック生成動作が切り換えられ、クロック生成動作 を停止状態力 動作状態に復帰させた際に、停止時の位相に相当する前記クロック 信号を継続して生成させる構成としてもょ ヽ。
[0017] 上記目的を達成するため、本発明に係るクロック生成方法は、複数のクロック信号 を生成する 1つ以上のクロック生成部を備え、クロック生成動作を停止状態力 動作 状態に復帰させた際に、停止時の位相に相当する前記クロック信号を継続して生成 させる処理を含む構成である。斯カる構成によれば、 1つ以上のクロック生成部のクロ ック生成動作を任意に停止、その動作の再開を行わせてクロック信号を生成させるこ とができるとともに、その停止、生成再開に関係なぐクロック信号の位相関係を保持 することができる。
[0018] 上記目的を達成するため、本発明に係るクロック生成方法は、マスタークロック発生 部にマスタークロック信号を発生させる処理と、 1つ以上のクロック生成部に、前記マ スタークロック信号により複数のクロック信号を生成させる処理と、制御信号によりクロ ック生成動作を切り換え、クロック生成動作を停止状態力 動作状態に復帰させた際 に、停止時の位相に相当する前記クロック信号を前記クロック生成部に «続して生成 させる処理とを含む構成としてもよ!ヽ。
[0019] 上記目的を達成するため、本発明に係るクロック生成プログラムは、複数のクロック 信号を生成する 1つ以上のクロック生成部を備え、クロック生成動作を停止状態から 動作状態に復帰させた際に、停止時の位相に相当する前記クロック信号を継続して 生成させるステップをコンピュータに実行させる構成である。斯かる構成によれば、 1 つ以上のクロック生成部のクロック生成動作を任意に停止、その動作の再開を行わ せてクロック信号を生成させることができるとともに、その停止、生成再開に関係なぐ クロック信号の位相関係を保持することができる。このようなクロック信号を必要とする 各種装置に対し、その動作条件を変更することなぐ動作の停止、その再開を行わせ ることがでさる。
[0020] 上記目的を達成するため、本発明に係るクロック生成プログラムは、マスタークロッ ク発生部にマスタークロック信号を発生させるステップと、 1つ以上のクロック生成部に
、前記マスタークロック信号により複数のクロック信号を生成させるステップと、制御信 号によりクロック生成動作を切り換え、クロック生成動作を停止状態から動作状態に 復帰させた際に、停止時の位相に相当する前記クロック信号を前記クロック生成部に 継続して生成させるステップとをコンピュータに実行させる構成としてもよい。
[0021] 上記目的を達成するため、本発明に係る動作検証装置は、検証対象装置が必要と するクロック信号及び入力信号を付与し、前記検証対象装置の動作を検証する動作 検証装置であって、前記検証対象装置が必要とする前記入力信号を生成する入力 信号生成部と、前記検証対象装置が必要とする複数のクロック信号を生成するクロッ ク生成装置と、前記検証対象装置から得られる出力信号を記憶する出力信号記憶 部とを備え、前記クロック生成装置が、複数のクロック信号を生成する 1つ以上のクロ ック生成部を備え、前記クロック生成部は、制御信号によりクロック生成動作が制御さ れ、クロック生成動作を停止状態力 動作状態に復帰させた際に、停止時の位相に 相当する前記クロック信号を継続して生成させる構成である。
[0022] 斯カる構成によれば、既述のクロック信号の生成動作、その停止、生成動作の再開 によって検証対象装置の動作を停止させ、その動作を再開させることができ、しかも、 動作条件に変更が加えられることがないので、検証対象装置の検証動作の連続性を 維持することができ、長時間に亘る動作記録が可能になり、動作検証の信頼性の向 上が図られる。
[0023] 上記目的を達成するためには、本発明に係る動作検証装置にお!ヽて、前記検証対 象装置に加える入力信号を記憶する記憶部を前記入力信号生成部に備え、前記入 力信号生成部が、前記記憶部に対する入力信号の読出し、読込みに対応して前記 クロック生成装置に前記制御信号を付与することにより、前記クロック生成動作を制 御する構成としてもよい。
[0024] 上記目的を達成するためには、本発明に係る動作検証装置にお!ヽて、前記出力信 号記憶部は、前記検証対象装置の出力信号の読込み又は読出しに対応して前記ク ロック生成装置に前記制御信号を付与し、前記クロック生成動作を制御する構成とし てもよい。
[0025] 上記目的を達成するため、本発明に係る動作検証方法は、検証対象装置が必要と
するクロック信号及び入力信号を付与し、前記検証対象装置の動作を検証する動作 検証方法であって、入力信号生成部に前記検証対象装置が必要とする前記入力信 号を生成させる処理と、クロック生成装置に前記検証対象装置が必要とする複数のク ロック信号を生成させる処理と、出力信号記憶部に前記検証対象装置から得られる 出力信号を記憶させる処理と、前記クロック生成装置に備える 1つ以上のクロック生 成部に複数のクロック信号を生成させる処理と、前記クロック生成部に、制御信号に よりクロック生成動作を制御し、クロック生成動作を停止状態力 動作状態に復帰さ せた際に、停止時の位相に相当する前記クロック信号を継続して生成させる処理とを 含む構成である。斯カる構成によれば、既述のクロック信号の生成動作、その停止、 生成動作の再開によって検証対象装置の動作を停止させ、その動作を再開させるこ とができ、し力も、動作条件に変更が加えられることがないので、検証対象装置の検 証動作の連続性を維持することができ、長時間に亘る動作記録が可能になり、動作 検証の信頼性の向上が図られる。
[0026] 上記目的を達成するためには、本発明に係る動作検証方法にお!ヽて、前記検証対 象装置に加える入力信号を記憶する記憶部を前記入力信号生成部に備え、前記入 力信号生成部が、前記記憶部に対する入力信号の読出し、読込みに対応して前記 クロック生成装置に前記制御信号を付与することにより、前記クロック生成動作を制 御する処理を含む構成としてもょ ヽ。
[0027] 上記目的を達成するためには、本発明に係る動作検証方法にお!ヽて、前記出力信 号記憶部が、前記検証対象装置の出力信号の読込み又は読出しに対応して前記ク ロック生成装置に前記制御信号を付与し、前記クロック生成動作を制御する処理を 含む構成としてもよい。
[0028] 上記目的を達成するため、本発明に係る動作検証プログラムは、検証対象装置が 必要とするクロック信号及び入力信号を付与し、前記検証対象装置の動作を検証す る動作検証プログラムであって、入力信号生成部に前記検証対象装置が必要とする 前記入力信号を生成させるステップと、クロック生成装置に前記検証対象装置が必 要とする複数のクロック信号を生成させるステップと、出力信号記憶部に前記検証対 象装置力 得られる出力信号を記憶させるステップと、前記クロック生成装置に備え
る 1つ以上のクロック生成部に複数のクロック信号を生成させるステップと、前記クロッ ク生成部に、制御信号によりクロック生成動作を制御し、クロック生成動作を停止状態 力 動作状態に復帰させた際に、停止時の位相に相当する前記クロック信号を継続 して生成させるステップとをコンピュータに実行させる構成である。斯カる構成によれ ば、既述のクロック信号の生成動作、その停止、生成動作の再開によって検証対象 装置の動作を停止させ、その動作を再開させることができ、しかも、動作条件に変更 が加えられることがな!、ので、検証対象装置の検証動作の連続性を維持することが でき、長時間に亘る動作記録が可能になり、動作検証の信頼性の向上が図られる。
[0029] 上記目的を達成するためには、本発明に係る動作検証プログラムにお 、て、前記 検証対象装置に加える入力信号を記憶する記憶部を前記入力信号生成部に備え、 前記入力信号生成部が、前記記憶部に対する入力信号の読出し、読込みに対応し て前記クロック生成装置に前記制御信号を付与することにより、前記クロック生成動 作を制御する処理を含む構成としてもょ ヽ。
[0030] 上記目的を達成するためには、本発明に係る動作検証プログラムにお 、て、前記 出力信号記憶部が、前記検証対象装置の出力信号の読込み又は読出しに対応して 前記クロック生成装置に前記制御信号を付与し、前記クロック生成動作を制御する処 理を含む構成としてもよい。
発明の効果
[0031] 本発明によれば、次のような効果が得られる。
[0032] (1)本発明に係るクロック生成装置、クロック生成方法又はクロック生成プログラムに よれば、複数のクロック信号が得られるとともに、各クロック信号を停止させた際の位 相関係を、各クロック信号の生成再開時に維持させることができ、クロック信号の生成 、その停止、生成再開に関係なぐ各クロック信号の位相関係を維持することができる
[0033] (2)本発明に係る動作検証装置、動作検証方法又は動作検証プログラムによれば 、検証対象装置の通常動作に必要な複数のクロック信号の供給、その停止及びその 再開を行っても生成されるクロック信号の位相関係が保持される、つまり、クロックの 停止時間を除く任意の時間の間で各クロックの必要とされるクロック数の関係が保た
れるので、クロック信号の供給、その停止及びその再開によって検証対象装置の動 作が停止し、その動作を再開しても、その動作の連続性を維持することができ、動作 を中断しないで動作検証記録を行った場合と同等の長時間に亘る動作記録を行うこ とがでさる。
[0034] そして、本発明の他の目的、特徴及び利点は、添付図面及び各実施の形態を参照 することにより、一層明確になるであろう。
図面の簡単な説明
[0035] [図 1]本発明の第 1の実施の形態に係るクロック生成装置を示す回路図である。
[図 2]ゲート部の入出力関係を示すタイミングチャートである。
[図 3]クロック信号の生成タイミングを示すタイミングチャートである。
[図 4]ハードウェア記述言語で記述されたクロック生成部の構成例を示すリストである
[図 5]クロック生成部の構成例を示す回路図である。
[図 6]クロック生成部のクロック信号の生成動作を表すフローチャートである。
[図 7]クロック生成部のクロック信号の生成動作を表すフローチャートである。
[図 8]ハードウェア記述言語で記述されたクロック生成部の構成例を示すリストである
[図 9]クロック生成部の構成例を示す回路図である。
[図 10]クロック生成部のクロック信号の生成動作を表すフローチャートである。
[図 11]本発明の第 2の実施の形態に係るクロック生成装置の構成例を示すリストであ る。
[図 12]動作や生成クロック信号を表すタイミングチャートである。
[図 13]クロック生成装置のハードウェアの構成例を示す回路図である。
[図 14]クロックゲーティング動作を示すフローチャートである。
[図 15]クロックゲーティング動作を示すフローチャートである。
[図 16]クロックゲーティング動作を示すフローチャートである。
[図 17]クロック生成部のクロック信号の生成動作を示すフローチャートである。
[図 18]クロック生成部のクロック信号の生成動作を示すフローチャートである。
[図 19]クロック生成部のクロック信号の生成動作を示すフローチャートである。
[図 20]本発明の第 3の実施の形態に係る動作検証装置を示すブロック図である。
[図 21]制御動作シーケンスを示す図である。
[図 22]本発明の第 4の実施の形態に係る動作検証システムを示すブロック図である。
[図 23]検証制御 PCの構成例を示すブロック図である。
[図 24]検証対象装置の一例を示すブロック図である。
[図 25]本発明の第 4の実施の形態に係る動作検証システムの変形例を示すブロック 図である。
符号の説明
[0036] 2 クロック生成装置
61— 6N クロック生成咅
8 クロック発振器
161— 16N 記憶部
70 動作検証装置
78 入力信号生成部
86 出力信号記憶部
発明を実施するための最良の形態
[0037] 第 1の実施の形態
[0038] 本発明の第 1の実施の形態について、図 1を参照して説明する。図 1は第 1の実施 の形態に係るクロック生成装置 2を示す回路図である。
[0039] このクロック生成装置 2には、ゲート部 4とともに、 1つ以上のクロック生成部としてこ の実施の形態では、複数のクロック生成部(CLK1— GEN、 CLK2_GEN- · -CLK n— GEN) 61、 62· · · 6Νが設置されている。ゲート部 4の前段には、クロック発振器( OSC) 8が設置され、この OSC8からマスタークロック信号 mclkがゲート部 4に与えら れ、制御入力端子 10からクロック生成制御信号 elk— enが加えられている。クロック 生成部 61、 62· · · 6Νには、ゲート部 4力も得られたゲーティングマスタークロック信 号 g— mclkを基礎として、複数の生成クロック信号 CLK1、 CLK2 - - 'CLKnが得ら れる。また、ゲート部 4に得られるゲーティングマスタークロック信号 g— mclkは、ゲー
ト部 4から直接にクロック信号 CLKOとして取り出される。従って、このクロック生成装 置 2では、 CLKO、 CLK1、 CLK2- · 'CLKnが得られる。
[0040] ここで、 g—mclk (ゲーティングマスタークロック信号)と各 CLKO、 CLK1、 CLK2 · • 'CLKn (生成クロック信号)との関係については、 g—mclkと CLKOとは共通のクロ ック信号であり、各 CLKO、 CLK1、 CLK2- · 'CLKnは独立したクロック周波数であ り、単位時間当たりに必要とされるクロック数がそれぞれ異なっている。このように単 位時間当たりが異なるクロック数で、 g—mclkに対して異なる CLK1、 CLK2- · -CL Knは、後述の例えば、携帯電話機等の検証対象装置の動作検証に必要なクロック 信号として用いる等の用途に対応させるためである。
[0041] このクロック生成装置 2において、ゲート部 4は例えば、 AND回路 12及びラッチ回 路(LATCH) 14で構成されている。 LATCH14は、その入力 Dに elk— en (クロック 生成制御信号)、その反転入力 Gに mclk (マスタークロック信号)が与えられている。 クロック生成制御信号 elk— enは、例えば、高低 (HZL) 2レベルのスイッチング信号 であり、 mclkの通過を制御する制御信号である。
[0042] クロック生成部 61— 6Nは、ゲート部 4から g—mclkを受け、この g—mclkに基づき 、 CLK1、 CLK2- · 'CLKn (生成クロック信号)を生成する。ここで、クロック生成部 6 1一 6Nでは、 g—mclkの各立上り又は立下りいずれか又は双方の時点で、クロック サイクルを更新し、各クロックサイクル内〖こ生成するクロックが本来一定クロック幅のク ロックであれば、クロックパルスが発生するかを判断し、クロックを生成する場合には、 g—mclkの変化タイミングに合わせてクロックパルスを生成し、 CLK1、 CLK2- · -CL Kn (生成クロック信号)を生成させる。そして、各クロック生成部 61— 6Nにはそれぞ れ記憶部 161、 162· · · 16Νが設置されており、各記憶部 161— 16Nには CLK1、 CLK2- · 'CLKnの位相情報が格納される。即ち、 elk— enが解除されて g—mclkが 解除されると、 CLK1、 CLK2- · 'CLKnの生成が停止される力 その停止の際、 CL Kl、 CLK2- · 'CLKnの位相情報は記憶部 161— 16Nに格納されて保持され、クロ ック生成の再開時の位相情報となる。また、各クロック生成部 61— 6Nには、リセット 入力端子 18を通して共通のリセット信号 resetが与えられ、この resetにより記憶部 16 1一 16Nの位相情報が初期値にリセットされる。即ち、クロック生成部 61— 6Nの初期
化が行われる。リセット回路は必ずしも必要ない。
[0043] 次に、クロック生成装置 2の動作について、図 2を参照して説明する。図 2はゲート 部 4の入出力関係を示すタイミングチャートである。
[0044] ゲート部 4には図 2の Aに示す mclk (マスタークロック信号)が与えられるとともに、 図 2の Bに示す elk— en (クロック生成制御信号)が与えられる。この場合、 elk— enは mclkの周期 Taより長い区間 Tbを Hレベルとする信号である。このような入力関係に おいては、 LATCH14では、図 2の Cに示す出力 Qが得られる。そして、この出力 Qと mclkとが AND回路 12に加わると、出力 Qの Hレベル区間 Tcの時間内において mcl kがゲーティングされて出力され、図 2の Dに示す g— mclkが得られる。この g— mclk は、 CLKO (生成クロック信号)として取り出されるとともに、クロック生成部 61— 6Nに 与えられ、 CLK1、 CLK2- · 'CLKn (生成クロック信号)を生成させる基礎になる。
[0045] そこで、 elk— enの Hレベル区間 Tbにおいて、クロック生成部 61— 6Nから CLK1、 CLK2- · 'CLKnが生成される。各 CLK1、 CLK2- · 'CLKnの既述の g— mclkに対 する位相情報は記憶部 161— 16Nに記憶され、 elk— en力 レベルに移行して g— mclkが停止された際、その時点の各 CLK1、 CLK2- · 'CLKnの位相情報が記憶 部 161— 16Nに記憶されて保持される。この記憶状態は reset (リセット信号)によつ てリセットされな 、限り保持される。
[0046] そして、 elk— enが Hレベルに移行して g— mclkが再開された際には、記憶部 161 一 16Nに保持されている位相情報を以て各 CLK1、 CLK2- · 'CLKnの生成が再開 され、同時に CLKOも生成される。
[0047] このようなゲート部 4及びクロック生成部 61— 6Nの動作について、図 3を参照して 説明する。図 3は一般的に利用される一定周期のクロック信号 CLKl—0、 CLK2— 0、クロック生成部 61、 62に生成させた各 CLK1、 CLK2を示すタイミングチャートで ある。 CLK1— 0、 CLK2—0は説明上の仮想的なクロック信号である。
[0048] 図 3において、 Aに示す CLKOは、 g— mclkと等価であり、例えば、生成クロック幅( サイクル幅) TO力 S 10〔ns〕の生成クロック信号である。 B1に示す CLK1— 0は生成ク ロックサイクル時間 T1力^ 2〔ns〕の一定周期のクロック信号であり、 B2に示す CLK1 は、 B1に対応する本実施の形態によるクロック信号である。また、 C1に示す CLK2
—0は生成クロックサイクル時間 T2力 ¾4〔ns〕の一定周期のクロック信号であり、 C2 に示す CLK2は、 C1に対応する本実施の形態によるクロック信号である。
[0049] このような時間設定において CLK0、 CLK1— 0、 CLK2— 0のパルスのエッジが一 致する時点は、 TO ( = 10〔ns〕)、Tl ( = 12〔ns〕)、T2 ( = 24〔ns〕)の最小公倍数 でぁる時間幅丁 (= 120〔115〕)となる。この時間幅 Txにより、 CLKO、 CLK1— 0、 C LK2— 0の各クロック数 NO 、 Nl 、 N2は、
NO =Tx/T0 = 120 [ns] /10 [ns] = 12 · ' ·(1)
となる。これは、一定時間当たりのクロック数を表している。このクロック数 Νの値は一 例であって、サイクル幅を任意に設定することにより、クロック数 Νを所望の値に設定 することができる。
[0050] そして、この単位時間当たりに必要とされるクロック数 Νと同じクロック数 Νを持つ CL K1 (図 3の B2)、 CLK2 (図 3の C2)がクロック生成部 61、 62で生成されている。また 、 CLK1 (図 3の B2)、 CLK2 (図 3の C2)は、一定周期の g— mclk (ゲーティングマス タークロック信号)に対して歯抜け状クロック信号となり、個々のクロックノ ルスはマス タークロックの整数倍となる力 S、クロック周期の最小公倍数である任意の時間帯にお いては各クロック周波数に必要なクロック数のクロックが得られることから、位相とクロッ ク数が一致しているとみなせるので、これらの波形上の相違点は何ら問題にならない
[0051] このような CLK1、 CLK2について、 CLKOに対する位相、つまり、クロックエッジの 時間差情報は各記憶部 161、 162に記憶され、 g— mclkが停止された際には、その 関係情報は g—mclkが供給再開されるまで保持され、その再開時にはスタート情報 となる。
[0052] また、このクロック生成装置 2にお 、ては、一番高 、周波数のクロック信号を mclk ( マスタークロック信号)とする。 mclkはゲート部 4で elk— enによってゲーティングされ 、 CLKO、 CLK1、 CLK2 - - 'CLKn (生成クロック信号)の生成又は停止が行われる 。 CLKOはゲート部 4から生成され、 CLK1、 CLK2- · 'CLKnは、 g mclkからクロッ
ク生成部 61— 6Nで生成される。 elk— enによって g— mclkの発生、停止が制御され 、 CLKOとともに CLK1、 CLK2 - · ' CLKnも停止し、 g— mclkが供給されると、その 時点から CLKO、 CLK1、 CLK2 - · ' CLKnが生成される。
[0053] そして、既述したように、クロック生成部 61— 6Nでは、 g— mclkの各立上り又は立 下りのいずれか又は双方の時点で、クロックサイクルを更新し、各クロックサイクル内 に生成するクロックが本来一定クロック幅のクロックであればクロックパルスが発生す るかを判断しており、クロック信号を生成する場合には、 g— mclkの変化タイミングに 合わせてクロックパルスを生成し、 CLK1、 CLK2 - · ' CLKnを生成させている。
[0054] 従って、このクロック生成装置 2によれば、複数の CLKO、 CLK1、 CLK2 - · - CLK n (生成クロック信号)が位相関係を保ったままその生成、停止、再開を行うことができ る。また、一般的には各クロックは一定周期のクロック信号が使用され、この実施の形 態では、歯抜け状クロック信号として得られているが、実用上は、何ら問題にならない
[0055] このような機能を持つクロック生成装置 2によれば、一定のサイクル幅を持つ mclk ( マスタークロック信号)を用いて各クロック周波数に対応した 1つ以上のクロック信号 C LK1、 CLK2 - · ' CLKnを生成できるとともに、 mclkの停止 Z再開によっても、再開 時に生成する各 CLK1、 CLK2 - · ' CLKnと CLKOとの位相関係や生成クロック数に 何らの不連続性を生ずることなぐ 1つ以上の CLKO、 CLK1、 CLK2 - · ' CLKnが継 続して生成される。
[0056] 次に、クロック生成装置 2のクロック生成部 61の実施の形態について、図 4及び図 5 を参照して説明する。図 4はハードウ ア記述言語 (一例として Verilog HDL)で記述 されたクロック生成部 61の構成例を示すリスト、図 5はクロック生成部 61の構成例を 示す回路図である。
[0057] このクロック生成部 61の構成例は、生成されるクロック信号 CLK1の周波数 (f = l /Ύ)がマスタークロック信号 mclkの 1Ζ2を超える場合を示している。これらの関係 について、図 3に示すタイミングチャートを参照すれば、図 3の Αに示すように、クロッ ク信号 CLK0のサイクル幅 TOは 10〔ns〕、図 3の Bl、 B2に示すように、クロック信号 CLK1 0、 CLK1は、サイクル幅 T1力 l 2〔ns〕であるから、クロック信号 CLK1のサ
イタル幅 Tlはクロック信号 CLKOのサイクル幅 TOの 2倍より小さい値 (Tlく 2T0)と なっているので、既述の条件に合致している。
[0058] この条件に合致するように構成されるクロック生成部 61をノ、一ドウ ア記述言語( Verilog HDL)で記述すれば以下の通りである(図 4)。このリストは、行番号とともに、 処理内容を記述したものである。
1 reg[ll:0]pos; /* elkの立上り変化点 */
2 reg out; / * elkの Gating Register * I
3 wire elk/* elk信号 */
4 (空白)
5 always @ (posedge rst or negedge g― mclk) begin
6 if (rst==l) begin
7 pos <= elk幅 /2; I *変化点初期値 * I
8 out <= 0;
9 end
10 else if (pos <= mclkの幅) begin
11 out〈= 1 ; /*clkパルス出力設定 */
12 pos <= pos+ (elk幅- mclkの幅);/ *変化点の更新 */
13 end
14 else begin
15 out〈=0 ;/*Clockパルス非出力設定 */
16 pos <= pos- mclk幅;/ *変化点の更新 */
17 end
18 end
19 assign elk = g— mclk &.&. out ;/ 水 Clock ating*/
[0059] このリストにおいて、行番号 1一 3はレジスタ、信号の宣言であり、行番号 5— 19は 処理を示している。「〔11:0〕」は 12ビット構成を表し、「pos」は、一定のクロック幅のク ロック信号の立上りの変化点(時刻)を表すレジスタであって、既述の記憶部 161を構 成している。「out」は、マスタークロック信号 mclkをゲーティングするレジスタである。
「rst」は、既述のリセット信号 resetである。「clk」は、生成されるクロック信号である。「 g— mclk」は、ゲーティングされたマスタークロック信号を表している。「if」は、比較を 表す。
[0060] このリストで表されたクロック生成部 61では、 rstが入力されると、レジスタ (pos)に設 定される変化点を生成クロック幅の 1Z2に初期設定し、レジスタ(out)を「0」(クロック 生成しない状態)に設定する。レジスタ (pos)の初期値は、生成クロック幅以下であれ ばよい。 g— mclkの立下りで、レジスタ(pos)の出力値がマスタークロック信号 mclk のクロック信号幅以下か否かを判断し(10行目)、クロック信号幅以下の場合、レジス タ(out)は「1」(パルス生成する)が設定され、レジスタ(pos)の出力値に(生成クロッ ク信号幅 マスタークロック信号 mclkのクロック幅)を加算し、レジスタ(pos)の値を更 新する(11、 12行目)。レジスタ(pos)の出力値がマスタークロック信号 mclkのクロッ ク幅を超えて ヽた場合、レジスタ(out)は「0」に設定され、レジスタ(pos)からマスタ 一クロック信号 mclkのクロック幅を減算する(15、 16行目)。生成クロック信号(elk) は、 g— mclkをレジスタ (out)でゲーティングしたもの(19行目)となる。
[0061] このようなハードウェア記述言語 (Verilog HDL)で記述されたものからハードウェア に変換すると、図 5に示すように、クロック生成部 61が構成されることになる。
[0062] このクロック生成部 61では、記憶部 161を構成するレジスタ (pos) 20が設置され、 このレジスタ 20は多ビットの D— FFで構成されて!、る。このレジスタ 20の CLK入力に は g— mclkが反転されて与えられている。このレジスタ 20の D入力側にはセレクタ(S EL) 22、出力 Q側には比較器 24が設置される。セレクタ 22の前段には加算器 26及 び減算器 28が設置され、これら加算器 26及び減算器 28の出力が比較器 24の出力 値によって選択され、その選択出力がレジスタ 20に与えられる。比較器 24ではレジ スタ 20の出力値 pos〔11 : 0〕とマスタークロック信号幅 mclkwとの比較が行われ、出 力値 posがクロック信号幅 mclkw以内であるか否かを判断し、クロック信号幅 mclkw 以内の場合、セレクタ 22は「1」側 (パルス生成する)が選択され、クロック信号幅 mclk wを超えていた場合、セレクタ 22は「0」側が選択される。「1」が選択された場合には 加算器 26の出力値、「0」が選択された場合には減算器 28の出力値がレジスタ 20に 与えられる。加算器 26では、レジスタ 20の出力値 posと、(生成クロック信号幅 マス
タークロック信号幅)の値 (clkw— mclkw)とが加算され、また、減算器 28ではレジス タ 20の出力値 posからマスタークロック信号幅 mclkwが減算される。また、リセット時 には、レジスタ 20には初期値として生成クロック信号幅の 2分の 1の値(clkwZ2)が 設定される。 clkw - mclkwは加算器 26の前段に設置された定数出力部 30、 mclkw は減算器 28の前段に設置された定数出力部 32、 clkwZ2は定数出力部 34によつ て与えられている。そして、レジスタ 20には rst (リセット信号 =reset)が与えられてい る。
[0063] また、比較器 24の出力側にはレジスタ(out) 36が設置され、このレジスタ 36の D入 力に比較器 24の出力が与えられ、 CLK入力にはゲーティングマスタークロック信号 g — mclkが反転されて入力され、 RST入力には rst (リセット信号 =reset)が与えられ ている。このレジスタ 36の出力側には AND回路 38が設置され、この AND回路 38に はレジスタ 36の出力 Qと g— mclkとが与えられている。 AND回路 38から生成クロック 信号 clk ( = CLKl)が得られる。
[0064] 次に、クロック生成部 61の動作について、図 6及び図 7を参照して説明する。図 6及 び図 7は、図 4及び図 5に示すクロック生成部 61のクロック信号の生成動作を表すフ ローチャートである。
[0065] クロック生成部 61が動作を開始すると、 rstの立上り又は g— mclkの立下り(エッジ) の到来を待つ(ステップ S 11)。この場合、 rstの実行を「1」、 rstの解除を「0」とし、そ の判定が行われる(ステップ S 12)。 rst= lの場合、レジスタ 20、 36のリセット処理が 実行され、レジスタ 20、 36の設定値が初期化される (ステップ S 13)。この場合、定数 出力部 34により、レジスタ 20に clkw/2が設定されるとともに、レジスタ 36に out=0 が設定された後、ステップ S 11に戻る。そして、 rst= lが解除され、 g— mclkの立下り が到来すると、ステップ S 12を経て比較器 24の比較処理が実行される (ステップ S14 )。レジスタ 20の出力値 posとマスタークロック信号幅 mclkwとが比較される。この比 較処理は、次の mclkで elkを発生させるか否かの判断を表している。そして、 pos≤ mclkwの場合には、 out= lが設定され、 pos =pos+ (clkw— mclkw)が設定される (ステップ S15)。また、 pos >mclkwの場合には、 out=0が設定され、 pos =pos— m clkwが設定される (ステップ S I 6)。このような処理により、クロック生成部 61より CLK
1が生成される。
[0066] そして、 CLK1は、 AND回路 38による、 g— mclkとレジスタ 36の出力値 outとの論 理積で与えられるから、図 7に示す処理が実行され、この処理 (ステップ S20)は、 g— mclk又は outの何れかが変化すると、 CLK1がその論理和に変化することを表して いる。
[0067] 次に、クロック生成装置 2のクロック生成部 62の実施の形態について、図 8及び図 9 を参照して説明する。図 8はハードウ ア記述言語 (Verilog HDL)で記述されたクロ ック生成部 62の構成例を示すリスト、図 9はクロック生成部 62の構成例を示す回路図 である。
[0068] このクロック生成部 62の構成例は、生成されるクロック信号 CLK2の周波数 (f = 1 /Ύ)がマスタークロック信号 mclkの 1Ζ2以下の場合を想定している。これらの関係 について、図 3に示すタイミングチャートを参照すれば、図 3の Αに示すように、クロッ ク信号 CLK0のサイクル幅 TOは 10〔ns〕、図 3の Cl、 C2に示すように、クロック信号 CLK2— 0、 CLK2は、サイクル幅 T2力 ¾4〔ns〕であるから、クロック信号 CLK2のサ イタル幅 T2はクロック信号 CLK0のサイクル幅 T0の 2倍より大きい値 (T2 > 2T0 )と なっているので、既述の条件に合致している。
[0069] この条件に合致するように構成されるクロック生成部 62をノ、一ドウ ア記述言語(
Verilog HDL)で記述すれば以下の通りである(図 8)。このリストは、既述のクロック生 成部 61の場合と同様に、行番号とともに、処理内容を記述したものである。
1 reg[l l :0]pos; / * elkの変化点 * /
2 reg elk; / * elk信号 * /
3 (空白)
4 always @、posedge rst or posedge g— mclk) begin
5 if (rst==l) begin
6 posく =clk幅 /2 ;/ *変化点初期値 * /
7 elkく =0;
8 end
9 else if (posく =mclkの幅) begin
10 clk<=!clk; / * elkを反転 * I
11 pos<=pos+(clkの幅 /2- mclkの幅); / *変化点の更新 * /
12 end
13 else begin/ * elk変化なし * I
14 pos〈=pos-mclkの幅;/ *変化点の更新 * /
15 end
lb end
[0070] このリストにおいて、行番号 1、 2はレジスタ、信号の宣言であり、行番号 4一 16は処 理を示している。「〔11 : 0〕」は 12ビット構成を表し、「pos」は、一定のクロック幅のクロ ック信号の立上り、又は立下りの変化点(時刻)を表すレジスタであって、既述の記憶 部 162を構成している。「out」は、マスタークロック信号 mclkをゲーティングするレジ スタである。「rst」は、既述のリセット信号 resetである。「clk」は、生成されるクロック信 号である。「g—mclk」は、ゲーティングされたマスタークロック信号を表している。「if」 は、比較を表す。
[0071] このリストで表されたクロック生成部 62では、 rstが入力されると、 posを生成クロック 幅の 1Z2に初期設定し、 elkを「0」(パルス生成しない)に設定する。 posの初期値は 、クロック生成部 61と同様に生成クロック幅の 1Z2以外であってもよい。
[0072] g— mclkの立上りで、 posがマスタークロック信号 mclkのクロック信号幅以下か否か を判断し(9行目)、 posがクロック信号幅 mclkw以下の場合には、 elkを反転し、 pos に(生成クロック信号幅 Z2— mclkのクロック幅)を加算して、 posの値を更新する(10 、 11行目)。 posが mclkのクロック信号幅を超えていた場合、 posから mclkのクロック 信号幅を減算する(14行目)。
[0073] このクロック生成部 62では、 mclkのサイクル毎に、生成クロック信号の立上り、立下 り時刻をチェックするので、クロック生成部 61に比較して生成クロック信号のデューテ ィは 50%に近くなる。
[0074] このようなハードウェア記述言語 (Verilog HDL)で記述されたものからハードウェア に変換すると、図 9に示すように、クロック生成部 62が構成されることになる。
[0075] このクロック生成部 62では、記憶部 162を構成するレジスタ (pos) 40が設置され、
このレジスタ 40は多ビットの D— FFで構成されて!、る。このレジスタ 40の CLK入力に はゲーティングマスタークロック信号 g—mclkが与えられて!/、る。このレジスタ 40の D 入力側にはセレクタ 42、出力 Q側には比較器 44が設置される。セレクタ 42の前段に は加算器 46及び減算器 48が設置され、これら加算器 46及び減算器 48の出力が比 較器 44の出力値によって選択され、その選択出力がレジスタ 40に与えられる。比較 器 44ではレジスタ 40の出力値 pos〔11 : 0〕とマスタークロック信号幅 mclkwとの比較 が行われ、出力値 posがマスタークロック信号幅 mclkw以下か否かを判断し、クロック 信号幅 mclkw以下の場合、セレクタ 42は「1」側 (パルス生成する)が選択され、クロ ック信号幅 mclkwを超えていた場合、セレクタ 42は「0」側が選択される。「1」が選択 された場合には加算器 46の出力値、「0」が選択された場合には減算器 48の出力値 がレジスタ 40に与えられる。加算器 46では、レジスタ 40の出力値 posと、(生成クロッ ク信号幅 Z2—マスタークロック信号幅)の値 (clkwZ2— mclkw)とが加算され、また 、減算器 48ではレジスタ 40の出力値 posからマスタークロック信号幅 mclkwが減算 される。また、リセット時には、レジスタ 40には初期値として生成クロック信号幅の 2分 の 1の値(clkwZ2)が設定される。 clkwZ 2— mclkwは加算器 46の前段に設置され た定数出力部 50、 mclkwは減算器 48の前段に設置された定数出力部 52、 clkw/ 2は定数出力部 54によって与えられている。そして、レジスタ 40には rst (リセット信号 =reset)が与えられて!/、る。
[0076] また、比較器 44の出力側にはレジスタ(elk) 56が設置され、このレジスタ 56の CE 入力に比較器 44の出力が与えられ、 CLK入力にはゲーティングマスタークロック信 号 g— mclkが入力され、 RST入力にはリセット信号 rstが与えられている。このレジス タ 56の出力 Qが生成クロック信号 CLK2として取り出されるとともに、インバータ 58で 反転されてレジスタ 56の D入力に与えられて!/、る。
[0077] 次に、クロック生成部 62の動作について、図 10を参照して説明する。図 10は、図 8 及び図 9に示すクロック生成部 62のクロック信号の生成動作を表すフローチャートで ある。
[0078] クロック生成部 62が動作を開始すると、 rstの立上り又は g— mclkの立上り(エッジ) の到来を待つ(ステップ S31)。この場合、 rst動作を「1」、 rstの解除を「0」とし、その
判定が行われる(ステップ S32)。 rst= lの場合、レジスタ 40、 56のリセット処理が実 行され、レジスタ 40、 56の設定値が初期化される (ステップ S33)。この場合、定数出 力部 54により、レジスタ 40に clkwZ2が設定されるとともに、レジスタ 56に clk=0が 設定された後、ステップ S31〖こ戻る。そして、 rst= lが解除され、 g— mclkの立上りが 到来すると、ステップ S32を経て比較器 44の比較処理が実行される (ステップ S34)。 レジスタ 40の出力値 posとマスタークロック信号幅 mclkwとが比較される。この比較 処理は、次の mclkで elkを反転させるか否かの判断を表している。そして、 pos≤mcl kwの場合には、 clk= ! elk (elkの反転)が設定され、 pos =pos + (clkw/2-mclk w)が設定される(ステップ S35)。また、 pos >mclkwの場合には、 pos =pos— mclk wが設定される(ステップ S36)。このような処理により、クロック生成部 62より CLK2が 生成される。
[0079] 第 2の実施の形態
[0080] 次に、本発明の第 2の実施の形態について、図 11及び図 12を参照して説明する。
図 11はハードウェア記述言語 (一例として Verilog HDL)で記述されたクロック生成 装置 2の構成例を示すリスト、図 12はその動作や生成クロック信号を表すタイミングチ ヤートである。
[0081] このクロック生成装置 2は、 rst (リセット信号)及び elk— en (クロック生成制御信号) を入力することにより、クロック信号 clkO、 clkl、 clk2を生成させ、 clkOは 10〔ns〕、 cl klは 12〔ns〕、 clk2は 24〔ns〕のクロック幅を持つクロック信号を生成する Verilog HD Lの記述例である。このリストでは、行番号を省略して処理内容を記述している。
[0082] timescale Ins / ins
module elk— gen、rst, clk_en , clkO , elk i , clk2) ;
input rst ; / * reset * I
input elk— en; I水 elk— en水 I
output clkO; I * 100MHz Master Clock 10ns水/
output clkl; I * 83.3MHz 12ns * /
output clk2; I * 41.7MHz 24ns * /
wire mclk;
reg en;
reg [l l:0]posl;
reg [l l:0]pos2;
reg outl;
reg clk2;
osc iosk(mclk); / *〇SC * /
always @ (mclk or elk— en) ii(mclk==l,bO)enく = elk— en; assign g— mclk = mclk && en;
assign clkO = g— mclk;
always @ (posedge rst or negedge g_mclk) begin if (rst==l) begin
poslく = 12/2;
outlく = 0;
end
else if (poslく = 10)begin
outlく = 1;
poslく = posl+(12-10);
end
else begin
outlく = 0;
poslく = posl - 10;
end
end
assign clkl = g— mclk && outl;
always @ (posedge rst or posedge g— mclk) begin if (rst==l) 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
[0083] この記述例において、「clkO」は、生成クロック信号であるとともに、 g— mclk (ゲー ティングマスタークロック信号)〖こ相当する。 "osc iosc (mclk);"の記述は、 mclk (マ スタークロック信号)を発振する発振器モジュールを示す。 2番目の「always」記述文 (begin— end)と、その次の「assign」記述文で、 clkl (生成クロック信号、既述の CL K1に相当する)が生成される。また、 3番目の「always」記述文 (begin— end)と、そ の次の「assign」記述文で、 clk2 (生成クロック信号、既述の CLK2に相当する)が生 成される。
[0084] このようなクロック生成装置 2において、 mclkを図 12の A、 elk— enを図 12の E、 rst を図 12の Fのように設定すれば、 clkO (図 12の: B)、 clkl (図 12の C)、 clk2 (図 12の D)となる。
[0085] 次に、第 2の実施の形態に係るクロック生成装置 2の構成例について、図 13を参照 して説明する。図 13は、ハードウェア記述言語で記載されたクロック生成装置 2のハ 一ドウエアの構成例を示す回路図である。この実施の形態において、第 1の実施の形 態のクロック生成装置 2 (図 1)、クロック生成部 61 (図 5)、クロック生成部 62 (図 9)と 共通部分には共通符号を付してある。
[0086] このクロック生成装置 2は、ゲート部 4とともに複数のクロック生成部 61、 62で構成さ れ、ゲート部 4は、図 1に示すゲート部 4と同一構成であり、クロック生成部 61は、図 5 に示すクロック生成部 61と同一構成であり、また、クロック生成部 62は、図 9に示すク
ロック生成部 62と同一構成である。
[0087] このクロック生成部 61は、既述した通り、記憶部 161を構成するレジスタ(posl) 20 が設置され、このレジスタ 20は多ビットの D FFで構成されている。このレジスタ 20の CLK入力には g— mclkが反転されて与えられている。このレジスタ 20の D入力側に はセレクタ 22、出力 Q側には比較器 24が設置される。セレクタ 22の前段には加算器 26及び減算器 28が設置され、これら加算器 26及び減算器 28の出力が比較器 24の 出力値によって選択され、その選択出力がレジスタ 20に与えられる。比較器 24では レジスタ 20の出力値 posl〔11 : 0〕とマスタークロック信号幅 mclkwとの比較が行わ れ、出力値 pos 1がマスタークロック信号 mclkのクロック信号幅 mclkw以内である力 否かを判断し、クロック信号幅 mclkw以内の場合、セレクタ 22は「1」側(パルス生成 する)が選択され、クロック信号幅 mclkwを超えていた場合、セレクタ 22は「0」側が選 択される。「1」が選択された場合には加算器 26の出力値、「0」が選択された場合に は減算器 28の出力値がレジスタ 20に与えられる。加算器 26では、レジスタ 20の出 力値 poslと、(生成クロック信号幅 マスタークロック信号幅)の値 (clkw-mclkw)と が加算され、また、減算器 28ではレジスタ 20の出力値 poslからマスタークロック信号 幅 mclkwが減算される。また、リセット時には、レジスタ 20には初期値として生成クロ ック信号幅の 2分の 1の値(clkwZ2)が設定される。 clkw— mclkwは加算器 26の前 段に設置された定数出力部 30、 mclkwは減算器 28の前段に設置された定数出力 部 32、 clkwZ2は定数出力部 34によって与えられている。そして、レジスタ 20には r st (リセット信号 =reset)が与えられて!/、る。
[0088] 比較器 24の出力側には、既述したように、レジスタ(outl) 36が設置され、このレジ スタ 36の D入力に比較器 24の出力が与えられ、 CLK入力にはゲーティングマスター クロック信号 g— mclkが反転されて入力され、 RST入力にはリセット信号 resetが与 えられている。このレジスタ 36の出力側には AND回路 38が設置され、この AND回 路 38にはレジスタ 36の出力 Qと g— mclkとが与えられている。 AND回路 38から生 成クロック信号 clkl ( = CLK1)が得られている。
[0089] また、クロック生成部 62には同様に、記憶部 162を構成するレジスタ (pos2) 40が 設置され、このレジスタ 40は多ビットの D— FFで構成されている。このレジスタ 40の C
LK入力にはゲーティングマスタークロック信号 g—mclkが与えられて!/、る。このレジ スタ 40の D入力側にはセレクタ 42、出力 Q側には比較器 44が設置される。セレクタ 4 2の前段には加算器 46及び減算器 48が設置され、これら加算器 46及び減算器 48 の出力が比較器 44の出力値によって選択され、その選択出力がレジスタ 40に与え られる。比較器 44ではレジスタ 40の出力値 pos2〔11 : 0〕とマスタークロック信号幅 m clkwとの比較が行われ、レジスタ 40の出力値 pos2がマスタークロック信号 mclkのク ロック信号幅 mclkw以内か否かを判断し、クロック信号幅 mclkw以内の場合、セレク タ 42は「1」側(クロック反転)が選択され、クロック信号幅 mclkwを超えていた場合、 セレクタ 42は「0」側が選択される。「1」が選択された場合には加算器 46の出力値、「 0」が選択された場合には減算器 48の出力値がレジスタ 40に与えられる。加算器 46 では、レジスタ 40の出力値 pos2と、(生成クロック信号幅 Z2—マスタークロック信号 幅)の値(clkwZ 2— mclkw)とが加算され、また、減算器 48ではレジスタ 40の出力 値 pos2からマスタークロック信号幅(mclkw)が減算される。また、リセット時には、レ ジスタ 40には初期値として生成クロック信号幅の 2分の 1の値 (clkwZ2)が設定され る。 clkwZ 2— mclkwは加算器 46の前段に設置された定数出力部 50、 mclkwは減 算器 48の前段に設置された定数出力部 32 (図 9の定数出力部 52に相当)、 clkwZ 2は定数出力部 54によって与えられている。そして、レジスタ 40にはリセット信号 rese tが与えられている。
[0090] また、比較器 44の出力側にはレジスタ(clk2) 56が設置され、このレジスタ 56の CE 入力に比較器 44の出力が与えられ、 CLK入力にはゲーティングマスタークロック信 号 g— mclkが入力され、 RST入力にはリセット信号 resetが与えられている。このレジ スタ 56の出力 Qが生成クロック信号 clk2として取り出されるとともに、インバータ 58で 反転されてレジスタ 56の D入力に与えられて!/、る。
[0091] 次に、この実施の形態に係るクロック生成装置 2の動作について、図 14一図 19を 参照して説明する。図 14は、 mclkのゲート動作を示すフローチャートである。図 15 及び図 16は、論理回路の動作を示すフローチャートである。図 17及び図 18はクロッ ク生成部 61のクロック信号の生成動作を示すフローチャートである。図 19はクロック 生成部 62のクロック信号の生成動作を示すフローチャートである。
[0092] 図 14に示すように、 mclk (マスタークロック信号)又は elk— en (クロック生成制御信 号)の変化を待つ (ステップ S41)。
[0093] そこで、 mclkの値、即ち、 mclk =0であるか否かを判定し (ステップ S42)、 mclk≠ 0の場合には、ステップ S41に戻る。また、 mclk=0の場合には、ィネーブル信号 en として elk— enを入力し (ステップ S43)、ステップ S41に戻る。即ち、 mclkが 0の状態 を前提として elk— enが enに与えられる。これにより、クロック生成動作の信頼性が高 められる。
[0094] また、図 15に示すように、 clkOはゲート部 4を通過する g_mclkで設定され (ステツ プ S50)、また、図 16に示すように、 g一 mclkは mclkとイネ一ブル信号 en ( = elk一 e n)との論理積で与えられる(ステップ S60)。この処理は AND回路 12 (図 13)の動作 を示し、 mclkを enでゲーティングしている。
[0095] この場合、 g— mclkのパルスが得られな!/、場合には、 g— mclkが停止された時点 の状態が各クロック生成部 61、 62に保持されて 、る。
[0096] そして、クロック生成部 61のクロック生成処理では、図 17〖こ示すよう〖こ、 rstの立上り 又は g— mclkの立下りを待ち(ステップ S71)、 rstが到来したか否かを判定し (ステツ プ S72)、 rst= lの場合には、リセットであるから、レジスタ 20を posl = 12Z2に設定 するとともに、レジスタ 36を outl = 0に設定 (初期ィ匕)し (ステップ S73)、ステップ S71 に戻る。
[0097] ステップ S72において、 rst=0の場合には、 posl≤ 10であるか否かを判定し (ステ ップ S74)、この判定では次の mclkでクロック信号 elkを発生させるか否かを判定して いる。ここで、 posl≤10の場合には、 outl = l及び posl =posl + (12— 10)を設定 し (ステップ S75)、ステップ S71に戻る。 poslは、レジスタ 20の出力、 outlは、レジ スタ 36の出力、(12— 10)は、既述のサイクル幅(T1 TO )を示している。
[0098] また、ステップ S74において、 posl > 10の場合には、 outl =0及び posl =posl— 10を設定し (ステップ S76)、ステップ S71に戻る。「10」は、既述のサイクル幅 TOを 示している。
[0099] この場合、図 18に示すように、 clklは g— mclkと outlとの論理積で与えられる(ス テツプ S80)。この処理は AND回路 38 (図 13)の動作を示して!/、る。
[0100] また、クロック生成部 62のクロック生成処理では、図 19に示すように、 rstの立上り又 は g— mclkの立上りを待ち(ステップ S91)、 rstが到来したか否かを判定し (ステップ S92)、 rst= lの場合には、リセットであるから、レジスタ 40を pos2 = 24Z2〖こ設定す るとともに、レジスタ 56を clk2 = 0に設定(初期ィ匕)し (ステップ S93)、ステップ S91に 戻る。
[0101] ステップ S92において、 rst=0の場合には、 pos2≤ 10であるか否かを判定し (ステ ップ S94)、この判定では次の mclkでクロック信号 elkを反転させるか否かを判定して いる。ここで、 pos2≤10の場合には、 clk2= ! clk2 (clk2の反転)を設定するととも 【こ、 pos2=pos2+ (24/2— 10)を設定し (ステップ S95)、ステップ S91【こ戻る。 pos 2は、レジスタ 40の出力、 clk2は、レジスタ 56の出力、「10」は、既述のサイクル幅 TO を示し、 (24/2-10) 既述のサイクル幅 (T2 Z2— TO )を示している。
[0102] また、ステップ S94において、 pos2 > 10の場合には、 pos2=pos2— 10を設定し( ステップ S96)、ステップ S91に戻る。
[0103] このような処理により、既述の生成クロック信号 clkO、 clkl、 clk2 (図 12)を生成させ ることがでさる。
[0104] 第 3の実施の形態
[0105] 本発明の第 3の実施の形態について、図 20及び図 21を参照して説明する。図 20 は、第 3の実施の形態に係る動作検証装置 70を示すブロック図、図 21は、制御動作 シーケンスを示している。
[0106] この動作検証装置 70は、携帯電話機等の検証対象装置 72の動作検証に用いら れる。この動作検証装置 70には、検証対象装置 72に対応する既述のクロック生成装 置 2、入力信号生成装置 74及び出力信号記憶装置 76が設置されて 、る。
[0107] 入力信号生成装置 74は、入力信号生成部 78及び入力信号バッファ 80を備えて 、 る。入力信号生成部 78は、検証対象装置 72が必要とする入力信号 inl、 ίη2 · · -inn を発生し、入力信号バッファ 80は RAM (Random-Access Memory)等で構成され、入 力信号生成部 78に発生させた入力信号を記憶する。この入力信号バッファ 80から 読み出された入力信号が検証対象装置 72に与えられる。また、入力信号生成装置 7 4は、入力信号バッファ 80の入力信号の記憶、読出しに応じてクロック生成装置 2の
クロック生成動作を制御するクロック生成制御信号 elk— stop 1を発生する。この elk — stoplは NOR回路 82に与えられ、出力信号記憶装置 76からのクロック生成制御 信号 elk— stop2と論理和が取られ、反転される。 NOR回路 82の出力(elk— en)が クロック生成装置 2に与えられ、クロック生成装置 2のクロック生成動作が制御される。 入力信号バッファ 80からの入力信号の読出しが終了すると、 elk— stoplを Hレベル (クロック停止)としてクロック生成装置 2のクロック生成動作を停止させ、入力信号バ ッファ 80からの入力信号の読出しを再開させるには、 elk— stoplを Lレベル(クロック 再開)に変化させればよい。但し、 elk— enは、 elk— stopl及び elk— stop2の NOR なので、いずれかの入力が Hレベルになると Lとなり、クロック生成は停止する。入力 信号バッファ 80は、入力信号の読出しを完了すると、リセットし、入力信号生成部 78 力 新たな入力信号が書き込まれる。
[0108] クロック生成装置 2は、図 1又は図 13に記載された構成を備え、検証対象装置 72が 必要とする複数のクロック信号 CLK0、 CLK1、 CLK2 - · ' CLKnを生成する。また、 入力信号バッファ 80には読出し制御信号として例えば、クロック信号 CLK0が与えら れている。また、クロック生成装置 2は、 NOR回路 82を通して入力される elk— enによ り、既述のクロック生成動作が制御される。即ち、 elk— enが Hレベルの場合にクロッ ク生成、 elk— enが Lレベルの場合にクロック生成の停止となる。
[0109] 出力信号記憶装置 76は、出力信号バッファ 84及び出力信号記憶部 86を備えてい る。出力信号バッファ 84には、検証対象装置 72の出力信号 (観測信号) 01、 02 - · · Onが取り込まれる。この出力信号バッファ 84は入力信号バッファ 80と同様に RAM 等で構成され、検証対象装置 72が発生した出力信号を記憶する。この出力信号バッ ファ 84には書込み制御信号として例えば、クロック信号 CLK0が与えられている。ま た、出力信号記憶装置 76は、検証対象装置 72の出力信号の記憶又は記憶信号の 転送に応じてクロック生成装置 2のクロック生成動作を制御するクロック生成制御信号 elk— stop 2を発生する。この elk— stop2は、同様に、 NOR回路 82に与えられ、クロ ック生成装置 2のクロック生成動作の制御に用いられる。この場合、出力信号バッファ 84の記憶容量が例えば、限界量に達すると、 elk— stop2を Hレベルに変化させるこ とにより、クロック生成装置 2の動作を停止させ、出力信号バッファ 84の記憶を再開さ
せるには、 elk— stop2を Lレベル(クロック再開)に変化させればよい。
[0110] そして、出力信号記憶部 86は例えば、ハードディスク記憶装置等で構成され、出力 信号バッファ 84が記憶して 、る出力信号 (観測信号)の転送を受け、その出力信号 を記憶する。このデータ転送の後、出力信号バッファ 84はリセットされ、次の出力信 号を記憶する。
[0111] このような動作検証装置 70によれば、入力信号生成装置 74では、入力信号生成 部 78で生成させた入力信号を入力信号バッファ 80に記憶可能な時間幅の入力信 号を一括して生成させ、それを入力信号バッファ 80に転送し、記憶させる。このような 入力信号の生成及び転送の処理の間、入力信号生成装置 74から出力されている cl k_stoplを Hレベル(クロック停止)とすることにより、クロック生成装置 2のクロック生 成動作の停止を指示し、検証対象装置 72の動作を停止させる。
[0112] 入力信号生成装置 74は、入力信号バッファ 80に必要量の入力信号が転送された 時点で、 elk— stop 1を Lレベル (クロック再開)に変化させ、クロック生成動作の再開 を指示する。 elk— stop 1、 elk— stop2が共に Lとなれば、クロック生成装置 2から検 証対象装置 72に CLK0、 CLK1、 CLK2- · 'CLKnが供給される。
[0113] 入力信号生成装置 74は、入力信号バッファ 80の入力信号の読出しが終了した場 合、即ち、読み出すべき入力信号がない場合には、クロック生成装置 2にクロック停 止を指示するとともに、入力信号生成部 78に入力信号を生成させ、それを入力信号 バッファ 80に転送させ、これが終了した時点で、入力信号の生成を開始させる。この 場合、前回の入力信号バッファ 80への入力信号の転送終了後、入力信号の生成の 開始を検証対象装置 72の動作と並行させてもょ ヽ。
[0114] このような動作を検証対象装置 72の動作検証に必要な全ての入力信号の生成を 完了するまで繰り返し行う。そして、出力信号記憶装置 76では、検証対象装置 72の 出力信号 (観測信号) 01、 02· · ·Οηを検証対象装置 72の動作と並行して出力信号 バッファ 84に取り込み、蓄積する。出力信号記憶装置 76は、出力信号バッファ 84の 記憶容量が所定量例えば、限界量に到達すると、 elk— stop2を Ηレベル (クロック停 止)に変化させ、クロック生成装置 2にクロック停止を指示し、検証対象装置 72の動作 を停止させる。出力信号バッファ 84に記憶されている出力信号 01、 02· · ·Οηは出
力信号記憶部 86に転送され、その転送が終了した時点で、出力信号バッファ 84もリ セットする。このとき、 clk_stop2を Lレベル (クロック再開)に変化させることにより、ク ロック生成装置 2にクロック生成動作を再開させるとともに、検証対象装置 72の動作 を再開させる。
[0115] 出力信号バッファ 84のデータ転送の際に、クロック生成装置 2のクロック生成動作 が停止するので、入力信号バッファ 80に対する読出し制御信号も停止される。そして 、クロック生成装置 2にクロック生成動作を再開させるとともに、検証対象装置 72の動 作開始に対応し、入力信号バッファ 80から入力信号の読出しも再開される。
[0116] この場合、クロック生成装置 2では、検証対象装置 72の一番高 、周波数のクロック に対応するクロックを mclkとし、この mclkにおいて、 elk— enによってゲーティングす ることによって、 CLKO、 CLK1、 CLK2- · 'CLKnを生成させ、停止させることができ る。
[0117] このような動作検証装置 70について、検証動作を図 21を参照して説明する。入力 信号生成部 78では、予め設定された検証時間の満了を監視するため、終了時刻が 到来した力否かを判定し (ステップ S101)、終了時刻が到来している場合には、入力 信号の生成を終了させる (ステップ S 102)。終了時刻が到来していなければ、入力 信号を生成し (ステップ S 103)、この入力信号を入力信号バッファ 80に転送し (ステ ップ S104)、割込み待ち(ステップ S105)を維持し、ステップ S101に戻る。
[0118] 入力信号バッファ 80では、入力信号生成部 78の入力信号生成 (ステップ S 103)に 対応して入力信号の生成を待ち (ステップ S201)、入力信号生成部 78からの入力信 号を受け、それを記憶する (ステップ S202)。入力信号バッファ 80は検証対象装置 7 2に入力信号を出力し (ステップ S203)、その入力信号バッファ 80の入力信号が完 了した場合、待機している入力信号生成部 78に対し (ステップ S 105)、割込みを生 成し (ステップ S 204)、入力信号の終了を通知し、ステップ S201に戻る。
[0119] クロック生成装置 2では、入力信号が入力信号バッファ 80に記憶されたこと (ステツ プ S202)を受け、クロック生成を開始、又は再開し (ステップ S301)、クロック信号を 生成する(ステップ S 302)。生成されたクロック信号 CLK0、 CLK1、 CLK2- · -CLK nは検証対象装置 72に与えられ、クロック信号 CLK0は入力信号バッファ 80や出力
信号バッファ 84にも供給される。そして、入力信号バッファ 80からの割込み (ステップ S204)を受け、そのクロック信号の生成を停止し (ステップ S303)、ステップ S301に 戻る。
[0120] 出力信号バッファ 84では、検証対象装置 72からの出力信号を取り込み、蓄積し (ス テツプ S401)、その記憶容量が限界に達したとき、割込みを生成し (ステップ S402) 、記憶している出力信号を出力信号記憶部 86 (図 20)に送信し (ステップ S403)、転 送完了を待ち(ステップ S404)、転送完了の後、ステップ S401に戻る。
[0121] 出力信号記憶部 86では、割込み待ちで待機し (ステップ S501)、出力信号バッフ ァ 84からの割込み (ステップ S402)を受け、出力信号バッファ 84からの出力信号を 受信し (ステップ S 502)、この出力信号は外部記憶装置等に保存され (ステップ S 50 3)、動作検証に用いられる。
[0122] 第 4の実施の形態
[0123] 次に、本発明の第 4の実施の形態について、図 22及び図 23を参照して説明する。
図 22は、第 4の実施の形態に係る動作検証システム 90を示すブロック図、図 23は検 証制御 PCの構成例を示すブロック図である。この実施の形態において、第 1の実施 の形態(図 1)、第 3の実施の形態(図 20)と同一部分には同一符号を付してある。
[0124] この動作検証システム 90には動作検証部 92及びパーソナルコンピュータ(PC) 94 が設置され、動作検証部 92と PC94とはバス 96を以て接続されている。動作検証部 92は、検証対象装置 72の動作を検証するものであって、この実施の形態では、検証 対象装置 72として例えば、 LSI (Large Scale Integration Circuit ) 98が設置されてい る。
[0125] 動作検証部 92には、検証信号処理部 100、入力信号バッファ 80としてメモリ 102、 出力信号バッファ 84としてメモリ 104、 106が設置されている。検証信号処理部 100 は例えば、 FPGA (Field Programmable Gate Arrays)により PCインターフェイスを構 成するとともに、クロック信号生成、入力メモリ制御、出力メモリ制御等の各種の処理 を実行する。この検証信号処理部 100では、 PCインターフェイス (IZF) 108、クロッ ク生成装置 2、入力メモリ制御部 110、出力メモリ制御部 112が設置されている。 PC IZF108にはバス 96を介して PC94が接続されて PC94との信号やデータの授受
に用いられるとともに、 OSC8からマスタークロック信号 mclkが与えられている。クロッ ク生成装置 2は、 LSI98等の動作に必要なクロック信号を生成し、その構成は、既述 の通りである(図 1、図 11、図 13)。入力メモリ制御部 110は、メモリ 102への書込み や読出しを制御し、 PC94に発生させた入力信号 (DATA)をメモリ 102に格納し、そ の読出し等のメモリ制御を行う。出力メモリ制御部 112は、メモリ 104、 106に対する 出力信号の書込みや読出しを制御し、メモリ 104、 106に記憶されている出力信号( DATA)の PC94への転送制御を行う。
[0126] そして、 PC94は、入力信号生成プログラムを備えるとともに、入力データ転送、出 力データ転送、出力データの記憶等を実行し、具体的には、動作検証部 92の検証 動作制御とともに、既述の入力信号生成部 78及び出力信号記憶部 86を構成する。 その構成は例えば、図 23に示すように、 CPU (Central Processing Unit )等で構成さ れるプロセッサ 114、記憶部 116、インターフェイス(IZF) 118、表示部 120及びキ 一ボード (KB) 122等を備え、記憶部 116は、検証制御プログラムを格納するとともに 、既述の出力信号記憶部 86を構成している。入力信号生成部 78は、プロセッサ 114 等で構成される。
[0127] このような動作検証システム 90によれば、既述の制御動作シーケンス(図 21)と同 様の動作力PC94によって実行され、複数のクロック信号で動作する LSI98等の検 証対象装置 72について、動作に必要な複数のクロック信号の供給、その停止又は 再開を制御するとともに、このクロック信号の制御に対応して入力信号の供給又はそ の停止を制御し、検証対象装置 72から得られる出力信号を記憶することができる。ま た、このような動作検証において、クロック生成装置 2では、クロック信号の停止から再 開に至る時点で、複数のクロック信号の位相関係は保持され、その位相関係を保持 したままでクロック信号の供給を開始することができるので、検証対象装置 72の動作 条件を変更させることがなぐ検証対象装置 72に供給する入力信号、検証対象装置 72から得られる出力信号は連続して、長時間に亘つて記憶することができる。し力も 、実用的な速度で動作するクロック生成を実現することができる。
[0128] また、クロック信号の位相関係がクロック信号の停止、再開によって影響されないの で、入力信号を記憶する入力信号バッファ 80、出力信号を記憶する出力信号バッフ
ァ 84の記憶容量は実用的な大きさに設定し、入力信号及び出力信号の連続時間は その記憶容量に応じて定めることができ、連続した動作と同一の動作状態を以て長 時間に亘る動作記録が可能である。記憶容量は極端に大きくする必要がないので、 入力信号バッファ 80や出力信号バッファ 84に用いるメモリは比較的安価なものを用 いることができ、経済的である。
[0129] 次に、検証対象装置 72の一例について、図 24を参照して説明する。図 24は、検 証対象装置 72の一例であるモパイルフォンディジタルベースバンド LSI (MOBILE PHONE DBB LSI) 124及び周辺回路を示すブロック図である。
[0130] この検証対象装置 72である LSI124には、 CPU (Central Processing Unit ) 126、 モデム(MODEM) 128、コーデック(CODEC) 130、出力バスインターフェイス(EX TBUS_I/F) 132、 USBインターフェイス(USB— IZF) 134、 LCD (Liquid Crystal Display)インターフェイス(LCD_l/F) 136、キーボードインターフェイス(K B_I/F) 138力備えられ、 MODEM 128には DSP (Digital Signal Processor) 140 が内蔵されている。
[0131] この LSI124を動作させるためには、 CPU 126には CPUクロック信号 CPUCLKと して例えば、 CLK0、 USB— IZF134には USBクロック信号 USBCLKとして例えば 、 CLK1、 MODEM128にはモデムクロック信号 MODEMCLKとして例えば、 CLK 2を必要として 、る。これらはクロック生成装置 2から供給される。
[0132] そして、 USB— I/F134には USBホスト(USB— HOST) 142が接続され、 LCD — IZF136には LCD144が接続され、また、 KB— IZF138にはキーボード (KB) 1 46が接続され、これらの外部回路や機器力 入力信号が加えられる。この入力信号 は入力信号生成装置 74から供給される。
[0133] また、 EXTBUS—IZF132には外部記憶素子として SDRAM (Synchronous
Dynamic Random-Access Memory) 148が接続され、 MODEM128にはアナログべ ースバンド部 (ABB) 150が接続され、この ABB 150には無線部 (RF) 152が接続さ れている。 154はアンテナである。即ち、 LSI124の出力信号は、これらの外部回路 や機器に対して供給されるが、出力信号記憶装置 76に取り込まれて記憶される。
[0134] このような検証対象装置 72である LSI124について、既述した動作検証装置 70を
以てクロック信号及び入力信号を供給し、一連の動作によって得られる出力信号の 記憶を長時間に亘つて行うことができ、信頼性の高い動作検証を実現することができ る。
[0135] 次に、以上説明した各実施の形態について、特徴事項、利点及び変形例を列挙し て説明する。
[0136] (1)第 3の実施の形態において、出力信号バッファ 84は、検証対象装置 72に組み 込んだ構成としてもよい。
[0137] (2)上記実施の形態では、検証対象装置 72として LSI98、 124を例示した力 複数 のクロック信号を用いる電子機器であれば、検証対象装置として用いることができ、実 施の形態の LSI98、 124に限定されるものではない。
[0138] (3)第 4の実施の形態では、 PC94で入力信号生成部 78を構成した力 図 25に示 すように、検証信号処理部 100に入力信号生成部 78を設置し、この検証信号処理 部 100を PC94側で制御し、同様の検証動作を行うようにしてもよ!、。
[0139] (4)上記実施の形態では、出力信号バッファ 84が出力信号記憶装置 76に設置さ れているが、検証対象装置 72内に組み込む構成としてもよい。斯かる構成とすれば
、検証対象装置 72から動作検証データを直接取り出すことができ、動作検証の容易 化が図られる。
[0140] (5)上記実施の形態において、クロック生成部 61— 6Nは、マスタークロック信号 mc lkのクロックサイクノレ毎〖こ、一定クロック幅のクロック信号のエッジが前記クロック信号 内にあるかを判断し、ある場合はマスタークロック信号のエッジで変化する不定クロッ ク幅のクロック信号をその代替クロックとして生成させることができる。
[0141] 以上述べたように、本発明の最も好ましい実施の形態等について説明したが、本発 明は、上記記載に限定されるものではなぐ請求の範囲に記載され、又は発明を実 施するための最良の形態に開示された発明の要旨に基づき、当業者において様々 な変形や変更が可能であることは勿論であり、斯かる変形や変更が、本発明の範囲 に含まれることは言うまでもな 、。
産業上の利用可能性
[0142] 本発明によれば、複数のクロック信号が得られるとともに、各クロック信号を停止させ
た際の位相関係を、各クロック信号の生成再開時に維持させることができ、クロック信 号の生成、その停止、生成再開に関係なぐ各クロック信号の位相関係を維持するこ とができ、例えば、動作検証装置に用いて、検証対象装置の動作の連続性を維持し 、長時間に亘る動作記録が可能になる。