(57)【要約】  クロック選択信号及び第１の制御信号の論理積信号を出力する第１の論理積回路（ＡＮＤ＿Ａ１）と、前記クロック選択信号の論理反転信号及び第２の制御信号の論理積信号を出力する第２の論理積回路（ＡＮＤ＿Ａ２）と、前記第１の論理積回路が出力する論理積信号又はそれに応じた信号を入力し、第１のクロック信号に同期した第１の出力信号の論理反転信号を前記第２の制御信号として前記第２の論理積回路に出力する第１のフリップフロップ（ＦＦ＿Ａ２）と、前記第２の論理積回路が出力する論理積信号又はそれに応じた信号を入力し、第２のクロック信号に同期した第２の出力信号の論理反転信号を前記第１の制御信号として前記第１の論理積回路に出力する第２のフリップフロップ（ＦＦ＿Ｂ２）とを有するクロック信号選択回路が提供される。
2008114446.tif 000002
【特許請求の範囲】
【請求項１】
クロック選択信号及び第１の制御信号の論理積信号を出力する第１の論理積回路と、
前記クロック選択信号の論理反転信号及び第２の制御信号の論理積信号を出力する第２の論理積回路と、
前記第１の論理積回路が出力する論理積信号又はそれに応じた信号を入力し、第１のクロック信号に同期した第１の出力信号の論理反転信号を前記第２の制御信号として前記第２の論理積回路に出力する第１のフリップフロップと、
前記第１のフリップフロップの入力信号又はそれに応じた信号を入力し、前記入力した信号を前記第１のクロック信号によりゲート制御して第３のクロック信号を出力する第１のゲーテッドクロックバッファと、
前記第２の論理積回路が出力する論理積信号又はそれに応じた信号を入力し、第２のクロック信号に同期した第２の出力信号の論理反転信号を前記第１の制御信号として前記第１の論理積回路に出力する第２のフリップフロップと、
前記第２のフリップフロップの入力信号又はそれに応じた信号を入力し、前記入力した信号を前記第２のクロック信号によりゲート制御して第４のクロック信号を出力する第２のゲーテッドクロックバッファと、
前記第３及び第４のクロック信号の論理和信号を出力する第１の論理和回路と
を有することを特徴とするクロック信号選択回路。
【請求項２】
さらに、前記第１の論理積回路が出力する論理積信号を入力し、前記第１のクロック信号に同期した出力信号を出力する第３のフリップフロップと、
前記第２の論理積回路が出力する論理積信号を入力し、前記第２のクロック信号に同期した出力信号を出力する第４のフリップフロップとを有し、
前記第１のフリップフロップは、前記第３のフリップフロップが出力する出力信号又はそれに応じた信号を入力し、
前記第２のフリップフロップは、前記第４のフリップフロップが出力する出力信号又はそれに応じた信号を入力することを特徴とする請求項１記載のクロック信号選択回路。
【請求項３】
さらに、前記第３のフリップフロップの出力信号及び前記第１の出力信号の論理積信号を出力する第３の論理積回路と、
前記第４のフリップフロップの出力信号及び前記第２の出力信号の論理積信号を出力する第４の論理積回路とを有し、
前記第１のゲーテッドクロックバッファは、前記第３の論理積回路が出力する論理積信号を入力し、
前記第２のゲーテッドクロックバッファは、前記第４の論理積回路が出力する論理積信号を入力することを特徴とする請求項２記載のクロック信号選択回路。
【請求項４】
前記第１のゲーテッドクロックバッファは、
前記第３の論理積回路が出力する論理積信号を入力し、前記第１のクロック信号のレベルに応じて前記入力した信号を通過させて出力する第１のラッチ回路と、
前記第１のラッチ回路の出力信号及び前記第１のクロック信号の論理積信号を出力する第５の論理積回路とを有し、
前記第２のゲーテッドクロックバッファは、
前記第４の論理積回路が出力する論理積信号を入力し、前記第２のクロック信号のレベルに応じて前記入力した信号を通過させて出力する第２のラッチ回路と、
前記第２のラッチ回路の出力信号及び前記第２のクロック信号の論理積信号を出力する第６の論理積回路とを有し、
前記第１の論理和回路は、前記第５及び第６の論理積回路が出力する信号の論理和信号を出力することを特徴とする請求項３記載のクロック信号選択回路。
【請求項５】
前記第１のフリップフロップは、前記第３のフリップフロップが出力する出力信号を第５のフリップフロップを介して入力し、
前記第２のフリップフロップは、前記第４のフリップフロップが出力する出力信号を第６のフリップフロップを介して入力することを特徴とする請求項３記載のクロック信号選択回路。
【請求項６】
前記第１のゲーテッドクロックバッファは、
前記第３の論理積回路が出力する論理積信号を入力し、前記第１のクロック信号のレベルに応じて前記入力した信号を通過させて出力する第１のラッチ回路と、
前記第１のラッチ回路の出力信号及び前記第１のクロック信号の論理積信号を出力する第５の論理積回路とを有し、
前記第２のゲーテッドクロックバッファは、
前記第４の論理積回路が出力する論理積信号を入力し、前記第２のクロック信号のレベルに応じて前記入力した信号を通過させて出力する第２のラッチ回路と、
前記第２のラッチ回路の出力信号及び前記第２のクロック信号の論理積信号を出力する第６の論理積回路とを有し、
前記第１の論理和回路は、前記第５及び第６の論理積回路が出力する信号の論理和信号を出力することを特徴とする請求項５記載のクロック信号選択回路。
【請求項７】
前記第１のゲーテッドクロックバッファは、前記第１のフリップフロップの入力信号を入力し、
前記第２のゲーテッドクロックバッファは、前記第２のフリップフロップの入力信号を入力することを特徴とする請求項２記載のクロック信号選択回路。
【請求項８】
前記第１のフリップフロップは、前記第３のフリップフロップが出力する出力信号をフリップフロップを介して入力し、
前記第２のフリップフロップは、前記第４のフリップフロップが出力する出力信号をフリップフロップを介して入力することを特徴とする請求項７記載のクロック信号選択回路。
【請求項９】
前記第１のゲーテッドクロックバッファは、
前記第１のフリップフロップの入力信号を入力し、前記第１のクロック信号のレベルに応じて前記入力した信号を通過させて出力する第１のラッチ回路と、
前記第１のラッチ回路の出力信号及び前記第１のクロック信号の論理積信号を出力する第３の論理積回路とを有し、
前記第２のゲーテッドクロックバッファは、
前記第２のフリップフロップの入力信号を入力し、前記第２のクロック信号のレベルに応じて前記入力した信号を通過させて出力する第２のラッチ回路と、
前記第２のラッチ回路の出力信号及び前記第２のクロック信号の論理積信号を出力する第４の論理積回路とを有し、
前記第１の論理和回路は、前記第３及び第４の論理積回路が出力する信号の論理和信号を出力することを特徴とする請求項８記載のクロック信号選択回路。
【請求項１０】
前記第１のゲーテッドクロックバッファは、前記第１のフリップフロップの入力信号及び前記第１のクロック信号の論理積信号を出力する第３の論理積回路を有し、
前記第２のゲーテッドクロックバッファは、前記第２のフリップフロップの入力信号及び前記第２のクロック信号の論理積信号を出力する第４の論理積回路を有し、
前記第１の論理和回路は、前記第３及び第４の論理積回路が出力する信号の論理和信号を出力することを特徴とする請求項８記載のクロック信号選択回路。
【請求項１１】
さらに、テストモード信号が入力されると前記第１及び第２のフリップフロップの動作にかかわらずに前記第１及び第２のゲーテッドクロックバッファの入力信号を設定するテストモード設定回路を有することを特徴とする請求項１記載のクロック信号選択回路。
【請求項１２】
さらに、クロック停止信号が入力されると前記クロック選択信号にかかわらずに前記第１及び第２のゲーテッドクロックバッファの入力信号をローレベルに設定するクロック停止設定回路を有することを特徴とする請求項１記載のクロック信号選択回路。
【請求項１３】
さらに、前記第１のクロック信号が停止しているときには前記第２のクロック信号から前記第１のクロック信号への出力の切り替えを禁止し、前記第２のクロック信号が停止しているときには前記第１のクロック信号から前記第２のクロック信号への出力の切り替えを禁止する切り替え禁止回路を有することを特徴とする請求項１記載のクロック信号選択回路。
【請求項１４】
さらに、前記第１及び第２のゲーテッドクロックバッファの入力信号を書き込むためのレジスタを有することを特徴とする請求項１記載のクロック信号選択回路。
【請求項１５】
前記レジスタに書き込まれた信号は、中央処理ユニットによりバスを介して読み出されることを特徴とする請求項１４記載のクロック信号選択回路。
【請求項１６】
前記レジスタは、前記クロック選択信号を出力することを特徴とする請求項１５記載のクロック信号選択回路。
【請求項１７】
さらに、前記クロック停止信号を出力するためのレジスタを有することを特徴とする請求項１２記載のクロック信号選択回路。
【請求項１８】
前記レジスタは、バスを介して中央処理ユニットに接続されていることを特徴とする請求項１７記載のクロック信号選択回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロック信号選択回路に関し、特にクロック選択信号に応じてクロック信号を選択するクロック信号選択回路に関する。
【背景技術】
【０００２】
近年、ＬＳＩの低消費電力化のためにクロック信号の周波数を動的に制御するという手法が用いられてきている。よく用いられる手法としては、一般にクロック・ギアと呼ばれるクロック周波数の分周比を変更するもので、クロック周波数を等倍、１／２倍、１／４倍、等のように切り替える手法が用いられている。【０００３】
そして、さらに低消費電力化を図るために、低速動作の際に、ＰＬＬ回路の出力の高速クロックから、ＰＬＬをバイパスした低速クロック（周波数、位相が異なる）に切り替えたり、ＣＰＵの処理負荷に応じた最低限度の周波数を動的に制御するため、複数のＰＬＬ回路の出力クロックを動的に選択する。【０００４】
しかし、動作周波数が異なる非同期クロック信号同士を普通のセレクタで動的に選択すると、セレクタ出力にグリッチと呼ばれる短パルス幅のクロック信号が出力される場合があり、誤動作を引き起こす可能性がある。グリッチは、ハザードやヒゲとも呼ばれる。【０００５】
図１５はクロック信号選択回路の構成例を示す回路図であり、図１６はその動作を示すタイミングチャートである。セレクタ１５０１は、クロック選択信号ＳＥＬに応じて、第１のクロック信号ＣＬＫ＿Ａ又は第２のクロック信号ＣＬＫ＿Ｂを選択し、クロック信号ＳＥＬ＿ＣＬＫを出力する。クロック信号ＳＥＬ＿ＣＬＫは、クロック選択信号ＳＥＬがハイレベルのときには第１のクロック信号ＣＬＫ＿Ａが選択され、クロック選択信号ＳＥＬがローレベルのときには第２のクロック信号ＣＬＫ＿Ｂが選択され。しかし、クロック選択信号ＳＥＬの切り替え時には、クロック信号ＳＥＬ＿ＣＬＫにおいてグリッチ１６０１と呼ばれる短パルス幅のクロックが生じる場合があり、クロック信号ＳＥＬ＿ＣＬＫを使用するＣＰＵ等が誤動作を引き起こす可能性がある。【０００６】
図１７は、他のクロック信号選択回路の構成例を示す回路図である。位相ロックループ（ＰＬＬ）回路１７０１は、クロック信号ＣＬＫを入力し、クロック信号ＣＬＫよりも高い周波数のクロック信号を出力する。セレクタ１７０２は、クロック選択信号ＳＥＬに応じて、ＰＬＬ回路１７０１が出力するクロック信号又はクロック信号ＣＬＫを選択し、クロック信号ＳＥＬ＿ＣＬＫを出力する。【０００７】
図１８は、他のクロック信号選択回路の構成例を示す回路図である。第１のＰＬＬ回路１８０１は、第１のクロック信号ＣＬＫ＿Ａを入力し、第１のクロック信号ＣＬＫ＿Ａよりも高い周波数のクロック信号を出力する。第２のＰＬＬ回路１８０２は、第２のクロック信号ＣＬＫ＿Ｂを入力し、第２のクロック信号ＣＬＫ＿Ｂよりも高い周波数のクロック信号を出力する。セレクタ１８０３は、クロック選択信号ＳＥＬに応じて、ＰＬＬ回路１８０１又は１８０２が出力するクロック信号を選択し、クロック信号ＳＥＬ＿ＣＬＫを出力する。【０００８】
図１９は、他のクロック信号選択回路の構成例を示す回路図である。第１のＰＬＬ回路１９０１は、第１のクロック信号ＣＬＫ＿Ａを入力し、第１のクロック信号ＣＬＫ＿Ａよりも高い周波数のクロック信号を出力する。第２のＰＬＬ回路１９０２は、第２のクロック信号ＣＬＫ＿Ｂを入力し、第２のクロック信号ＣＬＫ＿Ｂよりも高い周波数のクロック信号を出力する。セレクタ１９０３は、クロック選択信号ＳＥＬ０に応じて、ＰＬＬ回路１９０１が出力するクロック信号又は第１のクロック信号ＣＬＫ＿Ａを選択して出力する。セレクタ１９０４は、クロック選択信号ＳＥＬ１に応じて、セレクタ１９０３又はＰＬＬ回路１９０２が出力するクロック信号を選択し、クロック信号ＣＰＵ１＿ＣＬＫを第１のＣＰＵ（中央処理ユニット）１９０７に出力する。セレクタ１９０５は、クロック選択信号ＳＥＬ２に応じて、セレクタ１９０３又はＰＬＬ回路１９０２が出力するクロック信号を選択し、クロック信号ＣＰＵ２＿ＣＬＫを第２のＣＰＵ１９０８に出力する。セレクタ１９０６は、クロック選択信号ＳＥＬ３に応じて、セレクタ１９０３又はＰＬＬ回路１９０２が出力するクロック信号を選択し、クロック信号ＣＰＵ３＿ＣＬＫを第３のＣＰＵ１９０９に出力する。ＣＰＵ１９０７〜１９０９は、バス１９１０を介して、クロック制御レジスタ１９１１にクロック選択信号ＳＥＬ０〜ＳＥＬ３を書き込むことができる。レジスタ１９１１は、クロック選択信号ＳＥＬ０〜ＳＥＬ３をセレクタ１９０３〜１９０６に出力する。ＣＰＵ１９０７〜１９０８は、それぞれ異なるクロック信号ＣＰＵ１＿ＣＬＫ〜ＣＰＵ３＿ＣＬＫを設定することができるので、自己の現在のクロック信号の周波数を把握することが困難である。【０００９】
図２０は他のクロック信号選択回路の構成例を示す回路図であり、図２１及び図２２はその動作を示すタイミングチャートである。図２１では、上から順に、第１のクロック信号ＣＬＫ＿Ａ、第２のクロック信号ＣＬＫ＿Ｂ、クロック選択信号ＳＥＬ、フリップフロップＦＦ＿Ａ１の出力信号ＦＦ＿Ａ１／Ｑ、フリップフロップＦＦ＿Ａ２の出力信号ＦＦ＿Ａ２／Ｑ、ゲーテッドクロックバッファＧＣＬＫ＿Ａの出力信号、フリップフロップＦＦ＿Ｂ１の出力信号ＦＦ＿Ｂ１／Ｑ、フリップフロップＦＦ＿Ｂ２の出力信号ＦＦ＿Ｂ２／Ｑ、ゲーテッドクロックバッファＧＣＬＫ＿Ｂの出力信号、及びクロック信号ＳＥＬ＿ＣＬＫを示す。【００１０】
フリップフロップＦＦ＿Ａ１は、クロック選択信号ＳＥＬを入力し、第１のクロック信号ＣＬＫ＿Ａに同期した信号を出力する。フリップフロップＦＦ＿Ａ２は、フリップフロップＦＦ＿Ａ１の出力信号を入力し、第１のクロック信号ＣＬＫ＿Ａに同期した信号を出力する。フリップフロップＦＦ＿Ａ１及びＦＦ＿Ａ２は、初期時にプリセットされ、ハイレベルを保持する。クロック選択信号ＳＥＬは第１のクロック信号ＣＬＫ＿Ａに対して非同期の信号であるため、フリップフロップＦＦ＿Ａ１は、出力が不定値になることがありえる。フリップフロップＦＦ＿Ａ１が不定値を出力したとしても、フリップフロップＦＦ＿Ａ２は、出力値を確定させ、不定値を後段に伝播することを防止することができる。【００１１】
ゲーテッドクロックバッファＧＣＬＫ＿Ａは、ラッチ型ゲーテッドクロックバッファであり、ラッチ回路１０１ａ及び論理積（ＡＮＤ）回路１０２ａを有する。図２２に示すように、ラッチ回路１０１ａは、フリップフロップＦＦ＿Ａ２の出力信号を信号ＬＴ１として入力し、第１のクロック信号ＣＬＫ＿Ａがローレベルのときに入力信号ＬＴ１をそのまま出力信号ＬＴ２として出力し、第１のクロック信号ＣＬＫ＿Ａがハイレベルのときには出力信号ＬＴ２は前の状態を保持して出力する。論理積回路１０２ａは、ラッチ回路１０１ａの出力信号ＬＴ２及び第１のクロック信号ＣＬＫ＿Ａの論理積信号を出力する。【００１２】
ここで、ゲーテッドクロックバッファＧＣＬＫ＿Ａ内のラッチ回路１０１ａがない場合、論理積回路１０２ａは、図２２に示す信号ＬＴ１及びクロック信号ＣＬＫ＿Ａの論理積信号ＡＮＤ１を出力する。この論理積信号ＡＮＤ１は、信号ＧＣＬＫ＿Ａに比べ、パルスのタイミングが早くなり、セットアップ時間の条件が厳しくなる。ラッチ回路１０１ａを設けることにより、信号ＧＣＬＫ＿Ａのパルスのタイミングが遅くなり、セットアップ時間の条件を緩くすることができる。【００１３】
インバータＩＮＶ＿Ｂ１は、クロック選択信号ＳＥＬの論理反転信号を出力する。フリップフロップＦＦ＿Ｂ１は、インバータＩＮＶ＿Ｂ１の出力信号を入力し、第２のクロック信号ＣＬＫ＿Ｂに同期した信号を出力する。フリップフロップＦＦ＿Ｂ２は、フリップフロップＦＦ＿Ｂ１の出力信号を入力し、第２のクロック信号ＣＬＫ＿Ｂに同期した信号を出力する。フリップフロップＦＦ＿Ｂ１及びＦＦ＿Ｂ２は、初期時にリセットされ、ローレベルを保持する。クロック選択信号ＳＥＬは第２のクロック信号ＣＬＫ＿Ｂに対して非同期の信号であるため、フリップフロップＦＦ＿Ｂ１は、出力が不定値になることがありえる。フリップフロップＦＦ＿Ｂ１が不定値を出力したとしても、フリップフロップＦＦ＿Ｂ２は、出力値を確定させ、不定値を後段に伝播することを防止することができる。【００１４】
ゲーテッドクロックバッファＧＣＬＫ＿Ｂは、ラッチ型ゲーテッドクロックバッファであり、ラッチ回路１０１ｂ及び論理積回路１０２ｂを有する。ゲーテッドクロックバッファＧＣＬＫ＿Ａと同様に、ラッチ回路１０１ｂは、フリップフロップＦＦ＿Ｂ２の出力信号を入力し、第２のクロック信号ＣＬＫ＿Ｂがローレベルのときに入力信号をそのまま出力信号として出力し、第２のクロック信号ＣＬＫ＿Ｂがハイレベルのときには出力信号は前の状態を保持して出力する。論理積回路１０２ｂは、ラッチ回路１０１ｂの出力信号及び第２のクロック信号ＣＬＫ＿Ｂの論理積信号を出力する。【００１５】
論理和（ＯＲ）回路ＯＲ＿ＡＢは、論理積回路１０２ａ及び１０２ｂの出力信号の論理和信号をクロック信号ＳＥＬ＿ＣＬＫとして出力する。クロック選択信号ＳＥＬをハイレベルにすれば、第１のクロック信号ＣＬＫ＿Ａを選択してクロック信号ＳＥＬ＿ＣＬＫを出力することができる。これに対して、クロック選択信号ＳＥＬをローレベルにすれば、第２のクロック信号ＣＬＫ＿Ｂを選択してクロック信号ＳＥＬ＿ＣＬＫを出力することができる。しかし、クロック選択信号ＳＥＬがローレベルになった直後は、クロック信号ＳＥＬ＿ＣＬＫは第１のクロック信号ＣＬＫ＿Ａ及び第２のクロック信号ＣＬＫ＿Ｂが混在した信号となり、グリッチ２１０１及び２１０２が生じ、誤動作の原因になる。【００１６】
図２３は、図２０のクロック信号選択回路の動作を示す他のタイミングチャートである。第２のクロック信号ＣＬＫ＿Ｂが停止している場合を説明する。この場合、クロック選択信号ＳＥＬがローレベルに切り替えられると、クロック信号ＳＥＬ＿ＣＬＫにおいてクロック停止期間２３０１が生じてしまい、好ましくない。【００１７】
また、クロック切り替え回路として、下記の特許文献１及び２が提案されている。【００１８】
特許文献１では、第１の入力クロック信号から第２の入力クロック信号に出力を切り替える際には、選択信号の反転信号を第１の入力クロック信号に応答して取り込む第１のフリップフロップ群からの出力信号に基づいて、第１の入力クロック信号の出力禁止期間が開始される。【００１９】
特許文献２では、選択信号によって、出力されるクロック信号を選択するが、各クロック信号に同期したハンドシェイク信号によって切り換えのタイミングをコントロールし、パルスの途中での寸断を防止している。【００２０】
【特許文献１】特開２００５−１９１８７７号公報
【特許文献２】特開２０００−１３８５６８号公報
【発明の開示】
【００２１】
本発明の目的は、クロック信号の切り替えを安全かつ確実に行うことができるクロック信号選択回路を提供することである。
【００２２】
本発明の一観点によれば、クロック選択信号及び第１の制御信号の論理積信号を出力する第１の論理積回路と、前記クロック選択信号の論理反転信号及び第２の制御信号の論理積信号を出力する第２の論理積回路と、前記第１の論理積回路が出力する論理積信号又はそれに応じた信号を入力し、第１のクロック信号に同期した第１の出力信号の論理反転信号を前記第２の制御信号として前記第２の論理積回路に出力する第１のフリップフロップと、前記第１のフリップフロップの入力信号又はそれに応じた信号を入力し、前記入力した信号を前記第１のクロック信号によりゲート制御して第３のクロック信号を出力する第１のゲーテッドクロックバッファと、前記第２の論理積回路が出力する論理積信号又はそれに応じた信号を入力し、第２のクロック信号に同期した第２の出力信号の論理反転信号を前記第１の制御信号として前記第１の論理積回路に出力する第２のフリップフロップと、前記第２のフリップフロップの入力信号又はそれに応じた信号を入力し、前記入力した信号を前記第２のクロック信号によりゲート制御して第４のクロック信号を出力する第２のゲーテッドクロックバッファと、前記第３及び第４のクロック信号の論理和信号を出力する第１の論理和回路とを有することを特徴とするクロック信号選択回路が提供される。
【図面の簡単な説明】
【００２３】
【図１】図１は、本発明の第１の実施形態によるクロック信号選択回路の構成例を示す回路図である。
【図２】図２は、第１の実施形態によるクロック信号選択回路の動作を示すタイミングチャートである。
【図３】図３は、第１の実施形態によるクロック信号選択回路の動作を示すタイミングチャートである。
【図４】図４は、本発明の第２の実施形態によるクロック信号選択回路の構成例を示す回路図である。
【図５】図５は、第２の実施形態によるクロック信号選択回路の動作を示すタイミングチャートである。
【図６】図６は、第２の実施形態によるクロック信号選択回路の動作を示すタイミングチャートである。
【図７】図７は、本発明の第３の実施形態によるクロック信号選択回路の構成例を示す回路図である。
【図８】図８は、本発明の第４の実施形態によるクロック信号選択回路の構成例を示す回路図である。
【図９】図９は、第４の実施形態によるクロック信号選択回路の動作を示すタイミングチャートである。
【図１０】図１０は、第４の実施形態によるクロック信号選択回路の動作を示すタイミングチャートである。
【図１１】図１１は、本発明の第５の実施形態によるクロック信号選択回路の構成例を示す回路図である。
【図１２】図１２は、本発明の第６の実施形態によるクロック信号選択回路の構成例を示す回路図である。
【図１３】図１３は、第６の実施形態によるクロック信号選択回路の動作を示すタイミングチャートである。
【図１４】図１４は、本発明の第７の実施形態によるクロック信号選択回路を含むシステムの構成例を示す図である。
【図１５】図１５は、クロック信号選択回路の構成例を示す回路図である。
【図１６】図１６は、図１５のクロック信号選択回路の動作を示すタイミングチャートである。
【図１７】図１７は、他のクロック信号選択回路の構成例を示す回路図である。
【図１８】図１８は、他のクロック信号選択回路の構成例を示す回路図である。
【図１９】図１９は、他のクロック信号選択回路の構成例を示す回路図である。
【図２０】図２０は、他のクロック信号選択回路の構成例を示す回路図である。
【図２１】図２１は、図２０のクロック信号選択回路の動作を示すタイミングチャートである。
【図２２】図２２は、図２０のクロック信号選択回路の動作を示すタイミングチャートである。
【図２３】図２３は、図２０のクロック信号選択回路の動作を示すタイミングチャートである。
【発明を実施するための最良の形態】
【００２４】
（第１の実施形態）
図１は本発明の第１の実施形態によるクロック信号選択回路の構成例を示す回路図であり、図２及び図３はその動作を示すタイミングチャートである。このクロック信号選択回路は、クロック選択信号ＳＥＬに応じて、第１のクロック信号ＣＬＫ＿Ａ又は第２のクロック信号ＣＬＫ＿Ｂを選択してクロック信号ＳＥＬ＿ＣＬＫを出力する。【００２５】
図２は第１のクロック信号ＣＬＫ＿Ａから第２のクロック信号ＣＬＫ＿Ｂに切り替える例を示し、図３は第２のクロック信号ＣＬＫ＿Ｂから第１のクロック信号ＣＬＫ＿Ａに切り替える例を示す。図２及び図３では、上から順に、第１のクロック信号ＣＬＫ＿Ａ、第２のクロック信号ＣＬＫ＿Ｂ、クロック選択信号ＳＥＬ、フリップフロップＦＦ＿Ａ１の出力信号ＦＦ＿Ａ１／Ｑ、フリップフロップＦＦ＿Ａ２の出力信号ＦＦ＿Ａ２／Ｑ、ゲーテッドクロックバッファＧＣＬＫ＿Ａの出力信号、フリップフロップＦＦ＿Ｂ１の出力信号ＦＦ＿Ｂ１／Ｑ、フリップフロップＦＦ＿Ｂ２の出力信号ＦＦ＿Ｂ２／Ｑ、ゲーテッドクロックバッファＧＣＬＫ＿Ｂの出力信号、及びクロック信号ＳＥＬ＿ＣＬＫを示す。【００２６】
論理積（ＡＮＤ）回路ＡＮＤ＿Ａ１は、クロック選択信号ＳＥＬ及びフリップフロップＦＦ＿Ｂ２が出力する第１の制御信号の論理積信号を出力する。インバータＩＮＶ＿Ｂ１は、クロック選択信号ＳＥＬの論理反転信号を出力する。論理積回路ＡＮＤ＿Ｂ１は、インバータＩＮＶ＿Ｂ１の出力信号及びフリップフロップＦＦ＿Ａ２が出力する第２の制御信号の論理積信号を出力する。【００２７】
フリップフロップＦＦ＿Ａ１は、論理積回路ＡＮＤ＿Ａ１が出力する論理積信号を入力し、第１のクロック信号ＣＬＫ＿Ａに同期した出力信号を出力する。フリップフロップＦＦ＿Ａ２は、フリップフロップＦＦ＿１が出力する出力信号を入力し、第１のクロック信号ＣＬＫ＿Ａに同期した第１の出力信号を論理積回路ＡＮＤ＿Ａ２に出力し、その第１の出力信号の論理反転信号を前記第２の制御信号として論理積回路ＡＮＤ＿Ｂ１に出力する。例えば、フリップフロップＦＦ＿Ａ１及びＦＦ＿Ａ２は、第１のクロック信号ＣＬＫ＿Ａの立ち上がりに同期して入力信号を保持し、出力する。【００２８】
フリップフロップＦＦ＿Ａ１及びＦＦ＿Ａ２は、初期時に信号ＮＲＥＳＥＴがローレベルになるとプリセットされ、ハイレベルを保持する。クロック選択信号ＳＥＬは第１のクロック信号ＣＬＫ＿Ａに対して非同期の信号であるため、フリップフロップＦＦ＿Ａ１は、出力が不定値になることがありえる。フリップフロップＦＦ＿Ａ１が不定値を出力したとしても、フリップフロップＦＦ＿Ａ２は、出力値を確定させ、不定値を後段に伝播することを防止することができる。【００２９】
論理積回路ＡＮＤ＿Ａ２は、フリップフロップＦＦ＿Ａ２の入力信号及び第１の出力信号の論理積信号を出力する。論理積回路ＡＮＤ＿Ａ２の出力信号は、第１のモニタ信号ＣＥＮ＿Ａとして出力される。【００３０】
第１のゲーテッドクロックバッファＧＣＬＫ＿Ａは、フリップフロップＦＦ＿Ａ２の入力信号を入力し、その入力した信号を第１のクロック信号ＣＬＫ＿Ａによりゲート制御してクロック信号を出力する。具体的には、第１のゲーテッドクロックバッファＧＣＬＫ＿Ａは、ラッチ型ゲーテッドクロックバッファであり、ラッチ回路１０１ａ及び論理積回路１０２ａを有する。ラッチ回路１０１ａは、論理積回路ＡＮＤ＿Ａ２が出力する論理積信号を入力信号ＬＴ１として入力し、第１のクロック信号ＣＬＫ＿Ａのレベルに応じて前記入力した信号を通過させて出力信号ＬＴ２として出力する。論理積回路１０２ａは、ラッチ回路１０１ａの出力信号ＬＴ２及び第１のクロック信号ＣＬＫ＿Ａの論理積信号を出力する。【００３１】
図２２に示すように、ラッチ回路１０１ａは、信号ＬＴ１を入力し、第１のクロック信号ＣＬＫ＿Ａがローレベルのときに入力信号ＬＴ１をそのまま出力信号ＬＴ２として出力し、第１のクロック信号ＣＬＫ＿Ａがハイレベルのときには出力信号ＬＴ２は前の状態を保持して出力する。論理積回路１０２ａは、ラッチ回路１０１ａの出力信号ＬＴ２及び第１のクロック信号ＣＬＫ＿Ａの論理積信号を出力する。【００３２】
ここで、ゲーテッドクロックバッファＧＣＬＫ＿Ａ内のラッチ回路１０１ａがない場合、論理積回路１０２ａは、図２２に示す信号ＬＴ１及びクロック信号ＣＬＫ＿Ａの論理積信号ＡＮＤ１を出力する。この論理積信号ＡＮＤ１は、信号ＧＣＬＫ＿Ａに比べ、パルスのタイミングが早くなり、セットアップ時間の条件が厳しくなる。ラッチ回路１０１ａを設けることにより、信号ＧＣＬＫ＿Ａのパルスのタイミングが遅くなり、セットアップ時間の条件を緩くすることができる。【００３３】
フリップフロップＦＦ＿Ｂ１は、論理積回路ＡＮＤ＿Ｂ１が出力する論理積信号を入力し、第２のクロック信号ＣＬＫ＿Ｂに同期した出力信号を出力する。フリップフロップＦＦ＿Ｂ２は、フリップフロップＦＦ＿Ｂ１が出力する出力信号を入力し、第２のクロック信号ＣＬＫ＿Ｂに同期した第２の出力信号を論理積回路ＡＮＤ＿Ｂ２に出力し、その第２の出力信号の論理反転信号を前記第１の制御信号として論理積回路ＡＮＤ＿Ａ１に出力する。例えば、フリップフロップＦＦ＿Ｂ１及びＦＦ＿Ｂ２は、第２のクロック信号ＣＬＫ＿Ｂの立ち上がりに同期して入力信号を保持し、出力する。【００３４】
フリップフロップＦＦ＿Ｂ１及びＦＦ＿Ｂ２は、初期時に信号ＮＲＥＳＥＴがローレベルになるとリセットされ、ローレベルを保持する。クロック選択信号ＳＥＬは第２のクロック信号ＣＬＫ＿Ｂに対して非同期の信号であるため、フリップフロップＦＦ＿Ｂ１は、出力が不定値になることがありえる。フリップフロップＦＦ＿Ｂ１が不定値を出力したとしても、フリップフロップＦＦ＿Ｂ２は、出力値を確定させ、不定値を後段に伝播することを防止することができる。【００３５】
論理積回路ＡＮＤ＿Ｂ２は、フリップフロップＦＦ＿Ｂ２の入力信号及び第２の出力信号の論理積信号を出力する。論理積回路ＡＮＤ＿Ｂ２の出力信号は、モニタ信号ＣＥＮ＿Ｂとして出力される。【００３６】
第２のゲーテッドクロックバッファＧＣＬＫ＿Ｂは、第１のゲーテッドクロックバッファＧＣＬＫ＿Ａと同様に、論理積信号ＡＮＤ＿Ｂ２の出力信号を入力し、その入力した信号を第２のクロック信号ＣＬＫ＿Ｂによりゲート制御してクロック信号を出力する。具体的には、第２のゲーテッドクロックバッファＧＣＬＫ＿Ｂは、ラッチ型ゲーテッドクロックバッファであり、ラッチ回路１０１ｂ及び論理積回路１０２ｂを有する。ラッチ回路１０１ｂは、論理積回路ＡＮＤ＿Ｂ２が出力する論理積信号を入力し、第２のクロック信号ＣＬＫ＿Ｂのレベルに応じて前記入力した信号を通過させて出力する。論理積回路１０２ｂは、ラッチ回路１０１ｂの出力信号及び第２のクロック信号ＣＬＫ＿Ｂの論理積信号を出力する。【００３７】
論理和回路ＯＲ＿ＡＢは、ゲーテッドクロックバッファＧＣＬＫ＿Ａ及びＧＣＬＫ＿Ｂ内の論理積回路１０２ａ及び１０２ｂが出力するクロック信号の論理和信号を出力する。【００３８】
クロック選択信号ＳＥＬをハイレベルにすれば、第１のクロック信号ＣＬＫ＿Ａを選択してクロック信号ＳＥＬ＿ＣＬＫを出力することができる。これに対して、クロック選択信号ＳＥＬをローレベルにすれば、第２のクロック信号ＣＬＫ＿Ｂを選択してクロック信号ＳＥＬ＿ＣＬＫを出力することができる。【００３９】
以上のように、２つのクロック信号ＣＬＫ＿Ａ及びＣＬＫ＿Ｂをクロック選択信号ＳＥＬに応じて選択し、選択後のクロック信号ＳＥＬ＿ＣＬＫを出力すると共に、現在どのクロック信号が選択されているかを示すモニタ信号ＣＥＮ＿Ａ及びＣＥＮ＿Ｂを出力することができる。【００４０】
クロック信号ＣＬＫ＿Ａを選択するためのゲーテッドクロックバッファＧＣＬＫ＿Ａの入力信号（イネーブル信号）の生成をクロック選択信号ＳＥＬを受けた回路素子ＡＮＤ＿Ａ１、ＦＦ＿Ａ１、ＦＦ＿Ａ２及びＡＮＤ＿Ａ２で行い、クロック信号ＣＬＫ＿Ｂを選択するためのゲーテッドクロックバッファＧＣＬＫ＿Ｂの入力信号（イネーブル信号）の生成をインバータＩＮＶ＿Ｂ１で反転したクロック選択信号ＳＥＬを受けた回路素子ＡＮＤ＿Ｂ１、ＦＦ＿Ｂ１、ＦＦ＿Ｂ２及びＡＮＤ＿Ｂ２で行う。【００４１】
それぞれのゲーテッドクロックバッファＧＣＬＫ＿Ａ及びＧＣＬＫ＿Ｂの入力信号（論理積回路ＡＮＤ＿Ａ２及びＡＮＤ＿Ｂ２の各出力信号）はお互いに論理反転信号の関係にあり、クロック選択信号ＳＥＬの値により、クロック信号ＣＬＫ＿Ａ又はＣＬＫ＿Ｂのいずれかがイネーブル状態（選択状態）となって、これら２つのゲーテッドクロックバッファＧＣＬＫ＿Ａ及びＧＣＬＫ＿Ｂの出力信号を論理和回路ＯＲ＿ＡＢで論理和した信号が、選択されたクロック信号ＳＥＬ＿ＣＬＫとなる。【００４２】
クロック信号ＣＬＫ＿Ａ又はＣＬＫ＿Ｂの切り替えをする場合には、フリップフロップＦＦ＿Ａ２又はＦＦ＿Ｂ２の入力信号で論理積回路ＡＮＤ＿Ａ２又はＡＮＤ＿Ｂ２を介して切り替え前のクロック信号ＣＬＫ＿Ａ又はＣＬＫ＿Ｂを停止させてから、フリップフロップＦＦ＿Ａ２又はＦＦ＿Ｂ２の反転出力信号を、切り替え先のクロックイネーブル信号を生成する論理積回路ＡＮＤ＿Ａ１又はＡＮＤ＿Ｂ１に入力し、フリップフロップＦＦ＿Ａ１，ＦＦ＿Ａ２，ＦＦ＿Ａ３又はフリップフロップＦＦ＿Ｂ１，ＦＦ＿Ｂ２，ＦＦ＿Ｂ３で遅延させた後に、切り替え後のクロックイネーブル信号を有効にする。【００４３】
このような回路構成とすることで、クロック信号の切り替え時において、ゲーテッドクロックバッファＧＣＬＫ＿Ａ及びＧＣＬＫ＿Ｂの出力クロック信号が重ならないことを保証でき、クロック切り替え時にグリッチ等の不適切なクロックが出力されないようにすることができる。【００４４】
なお、ゲーテッドクロックバッファＧＣＬＫ＿Ａ及びＧＣＬＫ＿Ｂは、クロックイネーブル信号のセットアップタイミングを１サイクル分確保でき、１つのセルライブラリとして提供することができる。しかし、このようなセルが無い場合でも、ゲーテッドクロックバッファを構成することにより同じ機能の回路を実現できる。【００４５】
また、クロック選択信号ＳＥＬは、クロック信号ＣＬＫ＿Ａ及びＣＬＫ＿Ｂに対して非同期信号である。フリップフロップＦＦ＿Ａ１，ＦＦ＿Ａ２，ＦＦ＿Ｂ１，ＦＦ＿Ｂ２は、何らかのクロックエッジに同期したクロック選択信号ＳＥＬを受けるメタステーブル対策のフリップフロップでもある。すなわち、上記のように、不定値の後段への伝播を防止することができる。クロック信号ＣＬＫ＿Ａ，ＣＬＫ＿Ｂ及びクロック選択信号ＳＥＬを生成するためのクロック信号のエッジが揃っている場合、例えば非同期クロックの関係になく、単にクロック信号ＣＬＫ＿Ａを分周してクロック信号ＣＬＫ＿Ｂを生成しているような関係の場合であって、かつクロック選択信号ＳＥＬもそのいずれかのクロック信号と同位相のクロック信号で生成しているような場合、メタステーブル対策用のフリップフロップＦＦ＿Ａ１及びＦＦ＿Ｂ１は省略可能である。【００４６】
フリップフロップＦＦ＿Ａ１及びＦＦ＿Ａ２についてはプリセット付きフリップフロップとし、フリップフロップＦＦ＿Ｂ１及びＦＦ＿Ｂ２についてはリセット付きフリップフロップにしているが、これはリセット時の初期状態において、クロック信号ＣＬＫ＿Ａを選択するようにするもので、フリップフロップＦＦ＿Ａ１，ＦＦ＿Ａ２とフリップフロップＦＦ＿Ｂ１，ＦＦ＿Ｂ２のリセットとプリセットの関係は逆であっても良い。その場合、単にデフォルト状態で選択されるクロック信号が逆になるだけである。なお、これらのフリップフロップについては、リセット／プリセット無しのフリップフロップを使用してもかまわないが、設計段階の論理シミュレーションにおいて、シミュレーション初期のこれらのフリップフロップの不定値がクロック信号ＳＥＬ＿ＣＬＫに伝播してしまうので、特段の事情がなければ、リセット／プリセット付きフリップフロップで構成しておくのが望ましい。【００４７】
（第２の実施形態）
図４は本発明の第２の実施形態によるクロック信号選択回路の構成例を示す回路図であり、図５及び図６はその動作を示すタイミングチャートである。以下、本実施形態が第１の実施形態と異なる点を説明する。第１の実施形態では、第１のクロック信号ＣＬＫ＿Ａに同期する２段のフリップフロップＦＦ＿Ａ１及びＦＦ＿Ａ２と、第２のクロック信号ＣＬＫ＿Ｂに同期する２段のフリップフロップＦＦ＿Ｂ１及びＦＦ＿Ｂ２とを設ける場合を説明した。本実施形態では、第１のクロック信号ＣＬＫ＿Ａに同期する３段のフリップフロップＦＦ＿Ａ１、ＦＦ＿Ａ２及びＦＦ＿Ａ３と、第２のクロック信号ＣＬＫ＿Ｂに同期する３段のフリップフロップＦＦ＿Ｂ１、ＦＦ＿Ｂ２及びＦＦ＿Ｂ３とを設ける場合を説明する。本実施形態の効果は、第１の実施形態の効果と同様であるが、クロック切り替えタイミングが第１の実施形態に比べて１サイクル遅くなる。【００４８】
図５は第１のクロック信号ＣＬＫ＿Ａから第２のクロック信号ＣＬＫ＿Ｂに切り替える例を示し、図６は第２のクロック信号ＣＬＫ＿Ｂから第１のクロック信号ＣＬＫ＿Ａに切り替える例を示す。図５及び図６では、上から順に、第１のクロック信号ＣＬＫ＿Ａ、第２のクロック信号ＣＬＫ＿Ｂ、クロック選択信号ＳＥＬ、フリップフロップＦＦ＿Ａ１の出力信号ＦＦ＿Ａ１／Ｑ、フリップフロップＦＦ＿Ａ２の出力信号ＦＦ＿Ａ２／Ｑ、フリップフロップＦＦ＿Ａ３の出力信号ＦＦ＿Ａ３／Ｑ、ゲーテッドクロックバッファＧＣＬＫ＿Ａの出力信号、フリップフロップＦＦ＿Ｂ１の出力信号ＦＦ＿Ｂ１／Ｑ、フリップフロップＦＦ＿Ｂ２の出力信号ＦＦ＿Ｂ２／Ｑ、フリップフロップＦＦ＿Ｂ３の出力信号ＦＦ＿Ｂ３／Ｑ、ゲーテッドクロックバッファＧＣＬＫ＿Ｂの出力信号、及びクロック信号ＳＥＬ＿ＣＬＫを示す。【００４９】
フリップフロップＦＦ＿Ａ１は、論理積回路ＡＮＤ＿Ａ１が出力する論理積信号を入力し、第１のクロック信号ＣＬＫ＿Ａに同期した出力信号を出力する。フリップフロップＦＦ＿Ａ２は、フリップフロップＦＦ＿Ａ１が出力する出力信号を入力し、第１のクロック信号ＣＬＫ＿Ａに同期した出力信号を出力する。フリップフロップＦＦ＿Ａ３は、フリップフロップＦＦ＿Ａ２が出力する出力信号を入力し、第１のクロック信号ＣＬＫ＿Ａに同期した第１の出力信号を論理積回路ＡＮＤ＿Ａ２に出力し、その第１の出力信号の論理反転信号を前記第２の制御信号として論理積回路ＡＮＤ＿Ｂ１に出力する。例えば、フリップフロップＦＦ＿Ａ１、ＦＦ＿Ａ２及びＦＦ＿Ａ３は、第１のクロック信号ＣＬＫ＿Ａの立ち上がりに同期して入力信号を保持し、出力する。また、フリップフロップＦＦ＿Ａ１、ＦＦ＿Ａ２及びＦＦ＿Ａ３は、初期時に信号ＮＲＥＳＥＴがローレベルになるとプリセットされ、ハイレベルを保持する。論理積回路ＡＮＤ＿Ａ２は、フリップフロップＦＦ＿Ａ３の入力信号及び第１の出力信号の論理積信号をゲーテッドクロックバッファＧＣＬＫ＿Ａに出力する。論理積回路ＡＮＤ＿Ａ２の出力信号は、モニタ信号ＣＥＮ＿Ａとして出力される。【００５０】
フリップフロップＦＦ＿Ｂ１は、論理積回路ＡＮＤ＿Ｂ１が出力する論理積信号を入力し、第２のクロック信号ＣＬＫ＿Ｂに同期した出力信号を出力する。フリップフロップＦＦ＿Ｂ２は、フリップフロップＦＦ＿Ｂ１が出力する出力信号を入力し、第２のクロック信号ＣＬＫ＿Ｂに同期した出力信号を出力する。フリップフロップＦＦ＿Ｂ３は、フリップフロップＦＦ＿Ｂ２が出力する出力信号を入力し、第２のクロック信号ＣＬＫ＿Ｂに同期した第２の出力信号を論理積回路ＡＮＤ＿Ｂ２に出力し、その第２の出力信号の論理反転信号を前記第１の制御信号として論理積回路ＡＮＤ＿Ａ１に出力する。例えば、フリップフロップＦＦ＿Ｂ１、ＦＦ＿Ｂ２及びＦＦ＿Ｂ３は、第２のクロック信号ＣＬＫ＿Ｂの立ち上がりに同期して入力信号を保持し、出力する。また、フリップフロップＦＦ＿Ｂ１、ＦＦ＿Ｂ２及びＦＦ＿Ｂ３は、初期時に信号ＮＲＥＳＥＴがローレベルになるとリセットされ、ローレベルを保持する。論理積回路ＡＮＤ＿Ｂ２は、フリップフロップＦＦ＿Ｂ３の入力信号及び第２の出力信号の論理積信号をゲーテッドクロックバッファＧＣＬＫ＿Ｂに出力する。論理積回路ＡＮＤ＿Ｂ２の出力信号は、モニタ信号ＣＥＮ＿Ｂとして出力される。【００５１】
（第３の実施形態）
図７は、本発明の第３の実施形態によるクロック信号選択回路の構成例を示す回路図である。本実施形態は、第２の実施形態の図５及び図６と同じ動作波形となり、同等の効果を有する。本実施形態は、第２の実施形態に対して、論理積回路ＡＮＤ＿Ａ２及びＡＮＤ＿Ｂ２を省略した回路である。【００５２】
以下、本実施形態が第２の実施形態と異なる点を説明する。ゲーテッドクロッククロックバッファＧＣＬＫ＿ＡはフリップフロップＦＦ＿Ａ３の入力信号を入力し、ゲーテッドクロッククロックバッファＧＣＬＫ＿ＢはフリップフロップＦＦ＿Ｂ３の入力信号を入力する。具体的には、ゲーテッドクロッククロックバッファＧＣＬＫ＿Ａ内のラッチ回路１０１ａはフリップフロップＦＦ＿Ａ３の入力信号を入力し、ゲーテッドクロッククロックバッファＧＣＬＫ＿Ｂ内のラッチ回路１０１ｂはフリップフロップＦＦ＿Ｂ３の入力信号を入力する。フリップフロップＦＦ＿Ａ３の入力信号はモニタ信号ＣＥＮ＿Ａとして出力され、フリップフロップＦＦ＿Ｂ３の入力信号はモニタ信号ＣＥＮ＿Ｂとして出力される。【００５３】
このクロック信号選択回路では、フリップフロップＦＦ＿Ａ１，ＦＦ＿Ａ２及びフリップフロップＦＦ＿Ｂ１，ＦＦ＿Ｂ２で非同期乗り換え（メタステーブル対策）を実施済みなので、これら論理積回路ＡＮＤ＿Ａ２，ＡＮＤ＿Ｂ２が無くても、第３の実施形態と同様の動作を行うことができる。【００５４】
（第４の実施形態）
図８は本発明の第４の実施形態によるクロック信号選択回路の構成例を示す回路図であり、図９及び図１０はその動作を示すタイミングチャートである。本実施形態は、第３の実施形態に対して、ゲーテッドクロック回路バッファＧＣＬＫ＿Ａ及びＧＣＬＫ＿Ｂの構成が異なる。【００５５】
以下、本実施形態が第３の実施形態と異なる点を説明する。第３の実施形態のゲーテッドクロックバッファＧＣＬＫ＿Ａ及びＧＣＬＫ＿Ｂはラッチ型ゲーテッドクロックバッファである。これに対して、本実施形態のゲーテッドクロックバッファＧＣＬＫ＿Ａ及びＧＣＬＫ＿Ｂは、ＡＮＤ型ゲーテッドクロックバッファである。ゲーテッドクロックバッファＧＣＬＫ＿Ａは論理積回路１０２ａのみからなり、ゲーテッドクロックバッファＧＣＬＫ＿Ｂは論理積回路１０２ｂのみからなる。論理積回路１０２ａは、フリップフロップＦＦ＿Ａ３の入力信号及び第１のクロック信号ＣＬＫ＿Ａの論理積信号を論理和回路ＯＲ＿ＡＢに出力する。論理積回路１０２ｂは、フリップフロップＦＦ＿Ｂ３の入力信号及び第２のクロック信号ＣＬＫ＿Ｂの論理積信号を論理和回路ＯＲ＿ＡＢに出力する。【００５６】
論理積回路１０２ａ及び１０２ｂでクロックゲーティングする際には、クロック信号の波形を崩さないように、フリップフロップＦＦ＿Ａ２，ＦＦ＿Ａ３及びフリップフロップＦＦ＿Ｂ２，ＦＦ＿Ｂ３のクロック端子にクロック信号を反転したものを入力する。すなわち、フリップフロップＦＦ＿Ａ１は、第１のクロック信号ＣＬＫ＿Ａの立ち上がりに同期して入力信号を保持し、出力する。フリップフロップＦＦ＿Ａ２及びＦＦ＿Ａ３は、第１のクロック信号ＣＬＫ＿Ａの立ち下がりに同期して入力信号を保持し、出力する。また、フリップフロップＦＦ＿Ｂ１は、第２のクロック信号ＣＬＫ＿Ｂの立ち上がりに同期して入力信号を保持し、出力する。フリップフロップＦＦ＿Ｂ２及びＦＦ＿Ｂ３は、第２のクロック信号ＣＬＫ＿Ｂの立ち下がりに同期して入力信号を保持し、出力する。【００５７】
図９は第１のクロック信号ＣＬＫ＿Ａから第２のクロック信号ＣＬＫ＿Ｂに切り替える例を示し、図１０は第２のクロック信号ＣＬＫ＿Ｂから第１のクロック信号ＣＬＫ＿Ａに切り替える例を示す。図５及び図６では、上から順に、第１のクロック信号ＣＬＫ＿Ａ、第２のクロック信号ＣＬＫ＿Ｂ、クロック選択信号ＳＥＬ、フリップフロップＦＦ＿Ａ１の出力信号ＦＦ＿Ａ１／Ｑ、フリップフロップＦＦ＿Ａ２の出力信号ＦＦ＿Ａ２／Ｑ、フリップフロップＦＦ＿Ａ３の出力信号ＦＦ＿Ａ３／Ｑ、ゲーテッドクロックバッファＧＣＬＫ＿Ａの出力信号、フリップフロップＦＦ＿Ｂ１の出力信号ＦＦ＿Ｂ１／Ｑ、フリップフロップＦＦ＿Ｂ２の出力信号ＦＦ＿Ｂ２／Ｑ、フリップフロップＦＦ＿Ｂ３の出力信号ＦＦ＿Ｂ３／Ｑ、ゲーテッドクロックバッファＧＣＬＫ＿Ｂの出力信号、及びクロック信号ＳＥＬ＿ＣＬＫを示す。【００５８】
本実施形態は、第３の実施形態と同じ効果を得ることができる。また、本実施形態は、第３の実施形態に限らず、第１及び第２の実施形態に適用することもできる。すなわち、本実施形態と同様に、第１及び第２の実施形態のゲーテッドクロックバッファＧＣＬＫ＿Ａ及びＧＣＬＫ＿ＢをＡＮＤ型ゲーテッドクロックバッファにすることができる。【００５９】
（第５の実施形態）
図１１は、本発明の第５の実施形態によるクロック信号選択回路の構成例を示す回路図である。本実施形態は、第１の実施形態に対して、スキャン（ＳＣＡＮ）試験等を行なうためのテストモード信号ＴＥＳＴＭＯＤＥを追加し、さらに、クロック停止を制御するためのクロック停止信号ＳＴＯＰを追加したものである。クロック切り替え時のタイミングチャートは図２及び図３のタイミングチャートと同様となる。【００６０】
以下、本実施形態が第１の実施形態と異なる点を説明する。インバータＩＮＶ＿Ｃ１は、クロック停止信号ＳＴＯＰの論理反転信号を出力する。インバータＩＮＶ＿Ｃ２は、クロック選択信号ＳＥＬの論理反転信号を出力する。論理積回路ＡＮＤ＿Ｃ１は、クロック選択信号ＳＥＬ及びテストモード信号ＴＥＳＴＭＯＤＥの論理積信号を出力する。論理積回路ＡＮＤ＿Ｃ２は、インバータＩＮＶ＿Ｃ２の出力信号及びテストモード信号ＴＥＳＴＭＯＤＥの論理積信号を出力する。【００６１】
論理積回路ＡＮＤ＿Ａ２は、フリップフロップＦＦ＿Ａ２の入力信号、フリップフロップＦＦ＿Ａ２の出力信号、インバータＩＮＶ＿Ｃ１の出力信号、及び論理積回路ＡＮＤ＿Ｃ１の出力信号の論理積信号を出力する。論理積回路ＡＮＤ＿Ｂ２は、フリップフロップＦＦ＿Ｂ２の入力信号、フリップフロップＦＦ＿Ｂ２の出力信号、インバータＩＮＶ＿Ｃ１の出力信号、及び論理積回路ＡＮＤ＿Ｃ２の出力信号の論理積信号を出力する。【００６２】
論理和回路ＯＲ＿Ａ１は、論理積回路ＡＮＤ＿Ａ２の出力信号及び論理積回路ＡＮＤ＿Ｃ１の出力信号の論理和信号をゲーテッドクロックバッファＧＣＬＫ＿Ａ内のラッチ回路１０１ａに出力する。論理和回路ＯＲ＿Ａ１の出力信号は、モニタ信号ＣＥＮ＿Ａとして出力される。【００６３】
論理和回路ＯＲ＿Ｂ１は、論理積回路ＡＮＤ＿Ｂ２の出力信号及び論理積回路ＡＮＤ＿Ｃ２の出力信号の論理和信号をゲーテッドクロックバッファＧＣＬＫ＿Ｂ内のラッチ回路１０１ｂに出力する。論理和回路ＯＲ＿Ｂ１の出力信号は、モニタ信号ＣＥＮ＿Ｂとして出力される。【００６４】
スタンバイ時等においては、クロック停止信号ＳＴＯＰをハイレベルにすることにより、クロック停止信号ＳＴＯＰがインバータＩＮＶ＿Ｃ１で反転された信号によりクロック信号ＣＬＫ＿Ａ及びＣＬＫ＿Ｂの各イネーブル信号を論理積回路ＡＮＤ＿Ａ２及びＡＮＤ＿Ｂ２でマスクし、クロック信号ＳＥＬ＿ＣＬＫを停止させる。すなわち、クロック停止設定回路は、インバータＩＮＶ＿Ｃ１、論理積回路ＡＮＤ＿Ａ２及びＡＮＤ＿Ｂ２を有し、クロック停止信号ＳＴＯＰが入力されるとクロック選択信号ＳＥＬにかかわらずにゲーテッドクロックバッファＧＣＬＫ＿Ａ及びＧＣＬＫ＿Ｂの入力信号をローレベルに設定する。これにより、クロック信号ＳＥＬ＿ＣＬＫは、ローレベルを維持し、クロックが停止される。【００６５】
ＳＣＡＮ試験時には、クロック制御レジスタ１４１１〜１４１４（図１４）やフリップフロップＦＦ＿Ａ１，ＦＦ＿Ａ２，ＦＦ＿Ｂ１，ＦＦ＿Ｂ２もスキャン試験対象になり得る。その場合、フリップフロップＦＦ＿Ａ１，ＦＦ＿Ａ２，ＦＦ＿Ｂ１，ＦＦ＿Ｂ２は、クロック選択信号ＳＥＬとは関係なく、スキャンイン（ＳＣＡＮ−ＩＮ）端子から入力されるテストデータに応じて動作するため、クロック信号ＳＥＬ＿ＣＬＫが保証されない問題が生じる。クロック停止信号ＳＴＯＰ等の制御信号の値やフリップフロップＦＦ＿Ａ１，ＦＦ＿Ａ２，ＦＦ＿Ｂ１，ＦＦ＿Ｂ２にかかわらず、クロック信号ＳＥＬ＿ＣＬＫを出力し続ける必要がある。そこで、テストモード信号ＴＥＳＴＭＯＤＥがハイレベルになると、クロック選択信号ＳＥＬに応じて論理積回路ＡＮＤ＿Ｃ１又はＡＮＤ＿Ｃ２のうちの一方がハイレベルを出力し、他方がローレベルを出力する。前記他方のローレベルにより、論理積回路ＡＮＤ＿Ａ２又はＡＮＤ＿Ｂ２のいずれかがローレベルを出力する。これにより、論理和回路ＯＲ＿Ａ１又はＯＲ＿Ｂ１のうちの一方がハイレベルを出力し、他方がローレベルを出力する。したがって、クロック停止信号ＳＴＯＰ等の値にかかわらず、クロック信号ＳＥＬ＿ＣＬＫが出力され続けることが可能となる。なお、本実施形態では、クロック選択信号ＳＥＬで選択されたクロックがテストモード信号ＴＥＳＴＭＯＤＥがハイレベルになった時に出力される構成となっているが、論理積回路ＡＮＤ＿Ｃ１及びＡＮＤ＿Ｃ２等を省略して、テストモード信号ＴＥＳＴＭＯＤＥがハイレベルになった時にいずれか片方のクロック信号のみが供給されるようにしても良い。【００６６】
以上のように、テストモード設定回路は、インバータＩＮＶ＿Ｃ２、論理積回路ＡＮＤ＿Ｃ１，ＡＮＤ＿Ｃ２，ＡＮＤ＿Ａ２，ＡＮＤ＿Ｂ２及び論理和回路ＯＲ＿Ａ１，ＯＲ＿Ｂ１を有し、テストモード信号ＴＥＳＴＭＯＤＥが入力されるとフリップフロップＦＦ＿Ａ１，ＦＦ＿Ａ２，ＦＦ＿Ｂ１及びＦＦ＿Ｂ２の動作にかかわらずにゲーテッドクロックバッファＧＣＬＫ＿Ａ及びＧＣＬＫ＿Ｂの入力信号を設定する。【００６７】
なお、本実施形態は、第１の実施形態に限らず、第２〜第４の実施形態に適用することもできる。【００６８】
（第６の実施形態）
図１２は本発明の第６の実施形態によるクロック信号選択回路の構成例を示す回路図であり、図１３はその動作を示すタイミングチャートである。本実施形態は、第１の実施形態に対して、切り替え禁止回路１２０１及びセレクタＳＥＬ＿Ａ１，ＳＥＬ＿Ｂ１を追加したものである。以下、本実施形態が第１の実施形態と異なる点を説明する。【００６９】
図１３では、上から順に、第１のクロック信号ＣＬＫ＿Ａ、第２のクロック信号ＣＬＫ＿Ｂ、クロック選択信号ＳＥＬ、フリップフロップＦＦ＿ＣＡ１の出力信号ＦＦ＿ＣＡ１／Ｑ、フリップフロップＦＦ＿ＣＡ２の出力信号ＦＦ＿ＣＡ２／Ｑ、フリップフロップＦＦ＿ＣＢ１の出力信号ＦＦ＿ＣＢ１／Ｑ、フリップフロップＦＦ＿ＣＢ１の出力信号ＦＦ＿ＣＢ１／Ｑ、フリップフロップＦＦ＿ＣＢ２の出力信号ＦＦ＿ＣＢ２／Ｑ、排他的論理和回路Ｅｘ−ＯＲ＿ＣＡの出力信号、排他的論理和回路Ｅｘ−ＯＲ＿ＣＢの出力信号、排他的論理和回路Ｅｘ−ＯＲ＿ＣＭの出力信号、論理和回路ＯＲ＿ＣＭの出力信号、フリップフロップＦＦ＿Ａ１の出力信号ＦＦ＿Ａ１／Ｑ、フリップフロップＦＦ＿Ａ２の出力信号ＦＦ＿Ａ２／Ｑ、ゲーテッドクロックバッファＧＣＬＫ＿Ａの出力信号、フリップフロップＦＦ＿Ｂ１の出力信号ＦＦ＿Ｂ１／Ｑ、フリップフロップＦＦ＿Ｂ２の出力信号ＦＦ＿Ｂ２／Ｑ、ゲーテッドクロックバッファＧＣＬＫ＿Ｂの出力信号、及びクロック信号ＳＥＬ＿ＣＬＫを示す。【００７０】
切り替え禁止回路１２０１は、第１のクロック信号ＣＬＫ＿Ａが停止しているときには第２のクロック信号ＣＬＫ＿Ｂから第１のクロック信号ＣＬＫ＿Ａへの出力の切り替えを禁止し、第２のクロック信号ＣＬＫ＿Ｂが停止しているときには第１のクロック信号ＣＬＫ＿Ａから第２のクロック信号ＣＬＫ＿Ｂへの出力の切り替えを禁止する。図１３では、第２のクロック信号ＣＬＫ＿Ｂが停止している場合を例に示す。【００７１】
切り替え禁止回路１２０１の構成を説明する。フリップフロップＦＦ＿ＣＡ１は、クロック選択信号ＳＥＬを入力し、第１のクロック信号ＣＬＫ＿Ａの立ち上がりに同期して出力する。フリップフロップＦＦ＿ＣＡ２は、フリップフロップＦＦ＿ＣＡ１の出力信号を入力し、第１のクロック信号ＣＬＫ＿Ａの立ち上がりに同期して出力する。フリップフロップＦＦ＿ＣＡ１及びＣＡ２は、初期時に信号ＮＲＥＳＥＴがローレベルになるとプリセットされ、ハイレベルを保持する。【００７２】
フリップフロップＦＦ＿ＣＢ１は、クロック選択信号ＳＥＬを入力し、第２のクロック信号ＣＬＫ＿Ｂの立ち上がりに同期して出力する。フリップフロップＦＦ＿ＣＢ２は、フリップフロップＦＦ＿ＣＢ１の出力信号を入力し、第２のクロック信号ＣＬＫ＿Ｂの立ち上がりに同期して出力する。フリップフロップＦＦ＿ＣＢ１及びＣＢ２は、初期時に信号ＮＲＥＳＥＴがローレベルになるとプリセットされ、ハイレベルを保持する。【００７３】
排他的論理和回路Ｅｘ−ＯＲ＿ＣＡは、フリップフロップＦＦ＿ＣＡ２の出力信号及びクロック選択信号ＳＥＬの排他的論理和信号を出力する。排他的論理和回路Ｅｘ−ＯＲ＿ＣＢは、フリップフロップＦＦ＿ＣＢ２の出力信号及びクロック選択信号ＳＥＬの排他的論理和信号を出力する。排他的論理和回路Ｅｘ−ＯＲ＿ＣＭは、フリップフロップＦＦ＿ＣＡ２及びＦＦ＿ＣＢ２の出力信号の排他的論理和信号を出力する。論理和回路ＯＲ＿ＣＭは、排他的論理和回路Ｅｘ−ＯＲＣＡ、Ｅｘ−ＯＲ＿ＣＢ及びＥｘ−ＯＲ＿ＣＭの論理和信号を出力する。【００７４】
セレクタＳＥＬ＿Ａ１は、論理和回路ＯＲ＿ＣＭの出力信号がローレベルであるときには論理積回路ＡＮＤ＿Ａ１の出力信号を選択してフリップフロップＦＦ＿Ａ１に出力し、論理和回路ＯＲ＿ＣＭの出力信号がハイレベルであるときにはフリップフロップＦＦ＿Ａ２の出力信号を選択してフリップフロップＦＦ＿Ａ１に出力する。【００７５】
セレクタＳＥＬ＿Ｂ１は、論理和回路ＯＲ＿ＣＭの出力信号がローレベルであるときには論理積回路ＡＮＤ＿Ｂ１の出力信号を選択してフリップフロップＦＦ＿Ｂ１に出力し、論理和回路ＯＲ＿ＣＭの出力信号がハイレベルであるときにはフリップフロップＦＦ＿Ｂ２の出力信号を選択してフリップフロップＦＦ＿Ｂ１に出力する。【００７６】
本実施形態は、クロック切り替えをする際に、切り替え先のクロック信号（例えばクロック信号ＣＬＫ＿Ｂ）が何らかの原因により停止している場合に、クロック選択信号ＳＥＬが変化したとしても、実際には切り替え動作をせずに、元のクロック信号（例えばクロック信号ＣＬＫ＿Ａ）を供給し続ける。切り替え禁止回路１２０１は、クロック選択信号ＳＥＬの変化を検出し、各フリップフロップＦＦ＿ＣＡ１，ＦＦ＿ＣＡ２，ＦＦ＿ＣＢ１，ＦＦ＿ＣＢ２にクロック選択信号ＳＥＬが伝わるまでの間、セレクタＳＥＬ＿Ａ１及びＳＥＬ＿Ａ２の選択信号（論理和回路ＯＲ＿ＣＭの出力信号）をハイレベルにして、ゲーテッドクロックバッファＧＣＬＫ＿Ａ及びＧＣＬＫ＿Ｂの入力信号を直前状態のままにするものである。そして、クロック選択信号ＳＥＬが正しくフリップフロップＦＦ＿ＣＡ２，ＦＦ＿ＣＢ２の出力まで伝播すると、論理和回路ＯＲ＿ＣＭの出力信号はローレベルになる。これにより、セレクタＳＥＬ＿Ａ１及びＳＥＬ＿Ｂ１が切り替えられて、本来のクロック選択信号ＳＥＬが、フリップフロップＦＦ＿Ａ１，ＦＦ＿Ａ２，ＦＦ＿Ｂ１，ＦＦ＿Ｂ２へ伝わる。なお、切り替え先のクロック信号の状態を漏れなく検出するには、切り替え禁止回路１２０１のフリップフロップＦＦ＿ＣＢ１，ＦＦ＿ＣＢ２の初期値は、フリップフロップＦＦ＿ＣＡ１，ＦＦ＿ＣＡ２の初期値に合わせる回路にすることが望ましい。【００７７】
このような回路構成にすることにより、仮に、切り替え先のクロック信号が停止していた場合には、図１３のように論理和回路ＯＲ＿ＣＭの出力信号がハイレベルのままの状態となるので、クロック選択信号ＳＥＬが変化したとしても、実際の切り替え動作を行わず、元のクロック信号を出力し続ける動作をする。本実施形態によれば、切り替え先のクロック信号が停止していた場合には、図２３のようにクロック停止期間２３０１が生じず、適切なクロック信号ＳＥＬ＿ＣＬＫを出力し続けることができる。【００７８】
なお、本実施形態は、第１の実施形態に限らず、第２〜第５の実施形態にも適用することができる。【００７９】
（第７の実施形態）
図１４は、本発明の第７の実施形態によるクロック信号選択回路を含むシステムの構成例を示す図である。バス１４０３には、第１の中央処理ユニット（ＣＰＵ）１４０１、第２のＣＰＵ１４０２及びクロック制御レジスタ１４１１〜１４１４が接続される。クロック制御レジスタ１４１１〜１４１４は、４個のレジスタ１４１１〜１４１４である必要はなく、１個のレジスタ内の４個のフィールド１４１１〜１４１４を有するものであればよい。クロック信号選択回路１４２１は、第５の実施形態のクロック信号選択回路である。論理和回路１４２２は、クロック制御レジスタ１４１１が出力するクロック選択信号ＳＥＬ１及びテストモード信号ＴＥＳＴＭＯＤＥの論理和信号をクロック選択信号ＳＥＬとしてクロック信号選択回路１４２１に出力する。クロック制御レジスタ１４１２は、クロック停止信号ＳＴＯＰをクロック信号選択回路１４２１に出力する。クロック制御レジスタ１４１３は、クロック信号選択回路１４２１が出力するモニタ信号ＣＥＮ＿Ａを書き込むためのレジスタである。クロック制御レジスタ１４１４は、クロック信号選択回路１４２１が出力するモニタ信号ＣＥＮ＿Ｂを書き込むためのレジスタである。モニタ信号ＣＥＮ＿ＡはゲーテッドクロックバッファＧＣＬＫ＿Ａの入力信号であり、モニタ信号ＣＥＮ＿ＢはゲーテッドクロックバッファＧＣＬＫ＿Ｂの入力信号である。【００８０】
第５の実施形態で説明したように、ＳＣＡＮ試験時にはクロック制御レジスタ１４１１〜１４１４も試験対象となり、テストデータに応じて記憶内容が頻繁に変化してしまう。そこで、ＳＣＡＮ試験時にテストモード信号ＴＥＳＴＭＯＤＥがハイレベルになったときには、クロック選択信号ＳＥＬをいずれか一方に固定することが好ましい。論理和回路１４２２を設けることにより、テストモード信号ＴＥＳＴＭＯＤＥがハイレベルのときには、常にクロック選択信号ＳＥＬをハイレベルにすることができる。なお、クロック信号選択信号ＳＥＬをローレベルにするようにしてもよい。【００８１】
ＣＰＵ１４０１及び１４０２は、バス１４０３を介してクロック制御レジスタ１４１１〜１４１４に対して書き込み及び読み出しを行うことができる。ＣＰＵ１４０１又は１４０２は、レジスタ１４１１にクロック選択信号ＳＥＬ１を書き込むことにより、第１のクロック信号ＣＬＫ＿Ａ又は第２のクロック信号ＣＬＫ＿Ｂを選択してクロック信号ＳＥＬ＿ＣＬＫを出力させることができ、そのクロック信号ＳＥＬ＿ＣＬＫを入力して動作する。ＣＰＵ１４０１及び１４０２は、レジスタ１４１３及び１４１４に記録されているモニタ信号ＣＥＮ＿Ａ及びＣＥＮ＿Ｂを読み出すことにより、自己に入力されているクロック信号の種類を容易に把握することができる。【００８２】
本実施形態は、クロック信号選択回路１４２１と、それを制御するクロック制御レジスタ１４１１〜１４１４と、制御プログラムをＣＰＵ１４０１及び１４０２等の複数のＣＰＵ等で制御する場合を示す。クロック信号選択回路１４２１は、第５の実施形態のクロック信号選択回路に限定されず、他の実施形態のクロック信号選択回路でもよい。また、クロック制御レジスタ１４１１〜１４１４は、ＣＰＵ以外の特定の制御回路により制御しても良い。通常のクロック切り替えは、ＣＰＵ１４０１又は１４０２がバス１４０３を介してクロック制御レジスタ１４１１に所定の値を書き込むことにより行う。正しくクロック信号が切り替えられたかどうかも、レジスタ１４１３及び１４１４を介してＣＰＵ１４０１又は１４０２が確認することが可能となる。また、クロック信号ＳＥＬ＿ＣＬＫを停止させる場合も、ＣＰＵ１４０１又は１４０２からクロック制御レジスタ１４１２に所定の値を書き込むことにより行うことが可能である。クロック信号ＳＥＬ＿ＣＬＫを停止させた後に、実際にクロック信号ＳＥＬ＿ＣＬＫが停止しているかどうかを、ＣＰＵ１４０１又は１４０２がレジスタ１４１３及び１４１４のモニタ信号ＣＥＮ＿Ａ及びＣＥＮ＿Ｂを読み出すことにより確認することができる。【００８３】
そして、ＳＣＡＮ試験時（例えばテストモード信号ＴＥＳＴＭＯＤＥがハイレベルの場合）等においては、クロック制御レジスタ１４１１から出力されるクロック選択信号ＳＥＬ１の値にかかわらず、クロック信号選択回路１４２１へのクロック選択信号ＳＥＬを固定化できるように、クロック選択信号ＳＥＬ１とテストモード信号ＴＥＳＴＭＯＤＥの論理を取る。論理和の場合はクロック選択信号ＳＥＬをハイレベルに固定、論理積の場合はクロック選択信号ＳＥＬをローレベルに固定することができる。クロック信号選択回路１４２１は、ＳＣＡＮ試験時に所定のクロック信号（例えば図１１の場合はクロック信号ＣＬＫ＿Ａ）を出力し続けることが可能となる。【００８４】
なお、第１〜第７の実施形態の全てのクロック信号選択回路を構成するフリップフロップは、リセット／プリセットを全て逆にしても差し支えない。その場合、リセット時に選択するクロックが逆になる。【００８５】
第１〜第７の実施形態によれば、クロック切り替え時にグリッチが発生しないという効果が得られる。また、図１２の回路では、切り替え先のクロック信号が停止している場合には、実際に切り替え動作をせずに、元のクロック信号を供給し続け、ＣＰＵのハングアップを防止することが可能となる。また、図１４の回路では、実際に選択しているクロック信号をレジスタ１４１３及び１４１４で参照できる構成とすることで、クロック切り替えを正しく行えたかどうかを確認することができる。第１〜第７の実施形態は、特定のモジュールへの供給クロック信号の周波数を動的に制御できるＬＳＩに適用でき、クロック周波数の切り替えの際に非同期のクロック信号を動的に選択することができる。【００８６】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【産業上の利用可能性】
【００８７】
複数のクロック信号の中から選択してクロック信号を出力することができる。また、クロック信号の出力を切り替える際に、クロック信号中にグリッチが発生することを防止することができる。
【図１】
2008114446.tif 000003
【図２】
2008114446.tif 000004
【図３】
2008114446.tif 000005
【図４】
2008114446.tif 000006
【図５】
2008114446.tif 000007
【図６】
2008114446.tif 000008
【図７】
2008114446.tif 000009
【図８】
2008114446.tif 000010
【図９】
2008114446.tif 000011
【図１０】
2008114446.tif 000012
【図１１】
2008114446.tif 000013
【図１２】
2008114446.tif 000014
【図１３】
2008114446.tif 000015
【図１４】
2008114446.tif 000016
【図１５】
2008114446.tif 000017
【図１６】
2008114446.tif 000018
【図１７】
2008114446.tif 000019
【図１８】
2008114446.tif 000020
【図１９】
2008114446.tif 000021
【図２０】
2008114446.tif 000022
【図２１】
2008114446.tif 000023
【図２２】
2008114446.tif 000024
【図２３】
2008114446.tif 000025
【手続補正書】
【提出日】平成21年7月24日(2009.7.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
クロック選択信号及び第１の制御信号の論理積信号を出力する第１の論理積回路と、
前記クロック選択信号の論理反転信号及び第２の制御信号の論理積信号を出力する第２の論理積回路と、
前記第１の論理積回路が出力する論理積信号又はそれに応じた信号を入力し、第１のクロック信号に同期した第１の出力信号の論理反転信号を前記第２の制御信号として前記第２の論理積回路に出力する第１のフリップフロップと、
前記第１のフリップフロップの入力信号又はそれに応じた信号を入力し、前記入力した信号を前記第１のクロック信号によりゲート制御して第３のクロック信号を出力する第１のゲーテッドクロックバッファと、
前記第２の論理積回路が出力する論理積信号又はそれに応じた信号を入力し、第２のクロック信号に同期した第２の出力信号の論理反転信号を前記第１の制御信号として前記第１の論理積回路に出力する第２のフリップフロップと、
前記第２のフリップフロップの入力信号又はそれに応じた信号を入力し、前記入力した信号を前記第２のクロック信号によりゲート制御して第４のクロック信号を出力する第２のゲーテッドクロックバッファと、
前記第３及び第４のクロック信号の論理和信号を出力する第１の論理和回路と
を有することを特徴とするクロック信号選択回路。
【請求項２】
さらに、前記第１の論理積回路が出力する論理積信号を入力し、前記第１のクロック信号に同期した出力信号を出力する第３のフリップフロップと、
前記第２の論理積回路が出力する論理積信号を入力し、前記第２のクロック信号に同期した出力信号を出力する第４のフリップフロップとを有し、
前記第１のフリップフロップは、前記第３のフリップフロップが出力する出力信号又はそれに応じた信号を入力し、
前記第２のフリップフロップは、前記第４のフリップフロップが出力する出力信号又はそれに応じた信号を入力することを特徴とする請求項１記載のクロック信号選択回路。
【請求項３】
さらに、前記第３のフリップフロップの出力信号及び前記第１の出力信号の論理積信号を出力する第３の論理積回路と、
前記第４のフリップフロップの出力信号及び前記第２の出力信号の論理積信号を出力する第４の論理積回路とを有し、
前記第１のゲーテッドクロックバッファは、前記第３の論理積回路が出力する論理積信号を入力し、
前記第２のゲーテッドクロックバッファは、前記第４の論理積回路が出力する論理積信号を入力することを特徴とする請求項２記載のクロック信号選択回路。
【請求項４】
前記第１のゲーテッドクロックバッファは、
前記第３の論理積回路が出力する論理積信号を入力し、前記第１のクロック信号のレベルに応じて前記入力した信号を通過させて出力する第１のラッチ回路と、
前記第１のラッチ回路の出力信号及び前記第１のクロック信号の論理積信号を出力する第５の論理積回路とを有し、
前記第２のゲーテッドクロックバッファは、
前記第４の論理積回路が出力する論理積信号を入力し、前記第２のクロック信号のレベルに応じて前記入力した信号を通過させて出力する第２のラッチ回路と、
前記第２のラッチ回路の出力信号及び前記第２のクロック信号の論理積信号を出力する第６の論理積回路とを有し、
前記第１の論理和回路は、前記第５及び第６の論理積回路が出力する信号の論理和信号を出力することを特徴とする請求項３記載のクロック信号選択回路。
【請求項５】
前記第１のフリップフロップは、前記第３のフリップフロップが出力する出力信号を第５のフリップフロップを介して入力し、
前記第２のフリップフロップは、前記第４のフリップフロップが出力する出力信号を第６のフリップフロップを介して入力することを特徴とする請求項３記載のクロック信号選択回路。
【請求項６】
前記第１のゲーテッドクロックバッファは、前記第１のフリップフロップの入力信号を入力し、
前記第２のゲーテッドクロックバッファは、前記第２のフリップフロップの入力信号を入力することを特徴とする請求項２記載のクロック信号選択回路。
【請求項７】
前記第１のフリップフロップは、前記第３のフリップフロップが出力する出力信号をフリップフロップを介して入力し、
前記第２のフリップフロップは、前記第４のフリップフロップが出力する出力信号をフリップフロップを介して入力することを特徴とする請求項６記載のクロック信号選択回路。
【請求項８】
前記第１のゲーテッドクロックバッファは、前記第１のフリップフロップの入力信号及び前記第１のクロック信号の論理積信号を出力する第３の論理積回路を有し、
前記第２のゲーテッドクロックバッファは、前記第２のフリップフロップの入力信号及び前記第２のクロック信号の論理積信号を出力する第４の論理積回路を有し、
前記第１の論理和回路は、前記第３及び第４の論理積回路が出力する信号の論理和信号を出力することを特徴とする請求項７記載のクロック信号選択回路。
【請求項９】
さらに、クロック停止信号が入力されると前記クロック選択信号にかかわらずに前記第１及び第２のゲーテッドクロックバッファの入力信号をローレベルに設定するクロック停止設定回路を有することを特徴とする請求項１記載のクロック信号選択回路。
【請求項１０】
さらに、前記第１のクロック信号が停止しているときには前記第２のクロック信号から前記第１のクロック信号への出力の切り替えを禁止し、前記第２のクロック信号が停止しているときには前記第１のクロック信号から前記第２のクロック信号への出力の切り替えを禁止する切り替え禁止回路を有することを特徴とする請求項１記載のクロック信号選択回路。
【国際調査報告】
2008114446.tif 000026
2008114446.tif 000027