(57)【要約】伝送バス（１２）によって接続された複数の領域（１、２、３）を備えた集積回路用のクロック分配システムであって、各領域は機能ブロック（１０ａ、１０ｂ、１０ｃ）と、それぞれの機能ブロックを前記伝送バス（１２）に接続するための少なくとも１つのバスノード（１４ａ、１４ｂ、１４ｃ）とを備える。分配クロック信号（１６）は、前記領域の間でずれることが認められ、それぞれの領域内で同期化される。各機能ブロックおよびバスノードには、所定のクロック挿入遅延時間（２０ａ、２０ｂ、２０ｃ、２２ａ、２２ｂ、２２ｃ）が導入される。
2004524617.tif 000002
【特許請求の範囲】
【請求項１】
伝送バスによって接続された複数の領域を備え、各領域が機能ブロックと、該機能ブロックを前記伝送バスに接続するための少なくとも１つのバスノードとを備えた、集積回路用クロック分配システムであって、前記分配クロック信号が前記領域の間でずれることが認められており、クロック信号がそれぞれの領域内で同期化されることを特徴とする、クロック分配システム。
【請求項２】
前記クロック信号が各機能ブロックおよびバスノードに分配され、各機能ブロックとバスノードに所定のクロック挿入遅延が挿入されている、請求項１記載のクロック分配システム。
【請求項３】
少なくとも１つの領域が機能ブロックに接続された２つ以上のバスノードを有し、前記バスノードのうちの第１ノードが直接機能ブロックに接続されており、残りのバスノードが遅延デバイスを介して前記機能ブロックに接続されている、請求項１または２記載のクロック分配システム。
【請求項４】
前記遅延デバイスがそれぞれのバスノードと機能ブロックとの間に設けられたクロックブリッジを備える、請求項３記載のクロック分配システム。
【請求項５】
前記クロックブリッジが機能ブロックの一部を形成する、請求項４記載のクロック分配システム。
【請求項６】
前記第１バスノードが前記機能ブロックの中心部分に接続されている、請求項３〜５のいずれかに記載のクロック分配システム。
【請求項７】
各クロック機能ブロックのクロック挿入遅延時間とバスノードのクロック挿入遅延時間とが実質的に等しい、請求項２〜６のいずれかに記載のクロック分配システム。
【請求項８】
機能ブロックまたはバスノードの前記クロック挿入遅延時間が別の機能ブロックまたはバスノードのクロック挿入遅延時間から所定の値だけオフセットされている、請求項２〜６のいずれかに記載のクロック分配システム。
【請求項９】
前記所定の値がクロック挿入遅延時間にＮ個のクロック周期（ここでＮは０または正の整数）を加えた値または引いた値に関連している、請求項８記載のクロック分配システム。
【請求項１０】
前記伝送バスに接続された最大機能ブロックのサイズに従って前記クロック挿入遅延時間が選択されている、前の請求項のいずれかに記載のクロック分配システム。
【請求項１１】
前記領域のうちの少なくとも１つが機能ブロック（５０ｂ）に接続された２つ以上のバスノード（５３ｂ、５３ｃ、５３ｄ）を有し、前記バスノード（５３ｂ、５３ｃ、５３ｄ）の各々がほぼ等しいクロック挿入遅延時間（５５ｂ、５５ｃ、５５ｄ）を有し、前記バスノードのクロック挿入遅延時間（５５ｂ、５５ｃ、５５ｄ）が前記機能ブロック（５０ｂ）の前記クロック挿入遅延時間（５７）と異なっており、前記領域内のクロック信号が遅延バッファ（６５）を介して前記バスノード（５３ｂ、５３ｃ、５３ｄ）の各々にルーティングされる、前の請求項のいずれかに記載のクロック分配システム。
【請求項１２】
前記機能ブロック（５０ｂ）の前記クロック挿入遅延時間が前記遅延バッファ（６５）によって生じる遅延時間とそれぞれのバスノードによって生じる前記クロック挿入遅延時間（５５ｂ、５５ｃ、５５ｄ）との合計にほぼ等しい、請求項１１記載のクロック分配システム。
【請求項１３】
前記クロック信号が前記伝送バスに沿って各機能ブロックおよびバスノードに分配される、前の請求項のいずれかに記載のクロック分配システム。
【請求項１４】
集積回路上の複数の領域にクロック信号を分配する方法において、前記領域がバスによって接続されており、各領域が機能ブロックおよび少なくとも１つのバスノードを備えた、クロック信号を分配する方法において、
前記集積回路上の領域の間でクロックをずらすことできるようにする工程と、
前記集積回路上のそれぞれの領域内のクロックを同期化する工程とを備えた、クロック信号を分配する方法。
【請求項１５】
前記クロック信号が各機能ブロックおよびバスノードに分配されるようになっており、更に各機能ブロックおよびバスノードに所定のクロック挿入遅延を挿入する工程を更に備えた、請求項１４記載の方法。
【請求項１６】
少なくとも１つの領域内で機能ブロックに２つ以上のバスを接続する工程と、
前記バスノードのうちの第１ノードが直接前記機能ブロックに接続され、残りのバスノードが遅延デバイスを介して前記機能ブロックに接続されるよう、前記領域内に前記バスノードを配置する工程を更に備えた、請求項１４または１５記載の方法。
【請求項１７】
前記遅延デバイスがそれぞれのバスノードと機能ブロックとの間に設けられたクロックブリッジを備えた、請求項１６記載の方法。
【請求項１８】
前記クロックブリッジが前記機能ブロックの一部を形成する、請求項１７記載の方法。
【請求項１９】
前記第１バスノードが前記機能ブロックの中心部分に接続されている、請求項１６〜１８のいずれかに記載の方法。
【請求項２０】
各機能ブロックのクロック挿入遅延時間と各バスノードのクロック挿入遅延時間とがほぼ等しい、請求項１５〜１９のいずれかに記載の方法。
【請求項２１】
機能ブロックまたはバスノードの前記クロック挿入遅延時間が別の機能ブロックまたはバスノードのクロック挿入遅延時間から所定の値だけオフセットされている、請求項１５〜１９のいずれかに記載の方法。
【請求項２２】
前記所定の値がクロック挿入遅延時間にＮ個のクロック周期（ここでＮは０または正の整数）を加えた値または引いた値に関連している、請求項２１記載の方法。
【請求項２３】
前記伝送バスに接続された最大機能ブロックのサイズに従って前記クロック挿入遅延時間が選択されている、請求項１４〜２２のいずれかに記載の方法。
【請求項２４】
少なくとも１つの領域において、機能ブロック（５０ｂ）に２つ以上のバスノード（５３ｂ、５３ｃ、５３ｄ）を接続する工程を更に備え、前記バスノード（５３ｂ、５３ｃ、５３ｄ）の各々がほぼ等しいクロック挿入遅延時間（５５ｂ、５５ｃ、５５ｄ）を有し、前記バスノードのクロック挿入遅延時間（５５ｂ、５５ｃ、５５ｄ）が前記機能ブロック（５０ｂ）のクロック挿入遅延時間（５７）と異なっており、
遅延バッファ（６５）を介して前記領域内のクロック信号を前記バスノード（５３ｂ、５３ｃ、５３ｄ）の各々にルーティングする工程を更に備えた、請求項１４〜２３のいずれかに記載の方法。
【請求項２５】
前記機能ブロック（５０ｂ）の前記クロック挿入遅延時間が前記遅延バッファ（６５）によって生じる遅延時間とそれぞれのバスノードによって生じる前記クロック挿入遅延時間（５５ｂ、５５ｃ、５５ｄ）との合計にほぼ等しい、請求項２４記載の方法。
【請求項２６】
前記クロック信号が前記伝送バスに沿って各機能ブロックおよびバスノードに分配される、請求項１４〜２５のいずれかに記載の方法。
【請求項２７】
複数の領域と、
前記複数の領域を接続するためのバスと、
クロック信号を前記複数の領域にルーティングするようになっているクロック分配ネットワークとを備えた集積回路において、
前記クロック分配ネットワークが、それぞれの領域内で同期化した状態で、かつそれぞれの領域の間でずれた状態でクロック信号をルーティングするようになっていることを特徴とする、集積回路。
【請求項２８】
各領域が機能ブロックと少なくとも１つのバスノードとを備え、前記クロック信号が機能ブロックおよび種々の領域のバスノードに分配され、各機能ブロックおよびバスノードに所定のクロック挿入遅延時間が割り当てられている、請求項２７記載の集積回路。
【請求項２９】
少なくとも１つの領域が機能ブロックに接続された２つ以上のバスノードを有し、前記バスノードのうちの第１ノードが直接機能ブロックに接続されており、残りのバスノードが遅延デバイスを介して前記機能ブロックに接続されている、請求項２７または２８記載の集積回路。
【請求項３０】
前記遅延デバイスがそれぞれのバスノードと機能ブロックとの間に設けられたクロックブリッジを備える、請求項２９記載の集積回路。
【請求項３１】
前記クロックブリッジが機能ブロックの一部を形成する、請求項３０記載の集積回路。
【請求項３２】
前記第１バスノードが前記機能ブロックの中心部分に接続されている、請求項２９〜３１のいずれかに記載の集積回路。
【請求項３３】
各クロック機能ブロックのクロック挿入遅延時間と各バスノードのクロック挿入遅延回路とがほぼ等しくなっている、請求項２８〜３２のいずれかに記載の集積回路。
【請求項３４】
機能ブロックまたはバスノードの前記クロック挿入遅延時間が別の機能ブロックまたはバスノードのクロック挿入遅延時間から所定の値だけオフセットされている、請求項２８〜３２のいずれかに記載の集積回路。
【請求項３５】
前記所定の値がクロック挿入遅延時間にＮ個のクロック周期（ここでＮは０または正の整数）を加えた値または引いた値に関連している、請求項３４記載の集積回路。
【請求項３６】
前記伝送バスに接続された最大機能ブロックのサイズに従って前記クロック挿入遅延時間が選択されている、請求項２７〜３５のいずれかに記載の集積回路。
【請求項３７】
前記領域のうちの少なくとも１つが機能ブロック（５０ｂ）に接続された２つ以上のバスノード（５３ｂ、５３ｃ、５３ｄ）を有し、前記バスノード（５３ｂ、５３ｃ、５３ｄ）の各々がほぼ等しいクロック挿入遅延時間（５５ｂ、５５ｃ、５５ｄ）を有し、前記バスノードのクロック挿入遅延時間（５５ｂ、５５ｃ、５５ｄ）が前記機能ブロック（５０ｂ）の前記クロック挿入遅延時間（５７）と異なっており、前記領域内のクロック信号が遅延バッファ（６５）を介して前記バスノード（５３ｂ、５３ｃ、５３ｄ）の各々にルーティングされる、請求項２７〜３６のいずれかに記載の集積回路。
【請求項３８】
前記機能ブロック（５０ｂ）の前記クロック挿入遅延時間が前記遅延バッファ（６５）によって生じる遅延時間とそれぞれのバスノードによって生じる前記クロック挿入遅延時間（５５ｂ、５５ｃ、５５ｄ）との合計にほぼ等しい、請求項３７記載の集積回路。
【請求項３９】
前記クロック信号が前記伝送バスに沿って各機能ブロックおよびバスノードに分配される、請求項２７〜３８のいずれかに記載の集積回路。
【請求項４０】
集積回路におけるピーク電力を低減する方法であって、前記集積回路を複数の機能ブロックに区分する工程と、互いにずれらされたクロック信号を使って少なくとも２つの機能ブロックが作動し、よって集積回路におけるピーク電力を低減するように、それぞれの機能ブロックにクロック信号を分配する工程とを備えた、集積回路におけるピーク電力を低減する方法。
【請求項４１】
各々が１つの機能ブロックと、少なくとも１つのバスノードを有する複数の領域となるように集積回路を区分する工程と、
伝送バスを使って前記領域を接続する工程と、
前記伝送バスに沿ってそれぞれの機能ブロックにクロック信号を分配する工程と、
各機能ブロックおよびバスノードにクロック挿入遅延時間を割り当てる工程とを備えた、集積回路を設計する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はクロック分配システムに関し、特に集積回路のためのクロック分配システムに関する。
【背景技術】
【０００２】
集積回路は、この集積回路上の機能ブロックの間で同期した状態でデータを転送したり、命令を実行するのにクロック方式を必要としている。従来の集積回路の目的はクロック信号がどの回路要素またはモジュールにも同時に到着し、よって、回路要素が同期した状態で作動できるようにすることにある。従って、集積回路は信号が中心に位置するクロック基準点からチップ全体にわたって対称的に分配されるように一般に設計されている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来のクロック分配方式に関連して対称的になっているにもかかわらず、製造プロセス中に生じる回路導線内の欠陥およびバラツキにより、回路要素またはモジュールの間でクロックのずれが生じる。
【０００４】
集積回路を設計するための現在の開発ツールはチップ上の機能ユニットの各々が同期して作動するように、バランスのとれたクロックをチップ全体にわたって分配するための自動化されたプロセスを有している。クロックのバランスをとるための自動化プロセスでは２段プロセスが必要である。第１に、各機能ブロック内にクロックツリーを挿入し、各ブロックの挿入遅延時間は異なっている。レイアウトフロアプランに機能ブロックを一旦載せると、プロセスの第２段では許容できる限度内にクロックのずれを小さくするように、クロックツリーをバランスさせる。これを行うにはチップ上のどのレジスタに対してもすべてのクロック入力でのずれをバランスさせるのに、各パス内に追加バッファを挿入する。この技術を使用すると、クロックツリーを２００〜３００ｐｓ内にバランスさせることができる。
【０００５】
上記従来のプロセスには多数の欠陥がある。例えば機能ユニットへの各パス内にクロックバッファを挿入する作業は比較的自動化できるが、プロセスの第２段では多くの手作業による介入が必要となる。すなわち追加クロックバッファを挿入すべき場所にツールを向けなければならない。このプロセスには時間がかかり、クロックのずれが許容できる公差レベル内にあるかどうかを判断することが困難である。クロック周波数を高くしたいという要望が常にあることは、上記問題がより関係することを意味している。この結果、大規模集積回路を妥当な時間フレーム内でシミュレートすることが困難となる。
【０００６】
上記バランスのとれたクロックツリーは同期した設計を行う方法の標準的な方法の一部である。しかしながら、この技術の別の欠点はクロックエッジの到着によってチップ全体のレジスタすべてを更新する結果、チップにより吸収される電流の大きなスパイクが生じることである。このような電流のサージは多数の見地から望ましくないものである。例えば電流サージは不要な電磁放射を生じさせ、これによってエレクトロマイグレーション（ｅｌｅｃｔｒｏｍｉｇｒａｔｉｏｎ）の欠陥に起因する信頼性の問題も生じる。
【０００７】
別の欠点は、大電流サージを取り扱うためにトラックサイズを必要以上に大きくしなければならないことである。更に、トップレベルのクロックドライバーを挿入できるように、シリコン領域を使用しない状態のままにしなければならない。
【０００８】
本発明の目的はクロックのずれを許容でき、大規模集積回路を設計するプロセスを簡略化できる、集積回路のためのクロック分配システムを提供することにある。
【課題を解決するための手段】
【０００９】
本発明の第１の特徴によれば、伝送バスによって接続された複数の領域を備え、各領域が機能ブロックと、該機能ブロックを前記伝送バスに接続するための少なくとも１つのバスノードとを備えた、集積回路用クロック分配システムにおいて、前記分配クロック信号が前記領域の間でずれることが認められており、クロック信号がそれぞれの領域内で同期化されることを特徴とする、クロック分配システムが提供される。
【００１０】
好ましくは前記クロック信号は、各機能ブロックおよびバスノードに分配され、各機能ブロックとバスノードとの間に所定のクロック挿入遅延が挿入される。
【００１１】
本発明の第２の特徴によれば、集積回路上の複数の領域にクロック信号を分配する方法において、前記領域がバスによって接続されており、各領域が機能ブロックおよび少なくとも１つのバスノードを備えており、前記集積回路上の領域の間でクロックをずらすことできるようにする工程と、前記集積回路上のそれぞれの領域内のクロックを同期化する工程とを備えた、クロック信号を分配する方法が提供される。
【００１２】
本発明の第３の特徴によれば、複数の領域と、前記複数の領域を接続するためのバスと、クロック信号を前記複数の領域にルーティングするようになっているクロック分配ネットワークとを備えた集積回路において、前記クロック分配ネットワークが、それぞれの領域内で同期化した状態で、かつそれぞれの領域の間でずれた状態でクロック信号をルーティングするようになっていることを特徴とする、集積回路が提供される。
【００１３】
本発明の第４の特徴によれば、集積回路におけるピーク電力を低減する方法であって、前記集積回路を複数の機能ブロックに区分する工程と、互いにずれらされたクロック信号を使って少なくとも２つの機能ブロックが作動し、よって集積回路におけるピーク電力を低減するように、それぞれの機能ブロックにクロック信号を分配する工程とを備えた、集積回路におけるピーク電力を低減する方法が提供される。
【００１４】
本発明の第４の特徴によれば、各々が１つの機能ブロックと、少なくとも１つのバスノードを有する複数の領域となるように集積回路を区分する工程と、
伝送バスを使って前記領域を接続する工程と、前記伝送バスに沿ってそれぞれの機能ブロックにクロック信号を分配する工程と、各機能ブロックおよびバスノードにクロック挿入遅延時間を割り当てる工程とを備えた、集積回路を設計する方法が提供される。
【発明を実施するための最良の形態】
【００１５】
図１ａおよび１ｂは集積回路におけるクロックのずれに関連した問題の一部を示す。図１ａに示されるように、クロック信号１がデータ信号３と同じ方向に移動すると、この結果、正のずれが生じ、この結果、ホールドタイムの問題が生じ得る。逆に、図１ｂに示されるように、クロック信号１がデータ信号３と逆方向に移動すると、この結果、負のずれが生じる。負のずれに関連したホールドタイムの問題は生じないが、有効なクロック時間が短くなるという欠点がある。
【００１６】
従って、データがクロック信号と同じ方向に移動すると、データが定刻に次のレジスタに到着し、ホールドが破られるという可能性がある。この危険を除くには、従来の技術ではレジスタの間に充分な論理遅延時間を設け、この問題を防止せんとしている。
【００１７】
図２は、この問題をより詳細に示している。クロックが分配されるのと同じ方向にデータが移動しており、回路を作動させるために次の関係が成立している。
【００１８】
【数１】
2004524617.tif 000003
【００１９】
信頼できる動作を可能にするには、ｔｓｋｅｗの最悪ケースの（すなわち最大の）値だけでなく、高速条件下のＴｃｌｋ→Ｑおよびｔｌｏｇｉｃの値についても知っていなければならない。ｔｈｏｌｄの最大値を使用しなければならない。
【００２０】
この解決方法では、クロックのずれを簡単に許容し、論理遅延回路によってマスクしている。同一機能ブロック内の異なるレジスタに分配されるクロック信号間のずれにうまく対応するには、論理合成ソフトウェアにクロックの数値を不確実にすることが一般的なやり方である。次に、この設計ツールは潜在的なホールド時間の違反を探し、これが生じるのを防止するために、確実に論理遅延時間が充分な値となるようにしている。
【００２１】
この技術は、機能ブロック内でのクロックの分配に対して許容できるが、より大きいずれを許容するのにかなりの量の論理回路を挿入しなければならない。この問題を解消する公知の方法は、図３に示されるようにハーフラッチ回路を使用することである。クロックに対して正のエッジが生じると、ラッチが閉じる（すなわち不透明である）。これによってデータがクロック時間を追い越し、ホールドを破ることを防止できる。この技術はクロックサイクルの半分までのずれをカバーするのに使用できる。
【００２２】
図４は本発明の第１の特徴によるクロック分配システムを示す。通信バス１２により複数の機能ブロック１０ａ、１０ｂ、１０ｃが相互に接続されている。このバスはパイプライン状バスであることが好ましい。「機能ブロック」なる用語は仮想的処理ブロック、例えば複数の再使用可能なオンチップ機能ブロックまたは仮想部品ブロックの１つを意味するものであることが理解できよう。この機能ブロックは時々「システムオンチップ」ブロックとも称される。各機能ブロック１０ａ、１０ｂ、１０ｃはそれぞれのバスノード１４ａ、１４ｂ、１４ｃにより伝送バス１２に接続されている。機能ブロック１０ａ、１０ｂ、１０ｃはバスノード１４ａ、１４ｂ、１４ｃおよび伝送バス１２を介して互いに通信する。バスノード１４ａ、１４ｂ、１４ｃは機能ブロック１０ａ、１０ｂ、１０ｃとバス１２との間のインターフェースとして働き、例えばアドレスデコーディングおよびプロトコル変換の取り扱いを処理する。
【００２３】
本発明によれば、クロック信号１６は好ましくは伝送バス１２に沿って設けられた種々の機能ブロック１０ａ、１０ｂ、１０ｃに送られ、クロック信号が機能ブロックの間を移動する際のクロック信号１６のずれを許容している。このずれは図４では遅延要素１８によって略図で示されている。
【００２４】
各機能ブロック１０ａ、１０ｂ、１０ｃにはクロック挿入遅延回路２０ａ、２０ｂ、２０ｃがそれぞれ設けられている。同様に、各バスノード１４ａ、１４ｂ、１４ｃにもクロック挿入遅延回路２２ａ、２２ｂ、２２ｃが設けられている。機能ブロック１０ａのクロック挿入遅延回路２０ａにはバスノード１４ａのクロック挿入遅延回路２２ａにほぼ等しい値が割り当てられることが好ましい。例えば隣接する機能ブロック１０ａと１０ｂとの間のずれは３００ｐｓ未満であることが分かっている場合、機能ブロック１０ａおよびバスノード１４ａに対するクロック挿入遅延時間として３．４ｎｓの遅延時間を選択できる。このことは、機能ブロック１０ａはそれぞれのバスノード１４ａと同期することを意味している。
【００２５】
同様に、機能ブロック１０ｂのクロック挿入遅延回路２０ｂにはバスノード１４ｂのクロック挿入遅延回路２２ｂにほぼ等しいクロック挿入遅延時間が割り当てられ、機能ブロック１０ｃのクロック挿入遅延回路２０ｃにはバスノード１４ｃのクロック挿入遅延回路２２ｃにほぼ等しいクロック挿入遅延時間が割り当てられている。
【００２６】
機能ブロック１０ａ、１０ｂおよび１０ｃのクロック挿入遅延回路２０ａ、２０ｂ、２０ｃ、およびバスノード１４ａ、１４ｂ、１４ｃのクロック挿入遅延回路２２ａ、２２ｂ、２２ｃには同じクロック挿入遅延時間を割り当てることが好ましい。
【００２７】
これとは異なり、各機能ブロックおよび関連するバスノードに同じクロック挿入遅延時間を割り当てるが、別個の機能ブロックおよびその関連バスノードにはクロック周期の倍数に挿入遅延時間を加えた値であるクロック挿入遅延時間を割り当ててもよい。例えばクロック周期が２．５ｎｓであり、機能ブロック１０ａの挿入遅延時間が３．４ｎｓである場合、他のブロックのクロック挿入遅延時間に次の値のクロック挿入遅延時間を割り当てることができる。
【００２８】
【数２】
2004524617.tif 000004
【００２９】
ここでｎは０以上の正の整数である。
【００３０】
換言すれば、他のノードにおけるクロックのエッジが第１機能ブロックにおけるクロックのエッジの許容できる限度内まで同期化できることを条件に、第１機能ブロックをクロック制御するのに使用されるクロック信号の下流側でリアルタイムで数クロック周期となっているクロック信号で他のノードをクロック制御してもよい。バスノードはある値だけ、例えば（信号が約１ｍｍ伝搬するのにかかる時間である）３００ｐｓ未満の値だけ他の隣接ノードに対してバスノードがずらされる。第１の対のノードの間のずれは第２の対のノードの間のずれに対して変わり得ることが理解できよう。このずれは不確実なクロックがバスノード間のすべての信号に対して、例えば３００ｐｓよりも大となるように設定することによって処理される。従って、機能ブロック１０ｃにおけるクロックは機能ブロック１０ａにおけるクロックに対して６００ｐｓだけずれるが、このことは不確実なクロックが３００ｐｓよりも大きくなるようにセットされることを条件に、回路動作に影響しない。その理由は各機能ブロック１０ａおよび１０ｃは自己のバスノード１４ａ、１４ｂに対して同期状態となっているからである。不確実なクロックを設定するには合成ツールが２つのクロックエッジの間の最悪ケースのタイミングの関係を計算できるように情報を合成ツールに提供しなければならない。この場合、セットアップおよびホールド時間が破られないように、論理回路の合成を管理するのに適当なタイミングが使用される。
【００３１】
図５は本発明の第２の特徴に係わるクロック分配システムの一例を示す。図４における機能ブロック１０ａ、１０ｂ、１０ｃは機能ブロック当たり１つのバスノード１４ａ、１４ｂ、１４ｃだけでよいように比較的小さいが、図５の回路は複数のバスノード３３ａ、３３ｂ、３３ｃを介した伝送バスへの複数のインターフェースを有するより大きい機能ブロック３０を示している。
【００３２】
上記のように、クロック信号１６は機能ブロック３０および好ましくはバス１２に沿って設けられたバスノード３３ａ、３３ｂ、３３ｃの各々へ分配される。この機能ブロック３０にはバスノード３３ａに割り当てられたクロック挿入遅延時間３７ａにほぼ等しいクロック挿入遅延時間３９が割り当てられている。バスノード３３ｂ、３３ｃのクロック挿入遅延回路３７ｂ、３７ｃにはバスノード３３ａのクロック挿入遅延時間と同じ値の分配挿入遅延時間が割り当てられている。これとは異なり、図４を参照して上で説明したように、クロック挿入遅延時間３７ｂ、３７ｃをクロック周期の倍数にクロック挿入遅延時間３７ａを加えた値としてもよい。
【００３３】
機能ブロック３０は図４の機能ブロック１０ａよりも大きいので、加える挿入時間を大きくしなければならない。例えばバスノード３３ａ／３３ｂと３３ｂ／３３ｃとの間のずれが３００ｐｓ未満であると仮定すると、５．９ｎｓのクロック挿入遅延時間をクロック挿入遅延手段３９、３７ａ、３７ｂおよび３７ｃの各々に割り当てることができる。これとは異なり、クロック挿入遅延時間３７ｂおよび３７ｃをクロック周期の倍数とすることができる。（機能ブロック３０のような）大きい機能ブロックに対する可能な最小の挿入遅延時間は、バスノードに対する遅延時間よりも長くなるので、システム内に最大の機能ブロックを収納するよう選択する挿入遅延時間の値を充分長くしなければならない。
【００３４】
機能ブロック３０とそれぞれのバスノード３３ｂ、３３ｃとの間の伝送は位相がずれることになる。各ブロック内でのクロック間の位相の関係は図６に示されている。
【００３５】
図６を参照すると、双方の要素は挿入遅延時間が同じであるので、バスノード３３ａと機能ブロック３０とは同期することが理解できよう。多数のバスノード３３ａ、３３ｂ、３３ｃが同じ機能ブロック３０に対してインターフェースとして作動できるようにするために、機能ブロック３０と同期しないバスノード３３ｂおよび３３ｃに対してクロックブリッジ３５ｂ、３５ｃがそれぞれ設けられている。これらクロックブリッジ３５ｂおよび３５ｃは必要とされる場合、回路構造に挿入できる標準ブロックであることが好ましい。
【００３６】
図７はクロックブリッジ３５ｂ、３５ｃをどのように実現できるかの一例を示す。図示されているクロックブリッジは双方向性であり、図を簡潔にするために各方向に対して単一ビットのデータパスを示している。より広いデータパスにも同じ方法を適用できることが理解できよう。本例では、クロック信号は６００ｐｓだけずれるが、この値は（ある程度の安全性のマージンをもって）クロック周期の半分未満である限り、これより大きくすることができる。機能ブロック３０におけるクロックが大きいとき、隣接ラッチ４１が閉じ、データＤが通過すること（ｓｈｏｏｔｉｎｇ  ｔｈｒｏｕｇｈ）を防止する。データが（遅れたクロックから前方クロックへの）逆方向に移動するときにはこのラッチ４３は不要であるが、ユニットが対称的となるようにこのラッチが含まれることが好ましい。このことは、クロックブリッジが間違った方向に接続されているときでも作動することを意味し得る。同様に、バスノード３３ｂからのクロック信号はラッチ４７、４９および５１に接続されている。バスノード３３ｂからのクロック信号がハイレベルとなると、ラッチ５１は不透明状態となり、データの通過を防止する。ラッチ４１、４３、４７、４９が導入されていることによって、例えばフォーマル証明（ｆｏｒｍａｌ  ｖｅｒｉｆｉｃａｔｉｏｎ）の際のデザインツールのフローに問題が生じる。これらラッチが使用されているときの設計者の意図を知ることは困難である。クロックブリッジの場合、注意深くチェックできるのは１つの部品であるが、この部品はチップ全体にわたって使用される。
【００３７】
これとは異なり、必要な遅延時間を生じさせるのに論理ゲートを使用できる。しかしながらこの解決方法には、電力をより多く消費し、集積回路上でより広い面積を使用するという欠点がある。
【００３８】
これまで提案した解決案は多数のバスノードが１つの機能ブロックに対するインターフェースとして機能できるようにするものであった。図５で説明した例は、機能ブロック３０内のクロックが第１バスノード３３ａのクロックと一致していることを示している。これとは異なり、機能ブロック３０におけるクロックは機能ブロック３０の中心に最も近いバスノード、例えば図５の例におけるバスノード３３ｂと一致してもよい。このことには、許容できるずれ全体の値を大きくすることができるという利点がある。
【００３９】
上記本発明の第２の特徴に係わるクロック分配システムには、許容できるずれの値に限界がある。例えば極めて大きい機能ブロックに対し、例えば（インターフェースの間が６〜８ｍｍよりも大きい）極めて大きい機能ブロックに対しては、クロックのスキューを管理することが困難となる。更にクロックブリッジ３５ｂおよび３５ｃを追加すると、バスインターフェースでのクロックレイテンシーのサイクルが増す。
【００４０】
図８は本発明の第３の特徴に係わるクロック分配システムの一例を示す。クロックは、第１領域、例えば機能ブロック５０ａ、５０ｃおよびバスノード５３ａ、５３ｅが設けられている集積回路の部分でずれることが認められている。機能ブロック５０ａは対応するバスノード５３ａの挿入遅延回路５１（例えばこのノードは５．８ｎｓの挿入遅延時間も有する）に一致する５．８ｎｓの挿入遅延回路５１を有する。同様に、機能ブロック５０ｃは対応するバスノード５３ｅの挿入遅延時間と一致する５．８ｎｓの挿入遅延時間を有する。
【００４１】
バスノード５３ｃ／５３ｄと機能ブロック５０ｂとの間でクロックブロックを使用する代わりに、この実施例は機能ブロック５０ｂに属するバスノード５３ｂ、５３ｃ、５３ｄをバランスさせるのに、トップレベルの挿入回路を使用している。例えば機能ブロック５０ｂが５．８ｎｓの挿入遅延回路５７を有する場合、バスノード５３ｂ、５３ｃ、５３ｄは、３．３ｎｓの挿入遅延時間（５５ｂ、５５ｃ、５５ｄとして示されている）を有するようになっている。バスノード５３ｂ、５３ｃ、５３ｄの各々と機能ブロック５０ｂとの間の同期は２．５ｎｓの挿入遅延を行う遅延バッファ６５のトップレベルの挿入によって達成される。例えば機能ブロック３０ｂの挿入遅延時間に対応する５．８ｎｓの有効挿入遅延を達成するのに、バスノード５３ｂ、５３ｃ、５３ｄの各々においてバッファ６５の２．５ｎｓの遅延時間と３．３ｎｓの挿入遅延時間とが組み合わされている。上記例ではバッファ６５のクロック挿入遅延時間は、クロックの周期、例えば２．５ｎｓと一致していることに留意されたい。従って、バスノード５５ｄとバスノード５５ｅとを比較すると、これらの間の差異は相対的なクロックのずれにある（絶対的クロックエッジではなく、最も近いクロックエッジを比較する）。
【００４２】
従って、集積回路のこの領域内のクロック分配システムは従来のツリー方法を使用している。クロックが大きい機能ブロック５０ｂに達するまで、バスに沿って移動する際にずれることがまだ認められている。機能ブロック５０ｂに接続されたバスノード５３ｂ、５３ｃ、５３ｄはバランスのとれたクロック（１００ｐｓ未満）を有する。このセグメントから下流側に分配されるクロック信号は再びずれを開始することが認められる。この実施例によれば、機能ブロック５０ｂ内へのクロックをバランスさせ、バスノード内へのクロックをバランスさせるクロックバッファ６５のためのスペースを可能にするために、機能ブロック５０ｂに接続されたバスノード内にスペースを保留しなければならない。
【００４３】
本発明の第３の特徴によれば、この回路は極めて大きい機能ブロック、例えばずらされた方法を使用するのに、過度に大きい機能ブロックに対しバックエンドで最小のバランスを取るだけでよいように、予めクロック挿入のほとんどが行われるという、改良されたクロック分配システムのほとんどの利点を維持できる。この実施例はピーク電力を減少し、かつクロックブリッジによりレイテンシーのオーバーヘッドを導入することなく、クロックを制御できるという利点を有する。
【００４４】
この集積回路では上記解決案を任意に組み合わせることができると理解できよう。例えばある領域は機能ブロックごとに割り当てられた１つのバスノードを有することができる一方、別の領域は機能ブロックごとに多数のバスノードを有することができる。更に機能ブロックごとに多数のバスノードが割り当てられている場合、システムは図５で説明されたクロックブリッジ方法または図８を参照して説明したバランス化ツリー方法、または同じ集積回路で双方のシステムを組み合わせる方法のいずれかを選択できる。
【００４５】
上記実施例は縮小されたトップレベルのクロック構造を有する集積回路の開発を可能にするものである。バスノードおよび機能ブロックはクロック信号を分配するための必要な構成部品を含むので、バスノードおよび機能ブロックを、必要なインターフェースを提供するクロックブリッジに簡単な方法で接続できる。トップレベルのクロック構造のための回路構造内でスペースを設けることにより、より大きい機能ブリッジを取り扱うが、このことはチップ全体にわたってクロックツリーをバランスさせるよりもオーバーヘッドがより小さくなる。
【００４６】
前に述べたように、本発明はクロックのずれを解消しようとすることによりも、むしろクロックのずれを許容するという利点を有する。この結果、チップ上の異なるレジスタは異なるクロックエッジを有するので、通常引き出される大電流のピークを平滑にできる。この結果、配電が容易となり、これによってトラックのサイズを狭くできる。更に、金属とラックを通過する低電流密度は特にエレクトロマイグレーションの故障に関する信頼性を改善できる。
【００４７】
このクロック分配システムの別の利点は再使用できる点にある。多数のチップは同じクロック周波数を有し、挿入遅延のために同じ規則を使用していることを条件に、多数のチップにわたってレイアウトの同じ部分を再使用できる。
【００４８】
好ましい実施例は、対応するバスノードのクロック挿入遅延時間にほぼ等しくなるように選択される機能ノードのクロック挿入遅延時間を示すが、これらクロック挿入遅延時間は種々の機能ブロックに関して上記のようにオフセットすることもできる。すなわち、クロック挿入遅延時間を第１クロック挿入遅延時間から±Ｎ個のクロック周期（ここでＮは０または正の整数にクロック挿入遅延時間を加えた値である）だけオフセットされる。
【図面の簡単な説明】
【００４９】
【図１ａ】クロックのずれに関連した問題を示す。
【図１ｂ】クロックのずれに関連した問題を示す。
【図２】クロックのずれによる潜在的なホールド時間の違反を示す。
【図３】クロックのずれを補償する従来の方法を示す。
【図４】本発明の第１実施例に係わるクロック分配システムを示す。
【図５】本発明の第２実施例に係わるクロック分配システムを示す。
【図６】図５の第２実施例におけるクロック信号間の位相の関係を示す。
【図７】図５の第２実施例のクロックブリッジの一例を示す。
【図８】本発明の第３実施例に係わるクロック分配システムを示す。
【図１ａ】
2004524617.tif 000005
【図１ｂ】
2004524617.tif 000006
【図２】
2004524617.tif 000007
【図３】
2004524617.tif 000008
【図４】
2004524617.tif 000009
【図５】
2004524617.tif 000010
【図６】
2004524617.tif 000011
【図７】
2004524617.tif 000012
【図８】
2004524617.tif 000013
【国際公開パンフレット】
2004524617.tif 000014
2004524617.tif 000015
2004524617.tif 000016
2004524617.tif 000017
2004524617.tif 000018
2004524617.tif 000019
2004524617.tif 000020
2004524617.tif 000021
2004524617.tif 000022
2004524617.tif 000023
2004524617.tif 000024
2004524617.tif 000025
2004524617.tif 000026
2004524617.tif 000027
2004524617.tif 000028
2004524617.tif 000029
2004524617.tif 000030
2004524617.tif 000031
2004524617.tif 000032
2004524617.tif 000033
2004524617.tif 000034
2004524617.tif 000035
2004524617.tif 000036
2004524617.tif 000037
2004524617.tif 000038
2004524617.tif 000039
2004524617.tif 000040
2004524617.tif 000041
2004524617.tif 000042
2004524617.tif 000043
2004524617.tif 000044
2004524617.tif 000045
2004524617.tif 000046
2004524617.tif 000047
2004524617.tif 000048
【手続補正書】
【提出日】平成15年6月11日(2003.6.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
伝送バスによって接続された複数の領域を備え、各領域が機能ブロックと、該機能ブロックを前記伝送バスに接続するための少なくとも１つのバスノードとを備えた、集積回路用クロック分配システムであって、前記分配クロック信号が前記領域の間でずれることが認められており、クロック信号がそれぞれの領域内で同期化されることを特徴とする、クロック分配システム。
【請求項２】
前記クロック信号が各機能ブロックおよびバスノードに分配され、各機能ブロックとバスノードに所定のクロック挿入遅延が挿入されている、請求項１記載のクロック分配システム。
【請求項３】
少なくとも１つの領域が機能ブロックに接続された２つ以上のバスノードを有し、前記バスノードのうちの第１ノードが直接機能ブロックに接続されており、残りのバスノードが遅延デバイスを介して前記機能ブロックに接続されている、請求項１または２記載のクロック分配システム。
【請求項４】
前記遅延デバイスがそれぞれのバスノードと機能ブロックとの間に設けられたクロックブリッジを備える、請求項３記載のクロック分配システム。
【請求項５】
前記クロックブリッジが機能ブロックの一部を形成する、請求項４記載のクロック分配システム。
【請求項６】
前記第１バスノードが前記機能ブロックの中心部分に接続されている、請求項３〜５のいずれかに記載のクロック分配システム。
【請求項７】
各クロック機能ブロックのクロック挿入遅延時間とバスノードのクロック挿入遅延時間とが実質的に等しい、請求項２〜６のいずれかに記載のクロック分配システム。
【請求項８】
機能ブロックまたはバスノードの前記クロック挿入遅延時間が別の機能ブロックまたはバスノードのクロック挿入遅延時間から所定の値だけオフセットされている、請求項２〜６のいずれかに記載のクロック分配システム。
【請求項９】
前記所定の値がクロック挿入遅延時間にＮ個のクロック周期（ここでＮは０または正の整数）を加えた値または引いた値に関連している、請求項８記載のクロック分配システム。
【請求項１０】
前記伝送バスに接続された最大機能ブロックのサイズに従って前記クロック挿入遅延時間が選択されている、前の請求項のいずれかに記載のクロック分配システム。
【請求項１１】
前記領域のうちの少なくとも１つが機能ブロック（５０ｂ）に接続された２つ以上のバスノード（５３ｂ、５３ｃ、５３ｄ）を有し、前記バスノード（５３ｂ、５３ｃ、５３ｄ）の各々がほぼ等しいクロック挿入遅延時間（５５ｂ、５５ｃ、５５ｄ）を有し、前記バスノードのクロック挿入遅延時間（５５ｂ、５５ｃ、５５ｄ）が前記機能ブロック（５０ｂ）の前記クロック挿入遅延時間（５７）と異なっており、前記領域内のクロック信号が遅延バッファ（６５）を介して前記バスノード（５３ｂ、５３ｃ、５３ｄ）の各々にルーティングされる、前の請求項のいずれかに記載のクロック分配システム。
【請求項１２】
前記機能ブロック（５０ｂ）の前記クロック挿入遅延時間が前記遅延バッファ（６５）によって生じる遅延時間とそれぞれのバスノードによって生じる前記クロック挿入遅延時間（５５ｂ、５５ｃ、５５ｄ）との合計にほぼ等しい、請求項１１記載のクロック分配システム。
【請求項１３】
前記クロック信号が前記伝送バスに沿って各機能ブロックおよびバスノードに分配される、前の請求項のいずれかに記載のクロック分配システム。
【請求項１４】
集積回路上の複数の領域にクロック信号を分配する方法において、前記領域がバスによって接続されており、各領域が機能ブロックおよび少なくとも１つのバスノードを備えた、クロック信号を分配する方法において、
前記集積回路上の領域の間でクロックをずらすことできるようにする工程と、
前記集積回路上のそれぞれの領域内のクロックを同期化する工程とを備えた、クロック信号を分配する方法。
【請求項１５】
前記クロック信号が各機能ブロックおよびバスノードに分配されるようになっており、更に各機能ブロックおよびバスノードに所定のクロック挿入遅延時間を挿入する工程を更に備えた、請求項１４記載の方法。
【請求項１６】
少なくとも１つの領域内で機能ブロックに２つ以上のバスを接続する工程と、
前記バスノードのうちの第１ノードが直接前記機能ブロックに接続され、残りのバスノードが遅延デバイスを介して前記機能ブロックに接続されるよう、前記領域内に前記バスノードを配置する工程を更に備えた、請求項１４または１５記載の方法。
【請求項１７】
前記遅延デバイスがそれぞれのバスノードと機能ブロックとの間に設けられたクロックブリッジを備えた、請求項１６記載の方法。
【請求項１８】
前記クロックブリッジが前記機能ブロックの一部を形成する、請求項１７記載の方法。
【請求項１９】
前記第１バスノードが前記機能ブロックの中心部分に接続されている、接続されて１６〜１８のいずれかに記載の方法。
【請求項２０】
各機能ブロックのクロック挿入遅延時間と各バスノードのクロック挿入遅延時間とがほぼ等しい、請求項１５〜１９のいずれかに記載の方法。
【請求項２１】
機能ブロックまたはバスノードの前記クロック挿入遅延時間が別の機能ブロックまたはバスノードのクロック挿入遅延時間から所定の値だけオフセットされている、請求項１５〜１９のいずれかに記載の方法。
【請求項２２】
前記所定の値がクロック挿入遅延時間にＮ個のクロック周期（ここでＮは０または正の整数）を加えた値または引いた値に関連している、請求項２１記載の方法。
【請求項２３】
前記伝送バスに接続された最大機能ブロックのサイズに従って前記クロック挿入遅延時間が選択されている、請求項１４〜２２のいずれかに記載の方法。
【請求項２４】
少なくとも１つの領域において、機能ブロック（５０ｂ）に２つ以上のバスノード（５３ｂ、５３ｃ、５３ｄ）を接続する工程を更に備え、前記バスノード（５３ｂ、５３ｃ、５３ｄ）の各々がほぼ等しいクロック挿入遅延時間（５５ｂ、５５ｃ、５５ｄ）を有し、前記バスノードのクロック挿入遅延時間（５５ｂ、５５ｃ、５５ｄ）が前記機能ブロック（５０ｂ）のクロック挿入遅延時間（５７）と異なっており、
遅延バッファ（６５）を介して前記領域内のクロック信号を前記バスノード（５３ｂ、５３ｃ、５３ｄ）の各々にルーティングする工程を更に備えた、請求項１４〜２３のいずれかに記載の方法。
【請求項２５】
前記機能ブロック（５０ｂ）の前記クロック挿入遅延時間が前記遅延バッファ（６５）によって生じる遅延時間とそれぞれのバスノードによって生じる前記クロック挿入遅延時間（５５ｂ、５５ｃ、５５ｄ）との合計にほぼ等しい、請求項２４記載の方法。
【請求項２６】
前記クロック信号が前記伝送バスに沿って各機能ブロックおよびバスノードに分配される、請求項１４〜２５のいずれかに記載の方法。
【国際調査報告】
2004524617.tif 000049
2004524617.tif 000050
2004524617.tif 000051