(57)【要約】【課題】異なるクロックツリー間の回路間をつなぐデータ転送パスが存在しても、ＯＣＶに影響されずにクロックを分配する。【解決手段】クロック分配回路は、クロック分配網２０ａの分岐点ＮＡ３経由の第１クロック信号で動作する順序回路２５ａと、クロック分配網２０ｂの分岐点ＮＢ３経由の第２クロック信号で動作する順序回路２６ａと、順序回路２５ａと順序回路２６ａとの間のデータ転送パス４０とを有する半導体集積回路４５へ第１クロック信号及び第２クロック信号を分配する。クロック分配回路２０は、分岐点ＮＡ３からの第１フィードバック信号と第１リファレンス信号とから第１クロック信号を出力するＰＬＬ回路２１と、分岐点ＮＢ３からの第２フィードバック信号と第２リファレンス信号とから第２クロック信号を出力するＰＬＬ回路２２とを具備する。【選択図】図２
2007336003.tif 000002
【特許請求の範囲】
【請求項１】
第１クロック分配網の第１分岐点を通じて分配される第１クロック信号で動作する第１順序回路と、第２クロック分配網の第２分岐点を通じて分配される第２クロック信号で動作する第２順序回路と、前記第１順序回路と前記第２順序回路との間に設けられたデータ転送パスと、を有する半導体集積回路のクロック分配回路であって、
前記第１分岐点から分岐した前記第１クロックを第１フィードバッククロック信号として入力し、前記第１フィードバッククロック信号と第１リファレンスクロック信号とに基づいて、前記第１クロック信号を前記第１クロック分配網へ出力する第１ＰＬＬ回路と、
前記第２分岐点から分岐した前記第２クロックを第２フィードバッククロック信号として入力し、第２フィードバッククロック信号と第２リファレンスクロック信号とに基づいて、前記第２クロック信号を前記第２クロック分配網へ出力する第２ＰＬＬ回路と
を具備し、
前記第１クロック分配網は第１ＰＬＬ回路の出力と前記第１分岐点との間、または、前記第２クロック分配網は第２ＰＬＬ回路の出力と前記第２分岐点との間、のいずれか一方に分岐点を備える
クロック分配回路。
【請求項２】
前記第１分岐点は前記第１ＰＬＬ回路から前記第１順序回路までの第１パスにおける複数の分岐点のうち前記第１順序回路に最も近い
請求項１に記載のクロック分配回路。
【請求項３】
前記第２分岐点は前記第２ＰＬＬ回路から前記第１順序回路までの第２パスにおける分岐点のうち前記第２順序回路に最も近い
請求項２に記載のクロック分配回路。
【請求項４】
外部からクロック入力バッファを介して入力されたリファレンスクロックが、前記第１リファレンスクロック信号および前記第２リファレンスクロック信号としてそれぞれ前記第１ＰＬＬ回路および前記第２ＰＬＬ回路に供給される
請求項１に記載のクロック分配回路。
【請求項５】
前記第１リファレンスクロック信号は、第１クロック入力バッファを介して外部から前記第１ＰＬＬ回路に供給され、前記第２リファレンスクロック信号は、第２クロック入力バッファを介して外部から前記第２ＰＬＬ回路に供給される
請求項１に記載のクロック分配回路。
【請求項６】
前記第１分岐点から前記第１順序回路までの前記第１クロック信号の遅延と、前記第１分岐点から前記第１ＰＬＬ回路までの前記第１クロック信号の遅延とが等しく、
前記第２分岐点から前記第２順序回路までの前記第２クロック信号の遅延と、前記第２分岐点から前記第２ＰＬＬ回路までの前記第２クロック信号の遅延とが等しい
請求項１に記載のクロック分配回路。
【請求項７】
前記第１分岐点から前記第１ＰＬＬ回路までの前記第１クロック信号のフィードバックパスに前記クロック入力バッファと同じ遅延のバッファを有し、
前記第２分岐点から前記第２ＰＬＬ回路までの前記第２クロック信号のフィードバックパスに前記クロック入力バッファと同じ遅延のバッファを有する
請求項４に記載のクロック分配回路。
【請求項８】
前記第１分岐点から前記第１ＰＬＬ回路までの前記第１クロック信号のフィードバックパスに前記第１クロック入力バッファと同じ遅延のバッファを有し、
前記第２分岐点から前記第２ＰＬＬ回路までの前記第２クロック信号のフィードバックパスに前記第２クロック入力バッファと同じ遅延のバッファを有する
請求項５に記載のクロック分配回路。
【請求項９】
請求項１乃至８のいずれか一項に記載のクロック分配回路
を具備する
半導体集積回路。
【請求項１０】
（ａ）回路図データと機能ブロックデータと設計ルールデータとに基づいて、半導体装置の配置配線領域に、第１クロック信号で動作する第１順序回路と第２クロック信号で動作する第２順序回路と、第１ＰＬＬ回路と、第２ＰＬＬ回路とを配置するステップと、
（ｂ）前記第１ＰＬＬ回路から出力される前記第１クロック信号を前記第１順序回路に分配する前記第１クロック分配網と、前記第２ＰＬＬ回路から出力される前記第２クロック信号を前記第２順序回路に分配する前記第２クロック分配網とを形成するステップと、
（ｃ）前記第１順序回路と前記第２順序回路との間に第１データ転送パスが有る場合、前記第１クロック分配網の前記第１ＰＬＬ回路から前記第１順序回路までのクロック分配パスが有する複数の分岐点のうち前記第１ＰＬＬ回路側の最初の分岐点を除いたものから第１分岐点を選択し、前記第１分岐点から前記第１ＰＬＬ回路にフィードバックパスを形成するステップと
を具備する
クロック分配回路の形成方法。
【請求項１１】
前記（ｃ）ステップは、
（ｃ１）前記第１順序回路と前記第２順序回路との間に第１データ転送パスが有る場合、前記複数の分岐点のうち前記最初の分岐点を除いたものを複数の第１分岐点候補として抽出するステップと、
（ｃ２）前記複数の第１分岐点候補の各々から前記第１ＰＬＬ回路にフィードバックパス候補を形成した場合の前記フィードバックパス候補の遅延を見積もるステップと、
（ｃ３）前記フィードバックパス候補の遅延が前記第１分岐点候補から前記第１順序回路までの遅延より小さい遅延である前記第１分岐点候補のうち、前記第１分岐点候補から前記第１順序回路までの遅延が最も小さい前記第１分岐点候補を前記第１分岐点として選択するステップと
（ｃ４）前記第１分岐点から前記第１ＰＬＬ回路にフィードバックパスを形成するステップと
を備える
請求項１０に記載のクロック分配回路の形成方法。
【請求項１２】
前記（ｃ）ステップは、
（ｃ１）前記第１順序回路と前記第２順序回路との間に第１データ転送パスが有る場合、前記複数の分岐点のうちの前記最初の分岐点を除いた複数の第１分岐点候補のうち、前記第１分岐点候補から前記第１順序回路までの遅延がｎ番目（ｎは自然数）に小さい前記第１分岐点候補を前記第１分岐点として抽出するステップと、
（ｃ２）前記第１分岐点から前記第１ＰＬＬ回路にフィードバックパスを形成した場合のフィードバックパスの遅延を見積もるステップと、
（ｃ３）前記フィードバックパスの遅延と前記第１分岐点から前記第１順序回路までの遅延とを比較し、前記フィードバックパスの遅延が前記第１分岐点から前記第１順序回路までの遅延より小さい遅延である場合には（ｃ４）ステップに進み、前記フィードバックパスの遅延と前記第１分岐点から前記第１順序回路までの遅延が大きい場合にはｎの値を１インクリメントして（ｃ１）ステップに戻るステップと
（ｃ４）前記第１分岐点から前記第１ＰＬＬ回路にフィードバックパスを形成するステップと
を備える
請求項１０に記載のクロック分配回路の形成方法。
【請求項１３】
（ｄ）前記第１順序回路と前記第２順序回路との間に前記第１データ転送パスが有る場合、前記第２クロック分配網の前記第２ＰＬＬ回路から前記第２順序回路までのクロック分配パスが有する複数の分岐点のうち前記第２ＰＬＬ回路側の最初の分岐点を除いたものから前記第２分岐点を選択し、前記第２分岐点から前記第２ＰＬＬ回路にフィードバックパスを形成するステップと
をさらに具備する
請求項１０乃至１２のいずれか一項に記載のクロック分配回路の形成方法。
【請求項１４】
（ａ）回路図データと機能ブロックデータと設計ルールデータとに基づいて、半導体装置の配置配線領域に、第１クロック信号で動作する第１順序回路と第２クロック信号で動作する第２順序回路と、第１ＰＬＬ回路と、第２ＰＬＬ回路とを配置するステップと、
（ｂ）前記第１ＰＬＬ回路から出力される前記第１クロック信号を前記第１順序回路に分配する前記第１クロック分配網と、前記第２ＰＬＬ回路から出力される前記第２クロック信号を前記第２順序回路に分配する前記第２クロック分配網とを形成するステップと、
（ｃ）前記第１順序回路と前記第２順序回路との間に第１データ転送パスが有る場合、前記第１クロック分配網の前記第１ＰＬＬ回路から前記第１順序回路までのクロック分配パスが有する複数の分岐点のうち前記第１ＰＬＬ回路側の最初の分岐点を除いたものから第１分岐点を選択し、前記第１分岐点から前記第１ＰＬＬ回路にフィードバックパスを形成するステップと
を具備する
クロック分配回路の形成方法をコンピュータに実行させるプログラム。
【請求項１５】
前記（ｃ）ステップは、
（ｃ１）前記第１順序回路と前記第２順序回路との間に第１データ転送パスが有る場合、前記複数の分岐点のうち前記最初の分岐点を除いたものを複数の第１分岐点候補として抽出するステップと、
（ｃ２）前記複数の第１分岐点候補の各々から前記第１ＰＬＬ回路にフィードバックパス候補を形成した場合の前記フィードバックパス候補の遅延を見積もるステップと、
（ｃ３）前記フィードバックパス候補の遅延が前記第１分岐点候補から前記第１順序回路までの遅延より小さい遅延である前記第１分岐点候補のうち、前記第１分岐点候補から前記第１順序回路までの遅延が最も小さい前記第１分岐点候補を前記第１分岐点として選択するステップと
（ｃ４）前記第１分岐点から前記第１ＰＬＬ回路にフィードバックパスを形成するステップと
を備える
請求項１４に記載のプログラム。
【請求項１６】
前記（ｃ）ステップは、
（ｃ１）前記第１順序回路と前記第２順序回路との間に第１データ転送パスが有る場合、前記複数の分岐点のうち前記最初の分岐点を除いたもの複数の第１分岐点候補のうち、前記第１分岐点候補から前記第１順序回路までの遅延がｎ番目（ｎは自然数）に小さい前記第１分岐点候補を前記第１分岐点として抽出するステップと、
（ｃ２）前記第１分岐点から前記第１ＰＬＬ回路にフィードバックパスを形成した場合のフィードバックパスの遅延を見積もるステップと、
（ｃ３）前記フィードバックパスの遅延と前記第１分岐点から前記第１順序回路までの遅延とを比較し、前記フィードバックパスの遅延が前記第１分岐点から前記第１順序回路までの遅延より小さい遅延である場合には（ｃ４）ステップに進み、前記フィードバックパスの遅延と前記第１分岐点から前記第１順序回路までの遅延が大きい場合にはｎの値を１インクリメントして（ｃ１）ステップに戻るステップと
（ｃ４）前記第１分岐点から前記第１ＰＬＬ回路にフィードバックパスを形成するステップと
を備える
請求項１４に記載のプログラム。
【請求項１７】
（ｄ）前記第１順序回路と前記第２順序回路との間に前記第１データ転送パスが有る場合、前記第２クロック分配網の前記第２ＰＬＬ回路から前記第２順序回路までのクロック分配パスが有する複数の分岐点のうち前記第２ＰＬＬ回路側の最初の分岐点を除いたものから前記第２分岐点を選択し、前記第２分岐点から前記第２ＰＬＬ回路にフィードバックパスを形成するステップと
をさらに具備する
請求項１４乃至１６のいずれか一項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロック分配回路、半導体集積回路、クロック分配回路の形成方法及びそのプログラムに関する。
【背景技術】
【０００２】
半導体集積回路（ＬＳＩ）は、外部からクロックを入力し、半導体集積回路内部のクロックを所望とする回路にクロックを供給するクロック分配回路を備える。このようなクロック分配回路は、クロック分配配線やクロック分配バッファからなり、クロックの供給源（クロックソース）から供給先（リーフ）までのクロック分配遅延時間が等しくなるように構成される。このようなクロック分配回路の設計手法として、クロックツリーシンセシス（ＣＴＳ）法が用いられている。クロックツリーシンセシス法は、回路の接続情報、配置情報等に基づき、クロックソースから複数のクロック系統に分岐させ、該クロックソースから分岐先の各ツリー端部までのクロックの遅延を等しくさせるようにバッファ（「ＣＴＳバッファ」ともいう）を挿入する等してクロックスキューを低減させるものである。
【０００３】
上述のＣＴＳ法を用いたクロック分配回路の設計方法として、たとえば特開２００４−２４１６９９号公報には、クロックツリーのクロック分配バッファのゲートの遅延値とクロック分配配線の遅延値とを比率として求め、この遅延比率と、遅延時間とが各クロック系統で一定になるようにすることで、温度や電圧の変動に対してばらつきの少ない半導体集積回路装置の設計方法が開示されている。
【０００４】
また、特開２００４−１５０３２号公報には、図１に示すようなクロック分配回路の等価回路が開示されている。図１において、クロック入力バッファ２は、外部クロック信号を複数のＰＬＬ回路１へ供給する。ＰＬＬ回路１は、クロック信号を、クロック配線５とクロックドライバ６とからなるクロックツリーへ出力する。クロックツリーは、複数のマクロ３へクロック信号を分配、供給する。マクロ３は、マクロ内Ｆ／Ｆ１２を含む。マクロ３のインターフェースマクロフィードバッククロック出力端子１０とＰＬＬ回路１のＰＬＬフィードバッククロック入力端子１３との間には、配線１１と入力バッファ遅延補償回路８とからなるフィードバック回路が形成されている。すなわち、ＰＬＬ回路１は、外部クロック信号に基づいて、マクロ３からフィードバックされるクロック信号を位相変調して、クロックツリーへ出力する。
【０００５】
【特許文献１】特開２００４−１５０３２号公報
【特許文献２】特開２００４−２４１６９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
文献２におけるクロック分配回路は、複数のＰＬＬ回路を備え、ＰＬＬ回路ごとにクロックツリーあるいはクロック分配網を構成し、クロックツリーあるいはクロック分配網の末端であるマクロ３からクロックを各々対応するＰＬＬ回路１にフィードバックするクロック分配回路の等価回路が開示されている。しかしながら入力されるクロックの供給源であるＰＬＬ回路が異なるクロックツリー（クロックドメイン）に属する順序回路間をつなぐデータ転送パスの有無を全く考慮せずに、ＰＬＬ回路のフィードバック回路を形成している。また本明細書では入力されるクロックの供給源であるＰＬＬ回路が異なるクロックツリーに属する順序回路間をつなぐデータ転送パスを「異クロックドメイン間データ転送パス」と称する。例えば、図１の下側の図において、異なるクロックツリーに属するマクロ３ａとマクロ３ｂとの間をつなぐデータ転送パスの有無を全く考慮せずに、ＰＬＬ回路１ａのフィードバック回路として配線１１ａ及び入力バッファ遅延補償回路８ａを形成し、ＰＬＬ回路１ｂのフィードバック回路として配線１１ｂ及び入力バッファ遅延補償回路８ｂを形成している。
【０００７】
このとき、図１のクロック分配回路では、ＰＬＬ回路１ａからマクロ３、３ａに対し同じ遅延でクロックを分配するとともに、ＬＳＩ外部からクロック入力バッファ２を経由してＰＬＬ回路１ａに入力されたクロック（リファレンスクロック）と、マクロ３ａのフィードバッククロック出力端子１０から入力バッファ遅延補償回路８を介してＰＬＬ回路１ａへ帰還されるクロック（フィードバッククロック）との位相が合うように、ＰＬＬ回路１は出力クロックの位相調整を行っている。そしてＰＬＬ回路１ｂについても同様である。マクロ３ａ、３ｃそれぞれから、それぞれのＰＬＬ回路にクロックを代表ポイントとしてフィードバックされるためマクロ３ａとマクロ３ｃの入力クロックは位相があったスキューのないクロックが入力される。ＰＬＬ回路１ａからマクロ３、３ａに対し同じ遅延でクロックを分配できていれば、最終的にはマクロ３、３ａ，３ｂ，３ｃの入力クロックの位相とクロック入力バッファ２に入力されるクロックの位相とがあったクロック分配回路となる。
【０００８】
ここで、マクロ３ａとマクロ３ｂとの間にデータ転送パスがある場合を考える。実際の半導体集積回路では、たとえ設計上同じ回路特性となるように回路を構成しても、チップ内の素子や配線のばらつきのようなＯＣＶ（Ｏｎ  Ｃｈｉｐ  Ｖａｒｉａｔｉｏｎ）が存在する。そのため、そのＯＣＶの影響から、マクロ３ｃまでの遅延とマクロ３ｂまでの遅延とがずれる可能性が考えられる。このことは例え文献１のような技術を用いても避けることは出来ない。図１の分配回路の構成では、ＰＬＬ回路１ｂから出力されたクロックはバッファ６を通過し、バッファ６の出力で分岐点を経由し、それぞれマクロ３ｃ、３ｂに分配されている。このような回路では、該分岐点からマクロ３ｃまでの遅延と、該分岐点からマクロ３ｂまでの遅延がＯＣＶの影響で異なる（スキューが発生する）おそれがある。このような場合、マクロ３ａのクロック信号の位相とマクロ３ｂのクロック信号の位相とがずれることになり、マクロ３ａとマクロ３ｂとの間のデータ転送のタイミングが合わなくなる可能性が出てくる。その結果、マクロ３ａとマクロ３ｂとの間のデータ転送が上手く行かず誤動作を起こす虞がでてくる。異なるクロックツリー（クロックドメイン）間に属する回路間をつなぐデータ転送パス（異ドメイン間データ転送パス）が存在する場合でも、ＯＣＶに影響されないでクロック信号を分配することを可能とする技術が望まれる。
【課題を解決するための手段】
【０００９】
以下に、発明を実施するための最良の形態で使用される番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、特許請求の範囲の記載と発明を実施するための最良の形態との対応関係を明らかにするために括弧付きで付加されたものである。ただし、それらの番号・符号を、特許請求の範囲に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１０】
従って、上記課題を解決するために、本発明のクロック分配回路（２０）は、第１クロック分配網（２０ａ）の第１分岐点（ＮＡ３）を通じて分配される第１クロック信号で動作する第１順序回路（２５ａ）と、第２クロック分配網（２０ｂ）の第２分岐点（ＮＢ３）を通じて分配される第２クロック信号で動作する第２順序回路（２６ａ）と、第１順序回路（２５ａ）と第２順序回路（２６ａ）との間に設けられたデータ転送パス（４０）と、を有する半導体集積回路（４５）のクロック分配回路（２０）である。このクロック分配回路（２０）は、第１ＰＬＬ回路（２１）と第２ＰＬＬ回路（２２）とを具備する。第１ＰＬＬ回路（２１）は、第１分岐点（ＮＡ３）から分岐した第１クロックを第１フィードバッククロック信号として入力し、第１フィードバッククロック信号と第１リファレンスクロック信号とに基づいて、第１クロック信号を第１クロック分配網（２０ａ）へ出力する。第２ＰＬＬ回路（２２）は、第２分岐点（ＮＢ３）から分岐した第２クロックを第２フィードバッククロック信号として入力し、第２フィードバッククロック信号と第２リファレンスクロック信号とに基づいて、第２クロック信号を第２クロック分配網（２０ｂ）へ出力する。第１クロック分配網（２０ａ）は第１ＰＬＬ回路（２１）の出力と第１分岐点（ＮＡ３）との間、または、第２クロック分配網（２０ｂ）は第２ＰＬＬ回路（２２）の出力と第２分岐点（ＮＢ３）との間、のいずれか一方に分岐点を備える。
【００１１】
本発明では、第１フィードバッククロック信号を第１分岐点（ＮＡ３）からフィードバックし、第２フィードバッククロック信号を第２分岐点（ＮＢ３）からフィードバックしている。ここで、第１分岐点（ＮＡ３）は、第１ＰＬＬ回路（２１）と第１順序回路（２５ａ）との間にある。第２分岐点（ＮＢ３）は、第２ＰＬＬ回路（２２）と第２順序回路（２６ａ）との間にある。すなわち、第１フィードバッククロック信号は、第１順序回路（２５ａ）での第１クロック信号の遅延を反映している。第２フィードバッククロック信号は、第２順序回路（２６ａ）での第２クロック信号の遅延を反映している。そのため、第１順序回路（２５ａ）までの第１クロック信号の遅延と第２順序回路（２６ａ）までの第２クロック信号の遅延とを、ＯＣＶに影響されずに概ね等しくし、第１クロック信号と第２クロック信号との間の位相ずれを抑制することが出来る。それにより、第１順序回路（２５ａ）と第２順序回路（２６ａ）との間のデータ転送を正しく行うことが可能となる。
【発明の効果】
【００１２】
本発明により、異なるクロックツリー（クロックドメイン）間に属する回路間をつなぐデータ転送パスが存在する場合でも、ＯＣＶに影響されないでクロック信号を分配することが可能となる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明のクロック分配回路、半導体集積回路、クロック分配回路の形成方法及びそのプログラムの実施の形態に関して、添付図面を参照して説明する。
【００１４】
＜第１の実施例＞
まず、本発明のクロック分配回路について説明する。図２は、本発明のクロック分配回路の構成を示す等価回路図である。クロック分配回路２０は、半導体集積回路（４５：後述）内に設けられ、外部クロック信号の周波数及び位相を参照信号として生成されたクロック信号を、複数の順序回路２５、２５ａ、２５ｂ、２６、２６ａ、２６ｂへ分配する。ここで、順序回路２５ａと順序回路２６ａとはデータ転送パス４０で接続されている。データ転送パス４０は、異ドメイン間データ転送パスを構成している。クロック分配回路２０は、クロック分配網２０ａと、ＰＬＬ回路２１と、クロック分配網２０ｂと、ＰＬＬ回路２２と、クロックドライバ２７と、配線３０とを具備する。なお、本実施例ではクロックドライバ２７からＰＬＬ回路２１および２２へは同一遅延時間で外部から入力されたリファレンスクロックが入力されているものとする。
【００１５】
ＰＬＬ回路２１は、第１フィードバッククロック信号を、第１リファレンスクロック信号に同期するように周波数及び位相を変調し、第１クロック信号としてクロック分配網２０ａへ出力する。ここで、第１リファレンスクロック信号は、外部からクロックドライバ２７及び配線３０を介して、ＰＬＬ回路２１のリファレンスクロック端子ＲＣＬＫに供給される外部クロック信号である。第１フィードバッククロック信号は、第１フィードバック用分岐点からクロックドライバ２９及び配線３３を介して、ＰＬＬ回路２１のフィードバッククロック端子ＦＢＫに供給される第１クロック信号である。本図では、第１フィードバック用分岐点として、分岐点ＮＡ３の例を示している。分岐点ＮＡ３の決定方法については後述する。
【００１６】
クロック分配網２０ａは、ＰＬＬ回路２１のクロック出力端子ＣＬＫＯＵＴから出力された第１クロック信号を複数の順序回路２５、２５ａ、２５ｂに分配する。クロック分配網２０ａは、クロックツリーを構成する配線３１と、その配線３１の途中に設けられた複数のクロックドライバ２８を備える。配線３１上には、複数の分岐点（ＰＬＬ回路２１側から順にＮＡ１、ＮＡ２、ＮＡ３、…）が存在する。本図では、分岐点が三個（分岐点ＮＡ１、分岐点ＮＡ２及び分岐点ＮＡ３）の場合を示している。
【００１７】
ここで、上記の第１フィードバック用分岐点は、クロック分配網２０ａのＰＬＬ回路２１側のクロックツリー（配線３１）における最初の分岐点ＮＡ１より後段（すなわち最初の分岐点ＮＡ１は含まずリーフに近い側）の分岐点から、順序回路２５ａのクロック入力端子Ｉ１までのパスＰ１のいずれかの位置に設定される。その理由は後述される。その位置は、第１フィードバック用分岐点から順序回路２５ａのクロック入力端子Ｉ１までのパス（配線３１とクロックドライバ２８）による遅延Ａ１と、第１フィードバック用分岐点からＰＬＬ回路２１のフィードバッククロック端子ＦＢＫまでのパス（配線３３とクロックドライバ２９）による遅延Ｂ１との遅延差が、所定の許容範囲に収まり、望ましくは遅延差＝０となるように選択される。本図では、上記のように、パスＰ１における分岐点ＮＡ３である。
【００１８】
第１フィードバック用分岐点は、分岐点ＮＡ１（最初の分岐点ＮＡ１は含まない）からクロック入力端子Ｉ１までのパスＰ１中に設定される。ただし、位置的には、出来るだけ順序回路２５、２５ａ、２５ｂ（リーフ）に近いことがより好ましい。リーフよりも遠い位置に分岐点を設けた場合、当該分岐点からリーフまでの遅延が大きくなってしまうことが考えられる。その場合、ＯＣＶの影響が大きくなり、順序回路間（特に、順序回路２５ａと順序回路２６ａとの間）のタイミングの悪化を招くからである。従って、例えば、分岐点ＮＡ１は、ＰＬＬ回路２１から順序回路２５ａまでのパスＰ１における分岐点のうち、当該分岐点から順序回路２５ａまでの第１クロック信号の遅延と当該分岐点からＰＬＬ回路２１までの第１クロック信号の遅延とが等しく、かつ、順序回路２５ａに最も近いように設定されることがより好ましい。
【００１９】
したがって、ＰＬＬ回路２１から分岐点ＮＡ３まで同一のクロック分配パスによって分配された第１クロック信号がそれぞれ、データ転送パス４０で接続されている順序回路２５ａのクロック入力Ｉ１と、第１フィードバック信号としてＰＬＬ回路２１のＦＢＫ端子とに、分岐点ＮＡ３からの分配遅延がほぼ等しくなるように分配される。このため、ＰＬＬ回路２１のＦＢＫ端子での第１クロック信号は、順序回路２５ａのクロック入力Ｉ１の第１クロック信号と同じ周波数でありほぼ位相が等しい。
【００２０】
ＰＬＬ回路２２は、第２フィードバッククロック信号を、第２リファレンスクロック信号に同期するように周波数及び位相を変調し、第２クロック信号としてクロック分配網２０ｂへ出力する。ここで、第２リファレンスクロック信号は、外部からクロックドライバ２７及び配線３０を介して、ＰＬＬ回路２２のリファレンスクロック端子ＲＣＬＫに供給さる外部クロック信号である。ここでは、第２リファレンスクロック信号は第１リファレンスクロック信号と同一である。第２フィードバッククロック信号は、第２フィードバック用分岐点からクロックドライバ２９及び配線３３を介して、ＰＬＬ回路２２のフィードバッククロック端子ＦＢＫに供給される。本図では、第２フィードバック用分岐点として、分岐点ＮＢ３の例を示している。分岐点ＮＢ３の決定方法については後述する。
【００２１】
クロック分配網２０ｂは、ＰＬＬ回路２２のクロック出力端子ＣＬＫＯＵＴから出力された第２クロック信号を複数の順序回路２６、２６ａに分配する。クロック分配網２０ｂは、クロックツリーを構成する配線３２と、その配線３２の途中に設けられたクロックドライバ２８を備える。配線３２上には、複数の分岐点（ＰＬＬ回路２２側から順にＮＢ１、ＮＢ２、ＮＢ３…）が存在する。本図では、分岐点が３個（分岐点ＮＢ１、分岐点ＮＢ２及び分岐点ＮＢ３）の場合を示している。
【００２２】
ここで、上記の第２フィードバック用分岐点は、クロック分配網２０ｂのＰＬＬ回路２２側のクロックツリー（配線３２）における最初の分岐点ＮＢ１より後段（すなわち最初の分岐点ＮＢ１は含まずリーフに近い側）の分岐点から、順序回路２６ａのクロック入力端子Ｉ２までのパスＰ２のいずれかの位置に設定される。その理由は後述される。その位置は、第２フィードバック用分岐点から順序回路２６ａのクロック入力端子Ｉ２までのパス（配線３２とクロックドライバ２８）による遅延と、第２フィードバック用分岐点からＰＬＬ回路２２のフィードバッククロック端子ＦＢＫまでのパス（配線３４とクロックドライバ２９）による遅延との遅延差が、所定の許容範囲に収まり、望ましくは遅延差＝０となるように選択される。本図では、上記のように、パスＰ２における分岐点ＮＢ３である。
【００２３】
第２フィードバック用分岐点は、分岐点ＮＢ１（最初の分岐点ＮＢ１は含まない）からクロック入力端子Ｉ２までのパスＰ２中に設定される。ただし、位置的には、出来るだけ順序回路２６、２６ａ（リーフ）に近いことが好ましい。リーフよりも遠い位置に分岐点を設けた場合、当該分岐点からリーフまでの遅延が大きくなってしまうことが考えられる。その場合、ＯＣＶの影響が大きくなり、順序回路間（特に、順序回路２５ａと順序回路２６ａとの間）のタイミングの悪化を招くからである。従って、例えば、分岐点ＮＢ３は、ＰＬＬ回路２２から順序回路２６ａまでのパスＰ２における複数の分岐点のうち、当該分岐点から順序回路２６ａまでの第２クロック信号の遅延と当該分岐点からＰＬＬ回路２２までの第２クロック信号の遅延とが等しく、かつ、順序回路２６ａに最も近いように設定されることがより好ましい。
【００２４】
したがって、ＰＬＬ回路２２から分岐点ＮＢ３まで同一のクロック分配パスによって分配された第２クロック信号がそれぞれ、データ転送パス４０で接続されている順序回路２６ａのクロック入力Ｉ２と、第２フィードバック信号としてＰＬＬ回路２２のＦＢＫ端子とに、分岐点ＮＢ３からの分配遅延がほぼ等しくなるように分配される。このため、ＰＬＬ回路２２のＦＢＫ端子での第２クロック信号は、順序回路２６ａのクロック入力Ｉ２の第２クロック信号と同じ周波数でありほぼ位相が等しい。  
【００２５】
クロック分配網２０ａの接続される順序回路２５、２５ａ、２５ｂのうちの順序回路２５ａと、クロック分配網２０ｂの接続される順序回路２６、２６ａ、２６ｂのうちの順序回路２６ａとは、データ転送パス４０で接続されている。すなわち、順序回路２５ａと順序回路２６ａとの間にデータの授受があるため、両者に供給されるクロック信号の位相が揃っている必要がある。そのため、クロック分配網２０ａにおける第１フィードバック用分岐点が分岐点ＮＡ１（ＮＡ１は含まず）からクロック入力端子Ｉ１までのパスＰ１内の位置に、クロック分配網２０ｂにおける第２フィードバック用分岐点が分岐点ＮＢ１（ＮＢ１は含まず）からクロック入力端子Ｉ２までのパスＰ２内の位置に、それぞれ設定される。順序回路２５ａのクロック入力Ｉ１の第１クロック信号と同じ周波数でありほぼ位相が等しい第１クロックである第１フィードバッククロックと、リファレンスクロックとの位相差が、ＰＬＬ回路２１の第１フィードバッククロックとリファレンスクロックそれぞれが入力される位相比較器（不図示）で０となるようにＰＬＬ回路２１は第１クロックを出力する。同様に順序回路２６ａのクロック入力Ｉ２の第２クロック信号と同じ周波数でありほぼ位相が等しい第２クロックである第２フィードバッククロックと、リファレンスクロックとの位相差が、ＰＬＬ回路２２の第２フィードバッククロックとリファレンスクロックそれぞれが入力される位相比較器（不図示）で０となるようにＰＬＬ回路２２は第２クロックを出力する。そしてＰＬＬ回路２１、２２には同じリファレンスクロックが入力されていることにより、ＰＬＬ回路２１のＦＢＫ端子における第１クロックとＰＬＬ回路２２のＦＢＫ端子における第２クロックとは同じ位相となる。したがって、順序回路２５ａでの第１クロック信号の位相と順序回路２６ａでの第２クロック信号とを概ね合わせることができる。その結果、順序回路２５ａと順序回路２６ａとの間のデータ転送のタイミングが合い、データ転送が良好に実行される。
【００２６】
ここで、ＯＣＶによる遅延のばらつきを考えた場合、ＰＬＬ回路２１のＣＬＫＯＵＴから順序回路２５ａのクロック入力Ｉ１までの分配遅延、およびＰＬＬ回路２１のＣＬＫＯＵＴからＰＬＬ回路２１のＦＢＫ端子までの遅延は、たとえば理想的な設計値からばらつくが、ＰＬＬ回路２１のＣＬＫＯＵＴから分岐点ＮＡ３までを共用する構成となっているため、共用部分のばらつきは正確にＰＬＬ回路２１の位相調整に反映され、ＯＣＶによる遅延の実質的な影響は、分岐点ＮＡ３から順序回路２５ａのクロック入力Ｉ１までの遅延と分岐点ＮＡ３からＰＬＬ回路２１のＦＢＫ端子までの遅延の差分となり、ＯＣＶの影響を減少させることができる。このことは、分配網２０ｂについても同様である。したがって、順序回路２５ａから順序回路２６ａのデータ転送パスにおいて、ＯＣＶの影響を軽減した、スキューの小さなクロック分配回路を構成できる。
【００２７】
なお、順序回路２５ａ、２６ａはＦＦ、レジスタのほかに、クロックによって同期して出力する回路であればよい。また、ＰＬＬ回路２１、２２から分岐点ＮＡ１、ＮＢ１までは、分岐点なしに複数のバッファを介して分岐点ＮＡ１、ＮＢ１に接続される構成であってもよい。
【００２８】
ここで、データ転送を行う順序回路が他にあった場合（異クロックドメイン間データ転送パスが複数あった場合）、例えば、順序回路２５ｂと順序回路２６ｂとがデータ転送パス４０’（第２の異クロックデータ転送パス）でデータ転送を行う場合、複数の異クロックドメイン間データ転送パスから任意の１つを決めても本願の発明の効果は得られる。しかしながら、たとえば、以下の基準で、第１フィードバック分岐点及び第２フィードバック分岐点を決定するとより効果的である。すなわち、いわゆるタイミング設計の一番厳しいデータ転送パスを有する順序回路に入力されるクロックの分配パスの分岐点からクロックをフィードバックする。
【００２９】
データ転送パスを構成する送信側の順序回路に入力されるクロックのアクティブエッジ（順序回路の出力を変化させるクロックのエッジ）からデータ転送パスを構成する受信側の順序回路に入力されるクロックのアクティブエッジ（順序回路にデータを取り込むクロックエッジ）までをデータ転送レート（Ｔｃ）とし、送信側順序回路から受信側順序回路までのデータ伝播時間をＴｐｄ、受信側順序回路のセットアップタイム、ホールドタイムをそれぞれＴｓｅｔｕｐ、Ｔｈｏｌｄ、送信側順序回路と受信側順序回路それぞれに入力されるクロックのＳＫＥＷをＴｓｋｅｗとすると
データ転送パスが遅延条件を満足するためには、
Ｔｃ＞Ｔｐｄ＋Ｔｓｅｔｕｐ＋Ｔｓｋｅｗ（セットアップ条件）
Ｔｐｄ＞Ｔｈｏｌｄ＋Ｔｓｋｅｗ（ホールド条件）
の両者を満足しなければならない。一般にセットアップ条件を満足させる場合において、Ｔｃが小さければ小さいほど、またＴｐｄが大きければ大きいほど、Ｔｓｋｅｗを小さくしなければならずタイミング設計は厳しくなる。実際にはＴｓｅｔｕｐやＴｈｏｌｄ、Ｔｓｋｅｗの値も問題となるが、ここでは、考慮しない。したがって、Ｔｃが一番小さくＴｐｄが一番大きいデータ転送パスが一番タイミング設計が厳しいことになる。つまり、複数の異クロックドメイン間データ転送パスがある場合には、複数の異クロックドメイン間データ転送パスから、Ｔｃが一番小さいパスのうち、Ｔｐｄが最大値のパスを選択すればよい。なお、上述のＴｐｄの算出にあたっては、配置配線まで実施して正確に遅延時間を算出してもよいし、仮の配置配線を実施して遅延時間を見積もってよい。あるいは概算の遅延時間をもとめるようにしてもよい。上記方法により、タイミング設計の一番厳しいデータ転送パスを抽出することが出来る。それにより、タイミング設計の一番厳しいデータ転送パスに対してＯＣＶの影響を受け難くすることが出来る。
【００３０】
なお、ここでは、順序回路にクロック信号を分配する例について説明しているが、本発明はこの例に限定されるものではない。すなわち、クロック分配回路によりクロック信号を分配される回路であれば、他の回路であっても良い。
【００３１】
図３は、本発明の半導体集積回路の実施の形態の構成の一例を示す概略ブロック図である。ここでは、図２の等価回路に対応する半導体集積回路を示している。半導体集積回路４５は、複数の順序回路２５、２５ａ、２５ｂ、２６、２６ａ、２６ｂとクロック分配回路２０とを具備する。クロック分配網２０は、ＰＬＬ回路２１と、配線３１、３３及びクロックドライバ２８、２９を含むクロック分配網２０ａと、ＰＬＬ回路２２と、配線３２、３４及びクロックドライバ２８、２９を含むクロック分配網２０ｂと、データ転送パス４０と、クロックドライバ２７と、配線３０とを具備する。配線３１、３２は、Ｈツリー型のクロックツリーを形成している。各構成の詳細については、既述の通りであるので、その説明を省略する。
クロック分配網２０ａ、２０ｂは、ＣＴＳ手法によりクロックツリーが構成されるものであってもよいし、図３のＨツリーのようなクロックツリーであってもよい。またツリーの途中でバッファ同士の出力がワイヤード（バッファの出力同士が短絡）されているものでもよい。
【００３２】
＜第２の実施例＞
順序回路２５ａのクロック入力端子Ｉ１の第１クロック信号と、順序回路２６ａのクロック入力端子Ｉ２の第２クロック信号とを、クロック入力バッファ２７に入力される外部クロックにも位相を合わせる場合は、上述の分配回路の構成をとったうえで、さらに、分岐点ＮＡ３からＰＬＬ回路２１のＦＢＫ端子までのクロックパスおよび分岐点ＮＢ３からＰＬＬ回路２２のＦＢＫ端子までのクロックパスそれぞれに、クロック入力バッファ２７の遅延時間に相当する遅延時間（正確には、外部クロック入力端子（不図示）からクロック入力バッファ２７を介してそれぞれＰＬＬ回路２１，２２に至るまでの遅延時間）を有するバッファあるいは配線、あるいはその両方を追加すればよい。この他は実施例１と同様である。
【００３３】
＜第３の実施例＞
また、実施例１では、ＰＬＬ回路２１とＰＬＬ回路２２とは同一のリファレンス信号（第２リファレンスクロック信号＝第１リファレンスクロック信号）を供給されているが、本発明はこの例に限定されるものではない。すなわち、第２リファレンスクロック信号と第１リファレンスクロック信号とは、互いに既知で変動のない位相関係があれば、異なるリファレンスクロック信号であっても良い。また、例えば、一方の周波数が他方の定数倍であるため、位相を合わせると、クロックの立ち上がりが合うような関係であっても両者のクロックの立ち上がり同士の位相関係が既知で変動のないものであればよい。
【００３４】
したがって、たとえば、ＰＬＬ回路２１、２２それぞれにそれぞれの専用のクロック入力バッファ２７からクロックを供給する構成としてもよい。
【００３５】
さらにまた、本発明は、ＰＬＬ回路２１，２２の少なくとも一方に逓倍用の分周回路が設けられている構成であってもよく、分岐点ＮＡ３からＰＬＬ回路２１のＦＢＫ端子までのクロックパスおよび分岐点ＮＢ３からＰＬＬ回路２２のＦＢＫ端子までのクロックパスの少なくとも一方に逓倍用の分周回路が設けられている構成にも適用できる。
【００３６】
次に、本発明のクロック分配回路の形成方法を適用した配置配線システムの実施の形態の構成について、添付図面を参照して説明する。図４は、本発明のロック分配回路の形成方法を適用した配置配線システムの実施の形態の構成を示す図である。配置配線システム５０は、自動配線配置装置５１及び設計データベース５９を具備する。
【００３７】
設計データベース５９は、ネットリストデータベース（ＤＢ）５２、セル／ブロックライブラリデータベース（ＤＢ）５３及び設計ルールファイルデータベース（ＤＢ）５４を備える。ネットリストＤＢ５２は、設計対象の半導体集積回路を構成する各ブロックの端子間の接続関係を示すネットリスト（回路図データ）を格納している。セル／ブロックライブラリＤＢ５３は、ビアやＮＡＮＤゲートや複雑な論理機能を実現する回路のような論理機能セル／ブロックに関するデータを格納している。設計ルールファイルＤＢ５４は、各配線層の配線ピッチ、配線幅および配線最小間隔、ビアセルを構成する各要素の寸法のような配置配線時および検証時に使用する設計ルールを格納している。
【００３８】
自動配線配置装置１は、ワークステーションに例示される情報処理装置である。コンピュータプログラムとしての自動配置配線部５５、セル検証部５６及びマスクデータ作成部５７を備える。自動配線配置装置５１と設計データベース５９とは、通信可能に接続されている。システムの簡素化、省スペース化などから、両者が一体であっても良い。
【００３９】
自動配置配線部５５は、設計データベース５９のネットリストと機能ブロックデータと設計ルールデータとに基づいて、レイアウト後の配置配線データを生成する。自動配置配線部５５は、配置部６０ａと、配線部６０ｂと、ＣＴＳ部実行部６１と、データ転送パス抽出部６２と、分岐点抽出部６３と、分岐点評価部６４と、フィードバックパス形成部６５とを備える。
【００４０】
配置部６０ａは、設計データベース５９のネットリストと機能ブロックデータと設計ルールデータとに基づいて、半導体集積回路のフロアプランを形成する。フロアプランでは、配置配線領域における論理機能セル／ブロックを配置する領域や場所が設定されている。そして、配置配線領域において、フロアプランに基づいて論理機能セル／ブロックの配置を行う。電源配線の実施は論理機能セル／ブロックの配置の前後いずれでもよい。ここで、第１クロック信号で動作する順序回路２５、２５ａ、２５ｂ、第２クロック信号で動作する順序回路２６、２６ａ、２６ｂ、ＰＬＬ回路２１、及びＰＬＬ回路２２を配置する。
【００４１】
ＣＴＳ部実行部６１は、Ｃｌｏｃｋ  Ｔｒｅｅ  Ｓｙｎｔｈｅｓｉｓ（ＣＴＳ）を実行して、ＰＬＬ回路２１から出力される第１クロック信号を順序回路２５、２５ａ、２５ｂに分配するクロック分配網２０ａと、ＰＬＬ回路２２から出力される第２クロック信号を順序回路２６、２６ａ、２６ｂに分配する第２クロック分配網２０ｂとを形成する。
【００４２】
データ転送パス抽出部６２は、異なるクロック分配網間のデータ転送パス（異クロックドメイン間データ転送パス）を抽出する。なお、任意に１つ抽出する方式でもよいが、好ましくは抽出されたパスについてさらに配線を実行して、タイミング解析を行い、上述のように遅延が一番厳しい（マージンが無い）データ転送パスを抽出する。また、正確なＳＴＡ（遅延解析）を行って一番タイミングマージンが少ないパスを抽出する方式でもよい。
【００４３】
分岐点抽出部６３は、抽出されたデータ転送パスの両端に接続されている送信側の順序回路及び受信側の順序回路の各々について、クロック入力端子を抽出する。そして、抽出された順序回路のクロック入力端子から、クロック分配網のＰＬＬ回路までのパスを抽出し、そのパスにおけるクロック分岐点（複数）を抽出する。
【００４４】
分岐点評価部６４は、抽出されたクロック分岐点のうち、順序回路のクロック入力端子から当該クロック分岐点までの遅延ＡがＰＬＬ回路のフィードバッククロック端子ＦＢＫから当該クロック分岐点までの遅延Ｂ以上となるクロック分岐点であって、かつ最も順序回路に近い（リーフに近い）クロック分岐点を選択する。
【００４５】
その方法は、分岐点抽出部６３が抽出した複数の該クロック分岐点（複数）のうち、遅延Ａが遅延Ｂ以上となるクロック分岐点を探し出し、次に遅延Ａが遅延Ｂ以上となるクロック分岐点からもっとも順序回路に近い（リーフに近い）クロック分岐点を選択するようにしてもよい。
【００４６】
また、分岐点抽出部６３が抽出したクロック分岐点のうち、最も順序回路に近い（リーフに近い）クロック分岐点を選択し、続いて、選択されたクロック分岐点を元に、順序回路のクロック入力端子から当該クロック分岐点までの遅延Ａと、ＰＬＬ回路のフィードバッククロック端子ＦＢＫから当該クロック分岐点までの遅延Ｂとを計算比較して遅延Ａが遅延Ｂ未満である場合、抽出されたクロック分岐点のうちから順序回路に近い順に次のクロック分岐点を選択し、遅延Ａ及び遅延Ｂを計算し、遅延Ａが遅延Ｂ以上となるクロック分岐点を探し出すようにしてもよい。
【００４７】
フィードバックパス形成部６５は、分岐点評価部６４が選択した当該クロック分岐点をフィードバック用分岐点とする。そして、フィードバック用分岐点とＰＬＬ回路のフィードバック端子ＦＢＫとの間に、遅延Ａと遅延Ｂとが等しくなるように、フィードバックパスを形成する。このとき、このフィードバックパスは、単なる配線のみでもよいし、必要に応じてバッファを複数有する（挿入された）パスであってもよい。
【００４８】
配線部６０ｂは、設計データベース５９のネットリストと機能ブロックデータと設計ルールデータとに基づいて、配置配線領域における論理機能セル／ブロック間の配線を実行し、レイアウト後の配置配線データを生成する。配置配線部６０は必要に応じてシールド配線などを行ってもよい。
【００４９】
セル検証部８は、配置配線データのレイアウト、タイミング及びシグナルインテグリティを検証する。検証により、配置配線データに問題が発見された場合、自動配置配線部５５が配置配線をやり直す。問題が発見されない場合、配置配線データを出力する。
【００５０】
マスクデータ作成部５７は、配置配線データに基づいてマスクデータを作成し、ファイル７０として出力する。
【００５１】
次に、本発明のクロック分配回路の形成方法の実施の形態（配置配線システムの動作）について、添付図面を参照して説明する。図５は、本発明のクロック分配回路の形成方法を適用した半導体集積回路の設計方法の実施の形態を示すフローチャートである。
【００５２】
まず、自動配置配線部５５の配置配線部６０は、設計データベース５９のネットリストと機能ブロックデータと設計ルールデータとに基づいて、半導体集積回路のフロアプランを形成する（ステップＳ０１）。次に、配置配線領域において、フロアプランに基づいて、電源配線（ステップＳ０２）を実行する。その後、配置配線領域において、フロアプランに基づいて、順序回路２５、２５ａ、２５ｂ、２６、２６ａ、２６ｂ、ＰＬＬ回路２１、２２を含む論理機能セル／ブロックの配置（ステップＳ０３）を行う。ＣＴＳ部実行部６１、データ転送パス抽出部６２、分岐点抽出部６３、分岐点評価部６４及びフィードバックパス形成部６５は、Ｃｌｏｃｋ  Ｔｒｅｅ  Ｓｙｎｔｈｅｓｉｓを実行して、ＰＬＬ回路２１、２２を含むクロック分配回路２０（図２）を形成する（ステップＳ０４）。次に、配置配線部６０は、配線及びシールド配線を実行し、レイアウト後の配置配線データを生成する（ステップＳ０５、ステップＳ０６）。
【００５３】
セル検証部８は、配置配線データについて、レイアウト検証（ＤＲＣ（Ｄｅｓｉｇｎ  Ｒｕｌｅ  Ｃｈｅｃｋｉｎｇ）／ＬＶＳ（Ｌａｙｏｕｔ  Ｖｅｒｓｕｓ  Ｓｃｈｅｍａｔｉｃ））（ステップＳ０７）、ＲＣ（寄生抵抗と寄生容量）抽出（ステップＳ０８）、遅延計算（ステップＳ０９）、タイミング検証（ＳＴＡ（Ｓｔａｔｉｃ  Ｔｉｍｉｎｇ  Ａｎａｌｙｓｉｓ））（ステップＳ１０）、及びシグナルインテグリティ検証（ステップＳ１１）を実行する。検証により、配置配線データに問題が発見された場合（ステップＳ１２：ＮＯ）、当該問題の状況に応じて、自動配置配線部５５は配置配線をやり直す（ステップＳ０１〜ステップＳ０６）。問題が発見されない場合（ステップＳ１２：ＹＥＳ）、セル検証部８は配置配線データを出力する。マスクデータ作成部５７は、配置配線データに基づいてマスクデータを作成し（ステップＳ１３）、ファイル７０として出力する（ステップＳ１４）。
【００５４】
以上により、本発明のクロック分配回路の形成方法を適用した半導体集積回路の設計方法が実行される。
【００５５】
図６、図７は、本発明のクロック分配回路の形成方法の実施の形態を示す第１および第２のフローチャートである。このフローチャートは、図５のステップＳ０４の詳細を示している。ステップＳ０４は、図６、図７に示されるいずれかの方法で実施される。図８は、本発明のクロック分配回路の形成方法の実施の過程におけるクロック分配回路の等価回路の一例を示すブロック図である。なお、本願発明では、任意の異ドメイン間データ転送パスを１つ選択する方法であればいかなる方法でもよい。したがって図６、７はそれぞれ１例に過ぎない。
【００５６】
ステップＳ０３において、配置配線部６０により、順序回路２５、２５ａ、２５ｂ、ＰＬＬ回路２１、順序回路２６、２６ａ、２６ｂ、及びＰＬＬ回路２２が配置されている。
【００５７】
ＣＴＳ部実行部６１は、ＣＴＳ法により、ＰＬＬ回路２１と順序回路２５、２５ａ、２５ｂとの間に、クロックツリー状に配線３１を配線し、配線３１の所定の条件を満たす位置にクロックドライバ２８を配置する。それにより、ＰＬＬ回路２１の第１クロック信号を順序回路２５、２５ａ、２５ｂへ分配するクロック分配網２０ａが形成される。同様に、ＰＬＬ回路２２と順序回路２６、２６ａ、２６ｂとの間に、クロックツリー状に配線３２を配線し、配線３２の所定の条件を満たす位置にクロックドライバ２８を配置する。それにより、ＰＬＬ回路２２の第２クロック信号を順序回路２６、２６ａ、２６ｂへ分配するクロック分配網２０ｂが形成される（ステップＳ２１）。
なお、ここではＣＴＳ法によりクロック分配網２０ａ、２０ｂを作成するように記しているが、本発明ではこの方法以外のクロック分配網を形成してよい。単純にはあらかじめ備え付けられたＨツリーのクロック分配網であってもよい。また上述同様、クロック分配網２０ａ、２０ｂにはクロック分配パスの中に分岐点を備えていればよいので、途中でワイヤード接続を備えるツリーであってもよい。
【００５８】
データ転送パス抽出部６２は、クロック分配網２０ａとクロック分配網２０ｂと間のデータ転送パス４０、４０’を抽出する。
ここでは、任意に１つ抽出する方式や、抽出されたパスについてさらに配線を実行して上記第１の実施例で示したタイミング設計の一番厳しいデータ転送パスを抽出する方法、正確なＳＴＡ（遅延解析）を行って一番タイミングマージンが少ないパスを抽出する方法などにより、抽出された複数の異ドメイン間データ転送パスから１つを選択する（ステップＳ２２）。ここでは、データ転送パス４０が選択されたものとする。
【００５９】
分岐点抽出部６３は、抽出されたデータ転送パス４０の送信側の順序回路２５ａについて、クロック入力端子Ｉ１を抽出する（ステップＳ２３）。そして、順序回路２５ａのクロック入力端子Ｉ１から、クロック分配網２０ａのＰＬＬ回路２１までのパスＰ１を抽出し、そのパスＰ１におけるクロック分岐点ＮＡ２、ＮＡ３、…を抽出する（ステップＳ２４）。同様に、抽出されたデータ転送パス４０の受信側の順序回路２６ａについて、クロック入力端子Ｉ２を抽出する（ステップＳ２３）。そして、順序回路２６ａのクロック入力端子Ｉ２から、クロック分配網２０ｂのＰＬＬ回路２２までのパスＰ２を抽出し、そのパスＰ２におけるクロック分岐点ＮＢ２、ＮＢ３、…を抽出する（ステップＳ２４）。
【００６０】
ここで、ステップＳ２４で抽出されたパスＰ１、Ｐ２各々におけるクロック分岐点からフィードバックパスを返す１つの分岐点の選択について、その第１および第２の方法について以下に述べる。
図６を参照して、第１の方法では、パスＰ１、Ｐ２各々について以下を行う。まず、ステップＳ０４で抽出された、パスＰ１のクロック分岐点それぞれについて、順序回路のクロック入力端子（Ｉ１）―分岐点間の遅延（遅延Ａ）および第１ＰＬＬ回路のＦＢＫ端子―分岐点間の遅延（遅延Ｂ）を算出する（ステップＳ３５）。こうして得られた分岐点ごとの遅延Ａ，Ｂを元に遅延Ａ≧遅延Ｂを満足する分岐点を抽出する（ステップＳ３６）。そしてステップＳ３６で抽出された分岐点のなかから一番リーフに近い分岐点を選択する（ステップＳ３７）。パスＰ２についても同様に行う。図２、図７の例では、パスＰ１，パスＰ２についてそれぞれ分岐点ＮＡ３，ＮＢ３が選択されるものとする。
【００６１】
次に、第２の方法について以下に述べる。
図７を参照して、分岐点評価部６４は、パスＰ１について、抽出されたクロック分岐点ＮＡ２、ＮＡ３、…のうち、最も順序回路２５ａに近いクロック分岐点（図２ではＮＡ３）を選択する（ステップＳ２５）。続いて、選択されたクロック分岐点ＮＡ３を元に、順序回路２５ａのクロック入力端子Ｉ１から当該クロック分岐点ＮＡ３までの遅延Ａ１と、ＰＬＬ回路２１のフィードバッククロック端子ＦＢＫから当該クロック分岐点ＮＡ３までの遅延Ｂ１とを計算する（ステップＳ２６）。そして、計算の結果、遅延Ａ１が遅延Ｂ１以上であるか否かを判断する（ステップＳ２７）。遅延Ａ１が遅延Ｂ１未満である場合（ステップＳ２７：ＮＯ）、抽出されたクロック分岐点ＮＡ２、ＮＡ３、…のうちから順序回路２５ａに近い順に次のクロック分岐点ＮＡ２を選択し（ステップＳ２８）、遅延Ａ１及び遅延Ｂ１を計算し、遅延Ａ１が遅延Ｂ１以上となるクロック分岐点を探し出す（ステップＳ２６、Ｓ２７）。ここでは、クロック分岐点ＮＡ３が、遅延Ａ１≧遅延Ｂ１に該当するとする。同様に、パスＰ２について、抽出されたクロック分岐点ＮＢ２、ＮＢ３、…のうち、最も順序回路２６ａに近いクロック分岐点ＮＢ３を選択する（ステップＳ２５）。続いて、選択されたクロック分岐点ＮＢ３を元に、順序回路２６ａのクロック入力端子Ｉ２から当該クロック分岐点ＮＢ３までの遅延Ａ２と、ＰＬＬ回路２２のフィードバッククロック端子ＦＢＫから当該クロック分岐点ＮＢ３までの遅延Ｂ２とを計算する（ステップＳ２６）。そして、計算の結果、遅延Ａ２が遅延Ｂ２以上であるか否かを判断する（ステップＳ２７）。遅延Ａ２が遅延Ｂ２未満である場合（ステップＳ２７：ＮＯ）、抽出されたクロック分岐点ＮＢ２、ＮＢ３、…のうちから順序回路２６ａに近い順に次のクロック分岐点ＮＢ２を選択し（ステップＳ２８）、遅延Ａ２及び遅延Ｂ２を計算し、遅延Ａ２が遅延Ｂ２以上となるクロック分岐点を探し出す（ステップＳ２６、Ｓ２７）。ここでは、クロック分岐点ＮＢ３が、遅延Ａ２≧遅延Ｂ２に該当するとする。
【００６２】
なお、図６、図７は、説明のためにクロック分岐点の少ない例（ＮＡ１、ＮＡ２、ＮＡ３、及び、ＮＢ１、ＮＢ２、ＮＢ３の三点ずつ）を示しているが、実際の回路は、多数のクロック分岐点が存在している。そして、それら多数のクロック分岐点のいずれかにおいて、ステップＳ２７の条件を満足するクロック分岐点を抽出する。なお、このようなクロック分岐点が存在しなかった場合、条件を変えてＣＴＳを再実行する。
【００６３】
上述の第１の方法、第２の方法のいずれかにより、選択されたパスＰ１，Ｐ２それぞれの分岐点について、以下を進める。
フィードバックパス形成部６５は、クロック分岐点ＮＡ３が遅延Ａ１≧遅延Ｂ１の条件を満足するので、当該クロック分岐点ＮＡ３とＰＬＬ回路２１のフィードバック端子ＦＢＫとの間に、フィードバックパスを形成する（図２の配線３３）。ただし、遅延Ａ１と遅延Ｂ１との遅延差が所定の許容範囲、好ましくは遅延Ａ１＝遅延Ｂ１となるように、必要に応じてクロックドライバ２９を配線３３中に挿入する（ステップＳ２９）。同様に、クロック分岐点ＮＢ３が遅延Ａ２≧遅延Ｂ２の条件を満足するので、当該クロック分岐点ＮＢ３とＰＬＬ回路２２のフィードバック端子ＦＢＫとの間に、フィードバックパスを形成する（図２の配線３４）。ただし、遅延Ａ２と遅延Ｂ２との遅延差が所定の許容範囲、好ましくは遅延Ａ２＝遅延Ｂ２となるように、必要に応じてクロックドライバ２９を配線３４中に挿入する（ステップＳ２９）。
【００６４】
以上のようにして、異なるクロック分配網間に属する順序回路間をつなぐデータ転送パスが存在する場合でも、ＯＣＶに影響されないでクロック信号を分配することが可能なクロック分配回路２０が形成される。
【００６５】
なお、ステップＳ２２において、異なるクロック分配網に接続された順序回路同士を接続するデータ転送パスがない場合、図示しないが、従来行われていた方法でフィードバックパスを設定してクロック分配回路２０が形成される。
【００６６】
上記の半導体集積回路の設計方法により作成された半導体集積回路のマスクデータに基づいて、本発明の半導体集積回路が製造される。すなわち、まず、上記ステップＳ２１〜ステップＳ２９を含むステップＳ０１〜ステップＳ１４を実行して、マスクデータを生成する。次に、マスクデータに基づいて、マスクを作製する。マスクの作製方法には、特に制限は無いが、例えば、従来知られた方法を用いることができる。続いて、作製されたマスクを用いて、半導体基板上に半導体集積回路４５（図３）を製造する。半導体集積回路４５の製造プロセスには、上記マスクを用いていれば、特に制限は無い。例えば、従来知られた成膜処理、リソグラフィ処理等の方法を用いることができる。
【００６７】
このようにして、本発明のクロック分配回路の形成方法を適用した半導体集積回路の設計方法を実施することにより、本発明のクロック分配回路２０を含む半導体集積回路４５を製造することができる。この場合、異なるクロック分配網（クロックドメイン）間に属する回路間をつなぐデータ転送パスが存在する場合でも、ＯＣＶに影響されないでクロック信号を分配することが可能となる。それにより、それら回路間のデータ転送を正しく行うことが可能となる。
【００６８】
なお、上記方法の説明では、配置実行からテープアウトまでを説明しているが、本願発明は、半導体装置（チップ）のクロック分配回路の形成方法であって、形成方法のフローの中で、クロック分配回路を形成する場合に、
（ａ）回路図データと機能ブロックデータと設計ルールデータとに基づいて、半導体装置の配置配線領域に、第１クロック信号で動作する第１順序回路と第２クロック信号で動作する第２順序回路と、第１ＰＬＬ回路と、第２ＰＬＬ回路とを配置するステップと、
（ｂ）前記第１ＰＬＬ回路から出力される前記第１クロック信号を前記第１順序回路に分配する前記第１クロック分配網と、前記第２ＰＬＬ回路から出力される前記第２クロック信号を前記第２順序回路に分配する前記第２クロック分配網とを形成するステップと、
（ｃ）前記第１順序回路と前記第２順序回路との間に第１データ転送パスが有る場合、前記第１クロック分配網の前記第１ＰＬＬ回路から前記第１順序回路までのクロック分配パスが有する分岐点から前記第１分岐点を選択し、前記第１分岐点から前記第１ＰＬＬ回路にフィードバックパスを形成するステップと
を具備する方法であればよい。
【図面の簡単な説明】
【００６９】
【図１】図１は、従来技術における集積回路装置の等価回路を示す図である。
【図２】図２は、本発明のクロック分配回路の構成を示す等価回路図である。
【図３】図３は、本発明の半導体集積回路の実施の形態の構成の一例を示す概略ブロック図である。
【図４】図４は、本発明のロック分配回路の形成方法を適用した配置配線システムの実施の形態の構成を示す図である。
【図５】図５は、本発明のクロック分配回路の形成方法を適用した半導体集積回路の設計方法の実施の形態を示すフローチャートである。
【図６】図６は、本発明のクロック分配回路の形成方法の実施の形態の一例を示すフローチャートである。
【図７】図７は、本発明のクロック分配回路の形成方法の実施の形態の他の例を示すフローチャートである。
【図８】図８は、本発明のクロック分配回路の形成方法の実施の過程におけるクロック分配回路の等価回路の一例を示すブロック図である。
【符号の説明】
【００７０】
１、１ａ、１ｂ    ＰＬＬ回路
２    クロック入力バッファ
３、３ａ、３ｂ、３ｃ    マクロ
５    クロック配線
６    クロックドライバ
８、８ａ、８ｂ    バッファ遅延補償回路
１０    インターフェースマクロフィードバッククロック出力端子
１１、１１ａ、１１ｂ    配線
１２    マクロ内Ｆ／Ｆ
１３    ＰＬＬフィードバッククロック入力端子
２０    クロック分配回路
２０ａ、２０ｂ    クロック分配網
２１、２２    ＰＬＬ回路
２５、２５ａ、２６ａ、２５ｂ、２６ｂ、順序回路
２７、２８、２９    クロックドライバ
３０、３２、３３、３４、４０、４０’    配線
４５    半導体集積回路
５０    配置配線システム
５１    自動配線配置装置
５２    ネットリストデータベース（ＤＢ）
５３    セル／ブロックライブラリデータベース（ＤＢ）
５４    設計ルールファイルデータベース（ＤＢ）
５５    自動配置配線部
５６    セル検証部
５７    マスクデータ作成部
５９    設計データベース
６０ａ    配置部
６０ｂ    配線部
６１    ＣＴＳ部実行部
６２    データ転送パス抽出部
６３    分岐点抽出部
６４    分岐点評価部
６５    フィードバックパス形成部
【図１】
2007336003.tif 000003
【図２】
2007336003.tif 000004
【図３】
2007336003.tif 000005
【図４】
2007336003.tif 000006
【図５】
2007336003.tif 000007
【図６】
2007336003.tif 000008
【図７】
2007336003.tif 000009
【図８】
2007336003.tif 000010