(57)【要約】【課題】  入力クロック信号の周波数比に関係なく、クロック切り替え時における出力クロック信号のハザード発生を防止することが可能なクロック切り替え回路を提供する。【解決手段】  第１の入力クロック信号ＣＬＫＩＮ＿Ａから第２の入力クロック信号ＣＬＫＩＮ＿Ｂに出力を切り替える際には、選択信号ＳＥＬの反転信号ｎＳＥＬを第１の入力クロック信号ＣＬＫＩＮ＿Ａに応答して取り込む第１のフリップフロップ群１０からの出力信号に基づいて、第１の入力クロック信号の出力禁止期間が開始される。これに対して、第１のフリップフロップ群１０からの出力信号を、第２の入力クロック信号ＣＬＫＩＮ＿Ｂに応答してさらに取り込む第４のフリップフロップ群４０からの出力信号に基づいて、第２の入力クロック信号ＣＬＫＩＮ＿Ｂの出力禁止期間が終了される。【選択図】  図１
2005191877.tif 000002
【特許請求の範囲】
【請求項１】
互いに周波数の異なる複数の入力クロック信号を切り替えて出力するクロック切り替え回路において、
第１の入力クロック信号を選択するための選択信号の反転信号を、前記第１の入力クロック信号に応答して動作する１つ以上のフリップフロップで取り込む第１のフリップフロップ群と、
前記選択信号を、第２の入力クロック信号に応答して動作する１つ以上のフリップフロップで取り込む第２のフリップフロップ群と、
前記第２のフリップフロップ群からの出力信号を、前記第１の入力クロック信号に応答して動作する１つ以上のフリップフロップで取り込む第３のフリップフロップ群と、
前記第１のフリップフロップ群からの出力信号を、前記第２の入力クロック信号に応答して動作する１つ以上のフリップフロップで取り込む第４のフリップフロップ群と、
前記第１および第２の入力クロック信号のうち、前記選択信号により非選択とされた信号の出力を禁止する出力回路と、
を有し、
前記出力回路は、前記第１および第３のフリップフロップ群からの各出力信号を基に、前記第１の入力クロック信号の非選択時における前記第１の入力クロック信号の出力禁止期間の開始タイミングおよび終了タイミングをそれぞれ決定し、前記第２および第４のフリップフロップ群からの各出力信号を基に、前記第２の入力クロック信号の非選択時における前記第２の入力クロック信号の出力禁止期間の開始タイミングおよび終了タイミングをそれぞれ決定することを特徴とするクロック切り替え回路。
【請求項２】
前記第１のフリップフロップ群は、ともに前記第１の入力クロック信号に応答して動作し、前記選択信号の反転信号を取り込む第１のフリップフロップ、および前記第１のフリップフロップからの出力信号を取り込む第２のフリップフロップを具備し、
前記第２のフリップフロップ群は、ともに前記第２の入力クロック信号に応答して動作し、前記選択信号を取り込む第３のフリップフロップ、および前記第３のフリップフロップからの出力信号を取り込む第４のフリップフロップを具備し、
前記第３のフリップフロップ群は、ともに前記第１の入力クロック信号に応答して動作し、前記第４のフリップフロップからの出力信号を取り込む第５のフリップフロップ、および前記第５のフリップフロップからの出力信号を取り込む第６のフリップフロップを具備し、
前記第４のフリップフロップ群は、ともに前記第２の入力クロック信号に応答して動作し、前記第２のフリップフロップからの出力信号を取り込む第７のフリップフロップ、および前記第７のフリップフロップからの出力信号を取り込む第８のフリップフロップを具備することを特徴とする請求項１記載のクロック切り替え回路。
【請求項３】
前記第１〜第４フリップフロップ群が具備する各フリップフロップが、クロック入力端子からの入力信号の立ち上がりエッジに応答して動作するとき、
前記出力回路は、前記第１のフリップフロップ群からの出力信号と、前記第３のフリップフロップ群からの出力信号の反転信号との論理和をとる第１のゲート回路の出力信号に応じて、前記第１の入力クロック信号の出力を禁止し、前記第２のフリップフロップ群からの出力信号と、前記第４のフリップフロップ群からの出力信号の反転信号との論理和をとる第２のゲート回路の出力信号に応じて、前記第２の入力クロック信号の出力を禁止することを特徴とする請求項１記載のクロック切り替え回路。
【請求項４】
前記出力回路は、
前記第１のゲート回路の出力信号と前記第１の入力クロック信号との論理和をとる第３のゲート回路と、
前記第２のゲート回路の出力信号と前記第２の入力クロック信号との論理和をとる第４のゲート回路と、
前記第３および第４のゲート回路の各出力信号の論理積をとる第５のゲート回路と、
をさらに有することを特徴とする請求項３記載のクロック切り替え回路。
【請求項５】
前記第１および第２のフリップフロップ群と、前記出力回路とからなる回路を複数具備して、互いに周波数の異なる３つ以上の入力クロック信号から１つを選択して出力することを特徴とする請求項１記載のクロック切り替え回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、互いに周波数の異なる複数の入力クロック信号を切り替えて出力するクロック切り替え回路に関し、特に、各入力クロック信号の周波数比の大小に関係なく使用可能なクロック切り替え回路に関する。
【背景技術】
【０００２】
近年、ＬＳＩ（Large Scale Integration）に対する低消費電流化への要求が強く、このために、動作クロックの周波数を動的に切り替えることが行われている。これにより、例えばスタンバイ時など、高速に動作する必要がないときには、より低周波数のクロック信号により動作することで、消費電流が抑制される。また、ＰＬＬ（Phase Locked Loop）が内蔵されたＬＳＩでは、ＰＬＬの出力クロック信号と、これとは別のクロック信号とを動的に切り替える必要がある場合が多い。このように、動作クロックの切り替えが可能なＬＳＩでは、切り替えられるクロック信号が、互いに周波数も周期も異なる非同期クロックであることも少なくない。
【０００３】
２つのクロック信号から１つのクロック信号を選択する場合、従来のＬＳＩでは、単純なセレクタにより出力の切り替えが行われていた。しかし、単純にセレクタで切り替える場合には、入力クロック信号が互いに非同期であると、ハザードやひげと呼ばれる不定長のパルスが出力クロック信号に出現する可能性があった。クロック信号にハザードが存在すると、そのクロック信号で動作する回路や装置が誤動作する可能性がある。
【０００４】
このような問題に対して、ハザードの出現を防止するように構成された非同期クロックの切り替え回路が提案されている。
図４は、従来のクロック切り替え回路の構成例を示す図である。
【０００５】
図４に示すクロック切り替え回路では、非同期である２つ入力クロック信号ＣＬＫＩＮ＿ＡおよびＣＬＫＩＮ＿Ｂが、選択信号ＳＥＬに応じて切り替えられ、出力クロック信号ＣＬＫＯＵＴとして出力される。また、選択信号ＳＥＬは、入力クロック信号ＣＬＫＩＮ＿Ａの選択時にＨレベル、入力クロック信号ＣＬＫＩＮ＿Ｂの選択時にＬレベルとされる。
【０００６】
このクロック切り替え回路は、ともに一方の入力クロック信号ＣＬＫＩＮ＿Ａに応答して動作する２段のフリップフロップ（以下、ＦＦと略称する）１１１および１１２を具備し、入力クロック信号ＣＬＫＩＮ＿Ａの非選択時にこの信号の出力を禁止する第１のＦＦ群１１０と、ともに他方の入力クロック信号ＣＬＫＩＮ＿Ｂに応答して動作する２段のＦＦ１２１および１２２を具備し、入力クロック信号ＣＬＫＩＮ＿Ｂの非選択時にこの信号の出力を禁止する第２のＦＦ群１２０と、各ＦＦ群１１０および１２０からの出力信号ＣＬＫ＿ＡおよびＣＬＫ＿Ｂの入力を受けて、出力クロック信号ＣＬＫＯＵＴを出力するＡＮＤ（論理積）ゲート１０９を具備している。
【０００７】
第１のＦＦ群１１０は、２段のＦＦ１１１および１１２と、インバータ１０１および１０２と、ＯＲ（論理和）ゲート１０３および１０４を具備している。ＦＦ１１１は、選択信号ＳＥＬを、入力クロック信号ＣＬＫＩＮ＿Ａの立ち上がりエッジに応答して取り込む。ＦＦ１１２は、ＦＦ１１１の出力信号ＳＥＬ＿Ａを入力クロック信号ＣＬＫＩＮ＿Ａの立ち上がりエッジに応答して取り込む。
【０００８】
インバータ１０１は、ＦＦ１１１の出力信号ＳＥＬ＿Ａを反転させて、ＯＲゲート１０３の一方の入力端子に供給する。インバータ１０２は、ＦＦ１１２の出力信号ＳＥＬ＿ＡＡを反転させて、ＯＲゲート１０３の他方の入力端子に供給する。そして、ＯＲゲート１０４の入力端子には、ＯＲゲート１０３の出力信号（クロックマスク信号ＭＡＳＫ＿Ａ）および入力クロック信号ＣＬＫＩＮ＿Ａがそれぞれ入力され、ＯＲゲート１０４の出力信号ＣＬＫ＿Ａは、ＡＮＤゲート１０９の一方の入力端子に供給される。
【０００９】
また、第２のＦＦ群１２０は、同様に、２段のＦＦ１２１および１２２と、インバータ１０５および１０６と、ＯＲゲート１０７および１０８を具備している。ＦＦ１２１は、選択信号ＳＥＬの反転信号ｎＳＥＬを、入力クロック信号ＣＬＫＩＮ＿Ｂの立ち上がりエッジに応答して取り込む。ＦＦ１２２は、ＦＦ１２１の出力信号ｎＳＥＬ＿Ｂを、入力クロック信号ＣＬＫＩＮ＿Ｂの立ち上がりエッジに応答して取り込む。
【００１０】
インバータ１０５は、ＦＦ１２１の出力信号ｎＳＥＬ＿Ｂを反転させて、ＯＲゲート１０７の一方の入力端子に供給する。インバータ１０６は、ＦＦ１２２の出力信号ｎＳＥＬ＿ＢＢを反転させて、ＯＲゲート１０７の他方の入力端子に供給する。そして、ＯＲゲート１０８の入力端子には、ＯＲゲート１０７の出力信号（クロックマスク信号ＭＡＳＫ＿Ｂ）および入力クロック信号ＣＬＫＩＮ＿Ｂがそれぞれ入力され、ＯＲゲート１０８の出力信号ＣＬＫ＿Ｂは、ＡＮＤゲート１０９の他方の入力端子に供給される。
【００１１】
図５は、上記のクロック切り替え回路における各部の信号出力タイミングを示す第１のタイムチャートである。
第１のＦＦ群１１０では、ＯＲゲート１０３からのクロックマスク信号ＭＡＳＫ＿Ａにより、ＯＲゲート１０４において入力クロック信号ＣＬＫＩＮ＿ＡがＨレベルに固定されてマスクされる。クロックマスク信号ＭＡＳＫ＿Ａの立ち上がりタイミングは、選択信号ＳＥＬがＬレベルとなった直後の入力クロック信号ＣＬＫＩＮ＿Ａの立ち上がりタイミング（Ｔ５０１）とされ、クロックマスク信号ＭＡＳＫ＿Ａの立ち下がりタイミングは、選択信号ＳＥＬがＨレベルとなってから２番目の入力クロック信号ＣＬＫＩＮ＿Ａの立ち上がりタイミング（Ｔ５０４）とされる。
【００１２】
また、第２のＦＦ群１２０でも同様に、ＯＲゲート１０７からのクロックマスク信号ＭＡＳＫ＿Ｂにより、ＯＲゲート１０８において入力クロック信号ＣＬＫＩＮ＿ＢがＨレベルに固定されてマスクされる。クロックマスク信号ＭＡＳＫ＿Ｂの立ち上がりタイミングは、選択信号ＳＥＬがＨレベルとなった直後の入力クロック信号ＣＬＫＩＮ＿Ｂの立ち上がりタイミング（Ｔ５０３）とされ、クロックマスク信号ＭＡＳＫ＿Ｂの立ち下がりタイミングは、選択信号ＳＥＬがＬレベルとなってから２番目の入力クロック信号ＣＬＫＩＮ＿Ｂの立ち上がりタイミング（Ｔ５０２）とされる。
【００１３】
このように、各ＦＦ群では、同じ入力クロック信号により動作する２段のＦＦが直列に接続され、１段目のＦＦの信号出力タイミングに基づいてマスク開始タイミングが決定され、２段目のＦＦの信号出力タイミングに基づいてマスク終了タイミングが決定される。従って、図５中のタイミングＴ５０１〜Ｔ５０２の期間や、タイミングＴ５０３〜Ｔ５０４の期間のように、入力クロック信号の切り替え時には、双方のクロックマスク信号ＭＡＳＫ＿ＡおよびＭＡＳＫ＿ＢがともにＨレベルとなる期間が生じるようになり、２つの入力クロック信号が競合して出力される事態が回避され、ハザードの発生が防止される。
【００１４】
なお、図４の回路構成では、入力クロック信号をＨレベルに固定することでマスクしたが、例えば各ＦＦ群内のゲート回路をＡＮＤゲートとし、出力段のゲート回路をＯＲゲートとすることで、Ｌレベルに固定してマスクすることも可能である。
【００１５】
しかし、上記構成のクロック切り替え回路では、入力クロック信号の周波数差が大きくなると、ハザードの発生を防止できなくなるという問題があった。このような問題は、周波数差が２倍以上となったときに起き得る。
【００１６】
図６は、上記のクロック切り替え回路における各部の信号出力タイミングを示す第２のタイムチャートである。
図６は、上記のクロック切り替え回路において、一方の入力クロック信号ＣＬＫＩＮ＿Ｂの周波数が、他方の入力クロック信号ＣＬＫＩＮ＿Ａの２倍以上となった場合の信号出力タイミングの例を示している。この図６において、選択信号ＳＥＬにより、低速の入力クロック信号ＣＬＫＩＮ＿Ａから高速の入力クロック信号ＣＬＫＩＮ＿Ｂに切り替えられたとき、クロックマスク信号ＭＡＳＫ＿ＡがＨレベルになるタイミングＴ６０２より前のタイミングＴ６０１に、クロックマスク信号ＭＡＳＫ＿ＢがＬレベルに変化している。これにより、タイミングＴ６０１〜Ｔ６０２の期間では、クロックマスク信号ＭＡＳＫ＿ＡおよびＭＡＳＫ＿ＢがともにＬレベルとなってしまい、図中Ｃ部に示すようにハザードの発生する可能性が生じてしまう。
【００１７】
このような問題は、例えば、低速の入力クロック信号ＣＬＫＩＮ＿Ａの出力を禁止するＦＦ群１１０内のＦＦの段数を増加させることで回避することができる。同様な構成により、ホットプラグ機能を有する通信インタフェースを想定して、内蔵ＰＬＬからの高速な入力クロック信号と、低速な入力クロック信号との切り替え時のハザード発生を防止したクロック切り替え回路が提案されていた（例えば、特許文献１参照）。
【００１８】
なお、従来の関連技術として、０系、１系のそれぞれのクロック信号を選択出力するセレクタをセレクト信号に応じて上記の各セレクタを制御する選択信号作成部と、各系に対応するリセット信号を制御する禁止領域設定部とを有し、各系のクロック断の検出信号に応じて禁止領域設定部がハザード禁止領域を設けてクロック切り替えを行うように構成された非同期クロック切り替え装置があった（例えば、特許文献２参照）。
【特許文献１】特開２００１−２０９４５３号公報（段落番号〔００２６〕〜〔００４０〕、図５）
【特許文献２】特開平６−２０９３０９号公報（段落番号〔００１９〕〜〔００２７〕、図２）
【発明の開示】
【発明が解決しようとする課題】
【００１９】
上述したように、図５に示したような従来のクロック切り替え回路では、一方の入力クロック信号が他方の周波数の２倍以上高速である場合に、ハザードの発生を確実に防止することができないという問題があった。そして、この問題を解消するためには、特許文献１で開示されたクロック切り替え回路のように、低速の入力クロック信号の出力を禁止するＦＦ群に設けるＦＦの段数を増加させる必要があった。
【００２０】
しかし、この方法では、ＦＦの段数が増加する分、回路規模が増大する上に、ＦＦ群内に設けたＦＦの段数により、入力クロック信号の周波数比が決定されてしまうため、同一の回路ですべての周波数比に対応することができず、汎用性が低いことが問題であった。
【００２１】
本発明はこのような点に鑑みてなされたものであり、入力クロック信号の周波数比に関係なく、クロック切り替え時における出力クロック信号のハザード発生を防止することが可能なクロック切り替え回路を提供することを目的とする。
【課題を解決するための手段】
【００２２】
本発明では上記課題を解決するために、図１に示すような、互いに周波数の異なる複数の入力クロック信号を切り替えて出力するクロック切り替え回路において、第１の入力クロック信号ＣＬＫＩＮ＿Ａを選択するための選択信号ＳＥＬの反転信号ｎＳＥＬを、前記第１の入力クロック信号ＣＬＫＩＮ＿Ａに応答して動作する１つ以上のフリップフロップで取り込む第１のフリップフロップ群１０と、前記選択信号ＳＥＬを、第２の入力クロック信号ＣＬＫＩＮ＿Ｂに応答して動作する１つ以上のフリップフロップで取り込む第２のフリップフロップ群２０と、前記第２のフリップフロップ群２０からの出力信号を、前記第１の入力クロック信号ＣＬＫＩＮ＿Ａに応答して動作する１つ以上のフリップフロップで取り込む第３のフリップフロップ群３０と、前記第１のフリップフロップ群１０からの出力信号を、前記第２の入力クロック信号ＣＬＫＩＮ＿Ｂに応答して動作する１つ以上のフリップフロップで取り込む第４のフリップフロップ群４０と、前記第１および第２の入力クロック信号ＣＬＫＩＮ＿ＡおよびＣＬＫＩＮ＿Ｂのうち、前記選択信号ＳＥＬにより非選択とされた信号の出力を禁止する出力回路とを有し、前記出力回路は、前記第１および第３のフリップフロップ群１０および３０からの各出力信号を基に、前記第１の入力クロック信号ＣＬＫＩＮ＿Ａの非選択時における前記第１の入力クロック信号ＣＬＫＩＮ＿Ａの出力禁止期間の開始タイミングおよび終了タイミングをそれぞれ決定し、前記第２および第４のフリップフロップ群２０および４０からの各出力信号を基に、前記第２の入力クロック信号ＣＬＫＩＮ＿Ｂの非選択時における前記第２の入力クロック信号ＣＬＫＩＮ＿Ｂの出力禁止期間の開始タイミングおよび終了タイミングをそれぞれ決定することを特徴とするクロック切り替え回路が提供される。
【００２３】
このようなクロック切り替え回路では、第１の入力クロック信号ＣＬＫＩＮ＿Ａから第２の入力クロック信号ＣＬＫＩＮ＿Ｂに出力を切り替える際には、選択信号ＳＥＬの反転信号ｎＳＥＬを第１の入力クロック信号ＣＬＫＩＮ＿Ａに応答して取り込む第１のフリップフロップ群１０からの出力信号に基づいて、第１の入力クロック信号の出力禁止期間が開始される。これに対して、第１のフリップフロップ群１０からの出力信号を、第２の入力クロック信号ＣＬＫＩＮ＿Ｂに応答してさらに取り込む第４のフリップフロップ群４０からの出力信号に基づいて、第２の入力クロック信号ＣＬＫＩＮ＿Ｂの出力禁止期間が終了される。このため、第２の入力クロック信号ＣＬＫＩＮ＿Ｂの出力禁止期間の終了タイミングが遅延されて、第１の入力クロック信号ＣＬＫＩＮ＿Ａの出力禁止期間の開始タイミングより確実に後のタイミングとなる。
【００２４】
同様に、第２の入力クロック信号ＣＬＫＩＮ＿Ｂから第１の入力クロック信号ＣＬＫＩＮ＿Ａに出力を切り替える際には、第１の入力クロック信号ＣＬＫＩＮ＿Ａの出力禁止期間の終了タイミングが遅延されて、第２の入力クロック信号ＣＬＫＩＮ＿Ｂの出力禁止期間の開始タイミングより確実に後のタイミングとなる。従って、クロック切り替え時には、第１および第２の入力クロック信号ＣＬＫＩＮ＿ＡおよびＣＬＫＩＮ＿Ｂの出力がともに禁止される期間が確実に存在するようになり、出力クロック信号に、第１および第２の入力クロック信号ＣＬＫＩＮ＿ＡおよびＣＬＫＩＮ＿Ｂのうちの短い方の周期よりさらに短いパルス幅の信号が現れなくなる。
【発明の効果】
【００２５】
本発明のクロック切り替え回路によれば、クロック切り替え時において、第１および第２の入力クロック信号の出力がともに禁止される期間が確実に存在するようになり、出力クロック信号に、第１および第２の入力クロック信号のうちの短い方の周期よりさらに短いパルス幅の信号が現れなくなる。従って、入力クロック信号の周波数比に関係なく、クロック切り替え時におけるハザードの発生が確実に防止され、非同期の入力クロック信号の出力を安定的に切り替えることができる。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の実施の形態を図面を参照して詳細に説明する。
図１は、本発明の実施の形態に係るクロック切り替え回路の構成例を示す図である。
図１に示すクロック切り替え回路では、周波数の異なる２つ入力クロック信号ＣＬＫＩＮ＿ＡおよびＣＬＫＩＮ＿Ｂが、選択信号ＳＥＬに応じて切り替えられ、出力クロック信号ＣＬＫＯＵＴとして出力される。また、選択信号ＳＥＬは、入力クロック信号ＣＬＫＩＮ＿Ａの選択時にＨレベル、入力クロック信号ＣＬＫＩＮ＿Ｂの選択時にＬレベルとされる。
【００２７】
このクロック切り替え回路は、選択信号ＳＥＬがインバータ１により反転された反転信号ｎＳＥＬの入力を受け、入力クロック信号ＣＬＫＩＮ＿Ａによりともに動作する２段のＦＦ１１および１２を具備する第１のＦＦ群１０と、選択信号ＳＥＬの入力を受け、入力クロック信号ＣＬＫＩＮ＿Ｂによりともに動作する２段のＦＦ２１および２２を具備する第２のＦＦ群２０と、第２のＦＦ群２０の出力信号ＳＥＬ＿ＢＢの入力を受け、入力クロック信号ＣＬＫＩＮ＿Ａによりともに動作する第３のＦＦ群３０と、第１のＦＦ群１０の出力信号ｎＳＥＬ＿ＡＡの入力を受け、入力クロック信号ＣＬＫＩＮ＿Ｂにより動作する第４のＦＦ群４０を具備している。さらに、これらの第１〜第４のＦＦ群１０，２０，３０および４０からの出力信号に基づいて出力クロック信号ＣＬＫＯＵＴを出力する出力回路として、インバータ２および３、ＯＲゲート４〜７、ＡＮＤゲート８を具備している。
【００２８】
第１のＦＦ群１０において、ＦＦ１１は、選択信号ＳＥＬの反転信号ｎＳＥＬを、入力クロック信号ＣＬＫＩＮ＿Ａの立ち上がりエッジに応答して取り込む。ＦＦ１２は、ＦＦ１１の出力信号ｎＳＥＬ＿Ａを、入力クロック信号ＣＬＫＩＮ＿Ａの立ち上がりエッジに応答して取り込む。
【００２９】
第２のＦＦ群２０において、ＦＦ２１は、選択信号ＳＥＬを、入力クロック信号ＣＬＫＩＮ＿Ｂの立ち上がりエッジに応答して取り込む。ＦＦ２２は、ＦＦ２１の出力信号ＳＥＬ＿Ｂを、入力クロック信号ＣＬＫＩＮ＿Ｂの立ち上がりエッジに応答して取り込む。
【００３０】
第３のＦＦ群３０において、ＦＦ３１は、第２のＦＦ群２０のＦＦ２２の出力信号ＳＥＬ＿ＢＢを、入力クロック信号ＣＬＫＩＮ＿Ａの立ち上がりエッジに応答して取り込む。ＦＦ３２は、ＦＦ３１の出力信号ＳＥＬ＿ＢＢＡを、入力クロック信号ＣＬＫＩＮ＿Ａの立ち上がりエッジに応答して取り込む。
【００３１】
インバータ２は、ＦＦ３２の出力信号ＳＥＬ＿ＢＢＡＡを反転させる。ＯＲゲート４は、第１のＦＦ群１０のＦＦ１２の出力信号ｎＳＥＬ＿ＡＡ、およびインバータ２からの出力信号の供給を受けて、入力クロック信号ＣＬＫＩＮ＿Ａを非選択時にマスクするためのクロックマスク信号ＭＡＳＫ＿Ａを出力する。ＯＲゲート５は、ＯＲゲート４からのクロックマスク信号ＭＡＳＫ＿Ａ、および入力クロック信号ＣＬＫＩＮ＿Ａの入力を受けて、出力信号ＣＬＫ＿ＡをＡＮＤゲート８の一方の入力端子に供給する。
【００３２】
第４のＦＦ群４０において、ＦＦ４１は、第１のＦＦ群１０のＦＦ１２の出力信号ｎＳＥＬ＿ＡＡを、入力クロック信号ＣＬＫＩＮ＿Ｂの立ち上がりエッジに応答して取り込む。ＦＦ４２は、ＦＦ４１の出力信号ｎＳＥＬ＿ＡＡＢを、入力クロック信号ＣＬＫＩＮ＿Ｂの立ち上がりエッジに応答して取り込む。
【００３３】
インバータ３は、ＦＦ４２の出力信号ｎＳＥＬ＿ＡＡＢＢを反転させる。ＯＲゲート６は、第２のＦＦ群２０のＦＦ２２の出力信号ＳＥＬ＿ＢＢ、およびインバータ３からの出力信号の供給を受けて、入力クロック信号ＣＬＫＩＮ＿Ｂを非選択時にマスクするためのクロックマスク信号ＭＡＳＫ＿Ｂを出力する。ＯＲゲート７は、ＯＲゲート６からのクロックマスク信号ＭＡＳＫ＿Ｂ、および入力クロック信号ＣＬＫＩＮ＿Ｂの入力を受けて、出力信号ＣＬＫ＿ＢをＡＮＤゲート８の他方の入力端子に供給する。
【００３４】
このクロック切り替え回路では、入力クロック信号ＣＬＫＩＮ＿Ａをマスクするクロックマスク信号ＭＡＳＫ＿Ａが、ＯＲゲート４に入力される第１のＦＦ群１０からの出力信号ｎＳＥＬ＿ＡＡ、および第３のＦＦ群３０からの出力信号ＳＥＬ＿ＢＢＡＡの反転信号ｎＳＥＬ＿ＢＢＡＡによって生成される。ここで、第１および第３のＦＦ群１０および３０は、ともに入力クロック信号ＣＬＫＩＮ＿Ａに応答して動作するが、第３のＦＦ群３０には、入力クロック信号ＣＬＫＩＮ＿Ｂに応答して動作する第２のＦＦ群２０からの出力信号ＳＥＬ＿ＢＢが入力される。従って、インバータ２からＯＲゲート４に供給される反転信号ｎＳＥＬ＿ＢＢＡＡは、入力クロック信号ＣＬＫＩＮ＿ＡおよびＣＬＫＩＮ＿Ｂの双方により同期化された信号となる。
【００３５】
同様に、入力クロック信号ＣＬＫＩＮ＿Ｂをマスクするクロックマスク信号ＭＡＳＫ＿Ｂは、ＯＲゲート６に入力される第２のＦＦ群２０からの出力信号ＳＥＬ＿ＢＢ、および第４のＦＦ群４０からの出力信号ｎＳＥＬ＿ＡＡＢＢの反転信号ＳＥＬ＿ＡＡＢＢによって生成される。ここで、第２および第４のＦＦ群２０および４０は、ともに入力クロック信号ＣＬＫＩＮ＿Ｂに応答して動作するが、第４のＦＦ群４０には、入力クロック信号ＣＬＫＩＮ＿Ａに応答して動作する第１のＦＦ群１０からの出力信号ｎＳＥＬ＿ＡＡが入力される。従って、インバータ３からＯＲゲート６に供給される反転信号ＳＥＬ＿ＡＡＢＢは、入力クロック信号ＣＬＫＩＮ＿ＡおよびＣＬＫＩＮ＿Ｂの双方により同期化された信号となる。
【００３６】
このように、クロックマスク信号ＭＡＳＫ＿ＡおよびＭＡＳＫ＿Ｂを生成するために、入力クロック信号ＣＬＫＩＮ＿ＡおよびＣＬＫＩＮ＿Ｂの双方により選択信号ＳＥＬ（またはその反転信号ｎＳＥＬ）を同期化した信号が用いられることが、本発明の特徴となっている。これらの信号は、特に、入力クロック信号ＣＬＫＩＮ＿ＡおよびＣＬＫＩＮ＿Ｂをマスクする期間の終了タイミングを決定するために用いられる。
【００３７】
以下、図１のクロック切り替え回路に非同期のクロック信号が入力された場合の動作を、タイムチャートを用いて説明する。以下のタイムチャートでは、入力クロック信号ＣＬＫＩＮ＿Ｂの周波数が、入力クロック信号ＣＬＫＩＮ＿Ａの周波数の２倍以上となっている。
【００３８】
図２は、上記のクロック切り替え回路において、より高い周波数の入力クロック信号ＣＬＫＩＮ＿Ｂに切り替える際の各部の信号出力タイミングを示すタイムチャートである。
入力クロック信号ＣＬＫＩＮ＿Ｂへ切り替えるために、選択信号ＳＥＬがＬレベルに変化すると、第１のＦＦ群１０の出力信号ｎＳＥＬ＿ＡＡがＨレベルとなるタイミングＴ２０１で、クロックマスク信号ＭＡＳＫ＿ＡがＨレベルに変化する。これにより、入力クロック信号ＣＬＫＩＮ＿ＡがＨレベルに固定されてマスクされ、その出力が禁止される。一方、第４のＦＦ群４０の出力信号ｎＳＥＬ＿ＡＡＢＢの反転信号ＳＥＬ＿ＡＡＢＢがＬレベルとなるタイミングＴ２０２で、クロックマスク信号ＭＡＳＫ＿ＢがＬレベルに変化する。これにより、入力クロック信号ＣＬＫＩＮ＿Ｂに対するマスクが解除され、その出力禁止期間が終了される。
【００３９】
ここで、入力クロック信号ＣＬＫＩＮ＿Ａの出力禁止期間の開始タイミングは、選択信号ＳＥＬがＬレベルとなってから２番目の入力クロック信号ＣＬＫＩＮ＿Ａの立ち上がりタイミング（Ｔ２０１）となる。これに対して、入力クロック信号ＣＬＫＩＮ＿Ｂの出力禁止期間の終了タイミングは、選択信号ＳＥＬの変化後、入力クロック信号ＣＬＫＩＮ＿ＡおよびＣＬＫＩＮ＿Ｂの立ち上がりエッジに応答してそれぞれ２回ずつ取り込まれて生成された信号（ｎＳＥＬ＿ＡＡＢＢ）がＨレベルへ変化するタイミングＴ２０２となる。
【００４０】
このため、入力クロック信号ＣＬＫＩＮ＿Ｂの出力禁止期間の終了タイミング（Ｔ２０２）は、入力クロック信号ＣＬＫＩＮ＿ＡおよびＣＬＫＩＮ＿Ｂの周波数比に関係なく、入力クロック信号ＣＬＫＩＮ＿Ａの出力禁止期間の開始タイミング（Ｔ２０１）より確実に遅くなる。従って、図中のＡ部に示すように、クロックマスク信号ＭＡＳＫ＿ＡおよびＭＡＳＫ＿ＢがともにＨレベルとなる期間が確実に現れ、この期間には、出力クロック信号ＣＬＫＯＵＴには、少なくとも入力クロック信号ＣＬＫＩＮ＿ＢがＨレベルとなる時間以上のパルス幅Ｔｓｅｌ＿ｂの信号が現れる。換言すると、入力クロック信号ＣＬＫＩＮ＿Ｂの周期より短いパルス幅の信号が現れることは、あり得ない。このような短いパルス幅が出力クロック信号ＣＬＫＯＵＴに現れる場合には、この出力クロック信号ＣＬＫＯＵＴにより動作する回路に誤動作が発生する確率が高まるが、長いパルス幅の信号が現れる場合には、通常、誤動作が発生することはない。
【００４１】
図３は、上記のクロック切り替え回路において、より低い周波数の入力クロック信号ＣＬＫＩＮ＿Ａに切り替える際の各部の信号出力タイミングを示すタイムチャートである。
入力クロック信号ＣＬＫＩＮ＿Ａへ切り替えるために、選択信号ＳＥＬがＨレベルに変化した場合も、図２の場合と同様に動作する。すなわち、第２のＦＦ群２０の出力信号ＳＥＬ＿ＢＢがＨレベルとなるタイミングＴ３０１で、クロックマスク信号ＭＡＳＫ＿ＢがＨレベルに変化し、入力クロック信号ＣＬＫＩＮ＿Ｂの出力禁止期間が開始される。一方、第３のＦＦ群３０の出力信号ＳＥＬ＿ＢＢＡＡの反転信号ｎＳＥＬ＿ＢＢＡＡがＬレベルとなるタイミングＴ３０２で、クロックマスク信号ＭＡＳＫ＿ＡがＬレベルに変化し、入力クロック信号ＣＬＫＩＮ＿Ａの出力禁止期間が終了される。
【００４２】
ここで、選択信号ＳＥＬがＨレベルとなってから２番目の入力クロック信号ＣＬＫＩＮ＿Ｂの立ち上がりタイミング（Ｔ３０１）において、入力クロック信号ＣＬＫＩＮ＿Ｂの出力が禁止されるのに対して、選択信号ＳＥＬの変化後、入力クロック信号ＣＬＫＩＮ＿ＡおよびＣＬＫＩＮ＿Ｂの立ち上がりエッジに応答してそれぞれ２回ずつ取り込まれて生成された信号（ＳＥＬ＿ＢＢＡＡ）がＨレベルへ変化するタイミングＴ３０２において、入力クロック信号ＣＬＫＩＮ＿Ａの出力禁止が解除される。
【００４３】
このため、入力クロック信号ＣＬＫＩＮ＿Ａの出力禁止期間の終了タイミング（Ｔ３０２）は、入力クロック信号ＣＬＫＩＮ＿ＡおよびＣＬＫＩＮ＿Ｂの周波数比に関係なく、入力クロック信号ＣＬＫＩＮ＿Ｂの出力禁止期間の開始タイミング（Ｔ３０１）より確実に遅くなる。従って、図中Ｂ部に示すように、入力クロック信号ＣＬＫＩＮ＿Ａへの切り替え時にも、クロックマスク信号ＭＡＳＫ＿ＡおよびＭＡＳＫ＿ＢがともにＨレベルとなる期間が確実に現れ、この期間には、出力クロック信号ＣＬＫＯＵＴには、少なくとも入力クロック信号ＣＬＫＩＮ＿ＢがＨレベルとなる時間以上のパルス幅Ｔｓｅｌ＿ａの信号が現れる。
【００４４】
以上のように、入力クロック信号ＣＬＫＩＮ＿ＡおよびＣＬＫＩＮ＿Ｂを切り替える際に、これらが非同期でかつ周波数比が２倍以上ある場合にも、出力クロック信号ＣＬＫＯＵＴにハザードや不定長パルスが発生することがなくなる。従って、入力クロック信号についての周波数制限のない、汎用的でかつ安定的に動作するクロック切り替え回路が実現される。
【００４５】
なお、上記の実施の形態では、各ＦＦ群１０，２０，３０および４０にそれぞれ２段ずつのＦＦを設けたが、これらは１段ずつとしてもよい。ただし、ＦＦを２段ずつ設けることにより、２つの入力クロック信号に対して選択信号ＳＥＬが非同期で入力される場合に、ＦＦの出力信号にハザードが生じる事態を確実に防止することができる。
【００４６】
また、上記の実施の形態では、各ＦＦが入力されるクロック信号の立ち上がりエッジに応答して動作するようになっているが、立ち下がりエッジに応答して動作するＦＦを用いて構成することも可能である。この場合、上記回路中のＯＲゲートをＡＮＤゲートに、ＡＮＤゲートをＯＲゲートとすることで実現される。
【００４７】
また、上記構成のクロック切り替え回路を複数用いることにより、３つ以上の入力クロック信号を切り替えて出力することも可能である。例えば、３つの入力クロック信号を切り替える場合には、第１および第２の入力クロック信号を上記構成のクロック切り替え回路で切り替え、その出力クロック信号と第３の入力クロック信号とを、上記構成の他のクロック切り替え回路により切り替えるようにすればよい。
【図面の簡単な説明】
【００４８】
【図１】本発明の実施の形態に係るクロック切り替え回路の構成例を示す図である。
【図２】本発明の実施の形態に係るクロック切り替え回路において、より高い周波数の入力クロック信号に切り替える際の各部の信号出力タイミングを示すタイムチャートである。
【図３】本発明の実施の形態に係るクロック切り替え回路において、より低い周波数の入力クロック信号に切り替える際の各部の信号出力タイミングを示すタイムチャートである。
【図４】従来のクロック切り替え回路の構成例を示す図である。
【図５】従来のクロック切り替え回路における各部の信号出力タイミングを示す第１のタイムチャートである。
【図６】従来のクロック切り替え回路における各部の信号出力タイミングを示す第２のタイムチャートである。
【符号の説明】
【００４９】
１〜３  インバータ
４〜７  ＯＲゲート
８  ＡＮＤゲート
１０  第１のＦＦ群
２０  第２のＦＦ群
３０  第３のＦＦ群
４０  第４のＦＦ群
１１，１２，２１，２２，３１，３２，４１，４２  ＦＦ
【図１】
2005191877.tif 000003
【図２】
2005191877.tif 000004
【図３】
2005191877.tif 000005
【図４】
2005191877.tif 000006
【図５】
2005191877.tif 000007
【図６】
2005191877.tif 000008