(57)【特許請求の範囲】
【請求項１】
マスタクロック信号を該マスタクロック信号の整数倍の周期を有するクロック信号に切り替えるクロック切替回路において、
クロック信号の目標周期に対応する値を設定する設定手段と、
マスタクロック信号のパルスを、前記設定手段の設定値に達するまで繰り返して計数する計数手段と、
前記計数手段における計数値が前記設定手段の設定値に達する毎に、マスタクロック信号のパルスを通過させる抽出手段と、
前記抽出手段のマスタクロック信号を通過させる信号を、前記計数手段における計数値が前記設定手段の設定値に達してから所定時間だけ遅延させる遅延手段と
を有することを特徴とするクロック切替回路。
【請求項２】
前記計数手段は、前記設定手段における設定値だけ計数するとキャリー信号を出力し、
前記遅延手段は、前記キャリー信号を所定時間だけ遅延させてマスタクロック信号を通過させる信号をつくる
ことを特徴とする請求項１に記載のクロック切替回路。
【請求項３】
前記抽出手段は、前記遅延手段において遅延されたキャリー信号の出力期間中に発生するマスタクロック信号のパルスを通過させる
ことを特徴とする請求項１に記載のクロック切替回路。
【請求項４】
前記遅延手段は、前記計数手段のキャリー信号出力をマスタクロックのパルスの幅以上遅延させることを特徴とする請求項２に記載のクロック切替回路。
【請求項５】
マスタクロック信号から、その整数倍の周期を有するクロック信号を得るクロック切替回路であって、
クロック信号の目標周期に対応する値を設定するレジスタと、
マスタクロック信号のパルスを該パルスの一方のエッジで計数し、前記レジスタに設定された値に達するとキャリー信号を出力し、もとに戻って計数することを繰り返すカウンタと、
マスタクロック信号のパルスの他方のエッジで前記キャリー信号をラッチするＤ型フリップフロップと、前記Ｄ型フリップフロップの出力とマスタクロック信号とを入力とするアンド回路とを有する、
ことを特徴とするクロック切替回路。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、回路動作の基本信号となるクロック信号を生成する回路に関し、特に、クロック信号を、設定可能な複数の周波数の中の所望の周波数を有するクロック信号に切り替える回路に関する。
情報処理装置内の回路で消費される電力を抑える方法の一つとして、回路の動作速度を遅くする方法がある。回路の動作速度を遅くするには、回路を動作させるクロック信号の周波数を遅くすることで実現でき、クロック信号を所望の周波数を有するクロック信号に切り替える種々の回路が知られている。
【０００２】
【従来技術】
図６に第１の従来のクロック切替回路を示す。
図６において、５１はクロック生成回路、５２は設定レジスタ、５３はセレクタである。
クロック生成回路５１は、複数の周波数のクロック信号を生成し、各周波数のクロック信号をセレクタ５３に出力する。設定レジスタは５２はｎビットのデータが格納されるレジスタであり、目標とするクロック周波数に対応する値が格納される。セレクタ５３は、クロック生成回路５１が生成した複数の周波数のクロック信号の中から、設定レジスタに格納された値に対応する周波数のクロック信号を選択する。
【０００３】
ここで、クロック生成回路５１は、４種類の周波数のクロック信号ＣＬＫ０〜ＣＬＫ３を生成し、設定レジスタ５２は、４種類のクロック信号を設定可能にすべく、２ビットの値を格納するものとする。
図７は、第１の従来のクロック切替回路における動作タイムチャートである。図７を用いて、クロック信号をＣＬＫ１からＣＬＫ２、ＣＬＫ２からＣＬＫ１に切り替える動作を説明する。
【０００４】
設定レジスタ５２の値がＣＬＫ１に対応する「０１」が格納されている間、セレクタ５３はＣＬＫ１を選択的に出力する。
クロック信号の切替は、ユーザーの要求、或いはＣＰＵの判断によって発生する。クロック信号をＣＬＫ１からＣＬＫ２に切り替える指示が発生すると、設定レジスタ５２の値がＣＬＫ１を示す「００」からＣＬＫ２を示す「０１」に変更される。レジスタ５３は、設定レジスタ５２に格納される値が変化したことに応答して、ＣＬＫ２を選択的に出力する。
【０００５】
また、ＣＬＫ２からＣＬＫ１に戻す指示が発生すると、設定レジスタ５２の値は「０１」から「００」に戻り、セレクタ５３は、設定レジスタ５２に格納される値の変化に応答して、ＣＬＫ１を選択的に出力する。
図６に示される第１の従来のクロック切替回路では、設定レジスタ５２の値が変化した瞬間にクロック信号が切り替わる構成である。従って、設定値の変化のタイミングによっては、セレクタ５３の出力にハザードが発生し、セレクタ５３から出力されるクロック信号を受けて動作する回路が誤動作するという問題が生じる。例えば、選択したいクロック信号のパルスが立ち下がる直前に、そのクロック信号を指定する値が設定レジスタ５２に設定されると、わずかな時間幅を持つパルス（ハザード）がセレクタ５３から出力される。
【０００６】
また、設定可能な周波数の種類を増やすとクロック生成回路５１が大規模化し、多数のクロック信号の中から所定の１つを選択するセレクタも複雑化且つ大規模化するという問題が生じる。
上記問題を解決するため、一定の周波数を持つマスタクロック信号のパルスを設定された時間が経過する毎に抽出することにより、希望の周波数を持つクロック信号を生成するクロック切替回路が存在する。図８に、第２の従来におけるクロック切替回路を示す。
【０００７】
図８において、６１はマスタクロック発生回路、６２はカウンタ、６３は設定レジスタ、６４はアンド回路である。
ここで、クロック発生回路６１は或る周波数を持つマスタクロック信号を出力し、カウンタ６２はマスタクロック発生回路６１が発生するパルスを計数する。設定レジスタ６３には、希望の周波数に対応する数値が格納され、カウンタ６２は設定レジスタ６３に設定された値だけマスタクロック信号のパルスを計数するとキャリー信号を出力する。アンド回路６４は、クロック発生回路６１のクロックパルスとカウンタ６２のキャリー信号の論理積をとる。
【０００８】
よって、図９のクロック切替回路は、マスタクロック発生回路６１が出力するパルスを、設定レジスタ６３に格納された値に応じた時間間隔で抽出する（通過させる）ことにより、所定の周波数のクロック信号を生成する。
図９のクロック切替回路によると、マスタクロック発生回路は、或る１つの周波数のパルスを発生すればよいため、回路の小型化が実現できる。また、クロック信号が切り替わるタイミングは、設定レジスタへの値の格納のタイミングに依存せず、マスタクロック信号に同期する。
【０００９】
【発明が解決しようとする課題】
しかし、カウンタ６２が出力するキャリー信号の立上がり及び立下がりは、図１０に示すようにマスタクロック信号のパルスの立ち上がりよりも僅かな時間だけ遅れる。その結果、抽出されるパルスの幅が若干短くなるほか、間引かれるはずのパルスとキャリー信号とが僅かな時間だけ重なってしまい、微小時間だけ出力される。従って、図９に示されるクロック切替回路を用いても、依然としてハザードの発生の問題が残った。
【００１０】
本発明では、上記問題点を解決すべく、回路の大規模化を招くことなく、より多くの周波数の設定が可能となるクロック生成回路を提供するとともに、クロック信号の切り替えを最適なタイミングで実行し、クロック信号にハザードを発生させないクロック切替回路を提供することを目的とする。
【００１１】
【課題を解決する手段】
本発明の請求項１のクロック切替回路は、クロック信号の目標周期に対応する値を設定する設定手段と、マスタクロック信号のパルスを、前記設定手段の設定値に達するまで繰り返して計数する計数手段と、計数手段の計数値が設定手段の設定値に達する毎に、マスタクロック信号のパルスを通過させる抽出手段と、前記抽出手段のマスタクロック信号を通過させる信号を、前記計数手段における計数値が前記設定手段の設定値に達してから所定時間だけ遅延させる遅延手段とを備える。
【００１２】
請求項１の発明によると、設定手段の設定値に応じて、マスタクロック信号を複数の周期の何れか１つの周期のクロック信号に切り替えるため、複数の周波数のクロック信号を同時に生成する回路も、複数のクロック信号から所望の１つを選択する回路も不要となる。また、計数手段における計数値が設定手段に設定された値だけ計数してから所定時間後にマスタクロック信号を通過させるため、マスタクロックを通過させるタイミングが、計数手段における設定値の計数の完了からずらされ調整される。設定手段への値の設定のタイミングによらず、マスタクロック信号に同期したタイミングでクロック信号が切り替わるため、クロック信号の出力期間中に設定値が変更してもハザードは発生しない。更に、クロックパルスは、計数手段が設定手段における設定値だけ計数する毎に発生するため、間引かれるはずのマスタクロック信号のパルスが出力されることはなく、ハザードの発生が完全に抑えられる。
【００１３】
請求項２の発明では、計数手段が設定手段における設定値だけ計数する毎に所定時間幅のキャリー信号を出力し、遅延手段によってキャリー信号が遅延される。これによりキャリー信号の位相がずらされマスタクロック信号の位相と調整される。
【００１４】
請求項３の発明では、遅延されたキャリー信号の出力期間中に発生するマスタクロックパルスを通過させる。
請求項３の発明によると、遅延されたキャリー信号の位相がマスタクロック信号とずれているため、キャリー信号とマスタクロック信号のパルスとの微妙なタイミングのずれが吸収され、通過したパルスの幅をマスタクロック信号のパルス幅に一致させることができる。
【００１５】
請求項４の発明では、抽出手段は、計数手段のキャリー出力をマスタクロック信号のパルスの幅以上遅延する。
請求項４の発明によると、１回のキャリー信号と重なるマスタクロック信号のパルスを１つだけとすることができるため、微小期間だけキャリー信号と重なるマスタクロック信号のパルスがなくなり、ハザードの発生が防止できる。
【００１６】
請求項５の発明では、クロック信号の目標周期に対応する値を設定する手段であるレジスタは、マスタクロックの間引く数に相当する値を保持する。計数手段すなわちカウンタは、マスタクロック信号のパルスの一方のエッジでパルスを計数し、前記レジスタに設定された値に達するとキャリー信号を出力し、もとに戻って計数することを繰り返す。遅延手段すなわちＤ型フリップフロップは、マスタクロック信号のパルスの他方のエッジでキャリー出力をラッチする。これにより、キャリー出力をマスタクロック信号のパルス幅以上遅延することができ、上述したように、ハザードの発生が防止される。
抽出手段は、フリップフロップの出力とマスタクロック信号の論理積をとるアンド回路である。これによりマスタクロック信号の整数倍の周期を持ち、マスタクロック信号のパルスと同じ幅を持つクロック信号が出力される。
【００１８】
【発明の実施の形態】
図１に、本発明のクロック切替回路の概念図を示す。
図１において、２は計数手段、３は抽出手段、４は設定手段である。
計数手段２は、一定の幅および一定の周期のマスタクロック信号（ＭＣＬＫ）のパルスを計数する。設定手段４は、所望の周波数のクロック信号に対応する値を設定し、計数手段２は、設定手段４が設定した値だけＭＣＬＫのパルスを計数するとＭＣＬＫの周期と同じ幅のキャリー信号を出力する。抽出手段３は、ＭＣＬＫを入力し、計数手段４がキャリー信号を出力する毎にＭＣＬＫのパルスを出力する。
【００１９】
図２に本発明の実施の形態におけるクロック切替回路を示す。
図２に示されるように、マスタクロック信号は、マスタクロック生成回路１から出力され、設定手段４はｎビットのレジスタ４１からなり、計数回手段はｎビットのカウンタ２１からなる。レジスタ４１に格納された第ｎ（ｎ＝０，１，・・・ｋ）ビット目のデータは、カウンタ２１の対応するデータ入力端子ＤＴｎに反転されてロードされる。ロードされるタイミングは、ロード端子ＬＤへの入力がアクティブの状態、即ち、キャリー端子ＲＣからの出力がアクティブの状態にあるときに、ＭＣＬＫがアクティブになるときである。
【００２０】
カウンタ２１は、ＭＣＬＫがアクティブとなるタイミングでカウントアップし、カウンタの出力が全て論理「１」になるキャリー端子ＲＣからの出力がアクティブとなる。カウンタ２１にはレジスタ４１に格納されたデータを反転した値がロードされるため、カウンタ２１がレジスタ４１に格納された値だけＭＣＬＫをカウントする毎に、キャリー端子ＲＣの状態がアクティブとなる。キャリー端子ＲＣがアクティブの状態でＭＣＬＫがアクティブになると、上述のように、レジスタ４１に格納されたデータが再びカウンタ２１にロードされる。
【００２１】
抽出手段３は、カウンタ２１が出力するキャリー信号をラッチするフリップフロップ（ＦＦ）３１と、このＦＦ３１の出力およびＭＣＬＫの論理積をとるアンド回路３２を含んでなる。
ＦＦ３１は、キャリー信号をＭＣＬＫの立ち下がりのタイミングでラッチする。即ち、ＦＦ３１からは、ＭＣＬＫの幅だけ遅延されたキャリー信号が出力端子Ｑから出力される。
【００２２】
アンド回路３２においては、ＦＦ３１の出力端子Ｑからの信号とＭＣＬＫとの論理積がとられ、ＦＦ３１の出力端子Ｑからアクティブな信号が出力されている期間に限ってアンド回路３２に入力されるＭＣＬＫがクロック信号として出力される。
以上に述べたクロック切替回路の動作を要約すると、レジスタ４１に格納された値だけパルスが間引かれたＭＣＬＫがアンド回路３２から出力される。
【００２３】
図３ないし図５は、図２に示されたクロック切替回路におけるタイムチャートである。図２に示されるレジスタ４１は４ビットのデータを格納し、カウンタ２１を４ビットのデータを計数するものとし、レジスタ４１に格納される値が１６進数で「０」，「１」および「２」のときのクロック切替回路の動作を以下に説明する。
【００２４】
図３は、レジスタ４１に格納されるデータが「０」であるときのタイムチャートである。
まず、時刻ｔ０でカウンタ２１およびＦＦ３１にリセットがかかり、カウンタ２１の出力ビットの全てがアクティブな状態、即ち、カウンタ２１の出力は「Ｆ」となり、キャリー端子ＲＣはアクティブな信号を出力する。また、ＦＦ３１の出力端子Ｑもアクティブな信号を出力する。
【００２５】
そして、時刻ｔ１において、ＭＣＬＫがアクティブとなる。このとき、キャリー端子ＲＣはアクティブであるからロード端子ＬＤもアクティブであり、レジスタ４１に格納された値「０」の反転値である「Ｆ」がカウンタ２１にロードされる。その結果、カウンタ２１の出力は「Ｆ」を維持し、キャリー端子ＲＣもアクティブの状態を維持する。
【００２６】
時刻ｔ２になると、ＭＣＬＫがネガティブとなり、ＦＦ３１はキャリー端子ＲＣから出力される信号をラッチするが、時刻ｔ２において、キャリー端子ＲＣはアクティブの状態であるので、ＦＦ３１の出力端子Ｑもアクティブの状態が維持される。
以降も、ＭＣＬＫがアクティブとなる毎に、レジスタ４１に格納された値「０」の反転値「Ｆ」がカウンタ２１にロードされるため、カウンタ２１のキャリー端子ＲＣはアクティブな状態を維持し続ける。従って、ＦＦ３１の出力端子Ｑもアクティブな状態を維持し続け、アンド回路３２の一方の入力は常にアクティブとなる。よって、アンド回路３２に入力されるＭＣＬＫは間引かれることがなく、クロック切替回路は、ＭＣＬＫをクロック信号としてアンド回路３２から出力する。
【００２７】
図４は、レジスタ４１に格納されるデータが「１」であるときのタイムチャートである。
まず、時刻ｔ０でカウンタ２１およびＦＦ３１にリセットがかかり、カウンタ２１の出力ビットの全てがアクティブな状態、即ち、カウンタ２１の出力は「Ｆ」となり、キャリー端子ＲＣはアクティブな信号を出力する。また、ＦＦ３１の出力端子Ｑもアクティブな信号を出力する。
【００２８】
そして、時刻ｔ１においてＭＣＬＫがアクティブとなる。このとき、キャリー端子ＲＣはアクティブであるからロード端子ＬＤもアクティブであり、レジスタ４１に格納された値「１」の反転値「Ｅ」がカウンタ２１にロードされる。従って、カウンタ２１の出力は「Ｅ」となり、キャリー端子ＲＣはネガティブな状態へと反転する。
【００２９】
時刻ｔ２において、ＭＣＬＫがネガティブとなり、ＦＦ３１はキャリー端子ＲＣから出力される信号をラッチするが、時刻ｔ２において、キャリー端子ＲＣはネガティブな状態であるため、ＦＦ３１の出力端子Ｑもネガティブな状態へと変化する。
時刻ｔ３でＭＣＬＫがアクティブとなり、カウンタ２１はカウントアップアップ動作を行う。その結果、出力が「Ｅ」から「Ｆ」へと変化し、キャリー端子ＲＣはアクティブな状態へと変化する。
【００３０】
時刻ｔ４において、ＭＣＬＫはネガティブとなり、ＦＦ３１はキャリー端子ＲＣから出力される信号をラッチするが、時刻ｔ４において、キャリー端子ＲＣはアクティブな状態であるため、ＦＦ３１の出力端子Ｑもアクティブな状態へと変化する。
時刻ｔ５において、ＭＣＬＫがアクティブとなる。このとき、キャリー端子ＲＣはアクティブであるからロード端子ＬＤもアクティブであり、レジスタ４１に格納された値「１」の反転値「Ｅ」がカウンタ２１にロードされる。従って、カウンタ２１の出力は「Ｅ」となり、キャリー端子ＲＣはネガティブな状態へと反転する。
【００３１】
時刻ｔ６において、ＭＣＬＫがネガティブとなり、ＦＦ３１はキャリー端子ＲＣから出力される信号をラッチするが、時刻ｔ６において、キャリー端子ＲＣはネガティブな状態であるため、ＦＦ３１の出力端子Ｑもネガティブな状態へと変化する。
以上のように、レジスタ４１に「１」が設定されると、キャリー端子ＲＣはＭＣＬＫの周期の２倍の周期でアクティブとなり、これに伴い、ＦＦ３１の出力端子ＱもＭＣＬＫの周期の２倍の周期でアクティブとなる。従って、アンド回路３２は、クロック信号としてＭＣＬＫのパルスを１個おきに出力する。
【００３２】
図５は、レジスタ４１に格納されるデータが「２」であるときのタイムチャートである。
まず、時刻ｔ０でカウンタ２１およびＦＦ３１にリセットがかかり、カウンタ２１の出力ビットの全てがアクティブな状態、即ち、カウンタ２１の出力は「Ｆ」となり、キャリー端子ＲＣはアクティブな信号を出力する。また、ＦＦ３１の出力端子Ｑもアクティブな信号を出力する。
【００３３】
そして、時刻ｔ１においてＭＣＬＫがアクティブとなる。このとき、キャリー端子ＲＣはアクティブであるからロード端子ＬＤもアクティブであり、レジスタ４１に格納された値「２」の反転値「Ｄ」がカウンタ２１にロードされる。従って、カウンタ２１の出力は「Ｄ」となり、キャリー端子ＲＣはネガティブな状態へと反転する。
【００３４】
時刻ｔ２において、ＭＣＬＫがネガティブとなり、ＦＦ３１はキャリー端子ＲＣから出力される信号をラッチするが、時刻ｔ２においては、キャリー端子ＲＣはネガティブな状態であるため、ＦＦ３１の出力端子Ｑもネガティブな状態へと変化する。
時刻ｔ３でＭＣＬＫがアクティブとなり、カウンタ２１はカウントアップアップ動作を行う。その結果、出力が「Ｄ」から「Ｅ」へと変化するが、キャリー端子ＲＣはネガティブな状態を維持する。
【００３５】
時刻ｔ４において、ＭＣＬＫはネガティブとなり、ＦＦ３１はキャリー端子ＲＣから出力される信号をラッチするが、時刻ｔ４において、キャリー端子ＲＣはネガティブな状態であるため、ＦＦ３１の出力端子Ｑもネガティブの状態を維持する。
時刻ｔ５において、ＭＣＬＫがアクティブとなる。カウンタ２１はカウントアップアップ動作を行う。その結果、出力が「Ｅ」から「Ｆ」へと変化し、キャリー端子ＲＣはアクティブな状態に変化する。
【００３６】
時刻ｔ６において、ＭＣＬＫはネガティブとなり、ＦＦ３１はキャリー端子ＲＣから出力される信号をラッチするが、時刻ｔ６において、キャリー端子ＲＣはアクティブな状態であるため、ＦＦ３１の出力端子Ｑもアクティブな状態へと変化する。
時刻ｔ７において、ＭＣＬＫがアクティブとなる。このとき、キャリー端子ＲＣはアクティブであるからロード端子ＬＤもアクティブであり、レジスタ４１に格納された値「２」の反転値「Ｄ」がカウンタ２１にロードされる。従って、カウンタ２１の出力は「Ｄ」となり、キャリー端子ＲＣはネガティブな状態へと反転する。
【００３７】
時刻ｔ８において、ＭＣＬＫがネガティブとなり、ＦＦ３１はキャリー端子ＲＣから出力される信号をラッチするが、時刻ｔ８において、キャリー端子ＲＣはネガティブな状態であるため、ＦＦ３１の出力端子Ｑもネガティブな状態へと変化する。
以上のように、レジスタ４１に「２」が設定されると、キャリー端子ＲＣはＭＣＬＫの周期の３倍の周期でアクティブとなり、これに伴い、ＦＦ３１の出力端子ＱもＭＣＬＫの周期の３倍の周期でアクティブとなる。従って、アンド回路３２は、クロック信号としてＭＣＬＫのパルスを２個おきに出力する。
【００３８】
なお、上述の実施の形態においては、カウンタ２１はカウントアップ方式をとり、レジスタ４１に格納された値だけＭＣＬＫのパルスを計数するとカウント値が「Ｆ」となったが、カウンタ２１をカウントダウン方式を採用してもよい。カウントダウン方式を採用すると、カウンタ２１はレジスタに格納された値を減数し、カウント値が「０」になるとキャリー信号を出力する。
【００３９】
【発明の効果】
本発明によると、マスタクロック信号のパルスを所定の時間おきに通過させることにより、任意の周波数のクロック信号を得るため、複数のクロック信号を同時に生成する回路やクロック信号を選択する回路が不要となり回路規模が縮小される。また、パルスを通過させるタイミングが、マスタクロック信号のパルスの立ち下がり直前或いは立ち上がり直後と重ならないように設定されるため、ハザードが生じることが無い。従って、装置の正常な動作が保証され、信頼性が向上するという効果を奏する。
【図面の簡単な説明】
【図１】  本発明におけるクロック切替回路の概念図である。
【図２】本発明のクロック切替回路の詳細図である。
【図３】本発明の第１の実施の形態におけるタイムチャートである。
【図４】本発明の第２の実施の形態におけるタイムチャートである。
【図５】本発明の第３の実施の形態におけるタイムチャートである。
【図６】本発明の第１の従来におけるクロック切替回路を示す図である。
【図７】本発明の第１の従来におけるクロック切替回路のタイムチャートある。
【図８】本発明の第２の従来におけるクロック切替回路を示す図である。
【図９】  本発明の第２の従来におけるクロック切替回路のタイムチャートである。
【符号の説明】
１      マスタクロック生成回路
２      計数手段
３      抽出手段
４      設定手段
２１    カウンタ
３１    フリップフロップ
３２    アンド回路
４１    レジスタ
【図１】
0003935274.tif 000002
【図２】
0003935274.tif 000003
【図３】
0003935274.tif 000004
【図４】
0003935274.tif 000005
【図５】
0003935274.tif 000006
【図６】
0003935274.tif 000007
【図７】
0003935274.tif 000008
【図８】
0003935274.tif 000009
【図９】
0003935274.tif 000010