(57)【要約】【課題】周波数および位相が異なる複数のクロック信号において、出力中の第１のクロック信号を任意に選択された第２のクロック信号にハザードの発生を防止しながら切り替える。【解決手段】クロック信号ｃｌｋ＿ｉ（ｉ＝１，２，…，ｘ）、クロック信号の選択信号ｓｅｌ＿ｉ、および許可信号ｃｈｅｎをそれぞれ入力し、選択信号と許可信号に応じてクロック信号の供給と停止を制御する複数のユニット回路１０−１，１０−２，…，１０−ｘと、複数のユニット回路の出力状態をモニタし、第１のクロック信号の停止によって複数のユニット回路の全てがクロック信号の出力を停止したときに、第２のクロック信号の供給を開始することを許可する許可信号ｃｈｅｎを複数のユニット回路に付与するフィードバック回路３０と、を有している。【選択図】　図１
2004054350.tif 000002
【特許請求の範囲】
【請求項１】
第１および第２のクロック信号を含む複数のクロック信号を入力し、出力すべき１つのクロック信号を前記第１のクロック信号から前記第２のクロック信号に切り替えるクロック切り替え回路であって、
前記クロック信号、当該クロック信号の選択信号、および許可信号をそれぞれ入力し、前記選択信号と前記許可信号に応じて前記クロック信号の供給と停止を制御する複数のユニット回路と、
複数の前記ユニット回路の出力状態をモニタし、前記第１のクロック信号の停止によって複数の前記ユニット回路の全てがクロック信号の出力を停止したときに、前記第２のクロック信号の供給を開始することを許可する前記許可信号を複数の前記ユニット回路に付与するフィードバック回路と、
を有しているクロック切り替え回路。
【請求項２】
複数の前記ユニット回路のそれぞれが、
前記選択信号によって前記第１のクロック信号の停止が指示されたときに、前記出力状態のモニタに用いられるモニタ信号について、前記第１のクロック信号の供給状態を示す電圧レベルから停止状態を示す電圧レベルに変化させるタイミングを遅延させ、前記選択信号によって前記第２のクロック信号の供給開始が指示されたときに、当該第２のクロック信号の供給開始動作を、前記許可信号がアクティブとなる時を起点に遅延させる遅延部を、
含む請求項１に記載のクロック切り替え回路。
【請求項３】
複数の前記ユニット回路のそれぞれが、前記遅延部により動作タイミングが制御され、入力した前記クロック信号の出力を停止または開始するクロック出力ゲート部をさらに有し、
前記遅延部および前記クロック出力ゲート部が、入力した前記クロック信号に同期して動作する
請求項１に記載のクロック切り替え回路。
【請求項４】
複数の前記ユニット回路の全ての出力に接続され、複数の前記ユニット回路から出力される複数の前記クロック信号の何れか１つを出力する最終段の出力回路と、
複数の前記ユニット回路のそれぞれにおいて前記選択信号の入力段に設けられ、前記出力回路から出力されるクロック信号に同期して動作し、複数の前記ユニット回路の前記選択信号の位相を揃える複数の同期手段と、
をさらに有する請求項１に記載のクロック切り替え回路。
【請求項５】
前記遅延部が、入力した前記クロック信号に同期して動作し、
複数の前記ユニット回路のそれぞれにおいて前記遅延部の入力段に設けられ、入力した前記クロック信号に同期して動作する同期手段をさらに有している
請求項１に記載のクロック切り替え回路。
【請求項６】
複数の前記ユニット回路の全ての出力に接続され、複数の前記ユニット回路から出力される複数の前記クロック信号の何れか１つを出力する最終段の出力回路をさらに有し、
最終段の前記出力回路は、前記許可信号に応じて当該出力回路の出力側ノードを放電する放電手段を具備している
請求項１に記載のクロック切り替え回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のクロック信号の中から選択された第１のクロック信号を出力しているときに、入力される選択信号に応じて、出力すべきクロック信号を第１のクロック信号から第２のクロック信号に切り替えるクロック切り替え回路に関する。
【０００２】
【従来の技術】
ＬＳＩの消費電力は、ＬＳＩを動作させるクロック信号の周波数に比例する。そこで、ＬＳＩの負荷が軽いときには、より低い周波数のクロックに切り替える等、ＬＳＩの動作状態に応じてクロック周波数を切り替える方法が知られている。
【０００３】
図８に、クロックを切り替える方法における、一般的な動作タイミングチャートを示す。
周波数の異なる２つのクロック信号ｃｌｋ＿ｍ，ｃｌｋ＿ｎのうち一方を選択してＬＳＩに供給するクロック信号ｃｌｋｏｕｔを生成する。図８（Ａ）にクロック信号ｃｌｋ＿ｍの波形、図８（Ｂ）にクロック信号ｃｌｋ＿ｎの波形、図８（Ｅ）にクロック信号ｃｌｋｏｕｔの波形を示す。図８（Ｃ）および図８（Ｄ）に、クロック信号の選択信号の波形を示す。
選択信号ｓｅｌ＿ｍが“Ｈ”のときにクロック信号ｃｌｋ＿ｍが、選択信号ｓｅｌ＿ｎが“Ｈ”のときにクロック信号ｃｌｋ＿ｎが選択される。
クロック信号と選択信号の位相関係によっては、図８（Ｅ）に示すようにハザード１００が発生してしまう。ハザード１００が発生すると、ＬＳＩが誤動作することがあり、クロック切り替え回路にハザードの発生を防止する技術が必須となる。
【０００４】
特開２００１−１７７５１０号公報において記載された多相クロック生成回路は、入力データ信号の動作周波数と同一周波数となるように制御されるＰＬＬ構成となっている。このため同じ周波数で、位相差が一定で、位相の異なる複数のクロック信号が多相クロック生成回路から出力される。複数のクロック信号に同期した選択信号を生成させ、選択信号を選択制御回路内で複数のクロック信号でラッチさせてから、クロック信号を切り替えるためのセレクタに出力している。また、セレクタでは切り替える２つのクロック信号のレベルが合うタイミングでクロック信号の切り替えを行っている。その結果、上記公報に記載の技術において、任意の時刻においてハザードの発生しないクロック信号の切り替えを実現している。
【０００５】
【発明が解決しようとする課題】
ところが、上述した公報に記載された技術において、多相クロック生成回路内に、入力データ信号と同じ周波数の基準クロック信号を発生させる発振器が内蔵されており、この基準クロックを元に周波数が同一で位相が異なる複数のクロック信号を生成している。したがって、上記公報に記載されたクロック信号の切り替え方法は、複数のＰＬＬ回路から生成される複数のクロック信号のように周波数および位相が異なる複数のクロック信号に対して適用できない。
【０００６】
本発明の目的は、周波数および位相が異なる複数のクロック信号の中で出力中の第１のクッロク信号を、任意に選択された第２のクロック信号に、ハザードの発生を防止しながら切り替えるクロック切り替え回路を新たに提供することにある。
【０００７】
【課題を解決するための手段】
本発明に係るクロック切り替え回路は、上記目的を達成するためのものであり、第１および第２のクロック信号を含む複数のクロック信号を入力し、出力すべき１つのクロック信号を前記第１のクロック信号から前記第２のクロック信号に切り替えるクロック切り替え回路であって、前記クロック信号、当該クロック信号の選択信号、および許可信号をそれぞれ入力し、前記選択信号と前記許可信号に応じて前記クロック信号の供給と停止を制御する複数のユニット回路と、複数の前記ユニット回路の出力状態をモニタし、前記第１のクロック信号の停止によって複数の前記ユニット回路の全てがクロック信号の出力を停止したときに、前記第２のクロック信号の供給を開始することを許可する前記許可信号を複数の前記ユニット回路に付与するフィードバック回路と、を有している。
【０００８】
第１のクロック信号に対応したユニット回路に入力された選択信号に応じて、当該ユニット回路から第１のクロック信号が出力されているとする。このとき第２のクロック信号に対応した他のユニット回路からはクロック信号が出力されていない。次に、これら２つの選択信号の論理（電圧レベル）が共に逆転して、出力すべきクロック信号が第１のクロック信号から第２のクロック信号に切り替えることが指示される。第１のクロック信号を出力していたユニット回路が第１のクロック信号の出力を停止させる。フィードバック回路が第１のクロック信号の停止を検出し、許可信号を複数の前記ユニット回路に付与する。第２のクロック信号に対応したユニット回路は、許可信号の入力により第２のクロック信号の供給を開始する。
【０００９】
【発明の実施の形態】
本発明の実施形態は、複数のクロック信号の中から１つを選択するときに、選択されていたクロック信号を停止させ、全てのクロックが停止した状態を経てから、次に選択されるクロック信号の供給を開始することにより、ハザードのない出力クロックを生成するクロック切り替え回路に関する。
【００１０】
［第１の実施形態］
図１は、第１の実施形態におけるクロック切り替え回路のブロック図である。
図１に図解したクロック切り替え回路は、複数のクロック信号の中から１つを選択して出力するクロック選択回路１０を有する。クロック選択回路１０は、入力されるクロック信号数に応じた数の複数のユニット回路１０−１，１０−２，…，１０−ｘから構成されている。ユニット回路１０−１にクロック信号ｃｌｋ＿１と選択信号ｓｅｌ＿１が入力され、ユニット回路１０−２にクロック信号ｃｌｋ＿２と選択信号ｓｅｌ＿２が入力され、ユニット回路１０−ｘにクロック信号ｃｌｋ＿ｘと選択信号ｓｅｌ＿ｘが入力される。それぞれのユニット回路は、選択信号がアクティブのときに入力されているクロック信号を出力し、それ以外のときは、クロック信号の出力を停止させるクロック信号の供給と停止の制御回路である。
入力されるクロック信号ｃｌｋ＿１、ｃｌｋ＿２、…ｃｌｋ＿ｘは１つの基準クロック信号から異なる分周比率にて分周して生成されたクロック信号でも構わない。あるいは、複数の異なるＰＬＬ回路や発振器から独立して生成されたクロック信号でも構わない。つまり、クロック信号の位相と周波数が完全に揃っていない場合であってもよい。
１つのクロックが選択されるように、選択信号ｓｅｌ＿１、ｓｅｌ＿２、…ｓｅｌ＿ｘのうち１つの選択信号が“Ｈ”レベルとなり、その他の選択信号は“Ｌ”レベルとなる。
【００１１】
ユニット回路１０−１，１０−２，…，１０−ｘのクロック信号の出力端子全てが、出力回路２０の入力に接続されている。図１において、選択後のクロック信号を符号ｃｋｏｕｔ＿１，ｃｋｏｕｔ＿２，…，ｃｋｏｕｔ＿ｘで表記している。また、出力回路２０として、選択後のクロック信号ｃｋｏｕｔ＿１，ｃｋｏｕｔ＿２，…，ｃｋｏｕｔ＿ｘを入力し、入力信号の論理和として出力クロック信号ｃｌｋｏｕｔを出力するＯＲゲートが設けられている。
【００１２】
それぞれのユニット回路に、クロック供給の許可信号ｃｈｅｎの入力端子が設けられている。また、ユニット回路１０−１，１０−２，…，１０−ｘのクロック信号の出力側に、出力状態のモニタ端子がそれぞれ設けられている。
ユニット回路１０−１，１０−２，…，１０−ｘの、全てのモニタ端子と全ての許可信号の入力端子との間にフィードバック回路３０が設けられている。図１に図解したフィードバック回路３０は、ＮＯＲゲートである。フィードバック回路３０は、各ユニット回路１０−１，１０−２，…，１０−ｘの出力状態のモニタ信号ｃｋｅｎ＿１，ｃｋｅｎ＿２，…，ｃｋｅｎ＿ｘを入力し、全てのモニタ信号でクロック信号の出力が停止されていることが確認されたときに、前述したクロック供給の許可信号ｃｈｅｎを全てのユニット回路に一括して供給するための回路である。
【００１３】
各ユニット回路の構成は同じである。
図２に、ユニット回路の構成を、ユニット回路１０−ｘで代表して示す。
ユニット回路１０−ｘは、前述したように、クロック信号ｃｌｋ＿ｘと、クロック信号ｃｌｋ＿ｘの選択時にアクティブとなる選択信号ｓｅｌ＿ｘ、および、クロック供給の許可信号ｃｈｅｎを入力し、選択後のクロック信号ｃｋｏｕｔ＿ｘと、出力状態のモニタ信号ｃｋｅｎ＿ｘを出力する。
【００１４】
ユニット回路１０−ｘは、２つのフリップフロップ１１，１２、ラッチ１３、２つの２入力ＯＲゲート１５，１６、２つの２入力ＡＮＤゲート１４，１７から構成されている。
ＯＲゲート１５，１６の一方の入力端子同士が接続されている。ＯＲゲート１６の他方の入力端子にクロック供給の許可信号ｃｈｅｎが入力される。ＯＲゲート１６の出力端子がＡＮＤゲート１７の一方の入力端子に接続され、ＡＮＤゲート１７の他方の入力端子に選択信号ｓｅｌ＿ｘが入力される。ＡＮＤゲート１７の出力端子がフリップフロップ１１のＤ端子に接続され、フリップフロップ１１のＱ端子がフリップフロップ１２のＤ端子に接続されている。フリップフロップ１１のＱ端子とフリップフロップ１２のＤ端子との接続点が、ＯＲゲート１５と１６の共通接続された一方の入力端子と、ラッチ１３のＤ端子とに接続されている。フリップフロップ１２のＱ端子がＯＲゲート１５の他方の入力端子に接続され、ＯＲゲート１５の出力端子からモニタ信号ｃｋｅｎ＿ｘが出力される。ラッチ１３のＱ端子がＡＮＤゲート１４の一方の入力端子に接続されている。フリップフロップ１１と１２のクロック入力端子ＣＫ、ラッチ１３の反転Ｇ端子、および、ＡＮＤゲート１４の他方の入力端子に、クロック信号ｃｌｋ＿ｘが入力され、ＡＮＤゲート１４の出力端子から出力クロック信号ｃｋｏｕｔ＿ｘが出力される。
【００１５】
図２に図解したユニット回路１０−ｘは、大別すると、制御入力ゲート部１０ａ、遅延部１０ｂ、クロック出力ゲート部１０ｃからなる。
制御入力ゲート部１０ａは、クロック供給の許可信号ｃｈｅｎおよび選択信号ｓｅｌ＿ｘの入力を制御する部分であり、ＯＲゲート１６とＡＮＤゲート１７からなる。
遅延部１０ｂは、実際のクロック停止をクロック停止指示から少なくとも１クロック周期だけ遅延させ、実際のクロック供給開始をクロック供給許可から少なくとも１クロック周期だけ遅延させる部分であり、２つのフリップフロップ１１と１２、ＯＲゲート１５からなる。
クロック出力ゲート部１０ｃは、ラッチ１３とＡＮＤゲート１４からなる。クロック出力ゲート部１０ｃにおいて、フリップフロップ１１の出力を許可信号ｅｎｏｕｔとして、ラッチ１３とＡＮＤゲート１４によりラッチベースのクロックゲーティングが行われる。
【００１６】
遅延部１０ｂにおいて、クロック出力状態のモニタ信号ｃｋｅｎ＿ｘが、ＯＲゲート１５によって、フリップフロップ１１の出力とフリップフロップ１２の出力との論理和により生成される。ユニット回路１０−ｘに入力される選択信号ｓｅｌ＿ｘが選択状態を示すレベルから非選択状態を示すレベルになるとき、クロックゲーティングの許可信号ｅｎｏｕｔであるフリップフロップ１１の出力が“Ｌ”になってから、１クロック周期だけ遅れてモニタ信号ｃｋｅｎ＿ｘを“Ｌ”にする。これにより、クロック信号の停止指示を受けてから実際にクロック信号が停止するまでにおいて、少なくとも最後の１周期のクロック信号の持続を保証している。
制御入力ゲート部１０ａにおいて、ＯＲゲート１６によって、クロックゲーティングの許可信号ｅｎｏｕｔであるフリップフロップ１１の出力とクロック供給の許可信号ｃｈｅｎとの論理和が実行される。さらに、その論理和の結果と選択信号ｓｅｌ＿ｘとの論理積がＡＮＤゲート１７によって実行され、これにより、フリップフロップ１１の入力信号が生成される。
【００１７】
ここで、クロック信号ｃｌｋ＿ｘが選択状態にあり、選択信号ｓｅｌ＿ｘが“Ｈ”、フリップフロップ１１の入力信号が“Ｈ”であるとする。このとき、クロック信号ｃｌｋ＿ｘが選択状態から非選択状態になると、選択信号ｓｅｌ＿ｘが“Ｈ”から“Ｌ”に遷移して、フリップフロップ１１の入力信号が“Ｌ”に変化する。次のクロック信号ｃｌｋ＿ｘの立ち上がりによってフリップフロップ１１が動作し、その出力信号、すなわちクロック出力ゲート部１０ｃの許可信号ｅｎｏｕｔが“Ｌ”になる。その結果、次のクロックｃｌｋ＿ｘの立ち下がりによってクロック出力ゲート部１０ｃが閉じられ、クロックの供給が停止される。
【００１８】
反対に、最初にクロック信号ｃｌｋ＿ｘが非選択状態である場合、選択信号ｓｅｌ＿ｘが“Ｌ”であることからフリップフロップ１１の入力信号、出力信号がともに“Ｌ”である。よって、ＯＲゲート１６の一方の入力レベルが“Ｌ”であり、ＯＲゲート１６は、クロック供給の許可信号ｃｈｅｎが“Ｈ”になるまで待機している。選択信号ｓｅｌ＿ｘが“Ｈ”になり、クロック供給の許可信号ｃｈｅｎが“Ｈ”になると、フリップフロップ１１の入力信号が“Ｈ”に変化する。次のクロック信号ｃｌｋ＿ｘの立ち上がりによってフリップフロップ１１が動作し、その出力信号、すなわちクロック出力ゲート部１０ｃの許可信号ｅｎｏｕｔが“Ｈ”になる。その結果、次のクロックｃｌｋ＿ｘの立ち下がりによってクロック出力ゲート部１０ｃが開けられ、クロックの供給が開始される。
以上より、クロック信号の切り替え時に、クロック信号の停止と開始との間にクロック信号の供給線が“Ｌ”レベルで安定する期間が確保される。この期間内にクロック信号の実質的な切り替えが行われるため、ハザードの発生が防止される。
【００１９】
以下、クロック切り替え動作を、タイミングチャートを用いて更に詳細に説明する。
図３は、第１の実施形態におけるクロック切り替え動作のタイミングチャートである。図３においては、第１のクロック信号ｃｌｋ＿ｍ（１≦ｍ≦ｘ）から第２のクロック信号ｃｌｋ＿ｎ（１≦ｎ≦ｘ，ｎ≠ｍ）に切り替える動作時の信号波形の変化を示す。
【００２０】
第１のクロック信号ｃｌｋ＿ｍが選択状態のとき、図３（Ｃ）のように、選択信号ｓｅｌ＿ｍが“Ｈ”レベルである。このとき、クロック信号ｃｌｋ＿ｍに対応するユニット回路において、フリップフロップ１１の入力信号、出力信号がともに“Ｈ”、したがってクロック出力ゲート部１０ｃの許可信号ｅｎｏｕｔが“Ｈ”である。これにより、クロック信号ｃｌｋ＿ｍと同じ信号波形が、クロック出力ゲート部１０ｃからクロック信号ｃｌｋｏｕｔ＿ｍとして、出力回路２０から出力クロック信号ｃｌｋｏｕｔとして出力される（図３（Ｈ），（Ｊ））。
その一方で、第２のクロック信号ｃｌｋ＿ｎの選択信号ｓｅｌ＿ｎ（図３（Ｄ））を含めた他の全ての選択信号が“Ｌ”レベルである。したがって、クロック信号ｃｌｋ＿ｍに対応するユニット回路以外のユニット回路から出力される全てのクロック信号は、図３（Ｉ）に示すクロック信号ｃｌｋｏｕｔ＿ｎのように“Ｌ”レベルになっている。
各ユニット回路の出力状態を示すモニタ信号は、図３（Ｅ）に示すｃｋｅｎ＿ｍが“Ｈ”レベル、図３（Ｆ）に示すｃｋｅｎ＿ｎが“Ｌ”レベルであることから、フィードバック回路３０から出力されるクロック供給の許可信号ｃｈｅｎは、図３（Ｇ）のように“Ｌ”レベルをとる。
【００２１】
時刻Ｔ１においてクロック切り替えの要求があり、選択信号ｓｅｌ＿ｍが“Ｈ”から“Ｌ”に、選択信号ｓｅｌ＿ｎが“Ｌ”から“Ｈ”に、それぞれレベルが遷移したとする。
このとき、クロック信号ｃｌｋ＿ｍに対応したユニット回路１０−ｍにおいて、ＡＮＤゲート１７の働きでフリップフロップ１１の入力信号が“Ｈ”レベルから“Ｌ”レベルに遷移する。次のクロックパルスの立ち上がり時刻Ｔ２においてフリップフロップ１１の出力信号が“Ｌ”レベルになる。さらに、次のクロックパルスの立ち下がりタイミングで、クロック出力ゲート部１０ｃが閉じて、以後、クロック信号ｃｌｋ＿ｍの出力が停止される。その結果、図３（Ｈ），（Ｊ）のようにクロック信号ｃｌｋｏｕｔ＿ｍおよびｃｌｋｏｕｔの電圧レベルが“Ｌ”に推移し、維持される。
その一方で、クロック信号ｃｌｋ＿ｎの選択信号ｓｅｌ＿ｎ（図３（Ｄ））が“Ｌ”レベルから“Ｈ”レベルに推移するが、このときはクロック出力ゲート部１０ｃの許可信号ｅｎｏｕｔおよびクロック供給の許可信号ｃｈｅｎ（図３（Ｇ））がともに“Ｌ”レベルでＯＲゲート１６が動作しないためＡＮＤゲート１７も動作できない。したがって、クロック出力ゲートの許可信号ｅｎｏｕｔがアクティブにならず、図３（Ｉ）に示すように、この時点でクロック信号ｃｌｋｏｕｔ＿ｎがユニット回路１０−ｎから未だ出力されない。
【００２２】
クロック信号ｃｌｋ＿ｍの停止が指示されてから２クロック周期目になった時刻Ｔ３において、フリップフロップ１２の出力が“Ｌ”レベルになり、クロック信号ｃｌｋ＿ｍの停止が１クロック周期遅れて検出される。つまり、図３（Ｈ）に示すクロック信号ｃｌｋｏｕｔ＿ｍの最後の１サイクルが経過した後にＯＲゲート１５の出力、即ち出力状態のモニタ信号ｃｋｅｎ＿ｍが“Ｌ”レベルに遷移する。その結果、フィードバック回路（ＮＯＲゲート）３０の入力が全て“Ｌ”レベルとなり、その出力信号であるクロック供給の許可信号ｃｈｅｎが、図３（Ｇ）のように時刻Ｔ３を境に“Ｌ”レベルから“Ｈ”レベルに遷移する。
【００２３】
クロック供給の許可信号ｃｈｅｎが“Ｈ”になると、クロック信号ｃｌｋ＿ｎに対応したユニット回路１０−ｎにおいて、ＯＲゲート１６の出力が“Ｈ”レベルになり、フリップフロップ１１の入力信号が“Ｈ”レベルとなる。次のクロック信号ｃｌｋ＿ｎの立ち上がり時刻Ｔ４において、クロック出力ゲート部１０ｃの許可信号ｅｎｏｕｔであるフリップフロップ１１の出力信号が“Ｈ”レベルになる。これにより、図３（Ｆ），（Ｇ）に示すように、ＯＲゲート１５から出力されるモニタ信号ｃｋｅｎ＿ｎが“Ｈ”、クロック供給の許可信号ｃｈｅｎが“Ｌ”となる。
【００２４】
クロック信号ｃｌｋ＿ｎに対応したユニット回路１０−ｎにおいて、ＯＲゲート１６の一方の入力に印加されているクロック供給の許可信号ｃｈｅｎが“Ｌ”になる。ところが、クロック出力ゲート部１０ｃの許可信号ｅｎｏｕｔが“Ｈ”になっており、許可信号ｅｎｏｕｔがＯＲゲート１６の他の入力に印加されている。そのため、フリップフロップ１１の入力信号および出力信号がともに“Ｈ”レベルを維持する。
クロック信号ｃｌｋ＿ｎの次の立ち下りでクロック出力ゲート部１０ｃが開いて、以後、時刻Ｔ５を境にクロック信号ｃｌｋｏｕｔ＿ｎがユニット回路１０−ｎから出力される。
【００２５】
以上の結果、出力回路（ＯＲゲート）２０から出力されるクロック信号ｃｌｋｏｕｔにおいて、図３（Ｊ）に示すように、それまで選択状態であった第１のクロック信号ｃｌｋ＿ｍが時刻Ｔ３で完全に停止し、時刻Ｔ３からＴ５までは“Ｌ”レベルが維持され、時刻Ｔ５から第２のクロック信号ｃｌｋ＿ｎが現出する。
【００２６】
本実施形態におけるクロック切り替え方法においては、時刻Ｔ１でクロック切り替え指示があったとしても、直ぐにはクロック切り替え動作が行われない。時刻Ｔ１のクロック切り替え指示をトリガとして、クロック信号の停止と供給を遅延部１０ｂにより遅延させてクロック出力線の電位を“Ｌ”レベルで保障する時刻Ｔ３からＴ５の期間を創出している。
具体的には、時刻Ｔ２までクロック信号ｃｌｋ＿ｍの停止開始を遅延させ、時刻Ｔ３で全てのクロックが停止状態になったことがモニタされて始めて、クロック供給の許可信号ｃｈｅｎが“Ｈ”となる。許可信号ｃｈｅｎが“Ｈ”となると、それまで選択されていたが実際のクロック供給が禁止されていたクロック信号ｃｌｋ＿ｎの供給開始が指示される。クロック供給の許可信号ｃｈｅｎが“Ｈ”レベルである期間は、クロック出力ゲート部１０ｃが閉じた非アクティブ状態であり、クロック出力線が必ず“Ｌ”レベルで安定している。そのため、クロック切り替え時のハザードは発生しない。また、クロック供給の許可信号ｃｈｅｎが“Ｌ”レベルに遷移しても、その後、１クロック周期の“Ｌ”レベルを保証した上で、時刻Ｔ５にクロック信号ｃｌｋ＿ｎの供給が開始される。そのため、クロック信号ｃｌｋ＿ｎの供給期間が実際のクロック切り替え動作期間Ｔ３〜Ｔ４に重なることがない。
【００２７】
第１の実施形態におけるクロック切り替え回路によれば、複数のクロック信号とその選択信号が入力され、選択信号に応じて、出力すべきクロック信号を選択することができる。このため、複数のクロック信号のうち任意に第２のクロック信号ｃｌｋ＿ｎを選んで、出力されているクロック信号を第１のクロック信号ｃｌｋ＿ｍから第２のクロック信号ｃｌｋ＿ｎに切り替えることができる。このとき、非選択となった第１のクロック信号ｃｌｋ＿ｍの出力をクロック出力ゲート部１０ｃにより停止させることにより、出力クロック信号線が“Ｌ”レベルで安定した状態にてクロック信号の切り替え動作を実行できる。
このとき、クロック出力ゲート部１０ｃの許可信号ｅｎｏｕｔがアクティブになって、さらに１クロック周期遅れて出力状態のモニタ信号ｃｋｅｎ＿ｍを“Ｈ”から“Ｌ”にレベル遷移させる。このため、非選択となるクロック信号の停止時期を確実に予測することができる。
また、第２のクロック信号ｃｌｋ＿ｎの供給が、クロック切り替え動作から、少なくとも１クロック周期遅れて開始するため、同時に複数のクロック信号が選択状態になることがない。
以上より、切り替え時にクロック信号のパルスが印加されていることがなく、ハザードが発生しないため、誤動作が有効に防止されている。結果として、ＬＳＩの動作を破綻させることなくクロックを切り替えることができ、タスクの種類に応じて必要最小限の周波数のクロックに切り替え、ＬＳＩ全体の消費電力を低減させることが可能となる。
【００２８】
また、第１の実施形態におけるクロック切り替え回路は、個々のクロック信号に対応して同一のユニット回路を複数配置し、ユニット回路の出力状態をモニタする信号ｃｋｅｎ＿ｉ（ｉ＝１〜ｘ）を基にクロック供給の許可信号ｃｈｅｎを生成し、許可信号ｃｈｅｎとクロック信号の選択信号ｓｅｌ＿ｉからのクロック出力ゲートの許可信号ｅｎｏｕｔを生成する構成である。このため、クロックの数に合わせてユニット回路の数を変更するだけで容易に設計変更ができ、汎用性が高いクロック切り替え回路とすることができる。
【００２９】
［第２の実施形態］
図４は、第２の実施形態におけるクロック切り替え回路のブロック図である。図４に図解したクロック切り替え回路において、クロック選択回路１０のクロック入力側に同期回路４０が設けられている。他の構成は、第１の実施形態に関する図１と同じである。
【００３０】
同期回路４０は、クロック選択回路１０を構成するユニット回路１０−１〜１０−ｘごとに設けられた複数のフリップフロップ４１からなる。フリップフロップ４１のＤ端子に選択信号ｓｅｌ＿１〜ｓｅｌ＿ｘの何れかが印加され、フリップフロップ４１のＱ端子が、対応するユニット回路内のＡＮＤゲート１７の入力と接続されている。複数のフリップフロップ４１の全てのクロック入力端子ＣＫが、出力回路２０の出力線に接続されている。これによって、出力クロック信号ｃｌｋｏｕｔに同期して選択信号ｓｅｌ＿１〜ｓｅｌ＿ｘがクロック選択回路１０に取り込まれる。
【００３１】
ところで、図３（Ｃ）の場合に選択信号ｓｅｌ＿ｍが“Ｈ”レベルから“Ｌ”レベルに変化するタイミングの僅かなずれ（スキュー）によって、フリップフロップ１１のクロック入力とＤ端子への信号入力とが重なることがある。このような場合、メタステーブルが生じ、フリップフロップ１１の出力が不安定になることがある。ここで、メタステーブルとは、例えばクロック信号の周波数が高い場合に、フリップフロップがラッチ状態でも出力レベルが完全にローレベル“Ｌ”またはハイレベル“Ｈ”にならず、中間レベル“Ｍ”になることをいう。メタステーブルが発生すると、フリップフロップ１１の出力が不安定になり、これが誤動作の原因となりかねない。選択信号の同期をとる理由は、選択信号のスキューに起因した誤動作を防止するためである。
【００３２】
第２の実施形態では、このようなスキューおよびメタステーブルによる誤動作を防止するため、選択信号の同期用の複数のフリップフロップ４１を設けている。複数のフリップフロップ４１を出力クロック信号ｃｌｋｏｕｔに同期して動作させることにより、選択信号を一旦ラッチし同じタイミングでユニット回路に出力させる。これにより、選択されるクロック信号ｃｌｋ＿１，ｃｌｋ＿２，…，ｃｌｋ＿ｘの位相がずれていても、また動作周波数が極めて高い場合でも、さらに、任意の時刻に選択信号がレベル変化しても、クロック切り替え回路の動作の安定性を保証することができる。
【００３３】
［第３の実施形態］
図５に、第３の実施形態におけるユニット回路の構成を、ユニット回路１０−ｘで代表して示す。
図５に図解したユニット回路１０−ｘにおいて、ＡＮＤゲート１７とフリップフロップ１１との間に、新たに他のフリップフロップ１８が接続されている。その他の構成および接続関係は、図２に図解した第１実施形態におけるユニット回路と同じである。
【００３４】
フリップフロップ１８の役割がメタステーブルおよびスキューによる誤動作防止であるという点で、図４におけるフリップフロップ４１と同じである。但し、フリップフロップ１８は、対策を取る対象の信号が異なる点と、ＡＮＤゲート１７の後段に接続されている点で、フリップフロップ４１と異なる。
フィードバック回路３０から出力されるクロック供給の許可信号ｃｈｅｎが“Ｌ”レベルから“Ｈ”レベルに変化するタイミング（図３（Ｇ）、時刻Ｔ４）のずれ（スキュー）によって、メタステーブルが生じフリップフロップ１１の出力が不安定になり、次に時刻Ｔ５で供給されるべきクロック信号ｃｌｋ＿ｎの供給開始タイミングがずれることがあり得る。
第３実施形態においては、このようなスキューおよびメタステーブルによる誤動作を防止するため、クロック供給の許可信号ｃｈｅｎの同期用のフリップフロップ１８をユニット回路ごとに設けている。フリップフロップ１８を入力クロック信号、例えば図３（Ｂ）のｃｌｋ＿ｎに同期して動作させることにより、許可信号ｃｈｅｎを一旦ラッチし、次段のフリップフロップ１１と同期したタイミングで出力させる。これにより、フィードバック時に信号の位相がずれても、また動作周波数が極めて高い場合でも、クロック切り替え回路の動作の安定性を保証することができる。
なお、第３の実施形態における同期手段（フリップフロップ１８）の付加と、第２の実施形態における同期手段（フリップフロップ４１）の付加とを組み合わせると、さらに動作の安定性が増し、望ましい。
【００３５】
［第４の実施形態］
上述した第１〜第３の実施形態では、出力回路として多入力ＯＲゲート２０を用い、各ユニット回路からのクロック信号ｃｋｏｕｔ＿１〜ｃｋｏｕｔ＿ｘの論理和をとることにより最終の出力クロック信号ｃｌｋｏｕｔを生成していた。
第４の実施形態は、最終段の出力回路の代替に関する。
【００３６】
図６は、第４の実施形態における出力回路の回路図である。
図６に図解した出力回路は、トランスミッションゲートを用いたマルチプレクサ２１とバッファ２２とから構成される。マルチプレクサ２１は、それぞれ対応するユニット回路から出力されるクロック信号ｃｋｏｕｔ＿ｉ（ｉ＝１，２，…，ｘ）の伝達と遮断を制御するトランスミッションゲート２１ａを複数有している。トランスミッションゲート２１ａは、ソース同士、ドレイン同士を接続したＰＭＯＳトランジスタとＮＭＯＳトランジスタからなる。ＮＭＯＳトランジスタは、それぞれ対応するモニタ信号ｃｋｅｎ＿ｉにより制御され、ＰＭＯＳトランジスタは、モニタ信号ｃｋｅｎ＿ｉをインバータ２１ｂで反転した信号により制御される。複数のトランスミッションゲート２１ａの出力がバッファ２２の入力に接続され、バッファ２２の出力から出力クロック信号ｃｋｏｕｔが取り出される。
図６に図解した出力回路は、動作時に、複数のトランスミッションゲート２１ａのうち、モニタ信号ｃｋｅｎ＿ｉが“Ｈ”レベルとなった１つのトランスミッションゲートのみオンするので、クロック信号を高速に出力できる利点がある。
【００３７】
図７は、第４の実施形態における出力回路の他の構成例を示す回路図である。
図７に図解した出力回路においては、トランスミッションゲート２１ａの出力ノードと接地電位の供給線との間に放電手段２３、例えばクロック供給の許可信号ｃｈｅｎによりゲートが制御されるＮＭＯＳトランジスタを有している。その他の構成は、図６に図解した出力回路と同じである。
【００３８】
クロック切り替え動作時に、全てのトランスミッションゲート２１ａがオフするため、その期間のみバッファ２２の入力がハイインピーダンスとなる。その期間は限定的で短いため通常は問題とならないと考えられる。但し、短期間とはいえ出力ノードが電気的にフローティング状態となるのは、余り好ましいことではない。
そこで、図７に図解した出力回路では、クロック供給の許可信号ｃｈｅｎを用いることによって放電手段２３を短時間（図３においては、期間Ｔ３〜Ｔ４）だけオンさせるようにしている。これにより、クロック切り替え時にバッファ２２の入力ノードが接地電位に固定され、このノードにノイズが重畳するようなことがないため、出力電位が、より安定する。
【００３９】
【発明の効果】
本発明に係るクロック切り替え回路によれば、第１のクロック信号から第２のクロック信号に切り替える実際の動作時に、第１のクロック信号の出力が停止され、第２のクロック信号の供給開始も始まっていないクロックの出力停止期間が確実に確保される。このため、ハザードが生じることがなく誤動作が有効に防止されている。
【図面の簡単な説明】
【図１】第１の実施形態におけるクロック切り替え回路のブロック図である。
【図２】第１の実施形態におけるユニット回路の構成を示す回路図である。
【図３】第１の実施形態におけるクロック切り替え動作のタイミングチャートである。
【図４】第２の実施形態におけるクロック切り替え回路のブロック図である。
【図５】第３の実施形態におけるユニット回路の構成を示す回路図である。
【図６】第４の実施形態における出力回路の回路図である。
【図７】第４の実施形態における出力回路の他の構成例を示す回路図である。
【図８】クロックを切り替える方法における、一般的な動作のタイミングチャートである。
【符号の説明】
１０…クロック選択回路、１０−１〜１０−ｎ…ユニット回路、１０ａ…制御入力ゲート部、１０ｂ…遅延部、１０ｃ…クロック出力ゲート部、１１，１２…フリップフロップ、１３…ラッチ、１５，１６…ＯＲゲート、１４，１７…ＡＮＤゲート、１８…同期手段、２０…出力回路、２１ｂ…インバータ、２１ａ…トランスミッションゲート、２１…マルチプレクサ、２２…バッファ、２３…放電手段、３０…フィードバック回路、４０…同期回路、４１…同期手段
【図１】
2004054350.tif 000003
【図２】
2004054350.tif 000004
【図３】
2004054350.tif 000005
【図４】
2004054350.tif 000006
【図５】
2004054350.tif 000007
【図６】
2004054350.tif 000008
【図７】
2004054350.tif 000009
【図８】
2004054350.tif 000010