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