(57)【要約】【課題】クロック分配網間のクロックスキューをより低減する。【解決手段】リファレンスクロック信号１１の位相を調整してクロック分配網に分配するＰＬＬ回路１、２と、クロック分配網における複数のフィードバック点ＰＡ１〜ＰＡｎ、ＰＢ１〜ＰＢｎからそれぞれフィードバッククロック信号ＨＡ１〜ＨＡｎ、ＨＢ１〜ＨＢｎを入力し、ＰＬＬ回路１、２でリファレンスクロック信号１１の位相比較対象とされる複数のフィードバッククロック信号から一つの信号を、複数のフィードバッククロック信号のそれぞれの遅延値に基づいて選択するフィードバッククロック信号選択回路９、１６と、を複数のクロック分配網のそれぞれに対応して備える。【選択図】図１
2010273286.tif 000002
【特許請求の範囲】
【請求項１】
入力クロック信号の位相を調整してクロック分配網に分配するＰＬＬ回路と、
前記クロック分配網における複数のフィードバック点からそれぞれフィードバッククロック信号を入力し、前記ＰＬＬ回路で前記入力クロック信号の位相比較対象とされる複数の前記フィードバッククロック信号から一つの信号を、複数の前記フィードバッククロック信号のそれぞれの遅延値に基づいて選択する選択回路と、
を複数の前記クロック分配網のそれぞれに対応して備えることを特徴とするクロック分配回路。
【請求項２】
前記選択回路は、複数の前記フィードバッククロック信号の遅延値の分布における中間値に相当するフィードバッククロック信号を選択することを特徴とする請求項１記載のクロック分配回路。
【請求項３】
前記選択回路は、複数の前記フィードバッククロック信号の遅延値の分布における最大値と最小値との平均に最も近い遅延値を有するフィードバッククロック信号を選択することを特徴とする請求項１記載のクロック分配回路。
【請求項４】
前記選択回路は、複数の前記フィードバッククロック信号の遅延値の中央値に相当するフィードバッククロック信号を選択することを特徴とする請求項１記載のクロック分配回路。
【請求項５】
前記選択回路は、
基準クロック信号と前記フィードバッククロック信号の位相を比較し、前記基準クロック信号と前記フィードバッククロック信号の位相が一致するように前記基準クロック信号を遅延し、位相調整した前記入力クロック信号の代わりに前記クロック分配網に分配するＤＬＬ回路と、
複数の前記フィードバッククロック信号から時分割に１本ずつ選択して前記ＤＬＬ回路に供給する制御を行う時分割制御回路と、
複数の前記フィードバッククロック信号のそれぞれの遅延値に基づいて一つのフィードバッククロック信号を決定するための演算を行う演算回路と、
前記演算回路の演算結果から決定された一つのフィードバッククロック信号を選択する第１のセレクタ回路と、
を備えることを特徴とする請求項１乃至４のいずれか一に記載のクロック分配回路。
【請求項６】
前記ＤＬＬ回路は、
前記基準クロック信号と選択された前記フィードバッククロック信号との位相を比較する位相比較回路と、
前記位相比較回路の位相比較結果に基づいて動作するアップダウンカウンタと、
前記基準クロック信号を遅延する多段構成の遅延素子からなる遅延部と、
前記アップダウンカウンタの値に対応して前記多段構成の遅延素子のいずれか一つの出力信号を選択して前記クロック分配網に分配する第２のセレクタ回路と、
を備えることを特徴とする請求項５記載のクロック分配回路。
【請求項７】
前記演算回路は、複数のラッチ回路を備え、複数の前記フィードバッククロック信号に対応させて複数のそれぞれの前記ラッチ回路で前記アップダウンカウンタの値を保持し、前記ラッチ回路に保持された値に基づいて選択すべきフィードバッククロック信号を決定することを特徴とする請求項５記載のクロック分配回路。
【請求項８】
請求項１乃至７のいずれか一に記載のクロック分配回路を備える半導体装置。
【請求項９】
入力クロック信号の位相を調整してクロック分配網に分配するＰＬＬ回路を複数の前記クロック分配網のそれぞれに対応して備えるクロック分配回路におけるクロック分配方法であって、
前記クロック分配網における複数のフィードバック点からそれぞれフィードバッククロック信号を入力するステップと、
前記ＰＬＬ回路で前記入力クロック信号の位相比較対象とされる複数の前記フィードバッククロック信号から一つの信号を、複数の前記フィードバッククロック信号のそれぞれの遅延値に基づいて選択するステップと、
を含むことを特徴とするクロック分配方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロック分配回路およびクロック分配方法に関し、特に複数のクロック分配網をもつクロック分配回路およびクロック分配方法に関する。
【背景技術】
【０００２】
半導体集積回路において、チップ全体に同位相のクロック分配を行う方法として、複数のクロック分配網を有し、クロック分配網間の位相調整のためにＰＬＬ回路を用いる手法が広く知られている（例えば特許文献１参照）。
【０００３】
図７は、特許文献１に記載のクロック分配回路の構成図であり、２つのクロック分配網間のクロック信号を位相調整するために、位相調整用にＰＬＬ回路を使用したシステム構成である。図７において、主要部のみを説明する。クロック分配回路２０は、クロック分配網２０ａの分岐点ＮＡ３経由の第１クロック信号で動作する順序回路２５ａと、クロック分配網２０ｂの分岐点ＮＢ３経由の第２クロック信号で動作する順序回路２６ａと、順序回路２５ａと順序回路２６ａとの間のデータ転送パス４０とを有する半導体集積回路へ第１クロック信号及び第２クロック信号を分配する。クロック分配回路２０は、分岐点ＮＡ３からの第１フィードバック信号と第１リファレンス信号とから第１クロック信号を出力するＰＬＬ回路２１と、分岐点ＮＢ３からの第２フィードバック信号と第２リファレンス信号とから第２クロック信号を出力するＰＬＬ回路２２とを備える。
【０００４】
このようなクロック分配回路２０によれば、ＰＬＬ回路２１、２２には同じリファレンスクロック信号が入力されていることで、ＰＬＬ回路２１のフィードバッククロック端子ＦＢＫにおける第１クロック信号とＰＬＬ回路２２のフィードバッククロック端子ＦＢＫにおける第２クロック信号とは同じ位相となる。したがって、順序回路２５ａでの第１クロック信号の位相と順序回路２６ａでの第２クロック信号の位相とを概ね合わせることができる。その結果、順序回路２５ａと順序回路２６ａとの間のデータ転送のタイミングが合い、データ転送が良好に実行される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−３３６００３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
以下の分析は本発明において与えられる。
【０００７】
従来技術によれば、順序回路２５ａと順序回路２６ａとのデータ転送において、クロックスキューを小さくすることができる。しかしながら、半導体装置の微細化による製造ばらつきや、動作環境の変化により、第１フィードバッククロック信号と第２フィードバッククロック信号の遅延値に変動がある場合、クロック分配網２０ａとクロック分配網２０ｂ間のクロックスキュー、すなわちクロック分配回路全体のクロックスキューが大きくなってしまうことが起こりうる。この状況について以下に説明する。
【０００８】
図８は、図７のクロック分配回路において全体のクロックスキューが最大となる場合のクロックスキューの範囲を示す図である。例えば、図７のＰＬＬ回路２１のクロック出力端子ＣＬＫＯＵＴから順序回路２５ａのクロック入力端子までの経路の遅延が、ＰＬＬ回路２１のクロック出力端子ＣＬＫＯＵＴから順序回路２５、２５ａ、２５ｂのクロック入力端子までの全ての経路の遅延の中で最小（以下、ＭＩＮと称す）であるとする。また、ＰＬＬ回路２１のクロック出力端子ＣＬＫＯＵＴから順序回路２５ｂのクロック入力端子までの経路の遅延が、ＰＬＬ回路２１のクロック出力端子ＣＬＫＯＵＴから順序回路２５、２５ａ、２５ｂのクロック入力端子までの全ての経路の遅延の中で最大（以下、ＭＡＸと称す）であるとする。
【０００９】
この場合、図８に示すＭＩＮとＭＡＸ間がクロックスキューの範囲ＷＡ１を表す。つまり範囲ＷＡ１は、クロック分配網２０ａのＰＬＬ回路２１のクロック出力端子ＣＬＫＯＵＴから順序回路２５、２５ａ、２５ｂのクロック入力端子までのクロックスキューの最大値である。
【００１０】
同様に、ＰＬＬ回路２２のクロック出力端子ＣＬＫＯＵＴから順序回路２６ｂのクロック入力端子までの経路の遅延が、ＰＬＬ回路２２のクロック出力端子ＣＬＫＯＵＴから順序回路２６、２６ａ、２６ｂのクロック入力端子までの全ての経路の遅延の中で最小（以下、ＭＩＮと称す）であるとする。また、ＰＬＬ回路２２のクロック出力端子ＣＬＫＯＵＴから順序回路２６ａのクロック入力端子までの経路の遅延が、ＰＬＬ回路２２のクロック出力端子ＣＬＫＯＵＴから順序回路２６、２６ａ、２６ｂのクロック入力端子までの全ての経路の遅延の中で最大（以下、ＭＡＸと称す）であるとする。範囲ＷＢ１は、クロック分配回路２０ｂのクロックスキューの最大値である。
【００１１】
また、図８は、例えば第１フィードバッククロック信号の遅延Ｔ１が範囲ＷＡ１のＭＩＮにばらついた場合と、第２フィードバッククロック信号の遅延Ｔ２が範囲ＷＢ１のＭＡＸにばらついた場合を表している。クロック分配回路は、ＰＬＬ回路２１、２２によって遅延Ｔ１、Ｔ２を一致させるように動作する。
【００１２】
範囲ＷＣ１は、クロック分配網２０ａとクロック分配網２０ｂ間のクロックのクロックスキューであり、クロック分配回路２０の全体のクロックスキューの最大値を示している。この場合、範囲ＷＣ１は、範囲ＷＡ１、ＷＢ１の和と等しい値となることを示しており、クロック分配回路２０のクロックスキューが非常に大きくなってしまうことを示している。
【００１３】
クロック分配回路２０全体のクロックスキューの範囲ＷＣ１が大きくなると、順序回路２５ｂ、２６ｂの順序回路間のデータ転送の誤動作が発生する可能性が高まる。このような場合、誤動作を回避するためにはクロックスキューを大きなマージンとして設計する必要があり、高速動作が困難になってしまう。
【課題を解決するための手段】
【００１４】
本発明の１つのアスペクト（側面）に係るクロック分配回路は、入力クロック信号の位相を調整してクロック分配網に分配するＰＬＬ回路と、クロック分配網における複数のフィードバック点からそれぞれフィードバッククロック信号を入力し、ＰＬＬ回路で入力クロック信号の位相比較対象とされる複数のフィードバッククロック信号から一つの信号を、複数のフィードバッククロック信号のそれぞれの遅延値に基づいて選択する選択回路と、を複数のクロック分配網のそれぞれに対応して備える。
【００１５】
本発明の他のアスペクト（側面）に係るクロック分配方法は、入力クロック信号の位相を調整してクロック分配網に分配するＰＬＬ回路を複数のクロック分配網のそれぞれに対応して備えるクロック分配回路におけるクロック分配方法であって、クロック分配網における複数のフィードバック点からそれぞれフィードバッククロック信号を入力するステップと、ＰＬＬ回路で入力クロック信号の位相比較対象とされる複数のフィードバッククロック信号から一つの信号を、複数のフィードバッククロック信号のそれぞれの遅延値に基づいて選択するステップと、を含む。
【発明の効果】
【００１６】
本発明によれば、クロック分配網間のクロックスキューをより低減することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１の実施例に係るクロック分配回路の構成を示す図である。
【図２】本発明の第１の実施例に係るＤＬＬ回路を用いたフィードバッククロック信号選択回路の回路図である。
【図３】本発明の第１の実施例に係るフィードバッククロック信号選択回路の動作を表すフローチャートである。
【図４】フィードバッククロック信号の遅延とアップダウンカウンタ値の関係を示す図である。
【図５】２つのクロック分配網間のクロックスキューの範囲を模式的に示す図である。
【図６】複数のフィードバッククロック信号を各部分から均等に選ぶ場合を説明するためのレイアウトを示す回路図である。
【図７】従来のクロック分配回路の構成図である。
【図８】従来のクロック分配回路において全体のクロックスキューが最大となる場合のクロックスキューの範囲を示す図である。
【発明を実施するための形態】
【００１８】
本発明の実施形態に係るクロック分配回路は、入力クロック信号（図１の１１）の位相を調整してクロック分配網に分配するＰＬＬ回路（図１の１、２）と、クロック分配網における複数のフィードバック点（図１のＰＡ１〜ＰＡｎ、ＰＢ１〜ＰＢｎ）からそれぞれフィードバッククロック信号（図１のＨＡ１〜ＨＡｎ、ＨＢ１〜ＨＢｎ）を入力し、ＰＬＬ回路で入力クロック信号の位相比較対象とされる複数のフィードバッククロック信号から一つの信号を、複数のフィードバッククロック信号のそれぞれの遅延値に基づいて選択する選択回路（図１の９、１６）と、を複数のクロック分配網のそれぞれに対応して備える。
【００１９】
選択回路は、複数のフィードバッククロック信号の遅延値の分布における中間値に相当するフィードバッククロック信号を選択するようにしてもよい。
【００２０】
選択回路は、複数のフィードバッククロック信号の遅延値の分布における最大値と最小値との平均に最も近い遅延値を有するフィードバッククロック信号を選択するようにしてもよい。
【００２１】
選択回路は、複数のフィードバッククロック信号の遅延値の中央値に相当するフィードバッククロック信号を選択するようにしてもよい。
【００２２】
選択回路は、基準クロック信号とフィードバッククロック信号の位相を比較し、基準クロック信号とフィードバッククロック信号の位相が一致するように基準クロック信号を遅延し、位相調整した入力クロック信号の代わりにクロック分配網に分配するＤＬＬ回路と、複数のフィードバッククロック信号から時分割に１本ずつ選択してＤＬＬ回路に供給する制御を行う時分割制御回路と、複数のフィードバッククロック信号のそれぞれの遅延値に基づいて一つのフィードバッククロック信号を決定するための演算を行う演算回路と、演算回路の演算結果から決定された一つのフィードバッククロック信号を選択する第１のセレクタ回路と、を備えるようにしてもよい。
【００２３】
ＤＬＬ回路は、基準クロック信号と選択されたフィードバッククロック信号との位相を比較する位相比較回路と、位相比較回路の位相比較結果に基づいて動作するアップダウンカウンタと、基準クロック信号を遅延する多段構成の遅延素子からなる遅延部と、アップダウンカウンタの値に対応して多段構成の遅延素子のいずれか一つの出力信号を選択してクロック分配網に分配する第２のセレクタ回路と、を備えるようにしてもよい。
【００２４】
演算回路は、複数のラッチ回路を備え、複数のフィードバッククロック信号に対応させて複数のそれぞれのラッチ回路でアップダウンカウンタの値を保持し、ラッチ回路に保持された値に基づいて選択すべきフィードバッククロック信号を決定するようにしてもよい。
【００２５】
以上のようなクロック分配回路によれば、各クロック分配網のクロック経路においてクロックスキューの中心値に近い信号をＰＬＬ回路へのフィードバッククロック信号とすることで、製造ばらつきや動作環境の変化などの影響によるクロック分配網間のクロックスキューをより低減することが可能となる。
【００２６】
以下、実施例に即し、図面を参照して詳しく説明する。
【実施例１】
【００２７】
図１は、本発明の第１の実施例に係るクロック分配回路の構成を示す図である。図１において、クロック分配回路は、２つのクロック分配網６ａ、６ｂ間のクロック信号を位相調整するための、位相調整用のＰＬＬ回路を使用したシステム構成である。
【００２８】
図１に示すクロック分配回路は、クロック分配網６ａ、６ｂと、ＰＬＬ回路１、２と、クロックドライバ３を備える。データ転送パス１０ａ、１０ｂ、１０ｃは、クロック分配網６ａとクロック分配網６ｂの異なるクロック分配網間のデータ転送を行うパス（異ドメイン間データ転送パス）を構成している。
【００２９】
クロック分配回路は、半導体集積回路内に設けられ、当該半導体集積回路の外部（以降単に「外部」と称す）からクロックドライバ３を介してＰＬＬ回路１、２のリファレンスクロック端子ＲＣＬＫに入力されるクロック信号の周波数及び位相を参照信号として生成されたクロック信号を、複数の順序回路７、７ａ、７ｂ、７ｃ、８、８ａ、８ｂ、８ｃへ分配する。ここで、順序回路７ａと順序回路８ａは、データ転送パス１０ａによって接続され、順序回路８ｂと順序回路７ｂは、データ転送パス１０ｂによって接続され、順序回路７ｃと順序回路８ｃはデータ転送パス１０ｃによって接続されている。また、リファレンスクロック信号１１は、外部からクロックドライバ３を介して、ＰＬＬ回路１、２のリファレンスクロック端子ＲＣＬＫに供給される外部クロック信号である。
【００３０】
ＰＬＬ回路１は、フィードバッククロック信号１２を、リファレンスクロック信号１１に同期するように周波数及び位相を調整し、クロック信号１４としてクロック分配網６ａへ出力する。フィードバッククロック信号１２は、フィードバッククロック信号選択回路９からＰＬＬ回路１のフィードバッククロック端子ＦＢＫに供給されるクロック信号であり、ＰＬＬ回路１の出力であるクロック信号１４を帰還した信号に相当する。
【００３１】
クロック分配網６ａは、クロックツリーを構成するＣＴＳバッファ４とクロックドライバ５、セレクタ回路５４を備える。クロック分配網６ａは、ＰＬＬ回路１のクロック出力端子ＣＬＫＯＵＴから出力されたクロック信号１４を、セレクタ回路５４、ＣＴＳバッファ４、クロックドライバ５を介して複数の順序回路７、７ａ、７ｂ、７ｃに分配する。
【００３２】
なお、セレクタ回路５４は、フィードバッククロック信号選択時と通常動作時とで、クロック分配網へのクロック供給を制御するためのセレクタである。
【００３３】
フィードバッククロック信号選択回路９には、リーフに位置する順序回路７、７ａ、７ｂ、７ｃのクロック入力端子の近くに位置する分岐点（フィードバック点）ＰＡ１、ＰＡ２〜ＰＡｎからｎ本のフィードバッククロック信号ＨＡ１、ＨＡ２〜ＨＡｎが供給される。フィードバッククロック信号選択回路９は、フィードバッククロック信号ＨＡ１、ＨＡ２〜ＨＡｎの位相比較を行い、フィードバッククロック信号ＨＡ１、ＨＡ２〜ＨＡｎの中で遅延値が最も中心に近い遅延値のフィードバッククロック信号を選択し、ＰＬＬ回路１のフィードバッククロック端子ＦＢＫへフィードバッククロック信号１２として供給する。
【００３４】
ここで、ＰＬＬ回路１のクロック出力端子ＣＬＫＯＵＴから順序回路７、７ａ、７ｂ、７ｃのクロック入力端子までの遅延と、ＰＬＬ回路１のクロック出力端子ＣＬＫＯＵＴから分岐点ＰＡ１、ＰＡ２〜ＰＡｎとフィードバッククロック信号選択回路９を介してＰＬＬ回路１のフィードバッククロック端子ＦＢＫに帰還するまでの遅延とは、同等になるように遅延調整されているものとする。
【００３５】
ＰＬＬ回路２は、フィードバッククロック信号１３を、リファレンスクロック信号１１に同期するように周波数及び位相を調整し、クロック信号１５としてクロック分配網６ｂへ出力する。クロック分配網６ｂは、データ転送パス１０ａ、１０ｂ、１０ｃに関する接続を除き、クロック分配網６ａと同一の構成を有する。
【００３６】
図２は、ＤＬＬ回路を用いたフィードバッククロック信号選択回路９（１６）の回路図である。フィードバッククロック信号選択回路９（１６）は、ＤＬＬ回路５１と時分割制御回路５２とセレクタ回路５３と演算回路５５を備える。
【００３７】
ＤＬＬ回路５１は、位相比較回路５６とアップダウンカウンタ５７とセレクタ回路５８とディレイブロック５９を備える。
【００３８】
ディレイブロック５９は、直列に接続された複数のバッファＩＢ１〜ＩＢｐを備え、各バッファによって遅延調整されたクロック信号をセレクタ回路５８に出力する。
【００３９】
セレクタ回路５８は、アップダウンカウンタ５７から出力されるアップダウンカウンタ値ｍに対応するバッファＩＢｍ（但し、１≦ｍ≦ｐ）によって遅延調整されたクロック信号を選択してクロック信号６１としてセレクタ回路５４に出力する。
【００４０】
位相比較回路５６は、基準クロック信号５０と、時分割制御回路５２によって時分割にフィードバッククロック信号ＨＡ１〜ＨＡｎから１本のみ選択されたフィードバッククロック信号との位相差に基づいて、アップダウンカウンタ５７のカウント値を増減する信号をアップダウンカウンタ５７へ出力する。ここで、基準クロック信号５０は、フィードバッククロック信号ＨＡ１〜ＨＡｎの位相を比較するための基準となるクロック信号である。時分割制御回路５２において選択されたフィードバッククロック信号は、基準クロック信号５０と同じ位相になるように位相比較回路５６で位相調整される。
【００４１】
フィードバッククロック信号選択回路９は、クロック分配網６ａのｎ本のフィードバッククロック信号ＨＡ１〜ＨＡｎを入力する。フィードバッククロック信号ＨＡ１〜ＨＡｎは、時分割制御回路５２およびセレクタ回路５３に入力される。
【００４２】
時分割制御回路５２は、演算実行制御信号６０がアクティブになった場合、ｎ本のフィードバッククロック信号ＨＡ１〜ＨＡｎを、ある一定の時間毎（以降「時分割」と称す）に１本ずつ選択し、ＤＬＬ回路５１の位相比較回路５６に選択した１本のフィードバッククロック信号を供給する。演算実行制御信号６０は、演算実行を行うトリガとなる信号であり、例えば、ユーザが任意に演算を実行できるような構成の場合、ユーザが任意に設定可能なレジスタから与えられる。時分割制御回路５２が時分割に要する時間は、ＤＬＬ回路５１における基準クロック信号５０とフィードバッククロック信号が安定的に位相調整される十分な期間とする。
【００４３】
演算回路５５は、フィードバッククロック信号ＨＡ１〜ＨＡｎにそれぞれ対応して、ＤＬＬ回路５１で位相調整された際のアップダウンカウンタ５７の値を、ラッチ７１〜７ｎに記憶させ、全てのフィードバッククロック信号の位相比較終了時に、それぞれのラッチの値から、最も中心に近い遅延値のフィードバッククロック信号を選択する。この場合、演算回路５５は、複数のフィードバッククロック信号の遅延値の分布における中間値に相当するフィードバッククロック信号を選択するようにしてもよい。また、複数のフィードバッククロック信号の遅延値の分布における最大値と最小値との平均に最も近い遅延値を有するフィードバッククロック信号を選択してもよい。あるいは、複数のフィードバッククロック信号の遅延値の中央値に相当するフィードバッククロック信号を選択してもよい。
【００４４】
演算回路５５は、フィードバッククロック信号の選択の結果に基づいて、セレクタ回路５３を制御し、選択されたフィードバッククロック信号をＰＬＬ回路１のフィードバッククロック端子ＦＢＫへフィードバッククロック信号１２として供給する。
【００４５】
以上のように構成されるフィードバッククロック信号選択回路９（１６）は、複数のフィードバッククロック信号の中で遅延値が最も中心に近い遅延値のフィードバッククロック信号を位相調整用のＰＬＬ回路１（２）のフィードバッククロック信号１２（１３）として選択する。
【００４６】
図３は、フィードバッククロック信号選択回路の動作を表すフローチャートである。
【００４７】
ステップＳ８０において、フィードバッククロック信号を選択する演算を実行するか否かの判定を行う。演算を実行する場合は、演算実行制御信号６０をアクティブとし、ステップＳ８１に進む。演算を実行しない場合は、演算実行制御信号６０をアクティブとせず、処理を終了する。
【００４８】
ステップＳ８１において、変数ａに１を代入する。
【００４９】
ステップＳ８２において、フィードバッククロック信号ＨＡａ（ａ＝１〜ｎ）と基準クロック信号５０とのＤＬＬ回路５１による位相比較を行うため、時分割制御回路５２で、フィードバッククロック信号ＨＡａを選択し、ＤＬＬ回路５１の位相比較回路５６に供給する。なお、フィードバッククロック信号ＨＡａと基準クロック信号５０との位相調整が安定する十分な期間、ステップＳ８２を継続する。
【００５０】
ステップＳ８３において、最終的に安定したアップダウンカウンタ５７の値を、演算回路５５のラッチ７ａに書き込む。
【００５１】
次にステップＳ８４に進み、変数ａの数値がフィードバッククロック信号のｎ本と等しいか否かの判定を行い、一致しない場合はステップＳ８７に進み、変数ａに１を加算してステップＳ８２に戻り、ステップＳ８２、Ｓ８３をフィードバッククロック信号の本数分であるｎ回実施する。変数ａの数値とフィードバッククロック信号のｎ本とが等しくなったならば、ステップＳ８５に進む。
【００５２】
ステップＳ８５では、演算回路５５のラッチ７１〜７ｎに保持された値から、遅延値の中心に近い値を持つフィードバッククロック信号を選択する。
【００５３】
ステップＳ８６において、ステップＳ８５で選択したフィードバッククロック信号を、ＰＬＬ回路１のフィードバッククロック端子ＦＢＫに供給し、処理を終了する。
【００５４】
図４は、フィードバッククロック信号の遅延とアップダウンカウンタの値ｍの関係を示す図である。フィードバッククロック信号ＨＡ１〜ＨＡｎの遅延は、クロック分配網６ａのクロック信号のクロックスキューの範囲ＷＥ１内でばらつく。そこで、複数のフィードバッククロック信号ＨＡ１〜ＨＡｎの中から、遅延値の中心値を算出し、中心値に一番近い信号を選択することで、クロック分配網６ａ全体のクロックのクロックスキューの範囲ＷＥ１の中心に近い遅延を持つフィードバッククロック信号を選択する。
【００５５】
例えば、遅延の最小値がフィードバッククロック信号ＨＡ４でｍ＝１７、遅延の最大値がフィードバッククロック信号ＨＡ２でｍ＝４７であるとし、その他のフィードバッククロック信号ＨＡ１、ＨＡ３、ＨＡ５、ＨＡ６〜ＨＡｎのｍが、それぞれ２２、２６、４１、３１〜３５であるとする。この場合、図２の演算回路５５において、式１を演算する。
中心値＝（１７＋４７）／２＝３２  ・・・式１
式１の演算結果に一番近い信号は、アップダウンカウンタの値ｍが３１であるフィードバッククロック信号ＨＡ６となる。
【００５６】
次に、２つのクロック分配網６ａ、６ｂ間のクロックスキューについて説明する。図５は、２つのクロック分配網６ａ、６ｂ間のクロックスキューの範囲を模式的に示す図である。クロック分配網６ａのｎ本のフィードバッククロック信号が、ＰＬＬ回路１のクロック出力端子ＣＬＫＯＵＴから順序回路７、７ａ、７ｂ、７ｃのクロック入力端子までのクロックスキューの範囲ＷＥ１の中で、遅延ＤＰ２、ＤＰ３、ＤＰ４、ＤＰ１、ＤＰ５、ＤＰ６、ＤＰｎで分布しているとする。この場合、フィードバッククロック信号選択回路９は、ｎ本のフィードバッククロック信号の中から遅延が中心に最も近い遅延ＤＰ１のフィードバッククロック信号を選択する。
【００５７】
同様に、クロック分配網６ｂのｎ本のフィードバッククロック信号が、ＰＬＬ回路２のクロック出力端子ＣＬＫＯＵＴから順序回路８、８ａ、８ｂ、８ｃのクロック入力端子までのクロックスキューの範囲ＷＦ１の中で、遅延ＤＱ２、ＤＱ３、ＤＱ４、ＤＱ１、ＤＱ５、ＤＱ６、ＤＱｎで分布しているとする。この場合、フィードバッククロック信号選択回路１６は、ｎ本のフィードバッククロック信号の中から遅延が中心に最も近い遅延ＤＱ１のフィードバッククロック信号を選択する。
【００５８】
このように選択された２本のフィードバッククロック信号は、それぞれのクロック分配網６ａ、６ｂのクロックのクロックスキューの範囲ＷＥ１、ＷＦ１の中心に近い信号となる。図５に示すように選択された２本のフィードバッククロック信号の遅延は一致するので、クロックドライバ３から順序回路７、７ａ、７ｂ、７ｃ、８、８ａ、８ｂ、８ｃの各クロック入力端子までのクロックスキューの範囲ＷＧ１を小さくすることができる。すなわち、クロック分配網６ａとクロック分配網６ｂ間のクロックスキューが低減される。図８で示した従来技術のクロック分配回路２０の全体のクロックスキューが最大となる場合のクロックスキューの範囲ＷＣ１と比べると、本発明のクロックスキューの範囲ＷＧ１が小さくなっているのが明らかである。
【００５９】
したがって、図１に示すように、順序回路７ａと順序回路８ａ、順序回路８ｂと順序回路７ｂおよび順序回路７ｃと順序回路８ｃが、データ転送パス１０ａ、１０ｂおよび１０ｃでそれぞれ接続されている場合、クロック分配網６ａ、クロック分配網６ｂ間において、より高速なデータの転送が可能となる。
【００６０】
次に、半導体装置内のフィードバッククロック信号の選択方法について説明する。近年の半導体微細化に伴い、チップ内の製造ばらつきによる遅延変動が大きくなってきている。クロック分配回路は、リーフである順序回路のクロック入力端子の近くに位置する分岐点から任意にｎ本のフィードバッククロック信号を選択することで実現される。ここでは、特に製造ばらつきによるチップ内の遅延変動を考慮するため、リーフである順序回路のレイアウト配置先を、クロック分配網の各順序回路のレイアウト上の配置分布の各部分から均等に選ぶ場合について説明する。
【００６１】
図６は、複数のフィードバッククロック信号を各部分から均等に選ぶ場合を説明するためのレイアウトを示す回路図である。特に、製造ばらつきによる遅延変動を考慮したい場合の複数フィードバッククロック信号の選択方法を説明するための図である。
【００６２】
図６において、クロック分配網９０ａが上部に、クロック分配網９０ｂが下部にレイアウトされている。クロック分配網９０ａでは、順序回路９５、９５ａがレイアウト上のクロック分配網９０ａの左下に配置されており、以下、順序回路９６、９６ａが左上、順序回路９７、９７ａが右下、順序回路９８、９８ａが右上に配置されている。また、クロック分配網９０ｂにおいても同様に、順序回路９９、９９ａがレイアウト上の左下に配置されており、以下、順序回路１００、１００ａが左上、順序回路１０１、１０１ａが右下、順序回路１０２、１０２ａが右上に配置されている。
【００６３】
例えば、クロック分配網９０ａからフィードバッククロック信号を４本選択する場合、４本のフィードバッククロック信号は、それぞれクロック分配網９０ａの各順序回路のレイアウト上配置の、左下、左上、右下、右上部からほぼ均等に順序回路９５ａ、９６ａ、９７ａ、９８ａのクロック入力端子に近い分岐点より１本ずつ取り出し、フィードバッククロック信号選択回路９の入力として帰還する。
【００６４】
同様に、例えばクロック分配網９０ｂからフィードバッククロック信号を４本選択する場合、４本のフィードバッククロック信号は、それぞれクロック分配網９０ｂの各順序回路のレイアウト上配置の、左下、左上、右下、右上部からほぼ均等に順序回路９９ａ、１００ａ、１０１ａ、１０２ａのクロック入力端子に近い分岐点より１本ずつ取り出し、フィードバッククロック信号選択回路１６の入力として帰還する。
【００６５】
クロック分配網９０ａおよびクロック分配網９０ｂの順序回路のレイアウト上配置先からほぼ均等に複数フィードバッククロック信号をフィードバッククロック信号選択回路９および１６の入力として帰還させるため、製造ばらつきによるチップ内の遅延変動、つまりレイアウト上、配置先による遅延変動の影響を考慮したＰＬＬ回路１および２へのフィードバッククロック信号１２および１３を選択する。このようにすることで、クロック分配網９０ａおよび９０ｂ間の製造ばらつき要因での遅延変動によるクロックスキューの増大を抑えることができる。
【００６６】
以上の説明では、クロック分配網６ａ、６ｂは共に、フィードバッククロック信号が同じｎ本であるものとした。しかしながら、実際のクロック分配回路では、それぞれのクロック分配網の順序回路の個数や、クロックツリー構成、全体の回路規模などが異なる場合がほとんどである。クロック分配網６ａ、６ｂのフィードバッククロック信号の本数が異なる場合であっても、フィードバッククロック信号の本数以外は同様の回路構成で実現可能であり、同様に動作する。
【００６７】
また、クロック分解網６ａ、６ｂを同一チップ上に構成してもよく、それぞれ異なるチップ上に構成しても同様の回路構成で実現可能であり、同様に動作可能である。
【００６８】
以上のようなクロック分配回路によれば、以下のような効果を奏する。
【００６９】
（１）クロック分配網間のクロックスキューが低減される。クロックスキューを低減できる理由としては、クロック分配網に少なくとも一つの位相調整ＰＬＬ回路と、位相調整ＰＬＬ回路で位相比較する複数のフィードバッククロック信号と、複数のフィードバッククロック信号の中で遅延値が最も中心に近い遅延値のフィードバッククロック信号を選択するフィードバッククロック信号選択回路を有し、フィードバッククロック信号選択回路により、複数のフィードバッククロック信号中で遅延値が最も中心に近い遅延値のフィードバッククロック信号選択することで、各クロック分配網のクロック経路のクロックスキューの中心値に最も近い信号を位相調整ＰＬＬ回路へのフィードバッククロックとすることが可能となるためである。
【００７０】
（２）より高速の動作が可能ある。高速動作ができる理由としては、複数クロック分配回路を有する半導体集積回路において、クロック分配網間のクロックスキューが小さくできることより、設計時のマージンを小さくできるためである。
【００７１】
（３）コスト低減ができることである。コスト低減ができる理由としては、クロック分配網間のクロックスキューが小さくなることで、半導体集積回路の量産前の評価や量産開始後の出荷時のテスト時に、より高速動作が可能となるため、テスト時間の削減がなされるためである。
【００７２】
なお、前述の特許文献等の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【００７３】
１、２    ＰＬＬ回路
３、５    クロックドライバ
４    ＣＴＳバッファ
６ａ、６ｂ    クロック分配網
７、７ａ、７ｂ、７ｃ、８、８ａ、８ｂ、８ｃ    順序回路
９、１６    フィードバッククロック信号選択回路
１０ａ、１０ｂ、１０ｃ    データ転送パス
１１    リファレンスクロック信号
１２、１３    フィードバッククロック信号
１４、１５    クロック信号
５０    基準クロック信号
５１    ＤＬＬ回路
５２    時分割制御回路
５３、５４、５８    セレクタ回路
５５    演算回路
５６    位相比較回路
５７    アップダウンカウンタ
５９    ディレイブロック
６０    演算実行制御信号
６１    クロック信号
７１、７２、・・・７ｎ    ラッチ
９０ａ、９０ｂ    クロック分配網
９５、９５ａ、９６、９６ａ、９７、９７ａ、９８、９８ａ、９９、９９ａ、１００、１００ａ、１０１、１０１ａ、１０２、１０２ａ    順序回路
Ｉ１、Ｉ２    クロック入力端子
ＨＡ１、ＨＡ２、ＨＡｎ、ＨＢ１、ＨＢ２、ＨＢｎ    信号
ＮＡ１、ＮＡ２、ＮＡ３、ＮＢ１、ＮＢ２、ＮＢ３    分岐点
ＰＡ１、ＰＡ２、ＰＡｎ、ＰＢ１、ＰＢ２、ＰＢｎ    分岐点  
ＩＢ１、・・・ＩＢｐ−４、ＩＢｐ−３、ＩＢｐ−２、ＩＢｐ−１、ＩＢｐ    バッファ
【図１】
2010273286.tif 000003
【図２】
2010273286.tif 000004
【図３】
2010273286.tif 000005
【図４】
2010273286.tif 000006
【図５】
2010273286.tif 000007
【図６】
2010273286.tif 000008
【図７】
2010273286.tif 000009
【図８】
2010273286.tif 000010