(57)【特許請求の範囲】
【請求項１】
Ｒ個（Ｒは整数）の入力クロックをカウントする毎に、リファレンスクロックを出力する第１の分周器と、
Ｆ個（Ｆは整数）の出力クロックをカウントする毎に、フィードバッククロックを出力する第２の分周器を含み、前記リファレンスクロックと前記フィードバッククロックとの位相誤差に基づいて前記出力クロックの周波数を制御することにより、前記リファレンスクロックに位相同期し、かつ、前記リファレンスクロックのＦ倍の周波数を有する出力クロックを生成するループ部と、
複数種類の入力クロックの中からクロック選択指令により指定された１種類の入力クロックを選択して前記第１の分周器に供給するクロック切り替え部と、
入力クロックを指定するクロック選択情報が切り替わるのに応じて、前記クロック切り替え部に対する前記クロック選択指令を切り替えるとともに、前記第１の分周器と前記第２の分周器を停止させ、前記第１の分周器に１個のリファレンスクロックを出力させるための入力クロックの個数Ｒと、前記第２の分周器に１個のフィードバッククロックを出力させるための出力クロックの個数Ｆのうちの少なくとも一方の設定を切り替え、切り替え後の設定個数Ｒに対応した入力クロックの前記第１の分周器によるカウント動作および切り替え後の設定個数Ｆに対応した出力クロックの前記第２の分周器によるカウント動作の両方を開始させる一連の動作を、前記クロック選択情報が切り替わった後、前記第１の分周器における入力クロックのカウント値または前記第２の分周器における出力クロックのカウント値が所定値になるのに応じて実行するタイミング制御部と
を具備することを特徴とするクロック発生回路。
【請求項２】
前記クロック切り替え部は、前記クロック選択指令の切り替わりから遅れて切り替え後のクロック選択指令により指定された入力クロックを出力するものであり、
前記タイミング制御部は、前記クロック切り替え部に対する前記クロック選択指令を切り替えるのに応じて、前記第１の分周器および前記第２の分周器を停止させ、前記クロック切り替え部が切り替え後のクロック選択指令により指定された入力クロックの出力を開始するのに合わせて、前記切り替え後の設定個数Ｒに対応した入力クロックのカウント動作および前記切り替え後の設定個数Ｆに対応した出力クロックのカウント動作を前記第１の分周器および前記第２の分周器に開始させることを特徴とする請求項１に記載のクロック発生回路。
【請求項３】
前記タイミング制御部は、前記クロック切り替え部に対する前記クロック選択指令を切り替えるのに応じて、前記第１の分周器を停止させた後、時間を空けて前記第２の分周器を停止させることを特徴とする請求項１または２に記載のクロック発生回路。
【請求項４】
前記タイミング制御部は、前記クロック選択情報の切り替わり後、前記第１の分周器がリファレンスクロックを出力するのに応じて、前記クロック切り替え部に対する前記クロック選択指令を切り替えることを特徴とする請求項１〜３のいずれか１の請求項に記載のクロック発生回路。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＰＬＬ（Phase Locked Loop；位相同期ループ）を利用したクロック発生回路に関する。
【背景技術】
【０００２】
ＰＬＬは、入力信号に位相同期したクロックを発生する回路であり、各種の分野において使用されている。図１１はＰＬＬの一般的な構成を示すブロック図である。図１１において、分周器１は、入力クロックＣＬＫＩを予め設定された分周比１／Ｒで分周することにより入力クロックＣＬＫＩの１／Ｒの周波数のリファレンスクロックＣＬＫＲＥＦをループ部２の位相比較器３に出力する。ループ部２は、この位相比較器３と、ループフィルタ４と、ＶＣＯ（Voltage Controlled Oscillator；電圧制御発振器）５と、分周器６とを図示のようにループ状に接続した回路である。ここで、位相比較器３は、リファレンスクロックＣＬＫＲＥＦと分周器６が出力するフィードバッククロックＣＬＫＦＢとの位相比較を行い、両クロックの位相誤差を示す位相誤差信号を出力する。ループフィルタ４は、この位相誤差信号の高域成分を除去し、周波数制御電圧として出力する。ＶＣＯ５は、周波数制御電圧に応じた周波数で発振し、出力クロックＣＬＫＯを発生する。分周器６は、この出力クロックＣＬＫＯを予め設定された分周比１／Ｆで分周することにより出力クロックＣＬＫＯの１／Ｆの周波数のフィードバッククロックＣＬＫＦＢを位相比較器３に出力する。
【０００３】
この構成によれば、リファレンスクロックＣＬＫＲＥＦの位相に対してフィードバッククロックＣＬＫＦＢの位相が遅れている場合には、その遅れ量を示す位相誤差信号が位相比較器３から出力される。これにより周波数制御電圧が上昇して出力クロックＣＬＫＯの周波数が上昇し、リファレンスクロックＣＬＫＲＥＦの位相に対してフィードバッククロックＣＬＫＦＢの位相を相対的に進めるフィードバック制御が行われる。一方、リファレンスクロックＣＬＫＲＥＦの位相に対してフィードバッククロックＣＬＫＦＢの位相が進んでいる場合には、その進み量を示す位相誤差信号が位相比較器３から出力される。これにより周波数制御電圧が低下して出力クロックＣＬＫＯの周波数が低下し、リファレンスクロックＣＬＫＲＥＦの位相に対してフィードバッククロックＣＬＫＦＢの位相を相対的に遅らせるフィードバック制御が行われる。このようなフィードバック制御が行われる結果、フィードバッククロックＣＬＫＦＢの位相がリファレンスクロックＣＬＫＲＥＦの位相に同期化され、入力クロックＣＬＫＩに位相同期し、かつ、入力クロックＣＬＫＩのＦ／Ｒ倍の周波数を有する出力クロックＣＬＫＯがＶＣＯ５から得られる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−１２６４１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述のようにＰＬＬは、出力クロックＣＬＫＯを生成するために、入力クロックＣＬＫＩの供給を受ける必要がある。ここで、入力クロックＣＬＫＩの発生源である装置が常時動作しており、入力クロックＣＬＫＩがＰＬＬに定常的に供給される場合には、ＰＬＬは、その入力クロックＣＬＫＩを用いて、ＰＬＬが設けられている装置のために出力クロックＣＬＫＯを発生することが可能である。しかしながら、システムによっては、特定の装置を常時動作させ、ＰＬＬに対して入力クロックＣＬＫＩを常時供給させることが困難な場合もある。そこで、入力クロックＣＬＫＩの供給元となる装置を複数定め（たとえば装置ＡおよびＢとする）、装置Ｂが動作を停止する場合には装置ＡからＰＬＬに例えば入力クロックＣＬＫＩ０を供給し、装置Ａが動作を停止する場合には装置ＢからＰＬＬに例えば入力クロックＣＬＫＩ１を供給するようにシステムを構成することが考えられる。このようなシステムによれば、ＰＬＬに対する入力クロックの供給を途絶えさせず、ＰＬＬの設けられた装置のためにＰＬＬが出力クロックＣＬＫＯを発生し続けることができる。しかしながら、装置Ａが出力する入力クロックＣＬＫＩ０の周波数と、装置Ｂが出力する入力クロックＣＬＫＩ１の周波数が異なっている場合がある。この場合、入力クロックの切り替え前後において同じ周波数の出力クロックＣＬＫＯをＰＬＬに発生させるためには、切り替え後の入力クロックの周波数に適合するように分周器１の分周比１／Ｒまたは分周器６の分周比１／Ｆを変更する必要がある。しかし、そのような分周比の変更を行ったとしても、入力クロックの切り替えを行うと、ＰＬＬが同期外れを起し、出力クロックＣＬＫＯの周波数が長期に亙って不安定になるという問題が発生する。
【０００６】
ここで、図１２を参照し、この問題について説明する。図１２には、分周器１における入力クロックＣＬＫＩのカウント値ＣＮＴ１と、リファレンスクロックＣＬＫＲＥＦの発生状況と、分周器６における出力クロックＣＬＫＯのカウント値ＣＮＴ６と、フィードバッククロックＣＬＫＦＢの発生状況が示されている。この例において、分周器１は、入力クロックＣＬＫＩのダウンカウントを行い、カウント値が「０」になると、カウント値をＲ−１に設定し、リファレンスクロックＣＬＫＲＥＦを発生するという動作を繰り返している。また、分周器６は、出力クロックＣＬＫＯのダウンカウントを行い、カウント値が「０」になると、カウント値をＦ−１に設定し、フィードバッククロックＣＬＫＦＢを発生するという動作を繰り返している。リファレンスクロックＣＬＫＲＥＦに対してフィードバッククロックＣＬＫＦＢが位相同期した状態では、分周器１のカウント値ＣＮＴ１の変化と分周器６のカウント値ＣＮＴ６の変化は同期している。
【０００７】
このような動作が行われているとき、入力クロックＣＬＫＩの切り替えを行うと、切り替え後の入力クロックの周波数が切り替え前よりも高くなる場合には、破線Ｌ１に示すように、カウント値ＣＮＴ１の時間勾配が急になり、フィードバッククロックＣＬＫＦＢの発生タイミングよりも早くリファレンスクロックＣＬＫＲＥＦが発生する。逆に切り替え後の入力クロックの周波数が切り替え前よりも低くなる場合には、破線Ｌ２に示すように、カウント値ＣＮＴ１の時間勾配が緩くなり、フィードバッククロックＣＬＫＦＢの発生タイミングよりも遅くリファレンスクロックＣＬＫＲＥＦが発生する。このようにフィードバッククロックＣＬＫＦＢに対して大きな位相差を持ったリファレンスクロックＣＬＫＲＥＦが位相比較器３に与えられると、大きな位相誤差信号が発生し、ＰＬＬが同期外れを起す。
【０００８】
この発明は、以上説明した事情に鑑みてなされたものであり、ＰＬＬを動作させた状態において、同期外れを起させることなく、入力クロックの切り替えおよびそれに伴う分周比の切り替えを行うことが可能なクロック発生回路を提供することを目的とする。
【課題を解決するための手段】
【０００９】
この発明は、Ｒ個（Ｒは整数）の入力クロックをカウントする毎に、リファレンスクロックを出力する第１の分周器と、Ｆ個（Ｆは整数）の出力クロックをカウントする毎に、フィードバッククロックを出力する第２の分周器を含み、前記リファレンスクロックと前記フィードバッククロックとの位相誤差に基づいて前記出力クロックの周波数を制御することにより、前記リファレンスクロックに位相同期し、かつ、前記リファレンスクロックのＦ倍の周波数を有する出力クロックを生成するループ部と、複数種類の入力クロックの中からクロック選択指令により指定された１種類の入力クロックを選択して前記第１の分周器に供給するクロック切り替え部と、入力クロックを指定するクロック選択情報が切り替わるのに応じて、前記クロック切り替え部に対する前記クロック選択指令を切り替えるとともに、前記第１の分周器に１個のリファレンスクロックを出力させるための入力クロックの個数Ｒと、前記第２の分周器に１個のフィードバッククロックを出力させるための出力クロックの個数Ｆのうちの少なくとも一方の設定を切り替え、切り替え後の設定個数Ｒに対応した入力クロックの前記第１の分周器によるカウント動作および切り替え後の設定個数Ｆに対応した出力クロックの前記第２の分周器によるカウント動作の両方を開始させるタイミング制御部とを具備することを特徴とするクロック発生回路を提供する。
【００１０】
かかる発明によれば、タイミング制御部は、入力クロックを指定するクロック選択情報が切り替わるのに応じて、クロック切り替え部に対するクロック選択指令を切り替えるとともに、第１の分周器に１個のリファレンスクロックを出力させるための入力クロックの個数Ｒと、第２の分周器に１個のフィードバッククロックを出力させるための出力クロックの個数Ｆのうちの少なくとも一方の設定を切り替える。そして、タイミング制御部は、切り替え後の設定個数Ｒに対応した入力クロックの第１の分周器によるカウント動作および切り替え後の設定個数Ｆに対応した出力クロックの第２の分周器によるカウント動作の両方を開始させる。ここで、入力クロックの切り替え後において、第１の分周器に与えられる入力クロックと第２の分周器に与えられる出力クロックは非同期であり、エッジが揃っていないが、第１および第２の分周器は、タイミング制御部による制御の下、切り替え後の入力クロックに対応した新たな分周比での分周動作をほぼ同時に開始し、その後、リファレンスクロックおよびフィードバッククロックをほぼ同じタイミングにおいて出力することとなる。従って、ループ部に同期外れが発生するのを防止することができる。
【００１１】
なお、特許文献１は、ＰＬＬの出力クロックの周波数を一定にするために、入力信号の周波数に応じて出力クロックを分周してフィードバッククロックを得る際の分周比を切り換える技術を開示している。しかし、この特許文献１は、本発明のように、ＰＬＬを動作させた状態において入力クロックの切り替えを行う技術に関するものではなく、入力クロックの切り替えに伴ってＰＬＬの動作が不安定になるのを防止するための手段を全く開示していない。
【図面の簡単な説明】
【００１２】
【図１】この発明の第１実施形態であるクロック発生回路の概略構成を示すブロック図である。
【図２】同クロック発生回路の詳細な構成を示す回路図である。
【図３】同クロック発生回路におけるクロック切り替え部の動作を示すタイムチャートである。
【図４】同クロック発生回路の概略動作を示すタイムチャートである。
【図５】同クロック発生回路の動作の詳細を示すタイムチャートである。
【図６】同クロック発生回路におけるクロック切り替え開始時付近の詳細な動作およびクロック切り替え完了時付近の詳細な動作を示すタイムチャートである。
【図７】同クロック発生回路におけるクロック切り替え開始時付近の詳細な動作およびクロック切り替え完了時付近の詳細な動作を示すタイムチャートである。
【図８】この発明の第２実施形態であるクロック発生回路の構成を示す回路図である。
【図９】同クロック発生回路の概略動作を示すタイムチャートである。
【図１０】同クロック発生回路におけるクロック切り替え開始時付近の詳細な動作およびクロック切り替え完了時付近の詳細な動作を示すタイムチャートである。
【図１１】一般的なＰＬＬの構成を示すブロック図である。
【図１２】同ＰＬＬにおいて入力クロックの切り替えを行った場合に生じる問題点を説明するタイムチャートである。
【発明を実施するための形態】
【００１３】
以下、図面を参照し、この発明の一実施形態について説明する。
＜第１実施形態＞
図１はこの発明の第１実施形態であるクロック発生回路の構成を示すブロック図である。図１において、分周器１およびループ部２からなる部分の回路構成は、前掲図１１に示されたものと基本的に同様である。
【００１４】
本実施形態によるクロック発生回路の特徴は、この分周器１およびループ部２からなる回路に対して付加されたクロック切り替え部７とタイミング制御部８にある。クロック切り替え部７には、周波数の異なった２種類の入力クロックＣＬＫＩ０およびＣＬＫＩ１が与えられる。クロック切り替え回路７は、タイミング制御部８から与えられるクロック選択指令ＳＥＬＣＫに従って、入力クロックＣＬＫＩ０およびＣＬＫＩ１の一方を選択し、入力クロックＣＬＫＩとして分周器１に供給する回路である。タイミング制御部８は、上位装置からクロック選択情報ＳＥＬが与えられるに応じて、クロック切り替え部７に対するクロック選択指令ＳＥＬＣＫを発生するとともに、分周器１および６の動作を制御する回路である。
【００１５】
さらに詳述すると、このタイミング制御部８は、入力クロックＣＬＫＩ０の周波数をｆｉ０、入力クロックＣＬＫＩ１の周波数をｆｉ１、ＶＣＯ５の出力クロックＣＬＫＯの周波数をｆｏとした場合に、出力クロックＣＬＫＯの周波数ｆｏを変化させることなく下記式（１）および（２）を各々満足することができる分周比データＲＡおよびＦＡの組と、分周比データＲＢおよびＦＢの組を記憶している。
ｆｉ０／（ＲＡ＋１）＝ｆｏ／（ＦＡ＋１）              ……（１）
ｆｉ１／（ＲＢ＋１）＝ｆｏ／（ＦＢ＋１）              ……（２）
【００１６】
そして、タイミング制御部８は、入力クロックＣＬＫＩ０の選択を指令するクロック選択指令ＳＥＬＣＫを出力する場合には、入力クロックＣＬＫＩ０に適した分周比データＲＡおよびＦＡを分周器１および６に各々設定し、入力クロックＣＬＫＩ１の選択を指令するクロック選択指令ＳＥＬＣＫを出力する場合には、入力クロックＣＬＫＩ１に適した分周比データＲＢおよびＦＢを分周器１および６に各々設定する制御を行う。その際にタイミング制御部８は、ループ部２が同期外れを起さないように、入力クロックＣＬＫＩの切り替え動作開始時に、分周器１および６をリセットして停止させるとともに、切り替え後の入力クロックＣＬＫＩに適した各分周比を分周器１および６に設定し、入力クロックＣＬＫＩの切り替え完了後、分周器１および６の分周動作を同時に開始させる制御を行う。この制御が行われることにより、入力クロックＣＬＫＩの切り替え完了後、リファレンスクロックＣＬＫＲＥＦおよびフィードバッククロックＣＬＫＦＢが同相で位相比較器３に供給されるので、ループ部２の同期外れの発生を防止することができる。
【００１７】
図２は本実施形態によるクロック発生回路の詳細な構成を示す回路図である。まず、クロック切り替え部７について説明する。クロック切り替え部７には、入力クロックＣＬＫＩ０およびＣＬＫＩ１と、タイミング制御部８が発生するクロック選択指令ＳＥＬＣＫが与えられる。フリップフロップ７０１および７０２は、入力クロックＣＬＫＩ１の立ち上がりエッジに同期してクロック選択指令ＳＥＬＣＫを順次シフトする。フリップフロップ７０３および７０４は、入力クロックＣＬＫＩ０の立ち上がりエッジに同期してフリップフロップ７０２の出力信号Ｓ０１を順次シフトする。ＡＮＤゲート７０５は、フリップフロップ７０４の出力信号Ｓ０２およびクロック選択指令ＳＥＬＣＫの両方が“０”の場合に出力信号Ｓ０３を“１”とし、それ以外の場合には出力信号Ｓ０３を“０”とする。フリップフロップ７０６は、入力クロックＣＬＫＩ０の立ち下がりエッジに同期してＡＮＤゲート７０５の出力信号Ｓ０３を取り込んで出力する。ＡＮＤゲート７０７は、フリップフロップ７０６の出力信号Ｓ０４が“１”である場合に入力クロックＣＬＫＩ０を通過させ、それ以外の場合には“０”を出力する。
【００１８】
一方、フリップフロップ７１１および７１２は、入力クロックＣＬＫＩ０の立ち上がりエッジに同期してクロック選択指令ＳＥＬＣＫを順次シフトする。フリップフロップ７１３および７１４は、入力クロックＣＬＫＩ１の立ち上がりエッジに同期してフリップフロップ７１２の出力信号Ｓ１１を順次シフトする。ＡＮＤゲート７１５は、フリップフロップ７１４の出力信号Ｓ１２およびクロック選択指令ＳＥＬＣＫの両方が“１”の場合に出力信号Ｓ１３を“１”とし、それ以外の場合には出力信号Ｓ１３を“０”とする。フリップフロップ７１６は、入力クロックＣＬＫＩ１の立ち下がりエッジに同期してＡＮＤゲート７１５の出力信号Ｓ１３を取り込んで出力する。ＡＮＤゲート７１７は、フリップフロップ７１６の出力信号Ｓ１４が“１”である場合に入力クロックＣＬＫＩ１を通過させ、それ以外の場合には“０”を出力する。ＯＲゲート７２０は、入力クロックＣＬＫＩ０がＡＮＤゲート７０７を通過する場合にはその入力クロックＣＬＫＩ０を入力クロックＣＬＫＩとして出力し、入力クロックＣＬＫＩ１がＡＮＤゲート７１７を通過する場合にはその入力クロックＣＬＫＩ１を入力クロックＣＬＫＩとして出力する。以上がクロック切り替え部７の構成である。
【００１９】
このクロック切り替え部７の機能の概略は次の通りである。まず、クロック選択指令ＳＥＬＣＫが“０”となった場合、クロック切り替え部７では、最終的にＡＮＤゲート７０５の出力信号Ｓ０３およびフリップフロップ７０６の出力信号Ｓ０４が“１”、ＡＮＤゲート７１５の出力信号Ｓ１３およびフリップフロップ７１６の出力信号Ｓ１４が”０”となり、入力クロックＣＬＫＩ０がＡＮＤゲート７０７およびＯＲゲート７２０を通過し、入力クロックＣＬＫＩとして出力される。また、クロック選択指令ＳＥＬＣＫが“１”となった場合、クロック切り替え部７では、最終的にＡＮＤゲート７０５の出力信号Ｓ０３およびフリップフロップ７０６の出力信号Ｓ０４が“０”、ＡＮＤゲート７１５の出力信号Ｓ１３およびフリップフロップ７１６の出力信号Ｓ１４が”１”となり、入力クロックＣＬＫＩ１がＡＮＤゲート７１７およびＯＲゲート７２０を通過し、入力クロックＣＬＫＩとして出力される。なお、クロック切り替え部７の各部の詳細な動作については後述する。
【００２０】
次に分周器１および６について説明する。分周器１は、ダウンカウンタ１ａとフリップフロップ１ｂとにより構成されている。ここで、ダウンカウンタ１ａは、クロック切り替え部７からの入力クロックＣＬＫＩの立ち上がりエッジに同期してカウント値ＣＮＴ１を１ずつ減算し、カウント値ＣＮＴ１が「０」になった場合には、その後の入力クロックＣＬＫＩの立ち上がりエッジに同期して分周比データＤＩＶＲをカウント値ＣＮＴ１として取り込む、という動作を繰り返すカウンタである。また、このダウンカウンタ１ａは、リセット端子Ｒに与えられるリセット信号Ｒ１が“１”になったとき、その後の入力クロックＣＬＫＩの立ち上がりエッジに同期してカウント値ＣＮＴ１を「０」にリセットする。また、ダウンカウンタ１ａは、カウント値ＣＮＴ１が「０」である期間、カウント終了信号ＯＶＲを“１”とし、カウント値ＣＮＴ１が「０」以外の値である期間、カウント終了信号ＯＶＲを“０”にする。フリップフロップ１ｂは、ダウンカウンタ１ａが出力するカウント終了信号ＯＶＲを入力クロックＣＬＫＩの立ち上がりエッジに同期して取り込み、リファレンスクロックＣＬＫＲＥＦとして位相比較器３に出力する。
【００２１】
分周器６は、ダウンカウンタ６ａとフリップフロップ６ｂとにより構成されている。ここで、ダウンカウンタ６ａは、ＶＣＯ５からの出力クロックＣＬＫＯの立ち上がりエッジに同期してカウント値ＣＮＴ６を１ずつ減算し、カウント値ＣＮＴ６が「０」になった場合には、その後の出力クロックＣＬＫＯの立ち上がりエッジに同期して分周比データＤＩＶＦをカウント値ＣＮＴ６として取り込む、という動作を繰り返すカウンタである。また、このダウンカウンタ６ａは、リセット端子Ｒに与えられるリセット信号Ｒ６が“１”になったとき、その後の出力クロックＣＬＫＯの立ち上がりエッジに同期してカウント値ＣＮＴ６を「０」にリセットする。また、ダウンカウンタ６ａは、カウント値ＣＮＴ６が「０」である期間、カウント終了信号ＯＶＦを“１”とし、カウント値ＣＮＴ６が「０」以外の値である期間、カウント終了信号ＯＶＦを“０”にする。フリップフロップ６ｂは、ダウンカウンタ６ａが出力するカウント終了信号ＯＶＦを出力クロックＣＬＫＯの立ち上がりエッジに同期して取り込み、フィードバッククロックＣＬＫＦＢとして位相比較器３に出力する。
【００２２】
次にタイミング制御部８について説明する。フリップフロップ８０１〜８０３は、上位装置から与えられるクロック選択情報ＳＥＬに基づいてクロック選択指令ＳＥＬＣＫを発生する回路を構成している。まず、フリップフロップ８０１および８０２は、クロック選択情報ＳＥＬを入力クロックＣＬＫＩの立ち上がりエッジに同期して順次シフトし、信号ＳＥＬＤとして出力する。そして、フリップフロップ８０３は、イネーブル端子ＥＮに与えられるリファレンスクロックＣＬＫＲＥＦが“１”である期間、入力クロックＣＬＫＩの立ち上がりエッジに同期してフリップフロップ８０２の出力信号ＳＥＬＤを取り込み、クロック選択指令ＳＥＬＣＫとして出力する。上述したクロック切り替え部７では、このクロック選択指令ＳＥＬＣＫに基づいて入力クロックの選択が行われる。
【００２３】
ＡＮＤ８１１およびフリップフロップ８１２は、現在、入力クロックＣＬＫＩとして出力されているものが入力クロックＣＬＫＩ０またはＣＬＫＩ１のいずれであるかを示すクロック判定信号ＤＳＥＬＣＫを出力する回路を構成している。ここで、ＡＮＤゲート８１１は、クロック切り替え部７のＡＮＤゲート７０５の出力信号Ｓ０３が“０”、ＡＮＤゲート７１５の出力信号Ｓ１３が“１”の場合に“１”を出力し、それ以外の場合に“０”を出力する。そして、フリップフロップ８１２は、このＡＮＤゲート８１１の出力信号を入力クロックＣＬＫＩの立ち上がりエッジに同期して取り込み、クロック判定信号ＤＳＥＬＣＫとして出力する。このクロック判定信号ＤＳＥＬＣＫは、クロック選択指令ＳＥＬＣＫが“０”から“１”に切り替わった後、入力クロックＣＬＫＩ１を入力クロックＣＬＫＩとして出力する動作が開始されるときに“０”から“１”になる。また、クロック判定信号ＤＳＥＬＣＫは、クロック選択指令ＳＥＬＣＫが“１”から“０”に切り替わった後、入力クロックＣＬＫＩ０を入力クロックＣＬＫＩとして出力する動作が開始されるときに“１”から“０”になる。なお、このクロック判定信号ＤＳＥＬＣＫを発生する動作の詳細については後述する。
【００２４】
不一致検出部８２１およびＡＮＤゲート８２２は、クロック選択情報ＳＥＬが切り替わった後、分周器１がリファレンスクロックＣＬＫＲＥＦを発生した場合に、このリファレンスクロックＣＬＫＲＥＦをリセット信号Ｒ１として分周器１に供給する回路を構成している。さらに詳述すると、不一致検出部８２１は、フリップフロップ８０２の出力信号ＳＥＬＤとクロック判定信号ＤＳＥＬＣＫとが一致しているときは不一致検出信号ＮＥ１を“０”とし、不一致の場合は不一致検出信号ＮＥ１を“１”とする。そして、ＡＮＤゲート８２２は、不一致検出信号ＮＥ１が“１”である期間に発生するリファレンスクロックＣＬＫＲＥＦをリセット信号Ｒ１として分周器１のダウンカウンタ１ａに供給する。
【００２５】
マルチプレクサ８２３は、クロック選択指令ＳＥＬＣＫが“０”である場合には入力クロックＣＬＫＩ０に対応した分周比データＲＡを選択し、“１”である場合には入力クロックＣＬＫＩ１に対応した分周比データＲＢを選択し、ダウンカウンタ１ａに分周比データＤＩＶＲとして供給する。
【００２６】
不一致検出部８３１、フリップフロップ８３２および８３３は、クロック選択指令ＳＥＬＣＫが変化してからクロック選択指令ＳＥＬＣＫにより指定された入力クロックＣＬＫＩ０またはＣＬＫＩ１が入力クロックＣＬＫＩとして出力され始めるまでの期間、分周器６を停止させる回路を構成している。さらに詳述すると、不一致検出部８３１は、クロック選択指令ＳＥＬＣＫとクロック判定回路ＤＳＥＬＣＫとが一致している場合は不一致検出信号ＮＥ２を“０”とし、不一致の場合は“１”とする。フリップフロップ８３２および８３３は、不一致検出信号ＮＥ２を出力クロックＣＬＫＯの立ち上がりエッジに同期して順次シフトし、リセット信号Ｒ６としてダウンカウンタ６ａおよびフリップフロップ６ｂに出力する。
【００２７】
マルチプレクサ８３４は、クロック選択指令ＳＥＬＣＫが“０”である場合には入力クロックＣＬＫＩ０に対応した分周比データＦＡを選択し、“１”である場合には入力クロックＣＬＫＩ１に対応した分周比データＦＢを選択し、ダウンカウンタ６ａに分周比データＤＩＶＦとして供給する。
以上が本実施形態によるクロック発生回路の構成の詳細である。
【００２８】
次に本実施形態の動作を説明する。図３はクロック切り替え部７のクロック切り替え動作の詳細を示すタイムチャートである。図３に示す例では、初期状態において、ＳＥＬＣＫ＝“０”、Ｓ０１＝“０”、Ｓ０２＝“０”、Ｓ０３＝“１”、Ｓ０４＝“１”、Ｓ１１＝“０”、Ｓ１２＝“０”、Ｓ１３＝“０”、Ｓ１４＝“０”となっている。この場合、入力クロックＣＬＫＩ０がＡＮＤゲート７０７およびＯＲゲート７３０を通過し、入力クロックＣＬＫＩとなって出力される。
【００２９】
次にクロック選択指令ＳＥＬＣＫが入力クロックＣＬＫＩ＝ＣＬＫＩ０の立ち上がりエッジに同期して“０”から“１”に立ち上がると（時刻ｔ１）、ＡＮＤゲート７０５の出力信号Ｓ０３が“０”になり、その後の入力クロックＣＬＫＩ０の立ち下がりエッジによりこの信号Ｓ０３がフリップフロップ７０６に書き込まれ、フリップフロップ７０６の出力信号Ｓ０４が“０”になる（時刻ｔ２）。これによりＡＮＤゲート７０７は入力クロックＣＬＫＩ０の通過を阻止し、入力クロックＣＬＫＩが停止する。その後、クロック選択指令ＳＥＬＣＫ＝“１”は、入力クロックＣＬＫＩ１の立ち上がりエッジに同期してフリップフロップ７０１および７０２を順次通過し、フリップフロップ７０２の出力信号Ｓ０１が“１”となり（時刻ｔ３）、この信号Ｓ０１＝“１”は、入力クロックＣＬＫＩ０の立ち上がりエッジに同期してフリップフロップ７０３および７０４を順次通過し、フリップフロップ７０４の出力信号Ｓ０２が“１”となる（時刻ｔ４）。
【００３０】
一方、クロック選択指令ＳＥＬＣＫ=“１”は、入力クロックＣＬＫＩ０の立ち上がりエッジに同期してフリップフロップ７１１および７１２を順次通過し、フリップフロップ７１２の出力信号Ｓ１１が“１”となり（時刻ｔ１１）、この信号Ｓ１１＝“１”は、入力クロックＣＬＫＩ１の立ち上がりエッジに同期してフリップフロップ７１３および７１４を順次通過し、フリップフロップ７１４の出力信号Ｓ１２が“１”となる（時刻ｔ１２）。この結果、ＡＮＤゲート７１５の出力信号Ｓ１３が“１”となる。この信号Ｓ１３＝“１”が入力クロックＣＬＫＩ１の立ち下がりエッジによりフリップフロップ７１６に書き込まれ、フリップフロップ７１６の出力信号Ｓ１４が“１”になる（時刻ｔ１３）。この結果、フリップフロップ７１６の出力信号Ｓ１４を“１”に立ち上げた入力クロックＣＬＫＩ１の立ち下がりエッジの次の立ち上がりエッジから入力クロックＣＬＫＩ１がＡＮＤゲート７１７を通過し、入力クロックＣＬＫＩとして出力される（時刻ｔ１４）。
【００３１】
このようにして、入力クロックＣＬＫＩの停止後、入力クロックＣＬＫＩ１の最初の立ち上がりエッジがＯＲゲート７２０から出力されるとき、Ｓ０３＝“０”、Ｓ１３＝“１”となっていることからＡＮＤゲート８１１の出力信号が“１”となっている。この結果、信号“１”が同入力クロックＣＬＫＩ１の最初の立ち上がりエッジによりフリップフロップ８１２に書き込まれる。このため、フリップフロップ８１２が出力するクロック判定信号ＤＳＥＬＣＫは、クロック選択指令ＳＥＬＣＫ＝“１”により指定された入力クロックＣＬＫＩ１のＯＲゲート７２０からの出力が開始されるとき、“０”から“１”に立ち上がる。
【００３２】
次にクロック選択指令ＳＥＬＣＫが入力クロックＣＬＫＩ＝ＣＬＫＩ１の立ち上がりエッジに同期して“１”から“０”に立ち下がると（時刻ｔ５）、ＡＮＤゲート７１５の出力信号Ｓ１３が“０”になり、この信号Ｓ１３がその後の入力クロックＣＬＫＩ１の立ち下がりエッジによりフリップフロップ７１６に書き込まれ、フリップフロップ７１６の出力信号Ｓ１４が“０”になる（時刻ｔ６）。これによりＡＮＤゲート７１７は入力クロックＣＬＫＩ１の通過を阻止し、入力クロックＣＬＫＩが停止する。その後、クロック選択指令ＳＥＬＣＫ＝“０”は、入力クロックＣＬＫＩ０の立ち上がりエッジに同期してフリップフロップ７１１および７１２を順次通過し、フリップフロップ７１２の出力信号Ｓ１１が“０”となり（時刻ｔ７）、この信号Ｓ１１＝“０”は、入力クロックＣＬＫＩ１の立ち上がりエッジに同期してフリップフロップ７１３および７１４を順次通過し、フリップフロップ７１４の出力信号Ｓ１２が“０”となる（時刻ｔ８）。
【００３３】
一方、クロック選択指令ＳＥＬＣＫ=“０”は、入力クロックＣＬＫＩ１の立ち上がりエッジに同期してフリップフロップ７０１および７０２を順次通過し、フリップフロップ７０２の出力信号Ｓ０１が“０”となり（時刻ｔ１５）、この信号Ｓ０１＝“０”は、入力クロックＣＬＫＩ０の立ち上がりエッジに同期してフリップフロップ７０３および７０４を順次通過し、フリップフロップ７０４の出力信号Ｓ０２が“０”となる（時刻ｔ１６）。この結果、ＡＮＤゲート７０５の出力信号Ｓ０３が“１”となる。この信号Ｓ０３＝“１”が入力クロックＣＬＫＩ０の立ち下がりエッジによりフリップフロップ７０６に書き込まれ、フリップフロップ７０６の出力信号Ｓ０４が“１”になる（時刻ｔ１７）。この結果、フリップフロップ７０６の出力信号Ｓ０４を“１”に立ち上げた入力クロックＣＬＫＩ０の立ち下がりエッジの次の立ち上がりエッジから入力クロックＣＬＫＩ０がＡＮＤゲート７０７を通過し、入力クロックＣＬＫＩとして出力される（時刻ｔ１８）。
【００３４】
このようにして、入力クロックＣＬＫＩの停止後、入力クロックＣＬＫＩ０の最初の立ち上がりエッジがＯＲゲート７２０から出力されるとき、Ｓ０３＝“１”、Ｓ１３＝“０”となっていることからＡＮＤゲート８１１の出力信号が“０”となっている。この結果、信号“０”が同入力クロックＣＬＫＩ０の最初の立ち上がりエッジによりフリップフロップ８１２に書き込まれる。このため、フリップフロップ８１２が出力するクロック判定信号ＤＳＥＬＣＫは、クロック選択指令ＳＥＬＣＫ＝“０”により指定された入力クロックＣＬＫＩ０のＯＲゲート７２０からの出力が開始されるとき、“１”から“０”に立ち下がる。
【００３５】
以上がクロック切り替え部７のクロック切り替え動作の詳細である。このクロック切り替え部７によれば、入力クロックＣＬＫＩ０およびＣＬＫＩ１の周波数が大きく異なる状況においても、ＯＲゲート７２０から得られる入力クロックＣＬＫＩの波形にグリッチを生じさせることなくクロック切り替えを行うことができる。
【００３６】
次に本実施形態によるクロック発生回路の全体としての動作を説明する。図４は本実施形態によるクロック発生回路の概略動作を示すタイムチャートである。この図４には分周器１におけるダウンカウンタ１ａのカウント値ＣＮＴ１と、分周器６におけるダウンカウンタ６ａのカウント値ＣＮＴ６と、リファレンスクロックＣＬＫＲＥＦおよびフィードバッククロックＣＬＫＦＢの発生状況と、タイミング制御部８によって行われる制御の内容が示されている。
【００３７】
図示の例では、分周器１による入力クロックＣＬＫＩのダウンカウントが行われている期間内にクロック選択情報ＳＥＬが切り替えられている。本実施形態では、このクロック選択情報ＳＥＬの切り替え後、分周器１のダウンカウンタ１ａのカウント値ＣＮＴ１が「０」になると、リファレンスクロックＣＬＫＲＥＦが出力される。ここで、リファレンスクロックＣＬＫＲＥＦとフィードバッククロックＣＬＫＦＢとが位相同期している状況では、リファレンスクロックＣＬＫＲＥＦが出力されるとき、その近傍のタイミングにおいてフィードバッククロックＣＬＫＦＢが出力される。
【００３８】
そして、タイミング制御部８は、クロック選択情報ＳＥＬの切り替え後、リファレンスクロックＣＬＫＲＥＦが出力されたとき、クロック選択指令ＳＥＬＣＫをクロック選択情報ＳＥＬに応じて切り替えて、クロック選択情報ＳＥＬに基づく入力クロックの切り替えをクロック切り替え部７に開始させる。そして、タイミング制御部８は、入力クロックの切り替えが行われる間、分周器１および６をリセットしてカウント値ＣＮＴ１およびＣＮＴ６を「０」とし、分周器１および６のカウント動作を停止させる。
【００３９】
そして、クロック切り替え部７によるクロック切り替え動作が完了し、クロック選択指令ＳＥＬＣＫにより指示された入力クロックＣＬＫＩ０またはＣＬＫＩ１のクロック切り替え部７からの出力が開始されるのに合わせて、タイミング制御部８は、新たな入力クロックに対応した分周比でのダウンカウントを分周器１および６に開始させる。このようにして分周器１および６が新たな分周比に対応したダウンカウントを開始するとき、分周器１および６はリファレンスクロックＣＬＫＲＥＦおよびフィードバッククロックＣＬＫＦＢを出力する。以後、分周器１は、新たな分周比に対応した個数だけ入力クロックＣＬＫＩをダウンカウントする毎にリファレンスクロックＣＬＫＲＥＦを出力し、分周器６は、新たな分周比に対応した個数だけ出力クロックＣＬＫＯをダウンカウントする毎にフィードバッククロックＣＬＫＦＢを出力する。この場合、分周器１および６は、切り替え後の入力クロックＣＬＫＩに対応した新たな分周比に基づく分周動作をほぼ同時に開始しているので、ほぼ位相の合ったリファレンスクロックＣＬＫＲＥＦおよびフィードバッククロックＣＬＫＦＢを各々出力することとなる。
【００４０】
図５は以上述べたクロック発生回路の動作を詳細に示すタイムチャートである。また、図６および図７は、図５においてクロック切り替えの動作が開始される時刻ｔ２４付近の動作の詳細およびクロック切り替えの動作が完了する時刻ｔ２５付近の動作の詳細を示すタイムチャートである。図示の例では、初期状態においてＳＥＬ＝“０”、ＳＥＬＣＫ＝“０”、ＤＳＥＬＣＫ=“０”となっており、入力クロックＣＬＫＩ０が入力クロックＣＬＫＩとして出力され、分周器１ではこの入力クロックＣＬＫＩ＝ＣＬＫＩ０のダウンカウントが行われている。そして、クロック選択情報ＳＥＬが“０”から“１”に立ち上がると（時刻ｔ２１）、このクロック選択情報ＳＥＬ＝“１”が入力クロックＣＬＫＩ＝ＣＬＫＩ０の立ち上がりエッジに同期して、フリップフロップ８０１および８０２を順次通過し、フリップフロップ８０２の出力信号ＳＥＬＤが“１”となる。この結果、不一致検出部８２１は不一致検出信号ＮＥ１を“０”から“１”に立ち上げる（時刻ｔ２２）。
【００４１】
その後、分周器１のダウンカウンタ１ａのカウント値ＣＮＴ１が「０」になると、図６に示すように、カウント終了信号ＯＶＲが“１”となって、この信号ＯＶＲ＝“１”が次の入力クロックＣＬＫＩ＝ＣＬＫＩ０の立ち上がりエッジによりフリップフロップ１ｂに書き込まれる。この結果、フリップフロップ１ｂは、リファレンスクロックＣＬＫＲＥＦを“０”から“１”に立ち上げる（時刻ｔ２３）。このとき、ダウンカウンタ１ａは、その時点においてマルチプレクサ８２３が出力している分周比データＲＡを入力クロックＣＬＫＩ＝ＣＬＫＩ０の立ち上がりエッジによりカウント値ＣＮＴ１として取り込み、カウント終了信号ＯＶＲを“０”にする。また、リファレンスクロックＣＬＫＲＥＦが“１”になることによりＡＮＤゲート８２２はリセット信号Ｒ１を“１”にする。
【００４２】
そして、リファレンスクロックＣＬＫＲＥＦが“１”になった後、入力クロックＣＬＫＩ＝ＣＬＫＩ０が立ち上がると、この立ち上がりエッジにより、フリップフロップ８０２の出力信号ＳＥＬＤ＝“１”がフリップフロップ８０３に書き込まれ、クロック選択指令ＳＥＬＣＫが“０”から“１”になる（時刻ｔ２４）。これによりクロック切り替え部７では、入力クロックＣＬＫＩを入力クロックＣＬＫＩ０から入力クロックＣＬＫＩ１に切り替えるための動作が開始され、暫くの間、入力クロックＣＬＫＩの出力が途絶える。また、リファレンスクロックＣＬＫＲＥＦが“１”になった後の入力クロックＣＬＫＩ＝ＣＬＫＩ０の立ち上がりにより、その時点においてダウンカウンタ１ａが出力しているカウント終了信号ＯＶＲ＝“０”がフリップフロップ１ｂに書き込まれてリファレンスクロックＣＬＫＲＥＦが“０”となり、その時点においてリセット信号Ｒ１＝“１”が与えられているダウンカウンタ１ａがリセットされ、ダウンカウンタ１ａのカウント値ＣＮＴ１が「０」、カウント終了信号ＯＶＲが“１”となる。以後、入力クロックＣＬＫＩが途絶えるため、ダウンカウンタ１ａはカウント値ＣＮＴ１＝「０」、カウント終了信号ＯＶＲ＝“１”を維持し、フリップフロップ１ｂはリファレンスクロックＣＬＫＲＥＦを“０”に維持する（以上、図６左側参照）。
【００４３】
リファレンスクロックＣＬＫＲＥＦとフィードバッククロックＣＬＫＦＢが位相同期した状態では、以上のようにして分周器１がリファレンスクロックＣＬＫＲＥＦを出力するのとほぼ同じ時刻に分周器６がフィードバッククロックＣＬＫＦＢを出力する（図５の時刻ｔ２３付近を参照）。
【００４４】
一方、不一致検出部８３１は、クロック選択指令ＳＥＬＣＫが“０”から“１”になったとき（時刻ｔ２４）、図７に示すように、不一致検出信号ＮＥ２を“１”に立ち上げる。この不一致検出信号ＮＥ２＝“１”は、出力クロックＣＬＫ０の立ち上がりエッジに同期し、フリップフロップ８３２および８３３を順次通過し、リセット信号Ｒ６としてダウンカウンタ６ａおよびフリップフロップ６ｂに供給される。そして、リセット信号Ｒ６が“１”になった後、出力クロックＣＬＫＯが立ち上がると、ダウンカウンタ６ａおよびフリップフロップ６ｂがリセットされ、ダウンカウンタ６ａのカウント値ＣＮＴ６は「０」、カウント終了信号ＯＶＦは“１”、フィードバッククロックＣＬＫＦＢは“０”となる。ここで、フリップフロップ８３２および８３３は、入力クロックＣＬＫＩに同期して変化する不一致検出信号ＮＥ２を出力クロックＣＬＫＯに同期化させる役割を果たすとともに、分周器６がリファレンスクロックＣＬＫＲＥＦとほぼ同時刻にフィードバッククロックＣＬＫＦＢを出力した後にリセット信号Ｒ６＝“１”がダウンカウンタ６ａおよびフリップフロップ６ｂに供給されるように、リセット信号Ｒ６＝“１”の供給を僅かに遅延させる役割を果たす。
【００４５】
以後、不一致検出信号ＮＥ２が“１”である間、ダウンカウンタ６ａおよびフリップフロップ６ｂにはリセット信号Ｒ６＝“１”が供給されるため、ＣＮＴ６＝「０」、ＯＶＦ＝“１”、ＣＬＫＦＢ＝“０”の状態が維持される（以上、図７左側参照）。
【００４６】
その後、クロック切り替え部７がクロック切り替え動作を完了し、クロック選択指令ＳＥＬＣＫ＝“１”により指定された入力クロックＣＬＫＩ１を入力クロックＣＬＫＩとして出力する動作を開始すると（時刻ｔ２５）、図６に示すように、切り替え後の最初の入力クロックＣＬＫＩ＝ＣＬＫＩ１の立ち上がりエッジにより、ダウンカウンタ１ａの出力しているカウント終了信号ＯＶＲ＝“１”がフリップフロップ１ｂに書き込まれ、リファレンスクロックＣＬＫＲＥＦが“１”になる。また、最初の入力クロックＣＬＫＩ＝ＣＬＫＩ１の立ち上がりエッジの発生時、ＳＥＬＣＫ＝“１”であることから、マルチプレクサ８２３は、入力クロックＣＬＫＩ１に対応した分周比データＲＢを出力している。このため、ダウンカウンタ１ａは、最初の入力クロックＣＬＫＩ＝ＣＬＫＩ１の立ち上がりエッジにより分周比データＲＢを取り込んでカウント値ＣＮＴ１とし、カウント終了信号ＯＶＲを“０”とする。
【００４７】
次にクロック切り替え後、２番目の入力クロックＣＬＫＩ＝ＣＬＫＩ１がクロック切り替え部７から出力されると、この入力クロックＣＬＫＩ＝ＣＬＫＩ１の立ち上がりエッジにより、ダウンカウンタ１ａの出力しているカウント終了信号ＯＶＲ＝“０”がフリップフロップ１ｂに書き込まれ、リファレンスクロックＣＬＫＲＥＦが“０”になる。また、２番目の入力クロックＣＬＫＩ＝ＣＬＫＩ１の立ち上がりエッジにより、ダウンカウンタ１ａは、カウント値ＣＮＴ１をＲＢ−１とする。以後、分周器１は、入力クロックＣＬＫＩ＝ＣＬＫＩ１のダウンカウントを行う。そして、カウント値ＣＮＴ１が「０」になると、リファレンスクロックＣＬＫＲＥＦを発生し、分周比データＲＢを取り込んでカウント値ＣＮＴ１とし、再び入力クロックＣＬＫＩ＝ＣＬＫＩ１のダウンカウントを行うという動作を繰り返す（以上、図６右側参照）。
【００４８】
一方、入力クロックＣＬＫＩ１を入力クロックＣＬＫＩとして出力する動作が開始され（時刻ｔ２５）、不一致検出信号ＮＥ２が“０”になると、図７に示すように、その後の出力クロックＣＬＫＯの２番目の立ち上がりエッジに同期してリセット信号Ｒ６が“０”になる。そして、リセット信号Ｒ６が“０”になると、その後の出力クロックＣＬＫＯの立ち上がり時、分周器６では、ダウンカウンタ６ａの出力するカウント終了信号ＯＶＦ＝“１”がフリップフロップ１０６ｂに書き込まれ、フィードバッククロックＣＬＫＦＢが“１”になる。また、同出力クロックＣＬＫＯの立ち上がり時、その時点におけるクロック選択指令ＳＥＬＣＫが“１”であることから、マルチプレクサ８３４は、入力クロックＣＬＫＩ１に対応した分周比データＦＢを出力している。このため、同出力クロックＣＬＫＯの立ち上がりにより、ダウンカウント６ｂは、分周比データＦＢを取り込んでカウント値ＣＮＴ６とし、カウント終了信号ＯＶＦを“０”とする。
【００４９】
その後、後続の出力クロックＣＬＫＯが発生すると、分周器６では、ダウンカウンタ６ａの出力するカウント終了信号ＯＶＦ＝“０”がフリップフロップ１０６ｂに書き込まれ、フィードバッククロックＣＬＫＦＢが“０”になる。また、同出力クロックＣＬＫＯの立ち上がりにより、ダウンカウント６ｂは、カウント値ＣＮＴ６をＦＢ−１とする。以後、分周器６は、出力クロックＣＬＫＯのダウンカウントを行う。そして、カウント値ＣＮＴ６が「０」になると、フィードバッククロックＣＬＫＦＢを発生し、分周比データＦＢを取り込んでカウント値ＣＮＴ６とし、再び出力クロックＣＬＫＯのダウンカウントを行うという動作を繰り返す（以上、図７右側参照）。
【００５０】
以上、クロック選択情報ＳＥＬが“０”から“１”に切り替えられる場合の動作を説明したが、“１”から“０”に切り替えられる場合の動作も同様である（図５右側参照）。
【００５１】
以上説明したように、本実施形態によれば、クロック選択情報ＳＥＬの切り替わり後、リファレンスクロックＣＬＫＲＥＦが出力されたとき、クロック切り替え部７によるクロック切り替え動作を開始させるとともに、このクロック切り替えが行われる間、分周器１および６を停止させ、クロック切り替えが完了してクロック選択情報ＳＥＬにより指定された入力クロックＣＬＫＩ０またはＣＬＫＩ１の出力が開始されるのに合わせて、切り替え後の新たな入力クロックに対応した分周比での分周動作（ダウンカウント）を分周器１および６に開始させている。従って、入力クロックの切り替え後、リファレンスクロックＣＬＫＲＥＦおよびフィードバッククロックＣＬＫＦＢの発生タイミングをほぼ一致させるころができ、ループ部２に同期外れが発生するのを防止することができる。
【００５２】
＜第２実施形態＞
図８はこの発明の第２実施形態であるクロック発生回路の構成を示す回路図である。また、図９は本実施形態の動作の概略を示すタイムチャートである。図１０は本実施形態の各部の波形を示すタイムチャートである。上記第１実施形態では、クロック選択情報ＳＥＬが切り替えられた場合に、その後、分周器１における入力クロックＣＬＫＩのカウント値ＣＮＴ１が「０」となってリファレンスクロックＣＬＫＲＥＦが出力されたとき、クロック選択指令ＳＥＬＣＫをクロック選択情報ＳＥＬに合わせて切り替えた。これに対し、本実施形態では、図９に示すように、例えば分周器１が分周比データＲＡに基づく分周動作を行っている期間にクロック選択情報ＳＥＬが“０”から“１”に切り替えられた場合、そのクロック選択情報ＳＥＬの切り替わり後、分周器１における入力クロックＣＬＫＩのカウント値ＣＮＴ１が分周比データＲＡと「０」の中間の値の切り替え基準データＭＩＤＡ（例えばＭＩＤＡ＝ＲＡ／２）になったのに応じて、クロック選択指令ＳＥＬＣＫをクロック選択情報ＳＥＬに合わせて切り替える。
【００５３】
このようなクロック選択指令ＳＥＬＣＫの切り替えを実現するため、本実施形態によるクロック発生回路のタイミング制御部８Ａには、図８に示すように、マルチプレクサ８２４と、一致検出部８２５と、フリップフロップ８２６が設けられている。
【００５４】
ここで、マルチプレクサ８２４は、クロック判定信号ＤＳＥＬＣＫが“０”である場合（すなわち、現在、入力クロックＣＬＫＩ０がクロック切り替え部７から出力されている場合）には、入力クロックＣＬＫＩ０の分周動作に対応して設定された切り替え基準データＭＩＤＡ（例えばＭＩＤＡ＝ＲＡ／２）を出力し、クロック判定信号ＤＳＥＬＣＫが“１”である場合（すなわち、現在、入力クロックＣＬＫＩ１がクロック切り替え部７から出力されている場合）には、入力クロックＣＬＫＩ１の分周動作に対応して設定された切り替え基準データＭＩＤＢ（例えばＭＩＤＢ＝ＲＢ／２）を出力する。一致検出部８２５は、分周器１のダウンカウンタ１ａのカウント値ＣＮＴ１がマルチプレクサ８２４の出力データと一致している場合は“１”を、不一致の場合は“０”を出力する。フリップフロップ８２６は、この一致検出部８２６は、この一致検出部８２５の出力信号を入力クロックＣＬＫＩの立ち上がりエッジにより取り込み、信号ＳＥＬＥとしてフリップフロップ８０３のイネーブル端子ＥＮに供給する。
【００５５】
この構成によれば、図１０に示すように、クロック選択情報ＳＥＬが“０”から“１”になった後、分周器１のカウント値ＣＮＴ１が切り替え基準データＭＩＤＡと一致した場合に、その直後の入力クロックＣＬＫＩの立ち上がりエッジにより信号ＳＥＬＥおよびリセット信号Ｒ１が“１”となり、２番目の入力クロックＣＬＫＩの立ち上がりエッジによりダウンカウンタ１ａがリセットされ、カウント値ＣＮＴ１が「０」、カウント終了信号ＯＶＲが“１”となる。また、２番目の入力クロックＣＬＫＩの立ち上がりエッジによりクロック選択指令ＳＥＬＣＫが“０”から“１”に切り替わり、クロック切り替え部７では入力クロックＣＬＫＩを入力クロックＣＬＫＩ０から入力クロックＣＬＫＩ１に切り替えるための動作が開始される。この間、入力クロック信号ＣＬＫＩの出力が途絶えるため、分周器１では、ＣＮＴ１＝「０」、ＯＶＲ＝“１”の状態が維持される。
【００５６】
その後、クロック切り替え部７によるクロック切り替え動作が完了し、クロック切り替え後の最初の入力クロックＣＬＫＩ＝ＣＬＫＩ１が出力されると、分周器１のフリップフロップ１ｂは、この入力クロックＣＬＫＩの立ち上がりエッジに同期して、その時点におけるカウント終了信号ＯＶＲ＝“１”を取り込み、リファレンスクロックＣＬＫＲＥＦとして出力する。また、分周器１におけるダウンカウンタ１ａは、同入力クロックＣＬＫＩの立ち上がりエッジに同期して、分周比データＲＢを取り込んでカウント値ＣＮＴ１をＲＢとし、カウント終了信号ＯＶＲを“０”にする。一方、クロック切り替え後の最初の入力クロックＣＬＫＩ＝ＣＬＫＩ１が出力されるとき、クロック判定信号ＤＳＥＬＣＫが“０”から“１”に切り替わり、不一致検出信号ＮＥ１が“０”となる。
【００５７】
次にクロック切り替え後の２番目の入力クロックＣＬＫＩが出力されると、カウント終了信号ＯＶＲを“０”がフリップフロップ１ａに書き込まれて、リファレンスクロックＣＬＫＲＥＦが“０”となり、ダウンカウンタ１ａでは、カウント値ＣＮＴ１がＲＢ−１とされる。以後、ダウンカウンタ１ａでは入力クロックＣＬＫＩのダウンカウントが行われる。そして、カウント値ＣＮＴ１が「０」になる毎に、リファレンスクロックＣＬＫＲＥＦの発生と、分周比データＲＢをカウント値ＣＮＴ１とする動作が繰り返される。
他の動作は上記第１実施形態と同様である。
本実施形態においても上記第１実施形態と同様な効果が得られる。
【００５８】
＜他の実施形態＞
以上、この発明の第１および第２実施形態を説明したが、この発明には、他にも各種の実施形態が考えられる。例えば次の通りである。
【００５９】
（１）上記各実施形態では、クロック切り替え部７は、２種類の入力クロックの中の１種類の入力クロックを選択して出力するようにしたが、３種類以上の入力クロックの中の１種類の入力クロックを選択して出力するクロック切り替え部を採用してもよい。
【００６０】
（２)上記各実施形態では、クロック選択情報ＳＥＬの切り替わり後、分周器１のカウント値が所定値になるのに応じて、クロック選択指令ＳＥＬＣＫを切り替えたが、クロック選択情報ＳＥＬの切り替わり後、分周器６のカウント値が所定値になるのに応じて、クロック選択指令ＳＥＬＣＫの切り替えを行ってもよい。
【００６１】
（３）上記各実施形態では、入力クロックＣＬＫＩの切り替え前後において出力クロックＣＬＫＯの周波数が同じになるように、分周比データＲＡ、ＲＢ、ＦＡ、ＦＢを決定したが、そのような分周比データＲＡ、ＲＢ、ＦＡ、ＦＢを決定するのが難しく、リファレンスクロックＣＬＫＲＥＦおよびフィードバッククロックＣＬＫＦＢの位相差が大きくなるおそれがないのであれば、出力クロックＣＬＫＯの周波数が変化するように分周比データを設定してもよい。
【００６２】
（４）上記各実施形態では、クロック選択情報ＳＥＬの切り替わり後、クロック切り替え部７に対するクロック選択指令ＳＥＬＣＫを切り替えるとともに、分周器１に１個のリファレンスクロックを出力させるための入力クロックの個数Ｒ（＝ＤＩＶＲ＋１）と、分周器６に１個のフィードバッククロックを出力させるための出力クロックの個数Ｆ（＝ＤＩＶＦ＋１）の設定を切り替え、クロック切り替え部７が切り替え後のクロック選択指令ＳＥＬＣＫにより指定された入力クロックの出力を開始したことを示すクロック判定信号ＤＳＥＬＣＫが発生したときに、切り替え後の新たな設定個数に対応したカウント動作を分周器１および６に開始させた。しかし、切り替え後の新たな設定個数に対応したカウント動作を分周器１および６に開始させる契機として、クロック判定信号ＤＳＥＬＣＫの変化以外のものを採用してもよい。例えばクロック選択指令ＳＥＬＣＫの切り替えがあると、その後、必ず信号が変化するようなノードをクロック発生回路が含む場合に、そのようなノードの信号変化を、切り替え後の新たな設定個数に対応したカウント動作を分周器１および６に開始させる契機として採用してもよい。この契機となる信号は、上記各実施形態におけるクロック判定信号ＤＳＥＬＣＫである必要はなく、例えばクロック選択指令ＳＥＬＣＫを所定時間遅延させた信号であってもよい。
【符号の説明】
【００６３】
７……クロック切り替え部、８，８Ａ……タイミング制御部、１，６……分周器、２……ループ部、３……位相比較器、４……ループフィルタ、５……ＶＣＯ、７０１〜７０４，７１１〜７１４，７０６，７１６，８０１，８０２，８０３，８１２，８２６，８３２，８３３，１ｂ，６ｂ……フリップフロップ、７０５，７１５，７０７，７１７，８１２，８２２……ＡＮＤゲート、７２０……ＯＲゲート、８２３，８２４，８３４……マルチプレクサ、８２１，８３１……不一致検出部、１ａ，６ａ……ダウンカウンタ、８２５……一致検出部。
【図１】
0005598161.tif 000002
【図２】
0005598161.tif 000003
【図３】
0005598161.tif 000004
【図４】
0005598161.tif 000005
【図５】
0005598161.tif 000006
【図６】
0005598161.tif 000007
【図７】
0005598161.tif 000008
【図８】
0005598161.tif 000009
【図９】
0005598161.tif 000010
【図１０】
0005598161.tif 000011
【図１１】
0005598161.tif 000012
【図１２】
0005598161.tif 000013