(57)【要約】【課題】設計期間を短縮化でき、半導体集積回路内の電源ノイズおよび製品のＥＭＩ問題を軽減できること。【解決手段】階層化されたブロック間のインターフェースを、クロックとデータを同時に送るソースシンクロナスタイプにする。受信側ブロック２２の受信器２４にメソクロナスタイプの同期化回路を構成するクロック位相検出器２７と、ＶＤＬ２８を備え、ブロック間インターフェースのデータをセットアップ／ホールド違反なしに受信し、受信側ブロック２２の内部回路に転送する。【選択図】図２
2007274049.tif 000002
【特許請求の範囲】
【請求項１】
階層化されたブロック間のインターフェースを、クロックとデータを同時に送るソースシンクロナスタイプにしたことを特徴とする半導体集積回路。
【請求項２】
受信側の前記ブロックにメソクロナスタイプの同期化回路を備え、前記インターフェースのデータをセットアップ／ホールド違反なしに受信し、受信側の前記ブロックの内部回路に転送することを特徴とする請求項１に記載の半導体集積回路。
【請求項３】
前記ブロック間の前記インターフェースに、前記クロックに同期したＤＤＲ、あるいはＱＤＲを用い、当該ブロック間インターフェース信号数を少なくしたことを特徴とする請求項１に記載の半導体集積回路。
【請求項４】
前記ブロックをそれぞれ独立のクロックで動作させ、当該ブロックにそれぞれ位相の異なるクロックを与える遅延手段を備え、回路全体の１クロック内の消費電力の差を平坦化させることを特徴とする請求項１〜３のいずれか一つに記載の半導体集積回路。
【請求項５】
階層化されたブロック間のインターフェースを、クロックとデータを同時に送るソースシンクロナスタイプとして設計することを特徴とする半導体集積回路設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、大規模半導体集積回路の設計期間の短縮と、電源電圧が低下する将来の半導体集積回路において問題となる大規模半導体集積回路内の電源ノイズを低減でき、信頼性の向上とＥＭＩ低減が図れる半導体集積回路および半導体集積回路設計方法に関する。
【背景技術】
【０００２】
従来、半導体集積回路の設計は以下の手法により行っていた。
１）大規模な半導体集積回路を設計する場合、既存のＩＰマクロ（例えば他社から購入したブラックボックスになっているマクロブロック）を組み込む場合など、半導体集積回路を階層化して下層ブロックと、その下層ブロックを結線する上層のＴＯＰレベルに分けて設計することが普通である。この場合、各下層ブロック内のＦＦに到達するクロック遅延を可能な限り等しくし、半導体集積回路内の全ＦＦ間のクロックスキューをできるだけ小さくすることが行われている。半導体集積回路全体のクロックスキューをできるだけ小さく設計するために、まずブロック内の物理設計を行い、ブロック内部のクロック遅延を決定し、それをＴＯＰレベルのクロック配線遅延にフィードバックするといった手法が取られている（例えば、下記特許文献１参照。）。
【０００３】
２）一方、半導体集積回路内のクロックサイクル内の消費電力の解析により、クロック系に含まれる数多くの消費電力の大きいクロックドライバーと、クロックが到達した直後に動作するＦＦの消費電力によって、チップ全体の消費電力の１／３以上が消費されており、その後次第に消費電力が低下し、クロックサイクルの後半は殆ど消費電力がないという現象があることがわかっている。ＦＦは、クロックが入る度に電力を消費しており、またＦＦ間の論理パスの遅延の分布を取ると、遅延の短いもの程多く、クロックサイクルの半分を超えるような遅延時間の比較的長いものはかなり少数なので、このような消費電力パターンになる。
【０００４】
【特許文献１】特開平５−６１５６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術による上記１）の階層化設計の場合、ＴＯＰレベルを通過するブロック間配線のタイミング収束が最も困難である。例えばブロック間の距離が遠く、論理設計者の想定外の配線遅延がかかってしまう場合など、中継ＦＦの追加などの論理設計変更か、ブロックの配置を変更するといったＦｌｏｏｒ−Ｐｌａｎ変更の必要が発生し、論理設計／検証、あるいは物理設計の期間が長期化してしまうといった問題がある。
【０００６】
また、上記２）による結果、大規模な半導体集積回路内の各ＦＦのクロック入力スキューをできるだけ小さくした場合、クロックが多数のＦＦに同時に到達することになり、その近辺の時間で半導体集積回路内の消費電力が極大になり、次第に消費電力が低下し、次のクロックエッジ到着の少し前には消費電力は極小になる。それが大きな電源電圧の揺れ（電源ノイズ）となり、誤動作やＥＭＩ（ＥＬＥＣＴＲＯＭＡＧＮＥＴＩＣ  ＩＮＴＥＲＦＥＲＥＮＣＥ）の最大の発生源になっている。
【０００７】
これらの問題を防ぐために、電源ノイズに対しては設計時に電源ノイズに対応できるような十分な電源マージンを加味する必要があり、そのために物理設計期間の長期化、また半導体集積回路内にコンデンサを搭載することによる半導体集積回路サイズアップによる半導体集積回路のコストアップという問題が生じる。さらに、ＥＭＩに関しては、パッケージ／プリント基板に多量のコンデンサを搭載して問題を解決しようとすると、製品のコストアップを招くという問題が生じる。
【０００８】
この発明は、上述した従来技術による問題点を解消するため、設計期間を短縮化でき、半導体集積回路内の電源ノイズおよび製品のＥＭＩ問題を軽減できる半導体集積回路および半導体集積回路設計方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するため、この発明にかかる半導体集積回路は、階層化されたブロック間のインターフェースを、クロックとデータを同時に送るソースシンクロナスタイプにしたことを特徴とする。
【００１０】
また、受信側の前記ブロックにメソクロナスタイプの同期化回路を備え、前記インターフェースのデータをセットアップ／ホールド違反なしに受信し、受信側の前記ブロックの内部回路に転送することを特徴とする。
【００１１】
また、前記ブロック間の前記インターフェースに、前記クロックに同期したＤＤＲ（Ｄｏｕｂｌｅ−Ｄａｔａ−Ｒａｔｅ）、あるいはＱＤＲ（Ｑｕａｄ−Ｄａｔａ−Ｒａｔｅ）を用い、当該ブロック間インターフェース信号数を少なくしたことを特徴とする。
【００１２】
また、前記ブロックをそれぞれ独立のクロックで動作させ、当該ブロックにそれぞれ位相の異なるクロックを与える遅延手段を備え、回路全体の１クロック内の消費電力の差を平坦化させることを特徴とする。
【００１３】
また、この発明にかかる半導体集積回路設計方法は、階層化されたブロック間のインターフェースを、クロックとデータを同時に送るソースシンクロナスタイプとして設計することを特徴とする。
【００１４】
上記構成によれば、階層化設計において下位ブロック間のインターフェースタイミング制約を取り去ることができ、設計期間の短期化が可能となる。また、クロックの位相をブロック毎に意図的に変更できる。
【発明の効果】
【００１５】
本発明にかかる半導体集積回路および半導体集積回路の設計方法によれば、ブロック間インターフェース信号を１サイクル以内で転送するという制約を外すことができるため、回路設計期間を短縮化できるという効果を奏する。また、意図的に各ブロック内ＦＦが動作する時間をずらすことができるため、半導体集積回路全体としてクロックサイクル内の消費電力の極大／極小を平準化でき、半導体集積回路内電源ノイズ問題、製品化時におけるＥＭＩ問題を軽減できるという効果を奏する。
【発明を実施するための最良の形態】
【００１６】
以下に添付図面を参照して、この発明にかかる半導体集積回路および半導体集積回路設計方法の好適な実施の形態を詳細に説明する。
【００１７】
（発明の概要）
半導体集積回路は、複数の下位ブロックとそれら複数の下位ブロックを包含する上位レベルのブロックとにより構成し、下位ブロック間のインターフェース信号をソースシンクロナスタイプとして設計する。すなわち、送信側ブロックは送信側ブロックのクロックと共に制御信号／データを送り、受信側ブロックは受信したクロックで一旦受信データをラッチしてから受信側ブロック内部クロックの位相をあわせてブロック内部に送出するための受信回路を持つ。
【００１８】
加えて、初期化中にトレーニングパターンを使うことにより、クロックなしで受信側下位ブロックがブロック間インターフェース信号の変化点からクロックを抽出し（ＣＤＲ：Ｃｌｏｃｋ−Ｄａｔａ−Ｒｅｃｏｖｅｒｙ）、前述のソースシンクロナス転送時と同様にデータ転送を行う。また、半導体集積回路全体からみて各下位ブロック内ＦＦにクロックが到達する時間をずらし、下位ブロック単位でクロック遅延の調整を可能とし、半導体集積回路の電源ノイズ／ＥＭＩを削減させる。
【００１９】
（実施の形態）
（半導体集積回路の構成）
図１は、本発明の実施の形態による半導体集積回路の構成例を示す図である。図１に示す半導体集積回路１０は、内部に複数の下位ブロックＢＬＫ１〜ＢＬＫ５（１１−１〜１１−５）とクロック生成回路１４を含み、クロック生成回路１４は、クロックを各下位ブロック（１１−１〜１１−５）に配っている。各下位ブロック（１１−１〜１１−５）は、内部にコア論理（１２−１〜１２−５）と、クロックツリー（１３−１〜１３−５）を含んでおり、各クロックツリー（１３−１〜１３−５）は、クロック生成回路１４から伝達されたクロックを、各ブロック内のコア論理（１２−１〜１２−５）内に存在するＦＦ群（図１中では省略）に対して低スキューで伝達する機能を有する。
【００２０】
また、各ブロックのコア論理（１２−１〜１２−５）は、ソースシンクロナス送信器（１６−１−５，１６−５−１，１６−５−３，１６−３−５）、ソースシンクロナス受信器（１５−１−５，１５−５−１，１５−５−３，１５−３−５）以外の全ての論理を含み、従来の階層化設計の下位ブロックの概念に相当する。
【００２１】
ＢＬＫ１（１１−１），ＢＬＫ３（１１−３），ＢＬＫ５（１１−５）には、ソースシンクロナス送信器（１６−１−５，１６−５−１，１６−５−３，１６−３−５）と、ソースシンクロナス受信器（１５−１−５，１５−５−１，１５−５−３，１５−３−５）を含み、これらの３つの下位ブロック（ＢＬＫ１（１１−１），ＢＬＫ３（１１−３），ＢＬＫ５（１１−５））間は、ブロック間クロックとデータ／制御信号（１８−１５，１８−３５）が配線されている。ＢＬＫ２（１１−２）と、ＢＬＫ３（１１−３）の間にはデータ／制御信号のみが配線されている。
【００２２】
図１に示す例では、ＢＬＫ１（１１−１）と、ＢＬＫ５（１１−５）間、ＢＬＫ３（１１−３）とＢＬＫ５（１１−５）間、およびＢＬＫ２（１１−２）とＢＬＫ３（１１−３）のみブロック間信号が限定されて描かれているが、実際には他のブロック間ともブロック間信号があり、それらは図１では省略されている。
【００２３】
ＢＬＫ２（１１−２）とＢＬＫ３（１１−３）は、同じクロックがクロック生成回路１４から供給され、これらの２つの下位ブロックは同期して動作しており、そのため両下位ブロック間のインターフェースは、従来型の同期ブロック間インターフェース１７となっている。一方、ＢＬＫ１（１１−１）と、ＢＬＫ５（１１−５）、およびＢＬＫ３（１１−３）とＢＬＫ５（１１−５）は、クロック生成回路１４から個別のクロックが供給されており、これらのクロックは同じ周波数ではあるが異なる位相を持つメソクロナスタイプとなっている。
【００２４】
これらソースシンクロナス送信器（１６−１−５，１６−５−１，１６−５−３，１６−３−５）と、ソースシンクロナス受信器（１５−１−５，１５−５−１，１５−５−３，１５−３−５）を持つ下位ブロック（１１−１，１１−３，１１−５）へのクロックの位相は全くの任意でよく、各下位ブロック（１１−１，１１−３，１１−５）内のＦＦへのクロック到着時間を大きくずらすことにより、半導体集積回路１０のクロックサイクルレベルでの消費電力を分散させることができ、半導体集積回路１０を構成する各ＣＭＯＳトランジスタ素子のスイッチング動作を分散／均一化することにより電源安定用コンデンサに頼らなくとも半導体集積回路１０の消費電力の均一化が可能になり電源ノイズを削減できる。
【００２５】
（送信器／受信器の構成例１…送信クロックが反転の場合）
以下、図１に示した半導体集積回路に設けられる送信器および受信器の各構成例について説明する。図２は、本発明の送信器／受信器の一例を示す構成図である。図２においては、送信クロックを反転する場合（データが安定してからクロックの立ち上がりエッジが受信側ブロックに到着する）の例を示してある。
【００２６】
送信側ブロック２１は、送信器２３を含み、送信器２３は、その中に送信側ＦＦ群（ポジティブエッジのＦＦ群）２５と、ＢＬＫ内クロックを反転して出力するインバータ２６を含む。この構造により、データの変化点におけるクロックはダウンエッジとなり、受信側ブロック２２が送信側ブロック２１からブロック間クロックとブロック間データを受信した時点では、クロックのポジティブエッジではデータは安定している。よって受信ＦＦ群１（２９−１）では、送信側ブロック２１から伝播してくるブロック間クロックを使って、送信側ブロック２１から伝播してくるブロック間データをラッチできる。
【００２７】
受信側ブロック２２は、受信器２４を含み、受信器２４は、その中に同期化回路を構成するクロック位相検出器２７と、その制御下にあるＶａｒｉａｂｌｅ−Ｄｅｌａｙ−Ｌｉｎｅ（ＶＤＬ）２８からなる。クロック位相検出器２７は、送信側ブロック２１が送ってきたブロック間クロックと、受信側ブロック２２内クロックの位相を検出し、受信ＦＦ群２（２９−２）がセットアップ／ホールドタイミング違反を起こさないようなクロックをＶＤＬ２８で作成させ、受信ＦＦ群２（２９−２）で一度ラッチしたあと、受信側ブロック２２内クロックを使用する受信ＦＦ群３（２９−３）にデータを渡す。
【００２８】
（送信器／受信器の構成例２…送信クロックを反転させない場合）
図３は、本発明の送信器／受信器の一例を示す構成図である。図３の構成は、図２とほぼ同じであるが、送信側ブロック３１が出力するクロックのポジティブエッジがデータの変化点と同じ（送信クロックを反転させない）例である。
【００２９】
送信側ブロック３１は、送信側ＦＦ群３５と、バッファ３６を含む。送信器３３内のクロックは、バッファ３６を介して受信側ブロック３２に出力されている。受信側ブロック３２内の受信器３４においては、まず入力されたブロック間クロックを受信側ブロック３２内クロックとクロック位相検出器３７によってその位相関係を検出し、ＶＤＬ３８によって受信ＦＦ群１（３９−１）用のクロックと、受信ＦＦ群２（３９−２）用のクロックが作られる。受信ＦＦ群１（３９−１）用のクロックとしては、通常ブロック間クロックとして受信したクロックを反転したものを与える。また、受信ＦＦ群２（３９−２）用のクロックとしては、受信ＦＦ群１（３９−１）と、ＢＬＫ内クロックを使用する受信ＦＦ群３（３９−３）の間でセットアップ／ホールド違反が出ないタイミングになるように調整されたクロックを与える。これにより、受信側ブロック３２では、セットアップ／ホールド違反なしに受信でき、この受信側ブロック３２の内部回路に転送することができる。
【００３０】
（受信器の構成例３…ブロック間のクロック位相差がわかっている場合１）
図４は、本発明の受信器の一例を示す構成図である。上記の図２、図３の構成例は、送信側ブロックと、受信側ブロック間でクロックの位相が全く保証されていない場合の回路であったことに対して、図４の構成は、送信側ブロック（省略）と、受信側ブロック４１の２つのクロックの位相関係がある程度限定されてわかっている場合の例である。
【００３１】
図２、図３の構成では受信側ブロックが３段のＦＦ群でデータを同期化していたのに対して、図４の構成では、クロック位相検出器４３と、ＶＤＬ４４により、送信側ブロックからのクロックと、受信側ブロック４１内クロックの相関関係を物理設計時にある範囲に絞り込むことによって、受信器４２内の受信ＦＦ群１（４５−１）と、受信ＦＦ群２（４５−２）の２段のＦＦでデータを受領できるようになっている。上記の「送信側ブロックからのクロックと受信側ブロック４１内クロックの相関関係を物理設計時にある範囲に絞り込む」ことによる、クロックの調整の範囲は、完全同期の場合に比べて格段に自由度が高く容易に行える。
【００３２】
（受信器の構成例４…ブロック間のクロック位相差がわかっている場合２）
図５は、本発明の受信器の一例を示す構成図である。図５の構成も、送信側ブロック（省略）と、受信側ブロック５１の２つのクロックの位相関係がある程度限定されてわかっている場合の例である。受信側ブロック５１内のクロックは、受信ＦＦ群２（５５−２）と、クロック位相検出器５３に供給される。図４が受信ＦＦ群１（４５−１）に与えるクロックを受信側ブロック４１のクロックから生成していたのに対して、図５の構成では、送信側ブロックからのＣＬＫを受信器５２内のＶＤＬ５４で遅らせて受信ＦＦ群１（５５−１）用のクロックを作っている点が異なる。
【００３３】
（送信器／受信器の構成例５…ＤＤＲを用いる場合１）
図６−１は、本発明の送信器／受信器の一例を示す構成図である。図６−１に示す構成では、上述した構成と同様にブロック間インターフェースとしてソースシンクロナスインターフェースを使うが、ブロック間クロックのポジティブエッジとネガティブエッジの両エッジを使って転送を行うＤＤＲ（Ｄｏｕｂｌｅ−Ｄａｔａ−Ｒａｔｅ）を使う場合の例である。
【００３４】
また、図６−２は、図６−１の構成によるデータ転送のタイムチャートである。送信側ブロック６１におけるパラレルデータのＤ０とＤ１は、ブロック間インターフェース６０部分では倍速でシリアルかつクロックのＵｐ／Ｄｏｗｎエッジと同期して転送され、受信側ブロック６２で再度パラレル化されるという送信／受信側ブロック論理例となっている。
【００３５】
図６−１における送信側ブロック６１中の送信器６３は、マルチプレクサ６６−２を有し、ブロック内クロックを使用して送信側ＦＦ群ｅｖｅｎ用（６５−０）と、送信側ＦＦ群ｏｄｄ用（６５−１）からのデータを選択し、クロックのＵｐ／Ｄｏｗｎに同期したデータを作り、受信側ブロック６２に対して送出する。その際、送信側ブロック６１内のクロックもバッファ６６−１を経て同時に送られる。これによって、ブロック間インターフェース６０の部分は、図６−２のタイムチャートに示すように、クロックの両エッジに同期した倍速データになる。
【００３６】
受信側ブロック６２内の受信器６４にはクロック位相検出器６７と、ＶＤＬ６８の他に、受信ＦＦ群のｅｖｅｎ用の３セット（６９−０−１，６９−０−２，６９−０−３）と、受信ＦＦ群のｏｄｄ用の４セット（６９−１−１，６９−１−２，６９−１−３，６９−１−４）がある。受信側ブロック６２に到達したブロック間クロックは、ＶＤＬ６８と、クロック位相検出器６７に伝達され、ＶＤＬ６８は受信ＦＦ群ｅｖｅｎ３（６９−０−３）と受信ＦＦ群ｏｄｄ４（６９−１−４）以外のＦＦ群（６９−０−１，６９−０−２，６９−１−１，６９−１−２，６９−１−３）のクロックを作成する。
【００３７】
受信ＦＦ群ｅｖｅｎ１（６９−０−１）は受信したブロック間クロックを９０°遅延させたクロックを、また、受信ＦＦ群ｏｄｄ１（６９−１−１）はさらにそれを反転させたクロックを使う。受信ＦＦ群ｏｄｄ２（６９−１−２）は、１８０°ずれているデータをｅｖｅｎ側と同じクロックを使ってｅｖｅｎ側クロックに同期させるために使われる。その後の受信ＦＦ群ｅｖｅｎ２（６９−０−２）、受信ＦＦ群ｅｖｅｎ３（６９−０−３），受信ＦＦ群ｏｄｄ３（６９−１−３），受信ＦＦ群ｏｄｄ４（６９−１−４）は、図３の受信ＦＦ群２（３９−２）と受信ＦＦ群３（３９−３）と機能的に同じであり、受信側ブロック６２のクロックに位相を合わせるために使われている。
【００３８】
（送信器／受信器の構成例６…ＤＤＲを用いる場合２）
図７は、本発明の送信器／受信器の一例を示す構成図である。図７に示す構成は、図６−１と同じＤＤＲを使うブロック間インターフェースであり、図６−１と同じ構成部には同じ符号を付してある。図７において、図６−１と異なる点は、送信側ブロック７１の送信器７３には、送出クロック９０°位相シフター７６−１が設けられており、出力するクロックがすでに９０°位相がずれているため、ブロック間インターフェース６０上のデータウィンドウの中心にブロック間クロックのＵｐ／Ｄｏｗｎのエッジがくることである。そのため、受信側ブロック７２内の受信器７４では、受信したブロック間クロックをそのまま受信ＦＦ群ｅｖｅｎ１（６９−０−１）に使用しており、さらに受信したブロック間クロックを反転したクロックを受信ＦＦ群ｏｄｄ１（６９−１−１）のクロックとして使用している。図６−１と、図７の構成では、このクロック構造だけが異なる。
【００３９】
（送信器／受信器の構成例７…ＱＤＲを用いる場合）
図８−１は、本発明の送信器／受信器の一例を示す構成図である。また、図８−２は、図８−１の構成によるデータ転送のタイムチャートである。図８−１に示す構成は、１クロックで４つ分のデータを送るＱｕａｄ−Ｄａｔａ−Ｒａｔｅ（ＱＤＲ）の場合の例である。送信側ブロック８１は、送信器８３を有し、その中には送信側ＦＦ群０〜３（８５−０〜８５−３）が設けられ、その出力先に４：１のマルチプレクサ８６−２が設けられる。このマルチプレクサ８６−２は、マルチプレクサ用選択信号生成回路８６−３によって制御されている。
【００４０】
マルチプレクサ用選択信号生成回路８６−３は、送信側ブロック８１のクロックの４倍スピードで０→１→２→３→０といったサイクリックな選択信号をマルチプレクサ８６−２に伝え、４ビットの入力を４倍スピードの１ビットにシリアライズする。この４倍スピードのサイクリックな選択信号は、マルチプレクサ用選択信号生成回路８６−３内で４倍のクロックをベースに作ってもよいし、あるいは外部からマルチプレクサ用選択信号生成回路８６−３に４倍クロックを入力してもよい。ただし、Ｄ０が送出クロックの立ち上がりと同期し、ブロック間インターフェース８０上ではブロック間クロックの立ち上がりがＤ０であることを示さねばならない。
【００４１】
受信側ブロック８２の構造については、基本的には図６−１および図７に示したＤＤＲの構成例と同じであるが、図８−１の構成例では、受信器８４に設けられた受信用クロック／ラッチイネーブル生成回路８７−２が初段の受信ＦＦ群（８９−０−０，８９−１−０，８９−２−０，８９−３−０）への４倍クロックとイネーブル信号を生成している。送信側ブロック８１のマルチプレクサ用選択信号生成回路８６−３と同様に、受信用クロック／ラッチイネーブル生成回路８７−２が４倍のクロックとその周波数で動作するラッチイネーブル信号を内部で作ってもよいし、外部から基準となる４倍のクロックをもらってもよい。
【００４２】
そして、受信用クロック／ラッチイネーブル生成回路８７−２は、ブロック間クロックの位相情報を元に、４倍速のデータをうまく受けられる４倍のクロックと、ブロック間クロックの立ち上がり時に転送されてくるデータをＤ０として、さらに次の４倍クロックでＤ１、その次がＤ２と、４倍速で送られてくるデータを受領できるラッチイネーブルを作成する機能を有する。初段の受信ＦＦ群８９−０−０，８９−１−０，８９−２−０，８９−３−０）にＤ０からＤ３までが全て格納されたサイクルで、次段のＦＦ群（８９−０−１，８９−１−１，８９−２−１，８９−３−１）にクロックを与え、４ビットのデータをパラレル化された１クロックのデータとして取り込む。
【００４３】
その後、受信側ブロック８２のクロックに同期させて受信側ブロック８２内にデータを送り出す。ここでも、通信を行う送信側ブロック８１と、受信側ブロック８２のクロックが全くの自由な位相関係を保てるようにするために、３段目のＦＦ群（８９−０−２，８９−１−２，８９−２−２，８９−３−２）と、４段目のＦＦ群（８９−０−３，８９−１−３，８９−２−３，８９−３−３）を設けてある。
【００４４】
以上のように、ブロック間インターフェースに、クロックに同期したＤＤＲ、あるいはＱＤＲを用いることにより、ブロック間インターフェースの信号数を少なくすることができる。
【００４５】
（送信器／受信器の構成例８…ＣＤＲを用いる場合）
図９は、本発明の送信器／受信器の一例を示す構成図である。図９に示す構成は、上述したようなクロックとデータを同時に送信するソースシンクロナスとは異なるクロックデータリカバリ（ＣＤＲ）の例である。ＱＤＲよりさらに高速にデータを送りたい場合などは、回路的にクロック信号とデータ信号の関係を正しく保つことが難しくなる。そこで、データの中にクロック信号を埋め込むクロックデータリカバリの手法が用いられる。
【００４６】
以下の例では、ＱＤＲ相当の４倍速のデータを受領する場合のＣＤＲ回路の例を説明するが、当然、より早いデータレートでも対応可能である。シリアル化されたデータが受信器９０に入ってくると、複数の異なったラッチタイミングを持つＦＦ群（９１−０〜９１−８）でデータを取り込む。この複数の異なったラッチタイミングは、最適ＣＬＫ生成回路９２によってタイミングの異なるクロックが供給されることによって達成される。この例では、１サイクルの１／８毎ずれているクロックを供給している。
【００４７】
入力されたＤａｔａ＿ｉｎがこの複数のＦＦでラッチされるので、Ｄａｔａ＿ｉｎが変化すると、いずれかのＦＦ群（９１−０〜９１−８）のどこかで変化が観測される。その変化を観測するのが入力データ位相検出用エッジ検出回路９３である。この入力データ位相検出用エッジ検出回路９３内のＥＯＲ９４−０〜９４−７によって変化点を検出し、ヒステリシスを持ったエッジ検出回路９５でその変化点の場所を記憶する。ヒステリシスを持つ理由は、検出された変化点が頻繁に変動することを防ぐためである。
【００４８】
図９の例において、ＦＦ群９１−２と、９１−３との間で変化が観測されたとすると、入力データ位相検出用エッジ検出回路９３は、そこから遠いＦＦ９１−８が最も安定している場所であると最適ＣＬＫ生成回路９２に伝達し、最適ＣＬＫ生成回路９２は、ＦＦ９１−８の出力が選択されるようにセレクタ９６に指示を与える。
【００４９】
このあとは、図８の説明とほぼ同じ動作により、最適ＣＬＫ生成回路９２が４倍のクロックを作り、それに対応するラッチイネーブルを生成することにより、初段のＦＦ群（９９−０−０，９９−０−１，９９−０−２，９９−０−３）にデータが取り込まれる。これら４つの初段ＦＦ群（９９−０−０，９９−０−１，９９−０−２，９９−０−３）にデータが格納された時点で、次段のＦＦ群（９９−１−０，９９−１−１，９９−１−２，９９−１−３）にデータが転送され、さらに受信側クロックに同期するためにさらに３段目のＦＦ群（９９−２−０，９９−２−１，９９−２−２，９９−２−３）と、４段目のＦＦ群（９９−３−０，９９−３−１，９９−３−２，９９−３−３）を経て、受信側ブロック内にデータが送られる。ただし、ＤＤＲ／ＱＤＲの場合と異なり、シリアライズされたデータのどれがパラレルデータ時の先頭にあたるかが上記回路だけではわからないため、通常はトレーニングパターンなどを使ってその検出を行うようになっている（具体的な回路は省略する）。
【００５０】
以上のように、ＣＤＲ方式によれば、ＤＤＲやＱＤＲに比して、よりブロック間インターフェース信号を少なくすることができる。
【００５１】
（受信器の構成例９…受信データビット間のクロックサイクルずれを解消する例）
図１０は、本発明の受信器の一例を示す構成図である。半導体集積回路内でソースシンクロナスのインターフェースを作る場合に、できるだけクロックとデータを並べて同じドライブ能力、同じ配線長／配線層とし、その伝播遅延誤差を小さくすることが行われている。しかし、それができず、ビットによってタイミングずれが発生してしまう場合に、そのずれを解消する回路の例である。受信側ブロック１００には、上記の各構成例として説明したいずれかの受信器１０１が配置される。そして、図１０に示すように、受信側ブロック１００内には、受信器１０１のすぐ内側にビットアライメントブロック１０２を追加する。
【００５２】
このビットアライメントブロック１０２は、トレーニングモード（ｔｒａｉｎｉｎｇ＿ｍｏｄｅ）を用いる。このため、送信側ブロックには、ｔｒａｉｎｉｎｇ＿ｍｏｄｅ中においては全出力データビットがＨｉｇｈになる１サイクルと、７サイクルの間全出力データビットがＬｏｗになる機能を付加する。受信側ブロック１００では、受信器１０１から出力された受信データをビットアライメント制御ブロック１０３に取り込み、ビットずれがあるかないかを検出する。そして、ビットアライメント制御ブロック１０３は、１ビットずれが検出された場合には、早く到着したビットはＦＦ（１０４−０〜１０４−３）に一度取り込んで１サイクル遅らせ、次サイクルに到着したデータは直接出力するようにマルチプレクサ（１０５−０〜１０５−３）をコントロールする。これによって、ビットずれのアライメントを取ることができる。ビットアライメント制御ブロック１０３のブロック内に記載したサンプルコードは、この回路の制御論理例（制御ソフトウェア）である。上記構成によれば、トレーニングパターンを使い、ビットずれを自動的に修正することができる。
【００５３】
以上説明した各構成例によれば、半導体集積回路を階層化設計する場合に、各下位ブロック内にメソクロナスタイプ（周波数は同じで、位相のみが不明の場合）のソースシンクロナス受信回路を設置し、送信側下位ブロックは、自クロックと共にデータ／制御信号を送出し、受信側下位ブロックはメソクロナスタイプのソースシンクロナス受信回路でこれらクロック／データ／制御信号を受信する構成とした。これにより、各下位ブロック単位にタイミング設計を独立に終了でき、下位ブロックを包含する上位ブロックは各下位ブロックのタイミングを気にすることなくブロック間のインターフェース信号群の送信クロックとデータ／制御信号の相対遅延（すなわちソースクロックとデータ／制御信号間のＳｋｅｗ）のみをある一定の範囲に入るように設計しさえすれば上位ブロックの設計を終了でき、半導体集積回路全体は上位ブロックに下位ブロックをはめ込めば設計が終了でき、下位ブロックと上位ブロックを完全に別に設計することにより設計期間の短縮が可能になる。
【００５４】
（半導体集積回路内のブロック毎のクロックの制御例１）
図１１は、本発明の半導体集積回路内のブロック毎にクロックを制御する構成図である。上述した各構成により、半導体集積回路１１１の下位ブロックであるＢＬＫ０〜ＢＬＫ９（１１６−０〜１１６−９）のクロックを任意にずらせるようになった場合に、どのようにクロックをずらすかを図１１に示す。クロックに任意に遅延を与える方法としては、クロック生成回路１１２の中のＰＬＬ１１４や、ＤＬＬ／ＶＤＬ１１５によって意図的な遅延を付加させる。あるいは、クロック生成回路１１２の内部に遅延素子１１３−１、あるいは下位ブロックＢＬＫ１（１１６−１）の上位ブロックとして遅延素子１１３−２を配置する。
【００５５】
（半導体集積回路内のブロック毎のクロックの制御例２）
図１２は、本発明の半導体集積回路内のブロック毎にクロックを制御する構成図である。この図１２の構成では、下位ブロックのクロック制御方法例と電源ノイズ削減においてインテリジェンス機能を持たせて行う場合の例である。半導体集積回路１２１内には、複数の電源ノイズ測定回路１〜５（１２５−１〜１２５−５）を配置する。そして、クロック生成回路１２２内のＶＤＬ１２３−１〜１２３−４によって遅延をつけたクロックで複数の下位ブロックＢＬＫ１〜ＢＬＫ４（１２６−１〜１２６−４）を動作させたときに、電源ノイズ測定回路１〜５（１２５−１〜１２５−５）によって検出される電源ノイズが小さくなるように、クロック遅延制御回路１２４でＶＤＬ１２３−１〜１２３−４を制御する。
【００５６】
上記制御例１、２の構成によれば、上位ブロックの下位ブロックへのクロック配線時において、各下位ブロックに与えるクロックに意図的に異なるクロック遅延を与え、各下位ブロック内のＦＦが別のタイミングで動作させることにより、半導体集積回路全体としてのＦＦの動作時期をずらすことができる。これにより、消費電力極大時と極小時の差を全ての半導体集積回路内のＦＦが全て同時に動作する場合に比較して平坦化／削減できるようになる。同時に、半導体集積回路の電源ノイズの低下とＥＭＩ低減が可能になるため、従来必要としていた電源ピン数とオンチップコンデンサ分の面積が削減でき、半導体集積回路のサイズを小さくすることができ、半導体集積回路のコストダウンが可能になる。さらに、従来半導体集積回路が搭載されていたパッケージ／プリント基板上に実装されていた電源ノイズ／ＥＭＩ対策用の外付けのバイパスコンデンサの数も削減できるため、パッケージ／プリント板モジュールのコスト削減も可能となる。
【００５７】
以上説明した半導体集積回路の構成は、この半導体集積回路の設計時に決定することができる。この半導体集積回路の設計にかかる方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【００５８】
（付記１）階層化されたブロック間のインターフェースを、クロックとデータを同時に送るソースシンクロナスタイプにしたことを特徴とする半導体集積回路。
【００５９】
（付記２）受信側の前記ブロックにメソクロナスタイプの同期化回路を備え、前記インターフェースのデータをセットアップ／ホールド違反なしに受信し、受信側の前記ブロックの内部回路に転送することを特徴とする付記１に記載の半導体集積回路。
【００６０】
（付記３）前記ブロック間の前記インターフェースに、前記クロックに同期したＤＤＲ（Ｄｏｕｂｌｅ−Ｄａｔａ−Ｒａｔｅ）、あるいはＱＤＲ（Ｑｕａｄ−Ｄａｔａ−Ｒａｔｅ）を用い、当該ブロック間インターフェース信号数を少なくしたことを特徴とする付記１に記載の半導体集積回路。
【００６１】
（付記４）送信側の前記ブロックと、受信側の前記ブロックをメソクロナスタイプとし、クロックラインを使わずに前記データにクロックを埋め込むＣＤＲ（Ｃｌｏｃｋ−Ｄａｔａ−Ｒｅｃｏｖｅｒｙ）方式を用い、ブロック間インターフェース信号を少なくしたことを特徴とする付記１に記載の半導体集積回路。
【００６２】
（付記５）前記ブロック間のインターフェースとして高速なソースシンクロナスインターフェースを用い、
受信側の前記ブロックには、所定のトレーニングパターンによりビットずれを修正するビットアライメント手段を備えたことを特徴とする付記１に記載の半導体集積回路。
【００６３】
（付記６）前記ブロックをそれぞれ独立のクロックで動作させ、当該ブロックにそれぞれ位相の異なるクロックを与える遅延手段を備え、回路全体の１クロック内の消費電力の差を平坦化させることを特徴とする付記１〜５のいずれか一つに記載の半導体集積回路。
【００６４】
（付記７）階層化されたブロック間のインターフェースを、クロックとデータを同時に送るソースシンクロナスタイプとして設計することを特徴とする半導体集積回路設計方法。
【産業上の利用可能性】
【００６５】
以上のように、本発明にかかる半導体集積回路および半導体集積回路設計方法は、多数のＦＦを用いた大規模な集積回路におけるブロック間のタイミング収束に有用であり、特に、多数のＦＦを用いたＬＳＩ設計に適している。
【図面の簡単な説明】
【００６６】
【図１】本発明の実施の形態による半導体集積回路の構成例を示す図である。
【図２】本発明の送信器／受信器の一例を示す構成図である。
【図３】本発明の送信器／受信器の一例を示す構成図である。
【図４】本発明の受信器の一例を示す構成図である。
【図５】本発明の受信器の一例を示す構成図である。
【図６−１】本発明の送信器／受信器の一例を示す構成図である。
【図６−２】図６−１の構成によるデータ転送のタイムチャートである。
【図７】本発明の送信器／受信器の一例を示す構成図である。
【図８−１】本発明の送信器／受信器の一例を示す構成図である。
【図８−２】図８−１の構成によるデータ転送のタイムチャートである。
【図９】本発明の送信器／受信器の一例を示す構成図である。
【図１０】本発明の受信器の一例を示す構成図である。
【図１１】本発明の半導体集積回路内のブロック毎にクロックを制御する構成図である。
【図１２】本発明の半導体集積回路内のブロック毎にクロックを制御する構成図である。
【符号の説明】
【００６７】
１０  半導体集積回路
１１−１〜１１−５  下位ブロック（ＢＬＫ１〜ＢＬＫ５）
１２−１〜１２−５  コア論理
１３−１〜１３−５  クロックツリー
１４  クロック生成回路
１５−１−５，１５−５−１，１５−５−３，１５−３−５  ソースシンクロナス受信器
１６−１−５，１６−５−１，１６−５−３，１６−３−５  ソースシンクロナス送信器
１７  同期ブロック間インターフェース
【図１】
2007274049.tif 000003
【図２】
2007274049.tif 000004
【図３】
2007274049.tif 000005
【図４】
2007274049.tif 000006
【図５】
2007274049.tif 000007
【図６−１】
2007274049.tif 000008
【図６−２】
2007274049.tif 000009
【図７】
2007274049.tif 000010
【図８−１】
2007274049.tif 000011
【図８−２】
2007274049.tif 000012
【図９】
2007274049.tif 000013
【図１０】
2007274049.tif 000014
【図１１】
2007274049.tif 000015
【図１２】
2007274049.tif 000016