(57)【要約】【課題】半導体装置の製造ばらつきや経年劣化に起因するクロックスキューを補正することができる半導体装置を提供する。【解決手段】スキュー検出部６は、スキューを検出するための少なくとも１個のクリティカルパス７又はレーシングパス７を含む。クロック調整部５は、スキュー検出部６により検出されたスキューに基づいて、ディレイの設定値を設定する。クロックセル４は、ディレイの設定値に応じて、第１のクロックのディレイを調整して、第２のクロックとして出力する。【選択図】図５
2010073761.tif 000002
【特許請求の範囲】
【請求項１】
内部にクロックを供給することにより動作を行う半導体装置において、
第１のクロックを供給するクロック供給部と、
ディレイ設定値と前記第１のクロックを入力し、前記ディレイ設定値に基づいて前記入力した第１のクロックの位相を変化させた第２のクロックを出力するクロック分配部と、
前記半導体装置内部におけるスキューを検出するスキュー検出部と、
前記スキュー検出部が検出するスキューに基づいて、前記ディレイの設定値を設定するクロック調整部とを有する
ことを特徴とする半導体装置。
【請求項２】
前記スキュー検出部は、前記半導体装置における複数のクリティカルパス又はレーシングパスの検出を行うとともに、
前記クロック調整部が、更に、前記複数のクリティカルパス又はレーシングパスについて検出されたスキューの多数決に基づいて、前記ディレイの設定値の増減を定める多数決回路を備える
ことを特徴とする請求項１記載の半導体装置。
【請求項３】
前記クロック調整部、スキュー検出部及びクロック分配部が、当該クロック調整回路が設けられる半導体装置の基板を複数の領域に分割した場合における、各々の領域に設けられ、
前記スキュー検出部が、その入力部又は出力部の一方が自己の属する領域に設けられ、その入力部又は出力部の他方が自己の属さない領域に設けられる、少なくとも１個のクリティカルパス又はレーシングパスを検出するとともに、
前記クロックセルが、前記第２のクロックを、前記自己の属する領域に設けられる回路に供給する
ことを特徴とする請求項１記載の半導体装置。
【請求項４】
前記複数の領域に設けられた前記クロック調整部が、前記ディレイの設定値の初期値の設定のためのチェーン回路を構成するように接続され、前記チェーン回路が前記半導体装置の入力端子及び出力端子の間に接続される
ことを特徴とする請求項３記載の半導体装置。
【請求項５】
内部にクロックを供給することにより動作を行う半導体装置の制御方法において、
クロック供給部が、第１のクロックを供給するステップと、
クロック分配部が、ディレイ設定値と前記第１のクロックを入力し、前記ディレイ設定値に基づいて前記入力した第１のクロックの位相を変化させた第２のクロックを出力するステップと、
スキュー検出部が、前記半導体装置内部におけるスキューを検出するステップと、
クロック調整部が、前記スキュー検出部が検出するスキューに基づいて、前記ディレイの設定値を設定するステップとを有する
ことを特徴とする半導体装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置及びその制御方法に関し、特に、半導体装置の製造ばらつきや経年劣化に起因するクロックスキューを補正することができる半導体装置及びその制御方法に関する。
【背景技術】
【０００２】
半導体装置（以下、ＬＳＩと言う）のチップ内においては、各々の回路を動作させるクロックが分配されている。しかし、チップ内における素子や配線の物理的な製造ばらつきにより、クロックが各々の回路に到達するまでの時間には、互いのクロックの間に伝播時間のずれ、即ち、クロック間の遅れ又は進み（クロックスキュー）が存在する。特に、動作周波数が高い等、クロックのタイミングの仕様が厳しいＬＳＩでは、ＬＳＩの製造後に、チップ毎にクロックスキューを調整する必要がある。このため、ＬＳＩが、各々の回路に調整したクロックを供給するために、クロックスキュー調整回路を備える必要がある。
【０００３】
例えば、クロックスキュー調整回路を備えるＬＳＩにおいて、クロックのディレイを設定すべき箇所は多数存在するため、遺伝的アルゴリズム等を用いてクロックのディレイの設定値を求めることが考えられる。しかし、クロックのディレイの設定は、通常、ＬＳＩの製造後（出荷時）に１度だけ行われ、以後、この設定値がＬＳＩを搭載した装置の出荷後も使用され続ける。このため、ＬＳＩの経年劣化により、クロックスキューが製造時より悪化してしまった場合には対応できない。また、予め製品において、クロックスキューのマージンを十分に確保した場合には、設計で要求された性能を持つ製品を製造できる割合（製造歩留り）が悪くなる。このため、前記マージンを確保できなかった製品の動作周波数を設計値よりも低く設定して、より低い性能の製品として当該ＬＳＩを出荷している。
【０００４】
なお、ＩＥＥＥ１１４９．１のＪＴＡＧ（Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ）規格に基づいたＬＳＩのスキャンテストにおいて、クロック信号のタイミング調整を、スキャン設定が可能なスキャンチェーンに属するレジスタに保持したディレイ値を使用したディレイ設定回路で行う方法が知られている。
【０００５】
また、ＬＳＩのスキャンテストにおいて、スキャン設定が可能なメモリに設定されたディレイ値にもとづきフリップフロップ回路のディレイを調整する方法が知られている。
【０００６】
更に、クロック調整装置を備えるＬＳＩにおいて、ＬＳＩの個別の製品ばらつき等によりＬＳＩ毎に異なるクロックスキューを調整することができるクロック調整装置が知られている。
【０００７】
更に、また、クロックスキュー調整のための装置規模の増大を抑制でき、かつクロックスキューによる誤動作や、クロックスキュー調整による転送効率の低下等を防止することのできる半導体装置が知られている。
【特許文献１】特開２００１−４３２６１号公報
【特許文献２】特開２００６−３３２８９７号公報
【特許文献３】特開２００４−２２８５０４号公報
【特許文献４】特開２００５−１０９５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
前述したように、クロックのディレイを調整するためには、遺伝的アルゴリズム等を実現するソフトウェアを用意しなければならず、煩わしい。また、前述したように、クロックのディレイの設定値は、ＬＳＩの製造後に１度設定すると、当該設定値を変更していない。このため、市場に出荷されたＬＳＩにおいて、その後経年劣化に起因して、クロックのディレイが変化した場合でも、これに対応することができない。従って、例えば、ＬＳＩが装置等に組込まれ動作中である場合でも、ＬＳＩのクロックのディレイの設定値を調整できるようにすることができれば便利である。特に、クロックのディレイの変化に応じて、クロックのディレイを調整することができれば便利である。
【０００９】
本発明は、半導体装置の製造ばらつきや経年劣化に起因するクロックスキューを補正することができる半導体装置を提供することを目的とする。
【００１０】
また、本発明は、半導体装置の製造ばらつきや経年劣化に起因するクロックスキューを補正することができる半導体装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の一実施例である半導体装置は、内部にクロックを供給することにより動作を行う半導体装置であり、クロック供給部と、クロック分配部と、スキュー検出部と、クロック調整部とを有する。クロック供給部は、第１のクロックを供給する。クロック分配部は、ディレイ設定値と第１のクロックを入力し、ディレイ設定値に基づいて入力した第１のクロックの位相を変化させた第２のクロックを出力する。スキュー検出部は、半導体装置内部におけるスキューを検出する。クロック調整部は、スキュー検出部が検出するスキューに基づいて、ディレイの設定値を設定する。
【００１２】
本発明の一実施例である半導体装置の制御方法は、前述の半導体装置の制御方法であって、以下のステップを含む。即ち、クロック供給部が、第１のクロックを供給するステップと、クロック分配部が、ディレイ設定値と前記第１のクロックを入力し、前記ディレイ設定値に基づいて前記入力した第１のクロックの位相を変化させた第２のクロックを出力するステップと、スキュー検出部が、前記半導体装置内部におけるスキューを検出するステップと、クロック調整部が、前記スキュー検出部が検出するスキューに基づいて、前記ディレイの設定値を設定するステップとを有する。
【発明の効果】
【００１３】
本発明の一実施例である半導体装置及びその制御方法クロック調整回路及び方法によれば、クリティカルパス又はレーシングパスにより検出されたスキューに基づいて、ディレイの設定値を設定するので、遺伝的アルゴリズム等を実現するソフトウェアを用意する必要が無い。また、クロックのディレイの変化に応じて、クロックのディレイを調整することができるので、ＬＳＩの経年劣化に起因して、クロックのディレイが変化した場合でも、これに対応することができる。
【発明を実施するための最良の形態】
【００１４】
図１は、本実施形態の一態様であるクロック調整回路を備える半導体装置を示し、特に、クロック調整部の構成を示す。
【００１５】
半導体装置（以下、ＬＳＩという）１は、例えば、半導体基板が４個のクロックドメイン２Ａ〜２Ｄに区分されたフロアプランを有する。クロックドメイン２Ａ〜２Ｄ毎に、クロック調整部５が設けられる。換言すれば、１個のクロック調整部５が設けられる領域又は１個のクロック調整部５に対応する領域が、クロックドメインである。従って、クロック調整部５は、当該クロック調整回路が設けられるＬＳＩ１のチップのフロアプランを複数のクロックドメイン２に分割した場合における、各々のクロックドメイン２に設けられる。
【００１６】
ここで、フロアプランとは、半導体装置上の配置領域をいい、例えば、複数のプロセッサ・コアと当該複数のプロセッサ・コアから共有される共有キャッシュメモリを有するマルチコアプロセッサにおいては、１つのプロセッサ・コアが１つのクロックドメインに配置されるとともに、プロセッサ・コアから共有される共有キャッシュメモリが１つのクロックドメインに配置される。
【００１７】
クロック調整部５は、自己の属するクロックドメイン２内の回路にクロックツリーを介して分配されるクロックのディレイ（スキュー）を調整する。（クロックツリーについては、後述する。）従って、４個のクロックドメイン２Ａ〜２Ｄ毎に、クロックのディレイがそれぞれ独立して調整される。４個のクロックドメイン２Ａ〜２Ｄには、各々、異なる（又は同一の）回路が形成され、後述するように、これらの回路に前記ディレイが調整されたクロックが供給される。
【００１８】
例えば、複数のプロセッサ・コアを有するマルチコアプロセッサにおいては、同一の論理回路について同一の物理的な配置を有するプロセッサ・コアが、それぞれのクロックドメインに、同一方向、又は、必要に応じて鏡像反転されて配置されることとなる。
【００１９】
クロック調整部５は、スキュー検出部６により検出されたスキューに基づいて設定されたクロックのディレイの設定値を、クロックセル４（図２参照）に設定する。各クロックドメイン間のスキューを調整するために、クロック調整部５は、その内部に、スキュー検出部６を備える。従って、スキュー検出部６は、各々のクロックドメイン２に設けられる。なお、図１において、クロックドメイン２Ｂのクロック調整部５についてのみ、スキュー検出部６を取り出して示している。
【００２０】
クロックドメイン２Ａ〜２Ｄの数は、４個に限られず、１個であっても、他の数であっても良い。クロックドメイン２Ａ〜２Ｄの形状は、正方形又は長方形に限られず、他の形状であっても良い。
【００２１】
４個のクロック調整部５は、例えば、ＩＥＥＥ１１４９．１に規定されるＪＴＡＧ規格等に基づいて、ＬＳＩ外部から所定の信号の設定（スキャンイン）のためのチェーン回路（スキャンチェーン）を構成するように、直列に接続される。所定の信号（スキャンイン信号：ＳｃａｎＩｎ）は、ディレイの設定値の初期設定値を入力するための信号である。チェーン回路は、ＬＳＩ１のスキャン入力端子ＳＩ（ＳｃａｎＩｎ：スキャンイン）及びスキャン出力端子ＳＯ（ＳｃａｎＯｕｔ：スキャンアウト）の間に接続される。即ち、当該チェーンの先頭となるクロックドメイン２Ａのクロック調整部５に、ＬＳＩ１の入力端子ＳＩが接続される。４個のクロック調整部５は、クロックドメイン２Ａ〜２Ｄの順に、チェーン接続される。当該チェーンの最後のクロックドメインとなるクロックドメイン２Ｄのクロック調整部５に、ＬＳＩ１のスキャン出力端子ＳＯが接続される。
【００２２】
例えば、ＬＳＩ製造時におけるクロックのディレイ調整時において、ＬＳＩテスタ等に試験対象のＬＳＩを実装することより、スキャン入力端子ＳＩを介して、ＬＳＩ１のＳＩ端子から、シリアル信号であるスキャン信号ＳｃａｎＩｎが、クロックドメイン２Ａのクロック調整部５に入力される。このスキャン信号ＳｃａｎＩｎは、クロックドメイン２Ａの出力として、次段であるクロックドメイン２Ｂのクロック調整部５に入力される。以下、スキャン信号ＳｃａｎＩｎは、順に、クロックドメイン２Ｃのクロック調整部５、クロックドメイン２Ｄのクロック調整部５に伝播される。スキャンチェーンの全体のビット長におけるクロック調整部５のビット位置は予め判るので、所定の信号を入力することにより、クロック調整部５のディレイの設定値の初期値を設定することができる。
【００２３】
図２は、本実施形態の一態様であるクロック調整回路のクロックのディレイ設定の構成を示す。このクロックのディレイ設定の構成は、ＬＳＩのシステム動作時に使用されるシステムクロックを初め、ＬＳＩ内部に供給される様々な種類のクロックの分配に適用することができる。
【００２４】
クロック調整部５は、前述の調整後のディレイの設定値を、対応するクロックセル４に設定する。クロックセル４は、各々のクロックドメイン２に、即ち、１個のクロック調整部５に対応して、複数（この例では、４個）設けられる。従って、クロック調整部５からのディレイの設定値は、対応する４個のクロックセル４に設定される。換言すれば、同一のクロックドメイン２に属する複数のクロックセル４に対して、共通の設定値が設定される。
【００２５】
図３は、本実施形態の一態様であるクロック調整回路における、いわゆるＨツリーを用いたシステムクロックの供給を示す。
【００２６】
ＬＳＩ１は、ＬＳＩ全体のフロアプランの中央又は中央付近に配置された１個のクロック供給部３と、複数のクロックセル４とを備える。クロック供給部３は、ＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）等により構成され、システムクロックＳｙｓＣｌｋを生成して、階層構造を有するＨ字型の分岐ツリーであるＨツリーを介して、ＳｙｓＣｌｋを各々のクロックドメイン２内の各々のクロックセル４に供給する。クロックセル４は、クロック調整部５の設定値に従い、システムクロックＳｙｓＣｌｋのクロックスキューを調整することによりディレイの設定を行う）。即ち、クロックセル４は、ディレイの設定値に応じて、システムクロックＳｙｓＣｌｋのディレイを調整して、調整後のクロックＳｙｓＣｌｋ’を出力する。第１のクロックはクロック供給部３が出力するシステムクロックＳｙｓＣｌｋである。第２のクロックはクロックセル４がそれぞれ供給する調整後のクロックＳｙｓＣｌｋ’である。これにより、クロックセル４は、第２のクロックＳｙｓＣｌｋ’を、自己の属するクロックドメイン２に設けられる回路に供給する。
【００２７】
なお、第１のクロックとして、システムクロックＳｙｓＣｌｋに代えて、ＬＳＩ１の外部のＰＬＬ又は水晶発振器等から供給される外部クロックを用いるようにしても良い。また、第１のクロックとして、ディレイの調整処理時のみ、ＬＳＩ１の外部のＬＳＩテスタから供給される外部クロックを用いるようにしても良い。
【００２８】
図４は、本実施形態の一態様であるクロック調整回路のクロック調整対照となるパス（信号伝播経路）の構成を示す。
【００２９】
スキュー検出部６は、前述したように、各々のクロックドメイン２に設けられる。スキュー検出部６は、クロックのスキューを検出するための、少なくとも１個の又は複数のクリティカルパス又はレーシングパスを含む。クリティカルパスは、クロックのディレイオーバーを検出するためのパスであり、ディレイオーバーの発生の可能性の高いパスである。レーシングパスは、クロックのレーシングを検出するためのパスであり、レーシングの発生の可能性の高いパスである。
【００３０】
ここで、例えば、クロックドメイン２Ｂのスキュー検出部６は、その入力部又は出力部（図４において、白丸で示す）の一方が自己の属するクロックドメイン２Ｂに設けられ、その入力部又は出力部の他方が自己の属さないクロックドメイン２Ａ又は２Ｃに設けられる、クリティカルパス又はレーシングパスを含む。
【００３１】
パス７は、例えば、擬似的に形成された擬似クリティカルパス、又は、擬似レーシングパスであり、入力部（信号を送信する送りラッチ）と出力部（信号を受信する受けラッチ）を備える。例えば、擬似クリティカルパスは、ＬＳＩ１の回路を構成するクリティカルパスと同一又は類似の構成を持つパスである。なお、ＬＳＩ１の回路を構成するクリティカルパスを、パス７として使用するようにしても良い。擬似レーシングパスも、同様である。
【００３２】
実際には、設計時における論理回路情報及び論理回路の配置・配線情報を反映したモデルを使用したタイミングシミュレーションにより、異なるクロックドメイン２間における、ディレイ又はレーシングの可能性を知ることができる。即ち、クロックスキューのばらつきがある場合、クリティカルパスがオーバーディレイするか、又は、レーシングパスがレーシングするかを知ることができる。従って、当該設計に基づいて、例えばディレイの可能性の高い異なるクロックドメイン２間には、クリティカルパスが設定される。
【００３３】
パス７としては、クリティカルパス及びレーシングパスの双方を設けるようにしても良い。また、全てのクロックドメイン２の間において、クリティカルパス及びレーシングパスの双方を設定するようにしても良い。
【００３４】
図５は、本実施形態の一態様であるクロック調整回路の構成を示す図である。
【００３５】
クロック調整部５は、パス７、多数決回路５１、クロック調整ラッチ回路５２、ＯＲ回路（論理和演算回路）５３を備える。ＯＲ回路５３の出力（フェイル信号Ｘ）はＯＲ回路５４に入力される。ＯＲ回路５４は、各々のクロックドメイン２のクロック調整部５のフェイル信号の論理和を演算する。ＯＲ回路５４は、全ての（４個の）クロックドメイン２に対して共通に、１個設けられる。
【００３６】
パス７は、クロックセル４から供給されたクロックＳｙｓＣｌｋ’を入力として、ＯＶ（ＯＶｅｒ  ｄｅｌａｙ）／ＲＣ（ＲａＣｉｎｇ）信号と信号Ｘａを出力する。ＯＶ／ＲＣ信号は、パス７の状態を示し、多数決回路５１へ入力される。信号Ｘａは、ＯＲ回路５３に入力される。
【００３７】
パス７がクリティカルパスであり、クロックＳｙｓＣｌｋ’の印加によりオーバーディレイとなった場合、ＯＶ／ＲＣ信号はＯＶ信号（オーバーディレイの検出信号）となる。パス７がレーシングパスであり、クロックＳｙｓＣｌｋ’の印加によりレーシングとなった場合、ＯＶ／ＲＣ信号はＲＣ信号（レーシングの検出信号）となる。
【００３８】
パス７が出力するフェイル信号Ｘａは、パス７がオーバーディレイ又はレーシングしている状態である場合、信号Ｘａ＝１となり、それ以外である場合、信号Ｘａ＝０の出力となる（図６を参照して後述する）。例えば、クロックドメイン２Ａに関するパス７について、ＯＲ回路５３で、このフェイル信号Ｘａの全ての論理和を演算した出力がＸＡとなる。
【００３９】
同様に、クロックドメイン２Ｂ、２Ｃ、２Ｄについて、それぞれのクロックドメインが有するＯＲ回路による論理和演算の結果である信号ＸＢ、ＸＣ、ＸＤが得られる。全てのクロックドメイン２Ａ〜２Ｄのフェイル信号ＸＡ、ＸＢ、ＸＣ、ＸＤの論理和が、ＯＲ回路５４により出力Ｘとして得られる。フェイル信号の論理和Ｘは、ＬＳＩ１の複数のクロックドメイン２の領域間のクロックのディレイを調整する場合、クロック調整が総合的に適切に調整されたか否かを判断するための信号である。
【００４０】
図６は、本実施形態の一態様であるパス７の構成を示す図である。
【００４１】
パス７は、送りラッチ７１、複数のバッファ７４、受けラッチ７５、ＥＸ−ＯＲ回路（ＥＸｃｌｕｓｉｖｅ−ＯＲ回路：排他的論理和演算回路）７９を備える。複数のバッファ７４は、送りラッチ７１と受けラッチ７５の間に設けられ、信号のスキューの原因となる。
【００４２】
送りラッチ７１は、保持した信号を送信する信号送信回路であり、インバータ７２とラッチ７３を備える。送りラッチ７１は、複数のバッファ７４を介して、所定の信号（即ち、所定のクロック）を受けラッチ７５に送信する。受けラッチ７５は、信号受信回路であり、ラッチ７６、ラッチ７７、バッファ７８を備える。受けラッチ７５は、複数のバッファ７４を介して送信された前記所定の信号を受信して保持する。
【００４３】
送りラッチ７１は、送りラッチ７１が属するクロックドメイン２のクロックＳｙｓＣｌｋ’を基準として、送りの信号を出力する。受けラッチ７５は、受けラッチ７５が属するクロックドメイン２（送りラッチ７１が属するクロックドメイン２以外）のクロックＳｙｓＣｌｋ’（Ｚ）を基準として、送りラッチが送信した送りの信号を受信する。パス７の送りラッチ７１内のラッチ７３は、クロックＳｙｓＣｌｋ’を入力として動作する。
【００４４】
ラッチ７３の出力は、入力された信号を反転して出力するインバータ７２を介してラッチ７３の入力へ接続されている。このため、ラッチ７３の出力は、クロックＳｙｓＣｌｋ’の毎サイクル毎に信号が反転する。
【００４５】
送りラッチ７１の送りの信号が受けラッチ７５へ転送された場合、受けラッチ７５は、クロックＳｙｓＣｌｋ’（Ｚ）のクロックを基準に、送りの信号を受信する。この場合、送りラッチ７１から受けラッチ７５内のラッチ７７への転送時間は、バッファ７４が余分に１個介在するため、ラッチ７６の転送時間よりも長くかかる。クロック調整回路は、この転送時間の違いを利用して、パス７のオーバーディレイ、又はレーシング状態を検出する。
【００４６】
例えば、パス７がクリティカルパスで、受けラッチ７５内の２つのラッチ７６と７７の出力の値が異なる場合、ラッチ７７がオーバーディレイしている。また、パス７がレーシングパスで、受けラッチ７５内の２つのラッチ７６と７７の出力の値が異なる場合、ラッチ７６がレーシングしている。一方、ラッチ７６とラッチ７７の出力の値が同じである場合、パス７は、正常な動作状態である。
【００４７】
ラッチ７６と、ラッチ７７の出力をＥＸ−ＯＲ回路７９により排他論理和をとることにより、ラッチ７６とラッチ７７の出力の値が異なる場合、ＥＸ−ＯＲ回路７９は、信号Ｘａ＝１を出力する。一方、排他的論理和演算の結果、ラッチ７６とラッチ７７の値が同じである場合、ＥＸ−ＯＲ回路７９は、信号Ｘａ＝０を出力する。これにより、パス７のオーバーディレイ又はレーシングの状態を検出することが可能となる。
【００４８】
図５に戻って、多数決回路５１は、クロックＳｙｓＣｌｋ’の位相を進めるか遅らすかの判断を以下の処理に基づいて決定する。多数決回路５１は、当該パス７の種類（クリティカルパスであるかレーシングパスであるか）に基づいて、各々のパス７から出力されるＯＶ／ＲＣ信号がＯＶ信号であるかＲＣ信号であるかを判断する。多数決回路５１は、上記判断した複数のＯＶ信号と複数のＲＣ信号、各々のパス７の転送の方向により、クロックドメイン２のクロックＳｙｓＣｌｋ’を早くするか、遅くするかの複数の論理の多数決を取り決定する。
【００４９】
図７（Ｂ）は、多数決回路５１の出力する信号ＦＯＳと信号ＩＨの論理に対するクロック調整ラッチ回路５２が備えるアップダウンカウンタ５２２（図８に示す）の動作真理値表５１Ａを示す。
【００５０】
信号ＩＨ＝１（かつ信号ＦＯＳ＝１又は０）である場合、クロック調整ラッチ回路５２に対するクロックＳｙｓＣｌｋ’のディレイ設定を変更しない要求信号である。クロック調整ラッチ回路５２は、クロックＳｙｓＣｌｋ’のディレイ設定を変更しないようにする。この場合、アップダウンカウンタ５２２は、カウント動作を保持する状態となる。
【００５１】
信号ＩＨ＝０かつ信号ＦＯＳ＝１である場合、クロック調整ラッチ回路５２に対するクロックＳｙｓＣｌｋ’を早くする要求信号である。この場合、アップダウンカウンタ５２２は、カウント動作をアップカウントにする。
【００５２】
信号ＩＨ＝０かつ信号ＦＯＳ＝０である場合、クロック調整ラッチ回路５２に対するクロックＳｙｓＣｌｋ’を遅くする信号要求である。この場合、アップダウンカウンタ５２２は、カウント動作をダウンカウントにする。
【００５３】
以上により、多数決回路５１は、パス７のＯＶ／ＲＣ信号に基づいて、クロック調整ラッチ回路５２のディレイの設定値の変更を指示することができる。
【００５４】
図５に戻って、多数決回路５１は、前記決定に基づいて、クロックドメイン２のクロックＳｙｓＣｌｋ’の位相を進める信号ＦＯＳ＝１、又は、位相を遅らせる信号ＦＯＳ＝０、もしくは、変更しない信号ＩＨ＝１（位相を進める信号と位相を遅らせる信号の数が同じである場合も含む）をクロック調整ラッチ回路５２に出力する。
【００５５】
図７（Ａ）は本実施形態の一態様である多数決回路の入出力信号の接続を示す。図７（Ａ）において、多数決回路５１は、クロックドメイン２毎のクロック調整部５に備えられている。
【００５６】
多数決回路５１は、各々のパス７から出力される複数のＯＶ／ＲＣ信号を入力とし、設計時のパスの設定からＯＶ信号であるか、ＲＣ信号であるかの判断を行う。また、多数決回路５１は、ＯＶ／ＲＣ信号がクロックＳｙｓＣｌｋ’を早くする信号に対応するか、遅くする信号に対応するかの判断を行う。
【００５７】
多数決回路５１は、上記対応する信号を判断し、クロックドメイン２のクロックＳｙｓＣｌｋ’を早くする信号と、クロックを遅くする信号として多数決をとる。多数決回路５１は、クロックを早くする場合には信号ＦＯＳ＝１、又は、クロックを遅くする場合には信号ＦＯＳ＝０、もしくは変更しない場合には信号ＩＨ＝１をクロック調整ラッチ回路５２に出力する。
【００５８】
例えば、具体的には、多数決回路５１は、送りラッチがクロックドメイン２Ａ、受けラッチがクロックドメイン２Ｂ、パス７が擬似クリティカルパスのとき、クロックＳｙｓＣｌｋ’を印加して、オーバーディレイの状態となった場合、ＯＶ信号を検出する。この場合、クロックドメイン２Ａの多数決回路５１は、クロックドメイン２ＡのクロックＳｙｓＣｌｋ’の位相を進める信号として、多数決判断の入力とする。
【００５９】
また、受けラッチのクロックドメイン２Ｂの多数決回路５１は、クロックドメイン２ＢのクロックＳｙｓＣｌｋ’の位相を遅らせる信号として、多数決判断の入力とする構成であっても良い。即ち、少なくとも、上記クロックドメイン２Ａ、２ＢのいずれかのクロックＳｙｓＣｌｋ’の位相を進めるか又は位相を遅らせるかの信号を、各々のクロックドメイン２の多数決回路５１が、多数決判断に使用する構成であれば良い。
【００６０】
図５に戻って、クロック調整ラッチ回路５２は、信号ＦＯＳと信号ＩＨに基づいて、クロックＳｙｓＣｌｋのディレイの設定値の増減又は、変更しないことを選択する。クロック調整ラッチ回路５２は、このディレイの設定値をＣＫ調整ラッチ更新用クロックに基づいて更新する。前述したように、クロックセル４が、クロック調整ラッチ回路５２の設定したディレイの設定値に従い、クロックＳｙｓＣｌｋをディレイさせることにより位相を変化させたクロックＳｙｓＣｌｋ’を供給する。
【００６１】
パス７から出力されるフェイル信号Ｘａは、オーバーディレイ又はレーシングである場合は、１を出力する。クロック調整ラッチ回路５２のクロックＳｙｓＣｌｋ’のディレイ調整が十分でない場合、いずれかのパス７からフェイル信号Ｘａ＝１が生成されるため、信号Ｘ＝１となる。
【００６２】
以上のように、クロック調整回路は、クロックのディレイを調整した後のパス状態を、フェイル信号の信号Ｘを監視することにより行うことができる。このため、クロック調整回路は、信号Ｘ＝０となるようにクロックのディレイを調整することにより、クロックドメイン２の領域間のクロックの位相を揃えてクロックスキューの調整を行うことができる。
【００６３】
また、クロック調整回路は、ＬＳＩが動作中において、クロックのディレイの変化を監視することができ、そのクロックのディレイの変化に従い、クロックのディレイを調整することが可能となる。
【００６４】
図８は、本実施形態の一態様であるクロック調整ラッチ回路の構成を示す図である。
【００６５】
クロック調整ラッチ回路５２は、複数のラッチ５２１とアップダウンカウンタ５２２を備える。
【００６６】
複数のラッチ５２１は、クロックセル４のクロックのディレイの設定値を複数のビット情報として保持する。ラッチ５２１は、ＣＫ調整ラッチ更新用クロックが入力された場合、アップダウンカウンタ５２２のカウント値を読込み、ラッチ５２１のデータを更新する。
【００６７】
アップダウンカウンタ５２２は、カウント値によりディレイの設定値を増やすか、減らすかの処理を行う。この場合、アップダウンカウンタ５２２は、前述の図７（Ｂ）の説明の通り、信号ＦＯＳ、信号ＩＨの入力信号から図７（Ｂ）に示した動作真理値表５１Ａに基づいて、クロックＳｙｓＣｌｋによりカウンタの動作を行う。例えば、“信号ＦＯＳ＝１、信号ＩＨ＝０”である場合、アップダウンカウンタ５２２は、現在のカウント値から１カウント分、ディレイの設定値を増やす。一方、“信号ＦＯＳ＝０、信号ＩＨ＝０”である場合、アップダウンカウンタ５２２は、現在のカウント値から１カウント分、ディレイの設定値を減らす。
【００６８】
ラッチ５２１は、ＣＫ調整ラッチ更新用クロックがラッチ５２１に入力されると、アップダウンカウンタ５２２のカウント値を読込む。その結果、ラッチ５２１の出力が更新され、クロック調整ラッチ回路５２のディレイの設定値は更新されることとなる。
【００６９】
以上により、クロックセル４が、この更新されたディレイの設定値に基づいて、クロックＳｙｓＣｌｋのディレイ設定を行い、ディレイされたクロックとして位相を変化させたクロックＳｙｓＣｌｋ’をクロックドメイン２内の各々の回路へ供給する。
【００７０】
図９は、本実施形態の一態様であるクロック調整回路におけるクロック調整処理の処理フローを示す。
【００７１】
ＬＳＩの製造後、クロック調整回路を調整するため、ＬＳＩテスタ等で、クロック調整ラッチ回路５２に初期値をスキャンインし、ディレイの設定値の初期化を行う（ステップＳ１）。
【００７２】
ＬＳＩ１のパス７のクリティカルパス等の送りラッチ７１、受けラッチ７５に初期値をスキャンインし、初期化を行う（ステップＳ２）。
【００７３】
ＬＳＩ１の調整工程の初期においては、設計目標周波数より低い周波数で、クロックＳｙｓＣｌｋを２発印加する。ただし、クロック調整ラッチ回路５２には、ＣＫ調整ラッチ更新用クロックは印加しない（ステップＳ３）。
【００７４】
クロック調整ラッチ回路５２は、クロックのディレイの設定値を初期値のままで、ＬＳＩテスタ等で、フェイル信号Ｘが０になる十分低い周波数を探す処理を行うため、信号Ｘ＝０である場合、ステップＳ５の処理へ移行し、信号Ｘ＝１である場合、ステップＳ３の処理へ戻る（ステップＳ４）。
【００７５】
信号Ｘ＝０である場合、ＬＳＩテスタ等の試験周波数を少し上げて、フェイル信号Ｘを確認する。この場合にも、クロック調整ラッチ回路５２には、ＣＫ調整ラッチ更新用クロックは印加しない（ステップＳ５）。信号Ｘ＝０である場合、ステップＳ５の処理へ戻り、信号Ｘ＝１である場合、ステップＳ７の処理へ移行する（ステップＳ６）。
【００７６】
信号Ｘ＝１である場合、信号Ｘが１になった周波数で、クロックＳｙｓＣｌｋを２発印加した後、ＣＫ調整ラッチ更新用クロックを印加して、クロック調整ラッチ回路５２のクロックのディレイの設定値を更新する（ステップＳ７）。次に、信号Ｘを監視し、信号Ｘ＝０である場合、ステップＳ５の処理へ戻り、信号Ｘ＝１である場合、ステップＳ９の処理へ移行する（ステップＳ８）。
【００７７】
次に、信号Ｘ＝１で、ステップＳ７〜Ｓ９の処理の繰り返しが予め定めた所定の回数を超えない場合、ステップＳ７へ処理を戻す。一方、所定の回数を超えた場合、ステップＳ１０へ処理を移行する（ステップＳ９）。
【００７８】
所定の回数を超えた場合、信号Ｘが０にならないため、クロック調整ラッチ回路５２の設定値を読み出し、クロックセル４へそのディレイの設定値を更新する（ステップＳ１０）。
【００７９】
以上の処理で、ＬＳＩの製造後、クロック調整回路の調整は終了する。なお、ＬＳＩ１は、この時のクロックの試験周波数を上限周波数として使用することができる。
【００８０】
また、クロック調整回路のＬＳＩ動作中のクロックのディレイ調整方法について、図９のフロー中の試験周波数を固定にし、信号Ｘ＝０となるようにクロックのディレイ調整を行うことにより実現することができる。この場合、ＬＳＩ以外のＣＰＵ等による信号Ｘの監視と、制御指示を行う構成であっても良い。
【図面の簡単な説明】
【００８１】
【図１】クロック調整回路のスキャン信号の構成を示す図である。
【図２】クロック調整回路のシステムクロックのディレイ設定の構成を示す図である。
【図３】クロック調整回路のシステムクロックの構成を示す図である。
【図４】クロック調整回路のパスの構成を示す図である。
【図５】クロック調整回路の構成を示す図である。
【図６】パスの構成を示す図である。
【図７】多数決回路の入出力信号の接続及びアップダウンカウンタの動作真理値表を示す図である。
【図８】クロック調整ラッチ回路の構成を示す図である。
【図９】クロック調整処理フローを示す図である。
【符号の説明】
【００８２】
１    ＬＳＩ
２    クロックドメイン
３    クロック供給部
４    クロックセル
５    クロック調整部
６    スキュー検出部
７    パス
５１    多数決回路
５２    クロック調整ラッチ回路
５３、５４    ＯＲ回路
７１    送りラッチ
７２    インバータ
７３    ラッチ
７４    バッファ
７５    受けラッチ
７９    ＥＸ−ＯＲ回路
５２２    アップダウンカウンタ
【図１】
2010073761.tif 000003
【図２】
2010073761.tif 000004
【図３】
2010073761.tif 000005
【図４】
2010073761.tif 000006
【図５】
2010073761.tif 000007
【図６】
2010073761.tif 000008
【図７】
2010073761.tif 000009
【図８】
2010073761.tif 000010
【図９】
2010073761.tif 000011