(57)【特許請求の範囲】
【請求項１】
選択信号に応じて、複数の入力クロック信号の中からいずれか１つの入力クロック信号を選択して出力クロック信号として出力するクロック切替回路であって、
前記選択信号を前記出力クロック信号に基づいて同期化する同期化回路と、
前記同期化後の選択信号の信号レベルの変化を検出したときにマスク開始信号を生成する検出回路と、
前記マスク開始信号に基づいて、前記複数の入力クロック信号を所定レベルでマスクするマスク信号を生成するマスク信号生成回路と、
前記同期化後の選択信号及び前記マスク信号に基づいて、前記複数の入力クロック信号の中から選択される１つの入力クロック信号又は前記所定レベルに固定された信号を前記出力クロック信号として出力するクロック選択回路と、
前記同期化後の選択信号により選択される入力クロック信号の前記所定レベルへの遷移を検出したときにマスク解除信号を生成する解除回路と、を有し、
前記同期化回路は、初期化信号により初期化され、所定のレベルに設定された信号を前記同期化後の選択信号として生成し、
前記マスク信号生成回路は、前記初期化信号により初期化され、前記マスク信号の生成を停止し、前記初期化信号を前記マスク開始信号として入力したときに前記マスク信号を生成し、前記マスク解除信号に基づいて前記マスク信号の生成を停止し、前記初期化を完了することを特徴とするクロック切替回路。
【請求項２】
選択信号に応じて、複数の入力クロック信号の中からいずれか１つの入力クロック信号を選択して出力クロック信号として出力するクロック切替回路であって、
前記選択信号を前記出力クロック信号に基づいて同期化する同期化回路と、
前記同期化後の選択信号の信号レベルの変化を検出したときにマスク開始信号を生成する検出回路と、
前記マスク開始信号に基づいて、前記複数の入力クロック信号を所定レベルでマスクするマスク信号を生成するマスク信号生成回路と、
前記同期化後の選択信号及び前記マスク信号に基づいて、前記複数の入力クロック信号の中から選択される１つの入力クロック信号又は前記所定レベルに固定された信号を前記出力クロック信号として出力するクロック選択回路と、
前記同期化後の選択信号により選択される入力クロック信号の前記所定レベルへの遷移を検出したときにマスク解除信号を生成する解除回路と、を有し、
前記マスク信号生成回路は、前記マスク解除信号に基づいて前記マスク信号の生成を停止し、
前記検出回路は、前記同期化後の選択信号を論理反転させた信号を生成する奇数段のインバータ回路と、前記同期化後の選択信号と前記インバータ回路の出力信号との一致に応答して前記マスク開始信号を生成する第１論理回路とを有することを特徴とするクロック切替回路。
【請求項３】
前記同期化回路は、前記出力クロック信号の第１レベルから第２レベルへの遷移に応答して前記選択信号を同期化し、
前記解除回路は、前記所定レベルが前記第２レベルであるときに、前記同期化後の選択信号により選択される入力クロック信号の前記第１レベルから前記第２レベルへの遷移に応答して前記マスク解除信号を生成することを特徴とする請求項１又は２に記載のクロック切替回路。
【請求項４】
前記同期化回路は、前記選択信号を前記出力クロック信号に従って取り込む複数段のフリップフロップ回路を有することを特徴とする請求項１〜３のいずれか１つに記載のクロック切替回路。
【請求項５】
前記クロック選択回路は、前記同期化後の選択信号に応じて、複数の入力クロック信号の中からいずれか１つの入力クロック信号を選択して選択クロック信号として出力する選択回路と、前記マスク信号に応じて、前記選択クロック信号を前記所定レベルでマスクする第２論理回路とを有することを特徴とする請求項１〜４のいずれか１つに記載のクロック切替回路。
【請求項６】
前記解除回路は、前記マスク信号に応答して、前記選択クロック信号の信号レベルに応じた前記マスク解除信号を生成し、
前記マスク信号生成回路は、前記マスク解除信号をクロック端子に入力し、前記マスク信号を出力するフリップフロップ回路を有することを特徴とする請求項５に記載のクロック切替回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロック切替回路に関するものである。
【背景技術】
【０００２】
近年、ＬＳＩ（Large Scale Integration）の低消費電力化のためにクロック信号の周波数を動的に切り替えることが行われている。これにより、例えばスタンバイ時などの高速動作が必要ないときには、低周波数のクロック信号により動作させることで、消費電力を低減することができる。また、例えばＰＬＬ（Phase Locked Loop）が内蔵されたＬＳＩでは、ＰＬＬの出力クロック信号と、その出力クロック信号とは周波数及び位相が異なる別のクロック信号とを動的に切り替えることが行われる。
【０００３】
しかし、動作周波数が異なる複数の非同期クロック信号から１つのクロック信号を単純なセレクタにより選択すると、そのセレクタから出力されるクロック信号にハザードやひげと呼ばれる細い幅のパルスが生じる可能性があった。クロック信号にハザードが存在すると、そのクロック信号で動作する回路が誤動作する虞がある。
【０００４】
そこで、クロック切り替え時におけるハザードの発生を抑制したクロック切替回路が提案されている（例えば、特許文献１，２参照）。図１６は、従来のクロック切替回路１００の一例を示している。
【０００５】
クロック切替回路１００では、互いに非同期である２つの入力クロック信号ＣＬＫＡ，ＣＬＫＢが選択信号ＳＥＬＡに応じて切り替えられ、その選択信号ＳＥＬＡに応じて選択された入力クロック信号が出力クロック信号ＣＬＫＯＵＴとして出力される。本例の選択信号ＳＥＬＡは、入力クロック信号ＣＬＫＡの選択時にＬレベル、入力クロック信号ＣＬＫＢの選択時にＨレベルに設定される。
【０００６】
クロック切替回路１００は、入力クロック信号ＣＬＫＡの非選択時に、入力クロック信号ＣＬＫＡの出力を禁止する第１の回路１１０と、入力クロック信号ＣＬＫＢの非選択時に、入力クロック信号ＣＬＫＢの出力を禁止する第２の回路１２０とを有している。また、クロック切替回路１００は、第１の回路１１０からのクロック信号ＣＫＡと第２の回路１２０からのクロック信号ＣＫＢとを入力し、出力クロック信号ＣＬＫＯＵＴを出力するＡＮＤ回路１３０を有している。
【０００７】
第１の回路１１０は、２段のＤ−フリップフロップ回路（Ｄ−ＦＦ）１１１，１１２と、インバータ回路１１３，１１４と、ＯＲ回路１１５，１１６とを有している。Ｄ−ＦＦ１１１は、選択信号ＳＥＬＡをインバータ回路１０１により反転させた信号を、入力クロック信号ＣＬＫＡの立ち上がりエッジに応答して保持する。Ｄ−ＦＦ１１２は、入力クロック信号ＣＬＫＡの立ち上がりエッジに応答してＤ−ＦＦ１１１の出力信号を保持する。ＯＲ回路１１５は、Ｄ−ＦＦ１１１の出力信号をインバータ回路１１３により論理反転させた信号と、Ｄ−ＦＦ１１２の出力信号をインバータ回路１１４により論理反転させた信号とを論理和演算した結果を持つマスク信号ＭＡＳＫＡを出力する。ＯＲ回路１１６は、入力クロック信号ＣＬＫＡとマスク信号ＭＡＳＫＡとを論理和演算した結果を持つクロック信号ＣＫＡを出力する。このような第１の回路１１０では、ＯＲ回路１１５から出力されるＨレベルのマスク信号ＭＡＳＫＡにより、ＯＲ回路１１６において入力クロック信号ＣＬＫＡがＨレベルに固定されてマスクされる。
【０００８】
第２の回路１２０は、２段のＤ−ＦＦ１２１，１２２と、インバータ回路１２３，１２４と、ＯＲ回路１２５，１２６とを有している。Ｄ−ＦＦ１２１は、入力クロック信号ＣＬＫＢの立ち上がりエッジに応答して選択信号ＳＥＬＡを保持する。Ｄ−ＦＦ１２２は、入力クロック信号ＣＬＫＢの立ち上がりエッジに応答してＤ−ＦＦ１２１の出力信号を保持する。ＯＲ回路１２５は、Ｄ−ＦＦ１２１の出力信号をインバータ回路１２３により反転させた信号と、Ｄ−ＦＦ１２２の出力信号を反転させた信号とを論理和演算した結果を持つマスク信号ＭＡＳＫＢを出力する。ＯＲ回路１２６は、入力クロック信号ＣＬＫＢとマスク信号ＭＡＳＫＢとを論理和演算した結果を持つクロック信号ＣＫＢを出力する。このような第２の回路１２０では、ＯＲ回路１２５から出力されるＨレベルのマスク信号ＭＡＳＫＢにより、ＯＲ回路１２６において入力クロック信号ＣＬＫＢがＨレベルに固定されてマスクされる。
【０００９】
このように、各回路１１０，１２０では、１段目のＤ−ＦＦ１１１，１２１の信号出力タイミングに基づいてマスク信号ＭＡＳＫＡ，ＭＡＳＫＢの立ち上がりタイミングが決定され、２段目のＤ−ＦＦ１１２，１２２の信号出力タイミングに基づいてマスク信号ＭＡＳＫＡ，ＭＡＳＫＢの立ち上がりタイミングが決定される。このため、入力クロック信号ＣＬＫＡ，ＣＬＫＢの切り替え時には、双方のマスク信号ＭＡＳＫＡ，ＭＡＳＫＢが共にＨレベルとなる期間が生じることになる。したがって、入力クロック信号ＣＬＫＡ，ＣＬＫＢの切り替え時に、２つの入力クロック信号ＣＬＫＡ，ＣＬＫＢが競合して出力されることが抑制されるため、ハザードの発生を抑制することができる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開平０６−２６８４９２号公報
【特許文献２】特開２００５−１９１８７７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
ところが、上記クロック切替回路１００では、選択対象のクロック信号が増加すると、その増加したクロック信号の数の分だけ回路１１０に相当する回路が増加する。このため、クロック切替回路１００では、選択対象の入力クロック信号の増加に伴って回路規模が著しく増大するという問題がある。
【課題を解決するための手段】
【００１２】
本発明の一観点によれば、選択信号に応じて、複数の入力クロック信号の中からいずれか１つの入力クロック信号を選択して出力クロック信号として出力するクロック切替回路であって、前記選択信号を前記出力クロック信号に基づいて同期化する同期化回路と、前記同期化後の選択信号の信号レベルの変化を検出したときにマスク開始信号を生成する検出回路と前記マスク開始信号に基づいて、前記複数の入力クロック信号を所定レベルでマスクするマスク信号を生成するマスク信号生成回路と、前記同期化後の選択信号及び前記マスク信号に基づいて、前記複数の入力クロック信号の中から選択される１つの入力クロック信号又は前記所定レベルに固定された信号を前記出力クロック信号として出力するクロック選択回路と、前記同期化後の選択信号により選択される入力クロック信号の前記所定レベルへの遷移を検出したときにマスク解除信号を生成する解除回路と、を有し、前記同期化回路は、初期化信号により初期化され、所定のレベルに設定された信号を前記同期化後の選択信号として生成し、前記マスク信号生成回路は、前記初期化信号により初期化され、前記マスク信号の生成を停止し、前記初期化信号を前記マスク開始信号として入力したときに前記マスク信号を生成し、前記マスク解除信号に基づいて前記マスク信号の生成を停止し、前記初期化を完了する。
【発明の効果】
【００１３】
本発明の一観点によれば、クロック切替時におけるハザードの発生を抑制しつつも、選択対象の入力クロック信号の増加に伴う回路規模の増大を抑制することができるという効果を奏する。
【図面の簡単な説明】
【００１４】
【図１】第１実施形態のクロック切替回路を示すブロック図。
【図２】第１実施形態のクロック切替回路を示す回路図。
【図３】第１実施形態のクロック切替回路の動作を示すタイミングチャート。
【図４】変形例のクロック切替回路を示す回路図。
【図５】変形例のクロック切替回路を示す回路図。
【図６】変形例のクロック切替回路を示す回路図。
【図７】変形例のクロック切替回路を示す回路図。
【図８】変形例のクロック切替回路を示す回路図。
【図９】変形例のクロック切替回路の動作を示すタイミングチャート。
【図１０】変形例のクロック切替回路を示す回路図。
【図１１】変形例のクロック切替回路の動作を示すタイミングチャート。
【図１２】変形例のクロック切替回路を示す回路図。
【図１３】変形例のクロック切替回路を示す回路図。
【図１４】第２実施形態のクロック切替回路を示す回路図。
【図１５】第２実施形態のクロック切替回路の動作を示すタイミングチャート。
【図１６】従来のクロック切替回路を示す回路図。
【発明を実施するための形態】
【００１５】
（第１実施形態）
以下、第１実施形態を図１〜図３に従って説明する。
図１に示すクロック切替回路１では、互いに非同期で、且つ周波数の異なる２つの入力クロック信号ＣＬＫ１，ＣＬＫ２が選択信号ＳＥＬに応じて切り替えられ、その選択信号ＳＥＬに応じて選択された入力クロック信号が出力クロック信号ＣＬＫＯＵＴとして出力される。本実施形態の選択信号ＳＥＬは、入力クロック信号ＣＬＫ１，ＣＬＫ２に対して非同期信号であり、入力クロック信号ＣＬＫ１の選択時には論理Ｌレベルになり、入力クロック信号ＣＬＫ２の選択時には論理Ｈレベルになる。
【００１６】
このクロック切替回路１は、同期化回路１０と、検出回路２０と、マスク信号生成回路３０と、クロック選択回路４０と、解除回路６０とを有している。
同期化回路１０には、上記選択信号ＳＥＬと、出力クロック信号ＣＬＫＯＵＴと、初期化信号ＩＳとが入力される。同期化回路１０は、選択信号ＳＥＬを出力クロック信号ＣＬＫＯＵＴに基づいて同期化し、その同期化後の選択信号ＳＥＬａを検出回路２０及びクロック選択回路４０に出力する。この同期化回路１０は、初期化信号ＩＳにより初期化（リセット）されると、Ｌレベルの選択信号ＳＥＬａを出力する。
【００１７】
検出回路２０は、選択信号ＳＥＬａの信号レベルの変化（つまり、ＨレベルからＬレベルの変化、及びＬレベルからＨレベルの変化）を検出したときにマスク開始信号ＭＳを生成する。このマスク開始信号ＭＳは、出力クロック信号ＣＬＫＯＵＴをマスクする、具体的には複数の入力クロック信号ＣＬＫ１，ＣＬＫ２を所定レベル（ここでは、Ｈレベル）でマスクするマスク信号ＭＡＳＫの生成開始を指令する信号である。
【００１８】
マスク信号生成回路３０には、マスク開始信号ＭＳと、解除回路６０からのマスク解除信号ＭＲと、初期化信号ＩＳとが入力される。マスク信号生成回路３０は、マスク開始信号ＭＳに基づいてマスク信号ＭＡＳＫを生成し、マスク解除信号ＭＲに基づいてマスク信号ＭＡＳＫの生成を停止する。なお、マスク信号生成回路３０は、初期化信号ＩＳにより初期化されると、Ｌレベルのマスク信号ＭＡＳＫを出力する。このマスク信号ＭＡＳＫはクロック選択回路４０に供給される。
【００１９】
クロック選択回路４０には、複数の入力クロック信号ＣＬＫ１，ＣＬＫ２と、選択信号ＳＥＬａと、マスク信号ＭＡＳＫとが入力される。クロック選択回路４０は、選択信号ＳＥＬａ及びマスク信号ＭＡＳＫに基づいて、入力クロック信号ＣＬＫ１，ＣＬＫ２又は所定レベルに固定された信号を出力クロック信号ＣＬＫＯＵＴとして出力する。具体的には、クロック選択回路４０は、選択信号ＳＥＬａに応じて入力クロック信号ＣＬＫ１，ＣＬＫ２の中から１つの入力クロック信号を選択し、その選択した信号を選択クロック信号ＳＣＬＫとして生成する。さらに、クロック選択回路４０は、マスク信号ＭＡＳＫに応じて選択クロック信号ＳＣＬＫをマスクして所定レベル（ここでは、Ｈレベル）に固定された信号を出力クロック信号ＣＬＫＯＵＴとして出力する。換言すると、クロック選択回路４０は、マスク信号ＭＡＳＫに応じて、出力クロック信号ＣＬＫＯＵＴをＨレベルでマスクする。また、クロック選択回路４０は、マスク信号ＭＡＳＫの生成停止に応じて選択クロック信号ＳＣＬＫを出力クロック信号ＣＬＫＯＵＴとして出力する。
【００２０】
解除回路６０には、マスク信号生成回路３０からのマスク信号ＭＡＳＫと、クロック選択回路４０からの選択クロック信号ＳＣＬＫとが入力される。解除回路６０は、マスク信号ＭＡＳＫが生成されているときに、選択クロック信号ＳＣＬＫの信号レベルが所定レベルに変化したことを検出したときに上記マスク解除信号ＭＲを生成する。このマスク解除信号ＭＲは、上記マスク信号ＭＡＳＫの生成停止を指令する信号である。なお、解除回路６０は、マスク信号ＭＡＳＫの生成が停止されているときには、マスク解除信号ＭＲの生成を停止する。
【００２１】
次に、上記クロック切替回路１の各回路１０〜６０の内部構成例を図２に従って説明する。
同期化回路１０は、複数段（ここでは、２段）のＤ−フリップフロップ回路（Ｄ−ＦＦ）１１，１２を含むＦＦ群１３を有している。ＦＦ群１３には、２つの入力クロック信号ＣＬＫ１，ＣＬＫ２の中から１つの入力クロック信号を選択するために必要な１ビットの選択信号ＳＥＬが入力される。ここで、同期化回路１０内のＦＦ群は、選択対象の入力クロック信号の数をＮとしたときに、ｌｏｇ２Ｎ（小数点以下切り上げ）個、ここではｌｏｇ２２＝１個設けられている。
【００２２】
初段のＤ−ＦＦ１１は、選択信号ＳＥＬを出力クロック信号ＣＬＫＯＵＴの立ち上がりエッジ（ＬレベルからＨレベルへの遷移）に同期して取り込み、その取り込んだ信号を次段のＤ−ＦＦ１１に出力する。Ｄ−ＦＦ１２は、Ｄ−ＦＦ１１の出力信号を出力クロック信号ＣＬＫＯＵＴの立ち上がりエッジに同期して取り込み、その取り込んだ信号を上記選択信号ＳＥＬａとして出力する。これらＤ−ＦＦ１１，１２のクリア端子ＣＬＲには初期化信号ＩＳが入力される。これらＤ−ＦＦ１１，１２は、初期化時に初期化信号ＩＳがＬレベルになるとクリアされ、Ｌレベルを保持する。
【００２３】
このように複数段のＤ−ＦＦ１１，１２を有する同期化回路１０は、メタステーブルの発生を回避し、選択信号ＳＥＬを出力クロック信号ＣＬＫＯＵＴに同期させて正しく取り込むための回路である。ここで、メタステーブルとは、データとクロック信号が非同期信号の場合に、受信側レジスタの出力レベルが不安定になる現象をいう。このとき、上記選択信号ＳＥＬは入力クロック信号ＣＬＫ１，ＣＬＫ２及び出力クロック信号ＣＬＫＯＵＴに対して非同期の信号であるため、Ｄ−ＦＦ１１の出力信号が不定となる可能性がある。そこで、上記同期化回路１０では、適切な段数（ここでは、２段）の同期化用のＤ−ＦＦ１１，１２が直列に接続され、それらＤ−ＦＦ１１，１２において出力クロック信号ＣＬＫＯＵＴにリタイミングされることにより、入力される選択信号ＳＥＬの同期化が行われる。これにより、Ｄ−ＦＦ１１の出力信号が不定値になった場合であっても、Ｄ−ＦＦ１２で出力値を確定することができるため、不定値を後段に伝播することを抑制することができる。なお、同期化回路１０におけるＤ−ＦＦ１１，１２の段数は、メタステーブルの発生を回避することの可能な段数であれば特に制限されない。
【００２４】
検出回路２０は、奇数段（ここでは、１段）のインバータ回路２１とＸＯＲ回路２２とを含む検出部２３を有している。検出部２３には、選択信号ＳＥＬａが入力される。ここで、検出回路２０内の検出部は、選択対象の入力クロック信号の数をＮとしたときに、ｌｏｇ２Ｎ（小数点以下切り上げ）個、ここではｌｏｇ２２＝１個設けられている。
【００２５】
インバータ回路２１は、同期化回路１０からの選択信号ＳＥＬａを論理反転した反転信号をＸＯＲ回路２２に出力する。ＸＯＲ回路２２は、同期化回路１０からの選択信号ＳＥＬａと、インバータ回路２１からの反転信号とを排他的論理和演算した結果を持つマスク開始信号ＭＳを生成する。具体的には、例えば選択信号ＳＥＬａの信号レベルがＨレベルからＬレベルに遷移すると、インバータ回路２１による遅延時間だけＸＯＲ回路２２の両入力信号がＬレベルになるため、上記遅延時間分だけマスク開始信号ＭＳがＬレベルになる。同様に、選択信号ＳＥＬａの信号レベルがＬレベルからＨレベルに遷移すると、インバータ回路２１による遅延時間だけＸＯＲ回路２２の両入力信号がＨレベルになるため、その遅延時間分だけマスク開始信号ＭＳがＬレベルになる。
【００２６】
マスク信号生成回路３０は、Ｄ−ＦＦ３１を有している。Ｄ−ＦＦ３１の入力端子Ｄには、図示しない電源回路により生成された高電位電源電圧ＶＤＤが供給される。Ｄ−ＦＦ３１のクロック端子には解除回路６０からマスク解除信号ＭＲが入力される。Ｄ−ＦＦ３１のプリセット端子ＰＲには初期化信号ＩＳの反転レベルが入力される。Ｄ−ＦＦ３１のクリア端子ＣＬＲにはマスク開始信号ＭＳが入力される。そして、Ｄ−ＦＦ３１の反転出力端子ＸＱから上記マスク信号ＭＡＳＫが出力される。
【００２７】
Ｄ−ＦＦ３１は、初期化時に初期化信号ＩＳがＬレベルになるとプリセットされ、高電位電源電圧ＶＤＤレベル（Ｈレベル）を保持してＬレベルのマスク信号ＭＡＳＫを出力する。Ｄ−ＦＦ３１は、選択信号ＳＥＬａの信号レベルの変化に応答してマスク開始信号ＭＳがＬレベルになるとクリアされ、Ｈレベルのマスク信号ＭＡＳＫを出力する。また、Ｄ−ＦＦ３１は、マスク解除信号ＭＲの立ち上がりエッジに応答して、入力端子Ｄに供給されている信号（高電位電源電圧ＶＤＤ）を保持し、Ｌレベルのマスク信号ＭＡＳＫを出力する。
【００２８】
クロック選択回路４０は、セレクタ４１と、ＯＲ回路４２とを有している。セレクタ４１は、選択信号ＳＥＬａに応じて、入力クロック信号ＣＬＫ１，ＣＬＫ２のいずれか１つの入力クロック信号を選択し、その選択した入力クロック信号を選択クロック信号ＳＣＬＫとして出力する。例えばセレクタ４１は、Ｌレベルの選択信号ＳＥＬａに応答して入力クロック信号ＣＬＫ１を選択クロック信号ＳＣＬＫとして出力し、Ｈレベルの選択信号ＳＥＬａに応答して入力クロック信号ＣＬＫ２を選択クロック信号ＳＣＬＫとして出力する。
【００２９】
ＯＲ回路４２は、選択クロック信号ＳＣＬＫとマスク信号ＭＡＳＫとを論理和演算した結果を持つ出力クロック信号ＣＬＫＯＵＴを出力する。具体的には、ＯＲ回路４２は、マスク信号ＭＡＳＫがＬレベルのときに、選択クロック信号ＳＣＬＫを出力クロック信号ＣＬＫＯＵＴとして出力する。これにより、選択信号ＳＥＬａ（選択信号ＳＥＬ）に応じて選択された入力クロック信号が出力クロック信号ＣＬＫＯＵＴとして出力される。一方、ＯＲ回路４２は、マスク信号ＭＡＳＫがＨレベルのときに、選択クロック信号ＳＣＬＫの信号レベルに関わらずＨレベル固定の出力クロック信号ＣＬＫＯＵＴを出力する。すなわち、Ｈレベルのマスク信号ＭＡＳＫにより選択クロック信号ＳＣＬＫがマスクされ、出力クロック信号ＣＬＫＯＵＴがＨレベルに固定される。このように、Ｈレベルのマスク信号ＭＡＳＫは選択クロック信号ＳＣＬＫ（つまり、入力クロック信号ＣＬＫ１及び入力クロック信号ＣＬＫ２）を無効にする信号として機能し、ＯＲ回路４２は選択クロック信号ＳＣＬＫを無効にする回路として機能する。ここで、Ｈレベルのマスク信号ＭＡＳＫは、選択信号ＳＥＬａ（選択信号ＳＥＬ）の信号レベルが変化したとき、つまり入力クロック信号ＣＬＫ１，ＣＬＫ２が切り替えられるときに、Ｌレベルのマスク開始信号ＭＳに応答して生成される。このため、Ｈレベルのマスク信号ＭＡＳＫは、クロック切替時における入力クロック信号ＣＬＫ１，ＣＬＫ２の双方を無効化し、クロック切替時における出力クロック信号ＣＬＫＯＵＴをＨレベルに固定する信号であると言える。
【００３０】
解除回路６０は、ＮＡＮＤ回路６１を有している。ＮＡＮＤ回路６１は、選択クロック信号ＳＣＬＫの反転レベルとマスク信号ＭＡＳＫとを否定論理積演算した結果を持つマスク解除信号ＭＲを生成し、そのマスク解除信号ＭＲを上記Ｄ−ＦＦ３１のクロック端子に出力する。具体的には、ＮＡＮＤ回路６１は、マスク信号ＭＡＳＫがＬレベルのときに、選択クロック信号ＳＣＬＫの信号レベルに関わらずＬレベル固定のマスク解除信号ＭＲを出力する。すなわち、マスク信号ＭＡＳＫにより選択クロック信号ＳＣＬＫがマスクされていないときには、Ｈレベル固定のマスク解除信号ＭＲが出力される。一方、ＮＡＮＤ回路６１は、マスク信号ＭＡＳＫがＨレベルのときに、選択クロック信号ＳＣＬＫと同じ論理レベルのマスク解除信号ＭＲを出力する。このため、選択クロック信号ＳＣＬＫに対するマスクが開始された後に、選択クロック信号ＳＣＬＫがＬレベルからＨレベルに遷移するとマスク解除信号ＭＲもＬレベルからＨレベルに立ち上がる。なお、このマスク解除信号ＭＲの立ち上がりエッジに応答して上記Ｄ−ＦＦ３１でマスク信号ＭＡＳＫがＬレベルに遷移される。
【００３１】
本実施形態において、ＸＯＲ回路２２は第１論理回路の一例、セレクタ４１は第２論理回路の一例、ＯＲ回路４２は第２論理回路の一例である。
次に、上記クロック切替回路１の動作を図３に従って説明する。まず、クロック切替回路１の初期化動作について説明する。
【００３２】
今、時刻ｔ１において、初期化信号ＩＳがＬレベルに立ち下がると、Ｄ−ＦＦ１１，１２がクリアされてＬレベルの選択信号ＳＥＬａが出力されるとともに、Ｄ−ＦＦ３１がプリセットされてＬレベルのマスク信号ＭＡＳＫが出力される。このＬレベルのマスク信号ＭＡＳＫに応答してＮＡＮＤ回路６１からＨレベルのマスク解除信号ＭＲが出力される。なお、クロック切替回路１（同期化回路１０）には、Ｌレベルの選択信号ＳＥＬが入力される。
【００３３】
このような初期化後には、上記Ｌレベルの選択信号ＳＥＬａに応じて、入力クロック信号ＣＬＫ１，ＣＬＫ２のうち入力クロック信号ＣＬＫ１がセレクタ４１で選択され、その入力クロック信号ＣＬＫ１が選択クロック信号ＳＣＬＫとして出力される。このとき、上述のようにマスク信号ＭＡＳＫがＬレベルであるため、選択クロック信号ＳＣＬＫ、つまり入力クロック信号ＣＬＫ１が出力クロック信号ＣＬＫＯＵＴとして出力される。このため、同期化回路１０において、入力クロック信号ＣＬＫ１（出力クロック信号ＣＬＫＯＵＴ）により選択信号ＳＥＬの同期化が行われる。
【００３４】
続いて、入力クロック信号ＣＬＫ１から入力クロック信号ＣＬＫ２に切り替える動作について説明する。
時刻ｔ２において、入力クロック信号ＣＬＫ１から入力クロック信号ＣＬＫ２に切り替えるために選択信号ＳＥＬがＬレベルからＨレベルに遷移される。すると、その遷移後に発生する最初の出力クロック信号ＣＬＫＯＵＴ（ここでは、入力クロック信号ＣＬＫ１）の立ち上がりエッジに応答して上記Ｈレベルの選択信号ＳＥＬがＤ−ＦＦ１１に保持される（時刻ｔ３）。続いて、次の出力クロック信号ＣＬＫＯＵＴの立ち上がりエッジに応答して、Ｄ−ＦＦ１１から出力されるＨレベルの出力信号がＤ−ＦＦ１２に保持され、そのＤ−ＦＦ１２からＨレベルの選択信号ＳＥＬａが出力される（時刻ｔ４）。すなわち、時刻ｔ４において、Ｄ−ＦＦ１２から出力される選択信号ＳＥＬａがＬレベルからＨレベルに遷移される。これにより、上記遷移後のＨレベルの選択信号ＳＥＬが出力クロック信号ＣＬＫＯＵＴ（つまり、クロック切替前の入力クロック信号ＣＬＫ１）で同期化されたことになる。なお、このように選択信号ＳＥＬがＬレベルからＨレベルに遷移してから、そのＨレベルの選択信号ＳＥＬに対する同期化が完了するまで（選択信号ＳＥＬａがＨレベルに遷移するまで）は、Ｌレベルの選択信号ＳＥＬａに応じて入力クロック信号ＣＬＫ１が選択クロック信号ＳＣＬＫとして出力されている。
【００３５】
そして、上述のように選択信号ＳＥＬａがＬレベルからＨレベルに遷移すると、その遷移（変化）に応答してＸＯＲ回路２２からＬレベルのマスク開始信号ＭＳが所定期間（インバータ回路２１の遅延時間分）だけ出力される。このＬレベルのマスク開始信号ＭＳに応答してＤ−ＦＦ３１からＨレベルのマスク信号ＭＡＳＫが出力される。
【００３６】
一方、クロック選択回路４０では、上記遷移後のＨレベルの選択信号ＳＥＬａに応じて入力クロック信号ＣＬＫ２がセレクタ４１で選択され、その入力クロック信号ＣＬＫ２が選択クロック信号ＳＣＬＫとして出力される。すなわち、セレクタ４１では、Ｈレベルの選択信号ＳＥＬａに応じて、入力クロック信号ＣＬＫ１から入力クロック信号ＣＬＫ２への切り替えが行われる。但し、このときのＯＲ回路４２には上記Ｈレベルのマスク信号ＭＡＳＫが入力されるため、そのマスク信号ＭＡＳＫにより選択クロック信号ＳＣＬＫがマスクされ、出力クロック信号ＣＬＫＯＵＴがＨレベルに固定される。このように、入力クロック信号ＣＬＫ１から入力クロック信号ＣＬＫ２に切り替えられるときにＨレベルのマスク信号ＭＡＳＫが生成される。このため、例えばセレクタ４１でのクロック切り替え直前の入力クロック信号ＣＬＫ１がＨレベルで、クロック切り替え直後の入力クロック信号ＣＬＫ２がＬレベルである場合の細い幅のＨパルスのハザード（選択クロック信号ＳＣＬＫ）が出力クロック信号ＣＬＫＯＵＴとして出力されることが抑制される。
【００３７】
また、解除回路６０では、上記遷移後のＨレベルのマスク信号ＭＡＳＫに応じて、選択クロック信号ＳＣＬＫ（つまり、クロック切替後の入力クロック信号ＣＬＫ２）と同じ論理レベルのマスク解除信号ＭＲがＮＡＮＤ回路６１から出力される。上記時刻ｔ４における選択クロック信号ＳＣＬＫがＬレベルであるため、その時刻ｔ４においてマスク解除信号ＭＲがＬレベルに遷移する。その後、選択クロック信号ＳＣＬＫがＨレベルに遷移すると（時刻ｔ５）、マスク解除信号ＭＲがＨレベルに立ち上がる。このマスク解除信号ＭＲの立ち上がりエッジに応答してマスク信号ＭＡＳＫがＨレベルからＬレベルに遷移する。すると、選択クロック信号ＳＣＬＫに対するマスクが解除されるため、その選択クロック信号ＳＣＬＫ（ここでは、クロック切替後の入力クロック信号ＣＬＫ２）が出力クロック信号ＣＬＫＯＵＴとして出力される。このようにして、入力クロック信号ＣＬＫ１から入力クロック信号ＣＬＫ２への切り替えが完了する。なお、マスク信号ＭＡＳＫがＬレベルに遷移すると、ＮＡＮＤ回路６１からはＨレベル固定のマスク解除信号ＭＲが出力されることになる。
【００３８】
続いて、入力クロック信号ＣＬＫ２から入力クロック信号ＣＬＫ１に切り替える動作について説明する。
時刻ｔ６において、入力クロック信号ＣＬＫ２から入力クロック信号ＣＬＫ１に切り替えるために選択信号ＳＥＬがＨレベルからＬレベルに遷移される。すると、そのＬレベルの選択信号ＳＥＬが出力クロック信号ＣＬＫＯＵＴ（ここでは、入力クロック信号ＣＬＫ２）で同期化され、出力クロック信号ＣＬＫＯＵＴの立ち上がりエッジに同期してＬレベルの選択信号ＳＥＬａが出力される（時刻ｔ７）。なお、このように選択信号ＳＥＬがＨレベルからＬレベルに遷移してから、そのＬレベルの選択信号ＳＥＬに対する同期化が完了するまで（選択信号ＳＥＬａがＬレベルに遷移するまで）は、Ｈレベルの選択信号ＳＥＬａに応じて入力クロック信号ＣＬＫ２が選択クロック信号ＳＣＬＫとして出力される。
【００３９】
そして、上述のように選択信号ＳＥＬａがＨレベルからＬレベルに遷移すると、その遷移（変化）に応答してＸＯＲ回路２２からＬレベルのマスク開始信号ＭＳが所定期間だけ出力される。このＬレベルのマスク開始信号ＭＳに応答してＤ−ＦＦ３１からＨレベルのマスク信号ＭＡＳＫが出力される。
【００４０】
一方、クロック選択回路４０では、上記遷移後のＬレベルの選択信号ＳＥＬａに応じて入力クロック信号ＣＬＫ１がセレクタ４１で選択され、その入力クロック信号ＣＬＫ１が選択クロック信号ＳＣＬＫとして出力される。すなわち、セレクタ４１では、Ｌレベルの選択信号ＳＥＬａに応じて、入力クロック信号ＣＬＫ２から入力クロック信号ＣＬＫ１への切り替えが行われる。但し、このときのＯＲ回路４２には上記Ｈレベルのマスク信号ＭＡＳＫが入力されるため、そのマスク信号ＭＡＳＫにより選択クロック信号ＳＣＬＫがマスクされ、出力クロック信号ＣＬＫＯＵＴがＨレベルに固定される。
【００４１】
また、上記時刻ｔ７において、上記Ｈレベルのマスク信号ＭＡＳＫ及びＬレベルの選択クロック信号ＳＣＬＫに応じてマスク解除信号ＭＲがＬレベルに遷移する。その後、選択クロック信号ＳＣＬＫがＨレベルに遷移すると（時刻ｔ８）、マスク解除信号ＭＲがＨレベルに立ち上がる。このマスク解除信号ＭＲの立ち上がりエッジに応答してマスク信号ＭＡＳＫがＨレベルからＬレベルに遷移する。すると、選択クロック信号ＳＣＬＫに対するマスクが解除されるため、その選択クロック信号ＳＣＬＫ（ここでは、クロック切替後の入力クロック信号ＣＬＫ１）が出力クロック信号ＣＬＫＯＵＴとして出力される。このようにして、入力クロック信号ＣＬＫ２から入力クロック信号ＣＬＫ１への切り替えが完了する。
【００４２】
以上説明したように、クロック切替回路１では、選択信号ＳＥＬａの信号レベルが変化したとき、つまり入力クロック信号ＣＬＫ１，ＣＬＫ２の切り替え時にＨレベルのマスク信号ＭＡＳＫが生成される。このときの選択信号ＳＥＬａは出力クロック信号ＣＬＫＯＵＴの立ち上がりエッジに同期化されているため、マスク信号ＭＡＳＫも出力クロック信号ＣＬＫＯＵＴの立ち上がりエッジに同期化して生成される。このため、出力クロック信号ＣＬＫＯＵＴがＨレベルに遷移したときにＨレベルのマスク信号ＭＡＳＫが生成され、そのマスク信号ＭＡＳＫにより選択クロック信号ＳＣＬＫがマスクされて出力クロック信号ＣＬＫＯＵＴがＨレベルに固定される。これにより、クロック切替時に出力クロック信号ＣＬＫＯＵＴの信号レベルをＨレベルに固定することができる。換言すると、選択信号ＳＥＬａに応じてセレクタ４１で切り替えられた入力クロック信号（選択クロック信号ＳＣＬＫ）がその切り替え直後に出力クロック信号ＣＬＫＯＵＴとして出力されることを防止することができる。このため、切り替え直後の選択クロック信号ＳＣＬＫがＬレベルであっても、出力クロック信号ＣＬＫＯＵＴがＬレベルに遷移することが防止され、クロック切替時におけるハザードの発生を好適に抑制することができる。
【００４３】
さらに、クロック切替回路１では、選択クロック信号ＳＣＬＫに対するマスクが開始された後、選択クロック信号ＳＣＬＫがＬレベルからＨレベルに遷移したときに、その選択クロック信号ＳＣＬＫに対するマスクが解除される。このため、選択クロック信号ＳＣＬＫに対するマスクが開始されてからそのマスクが解除されるまでの期間は出力クロック信号ＣＬＫＯＵＴがＨレベルに固定され、さらに上記マスクの解除後にＨレベルパルスの選択クロック信号ＳＣＬＫが出力クロック信号ＣＬＫＯＵＴとして出力される。したがって、クロック切替時において、入力クロック信号ＣＬＫ１，ＣＬＫ２のうちの短い方のパルス幅よりさらに短いパルス幅の信号が出力クロック信号ＣＬＫＯＵＴとして出力されることを好適に抑制することができる。なお、このような短いパルス幅が出力クロック信号ＣＬＫＯＵＴに現れる場合には、この出力クロック信号ＣＬＫＯＵＴにより動作する回路に誤動作が発生する確率が高まるが、長いパルス幅の信号が出力クロック信号ＣＬＫＯＵＴに現れる場合には、通常、誤動作が発生することはない。
【００４４】
以上説明した本実施形態によれば、以下の効果を奏することができる。
（１）選択信号ＳＥＬを出力クロック信号ＣＬＫＯＵＴで同期化し、その同期化後の選択信号ＳＥＬａの信号レベルが変化したときに、複数の入力クロック信号ＣＬＫ１，ＣＬＫ２を所定レベル（ここでは、Ｈレベル）でマスクするマスク信号ＭＡＳＫを生成するようにした。また、マスク信号ＭＡＳＫが生成された後、選択信号ＳＥＬａに応じて選択される入力クロック信号、つまり選択クロック信号ＳＣＬＫの所定レベル（ここでは、Ｈレベル）への遷移を検出したときに、マスク信号ＭＡＳＫの生成を停止するようにした。これにより、選択クロック信号ＳＣＬＫに対するマスクが開始されてからそのマスクが解除されるまでの期間は出力クロック信号ＣＬＫＯＵＴがＨレベルに固定され、さらに上記マスクの解除後にＨレベルパルスの選択クロック信号ＳＣＬＫが出力クロック信号ＣＬＫＯＵＴとして出力される。したがって、クロック切替時におけるハザードの発生を好適に抑制することができる。
【００４５】
（２）同期化回路１０では、選択信号ＳＥＬを１つの出力クロック信号（選択後の入力クロック信号）で同期化を行うようにした。このため、選択信号ＳＥＬを入力クロック信号ＣＬＫ１，ＣＬＫ２毎に同期化を行う場合に比べて、回路規模を縮小することができる。具体的には、同期化回路１０内のＦＦ群１３は、選択対象の入力クロック信号ＣＬＫ１，ＣＬＫ２の個数Ｎ（ここでは、２）個分設ける必要はなく、ｌｏｇ２Ｎ（小数点以下切り上げ）個分だけ設ければよい。このため、選択対象の入力クロック信号の個数Ｎが増加した場合であっても、その個数Ｎと同数のＦＦ群１３を設ける場合に比べて、回路規模の増大を抑制することができる。
【００４６】
さらに、２つの入力クロック信号ＣＬＫ１，ＣＬＫ２に対して同期化後の選択信号ＳＥＬａが１つ使用されるため、その選択信号ＳＥＬａに応じてマスク信号ＭＡＳＫを生成する検出回路２０、マスク信号生成回路３０及び解除回路６０の回路規模の増大も抑制することができる。
【００４７】
（３）上述のようにクロック切替時におけるハザードの発生を抑制できるため、任意のタイミングで選択信号ＳＥＬの信号レベルを切り替えることができる、つまり任意のタイミングで入力クロック信号ＣＬＫ１，ＣＬＫ２を切り替えることができる。また、マスク信号ＭＡＳＫの生成後、選択クロック信号ＳＣＬＫの最初の立ち上がりエッジに応答して入力クロック信号ＣＬＫ１，ＣＬＫ２の切り替えを完了することができる。このため、選択信号ＳＥＬの同期化が完了した後に短期間で入力クロック信号ＣＬＫ１，ＣＬＫ２を切り替えることができ、入力クロック信号ＣＬＫ１，ＣＬＫ２をダイナミックに切り替えることができる。さらに、クロック切替後の入力クロック信号の立ち上がりエッジに応答してマスク信号ＭＡＳＫの生成が停止されるため、入力クロック信号ＣＬＫ１，ＣＬＫ２の周波数比及び位相に関係なく、上記ハザードの発生を抑制することができる。
【００４８】
（４）ところで、クロック切替時にハザードが発生する回路では、シミュレーションを行う際に、実際の回路とシミュレーション回路を部分的に変更する等の処置が必要になり、この変更した部分に起因して全体回路が所望の動作と異なる動作になるといった問題があった。これに対し、クロック切替時におけるハザードの発生を抑制できるクロック切替回路１では、実際の回路とシミュレーション回路とを同一の回路にすることができるため、上記問題の発生を未然に防止することができる。
【００４９】
（５）選択信号ＳＥＬａを、出力クロック信号ＣＬＫＯＵＴの立ち上がりエッジで同期化するようにした。これにより、出力クロック信号ＣＬＫＯＵＴがＨレベルに遷移したときにＨレベルのマスク信号ＭＡＳＫが生成され、そのマスク信号ＭＡＳＫにより選択クロック信号ＳＣＬＫがマスクされて出力クロック信号ＣＬＫＯＵＴがＨレベルに固定される。したがって、クロック切替時に出力クロック信号ＣＬＫＯＵＴの信号レベルをＨレベルに固定することができる。このため、クロック切替直後の選択クロック信号ＳＣＬＫがＬレベルであっても、出力クロック信号ＣＬＫＯＵＴがＬレベルに遷移することが防止され、クロック切替時におけるハザードの発生を好適に抑制することができる。
【００５０】
（６）選択信号ＳＥＬを出力クロック信号で同期化を行うようにしたため、入力クロック信号ＣＬＫ１，ＣＬＫ２に対して非同期信号である選択信号ＳＥＬに応じて入力クロック信号ＣＬＫ１，ＣＬＫ２の切り替えを行うことができる。
【００５１】
（７）同期化回路１０において、複数段のＤ−ＦＦ１１，１２によって選択信号ＳＥＬを出力クロック信号ＣＬＫＯＵＴに従って取り込むようにした。これにより、メタステーブルの発生を抑制することができ、選択信号ＳＥＬを正しく取り込むことができる。さらに、上述したように選択対象の入力クロック信号の個数Ｎが増加した場合に、ＦＦ群１３の増加が抑制されるため、メタステーブル対策を行った場合の回路規模の増大も抑制することができる。
【００５２】
（８）検出回路２０では、選択信号ＳＥＬａの信号レベルの変化、つまりＨレベルからＬレベルへの変化と、ＬレベルからＨレベルへの変化との双方の変化をＸＯＲ回路２２で検出するようにしたため、回路規模の増大を抑制することができる。
【００５３】
（第１実施形態の変形例）
なお、上記第１実施形態は、これを適宜変更した以下の態様にて実施することもできる。
【００５４】
・上記第１実施形態における同期化回路１０の内部構成例は特に限定されない。例えば複数段のＤ−ＦＦ１１，１２の代わりに、１段のＤ−ＦＦを設けるようにしてもよい。このような構成であっても、上記第１実施形態の（１）〜（６）、（８）と同様の効果を奏することができる。
【００５５】
・上記第１実施形態では、Ｄ−ＦＦ１１，１２をクリア端子ＣＬＲ付きフリップフロップとし、そのクリア端子ＣＬＲに初期化信号ＩＳを供給するようにした。これにより、初期化時において、Ｄ−ＦＦ１２からＬレベルの選択信号ＳＥＬａが出力され、セレクタ４１から入力クロック信号ＣＬＫ１が選択クロック信号ＳＣＬＫとして出力される。これに限らず、例えばＤ−ＦＦ１１，１２をプリセット端子ＰＲ付きフリップフロップに変更し、そのプリセット端子ＰＲに初期化信号ＩＳを供給するようにしてもよい。この場合には、初期化時において、Ｄ−ＦＦ１２からＨレベルの選択信号ＳＥＬａが出力されるため、セレクタ４１から入力クロック信号ＣＬＫ２が選択クロック信号ＳＣＬＫとして出力されることになる。なお、この場合には、選択信号ＳＥＬの初期値をＨレベルに設定することが好ましい。
【００５６】
なお、Ｄ−ＦＦ１１，１２としては、クリア端子ＣＬＲ又はプリセット端子ＰＲを有さないフリップフロップを使用することも可能である。但し、設計段階の論理シミュレーションにおいて、シミュレーション初期のこれらのフリップフロップの不定値がセレクタ４１に伝播してしまう。このため、クリア端子ＣＬＲ又はプリセット端子ＰＲを有するフリップフロップを使用することが好ましい。
【００５７】
・上記第１実施形態における検出回路２０の内部構成例は特に限定されない。上記第１実施形態の検出回路２０では、選択信号ＳＥＬａの双方の信号レベルの変化（ＨレベルからＬレベルへの変化、及びＬレベルからＨレベルの変化）をインバータ回路２１及びＸＯＲ回路２２で検出するようにした。これに限らず、例えば検出回路２０において、選択信号ＳＥＬａのＨレベルからＬレベルへの変化と、選択信号ＳＥＬａのＬレベルからＨレベルへの変化とを個別に検出する論理回路を設けるようにしてもよい。このような構成であっても、上記第１実施形態の（１）〜（７）と同様の効果を奏することができる。
【００５８】
・上記第１実施形態におけるマスク信号生成回路３０の内部構成例は特に限定されない。例えば図４に示されるように、上記Ｄ−ＦＦ３１の代わりに、２つのＮＡＮＤ回路３２，３３により形成されるＲＳ−ＦＦ３４を設けるようにしてもよい。具体的には、３入力端子を有するＮＡＮＤ回路３２には、初期化信号ＩＳと、マスク開始信号ＭＳと、２入力端子を有するＮＡＮＤ回路３３の出力信号とが入力される。このＮＡＮＤ回路３２の出力信号は上記マスク信号ＭＡＳＫとして出力されるとともに、ＮＡＮＤ回路３２の出力信号はＮＡＮＤ回路３３に入力される。ＮＡＮＤ回路３３にはマスク解除信号ＭＲが供給される。このようなＲＳ−ＦＦ３４では、セット端子Ｓに入力されるＬレベルのマスク開始信号ＭＳ（セット信号）に応答してセット状態に遷移し、Ｈレベルのマスク信号ＭＡＳＫを出力する。また、リセット端子Ｒに入力されるＬレベルのマスク解除信号ＭＲ（リセット信号）に応答してリセット状態に遷移し、Ｌレベルのマスク信号ＭＡＳＫを出力する。このような構成であっても、上記第１実施形態と同様の効果を奏することができる。
【００５９】
・あるいは、上記第１実施形態のＤ−ＦＦ３１では、入力端子Ｄに高電位電源電圧ＶＤＤを供給し、反転出力端子ＸＱからマスク信号ＭＡＳＫを出力するようにした。これに限らず、例えばＤ−ＦＦ３１の入力端子に低電位電源電圧を供給し、出力端子Ｑからマスク信号ＭＡＳＫを出力するようにしてもよい。
【００６０】
・上記第１実施形態における解除回路６０の内部構成例は特に限定されない。例えば図５に示されるように、バッファ回路（遅延回路）６２とＯＲ回路６３とを追加するようにしてもよい。具体的には、ＯＲ回路６３には、マスク信号ＭＡＳＫが直接供給されるとともに、マスク信号ＭＡＳＫをバッファ回路６２により遅延させた遅延信号が供給される。このため、マスク解除信号ＭＲの立ち上がりエッジに応答してマスク信号ＭＡＳＫがＬレベルに遷移された場合に、その遷移後もバッファ回路６２による遅延時間（具体的には、Ｄ−ＦＦ３１の出力が変化するだけの時間）分だけマスク解除信号ＭＲがＨレベルに確実に維持される。これにより、マスク解除信号ＭＲのパルス幅（Ｄ−ＦＦ３１のクロックパルス幅）を確保することができるため、マスク信号ＭＡＳＫを確実にＬレベルに遷移させることができる。
【００６１】
・あるいは、図６に示されるように、解除回路６０の内部構成を変更するようにしてもよい。具体的には、図６に示した解除回路６０は、３入力端子を有するＮＡＮＤ回路６４，６５を有している。ＮＡＮＤ回路６４には、選択クロック信号ＳＣＬＫの反転レベルと、マスク信号ＭＡＳＫと、ＮＡＮＤ回路６５の出力信号とが入力される。ＮＡＮＤ回路６５には、選択クロック信号ＳＣＬＫの反転レベルと、マスク信号ＭＡＳＫの反転レベルと、ＮＡＮＤ回路６４の出力信号とが入力される。そして、ＮＡＮＤ回路６４の出力信号がマスク解除信号ＭＲとして出力される。このような回路では、初期化動作によりＬレベルのマスク信号ＭＡＳＫが入力されると、ＮＡＮＤ回路６４からＨレベルのマスク解除信号ＭＲが出力される。その後、マスク信号ＭＡＳＫがＨレベルに遷移すると、その時の選択クロック信号ＳＣＬＫと同じ論理レベルのマスク解除信号ＭＲが出力される。そして、マスク信号ＭＡＳＫがＨレベルであるときに、選択クロック信号ＳＣＬＫがＬレベルからＨレベルに遷移すると、マスク解除信号ＭＲもＬレベルからＨレベルに遷移する。すると、そのマスク解除信号ＭＲの立ち上がりエッジに応答してマスク信号ＭＡＳＫがＬレベルに遷移する。すなわち、このような構成であっても、Ｈレベルのマスク信号ＭＡＳＫが生成された後、選択クロック信号ＳＣＬＫの立ち上がりエッジに応答してマスク信号ＭＡＳＫをＬレベルに遷移させることができる。
【００６２】
・上記第１実施形態におけるクロック選択回路４０及び解除回路６０の内部構成例は特に限定されない。例えば図７に示されるように、クロック選択回路４０及び解除回路６０の内部構成を変更するようにしてもよい。具体的には、クロック選択回路４０は、インバータ回路４３と、ＡＮＤ回路４４，４５と、３入力端子を有するＯＲ回路４６とを有している。ＡＮＤ回路４４には、入力クロック信号ＣＬＫ１と、選択信号ＳＥＬａがインバータ回路４３により論理反転された信号とが入力される。また、ＡＮＤ回路４５には、入力クロック信号ＣＬＫ２と、選択信号ＳＥＬａとが入力される。ＯＲ回路４６には、ＡＮＤ回路４４，４５の出力信号と、マスク信号ＭＡＳＫとが入力される。このＯＲ回路４６から上記出力クロック信号ＣＬＫＯＵＴが出力される。このようなクロック選択回路４０では、Ｌレベルの選択信号ＳＥＬａに応じて、ＡＮＤ回路４４から入力クロック信号ＣＬＫ１が出力され、ＡＮＤ回路４５からＬレベル固定の出力信号が出力される。そして、マスク信号ＭＡＳＫがＬレベルであるときには、ＡＮＤ回路４４から出力される入力クロック信号ＣＬＫ１が出力クロック信号ＣＬＫＯＵＴとして出力される。一方、クロック選択回路４０では、Ｈレベルの選択信号ＳＥＬａに応じて、ＡＮＤ回路４４からＬレベル固定の出力信号が出力され、ＡＮＤ回路４５から入力クロック信号ＣＬＫ２が出力される。そして、マスク信号ＭＡＳＫがＬレベルであるときには、ＡＮＤ回路４５から出力される入力クロック信号ＣＬＫ２が出力クロック信号ＣＬＫＯＵＴとして出力される。なお、マスク信号ＭＡＳＫがＨレベルであるときには、ＡＮＤ回路４４，４５の出力信号（つまり、入力クロック信号ＣＬＫ１，ＣＬＫ２）の信号レベルに関わらずに、Ｈレベル固定の出力クロック信号ＣＬＫＯＵＴが出力される。
【００６３】
一方、解除回路６０は、インバータ回路６６と、３入力端子を有するＯＲ回路６７とを有している。ＯＲ回路６７には、マスク信号ＭＡＳＫがインバータ回路６６により論理反転された信号と、ＡＮＤ回路４４，４５の出力信号とが入力される。このＯＲ回路６７から上記マスク解除信号ＭＲが出力される。このような解除回路６０では、Ｌレベルの選択信号ＳＥＬａに応じてＡＮＤ回路４４から入力クロック信号ＣＬＫ１が出力され、且つＨレベルのマスク信号ＭＡＳＫが出力されている場合には、入力クロック信号ＣＬＫ１と同じ論理レベルのマスク解除信号ＭＲが出力される。また、Ｈレベルの選択信号ＳＥＬａに応じてＡＮＤ回路４５から入力クロック信号ＣＬＫ２が出力され、且つＨレベルのマスク信号ＭＡＳＫが出力されている場合には、入力クロック信号ＣＬＫ２と同じ論理レベルのマスク解除信号ＭＲが出力される。なお、Ｌレベルのマスク信号ＭＡＳＫが出力されている場合には、ＡＮＤ回路４４，４５の出力信号の信号レベルに関わらずに、Ｈレベル固定の出力クロック信号ＣＬＫＯＵＴが出力される。このような構成であっても、上記第１実施形態と同様の効果を奏することができる。
【００６４】
・上記第１実施形態では、選択信号ＳＥＬを出力クロック信号ＣＬＫＯＵＴの立ち上がりエッジで同期化し、選択クロック信号ＳＣＬＫ（入力クロック信号ＣＬＫ１，ＣＬＫ２）をＨレベルでマスクするようにした。これに限らず、例えば選択信号ＳＥＬを出力クロック信号ＣＬＫＯＵＴの立ち下がりエッジで同期化し、選択クロック信号ＳＣＬＫ（入力クロック信号ＣＬＫ１，ＣＬＫ２）をＬレベルでマスクするようにしてもよい。
【００６５】
・上記第１実施形態では、選択信号ＳＥＬを出力クロック信号ＣＬＫＯＵＴの立ち上がりエッジで同期化するようにした。また、選択クロック信号ＳＣＬＫがマスク信号ＭＡＳＫによりマスクされているときに、選択クロック信号ＳＣＬＫの立ち上がりエッジに応答してマスク信号ＭＡＳＫによるマスクを解除するようにした。これに限らず、例えば選択信号ＳＥＬを出力クロック信号ＣＬＫＯＵＴの立ち下がりエッジで同期化するようにしてもよい。また、選択クロック信号ＳＣＬＫがマスク信号ＭＡＳＫによりマスクされているときに、選択クロック信号ＳＣＬＫの立ち下がりエッジに応答してマスク信号ＭＡＳＫによるマスクを解除するようにしてもよい。
【００６６】
・上記第１実施形態では、マスク信号生成回路３０内のＤ−ＦＦ３１の初期化を初期化信号ＩＳにより行うようにした。これに限らず、例えばＤ−ＦＦ３１の初期化を、初期化信号ＩＳ及びマスク開始信号ＭＳにより行うようにしてもよい。具体的には、図８に示されるように、検出回路２０に、初期化信号ＩＳとＸＯＲ回路２２の出力信号とが供給されるＡＮＤ回路２４を追加し、そのＡＮＤ回路２４の出力信号をマスク開始信号ＭＳとしてＤ−ＦＦ３１のクリア端子ＣＬＲに供給するようにしてもよい。この場合には、Ｄ−ＦＦ３１のプリセット端子への初期化信号ＩＳの供給が省略されている。
【００６７】
このような回路では、図９に示す時刻ｔ９において、初期化信号ＩＳがＬレベルに立ち下がると、Ｄ−ＦＦ１１，１２がクリアされてＬレベルの選択信号ＳＥＬａが出力される一方で、ＡＮＤ回路２４からＬレベルのマスク開始信号ＭＳが出力される。すると、Ｌレベルのマスク開始信号ＭＳに応答してＨレベルのマスク信号ＭＡＳＫが出力される。すなわち、Ｌレベルの初期化信号ＩＳがマスク開始信号ＭＳとしてＤ−ＦＦ３１に入力されると、Ｄ−ＦＦ３１でＨレベルのマスク信号ＭＡＳＫが生成される。そのＨレベルのマスク信号ＭＡＳＫにより選択クロック信号ＳＣＬＫがマスクされてＨレベル固定の出力クロック信号ＣＬＫＯＵＴが出力される。一方、解除回路６０では、上記Ｌレベルのマスク信号ＭＡＳＫに応じて、選択クロック信号ＳＣＬＫと同じ論理レベル（時刻ｔ９ではＬレベル）のマスク解除信号ＭＲが出力される。その後、選択クロック信号ＳＣＬＫがＨレベルに遷移すると（時刻ｔ１０）、マスク解除信号ＭＲがＬレベルからＨレベルに遷移し、そのマスク解除信号ＭＲの立ち上がりエッジに応答してマスク信号ＭＡＳＫがＬレベルに遷移する。これにより、クロック切替回路１の初期化が完了し、選択信号ＳＥＬａに応じて選択される入力クロック信号ＣＬＫ１が出力クロック信号ＣＬＫＯＵＴとして出力される。このように、図８に示したクロック切替回路１では、選択クロック信号ＳＣＬＫの立ち上がりエッジに同期して初期化が完了する。
【００６８】
・あるいは、図１０に示されるように、同期化回路１０及び解除回路６０の内部構成を変更するようにしてもよい。具体的には、図１０に示した同期化回路１０は、Ｄ−ＦＦ１１，１２と、ＡＮＤ回路１４，１５とを有している。ＡＮＤ回路１４は、選択信号ＳＥＬと初期化信号ＩＳとを論理積演算した結果を持つ信号をＤ−ＦＦ１１の入力端子Ｄに出力する。Ｄ−ＦＦ１１は、ＡＮＤ回路１４の出力信号を出力クロック信号ＣＬＫＯＵＴの立ち上がりエッジに同期して取り込み、その取り込んだ信号をＡＮＤ回路１５に出力する。ＡＮＤ回路１５は、Ｄ−ＦＦ１１の出力信号と初期化信号ＩＳとを論理積演算した結果を持つ信号Ｄ−ＦＦ１２の入力端子Ｄに出力する。Ｄ−ＦＦ１２は、ＡＮＤ回路１５の出力信号を出力クロック信号ＣＬＫＯＵＴの立ち上がりエッジに同期して取り込み、その取り込んだ信号を上記選択信号ＳＥＬａとして出力する。
【００６９】
また、図１０に示した解除回路６０は、２入力端子を有するＡＮＤ回路６８と、３入力端子を有するＯＲ回路６９と、２入力端子を有するＯＲ回路７０と、２入力端子を有するＡＮＤ回路７１とを有している。ＡＮＤ回路６８には、選択クロック信号ＳＣＬＫと、マスク信号ＭＡＳＫとが入力される。ＯＲ回路６９には、マスク信号ＭＡＳＫの反転レベルと、初期化信号ＩＳの反転レベルと、ＡＮＤ回路６８の出力信号とが入力される。ＯＲ回路７０には、初期化信号ＩＳと、選択クロック信号ＳＣＬＫとが入力される。ＡＮＤ回路７１には、ＯＲ回路６９の出力信号と、ＯＲ回路７０の出力信号とが入力される。そして、ＡＮＤ回路７１からマスク解除信号ＭＲが出力される。
【００７０】
次に、図１０に示したクロック切替回路１の動作を説明する。なお、ここでは、電源投入時において、Ｄ−ＦＦ１１，１２の出力端子Ｑから出力される信号がＬレベル、Ｄ−ＦＦ３１の反転出力端子ＸＱから出力される信号（マスク信号ＭＡＳＫ）がＬレベルになる場合の動作について説明する。
【００７１】
図１１に示す時刻ｔ１１の直前、つまり電源投入時においては、Ｄ−ＦＦ１２からＬレベルの選択信号ＳＥＬａが出力され、Ｄ−ＦＦ３１からＬレベルのマスク信号ＭＡＳＫが出力されているため、入力クロック信号ＣＬＫ１が選択クロック信号ＳＣＬＫとして出力され、入力クロック信号ＣＬＫ１が出力クロック信号ＣＬＫＯＵＴとして出力されている。続いて、時刻ｔ１１において初期化信号ＩＳがＬレベルに立ち下がると、ＯＲ回路６９からＨレベル固定の出力信号が出力され、ＯＲ回路７０から選択クロック信号ＳＣＬＫ（ここでは、入力クロック信号ＣＬＫ１）が出力信号として出力される。このため、ＡＮＤ回路７１から入力クロック信号ＣＬＫ１と同じ論理レベル（時刻ｔ１１ではＬレベル）のマスク解除信号ＭＲが出力される。その後、出力クロック信号ＣＬＫＯＵＴ（ここでは、入力クロック信号ＣＬＫ１）がＨレベルに遷移すると（時刻ｔ１２）、ＡＮＤ回路１４，１５から出力されるＬレベルの出力信号（Ｌレベルの初期化信号ＩＳ）がＤ−ＦＦ１１，１２に取り込まれ、Ｄ−ＦＦ１１，１２からＬレベルの出力信号が出力される。このようにして、Ｌレベルの初期化信号ＩＳによって選択信号ＳＥＬａの論理レベルがＬレベルに確定される。すなわち、同期化回路１０では、Ｌレベルの初期化信号ＩＳに基づいて選択信号ＳＥＬａがＬレベルに設定される（初期化される）。
【００７２】
また、上述のように入力クロック信号ＣＬＫ１がＨレベルに遷移すると、マスク解除信号ＭＲがＬレベルからＨレベルに遷移し、そのマスク解除信号ＭＲの立ち上がりエッジに応答して、マスク信号ＭＡＳＫがＬレベルに確定される。すなわち、解除回路６０では、上記初期化されたＬレベルの選択信号ＳＥＬａに応じて選択された入力クロック信号ＣＬＫ１のＬレベルからＨレベルの遷移に応答してマスク解除信号ＭＲが生成される。そして、マスク信号生成回路３０では、上記マスク解除信号ＭＲに基づいてマスク信号ＭＡＳＫの生成が停止される。これにより、クロック切替回路１の初期化が完了し、選択信号ＳＥＬａに応じて選択される入力クロック信号ＣＬＫ１が出力クロック信号ＣＬＫＯＵＴとして出力される。
【００７３】
このように、図１０に示したクロック切替回路１では、出力クロック信号ＣＬＫＯＵＴの立ち上がりエッジに同期して初期化が完了する。したがって、この変形例における初期化信号ＩＳは、Ｌレベルに立ち下がった後、出力クロック信号ＣＬＫＯＵＴがＬレベルからＨレベルに遷移するまではＬレベルを維持する必要がある。このため、例えば入力クロック信号ＣＬＫ１，ＣＬＫ２のいずれか一方の信号が出力クロック信号ＣＬＫＯＵＴとして出力されている定常動作状態において、ノイズ等に起因して初期化信号ＩＳがＬレベルに短時間だけ遷移しても、そのＬレベルの初期化信号ＩＳに応じてＤ−ＦＦ１１，１２，３１がクリアされることを抑制することができる。具体的には、例えば時刻ｔ１３において、初期化信号ＩＳがノイズ等に起因してＬレベルに遷移した場合であっても、初期化信号ＩＳがＬレベルの期間に出力クロック信号ＣＬＫＯＵＴのＨレベルへの遷移が発生しない限り、選択信号ＳＥＬａの論理レベルが意図せずに遷移することはない。このため、マスク開始信号ＭＳがＬレベルに立ち下がることを抑制でき、Ｄ−ＦＦ３１がクリアされることを抑制することができる。すなわち、意図せずにＨレベルのマスク信号ＭＡＳＫが生成されることを抑制することができる。このように、図１０に示したクロック切替回路１ではノイズ耐性を高めることができる。
【００７４】
なお、初期化信号ＩＳがＬレベルの期間は選択クロック信号ＳＣＬＫと同じ論理レベルのマスク解除信号ＭＲが出力され、初期化信号ＩＳがＨレベルの期間はＯＲ回路７０からＨレベル固定の出力信号が出力される。
【００７５】
・上記第１実施形態のクロック選択回路４０では、選択信号ＳＥＬａに応じて入力クロック信号ＣＬＫ１，ＣＬＫ２のいずれか一方の信号を選択した後に、その選択後の選択クロック信号ＳＣＬＫに対してマスク信号ＭＡＳＫでマスクするようにした。これに限らず、例えば入力クロック信号ＣＬＫ１，ＣＬＫ２の各々に対してマスク信号ＭＡＳＫでマスクした後に、選択信号ＳＥＬａに応じて１つのクロック信号を選択するようにしてもよい。この場合のクロック切替回路１の回路例を図１２に示している。クロック選択回路４０は、ＯＲ回路４７，４８とセレクタ４９とを有している。ＯＲ回路４７には入力クロック信号ＣＬＫ１とマスク信号ＭＡＳＫとが入力され、ＯＲ回路４８には入力クロック信号ＣＬＫ２とマスク信号ＭＡＳＫとが入力される。これらＯＲ回路４７，４８は、マスク信号ＭＡＳＫがＬレベルのときに、入力クロック信号ＣＬＫ１，ＣＬＫ２をそれぞれ出力信号としてセレクタ４９に出力する。また、ＯＲ回路４７，４８は、マスク信号ＭＡＳＫがＨレベルのときに、Ｈレベル固定の出力信号をそれぞれセレクタ４９に出力する。セレクタ４９は、Ｌレベルの選択信号ＳＥＬａに応じてＯＲ回路４７の出力信号を出力クロック信号ＣＬＫＯＵＴとして出力し、Ｈレベルの選択信号ＳＥＬａに応じてＯＲ回路４８の出力信号を出力クロック信号ＣＬＫＯＵＴとして出力する。このように、クロック選択回路４０は、マスク信号ＭＡＳＫ及び選択信号ＳＥＬａに応じて、入力クロック信号ＣＬＫ１，ＣＬＫ２又は所定レベル（Ｈレベル）に固定された信号を出力クロック信号ＣＬＫＯＵＴとして出力する。
【００７６】
また、この場合の解除回路６０は、ＮＡＮＤ回路７２，７３とセレクタ７４とを有している。ＮＡＮＤ回路７２にはマスク信号ＭＡＳＫと入力クロック信号ＣＬＫ１の反転レベルとが入力され、ＮＡＮＤ回路７３にはマスク信号ＭＡＳＫと入力クロック信号ＣＬＫ２の反転レベルとが入力される。これらＮＡＮＤ回路７２，７３は、マスク信号ＭＡＳＫがＬレベルのときに、Ｈレベル固定の出力信号をそれぞれセレクタ７４に出力する。また、ＮＡＮＤ回路７２，７３は、マスク信号ＭＡＳＫがＨレベルのときに、入力クロック信号ＣＬＫ１，ＣＬＫ２をそれぞれ出力信号としてセレクタ７４に出力する。セレクタ７４は、Ｌレベルの選択信号ＳＥＬａに応じてＮＡＮＤ回路７２の出力信号をマスク解除信号ＭＲとして出力し、Ｈレベルの選択信号ＳＥＬａに応じてＮＡＮＤ回路７３の出力信号をマスク解除信号ＭＲとして出力する。このような解除回路６０では、マスク信号ＭＡＳＫがＨレベルであって選択信号ＳＥＬａがＬレベルであるときに、その選択信号ＳＥＬａに応じて選択される入力クロック信号ＣＬＫ１がＬレベルからＨレベルに遷移すると、セレクタ７４から出力されるマスク解除信号ＭＲがＬレベルからＨレベルに遷移する。すると、そのマスク解除信号ＭＲの立ち上がりエッジに応答してマスク信号ＭＡＳＫがＬレベルに遷移する。このように、解除回路６０では、マスク信号ＭＡＳＫがＨレベルであるときに、選択信号ＳＥＬａにより選択される入力クロック信号のＬレベルからＨレベルへの遷移に応答して、マスク信号ＭＡＳＫの生成を停止するマスク解除信号ＭＲが生成される。
【００７７】
・上記第１実施形態のクロック選択回路４０では、選択信号ＳＥＬａに応じて入力クロック信号ＣＬＫ１，ＣＬＫ２のいずれか一方の信号を選択した後に、その選択後の選択クロック信号ＳＣＬＫに対してマスク信号ＭＡＳＫでマスクするようにした。これに限らず、例えば選択信号ＳＥＬａによる選択とマスク信号ＭＡＳＫによるマスクとを共通の回路で行うようにしてもよい。この場合のクロック切替回路１の回路例を図１３に示している。クロック選択回路４０は、インバータ回路５０と、３入力端子を有するＯＲ回路５１，５２と、ＡＮＤ回路５３とを有している。ＯＲ回路５１には、入力クロック信号ＣＬＫ１と、選択信号ＳＥＬａと、マスク信号ＭＡＳＫとが入力される。ＯＲ回路５２には、入力クロック信号ＣＬＫ２と、選択信号ＳＥＬａがインバータ回路５０により論理反転された信号と、マスク信号ＭＡＳＫとが入力される。ＡＮＤ回路５３は、ＯＲ回路５１の出力信号とＯＲ回路５２の出力信号とを論理積演算した結果を持つ信号を上記出力クロック信号ＣＬＫＯＵＴとして出力する。このようなクロック選択回路４０では、例えばマスク信号ＭＡＳＫがＬレベルであって選択信号ＳＥＬａがＬレベルである場合に、ＯＲ回路５１から入力クロック信号ＣＬＫ１が出力され、ＯＲ回路５２からＨレベル固定の出力信号が出力される。このため、この場合のＡＮＤ回路５３は、ＯＲ回路５１の出力信号、つまり入力クロック信号ＣＬＫ１を出力クロック信号ＣＬＫＯＵＴとして出力する。一方、例えばマスク信号ＭＡＳＫがＨレベルである場合には、ＯＲ回路５１，５２の双方からＨレベル固定の出力信号が出力されるため、ＡＮＤ回路５３からはＨレベル固定の出力クロック信号ＣＬＫＯＵＴが出力される。このように、クロック選択回路４０は、マスク信号ＭＡＳＫ及び選択信号ＳＥＬａに応じて、入力クロック信号ＣＬＫ１，ＣＬＫ２又はＨレベルに固定された信号を出力クロック信号ＣＬＫＯＵＴとして出力する。
【００７８】
また、この場合の解除回路６０は、インバータ回路７５，７６，７７と、３入力端子を有するＯＲ回路７８，７９と、ＡＮＤ回路８０とを有している。ＯＲ回路７８には、入力クロック信号ＣＬＫ１と、選択信号ＳＥＬａと、マスク信号ＭＡＳＫがインバータ回路７５により論理反転された信号とが入力される。ＯＲ回路７９には、入力クロック信号ＣＬＫ２と、選択信号ＳＥＬａがインバータ回路７６により論理反転された信号と、マスク信号ＭＡＳＫがインバータ回路７７により論理反転された信号とが入力される。ＡＮＤ回路８０は、ＯＲ回路７８の出力信号とＯＲ回路７９の出力信号とを論理積演算した結果を持つ上記マスク解除信号ＭＲを出力する。このような解除回路６０では、例えばマスク信号ＭＡＳＫがＨレベルであって選択信号ＳＥＬａがＬレベルである場合に、ＯＲ回路７８から入力クロック信号ＣＬＫ１が出力され、ＯＲ回路７９からＨレベル固定の出力信号が出力される。このため、この場合のＡＮＤ回路８０は、ＯＲ回路７８の出力信号、つまり入力クロック信号ＣＬＫ１をマスク解除信号ＭＲとして出力する。したがって、入力クロック信号ＣＬＫ１がＬレベルからＨレベルに遷移すると、マスク解除信号ＭＲもＬレベルからＨレベルに遷移する。すると、そのマスク解除信号ＭＲの立ち上がりエッジに応答してマスク信号ＭＡＳＫの生成が停止される。一方、例えばマスク信号ＭＡＳＫがＬレベルである場合には、ＯＲ回路７８，７９の双方からＨレベル固定の出力信号が出力されるため、ＡＮＤ回路８０からはＨレベル固定のマスク解除信号ＭＲが出力される。
【００７９】
・上記第１実施形態及び上記各変形例を適宜組み合わせるようにしてもよい。例えば図８に示したクロック切替回路１において、その図８に示したクロック選択回路４０及び解除回路６０を、図１２に示したクロック選択回路４０及び解除回路６０に変更するようにしてもよい。
【００８０】
（第２実施形態）
以下、第２実施形態を図１４及び図１５に従って説明する。この実施形態のクロック切替回路１Ａは、選択対象の入力クロック信号が２個から８個に増加している点が上記第１実施形態と異なっている。以下、第１実施形態との相違点を中心に説明する。
【００８１】
図１４に示すように、クロック切替回路１Ａは、同期化回路１０Ａと、検出回路２０Ａと、マスク信号生成回路３０と、クロック選択回路４０Ａと、解除回路６０とを有している。
【００８２】
同期化回路１０Ａは、Ｄ−ＦＦ１１，１２を含むＦＦ群１３Ａ〜１３Ｃを有している。ＦＦ群１３Ａ〜１３Ｃには、８つの入力クロック信号ＣＬＫ１〜ＣＬＫ８の中から１つの入力クロック信号を選択するために必要な３ビットの選択信号ＳＥＬ１〜ＳＥＬ３がそれぞれ供給される。ここで、同期化回路１０Ａ内のＦＦ群は、選択対象の入力クロック信号の数をＮとしたときに、ｌｏｇ２Ｎ（小数点以下切り上げ）個、ここではｌｏｇ２８＝ｌｏｇ２２３＝３個設けられている。
【００８３】
ＦＦ群１３Ａは、選択信号ＳＥＬ１を出力クロック信号ＣＬＫＯＵＴの立ち上がりエッジで同期化し、その同期化後の選択信号ＳＥＬ１ａを検出回路２０Ａ及びクロック選択回路４０Ａに出力する。ＦＦ群１３Ｂは、選択信号ＳＥＬ２を出力クロック信号ＣＬＫＯＵＴの立ち上がりエッジで同期化し、その同期化後の選択信号ＳＥＬ２ａを検出回路２０Ａ及びクロック選択回路４０Ａに出力する。ＦＦ群１３Ｃは、選択信号ＳＥＬ３を出力クロック信号ＣＬＫＯＵＴの立ち上がりエッジで同期化し、その同期化後の選択信号ＳＥＬ３ａを検出回路２０Ａ及びクロック選択回路４０Ａに出力する。
【００８４】
検出回路２０Ａは、インバータ回路２１及びＸＯＲ回路２２を含む検出部２３Ａ〜２３Ｃと、ＡＮＤ回路２５とを有している。検出部２３Ａ〜２３Ｃには、選択信号ＳＥＬ１ａ〜ＳＥＬ３ａがそれぞれ供給される。ここで、検出回路２０Ａ内の検出部は、選択対象の入力クロック信号の数をＮとしたときに、ｌｏｇ２Ｎ（小数点以下切り上げ）個、ここではｌｏｇ２８＝３個設けられている。
【００８５】
検出部２３Ａは、選択信号ＳＥＬ１ａの信号レベルの変化を検出したときにＸＯＲ回路２２からＬレベルの出力信号を出力する。検出部２３Ｂは、選択信号ＳＥＬ２ａの信号レベルの変化を検出したときにＸＯＲ回路２２からＬレベルの出力信号を出力する。検出部２３Ｃは、選択信号ＳＥＬ３ａの信号レベルの変化を検出したときにＸＯＲ回路２２からＬレベルの出力信号を出力する。そして、ＡＮＤ回路２５は、検出部２３Ａ〜２３Ｃ内のＸＯＲ回路２２、つまり３つのＸＯＲ回路２２の出力信号を論理積演算した結果を持つマスク開始信号ＭＳを生成する。すなわち、ＡＮＤ回路２５は、検出部２３Ａ〜２３Ｃにおいて選択信号ＳＥＬ１ａ〜ＳＥＬ３ａのいずれか１つの選択信号の信号レベルの変化が検出されたときに、Ｌレベルのマスク開始信号ＭＳを生成する。このマスク開始信号ＭＳは、マスク信号生成回路３０内のＤ−ＦＦ３１のクリア端子に供給される。
【００８６】
クロック選択回路４０Ａは、セレクタ４１Ａと、ＯＲ回路４２とを有している。セレクタ４１Ａは、選択信号ＳＥＬ１ａ〜ＳＥＬ３ａに応じて、入力クロック信号ＣＬＫ１〜ＣＬＫ８のいずれか１つの入力クロック信号を選択し、その選択した入力クロック信号を選択クロック信号ＳＣＬＫとして出力する。例えば選択信号ＳＥＬ１ａ〜ＳＥＬ３ａが全てＬレベルのときに入力クロック信号ＣＬＫ１が選択クロック信号ＳＣＬＫとして出力され、選択信号ＳＥＬ１ａ〜ＳＥＬ３ａが全てＨレベルのときに入力クロック信号ＣＬＫ８が選択クロック信号ＳＣＬＫとして出力される。この選択クロック信号ＳＣＬＫは、ＯＲ回路４２に供給されるとともに、解除回路６０内のＮＡＮＤ回路６１に供給される。
【００８７】
次に、上記クロック切替回路１Ａの動作を図１５に従って説明する。ここでは、入力クロック信号ＣＬＫ２から入力クロック信号ＣＬＫ８に切り替える動作について説明する。
時刻ｔ１４の直前においては、選択信号ＳＥＬ１ａがＨレベル、選択信号ＳＥＬ２ａがＬレベル、選択信号ＳＥＬ３ａがＬレベルであり、これら選択信号ＳＥＬ１ａ〜ＳＥＬ３ａに応じて入力クロック信号ＣＬＫ２が出力クロック信号ＣＬＫＯＵＴとして出力されている。その後、時刻ｔ１４において、入力クロック信号ＣＬＫ２から入力クロック信号ＣＬＫ８に切り替えるために選択信号ＳＥＬ２ａ，ＳＥＬ３ａがＬレベルからＨレベルに遷移される。すると、それら選択信号ＳＥＬ２ａ，ＳＥＬ３ａが出力クロック信号ＣＬＫＯＵＴ（ここでは、入力クロック信号ＣＬＫ２）で同期化され、出力クロック信号ＣＬＫＯＵＴの立ち上がりエッジに同期してＨレベルの選択信号ＳＥＬ２ａ，ＳＥＬ３ａが出力される（時刻ｔ１５）。
【００８８】
これら選択信号ＳＥＬ２ａ，ＳＥＬ３ａがＬレベルからＨレベルに遷移すると、その遷移（変化）に応答して検出部２３Ｂ，２３ＣからＬレベルの出力信号が所定期間だけ出力され、ＡＮＤ回路２５からＬレベルのマスク開始信号ＭＳが所定期間だけ出力される。このＬレベルのマスク開始信号ＭＳに応答してＤ−ＦＦ３１からＨレベルのマスク信号ＭＡＳＫが出力される。
【００８９】
一方、クロック選択回路４０では、上記遷移後の選択信号ＳＥＬ１ａ〜ＳＥＬ３ａに応じて入力クロック信号ＣＬＫ８がセレクタ４１で選択され、その入力クロック信号ＣＬＫ８が選択クロック信号ＳＣＬＫとして出力される。すなわち、セレクタ４１では、Ｈレベルの選択信号ＳＥＬ１ａ〜ＳＥＬ３ａに応じて、入力クロック信号ＣＬＫ２から入力クロック信号ＣＬＫ８への切り替えが行われる。但し、このときのＯＲ回路４２には上記Ｈレベルのマスク信号ＭＡＳＫが入力されるため、そのマスク信号ＭＡＳＫにより選択クロック信号ＳＣＬＫがマスクされ、出力クロック信号ＣＬＫＯＵＴがＨレベルに固定される。
【００９０】
また、上記時刻ｔ１５において、上記Ｈレベルのマスク信号ＭＡＳＫ及びＬレベルの選択クロック信号ＳＣＬＫに応じてマスク解除信号ＭＲがＬレベルに遷移する。その後、選択クロック信号ＳＣＬＫ（ここでは、入力クロック信号ＣＬＫ８）がＨレベルに遷移すると（時刻ｔ１６）、マスク解除信号ＭＲがＨレベルに立ち上がる。このマスク解除信号ＭＲの立ち上がりエッジに応答してマスク信号ＭＡＳＫがＨレベルからＬレベルに遷移する。すると、選択クロック信号ＳＣＬＫに対するマスクが解除されるため、その選択クロック信号ＳＣＬＫ（ここでは、クロック切替後の入力クロック信号ＣＬＫ８）が出力クロック信号ＣＬＫＯＵＴとして出力される。このようにして、入力クロック信号ＣＬＫ２から入力クロック信号ＣＬＫ８への切り替えが完了する。
【００９１】
以上説明した本実施形態によれば、上記第１実施形態と同様の効果を奏する。
（第２実施形態の変形例）
・上記第２実施形態のクロック切替回路１Ａにおける各回路１０Ａ，２０Ａ，３０，４０Ａ，６０を、上記第１実施形態の変形例と同様に変更するようにしてもよい。
【００９２】
・上記第２実施形態における解除回路６０の内部構成例は特に限定されない。例えばＮＡＮＤ回路６１の前段に、マスク信号ＭＡＳＫを所定時間だけ遅延させる遅延回路を設けるようにしてもよい。これにより、マスク信号ＭＡＳＫがＨレベルに遷移されてから所定時間経過後にＮＡＮＤ回路６１から選択クロック信号ＳＣＬＫが出力クロック信号ＣＬＫＯＵＴとして出力される。このため、クロック選択回路４０Ａ内のセレクタ４１Ａによるクロック切替が終了する前に、ＮＡＮＤ回路６１から選択クロック信号ＳＣＬＫ（クロック切替前の入力クロック信号）が出力クロック信号ＣＬＫＯＵＴとして出力されることを好適に抑制することができる。
【００９３】
・上記第２実施形態における検出回路２０の内部構成例は特に限定されない。例えばＡＮＤ回路２５から出力されるマスク開始信号ＭＳを所定時間だけ遅延させた信号をＡＮＤ回路２５に出力する遅延回路を設けるようにしてもよい。これにより、マスク開始信号ＭＳがＬレベルに遷移された後、所定時間だけＬレベルのマスク開始信号ＭＳの出力を維持することができる。
【００９４】
（他の実施形態）
なお、上記各実施形態は、これを適宜変更した以下の態様にて実施することもできる。
・上記各実施形態では、非同期クロックである入力クロック信号ＣＬＫ１，ＣＬＫ２（又は、第２実施形態の入力クロック信号ＣＬＫ１〜ＣＬＫ８）を切り替えるクロック切替回路に具体化したが、非同期クロックの関係にない複数の入力クロック信号を切り替えるクロック切替回路に具体化してもよい。例えば、入力クロック信号ＣＬＫ１と、その入力クロック信号ＣＬＫ１を分周して生成した入力クロック信号ＣＬＫ２とを切り替えるクロック切替回路に具体化してもよい。
【００９５】
・上記各実施形態では、入力クロック信号ＣＬＫ１，ＣＬＫ２に対して非同期信号である選択信号ＳＥＬに応じて入力クロック信号ＣＬＫ１，ＣＬＫ２を切り替えるようにした。また、入力クロック信号ＣＬＫ１〜ＣＬＫ８に対して非同期信号である選択信号ＳＥＬ１〜ＳＥＬ３に応じて入力クロック信号ＣＬＫ１〜ＣＬＫ８を切り替えるようにした。これに限らず、例えば入力クロック信号ＣＬＫ１〜ＣＬＫ８の少なくとも１つの入力クロック信号に同期した選択信号に応じて入力クロック信号ＣＬＫ１〜ＣＬＫ８を切り替えるようにしてもよい。
【符号の説明】
【００９６】
１，１Ａ  クロック切替回路
１０，１０Ａ  同期化回路
２０，２０Ａ  検出回路
２１  インバータ回路
２２  ＸＯＲ回路（第１論理回路）
３０  マスク信号生成回路
４０，４０Ａ  クロック選択回路
４１，４１Ａ  セレクタ（選択回路）
４２  ＯＲ回路（第２論理回路）
６０  解除回路
ＣＬＫ１〜ＣＬＫ８  入力クロック信号
ＣＬＫＯＵＴ  出力クロック信号
ＳＥＬ，ＳＥＬ１，ＳＥＬ２，ＳＥＬ３  選択信号
ＳＥＬａ，ＳＥＬ１ａ，ＳＥＬ２ａ，ＳＥＬ３ａ  選択信号（同期化後の選択信号）
ＭＡＳＫ  マスク信号
ＭＳ  マスク開始信号
ＭＲ  マスク解除信号
ＩＳ  初期化信号
ＳＣＬＫ  選択クロック信号
【図１】
0005900053.tif 000002
【図２】
0005900053.tif 000003
【図３】
0005900053.tif 000004
【図４】
0005900053.tif 000005
【図５】
0005900053.tif 000006
【図６】
0005900053.tif 000007
【図７】
0005900053.tif 000008
【図８】
0005900053.tif 000009
【図９】
0005900053.tif 000010
【図１０】
0005900053.tif 000011
【図１１】
0005900053.tif 000012
【図１２】
0005900053.tif 000013
【図１３】
0005900053.tif 000014
【図１４】
0005900053.tif 000015
【図１５】
0005900053.tif 000016
【図１６】
0005900053.tif 000017