(57)【特許請求の範囲】
【請求項１】
外部から所定の周波数の動作クロックを入力し、更に、外部から設定値を入力し、入力した前記設定値を前記動作クロックの周期で累算し、累算結果から、位相調整の対象となる基準クロックと、遅延量を制御する第１の制御信号と、位相調整のタイミングを制御する第２の制御信号を生成する累算部と、
外部から所定の周波数のクロックを入力クロックとして入力し、前記累算部により生成された前記第１の制御信号を入力し、前記第１の制御信号によって制御される遅延量を前記入力クロックに与えて、前記入力クロックの遅延クロックを生成する可変遅延部と、
前記累算部により生成された前記基準クロックと前記第２の制御信号を入力し、前記可変遅延部により生成された遅延クロックを入力し、前記第２の制御信号をイネーブルとして前記基準クロックの位相を前記遅延クロックで調整し、前記動作クロックの周波数を（前記設定値の２倍）で除算して得られる周波数を有するクロックを生成する位相調整部とを有することを特徴とするクロック生成装置。
【請求項２】
前記累算部は、
整数値と小数値に区分される設定値を入力し、
前記累算部は、
前記設定値の累算値のビット数が所定のビット数を超えたことを検出する度に、第２の制御信号をアサートする第２制御信号生成部と、
前記第２制御信号生成部により前記第２の制御信号がアサートされた際の前記設定値の小数値を特定し、特定した小数値を通知する第１の制御信号を生成する第１制御信号生成部と、
前記第２の制御信号のアサートタイミングの間隔をエッジ間隔とする基準クロックを生成する基準クロック生成部とを有し、
前記可変遅延部は、
前記第１の制御信号で通知されている小数値に対応する遅延量を導出し、導出した遅延量を前記入力クロックに与えて、前記入力クロックの遅延クロックを生成し、
前記位相調整部は、
前記第２の制御信号のアサートタイミングで前記基準クロックと前記遅延クロックとの排他論理和をとり、前記基準クロックの位相を前記遅延クロックで調整することを特徴とする請求項１に記載のクロック生成装置。
【請求項３】
外部から所定の周波数の動作クロックを入力し、更に、外部から設定値を入力し、入力した前記設定値を前記動作クロックの周期で累算し、累算結果から、位相調整の対象となる基準クロックと、遅延量を制御する第１の制御信号と、パルス生成タイミングを制御する第３の制御信号を生成する累算部と、
前記累算部により生成された前記第３の制御信号を入力し、前記第３の制御信号をイネーブルとして、前記動作クロックの１周期分のパルスを生成するパルス生成部と、
前記累算部により生成された前記第１の制御信号を入力し、前記パルス生成部により生成されたパルスを入力し、前記第１の制御信号で制御される遅延量を前記パルスに与えて、遅延パルスを生成する可変遅延部と、
前記累算部により生成された前記基準クロックを入力し、前記可変遅延部で生成された前記遅延パルスを入力し、前記基準クロックの位相を前記遅延パルスで調整し、前記動作クロックの周波数を（前記設定値の２倍）で除算して得られる周波数を有するクロックを生成する位相調整部とを有することを特徴とするクロック生成装置。
【請求項４】
前記累算部は、
整数値と小数値に区分される設定値を入力し、
前記累算部は、
前記設定値の小数値を前記動作クロックの周期で累算する小数累算器と、
前記設定値の整数値、及び前記小数累算器による小数値の累算の結果の桁上がりと前記設定値の整数値との加算値を前記動作クロックの周期でダウンカウントする第１のダウンカウンタと、
前記第１のダウンカウンタでのカウント値が１になった際にパルスを出力する第１の比較器と、
前記設定値の整数値を、所定の周波数のクロックでダウンカウントする第２のダウンカウンタと、
前記第２のダウンカウンタでのカウント値が１になった際にパルスを出力する第２の比較器と、
前記第１の比較器からパルスを入力し、前記第１の比較器からパルスを入力した際の前記小数累算器における小数値の累算値を特定し、特定した小数値の累算値を通知する第１の制御信号を生成する第１制御信号生成部と、
前記第１の比較器からパルスを入力するとともに前記第２の比較器からパルスを入力し、前記第１の比較器からパルスを入力したタイミングで立ち上がり前記第２の比較器からパルスを入力したタイミングで立ち下がる基準クロックを生成する基準クロック生成部とを有し、
前記パルス生成部は、
前記累算部の前記第１の比較器から出力されたパルスを前記第３の制御信号として入力し、前記第３の制御信号をイネーブルとして、前記動作クロックの１周期分のパルスを生成し、
前記可変遅延部は、
前記第１の制御信号で通知されている小数値に対応する遅延量を導出し、導出した遅延量を前記パルス生成部から入力したパルスに与えて、遅延パルスを生成し、
前記位相調整部は、
前記基準クロックと前記遅延パルスとの論理和をとり、前記基準クロックの位相を前記遅延パルスで調整することを特徴とする請求項３に記載のクロック生成装置。
【請求項５】
外部から所定の周波数の動作クロックを入力し、更に、外部から設定値を入力し、入力した前記設定値を前記動作クロックの周期で累算し、累算結果から、遅延量を制御する第１の制御信号と、遅延クロックの立ち上がりタイミング及び立下りタイミングをアサートにより通知する第４の制御信号を生成する累算部と、
外部から所定の周波数のクロックを入力クロックとして入力し、前記累算部により生成された前記第１の制御信号を入力し、前記第１の制御信号によって制御される遅延量を前記入力クロックに与えて、前記入力クロックの遅延クロックを生成する可変遅延部と、
前記累算部により生成された第４の制御信号を入力し、第４の制御信号のアサートタイミングにおいて入力している遅延クロックを選択して出力し、第４の制御信号のアサートタイミング以外は、直近に選択した遅延クロックの出力を維持して、前記動作クロックの周波数を（前記設定値の２倍）で除算して得られる周波数を有するクロックを出力するクロック選択部とを有することを特徴とするクロック生成装置。
【請求項６】
前記累算部は、
整数値と小数値に区分される設定値を入力し、
前記累算部は、
前記設定値を前記動作クロックの周期で累算し、前記クロック選択部に出力されるとともにフィードバックされた第４の制御信号を入力し、入力した前記第４の制御信号のアサートタイミングにおける前記設定値の累積値の小数値を通知する第１の制御信号を生成する第１制御信号生成部と、
前記動作クロックの周期でカウントアップするカウンタと、
前記第１制御信号生成部による前記設定値の累積値の整数値と前記カウンタのカウント値との差が１以下となった際に、第４の制御信号をアサートする第４制御信号生成部とを有し、
前記可変遅延部は、
前記第１の制御信号で通知されている小数値に対応する遅延量を導出し、導出した遅延量を前記入力クロックに与えて、前記入力クロックの遅延クロックを生成し、
前記クロック選択部は、
第４の制御信号のアサートタイミングにおいて入力している遅延クロックを選択して出力するとともに、出力した遅延クロックをフィードバックし、第４の制御信号の次のアサートタイミングまでの期間は、フィードバックさせた遅延クロックを出力することを特徴とする請求項５に記載のクロック生成装置。
【請求項７】
前記クロック生成装置は、
論理回路で構成されていることを特徴とする請求項１〜６のいずれかに記載のクロック生成装置。
【請求項８】
請求項１〜７のいずれかに記載のクロック生成装置を有し、
更に、
前記クロック生成装置により生成された生成クロックの位相と、外部から入力される参照クロックの位相を比較し、前記生成クロックと前記参照クロックとの位相差を出力する位相比較部と、
前記位相比較部の出力である位相差から、前記位相差を０とする前記設定値に対する補正値を生成し、前記設定値へ補正値を加算する補正部と有することを特徴とするＤＬＬ（Ｄｉｇｉｔａｌ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）回路。
【請求項９】
請求項１〜７のいずれかに記載のクロック生成装置を有し、
更に、
前記クロック生成装置により生成された生成クロックの周波数と、外部から入力される参照クロックの周波数を比較し、前記生成クロックと前記参照クロックとの周波数差を出力する周波数比較部と、
前記周波数比較部の出力である周波数差から、前記周波数差を０とする前記設定値に対する補正値を生成し、前記設定値へ補正値を加算する補正部と有することを特徴とするＤＬＬ（Ｄｉｇｉｔａｌ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）回路。
【請求項１０】
外部から所定の周波数の動作クロックを入力し、更に、外部から設定値を入力し、入力した前記設定値を前記動作クロックの周期で累算し、累算結果から、位相調整の対象となる基準クロックと、遅延量を制御する第１の制御信号と、位相調整のタイミングを制御する第２の制御信号を生成する累算ステップと、
外部から所定の周波数のクロックを入力クロックとして入力し、前記累算ステップにより生成された前記第１の制御信号を入力し、前記第１の制御信号によって制御される遅延量を前記入力クロックに与えて、前記入力クロックの遅延クロックを生成する可変遅延ステップと、
前記累算ステップにより生成された前記基準クロックと前記第２の制御信号を入力し、前記可変遅延ステップにより生成された遅延クロックを入力し、前記第２の制御信号をイネーブルとして前記基準クロックの位相を前記遅延クロックで調整し、前記動作クロックの周波数を（前記設定値の２倍）で除算して得られる周波数を有するクロックを生成する位相調整ステップとを有することを特徴とするクロック生成方法。
【請求項１１】
外部から所定の周波数の動作クロックを入力し、更に、外部から設定値を入力し、入力した前記設定値を前記動作クロックの周期で累算し、累算結果から、位相調整の対象となる基準クロックと、遅延量を制御する第１の制御信号と、パルス生成タイミングを制御する第３の制御信号を生成する累算ステップと、
前記累算ステップにより生成された前記第３の制御信号を入力し、前記第３の制御信号をイネーブルとして、前記動作クロックの１周期分のパルスを生成するパルス生成ステップと、
前記累算ステップにより生成された前記第１の制御信号を入力し、前記パルス生成ステップにより生成されたパルスを入力し、前記第１の制御信号で制御される遅延量を前記パルスに与えて、遅延パルスを生成する可変遅延ステップと、
前記累算ステップにより生成された前記基準クロックを入力し、前記可変遅延ステップで生成された前記遅延パルスを入力し、前記基準クロックの位相を前記遅延パルスで調整し、前記動作クロックの周波数を（前記設定値の２倍）で除算して得られる周波数を有するクロックを生成する位相調整ステップとを有することを特徴とするクロック生成方法。
【請求項１２】
外部から所定の周波数の動作クロックを入力し、更に、外部から設定値を入力し、入力した前記設定値を前記動作クロックの周期で累算し、累算結果から、遅延量を制御する第１の制御信号と、遅延クロックの立ち上がりタイミング及び立下りタイミングをアサートにより通知する第４の制御信号を生成する累算ステップと、
外部から所定の周波数のクロックを入力クロックとして入力し、前記累算ステップにより生成された前記第１の制御信号を入力し、前記第１の制御信号によって制御される遅延量を前記入力クロックに与えて、前記入力クロックの遅延クロックを生成する可変遅延ステップと、
前記累算ステップにより生成された第４の制御信号を入力し、第４の制御信号のアサートタイミングにおいて入力している遅延クロックを選択して出力し、第４の制御信号のアサートタイミング以外は、直近に選択した遅延クロックの出力を維持して、前記動作クロックの周波数を（前記設定値の２倍）で除算して得られる周波数を有するクロックを出力するクロック選択ステップとを有することを特徴とするクロック生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動作クロックに基づいて任意の周波数のクロックを生成する技術に関する。
【背景技術】
【０００２】
本発明に関連する技術として、例えば、特許文献１で開示されているタイミング信号発生回路がある。
特許文献１で開示されているタイミング信号発生回路は、入力クロックに対し可変遅延を付加し、それを分周することで任意の周波数を生成している。
可変遅延とは、例えば、遅延線などのタップ型遅延段のことであり、遅延を付加するとはタップ型遅延段の各タップの出力を１つ選択すること、分周とは選択したタップ出力を１／（２＾ｎ）することである。
しかし、前記の構成では、生成周波数の分解能（精度）が使用する可変遅延の最小遅延量に依存してしまい荒くなるという課題がある。
また、特許文献１では、可変遅延を４相クロック生成回路（ＤＬＬ（Ｄｉｇｉｔａｌ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）構成を想定）と位相インタポレータで構成する方法も開示されている（図２６を参照）。
この構成では、位相インタポレータによって任意の遅延（位相ズレ）を生成できるため、前記した生成周波数の分解能（精度）が荒くなるという課題が解決される。
しかし、この構成の場合、４相クロック生成回路と位相インタポレータを使用するため、回路規模が大きく、設計も複雑という課題がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−１９６４１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
以上より、従来技術では、広範囲の周波数を生成することが可能であるが（周波数レンジが広い）、回路規模を小さく、かつ設計を容易にする場合は生成周波数の分解能（精度）が悪くなり、精度を良くする場合は回路規模が大きく、かつ設計が複雑となる。
つまり、従来技術では、生成周波数の精度、回路規模、設計の容易性を両立させることが不可能である。
【０００５】
この発明は、このような課題を解決することを主な目的の一つとしており、回路規模が小さく、また設計が容易な構成にて、高精度なクロックを生成することを主な目的とする。
【課題を解決するための手段】
【０００６】
本発明に係るクロック生成装置は、
外部から所定の周波数の動作クロックを入力し、更に、外部から設定値を入力し、入力した前記設定値を前記動作クロックの周期で累算し、累算結果から、位相調整の対象となる基準クロックと、遅延量を制御する第１の制御信号と、位相調整のタイミングを制御する第２の制御信号を生成する累算部と、
外部から所定の周波数のクロックを入力クロックとして入力し、前記累算部により生成された前記第１の制御信号を入力し、前記第１の制御信号によって制御される遅延量を前記入力クロックに与えて、前記入力クロックの遅延クロックを生成する可変遅延部と、
前記累算部により生成された前記基準クロックと前記第２の制御信号を入力し、前記可変遅延部により生成された遅延クロックを入力し、前記第２の制御信号をイネーブルとして前記基準クロックの位相を前記遅延クロックで調整し、前記動作クロックの周波数を（前記設定値の２倍）で除算して得られる周波数を有するクロックを生成する位相調整部とを有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、回路規模が小さく、また設計が容易な構成にて、高精度なクロックを生成することができる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１のＤＬＬ回路構成を説明するためのブロック図である。
【図２】実施の形態１における累算部１１０の構成を説明するためのブロック図である。
【図３】実施の形態１における累算部１１０内の累算器１１１の動作を説明するための図である。
【図４】実施の形態１における累算部１１０内の累算器１１１の動作と設定値ｋの関係を説明するための図である。
【図５】実施の形態１における累算部１１０内の基準クロックｃｌｋａ生成部１１３の動作を説明するための図である。
【図６】実施の形態１における可変遅延部１２０の構成を説明するためのブロック図である。
【図７】実施の形態１における遅延素子１２１への入力と出力の関係を説明するための図である。
【図８】実施の形態１における位相調整部１３０の構成を説明するためのブロック図である。
【図９】実施の形態１における位相調整部１３０の動作を説明するための図である。
【図１０】実施の形態１のＤＬＬ回路における生成クロックｃｌｋｃの精度を示すための図である。
【図１１】実施の形態２のＤＬＬ回路構成を説明するためのブロック図である。
【図１２】実施の形態２における累算部１１０の構成を説明するためのブロック図である。
【図１３】実施の形態２における累算部１１０内の累算器１１１の動作を説明するための図である。
【図１４】実施の形態２におけるパルス生成部１４０の構成を説明するためのブロック図である。
【図１５】実施の形態２における位相調整部１３０の構成を説明するためのブロック図である。
【図１６】実施の形態２における位相調整部１３０の動作を説明するための図である。
【図１７】実施の形態２における周波数比較部４００の構成を説明するためのブロック図である。
【図１８】実施の形態２における補正部３００の構成を説明するためのブロック図である。
【図１９】実施の形態３のＤＬＬ回路構成を説明するためのブロック図である。
【図２０】実施の形態３における累算部１１０の構成を説明するためのブロック図である。
【図２１】実施の形態３におけるクロック選択部１５０の構成を説明するためのブロック図である。
【図２２】実施の形態３のＤＬＬ回路の動作を説明するための図である。
【図２３】実施の形態４の構成を説明するためのブロック図である。
【図２４】実施の形態５の構成を説明するためのブロック図である。
【図２５】実施の形態６の構成を説明するためのブロック図である。
【図２６】従来技術の概略図。
【発明を実施するための形態】
【０００９】
実施の形態１〜３では、上記の課題を解決するためのＤＬＬ（Ｄｉｇｉｔａｌ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）回路を説明する。
実施の形態１〜３に係るＤＬＬ回路は、クロック生成部と、位相比較部と、補正部を備える。
クロック生成部は、
動作クロックで動作し、設定値を累算し、第１のクロックを生成する累算部と、
入力クロックもしくはパルスを累算部によって制御される遅延量分遅延させ、第２のクロックを生成する可変遅延部と、
前記累算部により制御されるタイミングによって前記第１のクロックの位相を前記第２のクロックで補正する位相補正部を有し、
動作クロック周波数の（前記設定値の２倍）分の一の周波数を有する生成クロックを生成する。
また、位相比較部は、前記生成クロックと、外部から入力される参照クロックの位相差を比較し、その位相差を出力する。
また、補正部は、前記位相比較部の出力である位相差から、前記位相差を“０”とするように前記設定値を補正する補正値を生成し、前記設定値へ補正値を加算する。
【００１０】
上記構成の実施の形態１〜３によるＤＬＬ回路は、クロック生成を累算部で実施するため、上限を動作クロック周波数の１／２として、累算部のビット数分の広範囲の周波数を生成可能であり、かつ、可変遅延部生成のクロックを利用して生成クロックの位相を調整するため、生成クロックを高精度で生成可能である。
更に、クロック生成部を論理設計可能な累算部と可変遅延部と位相調整部で構成するため、設計が容易であり、多ビットカウンタ１個で構成できるため、小回路規模である。
【００１１】
また、実施の形態４〜６では、実施の形態１〜３で説明するクロック生成部単独で構成されているＤＬＬ回路を説明する。
【００１２】
実施の形態１．
図１は、実施の形態１によるＤＬＬ回路の構成例を示している。
図１のＤＬＬ回路は、クロック生成部１００と、位相比較部２００、補正部３００から構成され、入力は設定値ｋ（実数）と、動作クロックｃｌｋｓ、参照クロックｃｌｋｒ、動作クロックの２倍速クロックｃｌｋｓ２（周波数が２倍）であり、出力は生成クロックｃｌｋｃである。
更に、クロック生成部１００は、累算部１１０と、可変遅延部１２０、位相調整部１３０から構成される。
図１の設定値ｋは実数値であり、動作クロック周波数を生成クロック周波数の２倍で除算して求める。
例えば、動作クロック周波数が５００ＭＨｚであり、生成クロック周波数が１６０ＭＨｚである場合、設定値ｋは５００ＭＨｚ／（１６０ＭＨｚ×２）＝１．５６２５となる。この計算により、設定値kは、生成クロックの半周期が動作クロック何周期分かを表している。前記計算では、生成クロック周波数１６０ＭＨｚの半周期は動作クロック５００ＭＨｚの１．５６２５周期分となる。
なお、クロック生成部１００は、クロック生成装置の例である。
【００１３】
図２は、実施の形態１の前記累算部１１０の構成例を示している。
図２の累算部１１０は、累算器１１１と、検出部１１２、基準クロックｃｌｋａ生成部１１３、制御信号Ｃ１生成部１１４から構成される。
制御信号Ｃ１生成部１１４は、第１制御信号生成部に相当し、検出部１１２は第２制御信号生成部に相当する。
【００１４】
前記累算器１１１は、動作クロックｃｌｋｓによって動作し、入力である設定値ｋを累算する。
図３に累算器１１１の動作タイミングチャートを示す。
累算器１１１は、設定値ｋを動作クロックｃｌｋｓによって累算するため、累算器１１１の結果は、累算器１１１のビット幅以内までは直線的に変化し、ビット幅を超えると“０”に戻る、という推移を繰り返す。
よって、この動作を連続して実施すれば、累算器１１１の結果は、図３に示すように、のこぎり波のような推移となる。
また、累算器１１１の直線変化は、設定値ｋの値を変更すると傾きが変化し、図４に示すように、設定値ｋが小さければ緩やかに、設定値ｋが大きければ急峻になる。
【００１５】
図２の検出部１１２は、累算器１１１結果が累算器１１１のビット幅（すなわち、累算器１１１のビット幅で表示可能な最大ビット値）を超えたことを検出する度に、その検出したことを示すパルス信号を制御信号Ｃ２（第２の制御信号に相当）として出力する（制御信号Ｃ２をアサートする）。
制御信号Ｃ２は、位相調整のタイミングを制御するための信号である。
累算器１１１の結果のビット幅越えの検出は、例えば、累算器１１１の最上位ビットの桁上がりや、累算器１１１の結果と累算器１１１のビット幅の最大値とを比較するなどで検出する。
【００１６】
図２の基準クロックｃｌｋａ生成部１１３は、制御信号Ｃ２の入力タイミングによって、現在の基準クロックｃｌｋａ値を反転し、その反転信号を次の基準クロックｃｌｋａとして出力する。
基準クロックｃｌｋａは次の制御信号Ｃ２入力タイミングまで値を保持する。
基準クロックｃｌｋａは、位相調整の対象となるクロックである。
図５に基準クロックｃｌｋａと制御信号Ｃ２の動作波形を示す。
例えば、現在の基準クロックｃｌｋａが“１”である場合、ビット幅超え検出のタイミングにおいて“１”を“０”へ反転し、次の基準クロックｃｌｋａとする。
そして、次のビット幅超え検出タイミングまでその値を保持する。
このように、基準クロックｃｌｋａ生成部１１３は、制御信号Ｃ２のアサートタイミングの間隔をエッジ間隔とする基準クロックｃｌｋａを生成する。
また、基準クロックｃｌｋａは、累算器１１１のＭＳＢ（Ｍｏｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）の変化をそのまま利用してもよい。
【００１７】
図２の制御信号Ｃ１生成部１１４は、制御信号Ｃ２の入力タイミングによって、累算器１１１の小数部分を取得し、取得した小数部分を制御信号Ｃ１（第１の制御信号に相当）として出力する。
制御信号Ｃ１は、次の制御信号Ｃ２入力タイミングまで値を保持する。
制御信号Ｃ１は、可変遅延部１２０における遅延量を制御するための信号である。
ビット幅を超えたときの累算器１１１の結果が小数部を有する理由は、設定値ｋが実数値であるためである（前述の例では、Ｋ＝１．５６２５）。
このように、制御信号Ｃ１生成部１１４は、検出部１１２により制御信号Ｃ２がアサートされた際の設定値の小数値を特定し、特定した小数値を通知する制御信号Ｃ１を生成し、出力する。
なお、小数部分の取得は、制御信号Ｃ２で累算器１１１の小数値をマスクすれば、ビット幅を超えたときの累算器１１１の小数値が得られる。
【００１８】
図６は、実施の形態１の前記可変遅延部１２０の構成を示している。
図６の可変遅延部１２０は、複数の遅延素子１２１と、セレクタ１２２、変換部１２３から構成される。
遅延素子１２１は、外部から入力される動作クロックの２倍速クロックｃｌｋｓ２に遅延を加えるもので、それを複数個直列に接続しており、遅延素子１２１を１個毎に出力端子を有する。
これは、よくある遅延線などでも代用可能である。
【００１９】
図７に遅延素子１２１の直列接続の動作タイミングチャートを示す。
遅延素子１２１を通過する毎に入力されたクロックが遅延素子１２１一個分の遅延量で遅延される。
図６の変換部１２３は、累算部１１０から出力される制御信号Ｃ１からセレクタ１２２が遅延素子１２１の出力端子を選択するためのセレクト値を生成する。
セレクト値は、以下の方法で生成する。動作クロックｃｌｋｓ１周期分遅延させる遅延量を上限値として、それだけ遅延させるために必要な遅延素子１２１の段数をコード値として保持する。
制御信号Ｃ１は、動作クロックｃｌｋｓでカウントできない小数値であるから、動作クロックｃｌｋｓの１周期を遅延量“１”とした場合の、必要な遅延量を表している。
例えば、制御信号Ｃ１が“０．５”であるならば、必要な遅延量は動作クロックｃｌｋｓの１周期の半周期分であり、“０．２”ならば動作クロックｃｌｋｓの１周期の０．２周期分である。
制御信号Ｃ１が示す必要遅延量に相当する遅延量を得られる遅延素子１２１の段数をコード値から選択する。
これは、制御信号Ｃ１を参照値として  ルックアップテーブルなどから選択してもよいし、遅延量の上限値となるコード値と制御信号Ｃ１を乗算しても求められるためそれでもよい。
以上によって得られたコード値をセレクト値として出力する。
この動作は制御信号Ｃ１が入力される度に実施し、次に制御信号Ｃ１が入力されるタイミングまではセレクト値は保持される。
図６のセレクタ１２２は、変換部１２３出力のセレクト値によって、前記遅延素子１２１の直列接続の出力端子の内から１つ選択し、選択した出力端子から出力される信号を遅延クロックｃｌｋｄとして出力する。
このように、可変遅延部１２０は、外部から所定の周波数のクロックを入力クロックとして入力し、累算部１１０により生成された制御信号Ｃ１を入力し、制御信号Ｃ１によって制御される遅延量を入力クロックに与えて、入力クロックの遅延クロックｃｌｋｄを生成し、出力する。
【００２０】
図８は、実施の形態１の前記位相調整部１３０の構成を示している。
図８に示す位相調整部１３０は、遅延クロックｃｌｋｄと制御信号Ｃ２の論理積と、前記論理積出力と基準クロックｃｌｋａの排他的論理和で構成され、前記排他的論理和の出力を生成クロックｃｌｋｃとして出力する。
図９に、図８に示す位相調整部１３０の動作タイミングチャートを示す。
図９に示すとおり、位相調整部１３０は、制御信号Ｃ２と前記可変遅延部１２０で選択され、毎制御信号Ｃ２アサートタイミングで変化する遅延クロックｃｌｋｄとの論理積をとる。
前記論理積の結果と基準クロックｃｌｋａの排他的論理和を取ることで生成クロックｃｌｋｃを生成する。
このように、位相調整部１３０は、累算部１１０により生成された基準クロックｃｌｋａと制御信号Ｃ２を入力し、可変遅延部１２０により生成された遅延クロックｃｌｋｄを入力し、制御信号Ｃ２をイネーブルとして基準クロックｃｌｋａの位相を遅延クロックｃｌｋｄで調整し、動作クロックｃｌｋｓの周波数を設定値ｋの２倍で除算して得られる周波数を有するクロックを生成し、生成したクロックを生成クロックｃｌｋｃとして出力する。
【００２１】
図１に示す実施の形態１の位相比較部２００は、これまで説明した構成・動作であるクロック生成部１００が生成する生成クロックｃｌｋｃと外部から入力される参照クロックｃｌｋｒの位相差を検出する。
このように、位相比較部２００は、クロック生成部１００により生成された生成クロックｃｌｋｃの位相と、外部から入力される参照クロックｃｌｋｒの位相を比較し、生成クロックｃｌｋｃと参照クロックｃｌｋｒとの位相差を出力する。
【００２２】
図１に示す実施の形態１の補正部３００は、前記位相比較部２００で検出した位相差と生成クロックｃｌｋｃを生成するためにクロック生成部１００が使用した設定値ｋから、生成クロックｃｌｋｃと参照クロックｃｌｋｒの位相差が“０”とするように設定値ｋを補正する補正値を生成する。
そして、補正部３００は、生成した補正値を補正値生成に使用した設定値ｋへ加算し、新たな設定値ｋを算出する。
クロック生成部１００は、前記の通り算出された新たな設定値ｋにおいて生成クロックｃｌｋｃを生成する。
【００２３】
以上のように、図１に示す実施の形態１によるＤＬＬ回路は、クロック生成部１００と位相比較部２００、補正部３００のループ処理により、参照クロックｃｌｋｒに位相同期した生成クロックｃｌｋｃを生成する。
この構成により、生成クロックｃｌｋｃの生成可能周波数幅は、動作クロックｃｌｋｓ周波数の１／２を上限として、クロック生成部１００内の累算部１１０内の累算器１１１のビット幅分となり、非常に広レンジを実現できる。
また、生成クロックｃｌｋｃの生成可能周波数精度は、前記累算器１１１によって生成する基準クロックｃｌｋａの位相を可変遅延部１２０で生成する遅延クロックｃｌｋｄで補正するため、デューティ比５０％とすることが可能であり、高精度である。
図１０は、図１のＤＬＬ回路の生成クロックｃｌｋｃの設定に対する精度である。
図１０において、生成周波数は、ターゲットとなる周波数であり、出力周波数は、生成周波数をターゲットしてクロック生成部１００で生成されたクロック（生成クロックｃｌｋｃに相当）の周波数であり、実測値である。
図１０に示すように、本実施の形態のＤＬＬ回路では、全てにおいて誤差は０ｐｐｍであり、高精度である。
更に、図２、図６、図８に示す回路はディジタル回路で構成可能であり、容易に設計でき、構成要素もカウンタやプリミティブな論理回路であるため、小回路規模である。
【００２４】
なお、以上の説明では、可変遅延部１２０に入力するクロックは動作クロックの２倍速クロックｃｌｋｓ２としているが、これに限らない。
つまり、可変遅延部１２０に入力するクロックは、動作クロックと同じ周期であってもよいし、動作クロックよりも速い周期のクロックであってもよいし、遅い周期のクロックであってもよい。
また、動作クロックよりも速い周期のクロックを入力する場合にも、動作クロックの整数倍の周期のクロックでなくてもよい。
また、動作クロックよりも遅い周期のクロックを入力する場合にも、動作クロックの整数分の一の周期のクロックでなくてもよい。
【００２５】
また、前記位相比較部２００のかわりに、前記生成クロックｃｌｋｃと前記参照クロックｃｌｋｒの周波数差を比較し、その周波数差を出力する周波数比較部を用いるようにしてもよい。
なお、周波数比較部の詳細は、実施の形態２で説明する。
【００２６】
このように、本実施の形態では、
外部から入力される動作クロックと前記動作クロックと周波数が異なるもしくは等しい入力クロックと所望の周波数を表す設定値から前記動作クロック周波数の（前記設定値の２倍）分の一の周波数を有する生成クロックを生成するクロック生成部と、
前記生成クロックと外部から入力される参照クロックの位相差を比較し、その位相差を出力する位相比較部と、
前記位相比較部の出力である位相差から、前記位相差を“０”とするように前記設定値へ補正をする補正値を生成し、前記設定値へ補正値を加算する補正部とを備えるＤＬＬ回路を説明した。
【００２７】
また、前記クロック生成部が、
動作クロックで動作し、外部から入力される設定値を動作クロック周期で累算することで、第１のクロック（基準クロック）と遅延量を制御する第１の制御信号（制御信号Ｃ１）と補正タイミングを制御する第２の制御信号（制御信号Ｃ２）を生成する累算部と、
外部から動作クロックと周波数が異なるもしくは等しい入力クロックを受け取り、前記累算部出力の前記第１の制御信号によって制御される遅延量を前記入力クロックに与えて第２のクロックを生成する可変遅延部と、
前記第２の制御信号をイネーブルとして前記第１のクロックの位相を前記第２のクロックで補正する位相調整部を有し、
動作クロックの周波数の（前記設定値の２倍）分の一の周波数を有する生成クロックを生成可能であることを説明した。
【００２８】
また、外部から入力される設定値は、動作クロックの周波数と、所望の周波数の２倍の除算から算出され、整数と小数で表現できる実数であることを説明した。
【００２９】
また、前記クロック生成部を構成する前記可変遅延部は、
前記累算部の前記設定値の累算結果の小数部にあたる第１の制御信号を、内部に有する変換コードに従い、遅延量へ変換し、前記遅延量に相当する遅延を入力される前記倍速クロックもしくは前記パルス生成部のパルスへ与え、前記第２のクロックを出力することを説明した。
【００３０】
また、前記クロック生成部を構成する位相調整部は、
前記累算部出力の第１のクロックと、前記可変遅延部出力の第２のクロックもしくは前記遅延パルスを前記第２の制御信号のタイミングで論理和もしくは論理積もしくは排他的論理和をとることで前記第１のクロックの位相を調整することを説明した。
【００３１】
また、前記位相比較部のかわりに、前記生成クロックと前記参照クロックの周波数差を比較し、その周波数差を出力する周波数比較部を用いることが可能であることを説明した。
【００３２】
また、前記クロック生成部、前記位相比較部、前記補正部は論理回路で設計できることを説明した。
【００３３】
なお、本実施の形態に係るクロック生成部１００の動作を、累算部１１０の動作（累算ステップ）、可変遅延部１２０の動作（可変遅延ステップ）、位相調整部１３０による動作（位相調整ステップ）を含むクロック生成方法として捉えることもできる。
【００３４】
実施の形態２．
図１１は、実施の形態２によるＤＬＬ回路構成を示している。
図１１のＤＬＬ回路は、実施の形態１の構成から、クロック生成部１００にパルス生成部１４０が追加されており、可変遅延部１２０へ外部からのクロック入力がなく、パルス生成部１４０で生成されたパルスを入力する構成となる。
また、位相比較部２００が周波数比較部４００となっている。
周波数比較部４００は、クロック生成部１００により生成された生成クロックｃｌｋｃの周波数と、外部から入力される参照クロックｃｌｋｒの周波数を比較し、生成クロックｃｌｋｃと参照クロックｃｌｋｒとの周波数差を出力する。
また、本実施の形態の補正部３００は、周波数比較部４００の出力である周波数差から、前記周波数差を０とする設定値ｋに対する補正値を生成し、設定値ｋへ補正値を加算する。
更に、動作クロックの２倍速クロックｃｌｋｓ２（周波数が２倍）はＤＬＬ回路を動かすもう１つの動作クロックとして使用する。
【００３５】
図１２は、実施の形態２の累算部１１０構成を示している。
図１２の累算部１１０は、累算器１１１と、基準クロックｃｌｋａ生成部１１３、制御信号Ｃ１生成部１１４、ダウンカウンタ１１５／１１７、比較器１１６／１１８、加算器１１９から構成される。
【００３６】
累算器１１１は、入力した動作クロックｃｌｋｓによって動作し、設定値ｋの小数値のみを累算する小数値累算器１１０１と、設定値ｋの整数部のみを保持するＦＦ（フリップフロップ）１１０２／１１０３で構成される。
小数値累算器１１０１は、設定値ｋの小数値を前記動作クロックｃｌｋｓの周期で累算する。
累算器１１１内の累算実行と値の更新は、後段の比較器１１６の結果で行う。
【００３７】
図１２の加算器１１９は、累算器１１１内の設定値ｋの整数部のみを保持するＦＦ１１０２／１１０３の出力と設定値ｋの小数値のみを累算する小数値累算器１１０１の桁上がりの加算を行う。
【００３８】
図１２のダウンカウンタ１１５（第１のダウンカウンタに相当）は、動作クロックｃｌｋｓで動作し、動作クロックｃｌｋｓの周期で加算器１１９の加算結果をダウンカウントする。
【００３９】
図１２の比較器１１６（第１の比較器に相当）は、動作クロックｃｌｋｓで動作し、ダウンカウンタ１１５の出力を“１”と比較し、ダウンカウンタ１１５の出力が“１”になるとパルスを出力する。
比較器１１６の出力は、制御信号Ｃ３（第３の制御信号に相当）として出力される。
制御信号Ｃ３は、パルス生成部１４０におけるパルス生成タイミングを制御するための信号である。
また、制御信号Ｃ３は、累算器１１１、ダウンカウンタ１１５／１１７へフィードバックされ、累算器１１１内の小数値累算器１１０１、ＦＦ１１０２／１１０３とダウンカウンタ１１５／１１７の値更新のイネーブル信号としても使用される。
【００４０】
図１２のダウンカウンタ１１７（第２のダウンカウンタに相当）は、動作クロックの２倍速クロックｃｌｋｓ２で動作し、２倍速クロックｃｌｋｓ２の周期で、累算器１１１の設定値ｋの整数部のみを保持するＦＦ１１０３の出力をダウンカウントする。
【００４１】
図１２の比較器１１８（第２の比較器に相当）は、動作クロックの２倍速クロックｃｌｋｓ２で動作し、２倍速クロックｃｌｋｓ２の周期で、ダウンカウンタ１１７の出力を“１”と比較し、ダウンカウンタ１１７の出力が“１”になるとパルスを出力する。
【００４２】
図１２の制御信号Ｃ１生成部１１４は、累算器１１１の設定値ｋの小数値のみを累算する小数値累算器１１０１の出力と比較器１１６の出力から、比較結果が“１”以下になったタイミングで小数値を制御信号Ｃ１として出力する。
つまり、制御信号Ｃ１生成部１１４は、比較器１１６からパルスを入力し、比較器１１６からパルスを入力した際の小数値累算器１１０１における小数値の累算値を特定し、特定した小数値の累算値を通知する制御信号Ｃ１を生成し、出力する。
【００４３】
図１２の基準クロックｃｌｋａ生成部１１３は、動作クロックの２倍速クロックｃｌｋｓ２で動作し、比較器１１６の出力と比較器１１８の出力から基準クロックｃｌｋａを生成し、出力する。
基準クロックｃｌｋａの生成は、比較器１１６の出力パルスで基準クロックｃｌｋａのポジティブエッジを生成し、比較器１１８の出力パルスで基準クロックｃｌｋａのネガティブエッジを生成する。
なお、基準クロックｃｌｋａは、実施の形態１と同様、位相調整の対象となるクロックである。
【００４４】
図１３に、図１２の累算部１１０内の累算器１１１での基準クロックｃｌｋａの生成動作タイミングを示す。
図１３では設定値ｋを“３．４”と仮定している。
比較器１１６の出力パルスによって、累算器１１１内のＦＦ１１０２／１１０３と小数値累算器１１０１、ダウンカウンタ１１５／１１７の値を更新し、ダウンカウンタ１１５／１１７はそれぞれの動作クロックｃｌｋｓと２倍速クロックｃｌｋｓ２で更新された値をカウントダウンする。
比較器１１６／１１８は、ダウンカウンタ値が“１”以下になったらパルスを出力する。
基準クロックｃｌｋａ生成部１１３は、比較器１１６の出力パルスのタイミングで“１”とし、比較器１１８の出力パルスのタイミングで“０”とすることで基準クロックｃｌｋａを生成する。
このように、基準クロックｃｌｋａ生成部１１３は、比較器１１６からパルスを入力するとともに比較器１１８からパルスを入力し、比較器１１６からパルスを入力したタイミングで立ち上がり、比較器１１８からパルスを入力したタイミングで立ち下がる基準クロックｃｌｋａを生成する。
制御信号Ｃ１生成部１１４は、比較器１１６出力パルスのタイミングの累算器１１１内の小数値累算器１１０１の出力を制御信号Ｃ１として出力する。
【００４５】
図１４は、実施の形態２のパルス生成部１４０構成を示している。
図１４のパルス生成部１４０は、２倍速クロックｃｌｋｓ２で動作し、制御信号Ｃ３を保持するＦＦと、制御信号Ｃ３と前記ＦＦとの論理和回路で構成される。
図１４のパルス生成部１４０は、動作クロックｃｌｋｓの１周期分のパルスを生成し、入力パルスｐｌとして出力する。
このように、パルス生成部１４０は、比較器１１６から出力されたパルスを制御信号Ｃ３として入力し、制御信号Ｃ３をイネーブルとして、動作クロックｃｌｋｓの１周期分のパルスを生成する。
【００４６】
図１１の可変遅延部１２０は、図６と構成・動作共に同様であり、入力が２倍速クロックｃｌｋｓ２から前記パルス生成部１４０生成の入力パルスｐｌに変化するのみである。
つまり、可変遅延部１２０は、制御信号Ｃ１で通知されている小数値に対応する遅延量を導出し、導出した遅延量をパルス生成部１４０から入力したパルスｐｌに与えて、遅延パルスｐｌｄを生成し、出力する。
【００４７】
図１１の位相調整部１３０は、累算部１１０出力の基準クロックｃｌｋａと可変遅延部１２０出力の遅延パルスｐｌｄの論理和で構成され（図１５）、前記論理和の出力が生成クロックｃｌｋｃとなる。
図１６に位相調整部１３０の動作タイミングを示す。
基準クロックｃｌｋａと遅延パルスｐｌｄの論理和のみであるため、基準クロックｃｌｋａの位相調整は、遅延パルスｐｌｄが入力されたときのみ（ポジティブエッジのみ）である。
このように、位相調整部１３０は、累算部１１０により生成された基準クロックｃｌｋａを入力し、可変遅延部１２０で生成された遅延パルスｐｌｄを入力し、基準クロックｃｌｋａの位相を遅延パルスｐｌｄで調整し、動作クロックｃｌｋｓの周波数を設定値ｋの２倍で除算して得られる周波数を有するクロックを生成し、生成したクロックを生成クロックｃｌｋｃとして出力する。
【００４８】
図１７は、実施の形態２の周波数比較部４００構成を示している。
図１７の周波数比較部４００は、カウンタ４１１とカウンタ４２１、比較期間カウンタ４３０、カウント値取得部４１２／４２２、セレクタ４１３／４２３、カウント換算部４２４、差分比較部４４０から構成される。
周波数比較部４００は、生成クロックｃｌｋｃと参照クロックｃｌｋｒの周波数差を検出して、出力する。
【００４９】
図１７のカウンタ４１１は、生成クロックｃｌｋｃで動作するカウンタであり、比較期間カウンタ４３０のカウント期間、カウントする。
カウンタ４１１のカウント値は、比較期間内の生成クロックｃｌｋｃのトグル数を表す。
図１７のカウンタ４２１は、参照クロックｃｌｋｒで動作するカウンタであり、比較期間カウンタ４３０のカウント期間、カウントする。カウンタ４１１のカウント値は、比較期間内の参照クロックｃｌｋｒのトグル数を表す。
図１７の比較期間カウンタ４３０は、参照クロックｃｌｋｒで動作し、カウンタ４１１と４２１のカウント値を比較する期間を決める。
カウントはダウンカウントで行い、カウント値が“１”以下となったら、イネーブルを出力する。
カウントはカウントアップでも良い。
比較期間を決めるカウンタ設定値は外部から任意に設定可能である。
図１７のカウント値取得部４１２は、カウンタ４１１のカウント値を、比較期間カウンタ４３０出力イネーブルのタイミングで取り込む。
図１７のカウント値取得部４２２は、カウンタ４２１のカウント値を、比較期間カウンタ４３０出力イネーブルのタイミングで取り込む。
図１７のセレクタ４１３は、カウンタ４１１出力か、カウンタ４１１出力からカウント値取得部４１２出力を減算した値のどちらか選択し、カウンタ４１１へ入力する。
値の選択は、比較期間カウンタ４３０出力イネーブルによって実施する。
図１７のセレクタ４２３は、カウンタ４２１出力か、カウンタ４２１出力からカウント値取得部４２２出力を減算した値のどちらか選択し、カウンタ４２１へ入力する。
値の選択は、比較期間カウンタ４３０出力イネーブルによって実施する。
図１７のカウント換算部４２４は、カウント値取得部４２２が取得したカウンタ値に対して、カウンタ値ｘ（生成クロックｃｌｋｃ周波数／参照クロックｃｌｋｒ周波数）の演算を行い、カウンタ値をカウンタ４１１の値へ換算する。
図１７の差分比較部４４０は、カウント値取得部４１２出力とカウント換算部４２４出力の減算を行い、その減算結果を生成クロックｃｌｋｃと参照クロックｃｌｋｒの周波数差として出力する。
【００５０】
図１８は、実施の形態２の補正部３００の構成を示している。
補正部３００は、周波数比較部４００で検出した周波数差と、生成クロックｃｌｋｃを生成するためにクロック生成部１００が使用した設定値ｋから、生成クロックｃｌｋｃと参照クロックｃｌｋｒの周波数差が“０”とするように設定値ｋを補正する補正値を生成する。
【００５１】
図１８のビットシフト３１０は、設定値ｋの右ビットシフトする。
シフト量は外部から任意に設定可能である。ここで周波数差“１”に対する補正値の重みを決定する。
図１８の乗算器３２０は、周波数比較部４００出力の周波数差と、ビットシフト３１０出力の設定値ｋシフト結果の乗算を行い、周波数差を補正値へ変換する。
図１８のビットシフト３３０／３４０は、乗算器３２０出力を右ビットシフトする。
それぞれ、シフト量は外部から任意に設定可能である。ビットシフトすることで、補正値の補正量を調整する。
図１８の積分器３５０は、ビットシフト３４０出力を累算する。
積分器３５０によって、周波数差が“０”となったときの補正値を保持する。
図１８の加算器３６０は、ビットシフト３３０出力と積分器３５０出力の加算を行う。
図１８のビットシフト３７０は、加算器３６０出力を右ビットシフトする。
シフト量は外部から任意に設定可能である。
ビットシフトすることで、補正値の補正量を調整し、最終的な補正値として出力する。
【００５２】
以上のように、図１１に示す実施の形態２によるＤＬＬ回路は、クロック生成部１００と周波数比較部４００、補正部３００のループ処理により、参照クロックｃｌｋｒに周波数同期した生成クロックｃｌｋｃを生成する。
この構成による生成クロックｃｌｋｃの生成可能周波数幅や精度は、実施の形態１と同様である。
また、全回路をディジタル回路で構成可能であることも同様である。
更に、位相比較ではなく周波数比較としているため、位相比較を利用するより設計は容易である。
また、図１１の構成において、図１の位相比較部２００を使用することも可能である。
【００５３】
なお、以上の説明では、ダウンカウンタ１１７、比較器１１８及び基準クロックｃｌｋａ生成部１１３に入力するクロックは動作クロックの２倍速クロックｃｌｋｓ２としているが、これに限らない。
つまり、ダウンカウンタ１１７、比較器１１８及び基準クロックｃｌｋａ生成部１１３に入力するクロックは、動作クロックと同じ周期であってもよいし、動作クロックよりも速い周期のクロックであってもよいし、遅い周期のクロックであってもよい。
また、動作クロックよりも速い周期のクロックを入力する場合にも、動作クロックの整数倍の周期のクロックでなくてもよい。
また、動作クロックよりも遅い周期のクロックを入力する場合にも、動作クロックの整数分の一の周期のクロックでなくてもよい。
【００５４】
このように、本実施の形態では、
外部から入力される動作クロックと前記動作クロックと周波数が異なるもしくは等しい入力クロックと所望の周波数を表す設定値から前記動作クロック周波数の（前記設定値の２倍）分の一の周波数を有する生成クロックを生成するクロック生成部と、
前記生成クロックと外部から入力される参照クロックの位相差を比較し、その位相差を出力する位相比較部と、
前記位相比較部の出力である位相差から、前記位相差を“０”とするように前記設定値へ補正をする補正値を生成し、前記設定値へ補正値を加算する補正部とを備えるＤＬＬ回路を説明した。
【００５５】
また、前記クロック生成部が、
動作クロックで動作し、外部から入力される設定値を動作クロック周期で累算することで、第１のクロック（基準クロック）と遅延量を制御する第１の制御信号（制御信号Ｃ１）と、パルス生成タイミングを制御する第３の制御信号（制御信号Ｃ３）を生成する累算部と、
前記累算部出力の前記第３の制御信号をイネーブルとして、前記動作クロックの１周期期間のパルスを生成するパルス生成部と、
前記累算部出力の前記第１の制御信号で制御される遅延量を、前記パルス生成部で生成されたパルスへ与えて、遅延パルスを生成する可変遅延部と、
前記第１のクロックの位相を前記遅延パルスで補正する位相調整部を有し、
動作クロック周波数の前記設定値分の一の周波数を有する生成クロックを生成可能であることを説明した。
【００５６】
また、外部から入力される設定値は、動作クロックの周波数と、（所望の周波数の２倍）の除算から算出され、整数と小数で表現できる実数であることを説明した。
【００５７】
また、前記クロック生成部を構成する前記可変遅延部は、
前記累算部の前記設定値の累算結果の小数部にあたる第１の制御信号を、内部に有する変換コードに従い、遅延量へ変換し、前記遅延量に相当する遅延を入力される前記倍速クロックもしくは前記パルス生成部のパルスへ与え、前記第２のクロックを出力することを説明した。
【００５８】
また、前記クロック生成部を構成する位相調整部は、
前記累算部出力の第１のクロックと、前記可変遅延部出力の第２のクロックもしくは前記遅延パルスを前記第２の制御信号のタイミングで論理和もしくは論理積もしくは排他的論理和をとることで前記第１のクロックの位相を調整することを説明した。
【００５９】
また、前記位相比較部のかわりに、前記生成クロックと前記参照クロックの周波数差を比較し、その周波数差を出力する周波数比較部を用いることが可能であることを説明した。
【００６０】
また、前記クロック生成部、前記位相比較部、前記補正部は論理回路で設計できることを説明した。
【００６１】
なお、本実施の形態に係るクロック生成部１００の動作を、累算部１１０の動作（累算ステップ）、パルス生成部１４０の動作（パルス生成ステップ）、可変遅延部１２０の動作（可変遅延ステップ）、位相調整部１３０による動作（位相調整ステップ）を含むクロック生成方法として捉えることもできる。
【００６２】
実施の形態３．
図１９は、実施の形態３によるＤＬＬ回路構成を示している。
図１９のＤＬＬ回路は、クロック生成部１００と、位相比較部２００、補正部３００から構成される。
入力は、動作クロックの４分周クロックｃｌｋｓｄがクロック生成部１００へ入力される以外、実施の形態１と同様である。
また、クロック生成部１００は、累算部１１０と、可変遅延部１２０と、位相調整部１３０ではなくクロック選択部１５０から構成されている。
なお、本実施の形態では、累算部１１０からクロック選択部１５０に対して制御信号Ｃ４（第４の制御信号に相当）を出力する。
制御信号Ｃ４は、クロック選択部１５０に対して、遅延クロックｃｌｋｄの立ち上がりタイミング及び立下りタイミングを通知する信号である。
クロック選択部１５０は、制御信号Ｃ４のアサートタイミングにおいて入力している遅延クロックｃｌｋｄを選択して出力し、制御信号Ｃ４のアサートタイミング以外は、直近に選択した遅延クロックｃｌｋｄの出力を維持して、動作クロックｃｌｋｓの周波数を設定値ｋで除算して得られる周波数を有するクロックを生成クロックｃｌｋｃとして出力する。
【００６３】
図２０は、実施の形態３の累算部１１０の構成を示している。
図２０の累算部１１０（第１制御信号生成部に相当）は、累算器１１１と、カウンタ１１１２、加算器１１１３、比較器１１１４、制御信号Ｃ４生成部１１１５から構成される。
累算器１１１は、動作クロックｃｌｋｓによって動作し、動作クロックｃｌｋｓ周期で設定値ｋを累積するとともに、フィードバックされた制御信号Ｃ４のアサートタイミングによって設定値ｋの累算結果を出力する。
累算器１１１の累算結果の整数値は加算器１１１３の入力となり、累算結果の小数値は制御信号Ｃ１として出力される。
つまり、制御信号Ｃ１は、制御信号Ｃ４のアサートタイミングにおける設定値ｋの累積値の小数値を通知する信号である。
図２０のカウンタ１１１２は、前記累算器１１１と同様に動作クロックｃｌｋｓで動作し、“１”づつカウントアップし、そのカウンタ値を出力する。
図２０の加算器１１１３は、累算器１１１の累算結果の整数値からカウンタ１１１２のカウント値を減算し、その累算結果とカウンタ値の差分を出力する。
図２０の比較器１１１４は、前段の加算器１１１３の出力である累算器１１１出力とカウンタ１１１２出力の差分と、“１”を比較し、比較結果を出力する。
図２０の制御信号Ｃ４生成部１１１５（第４制御信号生成部に相当）は、加算器１１１３の出力のうちのＬＳＢ（Ｌｅａｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）と、比較器１１１４の出力を入力とし、制御信号Ｃ４を生成する。
出力である制御信号Ｃ４は、外部へ出力されると同時に、前記累算器１１１へフィードバックされる。
【００６４】
図１９の可変遅延部１２０は、入力されるクロックが動作クロックの分周クロックになった以外は、実施の形態１及び２と同様の構成・動作である。
【００６５】
図２１は、実施の形態３のクロック選択部１５０の構成を示している。
図２１のクロック選択部１５０は、現在の生成クロックｃｌｋｃを動作クロックｃｌｋｓによって保持するＦＦ１５１と、制御信号Ｃ４によってＦＦ１５１の出力か遅延クロックｃｌｋｄかを選択するセレクタ１５２から構成される。
制御信号Ｃ４によって、遅延クロックｃｌｋｄが切り替わったタイミングで遅延クロックｃｌｋｄを選択し、次に遅延クロックｃｌｋｄが切り替わるまでＦＦ１５１を選択する。
【００６６】
図１９の位相比較部２００及び補正部３００は、実施の形態１と同様の構成・動作である。
また、位相比較部２００の実施の形態２の周波数比較部４００へ変換することも可能で、その場合の補正部は実施の形態２の構成となる。
【００６７】
図２２は、図１９のＤＬＬ回路でのクロック生成時の動作を示している。
図２２の上段の波形がカウンタ１１１２によるカウンタ値推移をしている。
このカウンタ値と累算器１１１で累算されている累算値の整数値が一致したときに、累算値の小数値によって選択された遅延クロックｃｌｋｄを生成クロックとして出力する。
カウンタ値と累算器１１１で累算されている累算値の整数値の一致判定は、加算器１１１３と比較器１１１４で実施する。
選択した遅延クロックｃｌｋｄの出力判定は、制御信号Ｃ４生成部１１１５出力の制御信号Ｃ４によって、クロック選択部１５０で実施する。
図２２において、上から下に向かう２本の矢印（同一線上にある２本の矢印）の組の各々が、制御信号Ｃ４のアサートタイミングに相当する。
そして、２本の矢印の組のうち上側の矢印が指し示している遅延クロックｃｌｋｄが累算値の小数値により選択された遅延クロックであり、下側の矢印が指し示している箇所が、生成クロックｃｌｋｃにおける遅延クロックｃｌｋｄの切り替わりのタイミングである。
クロック選択部１５０は、このように、制御信号Ｃ４のアサートタイミングにおいて入力している遅延クロックｃｌｋｄを選択して出力するとともに、出力した遅延クロックｃｌｋｄをフィードバックしＦＦ１５１で保持し、制御信号Ｃ４の次のアサートタイミングまでの期間は、フィードバックさせた遅延クロックｃｌｋｄを出力する。
【００６８】
以上のように、図１９に示す実施の形態３によるＤＬＬ回路においても、実施の形態１及び２と同様に、非常に広レンジかつ、高精度な生成クロックｃｌｋｃを生成可能であり、設計も容易で、小回路規模を実現できる。
【００６９】
なお、以上の説明では、可変遅延部１２０に入力するクロックは動作クロックの４分周クロックｃｌｋｓｄとしているが、これに限らない。
つまり、可変遅延部１２０に入力するクロックは、動作クロックと同じ周期であってもよいし、動作クロックよりも速い周期のクロックであってもよいし、遅い周期のクロックであってもよい。
また、動作クロックよりも速い周期のクロックを入力する場合にも、動作クロックの整数倍の周期のクロックでなくてもよい。
また、動作クロックよりも遅い周期のクロックを入力する場合にも、動作クロックの整数分の一の周期のクロックでなくてもよい。
【００７０】
このように、本実施の形態では、
外部から入力される動作クロックと前記動作クロックと周波数が異なるもしくは等しい入力クロックと所望の周波数を表す設定値から前記動作クロック周波数の（前記設定値の２倍）分の一の周波数を有する生成クロックを生成するクロック生成部と、
前記生成クロックと外部から入力される参照クロックの位相差を比較し、その位相差を出力する位相比較部と、
前記位相比較部の出力である位相差から、前記位相差を“０”とするように前記設定値へ補正をする補正値を生成し、前記設定値へ補正値を加算する補正部とを備えるＤＬＬ回路を説明した。
【００７１】
また、前記クロック生成部が、
動作クロックで動作し、外部から入力される設定値を動作クロック周期で累算することで、遅延量を制御する第１の制御信号（制御信号Ｃ１）と生成クロックのエッジ間隔を決める第４の制御信号（制御信号Ｃ４）を生成する累算部と、
外部から動作クロックと周波数が異なるもしくは等しい入力クロックを受け取り、前記累算部出力の前記第１の制御信号によって制御される遅延量を前記入力クロックに与えて遅延クロックを生成する可変遅延部と、
前記第４の制御信号によって前記遅延クロックを選択するかフィードバックした生成クロックを選択するかを決定するクロック選択部を有し、
動作クロック周波数の（前記設定値の２倍）分の一の周波数を有する生成クロックを生成可能であることを説明した。
【００７２】
また、外部から入力される設定値は、動作クロックの周波数と、（所望の周波数の２倍）の除算から算出され、整数と小数で表現できる実数であることを説明した。
【００７３】
また、前記クロック生成部を構成する前記可変遅延部は、
前記累算部の前記設定値の累算結果の小数部にあたる第１の制御信号を、内部に有する変換コードに従い、遅延量へ変換し、前記遅延量に相当する遅延を入力される前記倍速クロックもしくは前記パルス生成部のパルスへ与え、前記第２のクロックを出力することを説明した。
【００７４】
また、前記クロック生成部を構成する位相調整部は、
前記累算部出力の第１のクロックと、前記可変遅延部出力の第２のクロックもしくは前記遅延パルスを前記第２の制御信号のタイミングで論理和もしくは論理積もしくは排他的論理和をとることで前記第１のクロックの位相を調整することを説明した。
【００７５】
また、前記位相比較部のかわりに、前記生成クロックと前記参照クロックの周波数差を比較し、その周波数差を出力する周波数比較部を用いることが可能であることを説明した。
【００７６】
また、前記クロック生成部、前記位相比較部、前記補正部は論理回路で設計できることを説明した。
【００７７】
なお、本実施の形態に係るクロック生成部１００の動作を、累算部１１０の動作（累算ステップ）、可変遅延部１２０の動作（可変遅延ステップ）、クロック選択部１５０による動作（クロック選択ステップ）を含むクロック生成方法として捉えることもできる。
【００７８】
実施の形態４．
図２３は、実施の形態４によるＤＬＬ回路構成を示している。
図２３のＤＬＬ回路は、実施の形態１のクロック生成部１００のみで構成し、位相比較部２００、補正部３００を削除している。
以上の構成により、クロック生成部のみの設計でよいため、より設計が容易となり、かつ小回路規模となる。
【００７９】
実施の形態５．
図２４は、実施の形態５によるＤＬＬ回路構成を示している。
図２４のＤＬＬ回路は、実施の形態２のクロック生成部１００のみで構成し、周波数比較部４００、補正部３００を削除している。
以上の構成により、クロック生成部のみの設計でよいため、より設計が容易となり、かつ小回路規模となる。
【００８０】
実施の形態６．
図２５は、実施の形態６によるＤＬＬ回路構成を示している。図２５のＤＬＬ回路は、実施の形態３のクロック生成部１００のみで構成し、位相比較部２００、補正部３００を削除している。
以上の構成により、クロック生成部のみの設計でよいため、より設計が容易となり、かつ小回路規模となる。
【符号の説明】
【００８１】
１００  クロック生成部、１１０  累算部、１１１  累算器、１１２  検出部、１１３  基準クロックｃｌｋａ生成部、１１４  制御信号Ｃ１生成部、１１５  ダウンカウンタ、１１６  比較器、１１７  ダウンカウンタ、１１８  比較器、１２０  可変遅延部、１２１  遅延素子、１２２  セレクタ、１２３  変換部、１３０  位相調整部、１４０  パルス生成部、１５０  クロック選択部、１５１  ＦＦ、１５２  セレクタ、２００  位相比較部、３００  補正部、３１０  ビットシフト、３２０  乗算器、３３０  ビットシフト、３４０  ビットシフト、３５０  積分器、３６０  加算器、３７０  ビットシフト、４００  周波数比較部、４１１  カウンタ、４１２  カウント値取得部、４１３  セレクタ、４２１  カウンタ、４２２  カウント値取得部、４２３  セレクタ、４２４  カウント換算部、４３０  比較期間カウンタ、４４０  差分比較部、１１０１  小数値累算器、１１０２  フリップフロップ、１１０３  フリップフロップ、１１１２  カウンタ、１１１３  加算器、１１１４  比較器、１１１５  制御信号Ｃ４生成部。
【図１】
0005579099.tif 000002
【図２】
0005579099.tif 000003
【図３】
0005579099.tif 000004
【図４】
0005579099.tif 000005
【図５】
0005579099.tif 000006
【図６】
0005579099.tif 000007
【図７】
0005579099.tif 000008
【図８】
0005579099.tif 000009
【図９】
0005579099.tif 000010
【図１０】
0005579099.tif 000011
【図１１】
0005579099.tif 000012
【図１２】
0005579099.tif 000013
【図１３】
0005579099.tif 000014
【図１４】
0005579099.tif 000015
【図１５】
0005579099.tif 000016
【図１６】
0005579099.tif 000017
【図１７】
0005579099.tif 000018
【図１８】
0005579099.tif 000019
【図１９】
0005579099.tif 000020
【図２０】
0005579099.tif 000021
【図２１】
0005579099.tif 000022
【図２２】
0005579099.tif 000023
【図２３】
0005579099.tif 000024
【図２４】
0005579099.tif 000025
【図２５】
0005579099.tif 000026
【図２６】
0005579099.tif 000027