説明

半導体装置及びその制御方法

【課題】半導体装置の製造ばらつきや経年劣化に起因するクロックスキューを補正することができる半導体装置を提供する。
【解決手段】スキュー検出部6は、スキューを検出するための少なくとも1個のクリティカルパス7又はレーシングパス7を含む。クロック調整部5は、スキュー検出部6により検出されたスキューに基づいて、ディレイの設定値を設定する。クロックセル4は、ディレイの設定値に応じて、第1のクロックのディレイを調整して、第2のクロックとして出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体装置及びその制御方法に関し、特に、半導体装置の製造ばらつきや経年劣化に起因するクロックスキューを補正することができる半導体装置及びその制御方法に関する。
【背景技術】
【0002】
半導体装置(以下、LSIと言う)のチップ内においては、各々の回路を動作させるクロックが分配されている。しかし、チップ内における素子や配線の物理的な製造ばらつきにより、クロックが各々の回路に到達するまでの時間には、互いのクロックの間に伝播時間のずれ、即ち、クロック間の遅れ又は進み(クロックスキュー)が存在する。特に、動作周波数が高い等、クロックのタイミングの仕様が厳しいLSIでは、LSIの製造後に、チップ毎にクロックスキューを調整する必要がある。このため、LSIが、各々の回路に調整したクロックを供給するために、クロックスキュー調整回路を備える必要がある。
【0003】
例えば、クロックスキュー調整回路を備えるLSIにおいて、クロックのディレイを設定すべき箇所は多数存在するため、遺伝的アルゴリズム等を用いてクロックのディレイの設定値を求めることが考えられる。しかし、クロックのディレイの設定は、通常、LSIの製造後(出荷時)に1度だけ行われ、以後、この設定値がLSIを搭載した装置の出荷後も使用され続ける。このため、LSIの経年劣化により、クロックスキューが製造時より悪化してしまった場合には対応できない。また、予め製品において、クロックスキューのマージンを十分に確保した場合には、設計で要求された性能を持つ製品を製造できる割合(製造歩留り)が悪くなる。このため、前記マージンを確保できなかった製品の動作周波数を設計値よりも低く設定して、より低い性能の製品として当該LSIを出荷している。
【0004】
なお、IEEE1149.1のJTAG(Joint Test Action Group)規格に基づいたLSIのスキャンテストにおいて、クロック信号のタイミング調整を、スキャン設定が可能なスキャンチェーンに属するレジスタに保持したディレイ値を使用したディレイ設定回路で行う方法が知られている。
【0005】
また、LSIのスキャンテストにおいて、スキャン設定が可能なメモリに設定されたディレイ値にもとづきフリップフロップ回路のディレイを調整する方法が知られている。
【0006】
更に、クロック調整装置を備えるLSIにおいて、LSIの個別の製品ばらつき等によりLSI毎に異なるクロックスキューを調整することができるクロック調整装置が知られている。
【0007】
更に、また、クロックスキュー調整のための装置規模の増大を抑制でき、かつクロックスキューによる誤動作や、クロックスキュー調整による転送効率の低下等を防止することのできる半導体装置が知られている。
【特許文献1】特開2001−43261号公報
【特許文献2】特開2006−332897号公報
【特許文献3】特開2004−228504号公報
【特許文献4】特開2005−10958号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
前述したように、クロックのディレイを調整するためには、遺伝的アルゴリズム等を実現するソフトウェアを用意しなければならず、煩わしい。また、前述したように、クロックのディレイの設定値は、LSIの製造後に1度設定すると、当該設定値を変更していない。このため、市場に出荷されたLSIにおいて、その後経年劣化に起因して、クロックのディレイが変化した場合でも、これに対応することができない。従って、例えば、LSIが装置等に組込まれ動作中である場合でも、LSIのクロックのディレイの設定値を調整できるようにすることができれば便利である。特に、クロックのディレイの変化に応じて、クロックのディレイを調整することができれば便利である。
【0009】
本発明は、半導体装置の製造ばらつきや経年劣化に起因するクロックスキューを補正することができる半導体装置を提供することを目的とする。
【0010】
また、本発明は、半導体装置の製造ばらつきや経年劣化に起因するクロックスキューを補正することができる半導体装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明の一実施例である半導体装置は、内部にクロックを供給することにより動作を行う半導体装置であり、クロック供給部と、クロック分配部と、スキュー検出部と、クロック調整部とを有する。クロック供給部は、第1のクロックを供給する。クロック分配部は、ディレイ設定値と第1のクロックを入力し、ディレイ設定値に基づいて入力した第1のクロックの位相を変化させた第2のクロックを出力する。スキュー検出部は、半導体装置内部におけるスキューを検出する。クロック調整部は、スキュー検出部が検出するスキューに基づいて、ディレイの設定値を設定する。
【0012】
本発明の一実施例である半導体装置の制御方法は、前述の半導体装置の制御方法であって、以下のステップを含む。即ち、クロック供給部が、第1のクロックを供給するステップと、クロック分配部が、ディレイ設定値と前記第1のクロックを入力し、前記ディレイ設定値に基づいて前記入力した第1のクロックの位相を変化させた第2のクロックを出力するステップと、スキュー検出部が、前記半導体装置内部におけるスキューを検出するステップと、クロック調整部が、前記スキュー検出部が検出するスキューに基づいて、前記ディレイの設定値を設定するステップとを有する。
【発明の効果】
【0013】
本発明の一実施例である半導体装置及びその制御方法クロック調整回路及び方法によれば、クリティカルパス又はレーシングパスにより検出されたスキューに基づいて、ディレイの設定値を設定するので、遺伝的アルゴリズム等を実現するソフトウェアを用意する必要が無い。また、クロックのディレイの変化に応じて、クロックのディレイを調整することができるので、LSIの経年劣化に起因して、クロックのディレイが変化した場合でも、これに対応することができる。
【発明を実施するための最良の形態】
【0014】
図1は、本実施形態の一態様であるクロック調整回路を備える半導体装置を示し、特に、クロック調整部の構成を示す。
【0015】
半導体装置(以下、LSIという)1は、例えば、半導体基板が4個のクロックドメイン2A〜2Dに区分されたフロアプランを有する。クロックドメイン2A〜2D毎に、クロック調整部5が設けられる。換言すれば、1個のクロック調整部5が設けられる領域又は1個のクロック調整部5に対応する領域が、クロックドメインである。従って、クロック調整部5は、当該クロック調整回路が設けられるLSI1のチップのフロアプランを複数のクロックドメイン2に分割した場合における、各々のクロックドメイン2に設けられる。
【0016】
ここで、フロアプランとは、半導体装置上の配置領域をいい、例えば、複数のプロセッサ・コアと当該複数のプロセッサ・コアから共有される共有キャッシュメモリを有するマルチコアプロセッサにおいては、1つのプロセッサ・コアが1つのクロックドメインに配置されるとともに、プロセッサ・コアから共有される共有キャッシュメモリが1つのクロックドメインに配置される。
【0017】
クロック調整部5は、自己の属するクロックドメイン2内の回路にクロックツリーを介して分配されるクロックのディレイ(スキュー)を調整する。(クロックツリーについては、後述する。)従って、4個のクロックドメイン2A〜2D毎に、クロックのディレイがそれぞれ独立して調整される。4個のクロックドメイン2A〜2Dには、各々、異なる(又は同一の)回路が形成され、後述するように、これらの回路に前記ディレイが調整されたクロックが供給される。
【0018】
例えば、複数のプロセッサ・コアを有するマルチコアプロセッサにおいては、同一の論理回路について同一の物理的な配置を有するプロセッサ・コアが、それぞれのクロックドメインに、同一方向、又は、必要に応じて鏡像反転されて配置されることとなる。
【0019】
クロック調整部5は、スキュー検出部6により検出されたスキューに基づいて設定されたクロックのディレイの設定値を、クロックセル4(図2参照)に設定する。各クロックドメイン間のスキューを調整するために、クロック調整部5は、その内部に、スキュー検出部6を備える。従って、スキュー検出部6は、各々のクロックドメイン2に設けられる。なお、図1において、クロックドメイン2Bのクロック調整部5についてのみ、スキュー検出部6を取り出して示している。
【0020】
クロックドメイン2A〜2Dの数は、4個に限られず、1個であっても、他の数であっても良い。クロックドメイン2A〜2Dの形状は、正方形又は長方形に限られず、他の形状であっても良い。
【0021】
4個のクロック調整部5は、例えば、IEEE1149.1に規定されるJTAG規格等に基づいて、LSI外部から所定の信号の設定(スキャンイン)のためのチェーン回路(スキャンチェーン)を構成するように、直列に接続される。所定の信号(スキャンイン信号:ScanIn)は、ディレイの設定値の初期設定値を入力するための信号である。チェーン回路は、LSI1のスキャン入力端子SI(ScanIn:スキャンイン)及びスキャン出力端子SO(ScanOut:スキャンアウト)の間に接続される。即ち、当該チェーンの先頭となるクロックドメイン2Aのクロック調整部5に、LSI1の入力端子SIが接続される。4個のクロック調整部5は、クロックドメイン2A〜2Dの順に、チェーン接続される。当該チェーンの最後のクロックドメインとなるクロックドメイン2Dのクロック調整部5に、LSI1のスキャン出力端子SOが接続される。
【0022】
例えば、LSI製造時におけるクロックのディレイ調整時において、LSIテスタ等に試験対象のLSIを実装することより、スキャン入力端子SIを介して、LSI1のSI端子から、シリアル信号であるスキャン信号ScanInが、クロックドメイン2Aのクロック調整部5に入力される。このスキャン信号ScanInは、クロックドメイン2Aの出力として、次段であるクロックドメイン2Bのクロック調整部5に入力される。以下、スキャン信号ScanInは、順に、クロックドメイン2Cのクロック調整部5、クロックドメイン2Dのクロック調整部5に伝播される。スキャンチェーンの全体のビット長におけるクロック調整部5のビット位置は予め判るので、所定の信号を入力することにより、クロック調整部5のディレイの設定値の初期値を設定することができる。
【0023】
図2は、本実施形態の一態様であるクロック調整回路のクロックのディレイ設定の構成を示す。このクロックのディレイ設定の構成は、LSIのシステム動作時に使用されるシステムクロックを初め、LSI内部に供給される様々な種類のクロックの分配に適用することができる。
【0024】
クロック調整部5は、前述の調整後のディレイの設定値を、対応するクロックセル4に設定する。クロックセル4は、各々のクロックドメイン2に、即ち、1個のクロック調整部5に対応して、複数(この例では、4個)設けられる。従って、クロック調整部5からのディレイの設定値は、対応する4個のクロックセル4に設定される。換言すれば、同一のクロックドメイン2に属する複数のクロックセル4に対して、共通の設定値が設定される。
【0025】
図3は、本実施形態の一態様であるクロック調整回路における、いわゆるHツリーを用いたシステムクロックの供給を示す。
【0026】
LSI1は、LSI全体のフロアプランの中央又は中央付近に配置された1個のクロック供給部3と、複数のクロックセル4とを備える。クロック供給部3は、PLL(Phase Locked Loop)等により構成され、システムクロックSysClkを生成して、階層構造を有するH字型の分岐ツリーであるHツリーを介して、SysClkを各々のクロックドメイン2内の各々のクロックセル4に供給する。クロックセル4は、クロック調整部5の設定値に従い、システムクロックSysClkのクロックスキューを調整することによりディレイの設定を行う)。即ち、クロックセル4は、ディレイの設定値に応じて、システムクロックSysClkのディレイを調整して、調整後のクロックSysClk’を出力する。第1のクロックはクロック供給部3が出力するシステムクロックSysClkである。第2のクロックはクロックセル4がそれぞれ供給する調整後のクロックSysClk’である。これにより、クロックセル4は、第2のクロックSysClk’を、自己の属するクロックドメイン2に設けられる回路に供給する。
【0027】
なお、第1のクロックとして、システムクロックSysClkに代えて、LSI1の外部のPLL又は水晶発振器等から供給される外部クロックを用いるようにしても良い。また、第1のクロックとして、ディレイの調整処理時のみ、LSI1の外部のLSIテスタから供給される外部クロックを用いるようにしても良い。
【0028】
図4は、本実施形態の一態様であるクロック調整回路のクロック調整対照となるパス(信号伝播経路)の構成を示す。
【0029】
スキュー検出部6は、前述したように、各々のクロックドメイン2に設けられる。スキュー検出部6は、クロックのスキューを検出するための、少なくとも1個の又は複数のクリティカルパス又はレーシングパスを含む。クリティカルパスは、クロックのディレイオーバーを検出するためのパスであり、ディレイオーバーの発生の可能性の高いパスである。レーシングパスは、クロックのレーシングを検出するためのパスであり、レーシングの発生の可能性の高いパスである。
【0030】
ここで、例えば、クロックドメイン2Bのスキュー検出部6は、その入力部又は出力部(図4において、白丸で示す)の一方が自己の属するクロックドメイン2Bに設けられ、その入力部又は出力部の他方が自己の属さないクロックドメイン2A又は2Cに設けられる、クリティカルパス又はレーシングパスを含む。
【0031】
パス7は、例えば、擬似的に形成された擬似クリティカルパス、又は、擬似レーシングパスであり、入力部(信号を送信する送りラッチ)と出力部(信号を受信する受けラッチ)を備える。例えば、擬似クリティカルパスは、LSI1の回路を構成するクリティカルパスと同一又は類似の構成を持つパスである。なお、LSI1の回路を構成するクリティカルパスを、パス7として使用するようにしても良い。擬似レーシングパスも、同様である。
【0032】
実際には、設計時における論理回路情報及び論理回路の配置・配線情報を反映したモデルを使用したタイミングシミュレーションにより、異なるクロックドメイン2間における、ディレイ又はレーシングの可能性を知ることができる。即ち、クロックスキューのばらつきがある場合、クリティカルパスがオーバーディレイするか、又は、レーシングパスがレーシングするかを知ることができる。従って、当該設計に基づいて、例えばディレイの可能性の高い異なるクロックドメイン2間には、クリティカルパスが設定される。
【0033】
パス7としては、クリティカルパス及びレーシングパスの双方を設けるようにしても良い。また、全てのクロックドメイン2の間において、クリティカルパス及びレーシングパスの双方を設定するようにしても良い。
【0034】
図5は、本実施形態の一態様であるクロック調整回路の構成を示す図である。
【0035】
クロック調整部5は、パス7、多数決回路51、クロック調整ラッチ回路52、OR回路(論理和演算回路)53を備える。OR回路53の出力(フェイル信号X)はOR回路54に入力される。OR回路54は、各々のクロックドメイン2のクロック調整部5のフェイル信号の論理和を演算する。OR回路54は、全ての(4個の)クロックドメイン2に対して共通に、1個設けられる。
【0036】
パス7は、クロックセル4から供給されたクロックSysClk’を入力として、OV(OVer delay)/RC(RaCing)信号と信号Xaを出力する。OV/RC信号は、パス7の状態を示し、多数決回路51へ入力される。信号Xaは、OR回路53に入力される。
【0037】
パス7がクリティカルパスであり、クロックSysClk’の印加によりオーバーディレイとなった場合、OV/RC信号はOV信号(オーバーディレイの検出信号)となる。パス7がレーシングパスであり、クロックSysClk’の印加によりレーシングとなった場合、OV/RC信号はRC信号(レーシングの検出信号)となる。
【0038】
パス7が出力するフェイル信号Xaは、パス7がオーバーディレイ又はレーシングしている状態である場合、信号Xa=1となり、それ以外である場合、信号Xa=0の出力となる(図6を参照して後述する)。例えば、クロックドメイン2Aに関するパス7について、OR回路53で、このフェイル信号Xaの全ての論理和を演算した出力がXAとなる。
【0039】
同様に、クロックドメイン2B、2C、2Dについて、それぞれのクロックドメインが有するOR回路による論理和演算の結果である信号XB、XC、XDが得られる。全てのクロックドメイン2A〜2Dのフェイル信号XA、XB、XC、XDの論理和が、OR回路54により出力Xとして得られる。フェイル信号の論理和Xは、LSI1の複数のクロックドメイン2の領域間のクロックのディレイを調整する場合、クロック調整が総合的に適切に調整されたか否かを判断するための信号である。
【0040】
図6は、本実施形態の一態様であるパス7の構成を示す図である。
【0041】
パス7は、送りラッチ71、複数のバッファ74、受けラッチ75、EX−OR回路(EXclusive−OR回路:排他的論理和演算回路)79を備える。複数のバッファ74は、送りラッチ71と受けラッチ75の間に設けられ、信号のスキューの原因となる。
【0042】
送りラッチ71は、保持した信号を送信する信号送信回路であり、インバータ72とラッチ73を備える。送りラッチ71は、複数のバッファ74を介して、所定の信号(即ち、所定のクロック)を受けラッチ75に送信する。受けラッチ75は、信号受信回路であり、ラッチ76、ラッチ77、バッファ78を備える。受けラッチ75は、複数のバッファ74を介して送信された前記所定の信号を受信して保持する。
【0043】
送りラッチ71は、送りラッチ71が属するクロックドメイン2のクロックSysClk’を基準として、送りの信号を出力する。受けラッチ75は、受けラッチ75が属するクロックドメイン2(送りラッチ71が属するクロックドメイン2以外)のクロックSysClk’(Z)を基準として、送りラッチが送信した送りの信号を受信する。パス7の送りラッチ71内のラッチ73は、クロックSysClk’を入力として動作する。
【0044】
ラッチ73の出力は、入力された信号を反転して出力するインバータ72を介してラッチ73の入力へ接続されている。このため、ラッチ73の出力は、クロックSysClk’の毎サイクル毎に信号が反転する。
【0045】
送りラッチ71の送りの信号が受けラッチ75へ転送された場合、受けラッチ75は、クロックSysClk’(Z)のクロックを基準に、送りの信号を受信する。この場合、送りラッチ71から受けラッチ75内のラッチ77への転送時間は、バッファ74が余分に1個介在するため、ラッチ76の転送時間よりも長くかかる。クロック調整回路は、この転送時間の違いを利用して、パス7のオーバーディレイ、又はレーシング状態を検出する。
【0046】
例えば、パス7がクリティカルパスで、受けラッチ75内の2つのラッチ76と77の出力の値が異なる場合、ラッチ77がオーバーディレイしている。また、パス7がレーシングパスで、受けラッチ75内の2つのラッチ76と77の出力の値が異なる場合、ラッチ76がレーシングしている。一方、ラッチ76とラッチ77の出力の値が同じである場合、パス7は、正常な動作状態である。
【0047】
ラッチ76と、ラッチ77の出力をEX−OR回路79により排他論理和をとることにより、ラッチ76とラッチ77の出力の値が異なる場合、EX−OR回路79は、信号Xa=1を出力する。一方、排他的論理和演算の結果、ラッチ76とラッチ77の値が同じである場合、EX−OR回路79は、信号Xa=0を出力する。これにより、パス7のオーバーディレイ又はレーシングの状態を検出することが可能となる。
【0048】
図5に戻って、多数決回路51は、クロックSysClk’の位相を進めるか遅らすかの判断を以下の処理に基づいて決定する。多数決回路51は、当該パス7の種類(クリティカルパスであるかレーシングパスであるか)に基づいて、各々のパス7から出力されるOV/RC信号がOV信号であるかRC信号であるかを判断する。多数決回路51は、上記判断した複数のOV信号と複数のRC信号、各々のパス7の転送の方向により、クロックドメイン2のクロックSysClk’を早くするか、遅くするかの複数の論理の多数決を取り決定する。
【0049】
図7(B)は、多数決回路51の出力する信号FOSと信号IHの論理に対するクロック調整ラッチ回路52が備えるアップダウンカウンタ522(図8に示す)の動作真理値表51Aを示す。
【0050】
信号IH=1(かつ信号FOS=1又は0)である場合、クロック調整ラッチ回路52に対するクロックSysClk’のディレイ設定を変更しない要求信号である。クロック調整ラッチ回路52は、クロックSysClk’のディレイ設定を変更しないようにする。この場合、アップダウンカウンタ522は、カウント動作を保持する状態となる。
【0051】
信号IH=0かつ信号FOS=1である場合、クロック調整ラッチ回路52に対するクロックSysClk’を早くする要求信号である。この場合、アップダウンカウンタ522は、カウント動作をアップカウントにする。
【0052】
信号IH=0かつ信号FOS=0である場合、クロック調整ラッチ回路52に対するクロックSysClk’を遅くする信号要求である。この場合、アップダウンカウンタ522は、カウント動作をダウンカウントにする。
【0053】
以上により、多数決回路51は、パス7のOV/RC信号に基づいて、クロック調整ラッチ回路52のディレイの設定値の変更を指示することができる。
【0054】
図5に戻って、多数決回路51は、前記決定に基づいて、クロックドメイン2のクロックSysClk’の位相を進める信号FOS=1、又は、位相を遅らせる信号FOS=0、もしくは、変更しない信号IH=1(位相を進める信号と位相を遅らせる信号の数が同じである場合も含む)をクロック調整ラッチ回路52に出力する。
【0055】
図7(A)は本実施形態の一態様である多数決回路の入出力信号の接続を示す。図7(A)において、多数決回路51は、クロックドメイン2毎のクロック調整部5に備えられている。
【0056】
多数決回路51は、各々のパス7から出力される複数のOV/RC信号を入力とし、設計時のパスの設定からOV信号であるか、RC信号であるかの判断を行う。また、多数決回路51は、OV/RC信号がクロックSysClk’を早くする信号に対応するか、遅くする信号に対応するかの判断を行う。
【0057】
多数決回路51は、上記対応する信号を判断し、クロックドメイン2のクロックSysClk’を早くする信号と、クロックを遅くする信号として多数決をとる。多数決回路51は、クロックを早くする場合には信号FOS=1、又は、クロックを遅くする場合には信号FOS=0、もしくは変更しない場合には信号IH=1をクロック調整ラッチ回路52に出力する。
【0058】
例えば、具体的には、多数決回路51は、送りラッチがクロックドメイン2A、受けラッチがクロックドメイン2B、パス7が擬似クリティカルパスのとき、クロックSysClk’を印加して、オーバーディレイの状態となった場合、OV信号を検出する。この場合、クロックドメイン2Aの多数決回路51は、クロックドメイン2AのクロックSysClk’の位相を進める信号として、多数決判断の入力とする。
【0059】
また、受けラッチのクロックドメイン2Bの多数決回路51は、クロックドメイン2BのクロックSysClk’の位相を遅らせる信号として、多数決判断の入力とする構成であっても良い。即ち、少なくとも、上記クロックドメイン2A、2BのいずれかのクロックSysClk’の位相を進めるか又は位相を遅らせるかの信号を、各々のクロックドメイン2の多数決回路51が、多数決判断に使用する構成であれば良い。
【0060】
図5に戻って、クロック調整ラッチ回路52は、信号FOSと信号IHに基づいて、クロックSysClkのディレイの設定値の増減又は、変更しないことを選択する。クロック調整ラッチ回路52は、このディレイの設定値をCK調整ラッチ更新用クロックに基づいて更新する。前述したように、クロックセル4が、クロック調整ラッチ回路52の設定したディレイの設定値に従い、クロックSysClkをディレイさせることにより位相を変化させたクロックSysClk’を供給する。
【0061】
パス7から出力されるフェイル信号Xaは、オーバーディレイ又はレーシングである場合は、1を出力する。クロック調整ラッチ回路52のクロックSysClk’のディレイ調整が十分でない場合、いずれかのパス7からフェイル信号Xa=1が生成されるため、信号X=1となる。
【0062】
以上のように、クロック調整回路は、クロックのディレイを調整した後のパス状態を、フェイル信号の信号Xを監視することにより行うことができる。このため、クロック調整回路は、信号X=0となるようにクロックのディレイを調整することにより、クロックドメイン2の領域間のクロックの位相を揃えてクロックスキューの調整を行うことができる。
【0063】
また、クロック調整回路は、LSIが動作中において、クロックのディレイの変化を監視することができ、そのクロックのディレイの変化に従い、クロックのディレイを調整することが可能となる。
【0064】
図8は、本実施形態の一態様であるクロック調整ラッチ回路の構成を示す図である。
【0065】
クロック調整ラッチ回路52は、複数のラッチ521とアップダウンカウンタ522を備える。
【0066】
複数のラッチ521は、クロックセル4のクロックのディレイの設定値を複数のビット情報として保持する。ラッチ521は、CK調整ラッチ更新用クロックが入力された場合、アップダウンカウンタ522のカウント値を読込み、ラッチ521のデータを更新する。
【0067】
アップダウンカウンタ522は、カウント値によりディレイの設定値を増やすか、減らすかの処理を行う。この場合、アップダウンカウンタ522は、前述の図7(B)の説明の通り、信号FOS、信号IHの入力信号から図7(B)に示した動作真理値表51Aに基づいて、クロックSysClkによりカウンタの動作を行う。例えば、“信号FOS=1、信号IH=0”である場合、アップダウンカウンタ522は、現在のカウント値から1カウント分、ディレイの設定値を増やす。一方、“信号FOS=0、信号IH=0”である場合、アップダウンカウンタ522は、現在のカウント値から1カウント分、ディレイの設定値を減らす。
【0068】
ラッチ521は、CK調整ラッチ更新用クロックがラッチ521に入力されると、アップダウンカウンタ522のカウント値を読込む。その結果、ラッチ521の出力が更新され、クロック調整ラッチ回路52のディレイの設定値は更新されることとなる。
【0069】
以上により、クロックセル4が、この更新されたディレイの設定値に基づいて、クロックSysClkのディレイ設定を行い、ディレイされたクロックとして位相を変化させたクロックSysClk’をクロックドメイン2内の各々の回路へ供給する。
【0070】
図9は、本実施形態の一態様であるクロック調整回路におけるクロック調整処理の処理フローを示す。
【0071】
LSIの製造後、クロック調整回路を調整するため、LSIテスタ等で、クロック調整ラッチ回路52に初期値をスキャンインし、ディレイの設定値の初期化を行う(ステップS1)。
【0072】
LSI1のパス7のクリティカルパス等の送りラッチ71、受けラッチ75に初期値をスキャンインし、初期化を行う(ステップS2)。
【0073】
LSI1の調整工程の初期においては、設計目標周波数より低い周波数で、クロックSysClkを2発印加する。ただし、クロック調整ラッチ回路52には、CK調整ラッチ更新用クロックは印加しない(ステップS3)。
【0074】
クロック調整ラッチ回路52は、クロックのディレイの設定値を初期値のままで、LSIテスタ等で、フェイル信号Xが0になる十分低い周波数を探す処理を行うため、信号X=0である場合、ステップS5の処理へ移行し、信号X=1である場合、ステップS3の処理へ戻る(ステップS4)。
【0075】
信号X=0である場合、LSIテスタ等の試験周波数を少し上げて、フェイル信号Xを確認する。この場合にも、クロック調整ラッチ回路52には、CK調整ラッチ更新用クロックは印加しない(ステップS5)。信号X=0である場合、ステップS5の処理へ戻り、信号X=1である場合、ステップS7の処理へ移行する(ステップS6)。
【0076】
信号X=1である場合、信号Xが1になった周波数で、クロックSysClkを2発印加した後、CK調整ラッチ更新用クロックを印加して、クロック調整ラッチ回路52のクロックのディレイの設定値を更新する(ステップS7)。次に、信号Xを監視し、信号X=0である場合、ステップS5の処理へ戻り、信号X=1である場合、ステップS9の処理へ移行する(ステップS8)。
【0077】
次に、信号X=1で、ステップS7〜S9の処理の繰り返しが予め定めた所定の回数を超えない場合、ステップS7へ処理を戻す。一方、所定の回数を超えた場合、ステップS10へ処理を移行する(ステップS9)。
【0078】
所定の回数を超えた場合、信号Xが0にならないため、クロック調整ラッチ回路52の設定値を読み出し、クロックセル4へそのディレイの設定値を更新する(ステップS10)。
【0079】
以上の処理で、LSIの製造後、クロック調整回路の調整は終了する。なお、LSI1は、この時のクロックの試験周波数を上限周波数として使用することができる。
【0080】
また、クロック調整回路のLSI動作中のクロックのディレイ調整方法について、図9のフロー中の試験周波数を固定にし、信号X=0となるようにクロックのディレイ調整を行うことにより実現することができる。この場合、LSI以外のCPU等による信号Xの監視と、制御指示を行う構成であっても良い。
【図面の簡単な説明】
【0081】
【図1】クロック調整回路のスキャン信号の構成を示す図である。
【図2】クロック調整回路のシステムクロックのディレイ設定の構成を示す図である。
【図3】クロック調整回路のシステムクロックの構成を示す図である。
【図4】クロック調整回路のパスの構成を示す図である。
【図5】クロック調整回路の構成を示す図である。
【図6】パスの構成を示す図である。
【図7】多数決回路の入出力信号の接続及びアップダウンカウンタの動作真理値表を示す図である。
【図8】クロック調整ラッチ回路の構成を示す図である。
【図9】クロック調整処理フローを示す図である。
【符号の説明】
【0082】
1 LSI
2 クロックドメイン
3 クロック供給部
4 クロックセル
5 クロック調整部
6 スキュー検出部
7 パス
51 多数決回路
52 クロック調整ラッチ回路
53、54 OR回路
71 送りラッチ
72 インバータ
73 ラッチ
74 バッファ
75 受けラッチ
79 EX−OR回路
522 アップダウンカウンタ

【特許請求の範囲】
【請求項1】
内部にクロックを供給することにより動作を行う半導体装置において、
第1のクロックを供給するクロック供給部と、
ディレイ設定値と前記第1のクロックを入力し、前記ディレイ設定値に基づいて前記入力した第1のクロックの位相を変化させた第2のクロックを出力するクロック分配部と、
前記半導体装置内部におけるスキューを検出するスキュー検出部と、
前記スキュー検出部が検出するスキューに基づいて、前記ディレイの設定値を設定するクロック調整部とを有する
ことを特徴とする半導体装置。
【請求項2】
前記スキュー検出部は、前記半導体装置における複数のクリティカルパス又はレーシングパスの検出を行うとともに、
前記クロック調整部が、更に、前記複数のクリティカルパス又はレーシングパスについて検出されたスキューの多数決に基づいて、前記ディレイの設定値の増減を定める多数決回路を備える
ことを特徴とする請求項1記載の半導体装置。
【請求項3】
前記クロック調整部、スキュー検出部及びクロック分配部が、当該クロック調整回路が設けられる半導体装置の基板を複数の領域に分割した場合における、各々の領域に設けられ、
前記スキュー検出部が、その入力部又は出力部の一方が自己の属する領域に設けられ、その入力部又は出力部の他方が自己の属さない領域に設けられる、少なくとも1個のクリティカルパス又はレーシングパスを検出するとともに、
前記クロックセルが、前記第2のクロックを、前記自己の属する領域に設けられる回路に供給する
ことを特徴とする請求項1記載の半導体装置。
【請求項4】
前記複数の領域に設けられた前記クロック調整部が、前記ディレイの設定値の初期値の設定のためのチェーン回路を構成するように接続され、前記チェーン回路が前記半導体装置の入力端子及び出力端子の間に接続される
ことを特徴とする請求項3記載の半導体装置。
【請求項5】
内部にクロックを供給することにより動作を行う半導体装置の制御方法において、
クロック供給部が、第1のクロックを供給するステップと、
クロック分配部が、ディレイ設定値と前記第1のクロックを入力し、前記ディレイ設定値に基づいて前記入力した第1のクロックの位相を変化させた第2のクロックを出力するステップと、
スキュー検出部が、前記半導体装置内部におけるスキューを検出するステップと、
クロック調整部が、前記スキュー検出部が検出するスキューに基づいて、前記ディレイの設定値を設定するステップとを有する
ことを特徴とする半導体装置の制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2010−73761(P2010−73761A)
【公開日】平成22年4月2日(2010.4.2)
【国際特許分類】
【出願番号】特願2008−237338(P2008−237338)
【出願日】平成20年9月17日(2008.9.17)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】