説明

クロック信号分周回路および方法

【課題】大きな回路規模を必要とすることなく、有理数分周した出力クロック信号のサイクル時間変動を抑制するとともに、分周時に出力クロック信号の位相を調整する。
【解決手段】クロック選択制御回路100により、入力クロック信号のサイクルごとに、分周比に応じた一定サイクル時間を有する基準分周クロック信号と入力クロック信号との位相関係を示す位相計算値111を計算するとともに、位相調整信号に応じてその値を増減し、この位相計算値111に基づいて、出力動作のうち、基準分周クロック信号の位相と近いクロック信号を生成するための出力動作を指示する制御信号102,103を生成する。クロック選択回路101により、制御信号102,103に基づいて、入力クロック信号のクロックパルスをそのまま非反転で出力するか、反転して出力するか、マスクして出力しないか、のいずれかの出力動作を選択して実行することにより、出力クロック信号を生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、回路技術に関し、特にクロック信号を任意の有理数分周比で分周する分周回路技術に関する。
【背景技術】
【0002】
任意の周波数のクロック信号から、より低い周波数のクロック信号を分周して分周するクロック信号分周回路において、分周比、すなわち分周前のクロック信号の周波数と分周後のクロック信号の周波数の比が1/M (Mは整数)の分周回路(整数分周回路)は、カウンタを用いて容易に実現することができる。
【0003】
一方、分周比がN/M(Nは正整数,MはNより大きい正整数)からなる有理数であっても分周が可能な分周回路が提案されている(例えば、特許文献1、特許文献2など参照)。これらの関連技術によれは、分周比の分子を設定する値Nを、入力クロック信号のサイクルごとに累積的に加算し、その加算結果が分周比の分母を設定する値Mより大きくなった場合には、その加算結果からMを引く、という動作を行い、その加算結果を参照して入力クロック信号のクロックパルスを適切にマスクする(間引く)ことにより有理数分周を実現している。
【0004】
また、関連技術として、位相補間回路(Phase Interpolator)を使用したクロック生成回路が提案されている(例えば、特許文献3参照)。特許文献3に記載の技術によれば、位相補間回路によって、入力クロック信号のエッジ以外のタイミングでエッジを生成することで、サイクル時間が一定の有理数分周クロック信号を生成することができる。
【0005】
【特許文献1】特開2005‐45507号公報
【特許文献2】特開2006‐148807号公報
【特許文献3】特開2002‐57578号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
これら特許文献1や特許文献2に記載のクロック信号分周回路は、入力クロック信号のパルスを選択的にマスクすることで分周を実現しているため、分周クロック信号のパルス出力のタイミングは、入力クロック信号のパルスのタイミングに制限される。その結果、分周クロック信号のサイクル時間がサイクルごとに大きく変化してしまうという問題がある。また、サイクル時間の最小値が分周比に比例して減少しないので、分周クロック信号で駆動される回路の最大遅延の制約を周波数に応じて緩和できないという問題がある。特に、分周比が1から1/2の場合にサイクル時間が増加しないので、電力を削減するためにサイクル時間に応じて電圧を制御する動的周波数電圧制御(DVFS:Dynamic Voltage Frequency Scaling)向けのクロック生成には、適用できないという問題がある。
【0007】
図17を参照して、上記関連技術による有理数分周における問題の具体例を説明する。図17は、関連技術による有理数分周結果を示すタイミングチャートである。ここでは、入力クロック信号(8/8)に対して、分周比7/8〜1/8で分周した出力クロック信号を示している。
図17からも明らかなように、分周比が1〜1/2に相当する分周比7/8〜5/8において、分周クロック信号のサイクル時間の最小値は入力クロック信号の1サイクルのままであり、分周比に応じて増加しないという問題がある。また、分周比が3/8の場合において、分周クロック信号のサイクル時間の最小値は入力クロック信号の2サイクルであり、分周比に応じて増加しないという問題がある。
【0008】
さらに、例えば分周比が5/8の場合において、分周クロック信号のサイクル時間の最大値は入力クロック信号の2サイクルである。したがって、分周クロック信号のサイクル時間は、入力クロック信号の1〜2サイクルの間をサイクルごとに変動するという問題がある。また、例えば分周比が3/8の場合において、分周クロック信号のサイクル時間の最大値は入力クロック信号の3サイクルである。したがって、分周クロック信号のサイクル時間は、入力クロック信号の2〜3サイクルの間をサイクルごとに変動するという問題がある。
【0009】
また、特許文献1や特許文献2に記載のクロック信号分周回路は、分周クロック信号の位相を調整する機能を持たないので、他のクロック信号とのクロック・スキューを補償する場合、クロック信号の分配回路にスキュー補償のためのバッファ回路を挿入する必要がある。しかし、クロック・スキュー量が大きい場合、多くのスキュー調整のためのバッファ回路を必要とし、面積や電力コストが増大するという問題がある。また、バッファ回路は動作中にその遅延量を調整できないので、電力を削減するためにサイクル時間に応じて電圧を制御する動的周波数電圧制御(DVFS: Dynamic Voltage and Frequency Scaling)技術を使用する場合など、動作中に電源電圧を変更する場合には対応できないという問題ある。
【0010】
一方、特許文献3に記載のクロック信号分周回路は、位相補間回路によって、サイクル時間が一定の有理数分周クロック信号を生成することができるもの、位相補間回路は比較的低周波数の入力クロック信号、例えば500MHz以下の周波数の入力クロック信号を分周する場合、大きな容量を必要とするため、消費電力やレイアウト面積が大きく、ノイズに弱いという問題がある。また、アナログ回路のため専用設計を必要とし、設計・検証コストが大きいという問題がある。
【0011】
本発明はこのような課題を解決するためのものであり、大きな回路規模を必要とすることなく、有理数分周した出力クロック信号のサイクル時間変動を抑制できるとともに、分周時に出力クロック信号の位相を調整できるクロック信号分周回路および方法を提供することを目的としている。
【課題を解決するための手段】
【0012】
このような目的を達成するために、本発明にかかるクロック信号分周回路は、N/M(Nは正整数,MはNより大きい正整数)で規定された分周比に基づいて、当該入力クロック信号をN/M分周した出力クロック信号を生成するクロック信号分周回路であって、入力された制御信号に基づいて、入力クロック信号のクロックパルスをそのまま非反転で出力するか、反転して出力するか、マスクして出力しないか、のいずれかの出力動作を選択して実行することにより、出力クロック信号を生成するクロック選択回路と、入力クロック信号のサイクルごとに、分周比に応じた一定サイクル時間を有する基準分周クロック信号と入力クロック信号との位相関係を示す位相計算値を計算し、この位相計算値に基づいて、出力動作のうち、基準分周クロック信号の位相と近いクロック信号を生成するための出力動作を指示する制御信号を生成してクロック選択回路へ出力するクロック選択制御回路とを備え、クロック選択制御回路は、入力クロック信号のサイクルごとに、分周比に応じた一定サイクル時間を有する基準分周クロック信号と入力クロック信号との位相関係を示す位相計算値を計算し、出力クロック信号に対する位相制御を示す位相調整信号に応じて位相計算値の値を増減する位相計算回路と、位相計算値に基づいて、入力クロック信号のクロックパルスを出力クロック信号に出力するか否かを判定し、この判定結果に応じた制御信号をクロック選択回路へ出力するクロック出力判定回路と、位相計算値に基づいて、入力クロック信号のクロックパルスをそのまま非反転で出力するか、反転して出力するかを判定し、この判定結果に応じた制御信号をクロック選択回路へ出力するクロック位相判定回路とを含む。
【0013】
また、本発明にかかる他のクロック信号分周回路は、N/M(Nは正整数,MはNより大きい正整数)で規定された分周比に基づいて、当該入力クロック信号をN/M分周した出力クロック信号を生成するクロック信号分周回路であって、入力された制御信号に基づいて、入力クロック信号のクロックパルスをそのまま非反転で出力するか、反転して出力するか、マスクして出力しないか、のいずれかの出力動作を選択して実行することにより、出力クロック信号を生成するクロック選択回路と、入力クロック信号のサイクルごとに、分周比に応じた一定サイクル時間を有する基準分周クロック信号と入力クロック信号との位相関係を示す位相計算値を計算し、この位相計算値に基づいて、出力動作のうち、基準分周クロック信号の位相と近いクロック信号を生成するための出力動作を指示する制御信号を生成してクロック選択回路へ出力するクロック選択制御回路とを備え、クロック選択制御回路は、入力クロック信号をMサイクル分繰り返しカウントすることにより、サイクルに対応したカウント値を出力するカウンタ回路と、少なくともカウント値に対応する位相計算値を予め保持し、入力されたカウント値に応じたテーブルデータを位相計算値として出力するテーブル回路とを含む。
【0014】
また、本発明にかかるクロック信号分周方法は、N/M(Nは正整数,MはNより大きい正整数)で規定された分周比に基づいて、当該入力クロック信号をN/M分周した出力クロック信号を生成するクロック信号分周方法であって、入力された制御信号に基づいて、入力クロック信号のクロックパルスをそのまま非反転で出力するか、反転して出力するか、マスクして出力しないか、のいずれかの出力動作を選択して実行することにより、出力クロック信号を生成するクロック選択ステップと、入力クロック信号のサイクルごとに、分周比に応じた一定サイクル時間を有する基準分周クロック信号と入力クロック信号との位相関係を示す位相計算値を計算し、この位相計算値に基づいて、出力動作のうち、基準分周クロック信号の位相と近いクロック信号を生成するための出力動作を指示する制御信号を生成してクロック選択ステップへ出力するクロック選択制御ステップとを備え、クロック選択制御ステップは、入力クロック信号のサイクルごとに、分周比に応じた一定サイクル時間を有する基準分周クロック信号と入力クロック信号との位相関係を示す位相計算値を計算し、出力クロック信号に対する位相制御を示す位相調整信号に応じて位相計算値の値を増減する位相計算ステップと、位相計算値に基づいて、入力クロック信号のクロックパルスを出力クロック信号に出力するか否かを判定し、この判定結果に応じた制御信号をクロック選択ステップへ出力するクロック出力判定ステップと、位相計算値に基づいて、入力クロック信号のクロックパルスをそのまま非反転で出力するか、反転して出力するかを判定し、この判定結果に応じた制御信号をクロック選択ステップへ出力するクロック位相判定ステップとを含む。
【0015】
また、本発明にかかる他のクロック信号分周方法は、N/M(Nは正整数,MはNより大きい正整数)で規定された分周比に基づいて、当該入力クロック信号をN/M分周した出力クロック信号を生成するクロック信号分周方法であって、入力された制御信号に基づいて、入力クロック信号のクロックパルスをそのまま非反転で出力するか、反転して出力するか、マスクして出力しないか、のいずれかの出力動作を選択して実行することにより、出力クロック信号を生成するクロック選択ステップと、入力クロック信号のサイクルごとに、分周比に応じた一定サイクル時間を有する基準分周クロック信号と入力クロック信号との位相関係を示す位相計算値を計算し、この位相計算値に基づいて、出力動作のうち、基準分周クロック信号の位相と近いクロック信号を生成するための出力動作を指示する制御信号を生成してクロック選択ステップへ出力するクロック選択制御ステップとを備え、クロック選択制御ステップは、入力クロック信号をMサイクル分繰り返しカウントすることにより、サイクルに対応したカウント値を出力するカウンタステップと、少なくともカウント値に対応する位相計算値を予め保持し、入力されたカウント値に応じたテーブルデータを位相計算値として出力するテーブルステップとを含む。
【発明の効果】
【0016】
本発明によれば、分周比分母Mおよび分周分子Nを示す整数値の演算処理で、入力クロック信号のサイクルごとに、分周比に応じた一定サイクル時間を有する基準分周クロック信号と入力クロック信号との位相関係を示す位相計算値を計算でき、この位相計算値に基づいて、入力クロック信号のクロックパルスをそのまま非反転で出力するか、反転して出力するか、マスクして出力しないか、のいずれかを選択して、入力クロック信号のクロックパルスに対して出力制御を行うことにより、出力クロック信号を生成することができる。
【0017】
これにより、出力クロック信号の最小のサイクル時間を、基準分周クロック信号の一定サイクル時間に対して半サイクル以下の誤差に抑制することができ、サイクル時間の変動が小さい出力クロック信号を生成することが可能となる。
また、位相計算値を増減することにより分周クロック信号の生成と同時に位相調整とを行うことができるので、位相調整のための特別な回路が不要となる。また、上記演算処理はディジタル論理回路のみで構成することが可能となり、小さな回路規模で実現可能である。このため、消費電力やレイアウト面積が小さくて済み、さらに、アナログ回路や専用設計を必要とする回路を使用しないので、設計・検証コストを抑制することが可能となる。
【発明を実施するための最良の形態】
【0018】
次に、本発明の実施形態について図面を参照して説明する。
[第1の実施形態]
まず、図1を参照して、本発明の第1の実施形態にかかるクロック信号分周回路について説明する。図1は、本発明の第1の実施形態にかかるクロック信号分周回路の構成を示すブロック図である。
【0019】
クロック信号分周回路10は、分周比設定情報20のN/M(Nは正整数,MはNより大きい正整数)で規定された分周比に基づいて、入力クロック信号に対して出力停止、位相反転出力、および位相非反転出力を選択制御することにより、クロックSをN/Mの分周比で有理数分周した出力クロック信号を生成する回路である。
【0020】
このクロック信号分周回路10は、主な回路として、クロック選択制御回路100とクロック選択回路101とを含んでいる。
クロック選択制御回路100は、入力クロック信号のタイミングで動作し、分周比に応じた一定サイクル時間を有する基準分周クロック信号と入力クロック信号との位相関係を示す位相計算値111を計算し、この位相計算値111に基づいて、クロック選択回路101での出力動作のうち、基準分周クロック信号の位相と近いクロック信号を生成するための出力動作を指示する制御信号、すなわちクロック出力制御信号102とクロック位相制御信号103とを、入力クロック信号のサイクルごとに生成する機能を有している。
【0021】
クロック選択制御回路100は、主な回路部として、位相計算回路110、クロック出力判定回路112、およびクロック位相判定回路113を含んでいる。
位相計算回路110は、分周比がN/Mであり、かつ分周比に応じた一定サイクル時間を有する基準分周クロック信号、すなわち基準分周クロック信号の、入力クロック信号に対する位相を、入力クロック信号のサイクルごとに計算する機能を有している。
クロック出力判定回路112は、位相計算回路110が計算した位相計算値111を参照して、入力クロック信号のサイクルごとに、入力クロック信号のクロックパルスを出力クロック信号に出力するか否かを判定し、その判定結果をクロック出力制御信号102として出力する機能を有している。
【0022】
より詳細には、クロック出力判定回路112は、位相計算値111が入力クロック信号の1サイクル未満を示している場合、クロック選択回路101が入力クロック信号のクロックパルスを出力クロック信号に出力するように非マスク制御する制御値を、クロック出力制御信号102に出力する。
また、クロック出力判定回路112は、位相計算値111が入力クロック信号の1サイクル以上を示している場合、クロック選択回路101が入力クロック信号のクロックパルスを出力クロック信号に出力しないようにマスク制御する制御値を、クロック出力制御信号102に出力する。
【0023】
クロック位相判定回路113は、位相計算回路110が計算する入力クロック信号に対する基準分周クロック信号の位相を参照し、入力クロック信号のクロックパルスをそのまま出力する場合の出力クロック信号の位相と、入力クロック信号のクロックパルスを反転して出力する場合の出力クロック信号の位相とのいずれかのうち、より基準分周クロック信号の位相に近い方を入力クロック信号のサイクルごとに選択し、より基準分周クロック信号の位相に近い方をクロック選択回路101が選択制御する制御値を、クロック位相制御信号103に出力する機能を有している。
【0024】
より詳細には、クロック位相判定回路113は、位相計算値111が入力クロック信号の半サイクル未満を示している場合、クロック選択回路101が入力クロック信号のクロックパルスをそのまま出力クロック信号に出力するように非反転出力制御する制御値を、クロック位相制御信号103に出力する。
また、クロック位相判定回路113は、位相計算値111が入力クロック信号の半サイクル以上を示している場合、クロック選択回路101が入力クロック信号のクロックパルスを反転して出力クロック信号に出力するように反転出力制御する制御値を、クロック位相制御信号103に出力する。
【0025】
クロック選択回路101は、入力クロック信号のサイクルごとに、クロック位相制御信号103およびクロック出力制御信号102で与えられる出力クロック制御信号に基づいて、入力クロック信号のクロックパルスをそのまま非反転で出力するか、入力クロック信号を反転して出力するか、入力クロック信号をマスクして出力しないか、のいずれかの出力動作を選択して実行することにより出力クロック信号を生成する機能を有している。
このクロック選択回路101は、AND回路115、インバータ回路116、およびセレクタ回路117から構成されている。
【0026】
AND回路115は、クロック出力制御信号102に基づいて、入力クロック信号のクロックパルスをマスクする機能を有している。具体的には、AND回路115は、クロック出力制御信号102の値が「0」の場合に入力クロック信号のクロックパルスをマスクし、クロック出力制御信号102の値が「1」の場合に入力クロック信号のクロックパルスをマスクしない。
インバータ回路116は、入力クロック信号のクロックパルスを反転して出力する機能を有している。
【0027】
セレクタ回路117は、入力クロック信号のクロックパルスをそのまま非反転で出力クロック信号に出力するか、あるいは入力クロック信号のクロックパルスを反転して出力クロック信号に出力するかを、クロック位相制御信号103に基づいて選択する機能を有している。具体的には、セレクタ回路117は、クロック位相制御信号103の値が「0」の場合に入力クロック信号のクロックパルスをそのまま非反転出力クロック信号に出力し、クロック位相制御信号103の値が「1」の場合に入力クロック信号のクロックパルスの反転信号を出力クロック信号に出力する。
【0028】
したがって、クロック選択回路101は、クロック位相制御信号103の値が「0」であり、クロック出力制御信号102の値が「1」の場合、入力クロック信号のクロックパルスをそのまま非反転で出力クロック信号として出力する。
また、クロック選択回路101は、クロック位相制御信号103の値が「1」であり、クロック出力制御信号102の値が「1」の場合、入力クロック信号のクロックパルスを反転して出力クロック信号として出力する。
また、クロック選択回路101は、クロック出力制御信号102の値が「0」の場合、入力クロック信号のクロックパルスをマスクすることで、出力クロック信号としてのクロック信号を出力しない。
【0029】
[クロック選択制御回路]
次に、図2を参照して、本発明の第1の実施形態にかかるクロック信号分周回路で用いられるクロック選択制御回路について説明する。図2は、クロック選択制御回路の構成を示す回路図である。
【0030】
クロック選択制御回路100には、分周比設定信号20として、分周比分母Mから分周比分子Nを減算した値を示すM−N情報、分周比分子Nの負値を示す−N情報、および分周比分子Nの正値を示すN情報が入力されている。これらは、数ビット分の並列データからなり、分周比が変更されない限りこの分周比設定情報20の値は変化しない。
【0031】
クロック選択制御回路100の位相計算回路110は、加算器120、フリップフロップ回路121,122、セレクタ回路123、クロック位相制御回路130、セレクタ回路132、デクリメンタ133、およびインクリメンタ134から構成されている。
クロック選択制御回路100のクロック出力判定回路112は、大小比較器140から構成されている。
クロック選択制御回路100のクロック位相判定回路113は、2倍乗算器150と大小比較器151とから構成されている。
【0032】
位相計算回路110のフリップフロップ回路121,122は、入力クロック信号の立ち上がりエッジのタイミングに基づいて動作する。なお、図2において、入力クロック信号の図示は省略している。
【0033】
[第1の実施形態の動作]
次に、図3を参照して、本発明の第1の実施形態にかかるクロック信号分周回路の動作について説明する。図3は、本発明の第1の実施形態にかかるクロック信号分周回路の適用例を示す説明図である。
ここでは、位相調整信号30に、出力クロック信号の位相の調整要求が入力された場合の動作について説明する。
【0034】
図3には、回路Aと回路Bを含んだ半導体集積回路の例が示されている。回路Aは、クロックAをツリー状のクロック分配回路41で分配したクロックA’で動作する。回路Bは、クロックAを本発明のクロック信号分周回路10で有理数分周して生成したクロックBを、ツリー状のクロック分配回路42で分配したクロックB’で動作する。
位相比較回路40は、クロックA’とクロックB’の位相を周期的に比較し、その比較結果に基づいて、クロックA’とクロックB’の位相差が周期的にクロックA’の半サイクル以内になるように、クロックBの位相の調整を、位相調整信号30を通じてクロック信号分周回路10に要求する。
【0035】
本実施形態にかかるクロック信号分周回路10は、クロックAを入力クロック信号として入力し、それを有理数分周して生成した出力クロック信号をクロックBとして出力する。さらに、位相調整信号30を入力し、それに基づいてクロックBの位相を調整する。
この動作により、例えば回路Bの電圧を変更するなど、LSIの動作中にクロックBの分配遅延が変化する場合でも、それに追従してクロックA’とクロックB’の位相差を周期的にクロックA’の半サイクル以内にすることができる。クロックA’とクロックB’の位相差が周期的にある小さい範囲(例えばクロックA’の半サイクル以内)にある場合、回路Aと回路Bとの間で同期的で高速な通信が可能となる、などの利点がある。
【0036】
まず、図4を参照して、位相調整がない場合におけるクロック選択制御回路の動作について説明する。図4は、クロック選択制御回路の動作例(位相調整なし)を示すタイミングチャートである。ここでは、分周比N/Mが3/8であるものとする。また、クロックAの分配遅延、すなわちクロック分配回路41の遅延と、クロックBの分配遅延、すなわちクロック分配回路42の遅延が同等であり、したがってクロックA’とクロックB’の位相がサイクルC0で周期的に一致しているものとする。
【0037】
位相比較回路40は、この周期的に位相が一致するサイクルC0で、クロックA’とクロックB’の位相を比較し、その比較結果に基づいて位相調整信号30により位相調整の要求を出力する。この場合、サイクルC0において、クロックA’とクロックB’の位相は一致しているので、位相調整信号30には、位相調整の要求がないことを示す値「0」が出力されている。これに応じて、位相調整信号30を入力するクロック位相制御回路130は、位相調整動作を行わないように、位相制御信号131に値「0」を出力して、セレクタ回路132が入力M−Nを選択するように制御する。
【0038】
図4において、サイクルC0では、位相計算値111の値は「0」であるとする。2倍乗算器150は、位相計算値111の値を2倍にして、大小比較器151へ出力する。大小比較器151は、位相計算値111の値を2倍した値と、Nの比較結果とを参照して、位相計算値111の2倍の値がN以上であれば値「1」を、位相計算値111の2倍の値がN未満であれば値「0」を、クロック位相制御信号103に出力する。サイクルC0では、クロック位相制御信号103の値は「0」である。
【0039】
大小比較器140は、位相計算値111とNの比較結果とを参照して、位相計算値111がN以上であれば値「0」を、位相計算値111がN未満であれば値「1」を、クロック出力制御信号102に出力する。サイクルC0では、クロック出力制御信号102の値は「1」である。
【0040】
したがって、クロック選択回路101は、入力クロック信号のクロックパルスをそのまま非反転で出力クロック信号として出力する。これは、入力クロック信号のクロックパルスをそのまま非反転で出力クロック信号として出力する方が、入力クロック信号のクロックパルスを反転して出力するよりも、基準分周クロック信号の位相により近いことに対応する。
【0041】
次に、サイクルC1において、フリップフロップ回路122はサイクルC0における大小比較器140の結果、すなわち位相計算値111がN未満であった旨を保持している。
セレクタ回路123は、フリップフロップ回路122に保持されている前サイクルの大小比較器140の結果を参照して、位相計算値111がN以上であったならば入力−Nを選択し、位相計算値111がN未満であったならば入力M−Nを選択する。したがってサイクルC1では、セレクタ回路123は入力M−N(=8−3=5)を選択する。
また、フリップフロップ回路121は、サイクルC0における位相計算値111の値「0」を保持している。したがって、位相計算値111の値は、加算器120の出力「0+5=5」となる。
【0042】
大小比較器151は、位相計算値111の値「5」を2倍した値「10」と、N(=3)の比較結果とを参照して、位相計算値111の2倍の値がN以上であるので、クロック位相制御信号103に値「1」を出力する。大小比較器140は、位相計算値111とNの比較結果とを参照して、位相計算値111の値「5」はN(=3)以上であるので、クロック出力制御信号102に値「0」を出力する。したがって、クロック選択回路101は、入力クロック信号のクロックパルスをマスクして出力クロック信号に出力しない。
【0043】
次に、サイクルC2において、フリップフロップ回路122は、サイクルC1において位相計算値111がN以上であった旨を保持している。したがって、セレクタ回路123は、入力−N(=−3)を選択して出力する。
また、フリップフロップ回路121は、サイクルC1における位相計算値111の値「5」を保持している。したがって、位相計算値111の値は、加算器120の出力「5−3=2」となる。
【0044】
大小比較器151は、位相計算値111の値を2倍した値「4」と、N(=3)の比較結果とを参照して、位相計算値111の2倍の値がN以上であるので、クロック位相制御信号103に値「1」を出力する。大小比較器140は、位相計算値111とNの比較結果とを参照して、位相計算値111の値「2」はN(=3)未満であるので、クロック出力制御信号102に値「1」を出力する。したがって、クロック選択回路101は、入力クロック信号のクロックパルスを反転して出力クロック信号として出力する。これは、入力クロック信号のクロックパルスをそのまま出力クロック信号に出力するよりも、入力クロック信号のクロックパルスを反転して出力する方が、基準分周クロック信号の位相により近いことに対応する。
【0045】
次に、サイクルC3において、フリップフロップ回路122は、サイクルC2において位相計算値111の値がN未満であった旨を保持している。したがって、セレクタ回路123は入力M−N(=5)を選択して出力する。
また、フリップフロップ回路121は、サイクルC2における位相計算値111の値2を保持している。したがって、位相計算値111の値は、加算器120の出力「2+5=7」となる。
【0046】
大小比較器151は、位相計算値111の値を2倍した値「14」と、N(=3)の比較結果とを参照して、位相計算値111の2倍の値がN以上であるので、クロック位相制御信号103に値「1」を出力する。大小比較器140は、位相計算値111とNの比較結果とを参照して、位相計算値111の値「7」はN(=3)以上であるので、クロック出力制御信号102に値「0」を出力する。したがって、クロック選択回路101は、入力クロック信号のクロックパルスをマスクして出力クロック信号に出力しない。
【0047】
同様に、サイクルC4において、位相計算値111の値は「7−3=4」、クロック位相制御信号103の値は「1」、クロック出力制御信号102の値は「0」となる。したがって、クロック選択回路101は、入力クロック信号のクロックパルスを出力クロック信号に出力しない。
【0048】
同様にサイクルC5において、位相計算値111の値は「4−3=1」、クロック位相制御信号103の値は「0」、クロック出力制御信号102の値は「1」となる。したがって、クロック選択回路101は、入力クロック信号のクロックパルスをそのまま非反転で出力クロック信号として出力する。これは、入力クロック信号のクロックパルスをそのまま非反転で出力クロック信号に出力する方が、入力クロック信号のクロックパルスを反転して出力するよりも、基準分周クロック信号の位相により近いことに対応する。
【0049】
同様に、サイクルC6において、位相計算値111の値は「1+5=6」、クロック位相制御信号103の値は「1」、クロック出力制御信号102の値は「0」となる。したがって、クロック選択回路101は、入力クロック信号のクロックパルスを出力クロック信号に出力しない。
同様に、サイクルC7において、位相計算値111の値は「6−3=3」、クロック位相制御信号103の値は「1」、クロック出力制御信号102の値は「0」となる。したがって、クロック選択回路101は、入力クロック信号のクロックパルスを出力クロック信号に出力しない。
【0050】
次に、サイクルC7の次のサイクルC0’において、フリップフロップ回路122は、サイクルC7において位相計算値111がN以上であった旨を保持している。したがって、セレクタ回路123は入力−N(=−3)を選択して出力する。
また、フリップフロップ回路121は、サイクルC7における位相計算値111の値「3」を保持している。したがって、位相計算値111の値は、加算器120の出力「3−3=0」となる。
【0051】
大小比較器151は、位相計算値111の値を2倍した値「0」と、Nの比較結果とを参照して、位相計算値111の2倍の値がN未満であるので、クロック位相制御信号103の値は「0」である。大小比較器140は、位相計算値111とNの比較結果とを参照して、位相計算値111の値がN未満であるので、クロック出力制御信号102の値は「1」である。
したがって、クロック選択回路101は、入力クロック信号をそのまま出力クロック信号として出力する。この状況は、先に説明したサイクルC0の状況と同様である。したがって、この後、サイクルC0からサイクルC7の動作を繰り返すこととなる。
【0052】
このように、図4の例では、サイクルC2において、入力クロック信号のクロックパルスを反転して出力クロック信号として出力している。このため、例えばサイクルC0での出力クロック信号の立ち上がりから、サイクルC2での出力クロック信号の立ち上がりまでのサイクル時間は、入力クロック信号の2.5サイクルに拡大される。同様に、サイクルC2の出力クロック信号の立ち上がりから、サイクルC5での出力クロック信号の立ち上がりまでのサイクル時間は、入力クロック信号の2.5サイクルに拡大される。
【0053】
したがって、出力クロック信号の最小のサイクル時間を、分周比に応じて入力クロック信号の2.5サイクルに拡大することが可能である。また、分周クロック信号のサイクル時間の最大値は、サイクルC5での出力クロック信号の立ち上がりから、サイクルC0’での出力クロック信号の立ち上がりまでの、入力クロック信号の3サイクルである。このため、分周クロック信号の最小のサイクル時間の変動を、入力クロック信号の2.5〜3サイクルに維持することができ、サイクル時間のサイクル毎の変動を抑制することが可能となる。
【0054】
また、上記選択制御は、サイクル時間が一定の基準分周クロック信号の位相を近似するように動作するので、分周クロック信号の最小のサイクル時間が分周比に応じて拡大される機会が多く、サイクル時間の変動が小さい有理数分周クロック信号を生成することができる。
【0055】
次に、図5および図6を参照して、位相遅れを調整する場合におけるクロック選択制御回路の動作について説明する。図5は、クロック選択制御回路の他の動作例(位相遅れ調整)を示すタイミングチャートである。図6は、クロック選択制御回路の他の動作例(図5以降)を示すタイミングチャートである。
ここでは、例えば回路Bの電圧を低下させた場合など、クロックAの分配遅延、すなわちクロック分配回路41の遅延よりも、クロックBの分配遅延、すなわちクロック分配回路42の遅延が大きい場合の動作が示されている。
【0056】
図5の例では、サイクルC0において、クロックA’よりもクロックB’の位相が、クロックA’の半サイクル以上遅れている。
位相比較回路40は、サイクルC0で、クロックA’の位相とクロックB’の位相を比較し、この比較結果がクロックA’の位相よりもクロックB’の位相がクロックA’の半サイクル以上遅れていることを示す場合、その位相遅れを調整するため、位相調整信号30に、位相を進めることを要求する値「−1」を出力する。
【0057】
これに応じて、クロック位相制御回路130は、位相を進める調整動作を行うように、位相制御信号131に値「−1」を、1サイクルだけ出力する。位相制御信号131に値「−1」を出力するサイクルは、クロック選択制御回路100のフリップフロップ回路122が、位相計算値111がN未満であった旨を保持しており、セレクタ回路123が、セレクタ回路132の出力を選択して出力するサイクルならば、いずれのサイクルでもよい。ここでは、サイクルC6において、位相制御信号131に値「−1」を出力するとする。
【0058】
位相制御信号131が値「−1」の場合、セレクタ回路132は入力「M−N」から値「1」を引いたデクリメンタ133の出力「M−N−1=5−1=4」を選択する。これにより、サイクルC6において、位相計算値111の値は「1+5=6」から「1+4=5」に調整される。したがって、サイクルC7における位相計算値111は値「2」、サイクルC0’では値「7」になる。
【0059】
この結果、図4と図5を比較すると明らかなように、サイクルC7からサイクルC0’にかけて、半サイクルだけ位相が早まった入力クロック信号のクロックパルスが、出力クロック信号として出力される。したがって、クロックAの分配遅延よりも、クロックBの分配遅延が大きいにもかかわらず、サイクルC7の次のサイクルC0’において、クロックA’とクロックB’の位相差は、クロックA’の半サイクル以内に調整される。
【0060】
この後、クロック位相制御回路130は、図6に示す動作を継続する。ここでは、サイクルC6で位相調整を行って、サイクルC0’でクロックA’とクロックB’の位相差が、クロックA’の半サイクル以内に調整された後の動作が示されている。
【0061】
位相比較回路40は、サイクルC0’で再びクロックA’とクロックB’の位相を比較し、その比較結果に基づいて、位相調整信号30には、位相調整の要求がないことを示す値「0」を出力する。サイクルC6で調整された位相計算値111は、クロック選択制御回路100のフリップフロップ回路121に保持され、それに基づいてその後のサイクルの位相計算値111が計算される。したがって、次のサイクルC0”でも、クロックA’とクロックB’の位相差はクロックA’の半サイクル以内になる。
【0062】
次に、図7〜図9を参照して、位相遅れを調整する場合におけるクロック選択制御回路の動作について説明する。図7は、クロック選択制御回路の他の動作例(位相進み調整)を示すタイミングチャートである。図8は、クロック選択制御回路の他の動作例(図7以降)を示すタイミングチャートである。図9は、クロック選択制御回路の他の動作例(図8以降)を示すタイミングチャートである。
ここでは、例えば回路Bの電圧を上昇させた場合など、クロックAの分配遅延、すなわちクロック分配回路41の遅延よりも、クロックBの分配遅延、すなわちクロック分配回路42の遅延が小さい場合の動作が示されている。
【0063】
図7の例では、サイクルC0において、クロックA’の位相よりもクロックB’の位相がクロックA’の半サイクル以上進んでいる。
位相比較回路40は、サイクルC0で、クロックA’とクロックB’の位相を比較し、この比較結果が、クロックA’の位相よりもクロックB’の位相がクロックA’の半サイクル以上進んでいることを示す場合、その位相進みを調整するため、位相調整信号30に、位相を遅らせることを要求する値「+1」を出力する。
【0064】
これに応じて、クロック位相制御回路130は、位相を遅らせる調整動作を行うように、位相制御信号131に値「+1」を、1サイクルだけ出力する。位相制御信号131に値「+1」を出力するサイクルは、クロック選択制御回路100のフリップフロップ回路122が、位相計算値111がN未満であった旨を保持しており、セレクタ回路123が、セレクタ回路132の出力を選択して出力するサイクルならば、いずれのサイクルでもよい。ここでは、サイクルC6において、位相制御信号131に値「+1」を出力するとする。
【0065】
位相制御信号131が値「+1」の場合、セレクタ回路132は入力「M−N」に値「1」を足したインクリメンタ134の出力「M−N+1=5+1=6」を選択する。これにより、サイクルC6において、位相計算値111の値は「1+5=6」から「1+6=7」に調整され、サイクルC7における位相計算値111は値「4」、サイクルC0’では値「1」になる。この段階では、これまで通りサイクルC0’において、入力クロック信号をそのまま出力クロック信号として出力する。したがって、サイクルC0’においても、クロックA’の位相よりもクロックB’の位相がクロックA’の半サイクル以上進んでいる。
【0066】
サイクルC0’以降、クロック位相制御回路130は、図8に示す動作を継続する。
この場合、サイクルC0’においても、クロックA’の位相よりもクロックB’の位相がクロックA’の半サイクル以上進んでいるので、位相比較回路40は引き続き、位相調整信号30に、位相を遅らせることを要求する値「+1」を出力する。
【0067】
これに応じて、クロック位相制御回路130は、位相を遅らせる調整動作を行うように、位相制御信号131に値「+1」を、サイクルC6’において出力する。位相制御信号131が値「+1」の場合、セレクタ回路132は入力「M−N」に値「1」を足したインクリメンタ134の出力「M−N+1=5+1=6」を選択する。この結果、サイクルC6において、位相計算値111の値は「2+5=7」から「2+6=8」に調整され、サイクルC7’における位相計算値111は値「5」、サイクルC0”では値「2」になる。
【0068】
この結果、サイクルC0”において、半サイクルだけ位相が遅くなった入力クロック信号のクロックパルスが、出力クロック信号として出力される。したがって、クロックAの分配遅延よりも、クロックBの分配遅延が小さいにもかかわらず、サイクルC0”において、クロックA’とクロックB’の位相差は、クロックA’の半サイクル以内に調整される。
【0069】
この後、クロック位相制御回路130は、図9に示す動作を継続する。ここでは、サイクルC6’で位相調整を行って、サイクルC0”でクロックA’とクロックB’の位相差が、クロックA’の半サイクル以内に調整された後の動作が示されている。
【0070】
位相比較回路40は、サイクルC0’で再びクロックA’とクロックB’の位相を比較し、その比較結果に基づいて、位相調整信号30には、位相調整の要求がないことを示す値「0」を出力する。サイクルC6’で調整された位相計算値111は、クロック選択制御回路100のフリップフロップ回路121に保持され、それに基づいてその後のサイクルの位相計算値111が計算される。したがって、次のサイクルC0'''でも、クロックA’とクロックB’の位相差はクロックA’の半サイクル以内になる。
【0071】
[第1の実施形態の効果]
このように、本実施形態によれば、クロック選択制御回路100により、分周比設定信号30に基づいて、分周比に応じた一定サイクル時間を有する基準分周クロック信号と入力クロック信号との位相関係を示す位相計算値111を計算するとともに、位相調整信号に応じて位相計算値111の値を増減し、この位相計算値111に基づいて、入力クロック信号のサイクルごとに、入力クロック信号のクロックパルスを、そのまま非反転で出力するか、反転して出力するか、マスクして出力しないか、のいずれかを選択し、クロック選択回路101により、この選択結果に基づいて入力クロック信号のクロックパルスの出力制御を行うことにより出力クロック信号を生成している。
【0072】
これにより、出力クロック信号の最小のサイクル時間を、基準分周クロック信号の一定サイクル時間に対して半サイクル以下の誤差に抑制することができ、サイクル時間の変動が小さい出力クロック信号を生成することが可能となる。
【0073】
また、クロック選択制御回路100およびクロック選択回路101は、分周比に関係する整数値を演算処理するディジタル論理回路のみで構成することが可能となり、小さな回路規模で実現可能である。このため、消費電力やレイアウト面積が小さくて済み、さらに、アナログ回路や専用設計を必要とする回路を使用しないので、設計・検証コストを抑制することが可能となる。
【0074】
また、本実施形態では、クロック選択制御回路100において、分周比の設定信号M−N,−N、およびNを入力して使用する場合を例として説明したが、これに限るものではない。例えば、MおよびNを入力して、内部でM−Nおよび−Nを生成して使用してもよい。
【0075】
また、本実施形態では、クロック選択制御回路100において、出力クロック信号に対する位相制御を示す位相調整信号30に応じて、位相計算値111を増減している。
具体的には、出力クロック信号の位相を早める旨を示す位相調整信号30に応じて位相計算値111から「1」を減算し、出力クロック信号の位相を遅らせる旨を示す位相調整信号30に応じて位相計算値111に「1」を加算している。
これにより、分周比に関係する整数値の演算処理で、入力クロック信号のサイクルごとに出力クロック信号に対する位相計算値111を計算することができる。
【0076】
前述した、特許文献1や特許文献2に記載のクロック信号分周回路は、分周クロック信号の位相を調整する機能を持たないので、他のクロック信号とのクロック・スキューを補償する場合、クロック信号の分配回路にスキュー補償のためのバッファ回路を挿入する必要がある。しかし、クロック・スキュー量が大きい場合、多くのスキュー調整のためのバッファ回路を必要とし、面積や電力コストが増大するという問題がある。また、バッファ回路は動作中にその遅延量を調整できないので、電力を削減するためにサイクル時間に応じて電圧を制御する動的周波数電圧制御技術を使用する場合など、動作中に電源電圧を変更する場合には対応できないという問題がある。
【0077】
本実施形態によれば、位相調整のために特別に遅延回路等を備える必要がなくなり、入力クロック信号を有理数分周しつつ、出力クロック信号の位相を調整できる。このため、レイアウト面積や消費電力を大幅に増大させることなく、設計・検証コストの小さい、位相調整機能付きの有理数分周回路を実現することができる。
【0078】
[第2の実施形態]
次に、図10を参照して、本発明の第2の実施形態にかかるクロック信号分周回路について説明する。図10は、クロック選択制御回路の他の構成を示す回路図である。
第1の実施形態では、クロック選択制御回路100において、分周動作時に位相計算値111を計算して出力する場合について説明した。本実施形態では、予め計算した値を保持するテーブル回路を用いて位相計算値111を出力する場合について説明する。
【0079】
図10に示すように、本実施形態にかかるクロック選択制御回路100の位相計算回路110は、カウンタ回路160とテーブル回路161を含んでいる。
位相計算回路110には、分周比設定信号20として、分周比分母Mから分周比分子Nを減算した値を示すM−N情報、分周比分母Mを示すM情報、および分周比分子Nの正値を示すN情報が入力されている。これらは、数ビット分の並列データからなり、分周比が変更されない限りこの分周比設定情報20の値は変化しない。
【0080】
カウンタ回路160は、入力クロック信号のタイミングで動作し、分周比設定情報20の入力「M」および「M−N」と、位相調整信号30とを参照して、入力クロック信号と出力クロック信号の位相関係が一巡するサイクル数である値Mを繰り返してカウントし、その値をカウント値162に出力する。
【0081】
テーブル回路161は、複数のテーブルデータ164を保持し選択出力する機能を有し、分周比設定情報20の入力「M」および「N]と、カウント値162との組合せ163ごとに、位相計算値111の値を、テーブル形式で予め保持している。より具体的には、第1の実施形態の位相計算回路110が入力クロック信号のサイクルごとに計算していた位相計算値111を、テーブル形式で保持している。テーブル回路161は、入力クロック信号のサイクルごとに、入力「M」、「N」、およびカウント値162の組合せ163に対応するテーブルデータ164を読み出し、位相計算値111として、そのまま出力する。
【0082】
本実施形態にかかるクロック信号分周回路10のうち、位相計算回路110の以外の構成については、第1の実施形態と同様であり、ここでの詳細な説明は省略する。
【0083】
[第2の実施形態の動作]
次に、図11〜図16を参照して、本発明の第2の実施形態におけるクロック信号分周回路の動作について説明する。 図11は、クロック選択制御回路の動作(位相調整なし)を示すタイミングチャートである。図12は、クロック選択制御回路の他の動作(位相遅れを調整)を示すタイミングチャートである。図13は、クロック選択制御回路の他の動作(図13以降)を示すタイミングチャートである。図14は、クロック選択制御回路の他の動作(位相進みを調整)を示すタイミングチャートである。図15は、クロック選択制御回路の他の動作(図14以降)を示すタイミングチャートである。図16は、クロック選択制御回路の他の動作(図15以降)を示すタイミングチャートである。ここでは、分周比N/M=3/8の時のクロック選択制御回路100の動作について説明する。
【0084】
まず、図11を参照して、クロックAとクロックBの位相が一致しており、位相調整がない場合におけるクロック選択制御回路100の動作について説明する。ここでは、クロックAの分配遅延、すなわちクロック分配回路41の遅延と、クロックBの分配遅延、すなわちクロック分配回路42の遅延が同等であり、したがってクロックA’とクロックB’の位相がサイクルC0で周期的に一致しているものとする。
【0085】
位相比較回路40は、この周期的に位相が一致するサイクルC0で、クロックA’とクロックB’の位相を比較し、その比較結果に基づいて位相調整信号30により位相調整の要求を出力する。この場合、サイクルC0において、クロックA’とクロックB’の位相は一致しているので、位相調整信号30には、位相調整の要求がないことを示す値「0」が出力されている。
【0086】
クロック選択制御回路100において、位相計算回路110のカウンタ回路160は、サイクルC0で値が0となり、その後、M=8サイクル分を繰り返してカウントする。図11には、そのカウント値162として「0」〜「7」が図示されており、サイクルC0〜サイクルC7と対応している。
テーブル回路161は、テーブルデータ164として、分周比N/M=3/8の時の位相計算値111の値を保持しており、入力「M」、「N」、およびカウント値162の組合せ163と対応するテーブルデータ164を読み出し、この値を位相計算値111として出力する。
【0087】
具体的には、テーブル回路161は、カウント値162が値「0」の時に値「0」、カウント値162が値「1」の時に値「5」、カウント値162が値「2」の時に値「2」、カウント値162が値「3」の時に値「7」、カウント値162が値「4」の時に値「4」、カウント値162が値「5」の時に値「1」、カウント値162が値「6」の時に値「6」、カウント値162が値「7」の時に値「3」を、位相計算値111として出力する。
【0088】
この位相計算値111は、前述の図4に示した第1の実施形態における位相計算値111の値と同一である。したがって、本実施例のクロック信号分周回路も、第1の実施形態と同様にして、分周比N/M=3/8の分周を実現することができる。
【0089】
次に、図12を参照して、位相遅れを調整する場合におけるクロック選択制御回路100の動作について説明する。
図12では、クロックAの分配遅延よりも、クロックBの分配遅延が大きく、サイクルC0において、クロックA’の位相よりもクロックB’の位相が、クロックA’の半サイクル以上遅れているものとする。
位相比較回路40は、サイクルC0で、クロックA’とクロックB’の位相を比較し、この比較結果が、クロックA’の位相よりもクロックB’の位相がクロックA’の半サイクル以上遅れていることを示す場合、その位相遅れを調整するため、位相調整信号30に、位相を進めることを要求する値「−1」を出力する。
【0090】
この位相調整信号30に応じて、カウンタ回路160は、いずれかのサイクルで、位相を進める調整動作を行うように、カウントしている値を修正する。具体的には、サイクルC6において、カウントしている値「6」から「M−N=8−3=5」を引いて値「1」に修正し、その値をカウント値162として出力する。これにより、位相計算値111の値は、サイクルC6では値「5」、次のサイクルC7では値「2」に調整される。これら位相計算値111は、図5に示した第1の実施形態における位相計算値111の値と同一である。したがって、図5に図示した第1の実施形態と同様の出力クロック信号が出力される。
【0091】
この結果、図11と図12を比較すると明らかなように、サイクルC7からサイクルC0’において、入力クロック信号の半サイクルだけ位相が早まった出力クロック信号が出力される。したがって、クロックAの分配遅延よりも、クロックBの分配遅延が大きいにもかかわらず、サイクルC7の次のサイクルC0’において、クロックA’とクロックB’の位相差は、クロックA’の半サイクル以内に調整される。
【0092】
この後、クロック選択制御回路100は、図13に示す動作を継続する。ここでは、サイクルC6で位相調整を行い、サイクルC0’でクロックA’とクロックB’の位相差が、クロックA’の半サイクル以内に調整された後の動作が示されている。
【0093】
位相比較回路40は、サイクルC0’で再びクロックA’とクロックB’の位相を比較し、その比較結果に基づいて、位相調整信号30には、位相調整の要求がないことを示す値「0」を出力する。
これに応じて、カウンタ回路160は、サイクルC6で調整された値に基づいてカウント動作を行うので、次のサイクルC0”でも、クロックA’とクロックB’の位相差はクロックA’の半サイクル以内になる。
【0094】
次に、図14を参照して、位相進みを調整する場合におけるクロック選択制御回路100の動作について説明する。
図14では、クロックAの分配遅延よりも、クロックBの分配遅延が小さく、サイクルC0において、クロックA’よりもクロックB’の位相が、クロックA’の半サイクル以上進んでいるものとする。
位相比較回路40は、サイクルC0で、クロックA’とクロックB’の位相を比較し、この比較結果が、クロックA’の位相よりもクロックB’の位相がクロックA’の半サイクル以上進んでいることを示す場合、その位相進みを調整するため、位相調整信号30に、位相を遅らせることを要求する値「+1」を出力する。
【0095】
この位相調整信号30に応じて、カウンタ回路160は、いずれかのサイクルで、位相を遅らせる調整動作を行うように、カウントしている値を修正する。具体的には、サイクルC6において、カウントしている値「6」に「M−N=8−3=5」を足して値「11」に修正する。この場合、カウントする値の範囲である「0」〜「7」を超えているので、さらにM=8を引いて値「3」に修正し、その値をカウント値162として出力する。
【0096】
これにより、位相計算値111の値は、サイクルC6では値「7」、次のサイクルC7では値「4」、次のサイクルC0’では値「1」に調整される。この段階では、これまで通りサイクルC0’において、入力クロック信号をそのまま出力クロック信号として出力する。したがって、サイクルC0’においても、クロックA’の位相よりもクロックB’の位相がクロックA’の半サイクル以上進んでいる。
【0097】
サイクルC0’以降、クロック選択制御回路100は、図15に示す動作を継続する。
この場合、サイクルC0’においても、クロックA’の位相よりもクロックB’の位相がクロックA’の半サイクル以上進んでいるので、位相比較回路40は引き続き、位相調整信号30に、位相を遅らせることを要求する値「+1」を出力する。
【0098】
これに応じて、カウンタ回路160は、位相を進める調整動作を行うように、サイクルC6’においてカウントしている値を修正する。具体的には、サイクルC6’において、カウントしている値「3」に「M−N=8−3=5」を足して値「8」に修正する。カウントする値の範囲である「0」〜「7」を超えているので、さらにM=8を引いて値「0」に修正し、その値をカウント値162として出力する。したがって、位相計算値111の値は、サイクルC6では値「0」、次のサイクルC7では値「5」、次のサイクルC0”では値「2」に調整される。
【0099】
この結果、サイクルC0”において、半サイクルだけ位相が遅くなった入力クロック信号のクロックパルスが、出力クロック信号として出力される。したがって、クロックAの分配遅延よりも、クロックBの分配遅延が小さいにもかかわらず、サイクルC0”において、クロックA’とクロックB’の位相差は、クロックA’の半サイクル以内に調整される。
【0100】
この後、クロック選択制御回路100は、図16に示す動作を継続する。ここでは、サイクルC6’で位相調整を行い、サイクルC0”でクロックA’とクロックB’の位相差が、クロックA’の半サイクル以内に調整された後の動作が示されている。
【0101】
位相比較回路40は、サイクルC0’で再びクロックA’とクロックB’の位相を比較し、その比較結果に基づいて、位相調整信号30には、位相調整の要求がないことを示す値「0」を出力する。
これに応じて、カウンタ回路160は、サイクルC6’で調整された値に基づいてカウント動作を行うので、次のサイクルC0'''でも、クロックA’とクロックB’の位相差はクロックA’の半サイクル以内になる。
【0102】
[第2の実施形態の効果]
このように、本実施形態によれば、位相計算回路110において、入力クロック信号をカウンタ回路160でMサイクル分繰り返しカウントすることにより、サイクルに対応したカウント値162を出力し、少なくともカウント値162に対応する位相計算値111を予めテーブル回路161で保持し、入力されたカウント値162に応じたテーブルデータ164を位相計算値111としてクロック出力判定回路112およびクロック位相判定回路113へ出力している。
【0103】
これにより、カウンタ回路とテーブル回路という極めて簡単な回路構成で、分周比に応じた一定サイクル時間を有する基準分周クロック信号と入力クロック信号との位相関係に応じた位相計算値111を、容易に計算することができる。
【0104】
また、本実施形態では、クロック選択制御回路100において、出力クロック信号に対する位相制御を示す位相調整信号30に応じて、カウンタ回路160のカウント値に「M−N」を増減することにより、位相計算値111を増減している。
具体的には、出力クロック信号の位相を早める旨を示す位相調整信号30に応じて位相計算値111から「M−N」を減算し、出力クロック信号の位相を遅らせる旨を示す位相調整信号30に応じて位相計算値111に「M−N」を加算している。
【0105】
これにより、分周比に関係する整数値の演算処理で、入力クロック信号のサイクルごとに出力クロック信号に対する位相計算値111を計算することができる。
したがって、位相調整のために特別に遅延回路等を備える必要がなくなり、入力クロック信号を有理数分周しつつ、出力クロック信号の位相を調整できる。このため、レイアウト面積や消費電力を大幅に増大させることなく、設計・検証コストの小さい、位相調整機能付きの有理数分周回路を実現することができる。
【0106】
また、本実施形態では、テーブル回路161において、分周比設定情報20である入力「M」、「N]、およびカウント値162の組合せ163ごとに、位相計算値111をテーブル形式で保持する場合を例として説明したが、分周比N/Mが固定の場合、入力「M」、「N]を省くことができ、極めて小さい規模のテーブル回路161で、位相計算値111を計算することが可能となる。
【0107】
また、本実施形態では、テーブル回路161において、組合せ163ごとに、位相計算値111をテーブルデータ164として保持する場合を例として説明したが、位相計算値111の代わりに、この位相計算値111を参照して生成するクロック位相制御信号103およびクロック出力制御信号102の値を、直接、テーブルデータ164として保持してもよい。これにより、クロック出力判定回路112やクロック位相判定回路113を省くことができ、さらに回路規模を縮小することが可能となる。
【図面の簡単な説明】
【0108】
【図1】本発明の第1の実施形態にかかるクロック信号分周回路の構成を示すブロック図である。
【図2】クロック選択制御回路の構成を示す回路図である。
【図3】本発明の第1の実施形態にかかるクロック信号分周回路の適用例を示す説明図である。
【図4】クロック選択制御回路の動作例(位相調整なし)を示すタイミングチャートである。
【図5】クロック選択制御回路の他の動作例(位相遅れ調整)を示すタイミングチャートである。
【図6】クロック選択制御回路の他の動作例(図5以降)を示すタイミングチャートである。
【図7】クロック選択制御回路の他の動作例(位相進み調整)を示すタイミングチャートである。
【図8】クロック選択制御回路の他の動作例(図7以降)を示すタイミングチャートである。
【図9】クロック選択制御回路の他の動作例(図8以降)を示すタイミングチャートである。
【図10】クロック選択制御回路の他の構成を示す回路図である。
【図11】クロック選択制御回路の動作(位相調整なし)を示すタイミングチャートである。
【図12】クロック選択制御回路の他の動作(位相遅れを調整)を示すタイミングチャートである。
【図13】クロック選択制御回路の他の動作(図13以降)を示すタイミングチャートである。
【図14】クロック選択制御回路の他の動作(位相進みを調整)を示すタイミングチャートである。
【図15】クロック選択制御回路の他の動作(図14以降)を示すタイミングチャートである。
【図16】クロック選択制御回路の他の動作(図15以降)を示すタイミングチャートである。
【図17】関連技術による有理数分周結果を示すタイミングチャートである。
【符号の説明】
【0109】
10…クロック信号分周回路、100…クロック選択制御回路、101…クロック選択回路、102…クロック出力制御信号、103…クロック位相制御信号、110…位相計算回路、111…位相計算値、112…クロック出力判定回路、113…クロック位相判定回路、115…AND回路、116…インバータ回路、117…セレクタ回路、120…加算器、121,122…フリップフロップ回路、123…セレクタ回路、130…位相制御回路、131…位相制御信号、132…セレクタ回路、133…デクリメンタ、134…インクリメンタ、140…大小比較器、150…2倍乗算器、151…大小比較器、160…カウンタ回路、161…テーブル回路、162…カウント値、163…組合せ、164…テーブルデータ。

【特許請求の範囲】
【請求項1】
N/M(Nは正整数,MはNより大きい正整数)で規定された分周比に基づいて、当該入力クロック信号をN/M分周した出力クロック信号を生成するクロック信号分周回路であって、
入力された制御信号に基づいて、前記入力クロック信号のクロックパルスをそのまま非反転で出力するか、反転して出力するか、マスクして出力しないか、のいずれかの出力動作を選択して実行することにより、前記出力クロック信号を生成するクロック選択回路と、
前記入力クロック信号のサイクルごとに、前記分周比に応じた一定サイクル時間を有する基準分周クロック信号と前記入力クロック信号との位相関係を示す位相計算値を計算し、この位相計算値に基づいて、前記出力動作のうち、前記基準分周クロック信号の位相と近いクロック信号を生成するための出力動作を指示する制御信号を生成して前記クロック選択回路へ出力するクロック選択制御回路と
を備え、
前記クロック選択制御回路は、
前記入力クロック信号のサイクルごとに、前記分周比に応じた一定サイクル時間を有する基準分周クロック信号と前記入力クロック信号との位相関係を示す位相計算値を計算し、前記出力クロック信号に対する位相制御を示す位相調整信号に応じて前記位相計算値の値を増減する位相計算回路と、
前記位相計算値に基づいて、入力クロック信号のクロックパルスを出力クロック信号に出力するか否かを判定し、この判定結果に応じた制御信号を前記クロック選択回路へ出力するクロック出力判定回路と、
前記位相計算値に基づいて、入力クロック信号のクロックパルスをそのまま非反転で出力するか、反転して出力するかを判定し、この判定結果に応じた制御信号を前記クロック選択回路へ出力するクロック位相判定回路と
を含む
ことを特徴とするクロック信号分周回路。
【請求項2】
請求項1に記載のクロック信号分周回路において、
前記位相計算回路は、前記出力クロック信号の位相を早める旨を示す位相調整信号に応じて前記位相計算値から1を減算し、前記出力クロック信号の位相を遅らせる旨を示す位相調整信号に応じて前記位相計算値に1を加算する
ことを特徴とするクロック信号分周回路。
【請求項3】
N/M(Nは正整数,MはNより大きい正整数)で規定された分周比に基づいて、当該入力クロック信号をN/M分周した出力クロック信号を生成するクロック信号分周回路であって、
入力された制御信号に基づいて、前記入力クロック信号のクロックパルスをそのまま非反転で出力するか、反転して出力するか、マスクして出力しないか、のいずれかの出力動作を選択して実行することにより、前記出力クロック信号を生成するクロック選択回路と、
前記入力クロック信号のサイクルごとに、前記分周比に応じた一定サイクル時間を有する基準分周クロック信号と前記入力クロック信号との位相関係を示す位相計算値を計算し、この位相計算値に基づいて、前記出力動作のうち、前記基準分周クロック信号の位相と近いクロック信号を生成するための出力動作を指示する制御信号を生成して前記クロック選択回路へ出力するクロック選択制御回路と
を備え、
前記クロック選択制御回路は、
前記入力クロック信号をMサイクル分繰り返しカウントすることにより、前記サイクルに対応したカウント値を出力するカウンタ回路と、
少なくとも前記カウント値に対応する位相計算値を予め保持し、入力されたカウント値に応じたテーブルデータを位相計算値として出力するテーブル回路と
を含む
ことを特徴とするクロック信号分周回路。
【請求項4】
請求項3に記載のクロック信号分周回路において、
前記カウンタ回路は、前記出力クロック信号の位相調整を指示する位相調整信号に応じて前記カウント値を変更することにより、前記出力クロック信号の位相を調整することを特徴とするクロック信号分周回路。
【請求項5】
請求項4に記載のクロック信号分周回路において、
前記カウンタ回路は、前記出力クロック信号の位相を早める旨を示す位相調整信号に応じて前記カウント値からM−Nを減算し、前記出力クロック信号の位相を遅らせる旨を示す位相調整信号に応じて前記カウント値にM−Nを加算することにより、前記出力クロック信号の位相を調整する
ことを特徴とするクロック信号分周回路。
【請求項6】
N/M(Nは正整数,MはNより大きい正整数)で規定された分周比に基づいて、当該入力クロック信号をN/M分周した出力クロック信号を生成するクロック信号分周方法であって、
入力された制御信号に基づいて、前記入力クロック信号のクロックパルスをそのまま非反転で出力するか、反転して出力するか、マスクして出力しないか、のいずれかの出力動作を選択して実行することにより、前記出力クロック信号を生成するクロック選択ステップと、
前記入力クロック信号のサイクルごとに、前記分周比に応じた一定サイクル時間を有する基準分周クロック信号と前記入力クロック信号との位相関係を示す位相計算値を計算し、この位相計算値に基づいて、前記出力動作のうち、前記基準分周クロック信号の位相と近いクロック信号を生成するための出力動作を指示する制御信号を生成して前記クロック選択ステップへ出力するクロック選択制御ステップと
を備え、
前記クロック選択制御ステップは、
前記入力クロック信号のサイクルごとに、前記分周比に応じた一定サイクル時間を有する基準分周クロック信号と前記入力クロック信号との位相関係を示す位相計算値を計算し、前記出力クロック信号に対する位相制御を示す位相調整信号に応じて前記位相計算値の値を増減する位相計算ステップと、
前記位相計算値に基づいて、入力クロック信号のクロックパルスを出力クロック信号に出力するか否かを判定し、この判定結果に応じた制御信号を前記クロック選択ステップへ出力するクロック出力判定ステップと、
前記位相計算値に基づいて、入力クロック信号のクロックパルスをそのまま非反転で出力するか、反転して出力するかを判定し、この判定結果に応じた制御信号を前記クロック選択ステップへ出力するクロック位相判定ステップと
を含む
ことを特徴とするクロック信号分周方法。
【請求項7】
N/M(Nは正整数,MはNより大きい正整数)で規定された分周比に基づいて、当該入力クロック信号をN/M分周した出力クロック信号を生成するクロック信号分周方法であって、
入力された制御信号に基づいて、前記入力クロック信号のクロックパルスをそのまま非反転で出力するか、反転して出力するか、マスクして出力しないか、のいずれかの出力動作を選択して実行することにより、前記出力クロック信号を生成するクロック選択ステップと、
前記入力クロック信号のサイクルごとに、前記分周比に応じた一定サイクル時間を有する基準分周クロック信号と前記入力クロック信号との位相関係を示す位相計算値を計算し、この位相計算値に基づいて、前記出力動作のうち、前記基準分周クロック信号の位相と近いクロック信号を生成するための出力動作を指示する制御信号を生成して前記クロック選択ステップへ出力するクロック選択制御ステップと
を備え、
前記クロック選択制御ステップは、
前記入力クロック信号をMサイクル分繰り返しカウントすることにより、前記サイクルに対応したカウント値を出力するカウンタステップと、
少なくとも前記カウント値に対応する位相計算値を予め保持し、入力されたカウント値に応じたテーブルデータを位相計算値として出力するテーブルステップと
を含む
ことを特徴とするクロック信号分周方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2009−231899(P2009−231899A)
【公開日】平成21年10月8日(2009.10.8)
【国際特許分類】
【出願番号】特願2008−71501(P2008−71501)
【出願日】平成20年3月19日(2008.3.19)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】