(57)【要約】【課題】  半導体集積回路の製造歩留りの向上や信頼性の向上を図る。【解決手段】  それぞれ第１クロック信号を分周して互いに周波数が異なる第２クロック信号を出力可能な複数の分周器（８３，８４）と、上記第１クロック信号に同期され、上記複数の分周器をリセット可能なリセットパルスを形成するリセットパルス生成回路（１３３）と、上記リセットパルスによる上記分周器のリセット期間中、上記分周器への上記第１クロック信号の供給を停止するクロック制御回路（２００）とを含んでクロック発生回路（１０１）を構成する。このとき、リセット信号を遅延させる必要が無いため、クロック信号と上記分周器のリセットとの間のスキューマージン設計が不要とされ、マージン不足による不良品を低減することができるため、半導体集積回路の製造歩留りの向上を図ることができる。【選択図】        図１
2005316721.tif 000002
【特許請求の範囲】
【請求項１】
それぞれ第１クロック信号を分周して互いに周波数が異なる第２クロック信号を出力可能な複数の分周器と、
上記第１クロック信号に同期され、上記複数の分周器をリセット可能なリセットパルスを形成するリセットパルス生成回路と、
上記リセットパルスによる上記分周器のリセット期間中、上記分周器への上記第１クロック信号の供給を停止するクロック制御回路と、を含むクロック発生回路。
【請求項２】
それぞれ第１クロック信号を分周して互いに周波数が異なる第２クロック信号を出力可能な複数の分周器と、
上記第１クロック信号に同期され、上記複数の分周器をリセット可能なリセットパルスを形成するリセットパルス生成回路と、
上記リセットパルスによる上記分周器のリセット開始タイミングから上記第１クロック信号の少なくとも１サイクル分遅れて上記分周器への上記第１クロック信号の供給を停止し、上記分周器のリセットが解除されてから上記第１クロック信号に同期して上記第１クロック信号の供給停止を解除するクロック制御回路と、を含むクロック発生回路。
【請求項３】
それぞれ第１クロック信号を分周して互いに周波数が異なる第２クロック信号を出力可能な複数の分周器と、
上記第１クロック信号に同期され、上記複数の分周器をリセット可能なリセットパルスを形成するリセットパルス生成回路と、
上記リセットパルスによる上記分周器のリセット開始タイミングから上記第１クロック信号の少なくとも１サイクル分遅れて上記分周器への上記第１クロック信号の供給を停止し、上記分周器のリセットが解除されてから上記第１クロック信号の少なくとも１サイクル分遅れて上記第１クロック信号の供給停止を解除するクロック制御回路と、を含むクロック発生回路。
【請求項４】
上記クロック制御回路は、上記第１クロック信号で上記リセットパルスを同期化可能な第１同期化回路と、
上記第１同期化回路の出力信号と、上記第１クロック信号との論理演算を行う論理ゲートと、を含んで成る請求項３記載のクロック発生回路。
【請求項５】
上記第１同期化回路は、複数のフリップフロップ回路又は複数のスルーラッチ回路が縦続接続されて成る請求項４記載のクロック発生回路。
【請求項６】
入力クロック信号の周波数を逓倍することによって上記第１クロック信号を形成するＰＬＬ回路を含む請求項５記載のクロック生成回路。
【請求項７】
上記クロック制御回路の後段に配置され、上記クロック制御回路の出力信号を遅延することによって、上記第２クロック信号の供給領域間のクロックレイテンシの違いを補償可能なディレイ回路を含む請求項６記載のクロック生成回路。
【請求項８】
上記第２クロック信号を上記第１クロック信号に同期化するための第２同期化回路を含む請求項７記載のクロック生成回路。
【請求項９】
入力された信号を上記第１クロック信号に同期化可能な第３同期化回路を、上記第２同期化回路の後段に配置した請求項８記載のクロック生成回路。
【請求項１０】
上記第３同期化回路は、複数のフリップフロップ回路又は複数のスルーラッチ回路が縦続接続されて成る請求項９記載のクロック生成回路。
【請求項１１】
それぞれ第１クロック信号を分周して第２クロック信号を出力可能な複数の分周器と、
上記第２クロック信号を上記第１クロック信号に同期化するための第２同期化回路と、
上記第２同期化回路の後段に配置され、互いに縦続接続されるとともに、それぞれ入力された信号を上記第１クロック信号に同期化可能な複数の第３同期化回路と、を含むクロック生成回路。
【請求項１２】
請求項１乃至１１の何れか１項記載のクロック発生回路と、上記クロック発生回路で発生されたクロック信号が供給されることで動作される回路とが、一つの半導体基板に形成された半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロック生成回路の改良技術に関し、例えばマイクロプロセッサに適用して有効な技術に関する。
【背景技術】
【０００２】
クロック信号を発生させるための回路として、電圧制御発振器（ＶＣＯ）の発振周波数の分周出力を可能とするクロック生成技術が知られている（例えば特許文献１参照）。このクロック生成技術によれば、クロックジェネレータはＶＣＯを内蔵したフェーズ・ロックド・ループ（ＰＬＬ）回路と、このＰＬＬ回路出力周波数を基準にして複数の１／Ｎ分周のクロック信号を出力し、少なくとも一つは分周出力を可能とする複数の分周回路と、これらの分周回路から出力された分周出力のいずれかを選択し、この選択された分周比のクロック信号を出力するクロック選択回路を有して、クロック信号をＶＣＯの発振周波数の、例えば２分周単位で生成する。
【０００３】
また、コンピュータシステムのタイミングを調整する技術として、プログラム可能なデューティサイクル制御回路が知られている（例えば特許文献２）。このデューティサイクル制御回路は、出力タイミング信号のうちの少なくとも一つのパルス幅を修正する手段と、出力タイミング信号のうち第１の信号を出力タイミング信号のうちの第２の信号に対して遅延させる手段とを含む。
【０００４】
【特許文献１】特開２００４−５６７１７号公報（図１）
【０００５】
【特許文献２】特開平１０−２５４５７４号公報（図１）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
入力されたクロック信号の周波数（例えば５０ＭＨｚ）をＰＬＬ回路で逓倍することで８００ＭＨｚのクロック信号を形成し、このクロック信号を分周器で分周することで、チップ内の各モジュール（回路）に供給するための所望周波数のクロック信号を形成することができる。上記分周器は、クロックツリーの構成に応じて複数形成されることがある。ここで、Ａ系の分周器とＢ系の分周器が形成され、それぞれ対応するＡ系のクロックツリー、Ｂ系のクロックツリーを介してチップ内の各モジュールにクロック信号が供給されるものとする。
【０００７】
クロックツリーの末端でのクロック信号をＡ系とＢ系とで同期させるためには、Ａ系−Ｂ系間のクロックレイテンシの差に相当する時間だけ、クロック信号用のディレイ回路を介在させることにより、一方のクロック信号を遅延させる必要がある。また、外部からのリセット入力を受けてＡ系の分周器とＢ系の分周器との同期ポイント（全ての分周クロック信号がハイレベル（論理値“１”）になるポイント）を揃える必要があるため、リセット信号用のディレイ回路を介在させることにより、一方の分周器のリセットタイミングを他方の分周器のリセットタイミングよりも所定時間だけずらしている。
【０００８】
しかしながら、上記Ａ系、Ｂ系のディレイ回路による遅延時間が大きく、しかも取り扱われるクロック信号の周波数が高い場合には、クロック発生回路の設計が非常に困難になる。例えばクロック信号の周波数が８００ＭＨｚ（周期１．２５ｎｓ）の場合、クロック信号と分周器リセット間のスキューマージンは、１周期１．２５ｎｓから分周器で使われているフリップフロップ回路のセットアップ・ホールド時間とクロックジッタを引いた程度（約５００ｐｓ以下）しかない。ここで、ディレイ回路の遅延時間を５ｎｓとした場合、このディレイ回路８１，１３５のばらつきを５００ｐｓ以下の精度で保つことは非常に難しい。もし、遅延時間のばらつきにより、クロック信号とリセットパルスの前後関係が崩れると、Ａ系とＢ系との同期ポイントは１サイクルずれてしまう。
【０００９】
また、分周クロック信号のスキューを揃えるため、クロック出力時にフリップフロップ回路でクロック信号の立ち上がりタイミング、及び立ち下がりタイミングを揃える必要がある。通常はチップ内の最高速クロック信号（例えば４００ＭＨｚ）の２倍周波数のクロック信号が必要であるが、これはＰＬＬ回路の出力信号である８００ＭＨｚのクロック信号を使用すれば良い。
【００１０】
しかしながらマイクロプロセッサによっては、ＤＤＲ−ＳＤＲＡＭ（デュアル・データ・レート・シンクロナス・ダイナミック・ランダム・アクセス・メモリ）用バスステートコントローラ（「ＤＤＲコントローラ」という）のように特殊なクロック信号を必要とするモジュールが搭載されている場合には、回路設計がさらに難しくなる。例えば、ＰＬＬ回路の出力信号である８００ＭＨｚのクロック信号を使って他のクロック信号のクロックスキューが補正される場合、ＤＤＲコントローラに供給される１６０ＭＨｚのノンオーバーラップのクロック信号の立ち下がりエッジ、立ち上がりエッジの双方を他のクロック信号と同様に揃えるには１６００ＭＨｚ（＝８００×２）のスキュー補正クロック信号が必要とされ、この１６００ＭＨｚのスキュー補正クロック信号は非常に高速であるため、そのようなクロック信号を精度良く発生させるためのクロック発生回路の設計が困難とされる。
【００１１】
このようにクロック信号と分周器リセットとの間のスキューマージンの不足や、所望のクロック信号を形成するのに非常に高速なクロック信号が必要とされるなどの理由により、マージン不足による不良が無視できなくなる。それによって、上記クロック発生回路を搭載する半導体集積回路の製造歩留りの向上が阻害されることが、本願発明者によって見いだされた。尚、このような課題は、上記特許文献１，２に記載された技術では解決できない。
【００１２】
本発明の目的は、半導体集積回路の製造歩留りの向上を図るための技術を提供することにある。
【００１３】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１４】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１５】
すなわち、それぞれ第１クロック信号を分周して互いに周波数が異なる第２クロック信号を出力可能な複数の分周器と、上記第１クロック信号に同期され、上記複数の分周器をリセット可能なリセットパルスを形成するリセットパルス生成回路と、上記リセットパルスによる上記分周器のリセット期間中、上記分周器への上記第１クロック信号の供給を停止するクロック制御回路とを含んでクロック発生回路を構成する。
【００１６】
上記の手段によれば、クロック制御回路は、上記リセットパルスによる上記分周器のリセット期間中、上記分周器への上記第１クロック信号の供給を停止し、リセットが解除されることで上記複数の分周器へのクロック信号の供給を開始することによって、上記複数の分周器間の同期ポイントを揃える。このとき、リセット信号を遅延させる必要が無いため、クロック信号と上記分周器のリセットとの間のスキューマージン設計が不要とされ、クロック信号と上記分周器のリセットとの間のスキューマージンを無視することができる。それによりマージン不足による不良品の低減を図ることができ、このことが、半導体集積回路の製造歩留りの向上を達成する。
【００１７】
それぞれ第１クロック信号を分周して互いに周波数が異なる第２クロック信号を出力可能な複数の分周器と、上記第１クロック信号に同期され、上記複数の分周器をリセット可能なリセットパルスを形成するリセットパルス生成回路と、上記リセットパルスによる上記分周器のリセット開始タイミングから上記第１クロック信号の少なくとも１サイクル分遅れて上記分周器への上記第１クロック信号の供給を停止し、上記分周器のリセットが解除されてから上記第１クロック信号に同期して上記第１クロック信号の供給停止を解除するクロック制御回路とを含んでクロック発生回路を構成することができる。
【００１８】
上記の手段によれば、クロック制御回路は、上記リセットパルスによる上記分周器のリセット開始タイミングから上記第１クロック信号の少なくとも１サイクル分遅れて上記分周器への上記第１クロック信号の供給を停止し、上記分周器のリセットが解除されてから上記第１クロック信号に同期して上記第１クロック信号の供給停止を解除する。例えばクロック同期型の分周器などのように分周器の構成によってはリセットにクロック信号の入力が必要な場合があるが、かかる場合においても、上記分周器への上記第１クロック信号の供給が直ちに停止されないため、分周器のリセットを的確に行うことができる。
【００１９】
それぞれ第１クロック信号を分周して互いに周波数が異なる第２クロック信号を出力可能な複数の分周器と、上記第１クロック信号に同期され、上記複数の分周器をリセット可能なリセットパルスを形成するリセットパルス生成回路と、上記リセットパルスによる上記分周器のリセット開始タイミングから上記第１クロック信号の少なくとも１サイクル分遅れて上記分周器への上記第１クロック信号の供給を停止し、上記分周器のリセットが解除されてから上記第１クロック信号の少なくとも１サイクル分遅れて上記第１クロック信号の供給停止を解除するクロック制御回路とを含んでクロック発生回路を構成する。
【００２０】
上記の手段によれば、クロック制御回路は、上記リセットパルスによる上記分周器のリセット開始タイミングから上記第１クロック信号の少なくとも１サイクル分遅れて上記分周器への上記第１クロック信号の供給を停止し、上記分周器のリセットが解除されてから上記第１クロック信号の少なくとも１サイクル分遅れて上記第１クロック信号の供給停止を解除する。かかる構成においては、上記分周器への上記第１クロック信号の供給が直ちに停止されないため、分周器のリセットにクロック信号の入力が必要な場合でも分周器のリセットを的確に行うことができる。また、上記分周器のリセットが解除されてから上記第１クロック信号の供給停止が直ちに解除されないため、分周器のリセットに比較的長めの期間が必要とされる場合でも、分周器のリセットを的確に行うことができる。
【００２１】
このとき、上記クロック制御回路は、上記第１クロック信号で上記リセットパルスを同期化可能な第１同期化回路と、上記第１同期化回路の出力信号と、上記第１クロック信号との論理演算を行う論理ゲートとを含んで構成することができる。上記第１同期化回路は、複数のフリップフロップ回路又は複数のスルーラッチ回路を縦続接続して構成することができる。
【００２２】
入力クロック信号の周波数を逓倍することによって上記第１クロック信号を形成するＰＬＬ回路を設けることにより、所望周波数のクロック信号を容易に形成することができる。
【００２３】
上記クロック制御回路の後段に配置され、上記クロック制御回路の出力信号を遅延することによって、上記第２クロック信号の供給領域間のクロックレイテンシの違いを補償可能なディレイ回路を設けることができる。
【００２４】
分周器から出力される複数のクロック信号相互間のクロックスキューの低減を図るには、上記第２クロック信号を上記第１クロック信号に同期化するための第２同期化回路を設けると良い。
【００２５】
上記第１クロック信号の立ち下がりエッジに同期するような特殊なクロック信号の生成を容易に行うには、入力された信号を上記第１クロック信号に同期化可能な第３同期化回路を、上記第２同期化回路の後段に配置すると良い。このとき、上記第３同期化回路は、複数のフリップフロップ回路又は複数のスルーラッチ回路を縦続接続して構成することができる。
【００２６】
また、基準となるクロック信号に対して、例えば９０度、１８０度、あるいは２７０度の位相差を有するようなクロック信号を容易に形成するには、それぞれ第１クロック信号を分周して第２クロック信号を出力可能な複数の分周器と、上記第２クロック信号を上記第１クロック信号に同期化するための第２同期化回路と、上記第２同期化回路の後段に配置され、互いに縦続接続されるとともに、それぞれ入力された信号を上記第１クロック信号に同期化可能な複数の第３同期化回路とを含んでクロック生成回路を構成すると良い。
【００２７】
上記構成のクロック発生回路と、そこで発生されたクロック信号が供給されることで動作される回路とを含んで半導体集積回路を構成することができる。
【発明の効果】
【００２８】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００２９】
すなわち、半導体集積回路の製造歩留りの向上を図ることができる。
【発明を実施するための最良の形態】
【００３０】
図７には本発明にかかる半導体集積回路の一例であるマイクロプロセッサが示される。
【００３１】
図７に示されるマイクロプロセッサは、特に制限されないが、公知の半導体集積回路製造技術によりシリコン基板などの一つの半導体基板に形成される。ＣＰＵ（中央処理装置）１０２、ＦＰＵ（Floating-Point Unit）１０３、及び１次キャッシュメモリ１０４がアドレスバス１０５，１０９やデータバス１１０，１１１によって結合されている。ＣＰＵ１０２は、所定のプログラムに従って演算処理を実行する。ＦＰＵ１０３は、浮動小数点の数値演算を高速で処理する。１次キャッシュメモリ１０４は、処理の高速化のために、外部のメインメモリの一部のデータを一時的に保持する。クロック発生回路（ＣＰＧ）１０１が設けられ、このクロック発生回路１０１はクロック信号を生成する。生成されたクロック信号は、このマイクロプロセッサにおけるＣＰＵ１０２やＦＰＵ１０３などの各モジュール（回路）に供給される。
【００３２】
１次キャッシュメモリ１０４、ＢＳＣ１１４（バスステートコントローラ）、及び２次キャッシュメモリ１１２とが、アドレスバス１１８及びデータバス１１９によって結合されている。ＢＳＣ１１４は、データ転送においてウェイト挿入を挿入することによりマスタとターゲットの速度の違いを調整する。２次キャッシュメモリ１１２は、１次キャッシュメモリ１０４と、外部に配置されたメインメモリとの間で１次キャッシュメモリ１０４の機能（1次キャッシュ）を補う。上記ＢＳＣ１１４は、外部バスインタフェース１１５を介して外部バスに結合され、また、ＤＭＡＣ（ダイレクト・メモリ・アクセス・コントローラ）１１３を介して周辺アドレスバス１２７及び周辺データバス１２８に結合される。ＤＭＡＣ１１３は、周辺アドレスバス１２７及び周辺データバス１２８を介してＵＳＢ（ユニバーサルシリアルバス）コントローラ１２２、割り込みコントローラ１２３、ハードディスクコントローラ１２４、タイマ１２５、Ａ／Ｄ（アナログ／ディジタル）コンバータ１２６に結合されている。ＤＭＡＣ１１３はバスマスタとして機能し、ＣＰＵ１０２の介在なしにメモリ間のデータ転送を制御する。ＵＳＢコントローラ１２２は、ＵＳＢによって結合されたデバイスとの間でのデータ転送を制御する。割り込みコントローラ１２３は、割り込み優先順位に従って外部からの割り込み入力を制御する。ハードディスクコントローラ１２４は、外部デバイスであるハードディスクの動作を制御する。タイマ１２５は割り込み処理などで使われる時間幅を設定するのに用いられる。Ａ／Ｄコンバータ１２６は、入力されたアナログ信号をディジタル信号に変換する。
【００３３】
また、アドレスバス１１８及びデータバス１１９には、ＤＤＲコントローラ１２９が接続されている。このＤＤＲコントローラ１２９は、チップ外に配置されたＤＤＲ−ＳＤＲＡＭに外部バスインタフェース１３０を介して結合され、ＣＰＵ１０２からリード・ライトなどの指示を受けると、ＤＤＲ−ＳＤＲＡＭアクセスのためのシーケンスを生成する。また、ＤＤＲ−ＳＤＲＡＭから読み出したデータをデータバス１１９に送るためのシーケンスを生成する。
【００３４】
図８には、上記マイクロプロセッサにおける主要モジュールと、そこで取り扱われるクロック信号との関係が示される。
【００３５】
上記ＣＰＧ１０１は、特に制限されないが、周波数逓倍回路の一例とされるＰＬＬ回路８２、Ａ系の分周器８３、Ｂ系の分周器８４を含んで成る。ＰＬＬ回路８２は、端子８５を介して入力されたクロック信号の周波数（例えば５０ＭＨｚ）を逓倍することによって８００ＭＨｚのクロック信号を生成する。生成された８００ＭＨｚのクロック信号１は、分周器８４に供給され、また、ディレイ回路８１を介して分周器８３に供給される。ここで、ＰＬＬ回路８２とＡ系の分周器８３との間にディレイ回路８１が介在されるのは、Ａ系のモジュール（ＣＰＵ１０２、１次キャッシュメモリ１０４、２次キャッシュメモリ１１２、ＢＳＣ１１４、ＤＤＲコントローラ１２９）と、Ｂ系のモジュール（ＵＳＢコントローラ１２２、割り込みコントローラ１２３、ハードディスクコントローラ１２４、タイマ１２５、Ａ／Ｄコンバータ１２６）とで、クロックツリーのレイテンシが異なるため、クロック発生回路１０１からクロック信号を出力する際に、クロックレイテンシの差（Δｎｓ）だけで時間差をつけて出力する必要がある。Ａ系のモジュールとＢ系のモジュールとでクロックレイテンシが異なるのは、主として論理規模の違いに起因する。
【００３６】
Ａ系の分周器８３は、８００ＭＨｚのクロック信号１を分周することによって、互いに周波数が異なる複数のクロック信号、例えば４００ＭＨｚのクロック信号３、２００ＭＨｚのクロック信号４、１６０ＭＨｚのクロック信号５，６を形成する。尚、１６０ＭＨｚのクロック信号５，６はノンオーバーラップ信号とされる。Ａ系の分周器８３から出力されたクロック信号はＡ系のモジュールとされるＣＰＵ１０２、１次キャッシュメモリ１０４、２次キャッシュメモリ１１２、ＢＳＣ１１４、及びＤＤＲコントローラ１２９に供給される。すなわち、上記４００ＭＨｚのクロック信号３はＣＰＵ１０２及び１次キャッシュメモリ１０４に供給され、２００ＭＨｚのクロック信号４は２次キャッシュメモリ１１２とＢＳＣ１１４に供給され、１６０ＭＨｚのクロック信号５，６はＤＤＲコントローラ１２９に供給される。
【００３７】
Ｂ系の分周器８４は、８００ＭＨｚのクロック信号１を分周することによって、互いに周波数が異なる複数のクロック信号、例えば１００ＭＨｚの信号７及び５０ＭＨｚのクロック信号８を形成する。Ｂ系の分周器８４から出力されたクロック信号はＢ系のモジュールに供給される。すなわち、１００ＭＨｚのクロック信号７はＵＳＢコントローラ１２２、割り込みコントローラ１２３、及びハードディスクコントローラ１２４に供給され、５０ＭＨｚのクロック信号８はタイマ１２５やＡ／Ｄコンバータ１２６に供給される。
【００３８】
図９には上記クロック発生回路１０１から出力されるクロック信号のタイミング波形が示される。
【００３９】
クロックレイテンシがＡ系のモジュールでＡｎｓ、Ｂ系のモジュールでＡ＋Δｎｓあるが、クロック発生回路１０１において、Ｂ系に対してＡ系をΔｎｓだけ遅延させることによって総クロックレイテンシを等しくしている。このような工夫は、図１０に示されるように、同期化回路の一例であるフリップフロップ回路ＦＦを介在させることによってＡ系モジュールとＢ系モジュールとの間で同期転送を行う場合に必要とされる。尚、Ａ系のクロックレイテンシを延ばせば、Ａ系とＢ系のクロックレイテンシを等しくできるが、Ａ系の分周クロック間のクロックレイテンシのばらつきも増えるので、スキュー精度が悪くなる。このため、Ａ系の分周器８３の前段で遅延回路８１によりクロック信号を遅延させるほうが、クロックツリーに無駄な遅延段を付加しないで済むから、クロックスキュー精度を良くすることができるし、消費電力を低減する上でも有利である。
【００４０】
また本例では、ＤＤＲコントローラ１２９に供給されるノンオーバーラップのクロック信号５，６が生成される。
【００４１】
クロック信号５は、１６０ＭＨｚで、ハイレベル（論理値“１”）の期間が８００ＭＨｚで２サイクル、ローレベル（論理値“０”）の期間が３サイクルである。クロック信号５，６は、同じ波形だが、それらの位相は互いに１８０度ずれており、図１１に示されるように、クロック信号１（８００ＭＨｚ）の立下りエッジに同期したクロックである。例えば図１２に示されるように、複数のフリップフロップ回路１２１を縦続接続し、ノンオーバーラップのクロック信号５，６を交互に供給することにより、データ転送が可能とされる。
【００４２】
図１３には、本発明にかかるクロック発生回路の比較対象とされる構成が示される。
【００４３】
入力されたクロック信号の周波数（例えば５０ＭＨｚ）をＰＬＬ回路１３１で逓倍することで８００ＭＨｚのクロック信号１を形成する。このクロック信号１は、Ｂ系の分周器８４に供給され、また、ディレイ回路８１を介してＡ系の分周器８３に供給される。
【００４４】
分周器８３は入力されたクロック信号１を分周することによって、互いに周波数が異なる複数のクロック信号を出力する。この分周器８３の後段には、分周器８３から出力された複数のクロック信号のスキューを揃えるため、フリップフロップ回路１３８，１３９，１４０，１４１が配置され、共通のスキュー補正クロック信号２によって、上記分周器８４から出力された複数のクロック信号が同期化されるようになっている。上記スキュー補正クロック信号２は、上記ディレイ回路８１で遅延されたクロック信号をバッファ１３６で微小時間だけ遅延したものと、上記ディレイ回路８１で遅延されたクロック信号との排他的論理和をエクスクルージブオアゲート１３７でとることで形成される。このようなスキュー補正クロック信号２に基づいて同期化されることにより、クロック信号３〜６が得られる。クロック信号３はＣＰＵ１０２や１次キャッシュメモリ１０４に供給され、クロック信号４は２次キャッシュメモリ１１２やＢＳＣ１１４に供給され、クロック信号５，６は、ＤＤＲコントローラ１２９に供給される（図８参照）。
【００４５】
同様に、Ｂ系の分周器８４は、入力されたクロック信号１を分周することによって、互いに周波数が異なる複数のクロック信号を出力する。この分周器８４の後段には、分周器８４から出力された複数のクロック信号のスキューを揃えるため、フリップフロップ回路１４３，１４４が配置され、共通のスキュー補正クロック信号９によって、上記分周器８３から出力された複数のクロック信号が同期化されるようになっている。上記スキュー補正クロック信号９はクロック信号１をバッファ１４２により微小時間だけ遅延して形成される。このようなスキュー補正クロック信号９に基づいて同期化されることにより、クロック信号７，８が得られる。クロック信号７は、ＵＳＢコントローラ１２２、割り込みコントローラ１２３、及びハードディスクコントローラ１２４に供給され、クロック信号８は、タイマ１２５及びＡ／Ｄコンバータ１２６に供給される（図８参照）。
【００４６】
上記ディレイ回路８１，１３５での遅延時間をαｎｓ、Ａ系の分周器８３での遅延時間をＤ（ａ）ｎｓ、Ｂ系の分周器８４での遅延時間をＤ（ｂ）ｎｓ、Ａ系クロックツリーでのクロックレイテンシをＡｎｓ、Ａ系−Ｂ系間のクロックレイテンシの差をΔｎｓとすると、Ａ系とＢ系を同期させるためには、α＋Ｄ（ａ）＋Ａ＝Ｄ（ｂ）＋Ａ＋Δが成立することが必要とされる。このため、Ａ系−Ｂ系間のクロックレイテンシの差Δｎｓに相当する時間だけ、Ａ系のクロック信号を遅延させる必要がある。
【００４７】
また、図１４に示されるように、外部からのリセット入力を受けて分周器８３，８４の同期ポイントを（全ての分周クロック信号が論理値“１”になるポイント）を揃える必要があるため、図１５に示されるように、分周器８３のリセットタイミングを分周器８４のリセットタイミングよりもαｎｓだけずれるようにしている。具体的には、以下のように設定される。
【００４８】
ＰＬＬ回路１３１から出力されたクロック信号１をＮ分周するＮ分周器１３２と、リセットパルスを生成するためのリセットパルス生成回路１３３が設けられ、このリセットパルス生成回路１３３で生成されたリセットパルス１４によって上記分周器８３，８４がリセットされるようになっている。リセットパルス生成回路１３３は、フリップフロップ回路３１，３３、インバータ３２、及びナンドゲート３４を含んで成る。フリップフロップ回路３１，３３のクロック端子には、上記Ｎ分周器１３２から出力されたクロック信号が伝達される。リセット信号１４５は上記Ｎ分周器１３２から出力されたクロック信号に同期してフリップフロップ回路３１に取り込まれる。このフリップフロップ回路３１の出力信号は後段のインバータ３２を介してフリップフロップ回路３３に取り込まれる。このフリップフロップ回路３３の出力信号と上記フリップフロップ回路３１の出力信号とのナンド論理がナンドゲート３４で得られ、それがリセットパルス１４とされる。このリセットパルス１４は、Ｂ系の分周器８４に伝達されるとともに、ディレイ回路１３５に伝達される。ディレイ回路１３５から出力されたリセットパルス１０が分周器８３に供給される。分周器８３に供給されるリセットパルス１０は、リセットパルス１４に対してディレイ回路１３５によりαｎｓだけ遅延されることにより、クロックツリーの末端での同期ポイントがＡ系とＢ系とで揃えられる。
【００４９】
このようにＡ系の分周器８３においては、ディレイ回路８１，１３５の介在により、周波数８００ＭＨｚのクロック信号１及びリセットパルスの双方がαｎｓだけ遅延される。
【００５０】
しかしながら、上記ディレイ回路８１，１３５による遅延時間が大きく、しかもクロック信号の周波数が高い場合には、回路設計が非常に困難になる。例えば、クロック信号の周波数が８００ＭＨｚ（周期１．２５ｎｓ）の場合、クロック信号と分周器リセット間のスキューマージンは、１周期１．２５ｎｓから分周器で使われているフリップフロップ回路のセットアップ・ホールド時間とクロックジッタを引いた程度（約５００ｐｓ以下）しかない。ここで、ディレイ回路８１，１３５の遅延時間α＝５ｎｓとした場合、このディレイ回路８１，１３５のばらつきを５００ｐｓ以下の精度で保つことは非常に難しい。もし、遅延時間のばらつきにより、クロック信号とリセットパルスの前後関係が崩れると、Ａ系とＢ系との同期ポイントは１サイクルずれてしまう。
【００５１】
また、分周クロック信号のスキューを揃えるため、クロック出力時にフリップフロップ回路でクロック信号の立ち上がりタイミング、及び立ち下がりタイミングを揃える必要がある。通常はチップ内の最高速クロック信号（本例では４００ＭＨｚ）の２倍周波数のクロック信号が必要であり、ＰＬＬ回路８２の出力信号である８００ＭＨｚのクロック信号１を使用することができる。図１３におけるＢ系では１００ＭＨｚ、５０ＭＨｚのクロックスキューを揃えるために８００ＭＨｚ動作のフリップフロップ回路１４３，１４４でタイミングを揃えている。
【００５２】
しかしながら、ＤＤＲコントローラ１２９に供給される１６０ＭＨｚのクロック信号６は、８００ＭＨｚのクロック信号１の立ち下がりエッジに同期しているため、このクロック信号６の立ち下がりエッジ、立ち上がりエッジの双方を他のクロック信号と同様に揃えるには１６００ＭＨｚ（＝８００×２）のスキュー補正クロック信号が必要とされ（図１５参照）、１６００ＭＨｚのスキュー補正クロック信号は非常に高速であるため回路設計が困難とされる。
【００５３】
図１には、本発明にかかるクロック生成回路１０１の構成例が示される。
【００５４】
図１に示される構成が図１３に示されるのと大きく異なるのは、クロック制御回路２００、インバータ１５１、同期化回路の一例とされるフリップフロップ回路１５２〜１５４が設けられた点、及び図１３におけるディレイ回路１３５に相当するものが省略されている点である。尚、図１において、図１３に示されるのと同一機能を有するものには同一符号が付されている。
【００５５】
クロック制御回路２００は、ＰＬＬ回路１３１の後段に配置され、ＰＬＬ回路１３１で生成された８００ＭＨｚのクロック信号１を所定の条件下で一定時間だけ、後段回路に供給するのを停止する機能を有する。特に制限されないが、このクロック制御回路２００は、８００ＭＨｚのクロック信号１を論理反転するためのインバータ１５６と、縦続接続された３個のフリップフロップ回路１５７，１５８，１５９と、フリップフロップ回路１５９の出力クロック信号と上記８００ＭＨｚのクロック信号１とのアンド論理を得るためのアンドゲート１６０とを含んで成る。上記アンドゲート１６０の出力クロック信号は、Ｂ系の分周器８４に伝達されるとともに、ディレイ回路８１を介して分周器８３に伝達される。
【００５６】
図２及び図３には、図１に示されるクロック発生回路における主要部の動作タイミングが示される。
【００５７】
パルス生成回路１３３から出力される分周器リセット信号１４がローレベル場合に、分周器８３，８４のリセットが有効になる。
【００５８】
分周器８３，８４のリセットが有効になってから数サイクル（本例では３サイクル）のクロック信号が続けて出力されてからクロックゲート信号１１がローレベルにされると、それによりアンドゲート１６０のアンド条件が不成立になることから、ディレイ回路８１や分周器８４へのクロック信号１２の供給が停止される。この分周器８３，８４のリセットが有効になってから３サイクルのクロック信号は、スキュー補正クロック信号２，９に反映され、スキュー補正クロック信号２の３サイクルによってフリップフロップ回路１３８〜１４１，１５２〜１５４がリセットされ、スキュー補正クロック信号９によってフリップフロップ回路１４３，１４４がリセットされる。このリセット状態は所定時間継続される。
【００５９】
クロックゲート信号１１がローレベルからハイレベルに遷移され、アンドゲート１６０のアンド条件が成立することで、クロック信号１２の供給が再開される。このとき、分周器８３，８４や、フリップフロップ回路１３８〜１４１，１５２〜１５４，１４３，１４４は既にリセットされているため、クロック信号１２の供給の再開時には、Ａ系、Ｂ系は何れも同期ポイントから分周が開始される。
【００６０】
上記例によれば、以下の作用効果を得ることができる。
【００６１】
（１）クロック制御回路２００を有することにより、ディレイ回路８１や分周器８４へのクロック信号１２の供給が停止され、スキュー補正クロック信号２の３サイクルによってフリップフロップ回路１３８〜１４１，１５２〜１５４がリセットされ、スキュー補正クロック信号９によってフリップフロップ回路１４３，１４４がリセットされ、その後、クロック信号１２の供給の再開時には、Ａ系、Ｂ系は何れも同期ポイントから分周が開始されることから、クロックレイテンシの補正においてクロック信号のみを遅延させれば良く、リセット信号を遅延させる必要がないので、クロック信号と分周器リセットとの間のスキューマージン設計が不要とされ、それによって、マージン不足による不良品を低減することができるので、マイクロプロセッサの製造歩留りの向上を図ることができる。
【００６２】
（２）ＤＤＲコントローラ１２９用のクロック信号６については、フリップフロップ回路１５２〜１５４によってクロック信号５を２．５サイクルだけずらすことによって容易に形成することができる。すなわち、縦続接続されたフリップフロップ回路１５２〜１５４においてクロック信号が順次遅延され、フリップフロップ回路１５４の出力端子からは、クロック信号５を２．５サイクル遅延したクロック信号を得ることができる。これにより、ノンオーバーラップのクロック信号５，６を容易に得ることができる。フリップフロップ回路１５２〜１５４のスキュー補正用クロック信号２は８００ＭＨｚで良く、例えば１６００ＭＨｚなどのような高速クロック信号が不要とされるので、クロック生成におけるタイミングマージンが拡大され、マージン不足による不良品が低減されるので、マイクロプロセッサの製造歩留りの向上を図ることができる。
【００６３】
（３）クロック制御回路２００は、リセットパルス１４による上記分周器のリセット開始タイミングからクロック信号１の少なくとも３サイクル分遅れて分周器８３，８４への上記クロック信号１の供給を停止し、上記分周器８３，８４のリセットが解除されてから上記クロック信号１の少なくとも３サイクル分遅れて上記クロック信号１の供給停止を解除する。この場合、分周器８３，８４への上記クロック信号１の供給が直ちに停止されないため、分周器８３，８４のリセットにクロック信号の入力が必要な場合でも分周器８３，８４のリセットを的確に行うことができる。また、上記分周器８３，８４のリセットが解除されてから上記クロック信号１の供給停止が直ちに解除されないため、分周器８３，８４のリセットに比較的長めの期間が必要とされる場合でも、分周器８３，８４のリセットを的確に行うことができる。
【００６４】
図４には上記クロック発生回路の別の構成例が示される。
【００６５】
図４に示される構成が図１に示されるのと大きく異なるのは、互いにクロックレイテンシが異なる複数の領域Ａ〜Ｄが設けられ、それに対応して複数の分周器８３−１，８３−２，８３−３，８４−１が設けられている点、そして、上記複数の領域Ａ〜Ｄにおけるクロックレイテンシの違いをディレイ回路８１−１，８１−２，８１−３で補償するようにしている点である。
【００６６】
すなわち、上記複数の領域Ａ〜Ｄにおけるクロックレイテンシの違いを補償するため、Ａ系の分周器８３−１の前段にディレイ回路８１−１を設け、Ａ系の分周器８３−２の前段にディレイ回路８１−２を設け、Ａ系の分周器８３−３の前段にディレイ回路８１−３を設ける。ディレイ回路８１−１での遅延時間をαｎｓ、ディレイ回路８１−２での遅延時間をβｎｓ、ディレイ回路８１−１での遅延時間をγｎｓとすると、α＋Ｄ（ａ）＋Ａ＝β＋Ｄ（ｂ）＋Ｂ＝γ＋Ｄ（ｃ）＋Ｃ＝Ｄ（ｄ）＋Ｄが成立するように、ディレイ回路８１−１，８１−２，８１−３での遅延時間を設定することによって各クロックツリー端末でのクロック信号のタイミングを揃えることができる。
【００６７】
尚、分周器毎にクロックスキューの補正を行うことで、クロックスキューをさらに低減するには、図１に示されるように、分周器８３−１，８３−２，８３−３，８４−１の後段に、フリップフロップ回路を設け、そこで、各分周器の出力信号を８００ＭＨｚのクロック信号１に基づいて同期化すると良い。
【００６８】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００６９】
例えば、図１においては、クロック信号５を２．５サイクル遅延することによって、ＤＤＲコントローラ１２９用の１６０ＭＨｚのクロック信号６を得るようにしたが、同様に、基本のクロック信号に対して、９０度、１８０度、あるいは２７０度位相がずれたクロック信号（シフトクロック信号）を容易に形成することができる。例えば図５に示されるように、フリップフロップ回路１３９によって２００ＭＨｚのクロック信号が形成される場合に、このフリップフロップ回路１３９の後段に、フリップフロップ回路１５１，１５２，１５３を設け、それらを縦続接続する。全てのフリップフロップ回路１３８，１３９，１５１，１５２，１５３には、バッファ１３６を介して８００ＭＨｚのクロック信号（スキュー補正クロック信号）が供給される。かかる構成によれば、フリップフロップ回路１５１，１５２，１５３において８００ＭＨｚのクロック信号の１サイクル分の遅延が生じる。これにより、フリップフロップ回路１３９から出力された２００ＭＨｚのクロック信号に対して、９０度ずれたクロック信号、１８０度ずれたクロック信号、２７０度ずれたクロック信号が、それぞれフリップフロップ回路１５１，１５２，１５３から得られる。尚、さらに多くのフリップフロップ回路を縦続接続することで多数のシフトクロック信号を形成することができる。
【００７０】
分周器８３，８４のリセットにクロック信号の入力が必要な場合には、リセットパルスによる上記分周器のリセット開始後、クロック制御回路２００においてクロック信号の出力を直ちに停止することができる。また、分周器８３，８４のリセット時間が十分に確保できる場合には、上記分周器８３，８４のリセットが解除された後、クロック制御回路２００においてクロック信号の供給停止を直ちに解除することができる。
【００７１】
上記の例では同期化回路としてフリップフロップ回路を用いたが、スルーラッチ回路を用いることもできる。フリップフロップ回路はクロック信号の立ち上がり時の入力データをサンプリングするのに対して、スルーラッチ回路はクロック信号がハイレベルの期間、入力データをそのまま出力し、クロック信号がローレベルになった瞬間の入力データをサンプリングする点が異なるが、回路的には何れを用いても良い。
【００７２】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるマイクロプロセッサに適用した場合について説明したが、本発明はそれに限定されるものではなく、各種半導体集積回路に広く適用することができる。
【００７３】
本発明は、少なくともクロック信号の分周器を含むことを条件に適用することができる。
【図面の簡単な説明】
【００７４】
【図１】本発明にかかるクロック発生回路の構成例回路図である。
【図２】図１に示される回路における主要部の動作タイミング図である。
【図３】図１に示される回路における主要部の動作タイミング図である。
【図４】上記クロック発生回路の別の構成例回路図である。
【図５】上記クロック発生回路の別の構成例における主要部の回路図である。
【図６】図５に示される回路における主要部の動作タイミング図である。
【図７】上記クロック発生回路を含むマイクロプロセッサの全体的な構成例ブロック図である。
【図８】上記マイクロプロセッサにおける主要モジュールで使われるクロック信号の説明図である。
【図９】上記マイクロプロセッサにおける主要モジュールで使われるクロック信号の動作タイミング図である。
【図１０】Ａ系モジュールとＢ系モジュールとの間の同期転送の説明図である。
【図１１】上記マイクロプロセッサで使われるノンオーバーラップクロック信号のタイミング図である。
【図１２】図１１に示されるノンオーバーラップクロック信号を用いたデータ転送の説明図である。
【図１３】図１に示されるクロック発生回路の比較対象とされる回路の構成例回路図である。
【図１４】図１３に示される回路におけるリセットパルス生成回路の動作タイミング図である。
【図１５】図１３に示される回路における主要部の動作タイミング図である。
【符号の説明】
【００７５】
８１  ディレイ回路
８１−１〜８１−３  ディレイ回路
８３  Ａ系の分周器
８４  Ｂ系の分周器
１０１  クロック発生回路
１０２  ＣＰＵ
１０３  ＦＰＵ
１０４  １次キャッシュメモリ
１１２  ２次キャッシュメモリ
１１３  ＤＭＡ
１１４  ＢＳＣ
１２２  ＵＳＢコントローラ
１２３  割り込みコントローラ
１２４  ハードディスクコントローラ
１２５  タイマ
１２６  Ａ／Ｄコンバータ
１２９  ＤＤＲコントローラ
１１５,１３０  外部バスインタフェース
８３,１３１  ＰＬＬ回路
１３３  リセットパルス生成回路
２００  クロック制御回路
１５７〜１５９  フリップフロップ回路
１３８〜１４１，１５２〜１５４  フリップフロップ回路
【図１】
2005316721.tif 000003
【図２】
2005316721.tif 000004
【図３】
2005316721.tif 000005
【図４】
2005316721.tif 000006
【図５】
2005316721.tif 000007
【図６】
2005316721.tif 000008
【図７】
2005316721.tif 000009
【図８】
2005316721.tif 000010
【図９】
2005316721.tif 000011
【図１０】
2005316721.tif 000012
【図１１】
2005316721.tif 000013
【図１２】
2005316721.tif 000014
【図１３】
2005316721.tif 000015
【図１４】
2005316721.tif 000016
【図１５】
2005316721.tif 000017