(57)【特許請求の範囲】
【請求項１】
Ｎ／Ｍ（Ｎは正整数，ＭはＮより大きい正整数）で規定された分周比に基づいて、当該入力クロック信号をＮ／Ｍ分周した出力クロック信号を生成するクロック信号分周回路であって、
入力された制御値に基づいて入力クロック信号に所定の遅延量を与えることにより出力クロック信号を生成して出力する可変遅延回路と、
前記入力クロック信号のサイクルごとに前記制御値を算出して前記可変遅延回路へ出力する可変遅延制御回路と
を備え、
前記可変遅延制御回路は、
前記入力クロック信号のサイクルごとにＭ−Ｎを累積的に加算した値からなる遅延指示値Ｋであって、かつ遅延指示値ＫがＮ以上となった場合にはＫからＮを減算した値となる遅延指示値Ｋを求め、前記出力クロック信号に対する位相制御を示す位相調整信号に応じて前記遅延指示値Ｋの値を増減する遅延指示値算出回路と、
前記遅延指示値算出回路で得られた遅延指示値Ｋに基づいて、前記可変遅延回路での前記入力クロック信号の１サイクル当たりの単位遅延量のＫ／Ｎの遅延量に対応する制御値を算出する制御値出力回路と
を含むことを特徴とするクロック信号分周回路。
【請求項２】
請求項１に記載のクロック信号分周回路において、
前記遅延指示値算出回路は、前記出力クロック信号の位相を早める旨を示す位相調整信号に応じて前記遅延指示値Ｋから１を減算し、前記出力クロック信号の位相を遅らせる旨を示す位相調整信号に応じて前記遅延指示値Ｋに１を加算する
ことを特徴とするクロック信号分周回路。
【請求項３】
請求項１に記載のクロック信号分周回路において、
前記制御値出力回路は、前記遅延指示値Ｋと予め保持している遅延基準値との積を前記制御値として算出する乗算器を含み、前記遅延基準値の校正時には、当該乗算器に対してＮを示す前記遅延指示値Ｋを入力するとともに前記遅延基準値を増減することにより、当該乗算回路から得られる前記制御値を変更して出力し、前記入力クロック信号と前記出力クロック信号との位相が１サイクル分ずれて一致した時点の遅延基準値を保持する
ことを特徴とするクロック信号分周回路。
【請求項４】
請求項３に記載のクロック信号分周回路において、
前記制御値出力回路は、前記遅延基準値の校正を分周動作状態において周期的に行うことを特徴とするクロック信号分周回路。
【請求項５】
請求項１に記載のクロック信号分周回路において、
前記可変遅延回路は、前記入力クロック信号を単位遅延量だけ遅延させて出力する複数の遅延ユニットを含み、前記入力クロック信号が通過する遅延ユニットの数を前記制御値に基づいて変化させることで前記入力クロック信号に対する遅延量を制御することを特徴とするクロック信号分周回路。
【請求項６】
請求項５に記載のクロック信号分周回路において、
前記遅延ユニットは、前記入力クロック信号を往路方向に伝達する第１の遅延素子と、前記入力クロック信号を復路方向に伝達する第２の遅延素子と、第１の遅延素子の出力を第２の遅延素子の入力に接続することにより前記入力クロック信号を往路方向から復路方向へ折り返すバイパス回路とを含み、
前記可変遅延回路は、前記制御値に基づいて選択された遅延ユニットのバイパス回路で前記入力クロック信号の折り返しを行うことを特徴とするクロック信号分周回路。
【請求項７】
請求項６に記載のクロック信号分周回路において、
前記可変遅延回路は、前記制御値に基づいて選択された前記遅延ユニットの往路方向に後続する遅延ユニットに含まれる第１の遅延素子で前記入力クロック信号の伝播経路から切り離しを行うことを特徴とするクロック信号分周回路。
【請求項８】
請求項１に記載のクロック信号分周回路において、
前記遅延指示値算出回路は、
前記入力クロック信号のサイクルごとにＭ−Ｎを累積的に加算することにより遅延指示値Ｋを算出する累積加算回路と、
前記累積加算回路で得られた遅延指示値ＫがＮ以上の場合には前記累積加算回路の遅延指示値ＫからＮを減算する上限制御回路と、
前記累積加算回路で得られた遅延指示値ＫがＮ未満の場合には前記累積加算回路の遅延指示値Ｋを前記制御値出力回路へ出力し、当該遅延指示値ＫがＮ以上の場合には遅延指示値Ｋとしてゼロを前記制御値出力回路へ出力する遅延指示値選択回路と
を含むことを特徴とするクロック信号分周回路。
【請求項９】
Ｎ／Ｍ（Ｎは正整数，ＭはＮより大きい正整数）で規定された分周比に基づいて、当該入力クロック信号をＮ／Ｍ分周した出力クロック信号を生成するクロック信号分周回路であって、
入力された制御値に基づいて入力クロック信号に所定の遅延量を与えることにより出力クロック信号を生成して出力する可変遅延回路と、
前記入力クロック信号のサイクルごとに前記制御値を算出して前記可変遅延回路へ出力する可変遅延制御回路と
を備え、
前記可変遅延制御回路は、
前記入力クロック信号のサイクルごとにＭ−Ｎを累積的に加算した値からなる遅延指示値Ｋであって、かつ遅延指示値ＫがＮ以上となった場合にはＫからＮを減算した値となる遅延指示値Ｋを求める遅延指示値算出回路と、
前記遅延指示値算出回路で得られた遅延指示値Ｋに基づいて、前記可変遅延回路での前記入力クロック信号の１サイクル当たりの単位遅延量のＫ／Ｎの遅延量に対応する制御値を算出する制御値出力回路と
を含み、
前記遅延指示値算出回路は、
前記入力クロック信号をＭサイクル分繰り返しカウントすることにより、前記サイクルに対応したカウント値を出力するカウンタ回路と、
少なくとも前記カウント値に対応する遅延指示値Ｋを予め保持し、入力されたカウント値に応じたテーブルデータを遅延指示値Ｋとして前記制御値算出回路へ出力するテーブル回路と
を含むことを特徴とするクロック信号分周回路。
【請求項１０】
請求項９に記載のクロック信号分周回路において、
前記カウンタ回路は、前記出力クロック信号の位相調整を指示する位相調整信号に応じて前記カウント値を変更することにより、前記遅延指示値Ｋを変更して前記出力クロック信号の位相を調整することを特徴とするクロック信号分周回路。
【請求項１１】
請求項９に記載のクロック信号分周回路において、
前記カウンタ回路は、前記出力クロック信号の位相を早める旨を示す位相調整信号に応じて前記カウント値からＭ−Ｎを減算し、前記出力クロック信号の位相を遅らせる旨を示す位相調整信号に応じて前記カウント値にＭ−Ｎを加算することにより、前記出力クロック信号の位相を調整する
ことを特徴とするクロック信号分周回路。
【請求項１２】
Ｎ／Ｍ（Ｎは正整数，ＭはＮより大きい正整数）で規定された分周比に基づいて、当該入力クロック信号をＮ／Ｍ分周した出力クロック信号を生成するクロック信号分周方法であって、
入力された制御値に基づいて入力クロック信号に所定の遅延量を与えることにより出力クロック信号を生成して出力する可変遅延ステップと、
前記入力クロック信号のサイクルごとに前記制御値を算出して前記可変遅延ステップへ出力する可変遅延制御ステップと
を備え、
前記可変遅延制御ステップは、
前記入力クロック信号のサイクルごとにＭ−Ｎを累積的に加算した値からなる遅延指示値Ｋであって、かつ遅延指示値ＫがＮ以上となった場合にはＫからＮを減算した値となる遅延指示値Ｋを求め、前記出力クロック信号に対する位相制御を示す位相調整信号に応じて前記遅延指示値Ｋの値を増減する遅延指示値算出ステップと、
前記遅延指示値算出ステップで得られた遅延指示値Ｋに基づいて、前記可変遅延ステップでの前記入力クロック信号の１サイクル当たりの単位遅延量のＫ／Ｎの遅延量に対応する制御値を算出する制御値出力ステップと
を含むことを特徴とするクロック信号分周方法。
【請求項１３】
Ｎ／Ｍ（Ｎは正整数，ＭはＮより大きい正整数）で規定された分周比に基づいて、当該入力クロック信号をＮ／Ｍ分周した出力クロック信号を生成するクロック信号分周方法であって、
入力された制御値に基づいて入力クロック信号に所定の遅延量を与えることにより出力クロック信号を生成して出力する可変遅延ステップと、
前記入力クロック信号のサイクルごとに前記制御値を算出して前記可変遅延ステップへ出力する可変遅延制御ステップと
を備え、
前記可変遅延制御ステップは、
前記入力クロック信号のサイクルごとにＭ−Ｎを累積的に加算した値からなる遅延指示値Ｋであって、かつ遅延指示値ＫがＮ以上となった場合にはＫからＮを減算した値となる遅延指示値Ｋを求める遅延指示値算出ステップと、
前記遅延指示値算出ステップで得られた遅延指示値Ｋに基づいて、前記可変遅延ステップでの前記入力クロック信号の１サイクル当たりの単位遅延量のＫ／Ｎの遅延量に対応する制御値を算出する制御値出力ステップと
を含み、
前記遅延指示値算出ステップは、
前記入力クロック信号をＭサイクル分繰り返しカウントすることにより、前記サイクルに対応したカウント値を出力するカウンタステップと、
少なくとも前記カウント値に対応する遅延指示値Ｋを予め保持し、入力されたカウント値に応じたテーブルデータを遅延指示値Ｋとして前記制御値算出ステップへ出力するテーブル保持ステップと
を含むことを特徴とするクロック信号分周方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路技術に関し、特にクロック信号を任意の有理数分周比で分周する分周回路技術に関する。
【背景技術】
【０００２】
任意の周波数のクロック信号から、より低い周波数のクロック信号を分周して分周するクロック信号分周回路において、分周比、すなわち分周前のクロック信号の周波数と分周後のクロック信号の周波数の比が１／Ｍ (Ｍは整数）の分周回路（整数分周回路）は、カウンタ回路を用いて容易に実現することができる。
【０００３】
一方、分周比がＮ／Ｍ（Ｎは正整数，ＭはＮより大きい正整数）からなる有理数であっても分周が可能な分周回路が提案されている（例えば、特許文献１、特許文献２など参照）。これらの関連技術によれは、分周比の分子を設定する値Ｎを、入力クロック信号のサイクルごとに累積的に加算し、その加算結果が分周比の分母を設定する値Ｍより大きくなった場合には、その加算結果からＭを引く、という動作を行い、その加算結果を参照して入力クロック信号のクロックパルスを適切にマスクする（間引く）ことにより有理数分周を実現している。
【０００４】
また、関連技術として、位相補間回路（Phase Interpolator）を使用したクロック生成回路が提案されている（例えば、特許文献３参照）。特許文献３に記載の技術によれば、位相補間回路によって、入力クロック信号のエッジ以外のタイミングでエッジを生成することで、サイクル時間が一定の有理数分周クロック信号を生成することができる。
【０００５】
【特許文献１】特開２００５‐４５５０７号公報
【特許文献２】特開２００６‐１４８８０７号公報
【特許文献３】特開２００２‐５７５７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
これら特許文献１や特許文献２に記載のクロック信号分周回路は、入力クロック信号のパルスを選択的にマスクすることで分周を実現しているため、分周クロック信号のパルス出力のタイミングは、入力クロック信号のパルスのタイミングに制限される。その結果、分周クロック信号のサイクル時間がサイクルごとに大きく変化してしまうという問題がある。また、サイクル時間の最小値が分周比に比例して減少しないので、分周クロック信号で駆動される回路の最大遅延の制約を周波数に応じて緩和できないという問題がある。
【０００７】
また、特許文献１や特許文献２に記載のクロック信号分周回路は、分周クロック信号の位相を調整する機能を持たないので、他のクロック信号とのクロック・スキューを補償する場合、クロック信号の分配回路にスキュー補償のためのバッファ回路を挿入する必要がある。しかし、クロック・スキュー量が大きい場合、多くのスキュー調整のためのバッファ回路を必要とし、面積や電力コストが増大するという問題がある。また、バッファ回路は動作中にその遅延量を調整できないので、電力を削減するためにサイクル時間に応じて電圧を制御する動的周波数電圧制御（DVFS: Dynamic Voltage and Frequency Scaling）技術を使用する場合など、動作中に電源電圧を変更する場合には対応できないという問題がある。
【０００８】
また、特許文献３に記載のクロック信号分周回路は、位相補間回路によって、サイクル時間が一定の有理数分周クロック信号を生成することができるものの、位相補間回路は比較的低周波数の入力クロック信号、例えば５００ＭＨｚ以下の周波数の入力クロック信号を分周する場合、大きな容量を必要とする。このため、消費電力やレイアウト面積が大きく、ノイズに弱いという問題がある。また、アナログ回路のため専用設計を必要とし、設計・検証コストが大きいという問題がある。
【０００９】
本発明はこのような課題を解決するためのものであり、大きな回路規模を必要とすることなく、入力クロック信号を有理数分周できるとともに、分周時に出力クロック信号の位相を調整できるクロック信号分周回路および方法を提供することを目的としている。
【課題を解決するための手段】
【００１０】
このような目的を達成するために、本発明にかかるクロック信号分周回路は、Ｎ／Ｍ（Ｎは正整数，ＭはＮより大きい正整数）で規定された分周比に基づいて、当該入力クロック信号をＮ／Ｍ分周した出力クロック信号を生成するクロック信号分周回路であって、入力された制御値に基づいて入力クロック信号に所定の遅延量を与えることにより出力クロック信号を生成して出力する可変遅延回路と、入力クロック信号のサイクルごとに制御値を算出して可変遅延回路へ出力する可変遅延制御回路とを備え、可変遅延制御回路は、入力クロック信号のサイクルごとにＭ−Ｎを累積的に加算した値からなる遅延指示値Ｋであって、かつ遅延指示値ＫがＮ以上となった場合にはＫからＮを減算した値となる遅延指示値Ｋを求め、出力クロック信号に対する位相制御を示す位相調整信号に応じて遅延指示値Ｋの値を増減する遅延指示値算出回路と、遅延指示値算出回路で得られた遅延指示値Ｋに基づいて、可変遅延回路での入力クロック信号の１サイクル当たりの単位遅延量のＫ／Ｎの遅延量に対応する制御値を算出する制御値出力回路とを含む。
【００１１】
本発明にかかる他のクロック信号分周回路は、Ｎ／Ｍ（Ｎは正整数，ＭはＮより大きい正整数）で規定された分周比に基づいて、当該入力クロック信号をＮ／Ｍ分周した出力クロック信号を生成するクロック信号分周回路であって、入力された制御値に基づいて入力クロック信号に所定の遅延量を与えることにより出力クロック信号を生成して出力する可変遅延回路と、入力クロック信号のサイクルごとに制御値を算出して可変遅延回路へ出力する可変遅延制御回路とを備え、可変遅延制御回路は、入力クロック信号のサイクルごとにＭ−Ｎを累積的に加算した値からなる遅延指示値Ｋであって、かつ遅延指示値ＫがＮ以上となった場合にはＫからＮを減算した値となる遅延指示値Ｋを求める遅延指示値算出回路と、遅延指示値算出回路で得られた遅延指示値Ｋに基づいて、可変遅延回路での入力クロック信号の１サイクル当たりの単位遅延量のＫ／Ｎの遅延量に対応する制御値を算出する制御値出力回路とを含み、遅延指示値算出回路は、入力クロック信号をＭサイクル分繰り返しカウントすることにより、サイクルに対応したカウント値を出力するカウンタ回路と、少なくともカウント値に対応する遅延指示値Ｋを予め保持し、入力されたカウント値に応じたテーブルデータを遅延指示値Ｋとして制御値算出回路へ出力するテーブル回路とを含む。
【００１２】
また、本発明にかかるクロック信号分周方法は、Ｎ／Ｍ（Ｎは正整数，ＭはＮより大きい正整数）で規定された分周比に基づいて、当該入力クロック信号をＮ／Ｍ分周した出力クロック信号を生成するクロック信号分周方法であって、入力された制御値に基づいて入力クロック信号に所定の遅延量を与えることにより出力クロック信号を生成して出力する可変遅延ステップと、入力クロック信号のサイクルごとに制御値を算出して可変遅延ステップへ出力する可変遅延制御ステップとを備え、可変遅延制御ステップは、入力クロック信号のサイクルごとにＭ−Ｎを累積的に加算した値からなる遅延指示値Ｋであって、かつ遅延指示値ＫがＮ以上となった場合にはＫからＮを減算した値となる遅延指示値Ｋを求め、出力クロック信号に対する位相制御を示す位相調整信号に応じて遅延指示値Ｋの値を増減する遅延指示値算出ステップと、遅延指示値算出ステップで得られた遅延指示値Ｋに基づいて、可変遅延ステップでの入力クロック信号の１サイクル当たりの単位遅延量のＫ／Ｎの遅延量に対応する制御値を算出する制御値出力ステップとを含む。
【００１３】
また、本発明にかかる他のクロック信号分周方法は、Ｎ／Ｍ（Ｎは正整数，ＭはＮより大きい正整数）で規定された分周比に基づいて、当該入力クロック信号をＮ／Ｍ分周した出力クロック信号を生成するクロック信号分周方法であって、入力された制御値に基づいて入力クロック信号に所定の遅延量を与えることにより出力クロック信号を生成して出力する可変遅延ステップと、入力クロック信号のサイクルごとに制御値を算出して可変遅延ステップへ出力する可変遅延制御ステップとを備え、可変遅延制御ステップは、入力クロック信号のサイクルごとにＭ−Ｎを累積的に加算した値からなる遅延指示値Ｋであって、かつ遅延指示値ＫがＮ以上となった場合にはＫからＮを減算した値となる遅延指示値Ｋを求める遅延指示値算出ステップと、遅延指示値算出ステップで得られた遅延指示値Ｋに基づいて、可変遅延ステップでの入力クロック信号の１サイクル当たりの単位遅延量のＫ／Ｎの遅延量に対応する制御値を算出する制御値出力ステップとを含み、遅延指示値算出ステップは、入力クロック信号をＭサイクル分繰り返しカウントすることにより、サイクルに対応したカウント値を出力するカウンタステップと、少なくともカウント値に対応する遅延指示値Ｋを予め保持し、入力されたカウント値に応じたテーブルデータを遅延指示値Ｋとして制御値算出ステップへ出力するテーブル保持ステップとを含む。
【発明の効果】
【００１４】
本発明によれば、分周比分母Ｍおよび分周分子Ｎを示す整数値の演算処理で、入力クロック信号のサイクルごとに出力クロック信号に対する遅延指示値を算出することができるとともに、遅延指示値の増減分に応じて、入力クロック信号の１サイクルの１／Ｎに相当する単位で、可変遅延回路に対する遅延制御値が示す遅延量を調整することができる。
したがって、位相調整のために特別に遅延回路等を備える必要がなくなり、入力クロック信号を有理数分周しつつ、出力クロック信号の位相を調整できる。このため、レイアウト面積や消費電力を大幅に増大させることなく、設計・検証コストの小さい有理数分周回路を実現することができる。
【発明を実施するための最良の形態】
【００１５】
次に、本発明の実施形態について図面を参照して説明する。
［第１の実施形態］
まず、図１を参照して、本発明の第１の実施形態にかかるクロック信号分周回路について説明する。図１は、本発明の第１の実施形態にかかるクロック信号分周回路の構成を示すブロック図である。
【００１６】
クロック信号分周回路１０は、分周比設定情報２０のＮ／Ｍ（Ｎは正整数，ＭはＮより大きい正整数）で規定された分周比に基づいて、入力クロック信号ＣＫＩの連続するＭ個のクロックパルスのうち、Ｎ個分のクロックパルスを遅延させることにより、クロックＳをＮ／Ｍの分周比で有理数分周した出力クロック信号ＣＫＯを生成する回路である。
【００１７】
このクロック信号分周回路１０は、主な回路として、可変遅延制御回路１００と可変遅延回路２００とを含んでいる。
可変遅延制御回路１００は、入力クロック信号のサイクルごとに遅延制御値１０４を算出して可変遅延回路へ出力する機能を有している。
可変遅延回路２００は、入力された遅延制御値１０４に基づいて入力クロック信号ＣＫＩに所定の遅延量を与えることにより出力クロック信号ＣＫＯを生成して出力する機能を有している。
【００１８】
可変遅延制御回路１００は、主な回路部として、遅延指示値算出回路１０１と制御値出力回路１０２とを有している。
遅延指示値算出回路１０１は、入力クロック信号ＣＫＩのサイクルごとにＭ−Ｎを累積的に加算した値からなる遅延指示値Ｋであって、かつ遅延指示値ＫがＮ以上となった場合にはＫからＮを減算した値となる遅延指示値Ｋを求める機能と、出力クロック信号ＣＫＯに対する位相制御を示す位相調整信号に応じて遅延指示値Ｋの値を調整する機能とを有している。
制御値出力回路１０２は、遅延指示値算出回路１０１で得られた遅延指示値Ｋに基づいて、可変遅延回路２００での入力クロック信号ＣＫＩの１サイクル当たりの単位遅延量のＫ／Ｎの遅延量に対応する遅延制御値１０４を算出する機能を有している。
【００１９】
これにより、遅延指示値算出回路１０１において、入力クロック信号ＣＫＩのサイクルごとに求められた遅延指示値Ｋが、出力クロック信号ＣＫＯに対する位相制御を示す位相調整信号３０に応じて調整される。また、制御値出力回路１０２において、この遅延指示値Ｋに基づいて入力クロック信号ＣＫＩの１サイクル当たりの単位遅延量のＫ／Ｎの遅延量に対応する遅延制御値１０４が算出される。また、可変遅延回路２００において、この遅延制御値１０４に基づいて、入力クロック信号ＣＫＩのサイクルごとに、入力クロック信号ＣＫＩの１サイクルの１／Ｎの単位で入力クロック信号ＣＫＩに遅延が与えられ、出力クロック信号ＣＫＯとして出力される。
【００２０】
［可変遅延制御回路］
次に、図２を参照して、可変遅延制御回路１００の構成の詳細について説明する。図２は、本発明の第１の実施形態にかかるクロック信号分周回路における可変遅延制御回路の構成を示す回路図である。
可変遅延制御回路１００の遅延指示値算出回路１０１は、加算器１１０、大小比較器１１１、フリップフロップ回路１１２、セレクタ回路１１３、フリップフロップ回路１１４、セレクタ回路１１５、位相制御回路１２０、セレクタ回路１２２、デクリメンタ１２３、インクリメンタ１２４を含んでいる。
【００２１】
遅延指示値算出回路１０１には、分周比設定信号２０として、分周比分母Ｍから分周比分子Ｎを減算した値を示すＭ−Ｎ情報、分周比分子Ｎの負値を示す−Ｎ情報、および分周比分子Ｎの正値を示すＮ情報が入力されている。これらは、数ビット分の並列データからなり、分周比が変更されない限りこの分周比設定情報２０の値は変化しない。
加算器１１０は、セレクタ回路１２２およびセレクタ回路１１５を介して入力されたＭ−Ｎ情報を、入力クロック信号のサイクルごとに累積的に加算することにより遅延指示値Ｋを算出する累積加算回路を構成している。
【００２２】
大小比較器１１１およびフリップフロップ回路１１４は、加算器１１０で得られた遅延指示値ＫがＮ以上の場合、セレクタ回路１１５を介して加算器１１０に−Ｎ情報を入力することにより、加算器１１０の遅延指示値ＫからＮを減算する上限制御回路を構成している。
大小比較器１１１およびセレクタ回路１１３は、加算器１１０で得られた遅延指示値ＫがＮ未満の場合には加算器１１０の遅延指示値Ｋを制御値出力回路１０２へ出力し、当該遅延指示値ＫがＮ以上の場合には遅延指示値Ｋとして「０」を制御値出力回路１０２へ出力する遅延指示値選択回路を構成している。
【００２３】
位相制御回路１２０、セレクタ回路１２２、デクリメンタ１２３、インクリメンタ１２４は、位相調整信号３０に基づいてセレクタ回路１２２を制御して、加算器１１０に入力するＭ−Ｎ情報を変更することにより、遅延指示値Ｋを調整する指示値調整回路を構成している。
【００２４】
可変遅延制御回路１００の制御値出力回路１０２は、位相比較器１３０、カウンタ回路１３２、および乗算器１３４を含んでいる。
位相比較器１３０は、遅延基準値の校正動作時およびクロック分周動作時において、周期的に入力クロック信号ＣＫＩと出力クロック信号ＣＫＯの立ち上がりエッジの位相差を比較し、その比較結果を位相比較結果信号１３１として出力する。
カウンタ回路１３２は、位相比較結果信号１３１に基づいて、保持している遅延基準値１３３のカウントアップまたはカウントダウンを行う。
【００２５】
乗算器１３４は、遅延指示値１０３と遅延基準値１３３との乗算を行い、その乗算結果を遅延制御値１０４として出力する。
なお、フリップフロップ回路１１２、１１４、カウンタ回路１３２は、入力クロック信号ＣＫＩの立ち上がりエッジのタイミングに基づいて動作する。
【００２６】
［可変遅延制御回路の動作］
次に、図３を参照して、可変遅延制御回路の動作について説明する。図３は、可変遅延制御回路の動作を示すタイミングチャートである。ここでは、入力クロック信号ＣＫＩを分周比Ｎ／Ｍ＝５／８で分周して出力クロック信号ＣＫＯを生成する場合を例として説明する。
【００２７】
可変遅延制御回路１００は、リセット動作直後、または分周比の変更直後、初期化中状態にある。可変遅延制御回路１００は、初期化中状態において、可変遅延回路２００の遅延量を入力クロック信号ＣＫＩの１サイクル分に制御する遅延基準値の校正動作を行う。以下、可変遅延制御回路１００の校正動作について説明する。
【００２８】
初期化中状態を表す初期化情報ＩＮＩが与えられた時、セレクタ回路１１３は、遅延指示値１０３にＮ情報を選択して出力する。これにより、可変遅延回路２００の遅延量を入力クロック信号ＣＫＩの１サイクル分だけ制御するための遅延指示値の、１／Ｎに相当する値を、カウンタ回路１３２で遅延指示値１３３として保持するように校正する。
制御値出力回路１０２の乗算器１３４は、遅延指示値１０３と遅延基準値１３３とを乗算し、この乗算結果の小数点以下を切り捨てた値を遅延制御値１０４として出力する。
【００２９】
ここで、カウンタ回路１３２が保持する遅延基準値１３３の初期値は「１．０」である。したがって、図３において、校正動作直後の最初のサイクルＴ０では、分周比が５／８の場合、遅延指示値１０３が「５」、遅延基準値１３３が「１．０」であることから、これらが乗算器１３４で乗算され、遅延制御値１０４は「５」となる。これにより、可変遅延回路２００は、制御値＝５に対応した遅延量で出力クロック信号ＣＫＯを出力する。
【００３０】
位相比較器１３０は、出力クロック信号ＣＫＯの立ち上がりエッジと入力クロック信号ＣＫＩの次の立ち上がりエッジとを比較する。遅延制御値１０４が「５」のＴ０の場合、出力クロック信号ＣＫＯの立ち上がりエッジは、入力クロック信号ＣＫＩの次の立ち上がりエッジよりも位相が遅れているので、その位相比較結果が位相比較結果信号１３１により出力される。
カウンタ回路１３２は、位相比較結果信号１３１が出力クロック信号ＣＫＯの遅れを示す場合、保持している遅延基準値１３３を単位調整量分、例えば「０．１」だけ増分し、遅延基準値１３３として「１．１」にカウントアップする。これにより、次のサイクルＴ１において、遅延指示値１０３が「５」、遅延基準値１３３が「１．１」であることから、これらの乗算結果は「５．５」となるが、乗算器１３４で小数点以下を切り捨てられて遅延制御値１０４は「５」となる。
【００３１】
このようにして、出力クロック信号ＣＫＯの立ち上がりエッジと入力クロック信号ＣＫＩの次の立ち上がりエッジの位相が一致するまで、カウンタ回路１３２の遅延基準値１３３がカウントアップされる。これに応じて、遅延制御値１０４の値、さらに可変遅延回路２００の遅延量が増加していく。
【００３２】
サイクルＴｎにおいて、遅延基準値１３３の値が「２０．０」、遅延制御値１０４の値が「１００」に到達し、出力クロック信号ＣＫＯの立ち上がりエッジと入力クロック信号ＣＫＩの次の立ち上がりエッジとの位相が一致した場合、位相比較器１３０でロック状態が検出される。
カウンタ回路１３２は、位相比較結果信号１３１がロック状態を示す場合、そのときの遅延基準値１３３の値を保持する。これにより、可変遅延回路２００の遅延量を、入力クロック信号ＣＫＩの１サイクル分に制御する遅延指示値（＝１００）の１／Ｎ（＝１／５）に相当する値（＝２０．０）が、カウンタ回路１３２で遅延基準値１３３として保持される。
【００３３】
したがって、この校正動作以降、遅延指示値Ｋを変更することにより、入力クロック信号ＣＫＩのサイクルごとに、可変遅延回路２００の遅延量を、入力クロック信号ＣＫＩの１サイクルの１／Ｎの単位の遅延量で、精度よく制御することが可能となる。
このため、分周動作では、分周比Ｎ／Ｍに応じて、入力クロック信号ＣＫＩのサイクルごとに、当該サイクルにおける入力クロック信号ＣＫＩのクロックパルスから出力クロック信号ＣＫＯのクロックパルスまでの遅延量を遅延指示値Ｋで与えることにより、分周比Ｎ／Ｍで分周した出力クロック信号ＣＫＯを生成することが可能となる。
【００３４】
次に、可変遅延制御回路１００の分周動作について説明する。
可変遅延制御回路１００は、ロックを検出すると、初期化中状態から分周動作状態に遷移する。可変遅延制御回路１００は、分周動作状態において、入力クロック信号ＣＫＩを分周比Ｎ／Ｍ（＝５／８）で分周した出力クロック信号ＣＫＯを生成するように、可変遅延回路２００の遅延量を制御する遅延制御値１０４を出力する。
【００３５】
位相調整信号３０として、クロック信号ＣＫＯの位相の調整要求が入力されていない場合、位相制御回路１２０は、位相制御信号１２１によりセレクタ回路１２２が入力「Ｍ−Ｎ」を選択するように制御する。
分周動作状態では、セレクタ回路１１３は、大小比較器１１１による加算結果１１６とＮの比較結果を参照して、加算器１１０の加算結果１１６がＮ以上であれば固定値「０」を選択する。一方、加算結果１１６がＮ未満であればこの加算結果１１６の値を選択して、遅延指示値Ｋ（１３１）として出力する。
【００３６】
分周動作状態の最初のサイクルＣ０において、加算結果１１６の値が「０」の場合、セレクタ回路１１３は、加算結果１１６の値「０」を選択するので、遅延指示値１０３の値は「０」である。遅延基準値１３３の値は、カウンタ回路１３２に記憶されている値「２０．０」である。この値「２０．０」は、可変遅延回路２００の遅延量を入力クロック信号ＣＫＩの１サイクル分に制御する遅延指示値である１００の１／Ｎ（Ｎ＝５）に相当する値である。この場合、遅延制御値１０４の値は「０」となり、サイクルＣ０において、可変遅延回路２００は、出力クロック信号ＣＫＯを出力しない。
【００３７】
次に、サイクルＣ１において、フリップフロップ回路１１４は、サイクルＣ０における大小比較器１１１の結果、すなわち加算結果１１６がＮ未満であった旨を保持している。セレクタ回路１１５は、フリップフロップ回路１１４に保持されている直前サイクルの大小比較器１１１の結果を参照して、加算結果１１６がＮ以上であったならば入力「−Ｎ」を選択し、加算結果１１６がＮ未満であったならば、セレクタ回路１２２の出力である入力「Ｍ−Ｎ」を選択する。したがって、サイクルＣ１では、セレクタ回路１１５は、入力「Ｍ−Ｎ」＝８−５＝３を選択する。
【００３８】
フリップフロップ回路１１２は、サイクルＣ０における加算結果１１６の値「０」を保持している。したがって、加算器１１０では、フリップフロップ回路１１２からの「０」にセレクタ回路１１５からの「３」が加えられ、加算結果１１６の値は「３」となる。加算結果１１６の値「３」は、Ｎ（Ｎ＝５）未満であるので、セレクタ回路１１３は、加算結果１１６の値「３」を選択し、遅延指示値１０３の値は「３」となる。したがって、サイクルＣ０において、遅延制御値１０４の値は「３×２０．０＝６０」となる。
【００３９】
これにより、サイクルＣ０において、可変遅延回路２００は、入力クロック信号ＣＫＩに対して遅延指示値である「６０」に対応する遅延を施した出力クロック信号ＣＫＯを出力する。可変遅延回路２００の遅延量は、遅延指示値が「１００」のときに入力クロック信号ＣＫＩの１サイクル分に等しいので、遅延指示値が「６０」のときは、図３に示すように、１サイクルの６０／１００＝３／５の遅延量になる。
【００４０】
次に、サイクルＣ２において、フリップフロップ回路１１４は、サイクルＣ１において加算結果１１６がＮ未満であった旨を保持している。したがって、セレクタ回路１１５は、セレクタ回路１２２の出力である入力「Ｍ−Ｎ」＝３を選択して出力する。フリップフロップ回路１１２は、サイクルＣ１における加算結果１１６の値「３」を保持している。これにより、加算結果１１６の値は「３＋３＝６」となる。加算結果１１６の値「６」は、Ｎ（Ｎ＝５）以上であるので、セレクタ回路１１３は固定値「０」を選択し、遅延指示値１０３の値は「０」となる。したがって、サイクルＣ２において、遅延制御値１０４の値は「０×２０．０＝０」となり、可変遅延回路２００は、出力クロック信号ＣＫＯを出力しない。
【００４１】
次に、サイクルＣ３において、フリップフロップ回路１１４は、サイクルＣ２において加算結果１１６の値がＮ以上であった旨を保持している。したがって、セレクタ回路１１５は、入力「−Ｎ」＝−５を選択して出力する。フリップフロップ回路１１２は、サイクルＣ２における加算結果１１６の値「６」を保持している。これにより、加算結果１１６の値は「６−５＝１」となる。加算結果１１６の値「１」は、Ｎ（Ｎ＝５）未満であるので、セレクタ回路１１３は、加算結果１１６の値「１」を選択し、遅延指示値１０３の値は「１」となる。
【００４２】
したがって、サイクルＣ３において、遅延制御値１０４の値は「１×２０．０＝２０」となり、可変遅延回路２００は、入力クロック信号ＣＫＩを遅延指示値である「２０」に対応する遅延量だけ遅延させた出力クロック信号ＣＫＯを出力する。この際、可変遅延回路２００の遅延量は、遅延指示値が「１００」のときに入力クロック信号ＣＫＩの１サイクル分に等しいので、遅延指示値が「２０」のときは、図３に示すように、入力クロック信号ＣＫＩの１サイクルの「２０／１００＝１／５＝１／Ｎ」の遅延量になる。
【００４３】
同様に、サイクルＣ４において、加算結果１１６の値は「１＋３＝４」、遅延指示値１０３の値は「４」、遅延制御値１０４の値は「８０」となる。したがって、入力クロック信号ＣＫＩを入力クロック信号ＣＫＩの１サイクルの「８０／１００＝４／５＝４／Ｎ」だけ遅延した出力クロック信号ＣＫＯが出力される。
また、サイクルＣ５において、加算結果１１６の値は「４＋３＝７」、遅延指示値１０３の値は「０」、遅延制御値１０４の値は「０」となる。したがって、出力クロック信号ＣＫＯは出力されない。
【００４４】
さらに、サイクルＣ６において、加算結果１１６の値は「７−５＝２」、遅延指示値１０３の値は「２」、遅延制御値１０４の値は「４０」となる。したがって、入力クロック信号ＣＫＩを入力クロック信号ＣＫＩの１サイクルの「４０／１００＝２／５＝２／Ｎ」だけ遅延した出力クロック信号ＣＫＯが出力される。
またさらに、サイクルＣ７において、加算結果１１６の値は「２＋３＝５」、遅延指示値１０３の値は「５」、遅延制御値１０４の値は「１００」となる。したがって、入力クロック信号ＣＫＩを入力クロック信号ＣＫＩの１サイクル分だけ遅延した出力クロック信号ＣＫＯが出力される。すなわち、出力クロック信号ＣＫＯの立ち上がりエッジの位相は、入力クロック信号ＣＫＩの次の立ち上がりエッジの位相と一致することになる。
【００４５】
次に、サイクルＣ７の次のサイクルＣ８において、フリップフロップ回路１１４は、サイクルＣ７において加算結果１１６がＮ以上であった旨を保持している。したがって、セレクタ回路１１５は、入力「−Ｎ」＝−５を選択して出力する。フリップフロップ回路１１２は、サイクルＣ７における加算結果１１６の値「５」を保持している。したがって加算結果１１６の値は、加算器１１０の「５−５＝０」となる。加算結果１１６の値「０」は、Ｎ（Ｎ＝５）未満であるので、セレクタ回路１１３はこの値「０」を選択し、遅延指示値１０３の値は「０」となる。したがって、遅延制御値１０４の値は「０×２０．０＝０」となり、可変遅延回路２００は、出力クロック信号ＣＫＯを出力しない。この状況は、先に説明したサイクルＣ０の状況と同様である。この後、サイクルＣ０からサイクルＣ７の動作を繰り返すこととなる。
【００４６】
以上のように、位相比較器１３０は、可変遅延制御回路１００が初期化中状態の校正動作状態にある場合は、入力クロック信号ＣＫＩの毎サイクルにおいて、入力クロック信号ＣＫＩと出力クロック信号ＣＫＯの立ち上がりエッジの位相差を比較し、その結果を位相比較結果信号１３１として出力する。また、可変遅延制御回路１００が分周動作状態にある場合は、図３からも明らかなように、サイクルＣ０において入力クロック信号ＣＫＩと出力クロック信号ＣＫＯの立ち上がりエッジの位相が一致する。
【００４７】
位相比較器１３０は、可変遅延制御回路１００が分周動作状態にある場合は、サイクルＣ０のタイミングで周期的に入力クロック信号ＣＫＩと出力クロック信号ＣＫＯの立ち上がりエッジの位相差を比較し、その結果を位相比較結果信号１３１として出力する。カウンタ回路１３２は、位相比較結果信号１３１に基づいて、入力クロック信号ＣＫＩの位相に対して出力クロック信号の位相が遅れている場合、保持している遅延基準値１３３をカウントアップする。また、入力クロック信号ＣＫＩの位相に対して出力クロック信号の位相が進んでいる場合、保持している遅延基準値１３３をカウントダウンする。
【００４８】
これにより、温度変動や電源電圧変動等によって可変遅延回路２００の遅延量がばらついたとしても、遅延基準値１３３が、位相比較器１３０が出力する位相比較結果に基づいて調整されるので、サイクルＣ０のタイミングで常に入力クロック信号ＣＫＩと出力クロック信号ＣＫＯの位相が一致することになる。すなわち、図３にも示すように、出力クロック信号ＣＫＯのサイクル時間（立ち上がりエッジ間の間隔）は、入力クロック信号ＣＫＩのサイクル時間の１／Ｎ×Ｍ＝Ｍ／Ｎ＝８／５倍で一定である。
【００４９】
［可変遅延回路］
次に、図４を参照して、可変遅延回路の構成について詳細を説明する。図４は、可変遅延回路の構成を示す回路図である。
可変遅延回路２００は、複数の遅延ユニット２１０を直列に接続した構成である。具体的には、図４に示すように、Ｄ１，Ｄ２，…，Ｄｎ（ｎは正整数）のｎ個の遅延ユニット２１０が直列に接続されている。ここでは、遅延ユニットＤ１から遅延ユニットＤ２，…，Ｄｎへの順で入力クロック信号ＣＫＩが伝播する方向を往路方向といい、この逆順で伝播する方向を復路方向という。
【００５０】
入力クロック信号ＣＫＩは、まず遅延ユニットＤ１に入力されて往路方向に伝播し、いずれかの遅延ユニット２１０で折り返して復路方向に伝播し、遅延ユニットＤ１を再び通過し、最後にインバータ回路２２０を介して、出力クロック信号ＣＫＯとして出力される。このため、折り返しを行う遅延ユニット２１０を任意に選択により、入力クロック信号ＣＫＩが通過する遅延ユニット２１０の段数を制御することが可能となり、可変遅延回路２００は可変遅延が実現される。
【００５１】
遅延ユニットＤｋ（ｋは１〜ｎの整数）は、ＡＮＤ回路２１１、ＡＮＤ回路２１４、およびＮＡＮＤ回路２１３から構成される。ＡＮＤ回路２１１（第１の遅延素子）は、往路方向（Ｄｋ−１）から入力された入力クロック信号ＣＫＩを、往路出力信号２１２としてＮＡＮＤ回路２１３および次段の遅延ユニットＤｋ＋１へ出力するか否かを、入力マスク信号２０４に基づいて制御する。ＮＡＮＤ回路２１３は、ＡＮＤ回路２１１から出力された入力クロック信号ＣＫＩを当該遅延ユニットＤｋにおいて、復路方向に折り返して出力するか否かを、折り返し制御信号２０２に基づいて制御し、バイパス回路として機能する。
【００５２】
ＡＮＤ回路２１４（第２の遅延素子）は、ＮＡＮＤ回路２１３で折り返された往路出力信号２１２、または復路方向（Ｄｋ＋１）から入力された復路出力信号２１５を、復路方向で隣接する遅延ユニットＤｋ−１へ復路出力信号２１５として出力する。
このようにして、各遅延ユニット２１０は、主としてＡＮＤ回路２１１およびＡＮＤ回路２１４で生じる遅延量だけ遅延させて、入力クロック信号ＣＫＩを往路方向および復路方向に伝播させる遅延素子として機能する。
【００５３】
デコード回路２０１は、遅延制御値１０４をデコードして、各遅延ユニット２１０に対する折り返し制御信号２０２を生成する。また、折り返し制御信号２０２をインバータ回路２０３で論理反転した信号を入力マスク信号２０４として使用する。
【００５４】
［可変遅延回路の動作］
次に、図５および図６を参照して、可変遅延回路の動作について詳細を説明する。ここでは、位相調整信号３０に、クロック信号ＣＫＯの位相の調整要求が入力されていないとする。図５は、可変遅延制御回路の動作を示すタイミングチャートである。図６は、可変遅延回路の動作を示すタイミングチャートである。
ここでは、分周比Ｎ／Ｍが３／４であるものとする。また、可変遅延回路２００の遅延量を入力クロック信号ＣＫＩの１サイクル分に制御する遅延指示値が「１２」であるとすると、遅延基準値１３３の値は「１２／Ｎ＝１２／３＝４」に設定されている。
【００５５】
図５において、サイクルＣ０では、加算結果１１６の値は「４」、遅延指示値１０３の値は「０」、遅延制御値１０４の値は「０」となる。サイクルＣ１では、加算結果１１６の値は「１」、遅延指示値１０３の値は「１」、遅延制御値１０４の値は「４」、となる。サイクルＣ２では、加算結果１１６の値は「２」、遅延指示値１０３の値は「２」、遅延制御値１０４の値は「８」となる。サイクルＣ３では、加算結果１１６の値は「３」、遅延指示値１０３の値は「３」、遅延制御値１０４の値は「１２」となる。このように分周比Ｎ／Ｍ＝３／４では、サイクルＣ０からサイクルＣ３の動作が繰り返されて分周が実現される。
【００５６】
図６には、サイクルＣ０からサイクルＣ３の各サイクルでの、可変遅延回路２００における入力クロック信号ＣＫＩの立ち上がりおよび立ち下がりの伝播の様子が模式的に示されている。ここでは、Ｄ１からＤ１６の１６個の遅延ユニット２１０における入力マスク信号２０４、折り返し制御信号２０２、往路出力信号２１２、復路出力信号２１５の各値を示している。
【００５７】
まず、サイクルＣ０では、遅延制御値１０４の値は「０」であるので、デコード回路２０１は、遅延ユニットＤ１のインバータ回路２０３へ入力される折り返し制御信号２０２のみを値「１」、その他の折り返し制御信号２０２の値を「０」として出力する。したがって、遅延ユニットＤ１の入力マスク信号２０４の値は「０」となるので、入力クロック信号ＣＫＩの伝播経路は、遅延ユニットＤ１において切り離され、出力クロック信号ＣＫＯは出力されない。
【００５８】
次に、サイクルＣ１では、遅延制御値１０４の値は「４」であるので、デコード回路２０１は、遅延ユニットＤ４の折り返し制御信号２０２のみを値「１」、その他の折り返し制御信号２０２の値を「０」として出力する。したがって、入力クロック信号ＣＫＩの立ち上がりおよび立ち下がりとも、遅延ユニットＤ４で折り返されて伝播する。すなわち、出力クロック信号ＣＫＯには、入力クロック信号ＣＫＩが遅延ユニットＤ１〜Ｄ４の４個分の遅延だけ遅延したクロック信号が出力される。またＤ５の遅延ユニット２１０の入力マスク信号２０４の値は「０」となるので、入力クロック信号ＣＫＩの伝播経路は、遅延ユニットＤ５で切り離され、これ以降の往路方向には伝播しない。
【００５９】
また、サイクルＣ２では、遅延制御値１０４の値は「８」であるので、デコード回路２０１は、遅延ユニットＤ８の折り返し制御信号２０２のみを値「１」、その他の折り返し制御信号２０２の値を「０」として出力する。したがって、入力クロック信号ＣＫＩの立ち上がりおよび立ち下がりとも、遅延ユニットＤ８で折り返されて伝播する。すなわち、出力クロック信号ＣＫＯには、入力クロック信号ＣＫＩが遅延ユニットＤ１〜Ｄ８の８個分の遅延だけ遅延したクロック信号が出力される。またＤ９の遅延ユニット２１０の入力マスク信号２０４の値は「０」となるので、入力クロック信号ＣＫＩの伝播経路は、遅延ユニットＤ９で切り離され、これ以降の往路方向には伝播しない。
【００６０】
さらに、サイクルＣ３では、遅延制御値１０４の値は「１２」であるので、デコード回路２０１は、遅延ユニットＤ１２の折り返し制御信号２０２のみを値「１」、その他の折り返し制御信号２０２の値を「０」として出力する。したがって、入力クロック信号ＣＫＩの立ち上がりおよび立ち下がりとも、遅延ユニットＤ１２で折り返されて伝播する。すなわち、出力クロック信号ＣＫＯには、入力クロック信号ＣＫＩが遅延ユニットＤ１〜Ｄ１２の１２個分の遅延だけ遅延したクロック信号が出力される。これは入力クロック信号ＣＫＩのサイクル時間と一致する。また、遅延ユニットＤ１３の入力マスク信号２０４の値は「０」となるので、入力クロック信号ＣＫＩの伝播経路は、遅延ユニットＤ１３で切り離され、これ以降の往路方向には伝播しない。
【００６１】
以降、サイクルＣ０からサイクルＣ３の動作を繰り返すことで、分周比Ｎ／Ｍ＝３／４の分周を実現することができる。これは、可変遅延制御回路１００が可変遅延回路２００の遅延量を、入力クロック信号ＣＫＩのサイクルごとに、入力クロック信号ＣＫＩの１サイクルの１／Ｎの単位で制御することで実現している。
また、図５からも明らかなように、出力クロック信号ＣＫＯのサイクル時間（立ち上がりエッジ間の間隔）は、入力クロック信号ＣＫＩのサイクル時間の１／Ｎ×Ｍ＝Ｍ／Ｎ＝４／３倍で一定である。
【００６２】
［第１の実施形態の動作］
次に、図７を参照して、本発明の第１の実施形態にかかるクロック信号分周回路の動作について説明する。図７は、本発明の第１の実施形態にかかるクロック信号分周回路の適用例を示すブロック図である。
ここでは、位相調整信号３０に、出力クロック信号ＣＫＯの位相の調整要求が入力された場合の動作について説明する。
【００６３】
図７には、回路Ａと回路Ｂを含んだ半導体集積回路の例が示されている。回路Ａは、クロックＡをツリー状のクロック分配回路４１で分配したクロックＡ’で動作する。回路Ｂは、クロックＡを本発明のクロック信号分周回路１０で有理数分周して生成したクロックＢを、ツリー状のクロック分配回路４２で分配したクロックＢ’で動作する。
位相比較回路４０は、クロックＡ’とクロックＢ’の位相を周期的に比較し、その比較結果に基づいて、クロックＡ’とクロックＢ’の位相が周期的に一致するように、クロックＢの位相の調整を、位相調整信号３０を通じてクロック信号分周回路１０に要求する。
【００６４】
本実施形態にかかるクロック信号分周回路１０は、クロックＡを入力クロック信号ＣＫＩとして入力し、それを有理数分周して生成した出力クロック信号ＣＫＯをクロックＢとして出力する。さらに、位相調整信号３０を入力し、それに基づいてクロックＢの位相を調整する。
この動作により、例えば回路Ｂの電圧を変更するなど、ＬＳＩの動作中にクロックＢの分配遅延が変化する場合でも、それに追従してクロックＡ’とクロックＢ’の位相を周期的に一致させることができる。クロックＡ’とクロックＢ’の位相を周期的に一致させた場合、回路Ａと回路Ｂとの間で同期的で高速な通信が可能となる、などの利点がある。
【００６５】
まず、図８を参照して、位相調整がない場合における可変遅延制御回路の動作について説明する。図８は、可変遅延制御回路の動作例（位相調整なし）を示すタイミングチャートである。ここでは、分周比Ｎ／Ｍが３／４であるものとする。
図８の例において、クロックＡの分配遅延、すなわちクロック分配回路４１の遅延と、クロックＢの分配遅延、すなわちクロック分配回路４２の遅延が同等であり、クロックＡ’とクロックＢ’の位相がサイクルＣ０で周期的に一致しているものとする。
【００６６】
この場合、位相比較回路４０は、この周期的に位相が一致するサイクルＣ０で、クロックＡ’とクロックＢ’の位相を比較し、その比較結果に基づいて、位相調整信号３０に、位相調整の要求を出力する。この場合、サイクルＣ０において、クロックＡ’とクロックＢ’の位相は一致しているので、位相調整信号３０には、位相調整の要求がないことを示す値「０」が出力されている。これに応じて、位相調整信号３０を入力する遅延指示値算出回路１０１のクロック位相制御回路１２０は、位相調整動作を行わないように、位相制御信号１２１に値「０」を出力して、セレクタ回路１２２が入力「Ｍ−Ｎ」を選択するように制御する。これにより、クロック信号分周回路１０は、図５を参照して説明した動作と同一の動作を行う。
【００６７】
次に、図９を参照して、位相遅れを調整する場合における可変遅延制御回路の動作について説明する。図９は、可変遅延制御回路の他の動作例（位相遅れを調整）を示すタイミングチャートである。ここでは、例えば回路Ｂの電圧を低下させた場合など、クロックＡの分配遅延、すなわちクロック分配回路４１の遅延よりも、クロックＢの分配遅延、すなわちクロック分配回路４２の遅延が大きい場合の動作例が示されている。
図９の例において、サイクルＣ０において、クロックＡ’よりもクロックＢ’の位相が遅れているものとする。
【００６８】
位相比較回路４０は、サイクルＣ０で、クロックＡ’とクロックＢ’の位相を比較し、この比較結果がクロックＡ’よりもクロックＢ’の位相が遅れていることを示す場合、その位相遅れを調整するため、位相調整信号３０に、位相を進めることを要求する値「−１」を出力する。このとき、クロック位相制御回路１２０は、位相を進める調整動作を行うように、位相制御信号１２１に値「−１」を、１サイクルだけ出力する。位相制御信号１２１に値「−１」を出力するサイクルは、可変遅延制御回路１００のフリップフロップ回路１１４が、加算結果１１６がＮ未満であった旨を保持しており、セレクタ回路１１５が、セレクタ回路１２２の出力を選択して出力するサイクルならば、いずれのサイクルでもよい。ここでは、サイクルＣ３において、位相制御信号１２１に値「−１」を出力するとする。
【００６９】
位相制御信号１２１が値「−１」の場合、前述の図２に示したように、セレクタ回路１２２は入力「Ｍ−Ｎ」から値「１」を引いた値「Ｍ−Ｎ−１＝１−１＝０」を選択する。この結果、サイクルＣ３において、加算結果１１６および遅延指示値１０３の値は、「２＋１＝３」から「２＋０＝２」に調整される。これは、可変遅延回路２００の遅延量が、入力クロック信号ＣＫＩの１サイクルの３／Ｎ＝３／３から、入力クロック信号ＣＫＩの１サイクルの２／Ｎ＝２／３に、調整されることを意味する。すなわち、サイクルＣ３において、入力クロック信号ＣＫＩの１サイクルの１／Ｎ＝１／３だけ位相が早まった出力クロック信号ＣＫＯが出力される。その結果、クロックＡの分配遅延よりも、クロックＢの分配遅延が大きいにもかかわらず、サイクルＣ３の次のサイクルＣ０’において、クロックＡ’とクロックＢ’の位相が一致することになる。
【００７０】
この後、位相比較回路４０は、サイクルＣ０’で再びクロックＡ’とクロックＢ’の位相を比較し、その比較結果に基づいて、位相調整信号３０には、位相調整の要求がないことを示す値「０」を出力する。サイクルＣ３で調整された加算結果１１６は、可変遅延制御回路１００のフリップフロップ回路１１２に保持され、それに基づいてその後のサイクルの加算結果１１６が計算される。したがって、次のサイクルＣ０”でも、クロックＡ’とクロックＢ’の位相は一致することになる。
【００７１】
次に、図１０を参照して、位相進みを調整する場合における可変遅延制御回路の動作について説明する。図１０は、可変遅延制御回路の他の動作例（位相進みを調整）を示すタイミングチャートである。ここでは、例えば回路Ｂの電圧を上昇させた場合など、クロックＡの分配遅延、すなわちクロック分配回路４１の遅延よりも、クロックＢの分配遅延、すなわちクロック分配回路４２の遅延が小さい場合の動作例が示されている。
図９の例において、サイクルＣ０において、クロックＡ’よりもクロックＢ’の位相が進んでいるものとする。
【００７２】
位相比較回路４０は、サイクルＣ０で、クロックＡ’とクロックＢ’の位相を比較し、この比較結果がクロックＡ’よりもクロックＢ’の位相が進んでいることを示す場合、その位相進みを調整するため、位相調整信号３０に、位相を遅らせることを要求する値「＋１」を出力する。このとき、クロック位相制御回路１２０は、位相を遅らせる調整動作を行うように、位相制御信号１２１に値「＋１」を、１サイクルだけ出力する。位相制御信号１２１に値「＋１」を出力するサイクルは、可変遅延制御回路１００のフリップフロップ回路１１４が、加算結果１１６がＮ未満であった旨を保持しており、セレクタ回路１１５が、セレクタ回路１２２の出力を選択して出力するサイクルならば、いずれのサイクルでもよい。ここでは、サイクルＣ３において、位相制御信号１２１に値「＋１」を出力するとする。
【００７３】
位相制御信号１２１が値「＋１」の場合、図２に示すように、セレクタ回路１２２は入力「Ｍ−Ｎ」に値「１」を足した、「Ｍ−Ｎ＋１＝１＋１＝２」を選択する。この結果、サイクルＣ３において、加算結果１１６の値は、「２＋１＝３」から「２＋２＝４」に調整され、遅延指示値１０３の値は「０」になる。したがって、サイクルＣ３では、出力クロック信号ＣＫＯは出力されない。一方、次のサイクルＣ０’では、加算結果１１６および遅延指示値１０３の値は「１」になり、入力クロック信号ＣＫＩを入力クロック信号ＣＫＩの１サイクルの１／Ｎ＝１／３だけ遅延した出力クロック信号ＣＫＯが出力される。
【００７４】
これは、可変遅延回路２００の遅延量が、サイクルＣ３における入力クロック信号ＣＫＩの１サイクルの３／Ｎ＝３／３から、サイクルＣ０’における入力クロック信号ＣＫＩの１サイクルの１／Ｎ＝１／３に、調整されることを意味する。すなわち、サイクルＣ３からサイクルＣ０’において、入力クロック信号ＣＫＩの１サイクルの１／Ｎ＝１／３だけ位相が遅くなった出力クロック信号ＣＫＯが出力される。その結果、クロックＡの分配遅延よりも、クロックＢの分配遅延が小さいにもかかわらず、サイクルＣ０’において、クロックＡ’とクロックＢ’の位相が一致することになる。
【００７５】
この後、位相比較回路４０は、サイクルＣ０’で再びクロックＡ’とクロックＢ’の位相を比較し、その比較結果に基づいて、位相調整信号３０には、位相調整の要求がないことを示す値「０」を出力する。サイクルＣ３で調整された加算結果１１６は、可変遅延制御回路１００のフリップフロップ回路１１２に保持され、それに基づいてその後のサイクルの加算結果１１６が計算される。したがって、次のサイクルＣＯ”でも、クロックＡ’とクロックＢ’の位相は一致することになる。
【００７６】
［第１の実施形態の効果］
このように、本実施形態によれば、遅延指示値算出回路１０１により、入力クロック信号ＣＫＩのサイクルごとにＭ−Ｎを累積的に加算した値からなる遅延指示値Ｋであって、かつ遅延指示値ＫがＮ以上となった場合にはＫからＮを減算した値となる遅延指示値Ｋを求め、出力クロック信号ＣＫＯに対する位相制御を示す位相調整信号３０に応じて遅延指示値Ｋを増減している。
具体的には、出力クロック信号ＣＫＯの位相を早める旨を示す位相調整信号３０に応じて遅延指示値Ｋから「１」を減算し、出力クロック信号ＣＫＯの位相を遅らせる旨を示す位相調整信号３０に応じて遅延指示値Ｋに「１」を加算している。
【００７７】
これにより、分周比を示す整数値の演算処理で、入力クロック信号ＣＫＩのサイクルごとに出力クロック信号ＣＫＯに対する遅延指示値Ｋを算出することができるとともに、遅延指示値Ｋの増減分に応じて、入力クロック信号ＣＫＩの１サイクルの１／Ｎに相当する単位で、可変遅延回路２００に対する遅延制御値１０４が示す遅延量を調整することができる。
したがって、位相調整のために特別に遅延回路等を備える必要がなくなり、入力クロック信号を有理数分周しつつ、出力クロック信号の位相を調整できる。このため、レイアウト面積や消費電力を大幅に増大させることなく、設計・検証コストの小さい有理数分周回路を実現することができる。
【００７８】
また、本実施形態では、制御値出力回路１０２において、乗算器１３４により、遅延指示値Ｋと予め保持している遅延基準値との積を遅延制御値１０４として算出し、遅延基準値の校正時には、当該乗算器に対してＮを示す遅延指示値Ｋを入力するとともに遅延基準値を増減することにより、当該乗算回路から得られる制御値を変更して出力し、入力クロック信号と出力クロック信号との位相が１サイクル分ずれて一致した時点の遅延基準値を保持するようにしてもよい。
【００７９】
したがって、この校正動作以降、遅延指示値Ｋを変更することにより、入力クロック信号ＣＫＩのサイクルごとに、可変遅延回路２００の遅延量を、入力クロック信号ＣＫＩの１サイクルの１／Ｎの単位の遅延量で、精度よく制御することが可能となる。
このため、分周動作では、分周比Ｎ／Ｍに応じて、入力クロック信号ＣＫＩのサイクルごとに、当該サイクルにおける入力クロック信号ＣＫＩのクロックパルスから出力クロック信号ＣＫＯのクロックパルスまでの遅延量を遅延指示値Ｋで与えることにより、分周比Ｎ／Ｍで分周した出力クロック信号ＣＫＯを生成することが可能となる。
【００８０】
また、本実施形態では、制御値出力回路１０２における遅延基準値の校正を分周動作状態において周期的に行うようにしてもよい。
前述のように、遅延指示値Ｋを変更して位相調整を行う場合でも、入力クロック信号ＣＫＩと出力クロック信号ＣＫＯの立ち上がりエッジの位相が一致するサイクルが必ず存在する。例えば、図９に示した位相を進めた場合には、サイクルＣ１’で位相が一致する。また、図１０に示した位相を遅らせた場合には、サイクルＣ３’で位相が一致する。したがって、制御値出力回路１０２の位相比較器１３０で、これらサイクルで周期的に入力クロック信号ＣＫＩと出力クロック信号ＣＫＯの立ち上がりエッジの位相差を比較し、その結果を位相比較結果信号１３１としてカウンタ回路１３２へ出力すればよい。これにより、カウンタ回路１３２で保持している遅延基準値１３３が調整される。
【００８１】
これにより、分周動作状態において、温度変動や電源電圧変動等によって可変遅延回路２００の遅延量がばらついたとしても、遅延基準値１３３は、位相比較器１３０が出力する位相比較結果に基づいて調整されるので、これらのサイクルで常に入力クロック信号ＣＫＩと出力クロック信号ＣＫＯの位相が一致するように動作する。したがって、位相調整を行った場合でも、温度変動や電源電圧変動等があっても変動に追従して、サイクル時間が一定の有理数分周クロック信号を生成することができる。
【００８２】
なお、本実施形態では、可変遅延制御回路１００において、分周比の設定信号Ｍ−Ｎ、−Ｎ、およびＮを入力して使用したが、これに限るものではない。例えばＭおよびＮを入力して、内部でＭ−Ｎおよび−Ｎを生成して使用してもよい。
また、本実施形態では、カウンタ回路１３２は、可変遅延回路２００の遅延量を入力クロック信号ＣＫＩの１サイクル分に制御する遅延指示値の１／Ｎに相当する値を記憶したが、入力クロック信号ＣＫＩの１サイクル分に制御する遅延指示値が導出できる値であれば、これに限るものではない。例えば、入力クロック信号ＣＫＩの１サイクル分に制御する遅延指示値そのものを記憶して、使用する際に１／Ｎの値を計算してもよい。
【００８３】
また、本実施形態では、可変遅延回路２００において、入力クロック信号を単位遅延量だけ遅延させて出力する複数の遅延ユニットを用い、入力クロック信号が通過する遅延ユニットの数を制御値に基づいて変化させることで入力クロック信号に対する遅延量を制御している。
具体的には、遅延ユニットに、入力クロック信号を往路方向に伝達する第１の遅延素子と、入力クロック信号を復路方向に伝達する第２の遅延素子と、第１の遅延素子の出力を第２の遅延素子の入力に接続することにより入力クロック信号を往路方向から復路方向へ折り返すバイパス回路とを含み、可変遅延制御回路１００からの遅延制御値１０４に基づいて選択された遅延ユニットのバイパス回路で入力クロック信号の折り返しを行う。
【００８４】
これにより、可変遅延回路２００をディジタル論理回路のみで構成され、また可変遅延制御回路１００から出力されるディジタル値に基づいて遅延量を決定することが可能となる。このため、従来の位相補間回路による実現に比べて、比較的低周波数のクロックを生成する場合でも大きな容量を必要としないため、消費電力やレイアウト面積が小さい。さらに、アナログ回路や専用設計を必要とする回路を使用しないので、設計・検証コストが小さい。
【００８５】
また、本実施形態では、可変遅延回路２００において、入力クロック信号ＣＫＩを折り返した遅延ユニットより後段の遅延ユニットが、入力クロック信号ＣＫＩの伝播経路から切り離されて動作しないため、遅延の生成に必要な遅延ユニットしか動作しないので、消費電力が小さい。
【００８６】
［第２の実施形態］
次に、図１１を参照して、本発明の第２の実施形態にかかるクロック信号分周回路について説明する。図１１は、本発明の第２の実施形態にかかるクロック信号分周回路における可変遅延制御回路の構成を示す回路図である。
第１の実施形態では、可変遅延制御回路１００において、分周動作時に遅延指示値Ｋを算出して出力する場合について説明した。本実施形態では、予め算出した値を保持するテーブル回路を用いて遅延指示値Ｋを出力する場合について説明する。
【００８７】
図１１に示すように、本実施形態にかかる可変遅延制御回路１００の遅延指示値算出回路１０１は、カウンタ回路１５０とテーブル回路１５１を含んでいる。
遅延指示値算出回路１０１には、分周比設定信号２０として、分周比分母Ｍから分周比分子Ｎを減算した値を示すＭ−Ｎ情報、分周比分母Ｍを示すＭ情報、および分周比分子Ｎの正値を示すＮ情報が入力されている。これらは、数ビット分の並列データからなり、分周比が変更されない限りこの分周比設定情報２０の値は変化しない。
【００８８】
カウンタ回路１５０は、入力クロック信号ＣＫＩのタイミングで動作し、分周比設定情報２０の入力「Ｍ」および「Ｍ−Ｎ」と、位相調整信号３０とを参照して、入力クロック信号ＣＫＩと出力クロック信号ＣＫＯの位相関係が一巡するサイクル数である値Ｍを繰り返してカウントし、その値をカウント値１５２として出力する。
【００８９】
テーブル回路１５１は、複数のテーブルデータ１５４を保持し選択出力する機能を有し、分周比の設定信号である入力「Ｍ」、「Ｎ］、およびカウント値１５２の組合せ１５３ごとに、遅延指示値Ｋの値をテーブル形式で予め保持している。より具体的には、第１の実施形態において、遅延指示値算出回路１０１が入力クロック信号ＣＫＩのサイクルごとに計算していた遅延指示値１０３を、テーブル形式で保持している。テーブル回路１５１は、入力クロック信号ＣＫＩのサイクルごとに、入力「Ｍ」、「Ｎ」、およびカウント値１５２の組合せ１５３に対応するテーブルデータ１５４を読み出し、遅延指示値１０３として、そのまま出力する。
【００９０】
本実施形態にかかるクロック信号分周回路１０のうち、遅延指示値算出回路１０１の以外の構成については、第１の実施形態と同様であり、ここでの詳細な説明は省略する。
【００９１】
［第２の実施形態の動作］
次に、図１２〜図１６を参照して、本発明の第２の実施形態にかかるクロック信号分周回路の動作について説明する。図１２は、可変遅延制御回路の動作（位相調整なし）を示すタイミングチャートである。図１３は、可変遅延制御回路の他の動作（位相遅れを調整）を示すタイミングチャートである。図１４は、可変遅延制御回路の他の動作（図１３以降）を示すタイミングチャートである。図１５は、可変遅延制御回路の他の動作（位相進みを調整）を示すタイミングチャートである。図１６は、可変遅延制御回路の他の動作（図１５以降）を示すタイミングチャートである。ここでは、分周比Ｎ／Ｍ＝５／８の時の可変遅延制御回路１００の動作について説明する。
【００９２】
まず、図１２を参照して、クロックＡとクロックＢの位相が一致しており、位相調整がない場合における可変遅延制御回路１００の動作について説明する。
図１２では、クロックＡの分配遅延、すなわちクロック分配回路４１の遅延と、クロックＢの分配遅延、すなわちクロック分配回路４２の遅延が同等であり、したがってクロックＡ’とクロックＢ’の位相がサイクルＣ０で周期的に一致しているものとする。
【００９３】
位相比較回路４０は、この周期的に位相が一致するサイクルＣ０で、クロックＡ’とクロックＢ’の位相を比較し、その比較結果に基づいて位相調整信号３０により位相調整の要求を出力する。この場合、サイクルＣ０において、クロックＡ’とクロックＢ’の位相は一致しているので、位相調整信号３０には、位相調整の要求がないことを示す値「０」が出力されている。
【００９４】
カウンタ回路１５０は、サイクルＣ０で値が「０」となり、その後、Ｍ＝８サイクル分を繰り返してカウントする。図１２には、そのカウント値１５２として「０」〜「７」が図示しており、サイクルＣ０〜サイクルＣ７と対応している。
テーブル回路１５１は、テーブルデータ１５４として、分周比Ｎ／Ｍ＝５／８の時の遅延指示値Ｋ（１０３）の値を保持しており、入力「Ｍ」、「Ｎ」、およびカウント値１５２の組合せ１５３と対応するテーブルデータ１５４を読み出し、この値を遅延指示値Ｋとして出力する。
【００９５】
具体的には、テーブル回路１５１は、カウント値１５２が値「０」の時に値「０」、カウント値１５２が値「１」の時に値「３」、カウント値１５２が値「２」の時に値「０」、カウント値１５２が値「３」の時に値「１」、カウント値１５２が値「４」の時に値「４」、カウント値１５２が値「５」の時に値「０」、カウント値１５２が値「６」の時に値「２」、カウント値１５２が値「７」の時に値「５」を、遅延指示値Ｋとして出力する。
【００９６】
この遅延指示値Ｋは、前述の図３に示した第１の実施形態における遅延指示値１０３の値と同一である。したがって、本実施形態のクロック信号分周回路も、第１の実施形態と同様にして、分周比Ｎ／Ｍ＝５／８の分周を実現することができる。
【００９７】
次に、図１３を参照して、位相遅れを調整する場合における可変遅延制御回路１００の動作について説明する。
図１３では、クロックＡの分配遅延よりもクロックＢの分配遅延が大きく、サイクルＣ０において、クロックＡ’よりもクロックＢ’の位相が遅れているものとする。
位相比較回路４０は、サイクルＣ０で、クロックＡ’とクロックＢ’の位相を比較し、この比較結果がクロックＡ’よりもクロックＢ’の位相が遅れていることを示す場合、その位相遅れを調整するため、位相調整信号３０に、位相を進めることを要求する値「−１」を出力する。
【００９８】
これに応じて、カウンタ回路１５０は、いずれかのサイクルで、位相を進める調整動作を行うように、カウントしている値を修正する。
具体的には、サイクルＣ６において、カウントしている値「６」からＭ−Ｎ＝８−５＝３を引いて値「３」に修正し、その値をカウント値１５２として出力する。したがって、遅延指示値Ｋ（１０３）の値は、サイクルＣ６では値「１」、次のサイクルＣ７では値「４」に調整される。
【００９９】
その結果、図１２と図１３を比較すると明らかのように、サイクルＣ６以降において、入力クロック信号ＣＫＩの１サイクルの１／Ｎ＝１／５だけ位相が早まった出力クロック信号ＣＫＯが出力される。
これにより、クロックＡの分配遅延よりも、クロックＢの分配遅延が大きいにもかかわらず、サイクルＣ７の次のサイクルＣ０’において、クロックＡ’とクロックＢ’の位相が一致することになる。
【０１００】
このようにして、サイクルＣ６で位相調整を行い、サイクルＣ０’でクロックＡ’とクロックＢ’の位相が一致した後、図１４に示すように、位相比較回路４０は、サイクルＣ０’で再びクロックＡ’とクロックＢ’の位相を比較し、その比較結果に基づいて、位相調整信号３０には、位相調整の要求がないことを示す値「０」を出力する。
その後もカウンタ回路１５０は、サイクルＣ６で調整された値に基づいてカウント動作を行うので、次のサイクルＣＯ”でも、クロックＡ’とクロックＢ’の位相は一致することになる。
【０１０１】
次に、図１５を参照して、位相進みを調整する場合における可変遅延制御回路１００の位相進みを調整する動作について説明する。
図１５では、サイクルＣ０において、クロックＡ’よりもクロックＢ’の位相が進んでいるものとする。
位相比較回路４０は、サイクルＣ０で、クロックＡ’とクロックＢ’の位相を比較し、この比較結果が、クロックＡ’よりもクロックＢ’の位相が進んでいることを示す場合、その位相進みを調整するため、位相調整信号３０に、位相を遅らせることを要求する値「＋１」を出力する。
【０１０２】
これに応じて、カウンタ回路１５０は、いずれかのサイクルで、位相を遅らせる調整動作を行うように、カウントしている値を修正する。
具体的には、サイクルＣ６において、カウントしている値「６」にＭ−Ｎ＝８−５＝３を足して値「９」に修正する。カウントする値の範囲である「０〜７」を超えているので、さらに「Ｍ＝８」を引いて値「１」に修正し、その値をカウント値１５２として出力する。
【０１０３】
したがって、遅延指示値１０３の値は、サイクルＣ６では値「３」、次のサイクルＣ７では値「０」に調整される。その結果、図１２と図１５を比較すると明らかのように、サイクルＣ６以降において、入力クロック信号ＣＫＩの１サイクルの１／Ｎ＝１／５だけ位相が遅くなった出力クロック信号ＣＫＯが出力される。その結果、クロックＡの分配遅延よりも、クロックＢの分配遅延が小さいにもかかわらず、サイクルＣ７の次のサイクルＣ０’において、クロックＡ’とクロックＢ’の位相が一致することになる。
【０１０４】
このようにして、サイクルＣ６で位相調整を行い、サイクルＣ０’でクロックＡ’とクロックＢ’の位相が一致した後、図１６に示すように、位相比較回路４０は、サイクルＣ０’で再びクロックＡ’とクロックＢ’の位相を比較し、その比較結果に基づいて、位相調整信号３０には、位相調整の要求がないことを示す値「０」を出力する。
その後もカウンタ回路１５０は、サイクルＣ６で調整された値に基づいてカウント動作を行うので、次のサイクルＣＯ”でも、クロックＡ’とクロックＢ’の位相は一致することになる。
【０１０５】
［第２の実施形態の効果］
このように、本実施形態によれば、遅延指示値算出回路１０１において、入力クロック信号をカウンタ回路１５０でＭサイクル分繰り返しカウントすることにより、サイクルに対応したカウント値１５２を出力し、少なくともカウント値１５２に対応する遅延指示値Ｋを予めテーブル回路１５１で保持し、入力されたカウント値１５２に応じたテーブルデータを遅延指示値Ｋとして制御値出力回路１０２へ出力している。
【０１０６】
そして、位相調整を指示する位相調整信号に応じてカウント値１５２を調整することにより、入力クロック信号ＣＫＩの１サイクルの１／Ｎに相当する単位で、可変遅延回路２００に対する遅延制御値１０４が示す遅延量を調整することができる。
したがって、位相調整のために特別に遅延回路等を備える必要がなくなり、レイアウト面積や消費電力を大幅に増大させることなく、入力クロック信号の有理数分周と出力クロック信号の位相調整とを同時に行うことができる。
【０１０７】
また、本実施形態では、制御値出力回路１０２における遅延基準値の校正を分周動作状態において周期的に行うようにしてもよい。
これにより、分周動作状態において、温度変動や電源電圧変動等によって可変遅延回路２００の遅延量がばらついたとしても、遅延基準値１３３は、位相比較器１３０が出力する位相比較結果に基づいて調整されるので、これらのサイクルで常に入力クロック信号ＣＫＩと出力クロック信号ＣＫＯの位相が一致するように動作する。したがって、位相調整を行った場合でも、温度変動や電源電圧変動等があっても変動に追従して、サイクル時間が一定の有理数分周クロック信号を生成することができる。
【０１０８】
また、本実施形態では、制御値出力回路１０２における遅延基準値の校正を分周動作状態において周期的に行うようにしてもよい。
前述のように、遅延指示値Ｋを変更して位相調整を行う場合でも、入力クロック信号ＣＫＩと出力クロック信号ＣＫＯの立ち上がりエッジの位相が一致するサイクルが必ず存在する。例えば、図１４に示した位相を進めた場合には、サイクルＣ３’で位相が一致する。また、図１６に示した位相を遅らせた場合には、サイクルＣ５’で位相が一致する。したがって、制御値出力回路１０２の位相比較器１３０で、これらサイクルで周期的に入力クロック信号ＣＫＩと出力クロック信号ＣＫＯの立ち上がりエッジの位相差を比較し、その結果を位相比較結果信号１３１としてカウンタ回路１３２へ出力すればよい。これにより、カウンタ回路１３２で保持している遅延基準値１３３が調整される。
【０１０９】
これにより、分周動作状態において、温度変動や電源電圧変動等によって可変遅延回路２００の遅延量がばらついたとしても、遅延基準値１３３は、位相比較器１３０が出力する位相比較結果に基づいて調整されるので、これらのサイクルで常に入力クロック信号ＣＫＩと出力クロック信号ＣＫＯの位相が一致するように動作する。したがって、位相調整を行った場合でも、温度変動や電源電圧変動等があっても変動に追従して、サイクル時間が一定の有理数分周クロック信号を生成することができる。
【０１１０】
また、本実施形態では、テーブル回路１５１において、分周比設定情報２０である入力「Ｍ」、「Ｎ］、およびカウント値１５２の組合せ１５３ごとに、遅延指示値Ｋをテーブル形式で保持する場合を例として説明したが、分周比Ｎ／Ｍが固定の場合、入力「Ｍ」、「Ｎ］を省くことができ、極めて小さい規模のテーブル回路１５１で、遅延指示値Ｋを算出することが可能となる。
【図面の簡単な説明】
【０１１１】
【図１】本発明の第１の実施形態にかかるクロック信号分周回路の構成を示すブロック図である。
【図２】本発明の第１の実施形態にかかるクロック信号分周回路における可変遅延制御回路の構成を示す回路図である。
【図３】可変遅延制御回路の動作を示すタイミングチャートである。
【図４】可変遅延回路の構成を示す回路図である。
【図５】可変遅延制御回路の動作を示すタイミングチャートである。
【図６】可変遅延回路の動作を示すタイミングチャートである。
【図７】本発明の第１の実施形態にかかるクロック信号分周回路の適用例を示すブロック図である。
【図８】可変遅延制御回路の動作例（位相調整なし）を示すタイミングチャートである。
【図９】可変遅延制御回路の他の動作例（位相遅れを調整）を示すタイミングチャートである。
【図１０】可変遅延制御回路の他の動作例（位相進みを調整）を示すタイミングチャートである。
【図１１】本発明の第２の実施形態にかかるクロック信号分周回路における可変遅延制御回路の構成を示す回路図である。
【図１２】可変遅延制御回路の動作（位相調整なし）を示すタイミングチャートである。
【図１３】可変遅延制御回路の動作（位相遅れを調整）を示すタイミングチャートである。
【図１４】可変遅延制御回路の動作（位相が一致した場合）を示すタイミングチャートである。
【図１５】可変遅延制御回路の動作（位相進みを調整）を示すタイミングチャートである。
【図１６】可変遅延制御回路の動作（位相が一致した場合）を示すタイミングチャートである。
【符号の説明】
【０１１２】
１０…クロック信号分周回路、１００…可変遅延制御回路、１０１…遅延指示値算出回路、１０２…制御値出力回路、１０３…遅延指示値、１０４…遅延制御値、１１０…加算器、１１１…大小比較器、１１２…フリップフロップ回路、１１３…セレクタ回路、１１４…フリップフロップ回路、１１５…セレクタ回路、１１６…加算結果、１２０…位相制御回路、１２１…位相制御信号、１２２…セレクタ回路、１２３…デクリメンタ、１２４…インクリメンタ、１３０…位相比較器、１３１…位相比較結果信号、１３２…カウンタ回路、１３３…遅延基準値、１３４…乗算器、１５０…カウンタ回路、１５１…テーブル回路、１５２…カウント値、１５３…組合せ、１５４…テーブルデータ、２０１…デコード回路、２０２…折り返し制御信号、２０３…インバータ回路、２０４…入力マスク信号、２１０…遅延ユニット、２１１…ＡＮＤ回路、２１２…往路出力信号、２１３…ＮＡＮＤ回路、２１４…ＡＮＤ回路、２１５…復路出力信号、２２０…インバータ回路、３０…位相調整信号、４０…位相比較回路、４１，４２…クロック分配回路。
【図１】
0005151587.tif 000002
【図２】
0005151587.tif 000003
【図３】
0005151587.tif 000004
【図４】
0005151587.tif 000005
【図５】
0005151587.tif 000006
【図６】
0005151587.tif 000007
【図７】
0005151587.tif 000008
【図８】
0005151587.tif 000009
【図９】
0005151587.tif 000010
【図１０】
0005151587.tif 000011
【図１１】
0005151587.tif 000012
【図１２】
0005151587.tif 000013
【図１３】
0005151587.tif 000014
【図１４】
0005151587.tif 000015
【図１５】
0005151587.tif 000016
【図１６】
0005151587.tif 000017