(57)【要約】【課題】  ハザードを生じることなく早いタイミングでのクロック切り替えが可能なクロック切り替え回路を提供すること。【解決手段】  第１のクロックＣＬＫ１と、第２のクロックＣＬＫ２と、クロックＣＬＫ１とクロックＣＬＫ２を切り替えるためのクロック切り替え実行信号ＣＥＳとを受け、クロックＣＬＫ２が第１のレベルである期間に信号ＣＥＳがアクティブになった場合に、クロックＣＬＫ１の立ち上がりエッジまたは立ち下がりエッジを含む前後の所与の期間、クロックＣＬＫ２のレベルを第２のレベルに固定してクロック切り替え用合成クロックＣＭＰとして出力する合成クロック生成回路３００と、クロックＣＭＰと、信号ＣＥＳとを受け、クロックの切り替え指示信号ＣＤＳを出力する切り替え指示信号生成回路２００と、信号ＣＤＳがアクティブになった場合に、第１のクロック選択信号ＣＳＳ１のレベルを変化させるクロック選択信号生成回路１００と、信号ＣＳＳ１のレベルに応じて、クロックＣＬＫ１またはクロックＣＭＰのいずれかを選択して出力する第１のセレクタ４００を含む。【選択図】      図１
2006033032.tif 000002
【特許請求の範囲】
【請求項１】
第１のクロックと、前記第１のクロックとは周波数が異なる第２のクロックと、前記第１のクロックと前記第２のクロックを切り替えるためのクロック切り替え実行信号とを受け、前記第２のクロックが第１のレベルである期間にクロック切り替え実行信号がアクティブになった場合に、前記第１のクロックの立ち上がりエッジまたは立ち下がりエッジを含む前後の所与の期間、前記第２のクロックのレベルを第２のレベルに固定してクロック切り替え用合成クロックとして出力する合成クロック生成回路と、
前記クロック切り替え用合成クロックと、前記クロック切り替え実行信号とを受け、クロックの切り替え指示信号を出力する切り替え指示信号生成回路と、
前記切り替え指示信号がアクティブになった場合に、第１のクロック選択信号のレベルを変化させるクロック選択信号生成回路と、
前記クロック選択信号生成回路からの前記第１のクロック選択信号のレベルに応じて、前記第１のクロックまたは前記クロック切り替え用合成クロックのいずれかを選択して出力する第１のセレクタを含むことを特徴とするクロック切り替え回路。
【請求項２】
請求項１において、
前記第１のクロックの立ち上がりエッジまたは立ち下がりエッジを含む前後の所与の期間は、前記第１のクロックの立ち上がりエッジまたは立ち下がりエッジの前の１クロック期間と、前記第１のクロックの立ち上がりエッジまたは立ち下がりエッジの後ろの１クロック期間で構成されることを特徴とするクロック切り替え回路。
【請求項３】
請求項１または２において、
前記合成クロック生成回路は、
前記切り替え実行信号と前記第２のクロックが入力される第１のＯＲ回路と、
前記第１のＯＲ回路の出力を前記第１のクロックに基づいて保持し、保持された信号を出力することで、前記クロック切り替え用合成クロックを前記切り替え指示信号生成回路及び前記第１のセレクタに出力する合成クロック用フリップフロップと、
を含み、
前記第１のレベルはローレベルであり、前記第２のレベルはハイレベルであり、
前記第１のＯＲ回路は、前記第２のクロックがローレベルである期間であっても、前記クロック切り替え実行信号がアクティブに設定された場合はハイレベルの信号を前記合成クロック用フリップフロップに出力することを特徴とするクロック切り替え回路。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記切り替え指示信号生成回路は、前記切り替え実行信号と前記合成クロック生成回路の出力が入力される第１のＡＮＤ回路を含み、
前記第１のＡＮＤ回路は、前記切り替え実行信号がアクティブであり、且つ、前記合成クロック生成回路の前記合成クロックがハイレベルである場合に、前記切り替え指示信号をアクティブに設定することを特徴とするクロック切り替え回路。
【請求項５】
請求項１または２において、
前記合成クロック生成回路は、
前記切り替え実行信号と前記第２のクロックが入力される第２のＡＮＤ回路と、
前記第２のＡＮＤ回路の出力を前記第１のクロックに基づいて保持し、保持された信号を出力することで、前記クロック切り替え用合成クロックを前記切り替え指示信号生成回路及び前記第１のセレクタに出力する合成クロック用フリップフロップと、
を含み、
前記第１のレベルはハイレベルであり、前記第２のレベルはローレベルであり、
前記第２のＡＮＤ回路は、前記第２のクロックがハイレベルである期間であっても、前記クロック切り替え実行信号がアクティブに設定された場合はローレベルの信号を前記合成クロック用フリップフロップに出力することを特徴とするクロック切り替え回路。
【請求項６】
請求項１または２または５のいずれかにおいて、
前記切り替え指示信号生成回路は、前記切り替え実行信号と前記合成クロック生成回路の出力が入力される第２のＯＲ回路を含み、
前記第２のＯＲ回路は、前記切り替え実行信号がアクティブであり、且つ、前記合成クロック生成回路の前記合成クロックがローレベルである場合に、前記切り替え指示信号をアクティブに設定することを特徴とするクロック切り替え回路。
【請求項７】
請求項１乃至６のいずれかにおいて、
前記クロック選択信号生成回路は、
選択信号用セレクタと、
前記選択信号用セレクタの出力信号を前記第１のクロックに基づいて保持し、保持された信号を前記選択信号用セレクタ及び前記第１のセレクタに前記第１のクロック選択信号として出力する選択信号用フリップフロップとを含み、
前記選択信号用セレクタは、前記選択信号用フリップフロップからの前記第１のクロック選択信号と、クロック切り替え時に前記第１のセレクタに選択されるクロックを決定するための第２のクロック選択信号とを受け、前記切り替え指示信号生成回路からの前記切り替え指示信号に基づいて、前記第１のクロック選択信号または前記第２のクロック選択信号のいずれかを前記選択信号用フリップフロップに出力することを特徴とするクロック切り替え回路。
【請求項８】
請求項７において、
前記選択信号用セレクタは、前記切り替え指示信号生成回路の前記切り替え指示信号がアクティブに設定されると、前記第２のクロック選択信号を前記選択信号用フリップフロップに出力することを特徴とするクロック切り替え回路。
【請求項９】
請求項１乃至８のいずれかにおいて、
複数のクロックを受け、前記複数のクロックのうちの任意のクロックを選択して、前記第２のクロックとして前記合成クロック生成回路に出力する第２のセレクタをさらに含むことを特徴とするクロック切り替え回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロック切り替え回路に関する。
【背景技術】
【０００２】
例えば複数のクロックを受け、切り替え信号に基づいて複数のクロックのうちの１つを出力するセレクタでは、一方のクロックから他方のクロックに切り替える際にハザードと称されるパルス幅の狭いクロックパルスが生じる場合がある。このハザードは、例えば一方のクロックのレベルがハイレベルであって、他方のクロックのレベルがローレベルである時に、切り替え信号がアクティブに設定されクロック切り替えが行われた場合に生じる可能性がある。これは、セレクタ内での切り替え信号の遅延に起因する。このハザードは他の回路の誤動作等を引き起こす可能性があるため、ハザードを生じさせないために一方のクロック及び他方のクロックの双方がハイレベルまたはローレベルである期間でクロック切り替えを行う必要があり、従来のクロック切り替え回路は短い時間でクロック切り替えを行うことができなかった。
【０００３】
また、他の手法によってハザードの発生を防止するクロック切り替え回路が考案されている（特許文献１）。特許文献１に記載されているクロック切り替え回路は、クロック切り替え時にまず一方のクロック出力を停止し、所定の時間が経過した後に他方のクロックを出力するような構成である。
【０００４】
特許文献１を含む従来のクロック切り替え回路は、ハザードの発生を防止することができるが、クロック切り替えに要する時間が長くなってしまうという課題を有する。
【特許文献１】特開平８−１０７４０６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、ハザードを生じることなく早いタイミングでのクロック切り替えが可能なクロック切り替え回路を提供することにある。
【課題を解決するための手段】
【０００６】
本発明は、第１のクロックと、前記第１のクロックとは周波数が異なる第２のクロックと、前記第１のクロックと前記第２のクロックを切り替えるためのクロック切り替え実行信号とを受け、前記第２のクロックが第１のレベルである期間にクロック切り替え実行信号がアクティブになった場合に、前記第１のクロックの立ち上がりエッジまたは立ち下がりエッジを含む前後の所与の期間、前記第２のクロックのレベルを第２のレベルに固定してクロック切り替え用合成クロックとして出力する合成クロック生成回路と、前記クロック切り替え用合成クロックと、前記クロック切り替え実行信号とを受け、クロックの切り替え指示信号を出力する切り替え指示信号生成回路と、前記切り替え指示信号がアクティブになった場合に、第１のクロック選択信号のレベルを変化させるクロック選択信号生成回路と、前記クロック選択信号生成回路からの前記第１のクロック選択信号のレベルに応じて、前記第１のクロックまたは前記クロック切り替え用合成クロックのいずれかを選択して出力する第１のセレクタを含むクロック切り替え回路に関する。
【０００７】
本発明によれば、クロック切り替えを行う際、前記第１のクロックの立ち上がりエッジまたは立ち下がりエッジを含む前後の所与の期間、前記第２のクロックのレベルを第２のレベルに固定することができるので、ハザードを生じさせることなく短い期間でクロック切り替えを完了することができる。
【０００８】
また、本発明では、前記第１のクロックの立ち上がりエッジまたは立ち下がりエッジを含む前後の所与の期間は、前記第１のクロックの立ち上がりエッジまたは立ち下がりエッジの前の１クロック期間と、前記第１のクロックの立ち上がりエッジまたは立ち下がりエッジの後ろの１クロック期間で構成されてもよい。
【０００９】
本発明によれば、第１のクロックの少なくとも２クロックの期間でハザードを生じさせることなくクロック切り替えを完了することができる。
【００１０】
また、本発明では、前記合成クロック生成回路は、前記切り替え実行信号と前記第２のクロックが入力される第１のＯＲ回路と、前記第１のＯＲ回路の出力を前記第１のクロックに基づいて保持し、保持された信号を出力することで、前記クロック切り替え用合成クロックを前記切り替え指示信号生成回路及び前記第１のセレクタに出力する合成クロック用フリップフロップと、を含み、前記第１のレベルはローレベルであり、前記第２のレベルはハイレベルであり、前記第１のＯＲ回路は、前記第２のクロックがローレベルである期間であっても、前記クロック切り替え実行信号がアクティブに設定された場合はハイレベルの信号を前記合成クロック用フリップフロップに出力するようにしてもよい。
【００１１】
本発明によれば、切り替え実行信号がアクティブに設定されると、合成クロック生成回路は、合成クロック生成回路の出力を前記所定の期間、ハイレベルに固定することができるので、第２のクロックがローレベルである期間であってもクロック切り替えを行うことができる。即ち、第２のクロックがローレベルである期間であっても、第２のクロックのレベルがハイレベルになるまで待機する必要なしに、短い期間でクロック切り替えを完了することができる。
【００１２】
また、本発明では、前記切り替え指示信号生成回路は、前記切り替え実行信号と前記合成クロック生成回路の出力が入力される第１のＡＮＤ回路を含み、前記第１のＡＮＤ回路は、前記切り替え実行信号がアクティブであり、且つ、前記合成クロック生成回路の前記合成クロックがハイレベルである場合に、前記切り替え指示信号をアクティブに設定するようにしてもよい。
【００１３】
本発明によれば、クロック切り替え用合成クロックのレベルがハイレベルである期間にクロック切り替え指示信号をアクティブに設定することができるので、クロック切り替え
の際にハザードの発生を防止できる。
【００１４】
また、本発明では、前記合成クロック生成回路は、前記切り替え実行信号と前記第２のクロックが入力される第２のＡＮＤ回路と、前記第２のＡＮＤ回路の出力を前記第１のクロックに基づいて保持し、保持された信号を出力することで、前記クロック切り替え用合成クロックを前記切り替え指示信号生成回路及び前記第１のセレクタに出力する合成クロック用フリップフロップと、を含み、前記第１のレベルはハイレベルであり、前記第２のレベルはローレベルであり、前記第２のＡＮＤ回路は、前記第２のクロックがハイレベルである期間であっても、前記クロック切り替え実行信号がアクティブに設定された場合はローレベルの信号を前記合成クロック用フリップフロップに出力するようにしてもよい。
【００１５】
本発明によれば、切り替え実行信号がアクティブに設定されると、合成クロック生成回路は、合成クロック生成回路の出力を前記所定の期間、ローレベルに固定することができるので、第２のクロックがハイレベルである期間であってもクロック切り替えを行うことができる。即ち、第２のクロックがハイレベルである期間であっても、第２のクロックのレベルがローレベルになるまで待機する必要なしに、短い期間でクロック切り替えを完了することができる。
【００１６】
また、本発明では、前記切り替え指示信号生成回路は、前記切り替え実行信号と前記合成クロック生成回路の出力が入力される第２のＯＲ回路を含み、前記第２のＯＲ回路は、前記切り替え実行信号がアクティブであり、且つ、前記合成クロック生成回路の前記合成クロックがローレベルである場合に、前記切り替え指示信号をアクティブに設定するようにしてもよい。
【００１７】
本発明によれば、クロック切り替え用合成クロックのレベルがローレベルである期間にクロック切り替え指示信号をアクティブに設定することができるので、クロック切り替え
の際にハザードの発生を防止できる。
【００１８】
また、本発明では、前記クロック選択信号生成回路は、選択信号用セレクタと、前記選択信号用セレクタの出力信号を前記第１のクロックに基づいて保持し、保持された信号を前記選択信号用セレクタ及び前記第１のセレクタに前記第１のクロック選択信号として出力する選択信号用フリップフロップとを含み、前記選択信号用セレクタは、前記選択信号用フリップフロップからの前記第１のクロック選択信号と、クロック切り替え時に前記第１のセレクタに選択されるクロックを決定するための第２のクロック選択信号とを受け、前記切り替え指示信号生成回路からの前記切り替え指示信号に基づいて、前記第１のクロック選択信号または前記第２のクロック選択信号のいずれかを前記選択信号用フリップフロップに出力するようにしてもよい。
【００１９】
本発明によれば、第１のクロック及びクロック切り替え用合成クロックのレベルが双方ともローレベルまたはハイレベルである期間にクロック切り替えを行うことができるので、ハザードの発生を確実に防止でき、短い期間でクロック切り替えを完了することができる。
【００２０】
また、本発明では、前記選択信号用セレクタは、前記切り替え指示信号生成回路の前記切り替え指示信号がアクティブに設定されると、前記第２のクロック選択信号を前記選択信号用フリップフロップに出力するようにしてもよい。
【００２１】
また、本発明では、複数のクロックを受け、前記複数のクロックのうちの任意のクロックを選択して、前記第２のクロックとして前記合成クロック生成回路に出力する第２のセレクタをさらに含むようにしてもよい。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の一実施形態について、図面を参照して説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成のすべてが本発明の必須構成要件であるとは限らない。
【００２３】
１．第１実施形態に係るクロック切り替え回路
図１は、第１実施形態に係るクロック切り替え回路１０００を示すブロック図である。クロック切り替え回路１０００は、第１のクロック選択信号ＣＳＳ１を出力するクロック選択信号生成回路１００と、クロック切り替え実行信号ＣＥＳ及び合成クロックＣＭＰに基づいて切り替え指示信号ＣＤＳを出力する切り替え指示信号生成回路２００とを含む。また、クロック切り替え回路１０００は、第１のクロック（基準クロックとも言う）ＣＬＫ１、第２のクロックＣＬＫ２及びクロック切り替え実行信号ＣＥＳに基づいて合成クロックＣＭＰ（広義にはクロック切り替え用合成クロック）を出力する合成クロック生成回路３００を含む。
【００２４】
また、クロック切り替え回路１０００は、出力クロックＣＬＫ３を出力する第１のセレクタ４００と、第３のクロック選択信号ＣＳＳ３に基づいて第２のクロックＣＬＫ２を出力する第２のセレクタ５００とを含む。また、クロック切り替え回路１０００は、第１のクロックＣＬＫ１に基づいて複数の分周クロックを出力する分周回路６００を含む。
【００２５】
クロック切り替え回路１０００は上記の構成に限定されず、クロック切り替え回路１０００は、例えば第２のセレクタ５００や分周回路６００を含まない構成でもよい。
【００２６】
クロック選択信号生成回路１００は、切り替え指示信号生成回路２００から出力される切り替え指示信号ＣＤＳ、第１のクロックＣＬＫ１（広義には第１のクロック）及び第２のクロック選択信号ＣＳＳ２に基づいて、第１のセレクタ４００に第１のクロック選択信号ＣＳＳ１を出力する。なお、第２のクロック選択信号ＣＳＳ２は、クロック切り替え時に第１のセレクタ４００から出力クロックＣＬＫ３として出力されるクロックを、合成クロックＣＭＰまたは第１のクロックＣＬＫ１のいずれかに決定するための信号である。例えば、第２のクロック選択信号ＣＳＳ２がハイレベルに設定されている場合には、クロック選択信号生成回路１００は、第１のセレクタ４００が合成クロックＣＭＰを出力クロックＣＬＫ３として出力するように、第１のクロック選択信号ＣＳＳ１のレベルを例えばハイレベルに設定する。即ち、図１のクロック切り替え回路１０００では、第２のクロック選択信号ＣＳＳ２がハイレベルに設定されると、第１のクロック選択信号ＣＳＳ１がハイレベルに設定され、結果として合成クロックＣＭＰが第１のセレクタ４００から出力される。但し、上記の構成は一例であって、クロック切り替え回路１０００は、第２のクロック選択信号ＣＳＳ２がハイレベルに設定された場合に第１のセレクタ４００から第１のクロックＣＬＫ１が出力されるような構成でもよい。また、クロック切り替え回路１０００は、第１のクロック選択信号ＣＳＳ１がハイレベルに設定された場合、第１のセレクタ４００から第１のクロックＣＬＫ１が出力されるような構成でもよい。
【００２７】
合成クロック生成回路３００は、第２のクロックＣＬＫ２を受け、クロック切り替え実行信号ＣＥＳがアクティブに設定されると、例えば第１のクロックＣＬＫ１の立ち上がりエッジに応じて合成クロックＣＭＰを例えばハイレベルに設定する。合成クロック生成回路３００は、クロック切り替え実行信号ＣＥＳがアクティブに設定されている期間に基づいて、合成クロックＣＭＰのレベルの例えばハイレベルである期間を設定する。
【００２８】
クロック切り替え実行信号ＣＥＳがノンアクティブに設定されている場合には、合成クロック生成回路３００は、第２のクロックＣＬＫ２に基づいて合成クロックＣＭＰを出力する。この場合、合成クロック生成回路３００は、例えば第２のクロックＣＬＫ２を遅延させて合成クロックＣＭＰとして出力するが、例えば第２のクロックＣＬＫ２をそのまま合成クロックＣＭＰとして出力してもよい。
【００２９】
第２のセレクタ５００は、分周回路６００から出力される複数のクロックを受け、第３のクロック選択信号ＣＳＳ３に基づいて複数のクロックのいずれかを選択して、第２のクロックＣＬＫ２として合成クロック生成回路３００に出力する。
【００３０】
分周回路６００は、第１のクロックＣＬＫ１を分周することで、複数のクロックを生成し第２のセレクタ５００に出力する。例えば、分周回路６００は、３つの分周クロックＣＬＫ５〜ＣＬＫ７を生成し、第２のセレクタ５００に出力するがこれに限定されない。例えば分周回路６００は、１つの分周クロック、２つの分周クロック、４つの分周クロック等、ｎ（ｎは自然数）個の分周クロックを生成し出力するようにしてもよい。なお、クロックＣＬＫ４は、常時一定レベル、例えばハイレベルに設定される。これは、第２のセレクタ５００は例えば４つの入力が設けられているのに対して、分周回路６００は３つの分周クロックＣＬＫ５〜ＣＬＫ７を第２のセレクタ５００に出力するためである。以下の図において同符号のものは同様の意味を表す。
【００３１】
図２は、クロック切り替え回路１０００の一部を示す回路図である。クロック選択信号生成回路１００は、選択信号用セレクタ１１０と、選択信号用フリップフロップ１２０を含むがこれに限定されない。例えば、クロック選択信号生成回路１００は選択信号用セレクタ１１０を含まない構成でもよい。
【００３２】
切り替え指示信号生成回路２００は、第１のＡＮＤ回路２１０を含む。合成クロック生成回路３００は、第１のＯＲ回路３１０と、合成クロック用フリップフロップ３２０を含むが、これに限定されない。例えば、合成クロック生成回路３００は、第１のＯＲ回路３１０を含まない構成でもよい。
【００３３】
例えば合成クロックＣＭＰが第１のセレクタ４００から出力クロックＣＬＫ３として出力されている状態から、第１のセレクタ４００の出力クロックＣＬＫ３を第１のクロックＣＬＫ１に切り替えたい場合を説明する。この場合、クロック切り替えを行う際にクロック切り替え実行信号ＣＥＳがアクティブに設定され、第２のクロック選択信号ＣＳＳ２は例えばローレベルに設定される。
【００３４】
例えば第１のＯＲ回路３１０の入力ノードＮＤ１及び第１のＡＮＤ回路２１０の入力ノードＮＤ３にはアクティブな信号、例えばハイレベルの信号が入力される。これにより、第１のＯＲ回路３１０はハイレベルの信号を合成クロック用フリップフロップ３２０に出力する。
【００３５】
合成クロック用フリップフロップ３２０は、例えば第１のクロックＣＬＫ１の立ち上がりエッジに応じて第１のＯＲ回路３１０から入力されたハイレベルの信号を保持し、例えば第１のクロックＣＬＫ１の次の立ち上がりエッジが合成クロック用フリップフロップ３２０に入力されるまで、ハイレベルの信号を例えば第１のＡＮＤ回路２１０の入力ノードＮＤ４及び第１のセレクタ４００に出力する。
【００３６】
この場合、第１のＡＮＤ回路２１０の入力ノードＮＤ３及びＮＤ４にはハイレベルの信号が入力されるので、第１のＡＮＤ回路２１０は例えばハイレベルの信号を選択信号用セレクタ１１０に出力する。選択信号用セレクタ１１０は、第１のＡＮＤ回路２１０の出力信号のレベルに応じて、選択信号用セレクタ１１０の入力ノードＮＤ５、ＮＤ６のそれぞれに入力される信号のいずれかを選択して選択信号用フリップフロップ１２０に出力する。例えば、選択信号用セレクタ１１０は、第１のＡＮＤ回路２１０からハイレベルの信号を受けると、入力ノードＮＤ６に入力される第２のクロック選択信号ＣＳＳ２を選択し選択信号用フリップフロップ１２０に出力する。
【００３７】
このとき第１のクロック選択信号ＣＳＳ２は、ローレベルに設定されているので、例えば選択信号用フリップフロップ１２０は第１のクロックＣＬＫ１の立ち上がりエッジに応じて選択信号用セレクタ１１０の出力信号であるローレベルの信号を保持し、次の第１のクロックＣＬＫ１の例えば立ち上がりエッジが入力されるまで、ローレベルの信号を選択信号用セレクタ１１０の入力ノードＮＤ５及び第１のセレクタ４００に出力する。
【００３８】
第１のセレクタ４００は、クロック選択信号生成回路１００の選択信号用フリップフロップ１２０からローレベルの信号（広義には第１のクロック選択信号ＣＳＳ１）を受け、合成クロックＣＭＰから第１のクロックＣＬＫ１に切り替えて、第１のクロックＣＬＫ１を出力クロックＣＬＫ３として出力する。
【００３９】
上述のように出力クロックＣＬＫ３が設定されるクロック切り替え回路１０００では、クロック切り替えを行う場合には、クロック切り替え実行信号ＣＥＳがアクティブ（例えばハイレベルの信号）に設定される。さらに、クロック切り替え回路１０００の出力クロックＣＬＫ３を第１のクロックＣＬＫ１に設定したい場合は、第２のクロック選択信号ＣＳＳ２は例えばローレベルの信号に設定される。また、クロック切り替え回路１０００の出力クロックＣＬＫ３を合成クロックＣＭＰ（広義には第２のクロック）に設定したい場合は、第２のクロック選択信号ＣＳＳ２は例えばハイレベルの信号に設定される。
【００４０】
図３は、第１のセレクタ４００の構成を示す回路図である。第１のセレクタ４００は、ＯＲ回路ＯＲ１、ＯＲ２、ＡＮＤ回路ＡＮＤ１を含む。ＯＲ回路ＯＲ１の入力ノードＮＤ７には、合成クロックＣＭＰが入力され、入力ノードＮＤ８には、第１のクロック選択信号ＣＳＳ１の反転信号が入力される。また、ＯＲ回路ＯＲ２の入力ノードＮＤ９には、第１のクロック選択信号ＣＳＳ１が入力され、入力ノードＮＤ１０には、第１のクロックＣＬＫ１が入力される。ＡＮＤ回路ＡＮＤ１は、ＯＲ回路ＯＲ１、ＯＲ２の出力を受けて、出力クロックＣＬＫ３を出力する。
【００４１】
例えば、第１のクロック選択信号ＣＳＳ１がハイレベルに設定された場合、ＯＲ回路ＯＲ１の入力ノードＮＤ８には、反転された信号であるローレベルの信号が入力され、ＯＲ回路ＯＲ２の入力ノードＮＤ９には、ハイレベルの信号が入力される。このとき、ＯＲ回路ＯＲ１の出力信号のレベルは、合成クロックＣＭＰのレベルに応じて変化し、ＯＲ回路ＯＲ２の出力信号のレベルは、ノードＮＤ９にハイレベルの信号が入力されている間は、常にハイレベルとなる。これにより、ＡＮＤ回路ＡＮＤ１の出力レベルは合成クロックＣＭＰの信号レベルに応じて変化する。即ち、出力クロックＣＬＫ３は、合成クロックＣＭＰに基づいたクロック信号となる。
【００４２】
反対に、第１のクロック選択信号ＣＳＳ１がローレベルに設定された場合、ＯＲ回路ＯＲ１の入力ノードＮＤ８には、反転された信号であるハイレベルの信号が入力され、ＯＲ回路ＯＲ２の入力ノードＮＤ９には、ローレベルの信号が入力される。このとき、ＯＲ回路ＯＲ１の出力信号のレベルは、ノードＮＤ８にハイレベルの信号が入力されている間は、常にハイレベルとなり、ＯＲ回路ＯＲ２の出力信号のレベルは、第１のクロックＣＬＫ１のレベルに応じて変化する。これにより、ＡＮＤ回路ＡＮＤ１の出力レベルは第１のクロックＣＬＫ１の信号レベルに応じて変化する。即ち、出力クロックＣＬＫ３は、第１のクロックＣＬＫ１に基づいたクロック信号となる。
【００４３】
上述のように、第１のセレクタ４００は、第１のクロック選択信号ＣＳＳ１に基づいて合成クロックＣＭＰ及び第１のクロックＣＬＫ１を切り替えて、出力クロックＣＬＫ３として出力する。
【００４４】
次に図２と図４を参照しながらクロック切り替え回路１０００の動作を説明する。図４は、第２のクロックＣＬＫ２から第１のクロック（基準クロック）ＣＬＫ１に切り替える際のクロック切り替え実行信号ＣＥＳや切り替え指示信号ＣＤＳ等を示すタイミングチャートである。なお、図４では第２のクロックＣＬＫ２として例えば１／８分周クロックが入力されているが、これに限定されない。第２のクロックＣＬＫ２は、第１のクロックＣＬＫ１に基づいて分周された分周クロックであればよく、例えば１／２分周クロックでもよいし、１／１６分周クロックでもよい。また、図４の符号ｔ１〜ｔ８は、時間を示す。
【００４５】
例えば図１の第２のセレクタ５００から出力された第２のクロックＣＬＫ２が、図２の第１のＯＲ回路３１０の入力ノードＮＤ２に入力される。ノードＮＤ２に入力されている信号が図４のＢ１で示されるように立ち上がると、図２の第１のＯＲ回路３１０の出力信号Ａ１は図４のＢ２に示されるように立ち上がる。そして、出力信号Ａ１を受ける合成クロック用フリップフロップ３２０は、Ｂ３に示される第１のクロックＣＬＫ１の立ち上がりエッジに応じて、Ｂ４に示されるハイレベルの信号を第１のＡＮＤ回路２１０及び第１のセレクタ４００に出力する。なお、時間ｔ１における第１のＯＲ回路３１０の出力信号Ａ１はローレベルの信号であるため、時間ｔ１からｔ２の期間では、合成クロック用フリップフロップ３２０の出力信号はローレベルである。
【００４６】
その後、ノードＮＤ２に入力されている信号がＢ５に示されるように立ち下がると、図２の第１のＯＲ回路３１０の出力信号Ａ１は図４のＢ６に示されるように立ち下がる。そして、出力信号Ａ１を受ける合成クロック用フリップフロップ３２０は、第１のＡＮＤ回路２１０及び第１のセレクタ４００に出力する信号を、Ｂ７に示される第１のクロックＣＬＫ１の立ち上がりエッジに応じて、Ｂ８に示されるように立ち下げる。なお、時間ｔ２、ｔ３、ｔ４、ｔ５における第１のＯＲ回路３１０の出力信号Ａ１はハイレベルの信号であるため、時間ｔ２からｔ６の期間では、合成クロック用フリップフロップ３２０の出力信号はハイレベルである。
【００４７】
時間ｔ１からｔ８までの期間では、第１のクロック選択信号ＣＳＳ１はハイレベルに設定されているため、この期間での第１のセレクタ４００から出力される出力クロックＣＬＫ３は、合成クロック用フリップフロップ３２０の出力、即ち合成クロックＣＭＰである。ここで、時間ｔ１からｔ７までの期間において、第２のクロックＣＬＫ２のパルス幅Ｃ１、合成クロックＣＭＰのパルス幅Ｃ２及び出力クロックＣＬＫ３のパルス幅Ｃ３を比較すると、すべて同じことが図４からわかる。つまり、このときの合成クロックＣＭＰは、第２のクロックＣＬＫ２が合成クロック生成回路３００によって遅延されて出力されたクロックであり、この合成クロックＣＭＰが第１のセレクタ４００から出力クロックＣＬＫ３として出力される。
【００４８】
ここで、例えば、Ｂ９に示されるようにクロック切り替え実行信号ＣＥＳが立ち上がり、アクティブに設定されると、第１のＯＲ回路３１０の入力ノードＮＤ１及び第１のＡＮＤ回路２１０の入力ノードＮＤ３にはハイレベルの信号が入力される。これによって、Ｂ１０に示されるように第１のＯＲ回路３１０の出力信号Ａ１は立ち上がり、ハイレベルの信号に設定される。第１のＯＲ回路３１０の出力信号Ａ１を受ける合成クロック用フリップフロップ３２０は、第１のクロックＣＬＫ１のＢ１１に示される立ち上がりエッジに応じて、Ｂ１２に示されるハイレベルの信号を第１のＡＮＤ回路２１０の入力ノードＮＤ４及び第１のセレクタ４００に出力する。
【００４９】
切り替え実行信号ＣＥＳがアクティブに設定されることで、時間ｔ７からｔ８において第１のＡＮＤ回路２１０の入力ノードＮＤ３、ＮＤ４にハイレベルの信号が入力され、切り替え指示信号ＣＤＳはＢ１３のようにアクティブ（ハイレベル）に設定される。選択信号用セレクタ１１０はアクティブな切り替え指示信号ＣＤＳを受け、選択信号用セレクタ１１０のノードＮＤ６に入力される第２のクロック選択信号ＣＳＳ２を選択信号用セレクタ１１０の出力信号Ａ２として選択信号用フリップフロップ１２０に出力する。第２のクロックＣＬＫ２から第１のクロックＣＬＫ１に切り替える際には第２のクロック選択信号ＣＳＳ２は例えばローレベルに設定される。即ち、選択信号用セレクタ１１０は、アクティブな切り替え指示信号ＣＤＳを受け、ローレベルに設定されている第２のクロック選択信号ＣＳＳ２に基づいて、図４のＢ１４に示されるように出力信号Ａ２を立ち下げる。
【００５０】
ローレベルに設定された出力信号Ａ２を受ける選択信号用フリップフロップ１２０は、第１のクロックＣＬＫ１のＢ１５に示される立ち上がりエッジに応じて、Ｂ１６に示されるように第１のクロック選択信号ＣＳＳ１を立ち下げ、ローレベルに設定された第１のクロック選択信号ＣＳＳ１を選択信号用セレクタ１１０の入力ノードＮＤ５及び第１のセレクタ４００に出力する。なお、Ｂ１７にしめされるようにクロック切り替え実行信号ＣＥＳが立ち下げられることで、切り替え指示信号ＣＤＳもＢ１８に示されるように立ち下げられる。これにより、クロック切り替え実行信号ＣＥＳがローレベルに設定されている間は、選択信号用セレクタ１１０は入力ノードＮＤ５に入力される第１のクロック選択信号ＣＳＳ１を選択信号用フリップフロップ１２０に出力するため、再度クロック切り替え実行信号ＣＥＳがアクティブに設定されるまでは、第１のクロック選択信号ＣＳＳ１はローレベルに維持される。
【００５１】
第１のセレクタ４００は、ローレベルに設定された第１のクロック選択信号ＣＳＳ１を受け、出力クロックＣＬＫ３をＢ１９に示されるように第１のクロックＣＬＫ１に切り替える。図４によると、時間ｔ８以降、出力クロックＣＬＫ３は第１のクロックＣＬＫ１に切り替えられていることがわかる。切り替えを行う際のクロック切り替え実行信号ＣＥＳは、Ｂ９に示されるようにアクティブに設定されている。つまり、Ｂ９に示されるように立ち上げられてから、Ｂ１９に示されるようにクロック切り替えが行われるまでに要した期間はＣ４に示される期間であり、第１のクロックＣＬＫ１のおよそ２クロックである。
【００５２】
さらに、図５を用いて、第２のクロックＣＬＫ２から第１のクロックＣＬＫ１に切り替える際の動作を説明する。図５は、図４とほぼ同様のタイミングチャートであるが、クロック切り替え実行信号ＣＥＳをアクティブに設定するタイミングが図４とは異なる場合のタイミングチャートである。図４のタイミングチャートと同様に、Ｂ２０に示される第２のクロックＣＬＫ２が図２の第１のＯＲ回路３１０のノードＮＤ２に入力されるので、Ｂ２１で示されるハイレベルの出力信号Ａ１が合成クロック用フリップフロップ３２０に出力される。時間ｔ２での第１のクロックＣＬＫ１の例えば立ち上がりエッジに応じて、合成クロック用フリップフロップ３２０からＢ２２に示されるハイレベルの信号が合成クロックＣＭＰとして出力される。
【００５３】
例えば切り替え実行信号ＣＥＳがＢ２３で示されるように立ち上げられ、Ｂ２４で示されるように立ち下げられると、Ｃ５で示される期間において図２の第１のＡＮＤ回路２１０の入力ノードＮＤ３、ＮＤ４のレベルが双方ともハイレベルに設定されるので、切り替え指示信号ＣＤＳはＢ２５で示されるように立ち上がり、Ｂ２６で示されるように立ち下がる。
【００５４】
この切り替え指示信号ＣＤＳを受ける選択信号用セレクタ１１０は、例えばローレベルに設定された第２のクロック選択信号ＣＳＳ２に基づいてローレベルの信号を選択信号用フリップフロップ１２０に出力するので、選択信号用セレクタ１１０の出力信号Ａ２は、Ｂ２７に示されるように立ち下げられ、ローレベルの信号に設定される。時間ｔ５での第１のクロックＣＬＫ１の例えば立ち上がりエッジに応じて、選択信号用フリップフロップ１２０はローレベルの出力信号Ａ２に基づいてローレベルの信号を第１のクロック選択信号ＣＳＳ１として第１のセレクタ４００に出力する。これにより、第１のクロック選択信号ＣＳＳ１はＢ２８に示されるように立ち下げられ、ローレベルの信号に設定される。
【００５５】
ローレベルの第１のクロック選択信号ＣＳＳ１を受け、第１のセレクタ４００はＢ２９に示されるように出力クロックＣＬＫ３を第２のクロックＣＬＫ２から第１のクロックＣＬＫ１に切り替えて出力する。ここで、クロック切り替え実行信号ＣＥＳは、Ｂ２３でアクティブに設定されている。つまり、Ｂ２３に示されるように立ち上げられてから、Ｂ２９に示されるようにクロック切り替えが行われるまでに要した期間はＣ５に示される期間、第１のクロックＣＬＫ１のおよそ１クロックである。
【００５６】
つまり、第２のクロックＣＬＫ２がハイレベルである期間にクロック切り替え実行信号ＣＥＳがアクティブに設定されると、第１のクロックＣＬＫ１のおよそ１クロックの期間でクロック切り替えが完了する。また、第２のクロックＣＬＫ２がローレベルである期間にクロック切り替え実行信号ＣＥＳがアクティブに設定されても、第１のクロックＣＬＫ１のおよそ２クロックの期間でクロック切り替えが完了する。なお、いずれの場合も第１のクロック選択信号ＣＳＳ１のレベルが変更される時は、第１のクロックＣＬＫ１及び合成クロックＣＭＰがハイレベルであるので、クロック切り替え回路１０００は第１のセレクタ４００からパルス幅の短いハザードが出力されることを防止できる。
【００５７】
図６は、図１の第２のセレクタ５００を示す回路図である。第２のセレクタ５００はセレクタＳＬ１〜ＳＬ３で構成され、各セレクタＳＬ１〜ＳＬ３は例えば２つのＯＲ回路及び１つのＡＮＤ回路を含む。セレクタＳＬ１、ＳＬ２の各出力はセレクタＳＬ３に出力される。第１実施形態では、クロックＣＬＫ４のレベルはハイレベルに固定される。図１の第３のクロック選択信号ＣＳＳ３は、例えばクロック選択信号ＣＳＳ３１、ＣＳＳ３２で構成される。
【００５８】
例えば、クロック選択信号ＣＳＳ３１及びＣＳＳ３２がハイレベルに設定されると、セレクタＳＬ１ではＯＲ回路ＯＲ３、ＯＲ４の出力はハイレベルとなりＡＮＤ回路ＡＮＤ２の出力はハイレベルとなるので、セレクタＳＬ１の出力はハイレベルとなる。このとき、セレクタＳＬ２では、ＯＲ回路ＯＲ５の出力はクロックＣＬＫ６に基づく出力となり、ＯＲ回路ＯＲ６はハイレベルとなるので、ＡＮＤ回路ＡＮＤ３の出力はクロックＣＬＫ６となる。これにより、セレクタＳＬ３のＯＲ回路ＯＲ７にはハイレベルの信号が入力され、ＯＲ回路ＯＲ８にはクロックＣＬＫ６が入力されるので、セレクタＳＬ３の出力はクロックＣＬＫ６となる。
【００５９】
このように、クロック選択信号ＣＳＳ３１、ＣＳＳ３２のレベルの設定の組み合わせにより、第２のセレクタ５００の出力クロックＣＬＫ２が切り替えられる。
【００６０】
第１実施形態では、第２のセレクタ５００は、一例として３つの分周クロックＣＬＫ５〜ＣＬＫ７を切り替えるが、これに限定されない。より複数の場合のクロックを切り替える場合は、セレクタＳＬ１、ＳＬ２の各入力に例えばセレクタＳＬ１と同様のセレクタを設ければよい。
【００６１】
また、各セレクタＳＬ１〜ＳＬ３は、図８で示されるような例えば２つのＡＮＤ回路及び１つのＯＲ回路で構成されたセレクタでもよい。
【００６２】
２．第２実施形態に係るクロック切り替え回路
第２実施形態に係るクロック切り替え回路１００１は、図１の第１実施形態のクロック選択信号生成回路１００、切り替え指示信号生成回路２００、合成クロック生成回路３００及び第１のセレクタ４００の構成が異なる。その他の構成は第１実施形態と同様である。クロック切り替え回路１００１は、クロック選択信号生成回路１０１、切り替え指示信号生成回路２０１、合成クロック生成回路３０１及び第１のセレクタ４０１を含むがこれに限定されない。クロック切り替え回路１００１は、例えばクロック選択信号生成回路１０１を省略する構成でもよい。
【００６３】
図７は、クロック切り替え回路１００１の一部を示す回路図である。クロック選択信号生成回路１０１は、選択信号用セレクタ１１１と、選択信号用フリップフロップ１２１を含むがこれに限定されない。例えば、クロック選択信号生成回路１０１は選択信号用セレクタ１１１を含まない構成でもよい。
【００６４】
切り替え指示信号生成回路２０１は、第２のＯＲ回路２１１を含む。合成クロック生成回路３０１は、第２のＡＮＤ回路３１１と、合成クロック用フリップフロップ３２１を含むが、これに限定されない。例えば、合成クロック生成回路３０１は、第２のＡＮＤ回路３１１を含まない構成でもよい。
【００６５】
例えば合成クロックＣＭＰが第１のセレクタ４０１から出力クロックＣＬＫ３として出力されている状態から、第１のセレクタ４０１の出力クロックＣＬＫ３を第１のクロックＣＬＫ１に切り替えたい場合を説明する。この場合、クロック切り替えを行う際にクロック切り替え実行信号ＣＥＳがアクティブに設定され、第２のクロック選択信号ＣＳＳ２は例えばハイレベルに設定される。
【００６６】
例えば第２のＡＮＤ回路３１１の入力ノードＮＤ１１及び第２のＯＲ回路２１１の入力ノードＮＤ１３にはアクティブな信号、例えばローレベルの信号が入力される。これにより、第２のＡＮＤ回路３１１はローレベルの信号を合成クロック用フリップフロップ３２１に出力する。
【００６７】
合成クロック用フリップフロップ３２１は、例えば第１のクロックＣＬＫ１の立ち下がりエッジに応じて第２のＡＮＤ回路３１１から入力されたローレベルの信号を保持し、例えば第１のクロックＣＬＫ１の次の立ち下がりエッジが合成クロック用フリップフロップ３２１に入力されるまで、ローレベルの信号を例えば第２のＯＲ回路２１１の入力ノードＮＤ１４及び第１のセレクタ４０１に出力する。
【００６８】
この場合、第２のＯＲ回路２１１の入力ノードＮＤ１３及びＮＤ１４にはローレベルの信号が入力されるので、第２のＯＲ回路２１１は例えばローレベルの信号を選択信号用セレクタ１１１に出力する。選択信号用セレクタ１１１は、第２のＯＲ回路２１１の出力信号のレベルに応じて、選択信号用セレクタ１１１の入力ノードＮＤ１５、ＮＤ１６のそれぞれに入力される信号のいずれかを選択して選択信号用フリップフロップ１２１に出力する。例えば、選択信号用セレクタ１１１は、第２のＯＲ回路２１１からローレベルの信号を受けると、入力ノードＮＤ１６に入力される第２のクロック選択信号ＣＳＳ２を選択し選択信号用フリップフロップ１２１に出力する。
【００６９】
このとき第１のクロック選択信号ＣＳＳ２は、ハイレベルに設定されているので、例えば選択信号用フリップフロップ１２１は第１のクロックＣＬＫ１の立ち下がりエッジに応じて選択信号用セレクタ１１１の出力信号であるハイレベルの信号を保持し、次の第１のクロックＣＬＫ１の例えば立ち下がりエッジが入力されるまで、ハイレベルの信号を選択信号用セレクタ１１１の入力ノードＮＤ１５及び第１のセレクタ４０１に出力する。
【００７０】
第１のセレクタ４０１は、クロック選択信号生成回路１０１の選択信号用フリップフロップ１２１からハイレベルの信号（広義には第１のクロック選択信号ＣＳＳ１）を受け、合成クロックＣＭＰから第１のクロックＣＬＫ１に切り替えて、第１のクロックＣＬＫ１を出力クロックＣＬＫ３として出力する。
【００７１】
上述のように出力クロックＣＬＫ３が設定されるクロック切り替え回路１００１では、クロック切り替えを行う場合には、クロック切り替え実行信号ＣＥＳがアクティブ（例えばローレベルの信号）に設定される。さらに、クロック切り替え回路１００１の出力クロックＣＬＫ３を第１のクロックＣＬＫ１に設定したい場合は、第２のクロック選択信号ＣＳＳ２は例えばハイレベルの信号に設定される。また、クロック切り替え回路１００１の出力クロックＣＬＫ３を合成クロックＣＭＰ（広義には第２のクロック）に設定したい場合は、第２のクロック選択信号ＣＳＳ２は例えばローレベルの信号に設定される。
【００７２】
図８は、第１のセレクタ４０１の構成を示す回路図である。第１のセレクタ４０１は、ＯＲ回路ＯＲ９、ＡＮＤ回路ＡＮＤ５、ＡＮＤ６を含む。ＡＮＤ回路ＡＮＤ５の入力ノードＮＤ１７には、合成クロックＣＭＰが入力され、入力ノードＮＤ１８には、第１のクロック選択信号ＣＳＳ１の反転信号が入力される。また、ＡＮＤ回路ＡＮＤ６の入力ノードＮＤ１９には、第１のクロック選択信号ＣＳＳ１が入力され、入力ノードＮＤ２０には、第１のクロックＣＬＫ１が入力される。ＯＲ回路ＯＲ９は、ＡＮＤ回路ＡＮＤ５、ＡＮＤ６の出力を受けて、出力クロックＣＬＫ３を出力する。
【００７３】
例えば、第１のクロック選択信号ＣＳＳ１がローレベルに設定された場合、ＡＮＤ回路ＡＮＤ５の入力ノードＮＤ１８には、反転された信号であるハイレベルの信号が入力され、ＡＮＤ回路ＡＮＤ６の入力ノードＮＤ１９には、ローレベルの信号が入力される。このとき、ＡＮＤ回路ＡＮＤ５の出力信号のレベルは、合成クロックＣＭＰのレベルに応じて変化し、ＡＮＤ回路ＡＮＤ６の出力信号のレベルは、ノードＮＤ１９にローレベルの信号が入力されている間は、常にローレベルとなる。これにより、ＯＲ回路ＯＲ９の出力レベルは合成クロックＣＭＰの信号レベルに応じて変化する。即ち、出力クロックＣＬＫ３は、合成クロックＣＭＰに基づいたクロック信号となる。
【００７４】
反対に、第１のクロック選択信号ＣＳＳ１がハイレベルに設定された場合、ＡＮＤ回路ＡＮＤ５の入力ノードＮＤ１８には、反転された信号であるローレベルの信号が入力され、ＡＮＤ回路ＡＮＤ６の入力ノードＮＤ１９には、ハイレベルの信号が入力される。このとき、ＡＮＤ回路ＡＮＤ５の出力信号のレベルは、ノードＮＤ１８にローレベルの信号が入力されている間は、常にローレベルとなり、ＡＮＤ回路ＡＮＤ６の出力信号のレベルは、第１のクロックＣＬＫ１のレベルに応じて変化する。これにより、ＯＲ回路ＯＲ９の出力レベルは第１のクロックＣＬＫ１の信号レベルに応じて変化する。即ち、出力クロックＣＬＫ３は、第１のクロックＣＬＫ１に基づいたクロック信号となる。
【００７５】
上述のように、第１のセレクタ４０１は、第１のクロック選択信号ＣＳＳ１に基づいて合成クロックＣＭＰ及び第１のクロックＣＬＫ１を切り替えて、出力クロックＣＬＫ３として出力する。
【００７６】
次に図７と図９を参照しながらクロック切り替え回路１００１の動作を説明する。図９は、第２のクロックＣＬＫ２から第１のクロック（基準クロック）ＣＬＫ１に切り替える際のクロック切り替え実行信号ＣＥＳや切り替え指示信号ＣＤＳ等を示すタイミングチャートである。なお、図９では第２のクロックＣＬＫ２として例えば１／８分周クロックが入力されているが、これに限定されない。第２のクロックＣＬＫ２は、第１のクロックＣＬＫ１に基づいて分周された分周クロックであればよく、例えば１／２分周クロックでもよいし、１／１６分周クロックでもよい。
【００７７】
例えば図１の第２のセレクタ５００から出力された第２のクロックＣＬＫ２が、図７の第２のＡＮＤ回路３１１の入力ノードＮＤ１２に入力される。ノードＮＤ１２に入力されている信号が図９のＤ１で示されるように立ち上がると、図７の第２のＡＮＤ回路３１１の出力信号Ａ３は図９のＤ２に示されるように立ち上がる。そして、出力信号Ａ３を受ける合成クロック用フリップフロップ３２１は、Ｄ３に示される第１のクロックＣＬＫ１の立ち下がりエッジに応じて、Ｄ４に示されるローレベルの信号を第２のＯＲ回路２１１及び第１のセレクタ４０１に出力する。なお、時間ｔ１における第２のＡＮＤ回路３１１の出力信号Ａ３はハイレベルの信号であるため、時間ｔ１からｔ２の期間では、合成クロック用フリップフロップ３２１の出力信号はハイレベルである。
【００７８】
その後、ノードＮＤ１２に入力されている信号がＤ５に示されるように立ち上がると、図７の第２のＡＮＤ回路３１１のノードＮＤ１１にはハイレベルに設定されたクロック切り替え実行信号ＣＥＳが入力されているので出力信号Ａ３は図９のＤ６に示されるように立ち上がる。そして、出力信号Ａ３を受ける合成クロック用フリップフロップ３２１は、第２のＯＲ回路２１１及び第１のセレクタ４０１に出力する信号を、Ｄ７に示される第１のクロックＣＬＫ１の立ち下がりエッジに応じて、Ｄ８に示されるように立ち上げる。なお、時間ｔ２、ｔ３、ｔ４、ｔ５における第２のＡＮＤ回路３１１の出力信号Ａ３はローレベルの信号であるため、時間ｔ２からｔ６の期間では、合成クロック用フリップフロップ３２１の出力信号はローレベルである。
【００７９】
時間ｔ１からｔ８までの期間では、第１のクロック選択信号ＣＳＳ１はローレベルに設定されているため、この期間での第１のセレクタ４０１から出力される出力クロックＣＬＫ３は、合成クロック用フリップフロップ３２１の出力、即ち合成クロックＣＭＰである。ここで、時間ｔ１からｔ７までの期間において、第２のクロックＣＬＫ２のパルス幅Ｃ１１、合成クロックＣＭＰのパルス幅Ｃ１２及び出力クロックＣＬＫ３のパルス幅Ｃ１３を比較すると、すべて同じことが図９からわかる。つまり、このときの合成クロックＣＭＰは、第２のクロックＣＬＫ２が合成クロック生成回路３０１によって遅延されて出力されたクロックであり、この合成クロックＣＭＰが第１のセレクタ４０１から出力クロックＣＬＫ３として出力される。
【００８０】
ここで、例えば、Ｄ９に示されるようにクロック切り替え実行信号ＣＥＳが立ち下がり、アクティブに設定されると、第２のＡＮＤ回路３１１の入力ノードＮＤ１１及び第２のＯＲ回路２１１の入力ノードＮＤ１３にはローレベルの信号が入力される。これによって、Ｄ１０に示されるように第２のＡＮＤ回路３１１の出力信号Ａ３は立ち下がり、ローレベルの信号に設定される。第２のＡＮＤ回路３１１の出力信号Ａ３を受ける合成クロック用フリップフロップ３２１は、第１のクロックＣＬＫ１のＤ１１に示される立ち下がりエッジに応じて、Ｄ１２に示されるローレベルの信号を第２のＯＲ回路２１１の入力ノードＮＤ１４及び第１のセレクタ４０１に出力する。
【００８１】
切り替え実行信号ＣＥＳがアクティブに設定されることで、時間ｔ７からｔ８において第２のＯＲ回路２１１の入力ノードＮＤ１３、ＮＤ４にローレベルの信号が入力され、切り替え指示信号ＣＤＳはＤ１３のようにアクティブ（ローレベル）に設定される。選択信号用セレクタ１１１はアクティブな切り替え指示信号ＣＤＳを受け、選択信号用セレクタ１１１のノードＮＤ１６に入力される第２のクロック選択信号ＣＳＳ２を選択信号用セレクタ１１１の出力信号Ａ４として選択信号用フリップフロップ１２１に出力する。第２のクロックＣＬＫ２から第１のクロックＣＬＫ１に切り替える際には第２のクロック選択信号ＣＳＳ２は例えばハイレベルに設定される。即ち、選択信号用セレクタ１１１は、アクティブな切り替え指示信号ＣＤＳを受け、ハイレベルに設定されている第２のクロック選択信号ＣＳＳ２に基づいて、図９のＤ１４に示されるように出力信号Ａ４を立ち上げる。
【００８２】
ハイレベルに設定された出力信号Ａ４を受ける選択信号用フリップフロップ１２１は、第１のクロックＣＬＫ１のＤ１５に示される立ち下がりエッジに応じて、Ｄ１６に示されるように第１のクロック選択信号ＣＳＳ１を立ち上げ、ハイレベルに設定された第１のクロック選択信号ＣＳＳ１を選択信号用セレクタ１１１の入力ノードＮＤ１５及び第１のセレクタ４０１に出力する。なお、Ｄ１７にしめされるようにクロック切り替え実行信号ＣＥＳが立ち上げられることで、切り替え指示信号ＣＤＳもＤ１８に示されるように立ち上げられる。これにより、クロック切り替え実行信号ＣＥＳがハイレベルに設定されている間は、選択信号用セレクタ１１１は入力ノードＮＤ１５に入力される第１のクロック選択信号ＣＳＳ１を選択信号用フリップフロップ１２１に出力するため、再度クロック切り替え実行信号ＣＥＳがアクティブに設定されるまでは、第１のクロック選択信号ＣＳＳ１はハイレベルに維持される。
【００８３】
第１のセレクタ４０１は、ハイレベルに設定された第１のクロック選択信号ＣＳＳ１を受け、出力クロックＣＬＫ３をＤ１９に示されるように第１のクロックＣＬＫ１に切り替える。図９によると、時間ｔ８以降、出力クロックＣＬＫ３は第１のクロックＣＬＫ１に切り替えられていることがわかる。切り替えを行う際のクロック切り替え実行信号ＣＥＳは、Ｄ９に示されるようにアクティブに設定されている。つまり、Ｄ９に示されるように立ち下げられてから、Ｄ１９に示されるようにクロック切り替えが行われるまでに要した期間はＣ１４に示される期間であり、第１のクロックＣＬＫ１のおよそ２クロックである。
【００８４】
さらに、図１０を用いて、第２のクロックＣＬＫ２から第１のクロックＣＬＫ１に切り替える際の動作を説明する。図１０は、図９とほぼ同様のタイミングチャートであるが、クロック切り替え実行信号ＣＥＳをアクティブに設定するタイミングが図９とは異なる場合のタイミングチャートである。図９のタイミングチャートと同様に、Ｄ２０に示される第２のクロックＣＬＫ２が図７の第２のＡＮＤ回路３１１のノードＮＤ１２に入力されるので、Ｄ２１で示されるローレベルの出力信号Ａ３が合成クロック用フリップフロップ３２１に出力される。時間ｔ２での第１のクロックＣＬＫ１の例えば立ち下がりエッジに応じて、合成クロック用フリップフロップ３２１からＤ２２に示されるローレベルの信号が合成クロックＣＭＰとして出力される。
【００８５】
例えば切り替え実行信号ＣＥＳがＤ２３で示されるように立ち下げられ、Ｄ２４で示されるように立ち上げられると、Ｃ１５で示される期間において図７の第２のＯＲ回路２１１の入力ノードＮＤ１３、ＮＤ４のレベルが双方ともローレベルに設定されるので、切り替え指示信号ＣＤＳはＤ２５で示されるように立ち下がり、Ｄ２６で示されるように立ち上がる。
【００８６】
この切り替え指示信号ＣＤＳを受ける選択信号用セレクタ１１１は、例えばハイレベルに設定された第２のクロック選択信号ＣＳＳ２に基づいて、ハイレベルの信号を選択信号用フリップフロップ１２１に出力するので、選択信号用セレクタ１１１の出力信号Ａ４は、Ｄ２７に示されるように立ち上げられ、ハイレベルの信号に設定される。時間ｔ５での第１のクロックＣＬＫ１の例えば立ち下がりエッジに応じて、選択信号用フリップフロップ１２１はハイレベルの出力信号Ａ４に基づいてハイレベルの信号を第１のクロック選択信号ＣＳＳ１として第１のセレクタ４０１に出力する。これにより、第１のクロック選択信号ＣＳＳ１はＤ２８に示されるように立ち上げられ、ハイレベルの信号に設定される。
【００８７】
ハイレベルの第１のクロック選択信号ＣＳＳ１を受け、第１のセレクタ４０１はＤ２９に示されるように出力クロックＣＬＫ３を第２のクロックＣＬＫ２から第１のクロックＣＬＫ１に切り替えて出力する。ここで、クロック切り替え実行信号ＣＥＳは、Ｄ２３でアクティブに設定されている。つまり、Ｄ２３に示されるように立ち上げられてから、Ｄ２９に示されるようにクロック切り替えが行われるまでに要した期間はＣ１５に示される期間、第１のクロックＣＬＫ１のおよそ１クロックである。
【００８８】
つまり、第２のクロックＣＬＫ２がローレベルである期間にクロック切り替え実行信号ＣＥＳがアクティブに設定されると、第１のクロックＣＬＫ１のおよそ１クロックの期間でクロック切り替えが完了する。また、第２のクロックＣＬＫ２がハイレベルである期間にクロック切り替え実行信号ＣＥＳがアクティブに設定されても、第１のクロックＣＬＫ１のおよそ２クロックの期間でクロック切り替えが完了する。なお、いずれの場合も第１のクロック選択信号ＣＳＳ１のレベルが変更される時は、第１のクロックＣＬＫ１及び合成クロックＣＭＰがローレベルであるので、クロック切り替え回路１００１は第１のセレクタ４０１からパルス幅の短いハザードが出力されることを防止できる。
【００８９】
３．第１実施形態及び第２実施形態と、比較例との対比
図１１は、第１実施形態及び第２実施形態のクロック切り替え回路１０００、１００１に対する比較例であるクロック切り替え回路２０００を示す回路図である。クロック切り替え回路２０００は、基準クロックＣＬＫ１１に基づいて複数の分周クロックを出力する分周回路２１００、セレクタ２２００、フリップフロップ２３００及びセレクタ２４００を含むが、これに限定されない。クロック切り替え回路２０００は、例えばフリップフロップ２３００またはセレクタ２４００を省略する構成でもよい。分周回路２１００は、基準クロックＣＬＫ１１に基づいて、例えば１／２分周クロックＣＬＫ１２、１／４分周クロックＣＬＫ１３、１／８分周クロックＣＬＫ１４をセレクタ２２００に出力する。
【００９０】
図１２は、図１１のクロック切り替え回路２０００において、クロック切り替えを行うタイミングを示すためのタイミングチャートである。クロック切り替え回路２０００のセレクタ２２００が、例えば図８で示されているようなセレクタを含む構成である場合、クロック切り替えは、各クロックＣＬＫ１１〜ＣＬＫ１４がすべてローレベルである期間内（例えばＥ１、Ｅ２で示されるタイミング）に行われる必要がある。この場合、その他の期間でクロック切り替えを行ってしまうと、例えばセレクタ内のインバータ等によって信号遅延が生じ、出力クロックＣＬＫ１５にはパルス幅の狭いハザードが含まれてしまう。
【００９１】
また、クロック切り替え回路２０００のセレクタ２２００が、例えば図３で示されているようなセレクタを含む構成である場合、クロック切り替えは、各クロックＣＬＫ１１〜ＣＬＫ１４がすべてハイレベルである期間期間内（例えばＥ３、Ｅ４で示されるタイミング）に行われる必要がある。この場合、その他の期間でクロック切り替えを行ってしまうと、例えばセレクタ内のインバータ等によって信号遅延が生じ、出力クロックＣＬＫ１５にはパルス幅の狭いハザードが含まれてしまう。
【００９２】
図１２から明らかなように、例えばセレクタ２２００が図８のセレクタを含む場合、Ｅ１のタイミングでクロック切り替えを行えなかった場合は、Ｅ２のタイミングまでクロック切り替えを行えない。同様に、セレクタ２２００が図３のセレクタを含む場合のクロック切り替えが可能なタイミングは、Ｅ３のタイミングの次はＥ４のタイミングである。いずれの場合も、クロック切り替え可能なタイミングは、基準クロックＣＬＫ１１の８クロック分の間隔があり、クロック切り替えを素早く行うことができない。また、セレクタ２２００に入力されるクロックの数が、図１２では４つであるが、この入力されるクロックの数が増加すると、前述のクロック切り替えタイミングの間隔はさらに長くなってしまう。また、分周クロックの周期がより長い場合も、前述のクロック切り替えタイミングの間隔をさらに長くしてしまう。
【００９３】
一方、第１実施形態及び第２実施形態のクロック切り替え回路１０００、１００１は、いずれもクロック切り替え実行信号がアクティブに設定されてから、第１のクロックＣＬＫ１の１クロックまたは２クロックで示される期間でクロック切り替えを完了できる。これは、比較例のクロック切り替え回路２０００に比べて、短い期間でクロック切り替えを完了することができることを意味する。例えば、第２のクロックＣＬＫ２が第１のクロックＣＬＫ１が分周された１／８分周クロックである場合であっても、クロック切り替え回路１０００、１００１は、第１のクロックＣＬＫ１のおよそ１クロックまたは２クロックでクロック切り替えを完了することができる。さらに、クロック切り替え回路１０００、１００１では、クロック切り替えされるクロックの数によらず、第１のクロックＣＬＫ１の１クロックまたは２クロックで示される期間でクロック切り替えを完了できる。また、クロック切り替え回路１０００、１００１では、入力される分周クロックの周期の長さにもよらず、第１のクロックＣＬＫ１の１クロックまたは２クロックで示される期間でクロック切り替えを完了できる。
【００９４】
上述のように、第１実施形態及び第２実施形態のクロック切り替え回路１０００、１００１は、複数のクロックに対して、ハザードの発生を防止しながら短い期間でクロック切り替えを完了することができる。
【００９５】
なお、本発明は、上記実施形態で説明されたものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語（第１のクロックＣＬＫ１、第２のクロックＣＬＫ２等）として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語（基準クロックＣＬＫ１、分周クロック等）に置き換えることができる。
【図面の簡単な説明】
【００９６】
【図１】第１実施形態または第２実施形態に係るクロック切り替え回路を示すブロック図。
【図２】第１実施形態に係るクロック切り替え回路の一部を示す回路図。
【図３】第１実施形態に係る第１のセレクタを示す回路図。
【図４】第１実施形態に係るクロック切り替え回路の動作を示すタイミングチャート。
【図５】第１実施形態に係るクロック切り替え回路の他の動作を示すタイミングチャート。
【図６】第１実施形態または第２実施形態に係るクロック切り替え回路の第２のセレクタを示す回路図。
【図７】第２実施形態に係るクロック切り替え回路の一部を示すブロック図。
【図８】第２実施形態に係る第１のセレクタを示す回路図。
【図９】第２実施形態に係るクロック切り替え回路の動作を示すタイミングチャート。
【図１０】第２実施形態に係るクロック切り替え回路の他の動作を示すタイミングチャート。
【図１１】第１実施形態及び第２実施形態に係る比較例のクロック切り替え回路を示すブロック図。
【図１２】比較例の動作を示すタイミングチャート。
【符号の説明】
【００９７】
１００、１０１  クロック選択信号生成回路、１１０、１１１  選択信号用セレクタ、
１２０、１２１  選択信号用フリップフロップ、
２００、２０１  切り替え指示信号生成回路、２１０  第１のＡＮＤ回路、
２１１  第２のＯＲ回路、３００、３０１  合成クロック生成回路、
３１０  第１のＯＲ回路、３１１  第２のＡＮＤ回路、
３２０、３２１  合成クロック用フリップフロップ、４００  第１のセレクタ、
４０１  第１のセレクタ、５００  第２のセレクタ、
１０００、１００１  クロック切り替え回路、ＣＤＳ  切り替え指示信号、
ＣＥＳ  クロック切り替え実行信号、ＣＬＫ１  第１のクロック、
ＣＬＫ２  第２のクロック、ＣＭＰ  クロック切り替え用合成クロック、
ＣＳＳ１  第１のクロック選択信号、ＣＳＳ２  第２のクロック選択信号
【図１】
2006033032.tif 000003
【図２】
2006033032.tif 000004
【図３】
2006033032.tif 000005
【図４】
2006033032.tif 000006
【図５】
2006033032.tif 000007
【図６】
2006033032.tif 000008
【図７】
2006033032.tif 000009
【図８】
2006033032.tif 000010
【図９】
2006033032.tif 000011
【図１０】
2006033032.tif 000012
【図１１】
2006033032.tif 000013
【図１２】
2006033032.tif 000014