(57)【要約】【課題】動作条件が厳しい場合でも、クロックゲーティング信号を含む経路のタイミング違反の発生を防ぐことができるクロック供給回路を提供する。【解決手段】クロック供給回路１は、クロックツリー１３からのクロック信号に基づく信号を複数のインバータ回路３２ａ及び３２ｂによって遅延させ、複数のインバータ回路３２ａ及び３２ｂによる遅延量に基づいてタイミング違反を推定するモニタ回路１７を有する。さらに、クロック供給回路１は、モニタ回路１７の推定結果に基づいて、組合せ回路１６により生成されたクロックゲーティング信号を制御するＯＲ回路１８と、ＯＲ回路１８の出力信号に基づいて、クロック信号を供給又はクロック信号の供給を停止するクロックゲーティング回路１２とを有する。【選択図】図１
2009218839.tif 000002
【特許請求の範囲】
【請求項１】
クロック生成部からのクロック信号を遅延させるクロックツリーと、
前記クロックツリーにより遅延されたクロック信号により動作する１以上のフリップフロップと、
前記１以上のフリップフロップの出力信号に基づいて、クロックゲーティング信号を生成する組合せ回路と、
遅延素子の段数が前記クロックツリー及び前記組合せ回路に基づいて設定された第１の遅延部と、前記第１の遅延部の出力を所定の遅延量だけ遅延させる第２の遅延部とを有し、前記クロックツリーからのクロック信号に基づく信号を前記第１及び前記第２の遅延部によって遅延させ、前記第１及び前記第２の遅延部による遅延量に基づいてタイミング違反を推定するモニタ回路と、
前記モニタ回路の推定結果に基づいて、前記クロックゲーティング信号を制御する第１の論理ゲートと、
前記第１の論理ゲートの出力信号に基づいて、前記クロック信号を供給又はクロック信号の供給を停止するクロックゲーティング回路と、
を有することを特徴とするクロック供給回路。
【請求項２】
前記モニタ回路は、前記クロックツリーにより遅延されたクロック信号により動作する第１のフリップフロップと、
遅延素子の段数が前記クロックツリー及び前記組合せ回路に基づいて設定された第１の遅延部と、前記第１の遅延部の出力を所定の遅延量だけ遅延させる第２の遅延部とによって構成される第２の論理ゲートと、
前記第２の論理ゲートの出力を前記クロックツリーにより遅延されたクロック信号により取り込む第２のフリップフロップと、
前記第１及び前記第２のフリップフロップの出力を論理演算する第３の論理ゲートとを有し、
前記第３の論理ゲートの出力に基づいて、前記タイミング違反を検出することを特徴とする請求項１に記載のクロック供給回路。
【請求項３】
前記第２の論理ゲートは、偶数個のインバータ回路により構成されていることを特徴とする請求項２に記載のクロック供給回路。
【請求項４】
前記第３の論理ゲートは、ＥＸＯＲ演算を行うＥＸＯＲ回路であることを特徴とする請求項２又は請求項３に記載のクロック供給回路。
【請求項５】
前記第１の論理ゲートは、ＯＲ回路であることを特徴とする請求項１から請求項４の何れか１項に記載のクロック供給回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロック供給回路に関し、特に、クロックゲーティング回路を有するクロック供給回路に関する。
【背景技術】
【０００２】
近年、半導体集積回路の大規模化及び高速化に伴い、半導体集積回路における消費電力が増加している。そのため、半導体集積回路における消費電力を削減する技術として、クロックゲーティング回路を利用したクロック供給回路によりクロック信号を制御する方法が知られている。
【０００３】
クロック供給回路では、ある記憶素子、例えば、フロップフロップ（以下、ＦＦという）にクロック信号を供給する必要がない場合、ＦＦに供給されるクロック信号を停止する。即ち、クロック信号を供給しても、ＦＦの記憶内容が更新されない場合には、クロック信号を「０」又は「１」に固定する。これにより、クロック信号が変化する回数が減少するため、回路の消費電力を削減することができる。このようなクロックゲーティング回路を利用して、論理回路の消費電力を低減するクロック供給回路が提案されている（例えば、特許文献１参照）。
【０００４】
従来のクロック供給回路は、いくつかの異なる周波数でクロック信号を生成するＰＬＬと、クロックゲーティング回路と、クロックツリーと、クロックツリーの末端に接続された複数のＦＦと、１以上のＦＦの出力に基づいて、クロックゲーティング信号を生成する組合せ回路とにより構成されている。
【０００５】
クロックツリーは、ＰＬＬからのクロック信号を多数のＦＦに同位相で供給するために、同じ駆動力を持つバッファをツリー上に接続したものである。従って、クロックツリーの末端同士を比べるとクロック位相は揃っているが、クロックツリーの先頭と比較すると、末端クロック信号は数ナノ秒程度遅れている。一般に、接続されているＦＦの数が多いほど、クロックツリーのバッファの段数が増加し、クロックツリーを伝播したクロック信号の遅延量も大きくなる。
【０００６】
クロックツリーの末端に接続されたＦＦは、この遅延されたクロック信号に基づいて、クロックゲーティング信号のもとになる信号を生成する。組合せ回路は、この生成された信号に基づいて、クロックゲーティング信号を生成する。即ち、クロックゲーティング信号には、クロックツリーの遅延量に加え、クロックゲーティング信号を生成するための組合せ回路に含まれる論理ゲートによる遅延量も付加される。
【０００７】
クロックゲーティング回路は、クロックゲーティング信号の値に従って、クロック信号を通過させたり遮断したりする機能を有する。例えば、クロックゲーティング信号の値が「１」の場合、クロック信号を通過させ、クロックゲーティング信号の値が「０」の場合、クロック信号を遮断する。
【０００８】
ところが、クロックゲーティング回路では、クロックツリーの遅延量及び論理ゲートの遅延量が付加されたクロックゲーティング信号を利用し、遅延する前のクロック信号、即ち、ＰＬＬからのクロック信号を制御するため、クロックゲーティング信号を含む経路は、厳しいタイミング制約を受けることになる。つまり、クロックツリーの末端のＦＦとクロックゲーティング回路との間に置かれた組合せ回路に許される遅延時間は、より小さくなる。
【０００９】
更に、近年では、ＦＦ数の増加、クロック周波数の高速化に伴い、クロックツリーの遅延量及び論理ゲートの遅延量が相対的に大きく見えるようになっている。そのため、クロックゲーティング信号を含む経路は、動作条件が厳しい場合、例えば、電源電圧の低下、チップ温度の上昇等により信号伝播の遅延量が増大した場合、タイミング違反が発生するという問題がある。
【特許文献１】特開２００６−３２４９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明は、動作条件が厳しい場合でも、クロックゲーティング信号を含む経路のタイミング違反の発生を防ぐことができるクロック供給回路を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の一態様によれば、クロック生成部からのクロック信号を遅延させるクロックツリーと、前記クロックツリーにより遅延されたクロック信号により動作する１以上のフリップフロップと、前記１以上のフリップフロップの出力信号に基づいて、クロックゲーティング信号を生成する組合せ回路と、遅延素子の段数が前記クロックツリー及び前記組合せ回路に基づいて設定された第１の遅延部と、前記第１の遅延部の出力を所定の遅延量だけ遅延させる第２の遅延部とを有し、前記クロックツリーからのクロック信号に基づく信号を前記第１及び前記第２の遅延部によって遅延させ、前記第１及び前記第２の遅延部による遅延量に基づいてタイミング違反を推定するモニタ回路と、前記モニタ回路の推定結果に基づいて、前記クロックゲーティング信号を制御する第１の論理ゲートと、前記第１の論理ゲートの出力信号に基づいて、前記クロック信号を供給又はクロック信号の供給を停止するクロックゲーティング回路とを有することを特徴とするクロック供給回路を提供することができる。
【発明の効果】
【００１２】
本発明のクロック供給回路によれば、動作条件が厳しい場合でも、クロックゲーティング信号を含む経路のタイミング違反の発生を防ぐことができる。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照して本発明の実施の形態について詳細に説明する。  
まず、図１に基づいて、本発明の一実施の形態に係るクロック供給回路の構成について説明する。図１は、本発明の一実施の形態に係るクロック供給回路の構成を示すブロック図である。
【００１４】
図１に示すように、本実施の形態のクロック供給回路１は、ＰＬＬ１１と、クロックゲーティング回路１２と、クロックツリー１３及び１３ａと、ＦＦ群１４及び１５と、組合せ回路１６と、モニタ回路１７と、ＯＲ回路１８とを有して構成されている。クロックツリー１３は、複数のバッファ１９ａ〜１９ｎを有して構成され、クロックツリー１３ａは、複数のバッファ２０ａ〜２０ｎを有して構成されている。また、ＦＦ群１４は、３個のＦＦ２１ａ，２１ｂ及び２１ｃと、２個の組合せ回路２２ａ及び２２ｂとを有して構成され、ＦＦ群１５は、３個のＦＦ２３ａ，２３ｂ及び２３ｃと、２個の組合せ回路２４ａ及び２４ｂとを有して構成されている。なお、ＦＦ群１４及びＦＦ群１５は、それぞれ３個のＦＦを有しているが、１個、２個又は４個以上のＦＦを有していてもよい。
【００１５】
ＰＬＬ１１は、ＦＦ群１４及び１５に供給するための所定の周波数のクロック信号を生成し、生成したクロック信号をクロックゲーティング回路１２及びクロックツリー１３に供給する。
【００１６】
クロックゲーティング回路１２は、後述するクロックゲーティング信号に基づいて、ＦＦ群１５にＰＬＬ１１からのクロック信号を供給する、あるいは、クロック信号の供給を停止する。
【００１７】
クロックツリー１３は、ＰＬＬ１１から供給されたクロック信号を複数のバッファ１９ａ〜１９ｎを介して伝播し、伝播したクロック信号をＦＦ群１４の各ＦＦ２１ａ〜２１ｃ及びモニタ回路１７に供給する。
【００１８】
組合せ回路１６は、ＦＦ２１ｃから供給された信号に基づいて、クロックゲーティング信号を生成し、生成したクロックゲーティング信号をＯＲ回路１８に出力する。なお、組合せ回路１６は、ＦＦ２１ｃから出力される信号に基づいて、クロックゲーティング信号を生成しているが、複数のＦＦから出力される信号に基づいて、クロックゲーティング信号を生成してもよい。
【００１９】
モニタ回路１７は、動作条件が厳しい場合、論理値「１」をＯＲ回路１８に出力し、動作条件が厳しくない場合、論理値「０」をＯＲ回路１８に出力する。ここで、動作条件が厳しい場合とは、電源電圧が低下する、あるいは、チップ温度が高くなる場合であり、動作条件が厳しくない場合とは、電源電圧が高くなる、あるいは、チップ温度が低下する場合である。一般に、電源電圧が低下する、あるいは、チップ温度が高くなると、信号伝播の遅延量が増大することが知られている。即ち、動作条件が厳しい場合、信号伝播の遅延量が増大することにより、タイミング違反を起こす可能性が高くなる。なお、モニタ回路１７の構成については、後述する図２を用いて詳細に説明する。
【００２０】
ＯＲ回路１８は、モニタ回路１７からの出力が「１」の場合、組合せ回路１６からのクロックゲーティング信号を「１」に固定し、クロックゲーティング回路１２に出力する。また、ＯＲ回路１８は、モニタ回路１７からの出力が「０」の場合、組合せ回路１６からのクロックゲーティング信号を通過し、クロックゲーティング回路１２に出力する。
【００２１】
クロックゲーティング回路１２は、ＯＲ回路１８からの出力に基づいて、ＦＦ群１５にＰＬＬ１１からのクロック信号を供給する、あるいは、クロック信号の供給を停止する。クロックゲーティング回路１２は、ＯＲ回路１８の出力が「１」の場合、ＰＬＬ１１からのクロック信号をＦＦ群１５に供給し、ＯＲ回路１８の出力が「０」の場合、クロック信号の供給を停止する。この場合、クロックゲーティング回路１２には、ＡＮＤ回路を用いるようにするとよい。
【００２２】
なお、ＯＲ回路１８の出力が「１」の場合、ＰＬＬ１１からのクロック信号をＦＦ群１５に供給し、ＯＲ回路１８の出力が「０」の場合、クロック信号の供給を停止するようにしているが、ＯＲ回路１８の出力が「０」の場合、ＰＬＬ１１からのクロック信号をＦＦ群１５に供給し、ＯＲ回路１８の出力が「１」の場合、クロック信号の供給を停止するようにしてもよい。この場合、クロックゲーティング回路１２には、ＯＲ回路を用いるようにするとよい。
【００２３】
このようにクロックゲーティング回路１２により制御されたクロック信号は、クロックツリー１３ａに供給される。クロックツリー１３ａは、このクロックゲーティング回路１２から供給されたクロック信号を複数のバッファ２０ａ〜２０ｎを介して伝播し、伝播したクロック信号をＦＦ群１５の各ＦＦ２３ａ〜２３ｃに供給する。
【００２４】
ＦＦ群１５の各ＦＦ２３ａ〜２３ｃは、クロックゲーティング回路１２により制御され、クロックツリー１３ａにより遅延されたクロック信号に基づいて、入力信号を取り込み、取り込んだ値を出力する。
【００２５】
ここで、動作条件が厳しい場合、論理値「１」を出力し、動作条件が厳しくない場合、論理値「０」を出力するモニタ回路１７の構成について説明する。図２は、モニタ回路の構成を示すブロック図である。
【００２６】
図２に示すように、モニタ回路１７は、３個のＦＦ３１ａ，３１ｂ及び３１ｃと、複数のインバータ回路３２ａと、複数のインバータ回路３２ｂと、インバータ回路３２ｃと、ＥＸＯＲ回路３３とを有して構成されている。この複数のインバータ回路３２ａにより第１の遅延部が構成され、複数のインバータ回路３２ｂにより第２の遅延部が構成される。
【００２７】
モニタ回路１７には、クロックツリー１３からのクロック信号、言い換えると、クロックツリー１３の末端のクロック信号が供給されている。各ＦＦ３１ａ〜３１ｃは、このクロックツリー１３からのクロック信号の立ち上がりエッジにおいて動作する。なお、各ＦＦ３１ａ〜３１ｃは、クロックツリー１３からのクロック信号の立ち下がりエッジにおいて動作してもよい。
【００２８】
ＦＦ３１ａは、クロックツリー１３からのクロック信号の立ち上がりエッジにおいて、複数のインバータ回路３２ａの内、初段のインバータ回路３２ａの出力を取り込み、初段のインバータ回路３２ａ及びＥＸＯＲ回路３３に出力する。初段のインバータ回路３２ａは、ＦＦ３１ａからの出力を反転し、ＦＦ３１ａ及び次段のインバータ回路３２ａに出力する。即ち、ＦＦ３１ａでは、クロック信号の立ち上がりエッジにおいて、初段のインバータ回路３２ａにより反転された信号が取り込まれる。
【００２９】
初段のインバータ回路３２ａに供給された信号は、複数のインバータ回路３２ａ及び３２ｂを伝播し、ＦＦ３１ｂに供給される。即ち、ＦＦ３１ａの出力は、ＦＦ３１ａとＦＦ３１ｂとの間に含まれるインバータ回路の段数分だけ遅延されＦＦ３１ｂに供給される。このインバータ回路３２ａは、クロックツリー１３の段数と組合せ回路１６の論理ゲートの段数との和の段数に対応する段数に設定されている。即ち、インバータ回路３２ａによってクロックツリー１３及び組合せ回路１６の遅延量を推定することができる。インバータ回路３２ｂの段数は、所定の遅延量が得られるように設定されている。温度条件などが変わりクロックツリー１３及び組合せ回路１６の遅延量が変化する場合には、インバータ回路３２ａによる遅延量も同様に変化し、インバータ回路３２ａ、３２ｂの遅延量は、インバータ回路３２ｂの遅延量だけ、クロックツリー１３及び組合せ回路１６の遅延量より常に大きい。クロックツリー１３及び組合せ回路１６の遅延量が増大してタイミング違反が発生する前に、インバータ回路３２ａ、３２ｂの遅延量からタイミング違反を事前に認識することができる。また、ＦＦ３１ａとＦＦ３１ｂとの間に含まれるインバータ回路は、偶数個のインバータ回路により構成する。
【００３０】
ＦＦ３１ｂは、クロックツリー１３からのクロック信号の立ち上がりエッジにおいて、最終段のインバータ回路３２ｂの出力を取り込み、ＥＸＯＲ回路３３に出力する。
【００３１】
ＥＸＯＲ回路３３は、ＦＦ３１ａとＦＦ３１ｂから入力された値のＥＸＯＲ演算を施し、ＥＸＯＲ演算結果をＦＦ３１ｃに出力する。
【００３２】
ＦＦ３１ｃは、クロックツリー１３からのクロック信号の立ち上がりエッジにおいて、入力されたＥＸＯＲ演算結果を取り込み、インバータ回路３２ｃに出力する。
【００３３】
インバータ回路３２ｃは、ＦＦ３１ｃからの入力を反転し、クロックゲーティング回路１２に出力する。
【００３４】
次に、このように構成された実施の形態の動作について説明する。  
まず、クロックゲーティング信号を含む経路の遅延量について説明する。図３は、クロックゲーティング信号を含む経路の遅延量について説明するためのタイミングチャートである。
【００３５】
ＰＬＬ１１から出力されるクロック信号は、クロックツリー１３に入力される。矢印４１は、このクロックツリー１３に入力されたクロックツリー１３の根元のクロック信号の波形を示している。
【００３６】
クロックツリー１３に入力されたクロック信号は、複数のバッファ１９ａ〜１９ｎにより遅延され、ＦＦ群１４に出力される。矢印４２は、クロックツリー１３の末端のクロック信号の波形を示している。
【００３７】
このように遅延されたクロック信号は、ＦＦ群１４に入力される。ＦＦ群１４のＦＦ２１ｃでは、この遅延されたクロック信号に基づいて、クロックゲーティング信号のもとになる信号が生成され、組合せ回路１６に出力される。矢印４３は、このＦＦ群１４の出力を示している。
【００３８】
組合せ回路１６では、ＦＦ群１４からの信号に基づいて、クロックゲーティング信号が生成される。即ち、このクロックゲーティング信号は、組合せ回路１６の論理ゲートの段数分の遅延量が付加される。矢印４４は、組合せ回路１６により生成されたクロックゲーティング信号の波形を示している。
【００３９】
このように、クロックゲーティング信号を含む経路には、クロックツリー１３による遅延量と、クロックゲーティング信号を生成する論理ゲートによる遅延量とが付加される。従来では、このクロックゲーティング信号がクロックゲーティング回路１２に入力されている。
【００４０】
このように、クロックゲーティング回路１２では、クロックツリー１３及び組合せ回路１６により遅延されたクロックゲーティング信号に基づいて、遅延量が付加される前のクロック信号、即ち、ＰＬＬ１１からのクロック信号の制御が行われる。そのため、セットアップタイムが厳しくなっていた。図３の例では、タイミング違反を起こしていないが、動作条件が厳しくなった場合、信号伝播の遅延量が増大し、タイミング違反を起こす可能性が高くなる。
【００４１】
本実施の形態では、動作条件が厳しくなりタイミング違反を起こしそうな場合、モニタ回路１７から「１」を出力し、ＯＲ回路１８によりクロックゲーティング信号を「１」に固定する。即ち、動作条件が厳しい場合には、クロックゲーティング信号をマスクして、タイミング違反を起こさないようにしている。
【００４２】
ここで、動作条件が厳しくなく、タイミング違反がない場合のモニタ回路１７の動作について説明する。図４は、タイミング違反がない場合のモニタ回路の動作を説明するためのタイミングチャートである。
【００４３】
上述したように、モニタ回路１７内の各ＦＦ３１ａ〜３１ｃは、クロックツリー１３から出力されるクロック信号の立ち上がりにおいて動作する。まず、ＦＦ３１ａでは、初段のクロック信号の立ち上がりにおいて、初段のインバータ回路３２ａの出力が取り込まれる。ＦＦ３１ａに取り込まれた値は、初段のインバータ回路３２ａ及びＥＸＯＲ回路３３に出力される。インバータ回路３２ａでは、入力された値が反転され、ＦＦ３１ａ及び次段のインバータ回路３２ａに出力される。ＦＦ３１ａでは、次段のクロック信号の立ち上がりにおいて、初段のインバータ回路３２ａの出力が取り込まれ、インバータ回路３２ａ及びＥＸＯＲ回路３３に出力される。即ち、ＦＦ３１ａからの出力は、矢印４５に示すように、１周期毎に、「０」と「１」が反転され出力される。
【００４４】
ＦＦ３１ａからの出力は、複数のインバータ回路３２ａ及び３２ｂにより遅延された後、ＦＦ３１ｂに入力される。即ち、ＦＦ３１ｂの入力は、矢印４６の示す波形になる。この複数のインバータ回路３２ａ及び３２ｂの遅延量は、クロックツリー１３による遅延量と、クロックゲーティング信号を生成する論理ゲートの段数分の遅延量とに所定の遅延量を加えたものとなる。
【００４５】
ＦＦ３１ｂでは、クロックツリー１３から出力されるクロック信号の立ち上がりにおいて、最終段のインバータ回路３２ｂの出力が取り込まれ、ＥＸＯＲ回路３３に出力される。即ち、ＦＦ３１ｂの出力は、矢印４７に示す波形になる。このように、動作条件が厳しくなく、複数のインバータ回路３２ａ及び３２ｂによる遅延量がクロック信号の１周期以内に収まっている場合、ＦＦ３１ａとＦＦ３１ｂとの出力は、互いに反転した関係になる。
【００４６】
ＥＸＯＲ回路３３には、ＦＦ３１ａ及びＦＦ３１ｂからの出力が供給される。ＥＸＯＲ回路３３では、図４に示すように、「０」と「１」が反転された値が入力され、ＥＸＯＲ演算が施される。この結果、ＥＸＯＲ回路３３からは、ＥＸＯＲ演算結果として常に「１」が出力される。
【００４７】
ＥＸＯＲ回路３３の出力は、ＦＦ３１ｃに取り込まれた後、インバータ回路３２ｃにより値が反転される。即ち、インバータ回路３２ｃの出力は、矢印４８に示すように、常に「０」が出力される。この結果、動作条件が厳しくない場合、モニタ回路１７からは「０」がＯＲ回路１８に出力されることになり、組合せ回路１６から出力されるクロックゲーティング信号がクロックゲーティング回路１２に入力される。
【００４８】
クロックゲーティング回路１２は、組合せ回路１６から出力されるクロックゲーティング信号に基づいて、ＦＦ群１５にＰＬＬ１１からのクロック信号を供給する、あるいは、クロック信号の供給を停止する。即ち、ＰＬＬ１１からのクロック信号は、従来のクロックゲーティング信号と同じ論理により制御される。従って、動的な消費電力については、従来のクロックゲーティング回路と同程度の低消費電力効果が得られる。
【００４９】
次に、動作条件が厳しく、タイミング違反がある場合のモニタ回路１７の動作について説明する。図５は、タイミング違反がある場合のモニタ回路の動作を説明するためのタイミングチャートである。なお、図５において図４と同様の動作については、説明を省略する。
【００５０】
矢印４９は、動作条件が厳しく、信号伝播の遅延量が大きい場合、即ち、複数のインバータ回路３２ａ及び３２ｂによる遅延量がクロック信号の１周期以内に収まっていない場合を示している。
【００５１】
ＦＦ３１ｂでは、クロックツリー１３から出力されるクロック信号の立ち上がりにおいて、最終段のインバータ回路３２ｂの出力が取り込まれ、ＥＸＯＲ回路３３に出力される。即ち、ＦＦ３１ｂの出力は、矢印５０に示す波形になる。このように、動作条件が厳しく、複数のインバータ回路３２ａ及び３２ｂによる遅延量がクロック信号の１周期以内に収まっていない場合、ＦＦ３１ａとＦＦ３１ｂとの出力は、同一の値となる。
【００５２】
ＥＸＯＲ回路３３には、ＦＦ３１ａ及びＦＦ３１ｂからの出力が供給される。ＥＸＯＲ回路３３では、図５に示すように、同じ値が入力され、ＥＸＯＲ演算が施される。この結果、ＥＸＯＲ回路３３では、ＦＦ３１ａとＦＦ３１ｂとのＥＸＯＲ演算が施され、常に「０」が出力される。
【００５３】
ＥＸＯＲ回路３３の出力は、ＦＦ３１ｃに取り込まれた後、インバータ回路３２ｃにより値が反転され、出力される。即ち、インバータ回路３２ｃの出力は、矢印５１に示すように、常に「１」が出力される。この結果、動作条件が厳しい場合、モニタ回路１７からは、常に「１」が出力されることにより、ＯＲ回路１８から出力されるクロックゲーティング信号は、常に「１」に固定される。ＯＲ回路１８により「１」に固定されたクロックゲーティング信号は、クロックゲーティング回路１２に入力される。クロックゲーティング回路１２では、この「１」に固定されたクロックゲーティング信号に基づいて、ＦＦ群１５にＰＬＬ１１から出力されるクロック信号を供給し続ける。
【００５４】
つまり、モニタ回路１７は、動作条件が厳しくなり、従来のクロックゲーティング信号を含む経路がタイミング違反を起こす動作条件より先にタイミング違反を検出し、クロックゲーティング信号をマスクする。
【００５５】
図６は、クロック供給回路の動作を説明するためのタイミングチャートである。  
図６に示すグラフは、動作条件と時間の関係を示している。動作条件の厳しさをＫファクタという変数を使って表している。ＫファクタＡは、クロックゲーティング信号がタイミング違反を起こす温度及び電源電圧条件であり、ＫファクタＢは、モニタ回路１７がタイミング違反を起こす温度及び電源電圧条件である。電源電圧が高い、あるいは、チップの温度が低い場合は、Ｋファクタの値は小さくなる。逆に、電源電圧が低い、あるいは、チップの温度が高い場合は、Ｋファクタの値は大きくなる。
【００５６】
上述したように、モニタ回路１７の複数のインバータ回路３２ａ及び３２ｂには、クロックツリー１３による遅延量と、クロックゲーティング信号を生成する論理ゲートの段数分の遅延量とに所定の遅延量を加えた遅延量が設定されている。モニタ回路１７は、この設定された遅延量に基づいて、タイミング違反を検出している。そのため、ＫファクタＡの動作条件において、クロックゲーティング信号を含む経路がタイミング違反を起こすより先に、ＫファクタＢの動作条件において、モニタ回路１７がタイミング違反を検出する。モニタ回路１７においてタイミング違反が検出されると、モニタ回路１７は、論理値「１」をＯＲ回路１８に出力する。モニタ回路１７から「１」が出力されると、ＯＲ回路１８によりクロックゲーティング信号が「１」に固定される。この結果、クロックゲーティング回路１２は、ＰＬＬ１１からのクロック信号を通過させ、ＦＦ群１５に供給する。
【００５７】
このように、モニタ回路１７は、クロックゲーティング信号を含む経路がタイミング違反を起こすＫファクタＡよりも小さなＫファクタＢによりタイミング違反を検出する。従って、クロックゲーティング信号を含む経路がタイミング違反を起こす期間は、モニタ回路１７の出力が「１」である期間に包含され、常に、クロックゲーティング信号を含む経路がタイミング違反を起こす期間はマスクされる。
【００５８】
以上のように、クロック供給回路１は、動作条件が厳しい場合に、クロックゲーティング信号をマスクするための制御信号を出力するモニタ回路１７と、クロックゲーティング信号をマスクするＯＲ回路１８とを追加した。モニタ回路１７は、クロックツリー１３による遅延量と、クロックゲーティング信号を生成する論理ゲートの段数分の遅延量とに所定の遅延量を加えた遅延量が設定された複数のインバータ回路３２ａ及び３２ｂを有している。モニタ回路１７では、この設定された遅延量に基づいて、タイミング違反の発生を検出する。この結果、クロック供給回路１は、クロックゲーティング信号がタイミング違反を起こす動作条件より先にタイミング違反を検出し、クロックゲーティング信号をマスクすることができる。
【００５９】
よって、本実施の形態のクロック供給回路によれば、動作条件が厳しい場合でも、クロックゲーティング信号を含む経路のタイミング違反の発生を防ぐことができる。
【００６０】
また、このようなクロック供給回路によれば、厳しい動作条件でのタイミング制約が緩和されるため、論理合成時のタイミング収束に要する時間を短縮できる。更に、厳しい動作条件でのタイミング制約が緩和されるため、論理合成時に所定の条件を与えた場合、クロックゲーティング信号を含む経路に、従来の論理ゲートより低消費電力型の論理ゲートを割り付けることが可能になる。即ち、本実施の形態のクロック供給回路によれば、論理合成時のタイミング収束に要する時間を短縮し、且つ、論理回路の消費電力を下げるという効果も得ることができる。
【００６１】
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【図面の簡単な説明】
【００６２】
【図１】本発明の一実施の形態に係るクロック供給回路の構成を示すブロック図である。
【図２】モニタ回路の構成を示すブロック図である。
【図３】クロックゲーティング信号を含む経路の遅延量について説明するためのタイミングチャートである。
【図４】タイミング違反がない場合のモニタ回路の動作を説明するためのタイミングチャートである。
【図５】タイミング違反がある場合のモニタ回路の動作を説明するためのタイミングチャートである。
【図６】クロック供給回路の動作を説明するためのタイミングチャートである。
【符号の説明】
【００６３】
１…クロック供給回路、１１…ＰＬＬ、１２…クロックゲーティング回路、１３，１３ａ…クロックツリー、１４，１５…ＦＦ群、１６，２２ａ，２２ｂ，２４ａ，２４ｂ…組合せ回路、１７…モニタ回路、１８…ＯＲ回路、１９ａ〜１９ｎ，２０ａ〜２０ｎ…バッファ、２１ａ〜２１ｃ，２３ａ〜２３ｃ，３１ａ〜３１ｃ…ＦＦ、３２ａ〜３２ｃ…インバータ回路、３３…ＥＸＯＲ回路。
【図１】
2009218839.tif 000003
【図２】
2009218839.tif 000004
【図３】
2009218839.tif 000005
【図４】
2009218839.tif 000006
【図５】
2009218839.tif 000007
【図６】
2009218839.tif 000008