特許第6284727号(P6284727)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社メガチップスの特許一覧

<>
  • 特許6284727-クロック位相シフト回路 図000002
  • 特許6284727-クロック位相シフト回路 図000003
  • 特許6284727-クロック位相シフト回路 図000004
  • 特許6284727-クロック位相シフト回路 図000005
  • 特許6284727-クロック位相シフト回路 図000006
  • 特許6284727-クロック位相シフト回路 図000007
  • 特許6284727-クロック位相シフト回路 図000008
  • 特許6284727-クロック位相シフト回路 図000009
  • 特許6284727-クロック位相シフト回路 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6284727
(24)【登録日】2018年2月9日
(45)【発行日】2018年2月28日
(54)【発明の名称】クロック位相シフト回路
(51)【国際特許分類】
   H03K 5/135 20060101AFI20180215BHJP
【FI】
   H03K5/135
【請求項の数】8
【全頁数】18
(21)【出願番号】特願2013-193931(P2013-193931)
(22)【出願日】2013年9月19日
(65)【公開番号】特開2015-61213(P2015-61213A)
(43)【公開日】2015年3月30日
【審査請求日】2016年8月2日
(73)【特許権者】
【識別番号】591128453
【氏名又は名称】株式会社メガチップス
(74)【代理人】
【識別番号】100080159
【弁理士】
【氏名又は名称】渡辺 望稔
(74)【代理人】
【識別番号】100090217
【弁理士】
【氏名又は名称】三和 晴子
(72)【発明者】
【氏名】藤田 知広
【審査官】 白井 亮
(56)【参考文献】
【文献】 特開2008−172574(JP,A)
【文献】 特開2011−040803(JP,A)
【文献】 特開2013−183415(JP,A)
【文献】 特開2007−228043(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H03K 5/135
(57)【特許請求の範囲】
【請求項1】
周波数変調された入力クロックの位相を遅延ラインを使用してシフトし、出力クロックとして出力するクロック位相シフト回路であって、
前記入力クロックを分周した所定の動作周期の動作クロックに同期して動作し、前記入力クロックの所定の周期にわたる測定期間に、前記遅延ラインを構成する遅延セルと同一の遅延セルを所定の段数接続して構成されたリングオシレータにより生成された前記入力クロックよりも高周波の発振クロックのクロック数をカウントして、そのカウント値を出力する周期測定回路と、
前記動作クロックに同期して動作し、前記カウント値を前記入力クロックの動作周期tnの位相シフト量と、前記動作周期tnの位相シフト量と動作周期tn−1の位相シフト量との差分に基づいて、前記動作周期tnの位相シフト量と動作周期tn+1の位相シフト量との間を補間した補間位相シフト量を生成し、前記動作クロックのレベルに応じて、前記動作周期tnの位相シフト量と前記補間位相シフト量とを切り換えてシフト信号として出力する第1誤差補正回路とを備え、
前記遅延ラインは、所定の段数の前記遅延セルを直列に接続して構成され、前記シフト信号に対応する位相シフト量だけ前記入力クロックの位相をシフトし、前記出力クロックとして出力するものであることを特徴とするクロック位相シフト回路。
【請求項2】
前記周期測定回路は、前記動作クロックに同期して動作し、前記カウント値を保持して出力するカウント値保持回路を備え、
前記第1誤差補正回路は、
前記動作クロックに同期して動作し、前記差分の平均値を算出する平均値算出回路と、
前記カウント値保持回路の出力信号と前記平均値とを加算する第1加算器と、
前記動作クロックのレベルに応じて、前記カウント値保持回路の出力信号と前記第1加算器の出力信号とを切り換えて前記シフト信号として出力する第1セレクタとを備える請求項1に記載のクロック位相シフト回路。
【請求項3】
前記動作クロックに同期して動作し、前記平均値の累積加算値に基づいて、前記動作周期tnの位相シフト量が減少中なのか増加中なのかを判別し、前記動作周期tnの位相シフト量が減少中であると判別された場合に、前記動作周期tnの位相シフト量から前記平均値を減算し、前記動作周期tnの位相シフト量が増加中であると判別された場合に、前記動作周期tnの位相シフト量と前記平均値を加算する第2誤差補正回路を備え、
前記第1誤差補正回路は、前記第2誤差補正回路の出力信号に基づいて、前記シフト信号を生成するものである請求項2に記載のクロック位相シフト回路。
【請求項4】
前記第2誤差補正回路は、
前記動作クロックに同期して動作し、前記平均値の累積加算値に基づいて、前記動作周期tnの位相シフト量が減少中なのか増加中なのかを判別し、増減判別信号を生成するアキュムレータと、
前記カウント値保持回路の出力信号から前記平均値を減算する第2減算器と、
前記カウント値保持回路の出力信号と前記平均値とを加算する第2加算器と、
前記第2誤差補正回路の出力信号として、前記増減判別信号に基づいて、前記動作周期tnの位相シフト量が減少中であると判別された場合に、前記第2減算器の出力信号を出力し、前記動作周期tnの位相シフト量が増加中であると判別された場合に、前記第2加算器の出力信号を出力する第2セレクタとを備える請求項3に記載のクロック位相シフト回路。
【請求項5】
前記第1誤差補正回路は、前記差分に基づいて、前記動作周期tnの位相シフト量と前記動作周期tn+1の位相シフト量との間を補間した第1補間位相シフト量を生成した後、前記第1補間位相シフト量と、前記動作周期tnの位相シフト量および前記動作周期tn+1の位相シフト量の各々との間を補間した第2補間位相シフト量を生成するものである請求項1〜4のいずれか1項に記載のクロック位相シフト回路。
【請求項6】
前記第1誤差補正回路は、前記第2補間位相シフト量を生成した後、前記差分に基づいて、前記第j補間位相シフト量(jは、2以上の整数)と、前記動作周期tnの位相シフト量および前記動作周期tn+1の位相シフト量の各々との間、ならびに、前記第1補間位相シフト量から前記第j補間位相シフト量までの補間位相シフト量同士の間を補間した第j+1補間位相シフト量を生成することを1回以上繰り返すものである請求項5に記載のクロック位相シフト回路。
【請求項7】
前記平均値算出回路は、前記補間位相シフト量として、前記動作周期tn−i(iは、1以上の整数)の位相シフト量と前記動作周期tn−i−1の位相シフト量との差の平均値を算出するものである請求項4に記載のクロック位相シフト回路。
【請求項8】
前記アキュムレータは、前記平均値算出回路が、前記補間位相シフト量として、前記動作周期tn−iの位相シフト量と前記動作周期tn−i−1の位相シフト量との差の平均値を算出することに応じて符号が反転した平均値の符号を反転させた後、前記平均値の累積加算値に基づいて、前記動作周期tnの位相シフト量が減少中なのか増加中なのかを判別するものである請求項7に記載のクロック位相シフト回路。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、周波数変調された入力クロックの位相を遅延ラインを使用してシフトし、出力クロックとして出力するクロック位相シフト回路に関するものである。
【背景技術】
【0002】
クロック位相シフト回路は、入力クロックの位相を遅延ラインやDLL(Delay Locked Loop)回路等を使用してシフトし、出力クロックとして出力するものであり、例えば、DDR−SDRAM(Double-Data-Rate Synchronous Dynamic Random Access Memory)やRSDS(Reduced Swing Differential Signaling)等のインターフェイス回路において、DDR−SDRAMやRSDS等に入力される入力クロックとデータとの間のタイミングを調整するために使用されている。
【0003】
例えば、遅延ラインを使用したクロック位相シフト回路は、入力クロックの所定の周期にわたって、遅延ラインを構成する遅延セルと同一の遅延セルで構成されたリングオシレータの発振クロックをカウントし、そのカウント値に基づいて、入力クロックの1周期が遅延セルの何段分の遅延時間に相当するのかを計算し、所望の位相シフト量に応じて、入力クロックが通過する遅延ラインの遅延セルの段数を設定することにより、入力クロックの位相を所望の位相シフト量だけシフトし、出力クロックとして出力する。
【0004】
以下、遅延ラインを使用したクロック位相シフト回路として、特許文献1に記載されたものを例に挙げて説明する。
【0005】
図7に示すクロック位相シフト回路60は、特許文献1に記載されたものであり、測定期間設定回路12と、リングオシレータ14と、カウンタ16と、動作クロック生成回路18と、フリップフロップ(FF)20と、遅延ライン24とによって構成されている。
ここで、リングオシレータ14は、遅延ライン24を構成する遅延セル38と同一の遅延セルを所定の段数接続して構成されたものである。
【0006】
クロック位相シフト回路60の動作について、図8のタイミングチャートに示すように、動作クロック生成回路18により、入力クロックCLKINの立ち上がりに同期して、入力クロックCLKINが16分周された動作クロックTRGが生成された例で説明する。
動作クロックTRGの1周期、つまり、入力クロックCLKINの16周期が、入力クロックCLKINの周期を測定するための動作周期となる。
【0007】
一方、測定期間設定回路12により、入力クロックCLKINの立ち上がりに同期して、動作クロックTRGがローレベル(L)の期間における、2〜7番目の入力クロックCLKINの6周期の期間、アクティブ状態のハイレベル(H)となるイネーブル信号ENABLEが生成される。
【0008】
続いて、リングオシレータ14により、イネーブル信号ENABLEがHの期間に発振クロックRINGが生成され、カウンタ16により、イネーブル信号ENABLEがHの期間に発振する発振クロックRINGのクロック数がカウントされ、そのカウント値CNTが出力される。そして、FF20により、動作クロックTRGの立ち上がりに同期して、カウンタ16のカウント値CNTが保持され、シフト信号SHIFTとして出力される。
【0009】
シフト信号SHIFT、つまり、カウント値CNTは、入力クロックCLKIN、つまり、出力クロックCLKOUTの動作周期tnの位相シフト量Shift(tn)を表す。位相シフト量Shift(tn)は、式(1)により表される。
Shift(tn)=[Ideal(tn)+Ideal(tn-1)]/2 … (1)
ここで、Idealは、出力クロックCLKOUTの理想の位相シフト量を表す。つまり、位相シフト量Shift(tn)は、動作周期tnの理想の位相シフト量とその1周期前の動作周期tn−1の理想の位相シフト量の和の平均値(2つの位相シフト量の平均値)である。
【0010】
最後に、遅延ライン24により、シフト信号SHIFTに対応する位相シフト量だけ入力クロックCLKINの位相がシフトされ、出力クロックCLKOUTとして出力される。
【0011】
図9は、図7に示す出力クロックCLKOUTの位相シフト量と理想の位相シフト量との間の誤差を表す一例のタイミングチャートである。
このタイミングチャートに示すように、理想の位相シフト量は、例えば、最小値から、時間の経過とともに連続的に増加して最大値に到達し、その後、時間の経過とともに連続的に減少して最小値に到達することを繰り返す。
これに対し、クロック位相シフト回路60の出力クロックCLKOUTの位相シフト量は、理想の位相シフト量から遅れて、動作周期ごとに量子化されて増減を繰り返す。
【0012】
従来のクロック位相シフト回路60には、図9のタイミングチャートから分かるように、以下の(1)および(2)に示す2つの問題がある。
【0013】
(1)入力クロックCLKINは連続的に周波数変調されるため、理想の位相シフト量も連続的に変化するものとなる。一方で、クロック位相シフト回路60は、入力クロックCLKINの周期を測定した後に出力クロックCLKOUTの位相シフト量を変更するという2段階のステップで動作する。そのため、出力クロックCLKOUTの位相シフト量が入力クロックCLKINの動作周期ごとに量子化され、出力クロックCLKOUTの位相シフト量と理想の位相シフト量との間に量子化の誤差が発生する。
【0014】
(2)クロック位相シフト回路60が測定した入力クロックCLKINの周期は、出力クロックCLKOUTの位相シフト量の変更以前の入力クロックCLKINの位相シフト量の平均値となる。一方で、入力クロックCLKINは連続的に周波数変調されるため、出力クロックCLKOUTの位相シフト量の変更時には、既に理想の位相シフト量が変わっている。言い換えると、周期測定から位相シフト量変更までの間にタイムラグがある。そのため、出力クロックCLKOUTの位相シフト量と理想の位相シフト量との間に出力タイミングの誤差が発生する。
【先行技術文献】
【特許文献】
【0015】
【特許文献1】特開2008−172574号公報
【発明の概要】
【発明が解決しようとする課題】
【0016】
本発明の第1の目的は、前記従来技術の問題点を解消し、周波数変調された入力クロックが入力された場合であっても、出力クロックの位相シフト量と理想の位相シフト量との間の量子化誤差を低減することができるクロック位相シフト回路を提供することにある。
本発明の第2の目的は、上記第1の目的に加えて、出力クロックの位相シフト量と理想の位相シフト量との間のタイミング誤差を低減することができるクロック位相シフト回路を提供することにある。
【課題を解決するための手段】
【0017】
上記目的を達成するために、本発明は、周波数変調された入力クロックの位相を遅延ラインを使用してシフトし、出力クロックとして出力するクロック位相シフト回路であって、
前記入力クロックを分周した所定の動作周期の動作クロックに同期して動作し、前記入力クロックの所定の周期にわたる測定期間に、前記遅延ラインを構成する遅延セルと同一の遅延セルを所定の段数接続して構成されたリングオシレータにより生成された前記入力クロックよりも高周波の発振クロックのクロック数をカウントして、そのカウント値を出力する周期測定回路と、
前記動作クロックに同期して動作し、前記カウント値を前記入力クロックの動作周期tnの位相シフト量と、前記動作周期tnの位相シフト量と動作周期tn−1の位相シフト量との差分に基づいて、前記動作周期tnの位相シフト量と動作周期tn+1の位相シフト量との間を補間した補間位相シフト量を生成し、前記動作クロックのレベルに応じて、前記動作周期tnの位相シフト量と前記補間位相シフト量とを切り換えてシフト信号として出力する第1誤差補正回路とを備え、
前記遅延ラインは、所定の段数の前記遅延セルを直列に接続して構成され、前記シフト信号に対応する位相シフト量だけ前記入力クロックの位相をシフトし、前記出力クロックとして出力するものであることを特徴とするクロック位相シフト回路を提供するものである。
【0018】
ここで、前記周期測定回路は、前記動作クロックに同期して動作し、前記カウント値を保持して出力するカウント値保持回路を備え、
前記第1誤差補正回路は、
前記動作クロックに同期して動作し、前記差分の平均値を算出する平均値算出回路と、
前記カウント値保持回路の出力信号と前記平均値とを加算する第1加算器と、
前記動作クロックのレベルに応じて、前記カウント値保持回路の出力信号と前記第1加算器の出力信号とを切り換えて前記シフト信号として出力する第1セレクタとを備えることが好ましい。
【0019】
また、前記動作クロックに同期して動作し、前記平均値の累積加算値に基づいて、前記動作周期tnの位相シフト量が減少中なのか増加中なのかを判別し、前記動作周期tnの位相シフト量が減少中であると判別された場合に、前記動作周期tnの位相シフト量から前記平均値を減算し、前記動作周期tnの位相シフト量が増加中であると判別された場合に、前記動作周期tnの位相シフト量と前記平均値を加算する第2誤差補正回路を備え、
前記第1誤差補正回路は、前記第2誤差補正回路の出力信号に基づいて、前記シフト信号を生成するものであることが好ましい。
【0020】
また、前記第2誤差補正回路は、
前記動作クロックに同期して動作し、前記平均値の累積加算値に基づいて、前記動作周期tnの位相シフト量が減少中なのか増加中なのかを判別し、増減判別信号を生成するアキュムレータと、
前記カウント値保持回路の出力信号から前記平均値を減算する第2減算器と、
前記カウント値保持回路の出力信号と前記平均値とを加算する第2加算器と、
前記第2誤差補正回路の出力信号として、前記増減判別信号に基づいて、前記動作周期tnの位相シフト量が減少中であると判別された場合に、前記第2減算器の出力信号を出力し、前記動作周期tnの位相シフト量が増加中であると判別された場合に、前記第2加算器の出力信号を出力する第2セレクタとを備えることが好ましい。
【0021】
また、前記第1誤差補正回路は、前記差分に基づいて、前記動作周期tnの位相シフト量と前記動作周期tn+1の位相シフト量との間を補間した第1補間位相シフト量を生成した後、前記第1補間位相シフト量と、前記動作周期tnの位相シフト量および前記動作周期tn+1の位相シフト量の各々との間を補間した第2補間位相シフト量を生成するものであることが好ましい。
【0022】
また、前記第1誤差補正回路は、前記第2補間位相シフト量を生成した後、前記差分に基づいて、前記第j補間位相シフト量(jは、2以上の整数)と、前記動作周期tnの位相シフト量および前記動作周期tn+1の位相シフト量の各々との間、ならびに、前記第1補間位相シフト量から前記第j補間位相シフト量までの補間位相シフト量同士の間を補間した第j+1補間位相シフト量を生成することを1回以上繰り返すものであることが好ましい。
【0023】
また、前記平均値算出回路は、前記補間位相シフト量として、前記動作周期tn−i(iは、1以上の整数)の位相シフト量と前記動作周期tn−i−1の位相シフト量との差の平均値を算出するものであることが好ましい。
【0024】
前記アキュムレータは、前記平均値算出回路が、前記補間位相シフト量として、前記動作周期tn−iの位相シフト量と前記動作周期tn−i−1の位相シフト量との差の平均値を算出することに応じて符号が反転した平均値の符号を反転させた後、前記平均値の累積加算値に基づいて、前記動作周期tnの位相シフト量が減少中なのか増加中なのかを判別するものであることが好ましい。
【発明の効果】
【0025】
本発明によれば、第1誤差補正回路が、動作周期tnの位相シフト量と動作周期tn−1の位相シフト量との間を補間した補間位相シフト量を生成するため、周波数変調された入力クロックが入力された場合であっても、出力クロックの位相シフト量と理想の位相シフト量との間の量子化誤差を低減することができる。
また、本発明によれば、第2誤差補正回路が、動作周期tnの位相シフト量が減少中であると判別された場合に、動作周期tnの位相シフト量から平均値を減算し、位相シフト量が増加中であると判別された場合に、動作周期tnの位相シフト量と平均値とを加算するため、出力クロックの位相シフト量と理想の位相シフト量との間のタイミング誤差を低減することができる。
【図面の簡単な説明】
【0026】
図1】本発明のクロック位相シフト回路の構成を表す第1実施形態のブロック図である。
図2図1に示すクロック位相シフト回路の動作を表す一例のタイミングチャートである。
図3図1に示す出力クロックCLKOUTの位相シフト量と理想の位相シフト量との間の誤差を表す一例のタイミングチャートである。
図4】本発明のクロック位相シフト回路の構成を表す第2実施形態のブロック図である。
図5図4に示す第2誤差補正回路の動作を表す一例の状態遷移図である。
図6図4に示す出力クロックCLKOUTの位相シフト量と理想の位相シフト量との間の誤差を表す一例のタイミングチャートである。
図7】従来のクロック位相シフト回路の構成を表す一例のブロック図である。
図8図7に示すクロック位相シフト回路の動作を表す一例のタイミングチャートである。
図9図7に示す出力クロックCLKOUTの位相シフト量と理想の位相シフト量との間の誤差を表す一例のタイミングチャートである。
【発明を実施するための形態】
【0027】
以下に、添付の図面に示す好適実施形態に基づいて、本発明のクロック位相シフト回路を詳細に説明する。
【0028】
図1は、本発明のクロック位相シフト回路の構成を表す第1実施形態のブロック図である。同図に示すクロック位相シフト回路10は、図7に示す従来のクロック位相シフト回路60において、さらに、第1誤差補正回路22を備えている。
つまり、クロック位相シフト回路10は、測定期間設定回路12と、リングオシレータ14と、カウンタ16と、動作クロック生成回路18と、フリップフロップ(FF)20と、第1誤差補正回路22と、遅延ライン24とによって構成されている。
【0029】
測定期間設定回路12には、入力クロックCLKINが入力されている。
測定期間設定回路12は、入力クロックCLKINに同期して動作し、入力クロックCLKINの周期を測定するための、入力クロックCLKINのm周期(mは、1以上の整数)にわたる測定期間を設定するイネーブル信号ENABLEを生成するものである。
本実施形態の場合、測定期間は、入力クロックCLKINの6周期に設定され、イネーブル信号ENABLEは、入力クロックCLKINに同期して、入力クロックCLKINの6周期の期間、アクティブ状態となる。
測定期間を長くするほど、入力クロックCLKINの周期の測定精度を向上させることができるが、測定に要する時間が長くなるため、出力クロックCLKOUTの位相シフト量と理想の位相シフト量との間の誤差は大きくなる。
【0030】
リングオシレータ14には、イネーブル信号ENABLEが入力されている。
リングオシレータ14は、遅延ライン24を構成する遅延セル38と同一の遅延セルを所定の段数接続して構成され、イネーブル信号ENABLEがアクティブ状態の期間に、入力クロックCLKINよりも高周波の発振クロックRINGを生成するものである。
【0031】
カウンタ16には、発振クロックRINGが入力されている。
カウンタ16は、イネーブル信号ENABLEがアクティブ状態の期間に発振する発振クロックRINGのクロック数をカウントし、そのカウント値CNTを出力するものである。
【0032】
動作クロック生成回路18には、入力クロックCLKINが入力されている。
動作クロック生成回路18は、入力クロックCLKINに同期して動作し、入力クロックCLKINをn分周(nは、m+1以上の整数)した動作周期の動作クロックTRGを生成するものである。
動作クロックTRGは、クロック位相シフト回路10の各部の動作を制御する動作クロックとして使用される。
本実施形態の場合、動作クロックTRGは、入力クロックCLKINを16分周して生成され、その動作周期は、入力クロックCLKINの16周期分となる。
【0033】
FF20のデータ入力端子Dには、カウンタ16のカウント値CNTが入力され、クロック入力端子には、動作クロックTRGが入力されている。
FF20は、本発明のカウント値保持回路の一例であり、動作クロックTRGの立ち上がりに同期して動作し、カウント値CNTを保持してデータ出力端子Qから出力するものである。
【0034】
ここで、測定期間設定回路12、リングオシレータ14、カウンタ16、動作クロック生成回路18、および、FF20は、入力クロックCLKINを分周した所定の動作周期の動作クロックTRGに同期して動作し、入力クロックCLKINの所定の周期にわたる測定期間に、リングオシレータ14により生成された発振クロックRINGのクロック数をカウントして、そのカウント値CNTを出力する、本発明の周期測定回路の一例である。
【0035】
第1誤差補正回路22には、動作クロックTRGおよびFF20の出力信号が入力されている。
第1誤差補正回路22は、動作クロックTRGに同期して動作し、出力クロックCLKOUTの位相シフト量と理想の位相シフト量との間の量子化誤差を補正するために、FF20の出力信号を入力クロックCLKINの動作周期tnの位相シフト量として、動作周期tnの位相シフト量と動作周期tn−1の位相シフト量との間を補間した補間位相シフト量を生成し、動作クロックTRGのレベルに応じて、動作周期tnの位相シフト量と補間位相シフト量とを切り換えてシフト信号として出力するものである。
第1誤差補正回路22は、1/2除算回路26と、2つのFF28,30と、減算器32と、加算器34と、セレクタ36とによって構成されている。
【0036】
1/2除算回路26には、FF20の出力信号が入力されている。
1/2除算回路26は、FF20の出力信号を1/2に除算するものである。
【0037】
FF28のデータ入力端子Dには、1/2除算回路26の出力信号が入力され、反転クロック入力端子には、動作クロックTRGが入力されている。
FF28は、本発明の第1保持回路の一例であり、動作クロックTRGの立ち下がりに同期して動作し、1/2除算回路26の出力信号を保持してデータ出力端子Qから出力するものである。
【0038】
FF30のデータ入力端子Dには、FF28の出力信号が入力され、反転クロック入力端子には、動作クロックTRGが入力されている。
FF30は、本発明の第2保持回路の一例であり、動作クロックTRGの立ち下がりに同期して、FF28の出力信号を保持してデータ出力端子Qから出力するものである。
【0039】
減算器32には、FF28およびFF30の出力信号が入力されている。
減算器(第1減算器)32は、FF28の出力信号から、FF30の出力信号を減算するものである。
【0040】
ここで、1/2除算回路26、FF28,30、および、減算器32は、動作クロックTRGに同期して動作し、動作周期tnの位相シフト量と動作周期tn−1の位相シフト量との差の平均値(位相シフト量の変化量の半分の値)を算出する本発明の平均値算出回路の一例である。
【0041】
加算器34には、減算器32の出力信号およびFF20の出力信号が入力されている。
加算器(第1加算器)34は、FF20の出力信号と減算器32の出力信号とを加算するものである。
【0042】
セレクタ36の入力端子0には、加算器34の出力信号が入力され、入力端子1には、FF20の出力信号が入力され、選択入力端子には、動作クロックTRGが入力されている。
セレクタ(第1セレクタ)36は、動作クロックTRGのレベルに応じて、FF20の出力信号と加算器34の出力信号とを切り換えてシフト信号SHIFTとして出力するものである。
本実施形態の場合、セレクタ36は、シフト信号SHIFTとして、動作クロックTRGがハイレベル(H)の場合に、FF20の出力信号を出力し、動作クロックTRGがローレベル(L)の場合に、加算器34の出力信号を出力する。
【0043】
最後に、遅延ライン24には、シフト信号SHIFTおよび入力クロックCLKINが入力されている。
遅延ライン24は、所定の段数の遅延セル38を直列に接続して構成され、シフト信号SHIFTに対応する位相シフト量だけ入力クロックCLKINの位相をシフトし、出力クロックCLKOUTとして出力するものである。
【0044】
次に、図2に示すタイミングチャートを参照しながら、クロック位相シフト回路10の動作を説明する。
【0045】
測定期間設定回路12、リングオシレータ14、カウンタ16、動作クロック生成回路18、および、FF20の動作は、従来のクロック位相シフト回路60の場合と同様である。
つまり、FF20からは、動作クロックTRGの立ち上がりに同期して、カウンタ16のカウント値CNTが出力される。カウント値CNTは、入力クロックCLKIN、つまり、出力クロックCLKOUTの動作周期tnの位相シフト量Shift(tn)=[Ideal(tn)+Ideal(tn-1)]/2を表す。
【0046】
続いて、第1誤差補正回路22では、1/2除算回路26により、FF20の出力信号が1/2に除算される。
【0047】
続いて、FF28により、動作クロックTRGの立ち下がりに同期して、1/2除算回路26の出力信号が保持されて出力され、FF30により、動作クロックTRGの立ち下がりに同期して、FF28の出力信号が保持されて出力される。
【0048】
続いて、減算器32により、FF28の出力信号から、FF30の出力信号が減算され、加算器34により、減算器32の出力信号とFF20の出力信号とが加算される。
【0049】
FF28の出力信号、つまり、1/2除算回路26の出力信号は、Shift(tn)/2を表し、FF30の出力信号は、Shift(tn-1)/2を表す。
従って、減算器32の出力信号は、[Shift(tn)-Shift(tn-1)]/2を表す。つまり、減算器32の出力信号は、動作周期tnの位相シフト量Shift(tn)とその1つ前の動作周期tn−1の位相シフト量Shift(tn-1)との差の平均値(位相シフト量の変化量の半分の値)である。
加算器34の出力信号は、Shift(tn)+[Shift(tn)-Shift(tn-1)]/2を表す。つまり、加算器34の出力信号は、動作周期tnの位相シフト量Shift(tn)に対して、動作周期tnの位相シフト量Shift(tn)とその1つ前の動作周期tn−1の位相シフト量Shift(tn-1)との差の平均値を加算したものであり、動作周期tnの位相シフト量Shift(tn)と1つ後の動作周期tn+1の位相シフト量Shift(tn+1)との間を補間した動作周期tn+0.5の位相シフト量Shift(tn+0.5)を表す。
【0050】
そして、セレクタ36により、シフト信号SHIFTとして、動作クロックTRGがHの場合に、FF20の出力信号が出力、動作クロックTRGがLの場合に、加算器34の出力信号が出力される。
【0051】
つまり、シフト信号SHIFTは、動作クロックTRGがHの場合に、FF20の出力信号、つまり、動作周期tnの位相シフト量Shift(tn)を表し、動作クロックTRGがLの場合に、加算器34の出力信号、つまり、動作周期tnの位相シフト量Shift(tn)と1つ後の動作周期tn+1の位相シフト量Shift(tn+1)との間を補間した動作周期tn+0.5の位相シフト量Shift(tn+0.5)を表す。
【0052】
このように、第1誤差補正回路22が、動作周期tnの位相シフト量と動作周期tn−1の位相シフト量との間を補間した補間位相シフト量を生成するため、周波数変調された入力クロックCLKINが入力された場合であっても、出力クロックCLKOUTの位相シフト量と理想の位相シフト量との間の量子化誤差を低減することができる。
【0053】
最後に、遅延ライン24により、シフト信号SHIFTに対応する位相シフト量だけ入力クロックCLKINの位相がシフトされ、出力クロックCLKOUTとして出力される。
【0054】
カウント値CNTは、イネーブル信号ENABLEがアクティブ状態の期間、つまり、入力クロックCLKINの周期を測定するための測定期間をm、入力クロックCLKINの周期をT、発振クロックRINGの周期をtとすると、式(2)により表される。
CNT=mT/t … (2)
発振クロックRINGの周期tは、リングオシレータ14を構成する遅延セルの段数をk、遅延セル1段の遅延時間をDとすると、式(3)で表される。
t=2kD … (3)
従って、式(2)に式(3)を代入すると、式(4)で表される。
CNT=mT/2kD=m/2k*T/D … (4)
ここで、T/Dは、入力クロックCLKINの1周期が、遅延セルの何段分の遅延時間に相当するかを表すので、入力クロックCLKINを、入力クロックCLKINの1周期分だけシフトさせるために必要な遅延セル38の段数T/Dは、式(5)で表される。
T/D=m/2k*CNT … (5)
【0055】
入力クロックCLKINを、入力クロックCLKINの1周期分だけシフトさせるために必要な遅延セル38の段数T/Dは、例えば、入力クロックCLKINの周期を測定するための測定期間m=6、リングオシレータ14を構成する遅延セルの段数k=6とすると、式(6)で表される。
T/D=6/(2*6)*CNT=CNT/2 … (6)
このように、入力クロックCLKINの周期を測定するための測定期間mと、リングオシレータ14を構成する遅延セルの段数kとが同一の値、もしくは、m/2kの演算結果が割り切れるように設定されている場合、m/2kの演算を簡略化することができるため、入力クロックCLKINを、入力クロックCLKINの1周期分だけシフトさせるために必要な遅延セルの段数T/Dを求める演算回路を簡略化することができる。
【0056】
これに対し、入力クロックCLKINの周期を測定するための測定期間mと、リングオシレータ14を構成する遅延セルの段数kとが、m/2kの演算結果が割り切れるように設定されていない場合、その端数は、切り捨てる、もしくは、切り上げることができる。言い換えると、遅延ライン24では、例えば、m/2k*T/Dの演算結果の整数部分に対応する段数の遅延セルが使用される。
前述のように、クロック位相シフト回路10は、DDR−SDRAMやRSDS等のインターフェイス回路において、DDR−SDRAMやRSDS等に入力される入力クロックとデータとの間のタイミングを調整するために使用される。DDR−SDRAMやRSDS等は、入力クロックとデータとの間のタイミングが、理想のタイミングから遅延セル1個分の遅延時間ずれたとしても動作許容範囲内であり、問題なく動作する。
【0057】
また、入力クロックCLKINを、入力クロックCLKINの1周期分だけ遅延させるために必要な遅延セルの段数T/Dから、入力クロックCLKINの、1/2周期、1/4周期、1/8周期、1/16周期、…等のように、所望の位相シフト量に応じて、入力クロックCLKINが通過する遅延ライン24の遅延セル38の段数を設定することにより、入力クロックCLKINの位相を所望の位相シフト量だけシフトさせることができる。
【0058】
また、プロセス条件、電源電圧、温度等の変動により遅延セルの遅延時間が増減したとしても、リングオシレータ14を構成する遅延セルが、遅延ライン24を構成する遅延セル38と同一の遅延セルを使用して構成されているため、リングオシレータ14の遅延セルの遅延時間は、遅延ライン24の遅延セル38の遅延時間と同様に変動する。従って、クロック位相シフト回路10では、プロセス条件、電源電圧、温度等の変動の影響を受けることなく、入力クロックCLKINの周期を測定することができる。
【0059】
図3は、図1に示す出力クロックCLKOUTの位相シフト量と理想の位相シフト量との間の誤差を表す一例のタイミングチャートである。このタイミングチャートの縦軸は、出力クロックCLKOUTの位相シフト量、横軸は、時間(動作周期)の経過を表す。
このタイミングチャートに示すように、理想の位相シフト量は、例えば、最小値から、時間の経過とともに連続的に増加して最大値に到達し、その後、時間の経過とともに連続的に減少して最小値に到達することを繰り返す。
【0060】
これに対し、クロック位相シフト回路10の出力クロックCLKOUTの位相シフト量は、動作周期ごとに量子化されて増減を繰り返す。
しかし、動作周期tnの位相シフト量と動作周期tn−1の位相シフト量との間を補間した補間位相シフト量が生成されているため、クロック位相シフト回路10の出力クロックCLKOUTの位相シフト量は、従来のクロック位相シフト回路60の出力クロックCLKOUTの位相シフト量と比べて、量子化誤差が低減されている。
【0061】
次に、第2の実施形態のクロック位相シフト回路について説明する。
【0062】
図4は、本発明のクロック位相シフト回路の構成を表す第2実施形態のブロック図である。同図に示す第2実施形態のクロック位相シフト回路40は、図1に示す第1実施形態のクロック位相シフト回路10において、さらに、第2誤差補正回路42を備えている。
つまり、クロック位相シフト回路40は、測定期間設定回路12と、リングオシレータ14と、カウンタ16と、動作クロック生成回路18と、FF20と、第1誤差補正回路22と、第2誤差補正回路42と、遅延ライン24とによって構成されている。
【0063】
測定期間設定回路12、リングオシレータ14、カウンタ16、動作クロック生成回路18、FF20、第1誤差補正回路22、および、遅延ライン24については、その繰り返しの説明を省略する。
【0064】
第2誤差補正回路42には、動作クロックTRG、FF20の出力信号および減算器32の出力信号が入力されている。
第2誤差補正回路42は、動作クロックTRGに同期して動作し、出力クロックCLKOUTの位相シフト量と理想の位相シフト量との間のタイミング誤差を補正するために、減算器32の出力信号、つまり、前述の平均値の累積加算値に基づいて、動作周期tnの位相シフト量が減少中なのか増加中なのかを判別し、動作周期tnの位相シフト量が減少中であると判別された場合に、動作周期tnの位相シフト量から平均値を減算し、動作周期tnの位相シフト量が増加中であると判別された場合に、動作周期tnの位相シフト量と平均値とを加算するものである。
第2誤差補正回路42は、アキュムレータ44と、減算器46と、加算器48と、セレクタ50とによって構成されている。
【0065】
アキュムレータ44には、動作クロックTRGおよび減算器32の出力信号が入力されている。
アキュムレータ44は、動作クロックTRGに同期して動作し、減算器32の出力信号を累積加算し、その累積加算値に基づいて、動作周期tnの位相シフト量が減少中なのか増加中なのかを判別し、増減判別信号UDを生成するものである。
アキュムレータ44は、減算器32の出力信号を累積加算する場合に、累積加算値の最小値(つまり、位相シフト量の最小値)および最大値(つまり、位相シフト量の最大値)を保存しておく。増減判別信号UDは、本実施形態の場合、動作周期tnの累積加算値ACM(tn)が、累積加算値の最小値−1のACM(tnmin-1)となった場合に、Hとなり、累積加算値の最大値−1のACM(tnmax-1)となった場合に、Lとなる。
【0066】
減算器46には、FF20の出力信号および減算器32の出力信号が入力されている。
減算器(第2減算器)46は、FF20の出力信号から、減算器32の出力信号を減算するものである。
【0067】
加算器48には、FF20の出力信号および減算器32の出力信号が入力されている。
加算器(第2加算器)48は、FF20の出力信号と減算器32の出力信号とを加算するものである。
【0068】
セレクタ50の入力端子0には、減算器46の出力信号が入力され、入力端子1には、加算器48の出力信号が入力され、選択入力端子には、増減判別信号UDが入力されている。
セレクタ(第2セレクタ)50は、第2誤差補正回路42の出力信号として、増減判別信号UDに基づいて、動作周期tnの位相シフト量が減少中であると判別された場合に、減算器46の出力信号を出力し、動作周期tnの位相シフト量が増加中であると判別された場合に、加算器48の出力信号を出力するものである。
【0069】
次に、クロック位相シフト回路40の動作を説明する。
【0070】
測定期間設定回路12、リングオシレータ14、カウンタ16、動作クロック生成回路18、および、FF20の動作は、従来のクロック位相シフト回路60の場合と同様である。
つまり、FF20からは、動作クロックTRGの立ち上がりに同期して、カウンタ16のカウント値CNTが出力される。カウント値CNTは、動作周期tnの位相シフト量[Ideal(tn)+Ideal(tn-1)]/2を表す。
【0071】
続いて、第2誤差補正回路42では、アキュムレータ44により、動作クロックTRGに同期して、減算器32の出力信号が累積加算される。
図5の状態遷移図に示すように、動作周期tnの累積加算値ACM(tn)が、累積加算値の最大値−1のACM(tnmax-1)になると、次の動作周期から入力クロックCLKINの位相シフト量が減少すると判別されて増減判別信号UDがLとなる。
一方、動作周期tnの累積加算値ACM(tn)が、累積加算値の最小値−1のACM(tnmin-1)になると、次の動作周期から入力クロックCLKINの位相シフト量が増加すると判別され、増減判別信号UDがHとなる。
【0072】
一方、減算器46により、FF20の出力信号から、減算器32の出力信号が減算され、加算器48により、FF20の出力信号と減算器32の出力信号とが加算される。
【0073】
そして、セレクタ50により、測定期間tnの入力クロックCLKINの位相シフト量Shift(tn)として、増減判別信号UDがLの場合に、減算器46の出力信号が出力され、増減判別信号UDがHの場合に、加算器48の出力信号が出力される。
【0074】
前述のように、FF20の出力信号、つまり、カウント値CNTは、動作周期tnの入力クロックCLKINの位相シフト量[Ideal(tn)+Ideal(tn-1)]/2を表し、減算器32の出力信号は、[Shift(tn)-Shift(tn-1)]/2を表す。
従って、減算器46の出力信号は、Shift(tn)=[Ideal(tn)+Ideal(tn-1)]/2-[Shift(tn)-Shift(tn-1)]/2を表す。つまり、減算器46の出力信号は、動作周期tnの入力クロックCLKINの位相シフト量[Ideal(tn)+Ideal(tn-1)]/2から、動作周期tnの入力クロックCLKINの位相シフト量Shift(tn)と1つ前の動作周期tn−1の入力クロックCLKINの位相シフト量Shift(tn-1)との差の平均値(位相シフト量の変化量の半分の値)を減算したものである。
加算器48の出力信号は、Shift(tn)=[Ideal(tn)+Ideal(tn-1)]/2+[Shift(tn)-Shift(tn-1)]/2を表す。つまり、加算器48の出力信号は、動作周期tnの入力クロックCLKINの位相シフト量[Ideal(tn)+Ideal(tn-1)]/2に対して、動作周期tnの入力クロックCLKINの位相シフト量Shift(tn)と1つ前の動作周期tn−1の入力クロックCLKINの位相シフト量Shift(tn-1)との差の平均値(位相シフト量の変化量の半分の値)を加算したものである。
【0075】
図3のタイミングチャートに示すように、出力クロックCLKOUTの位相シフト量と理想の位相シフト量との間には出力タイミングの誤差がある。そのため、出力クロックCLKOUTの動作周期tnの位相シフト量は、位相シフト量が減少中の場合に、同じ動作周期tnの理想の位相シフト量よりも大きくなり、位相シフト量が増加中の場合に、同じ動作周期tnの理想の位相シフト量よりも小さくなる。
【0076】
従って、上記のように、第2誤差補正回路42が、動作周期tnの位相シフト量が減少中であると判別された場合に、動作周期tnの位相シフト量からタイミング誤差に相当する平均値を減算し、動作周期tnの位相シフト量が増加中であると判別された場合に、動作周期tnの位相シフト量とタイミング誤差に相当する平均値とを加算することにより、出力クロックCLKOUTの位相シフト量と理想の位相シフト量との間のタイミング誤差を低減することができる。
【0077】
第1誤差補正回路22の動作は、クロック位相シフト回路10の場合と同様である。
【0078】
図6は、図4に示す出力クロックCLKOUTの位相シフト量と理想の位相シフト量との間の誤差を表す一例のタイミングチャートである。
このタイミングチャートに示すように、クロック位相シフト回路40の出力クロックCLKOUTの位相シフト量は、クロック位相シフト回路10の場合と同様に、量子化誤差が低減され、かつ、動作周期tnの位相シフト量が減少中であると判別された場合に、動作周期tnの位相シフト量から平均値が減算され、動作周期tnの位相シフト量が増加中であると判別された場合に、動作周期tnの位相シフト量と平均値とが加算されているため、従来のクロック位相シフト回路60の出力クロックCLKOUTの位相シフト量と比べて、理想の位相シフト量との間のタイミグ誤差が低減されている。
【0079】
なお、第1誤差補正回路22は、動作周期tnの位相シフト量と動作周期tn−1の位相シフト量との間を補間した第1補間位相シフト量を生成した後、第1補間位相シフト量と、動作周期tnの位相シフト量および動作周期tn−1の位相シフト量の各々との間を補間した第2補間位相シフト量を生成してもよい。これにより、量子化誤差をさらに低減することができる。
【0080】
例えば、第1誤差補正回路22は、動作周期tnの位相シフト量と動作周期tn−1の位相シフト量との間を補間した動作周期tn−0.5の第1補間位相シフト量を生成した後、動作周期tn−0.5の第1位相シフト量と、動作周期tnの位相シフト量および動作周期tn−1の位相シフト量の各々との間を補間した動作周期tn−0.75およびtn−0.25の第2補間位相シフト量を生成することができる。
【0081】
さらに、第1誤差補正回路22は、第2補間位相シフト量を生成した後、第j補間位相シフト量(jは、2以上の整数)と、動作周期tnの位相シフト量および動作周期tn−1の位相シフト量の各々との間、ならびに、第1補間位相シフト量から第j補間位相シフト量までの補間位相シフト量同士の間を補間した第j+1補間位相シフト量を生成することを1回以上繰り返してもよい。
【0082】
また、第1誤差補正回路22は、FF20の出力信号を入力クロックCLKINの動作周期tnの位相シフト量として、動作周期tn−i(iは、1以上の整数)の位相シフト量と動作周期tn−i−1の位相シフト量との間を補間した補間位相シフト量を生成してもよい。つまり、平均値算出回路は、補間位相シフト量として、動作周期tn−iの位相シフト量と動作周期tn−i−1の位相シフト量との差の平均値tn−iを算出してもよい。
入力クロックCLKINは連続的に変化するため、連続する動作周期tn−iおよびtn−i−1の位相シフト量同士の間を補間すれば、同じ補間位相シフト量を得ることができる。
【0083】
一方、アキュムレータ44は、減算器32の出力信号、つまり、平均値算出回路の出力信号である平均値の累積加算値に基づいて、動作周期tnの位相シフト量が減少中なのか増加中なのかを判別する。そのため、アキュムレータ44は、平均値算出回路が、どの動作周期の位相シフト量に基づいて補間位相シフト量を算出するのかに基づいて、動作周期tnの位相シフト量が減少中なのか増加中なのかを判別する必要がある。
【0084】
例えば、第1誤差補正回路22が、図3に示すタイミングチャートの動作周期t5において、平均値算出回路が、動作周期t5およびt4の間を補間して補間位相シフト量を生成する場合、動作周期t5およびt4の間の位相シフト量は減少中である。これに対し、平均値算出回路が、動作周期t4およびt3の間を補間して補間位相シフト量を生成する場合、動作周期t4およびt3の間の位相シフト量は増加中となる。
【0085】
このように、動作周期tn−iの位相シフト量と動作周期tn−i−1の位相シフト量との間を補間した補間位相シフト量を生成すると、生成した補間位相シフト量の符号(極性)が反転する場合がある。そのため、アキュムレータ44は、符号が反転した補間位相シフト量、つまり、平均値の符号を反転した後、平均値の累積加算値に基づいて、動作周期tnの位相シフト量が減少中なのか増加中なのかを判別する必要がある。
【0086】
また、測定期間設定回路12、リングオシレータ14、カウンタ16、動作クロック生成回路18、カウント値保持部20、第1誤差補正回路22、第2誤差補正回路42、および、遅延ライン24の具体的な構成は何ら限定されず、同様の機能を実現することができる各種構成のものが利用可能である。また、各信号の極性も何ら限定されず、各信号の極性に応じて回路構成を適宜変更することができる。
【0087】
リングオシレータ14が、イネーブル信号ENABLEがアクティブ状態の期間にのみ、発振クロックRINGを生成することは必須ではなく、発振クロックRINGを常時生成してもよい。この場合、カウンタ16は、イネーブル信号ENABLEがアクティブ状態の期間に発振する発振クロックRINGをカウントするのではなく、イネーブル信号ENABLEがアクティブ状態の期間に、発振クロックRINGのクロック数をカウントする。
【0088】
本発明は、基本的に以上のようなものである。
以上、本発明について詳細に説明したが、本発明は上記実施形態に限定されず、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのはもちろんである。
【符号の説明】
【0089】
10、40 クロック位相シフト回路
12 測定期間設定回路
14 リングオシレータ
16 カウンタ
18 動作クロック生成回路
20、28,30 フリップフロップ(FF)
22 第1誤差補正回路
24 遅延ライン
26 1/2除算回路
32、46 減算器
34、48 加算器
36、50 セレクタ
38 遅延セル
42 第2誤差補正回路
44 アキュムレータ
図1
図2
図3
図4
図5
図6
図7
図8
図9