(57)【要約】      （修正有）【課題】異なるクロックドメインのスキャンチェーン間のバッファを不要とし、チップ面積を小さくすることができる集積回路を提供する。【解決手段】異なるクロックドメインである論理回路２，３の各スキャンチェーン間にメモリー４を配置し、スキャンチェーン間の配線３８，４８がメモリー４の領域上部をその配線領域として、メモリー４を横切るように各スキャンチェーンを結線することで、メモリー４の領域上部の配線３８，４８に大きな配線遅延を生じさせてクロック遅延時間差を吸収し、スキャンチェーンのホールド時間を確保する。これにより、バッファ領域が不要になり、チップ面積を小さくすることができる。【選択図】図１
2005257469.tif 000002
【特許請求の範囲】
【請求項１】
複数のスキャンチェーンと、
その上部に配線が配置されるメモリーとを備え、
前記各スキャンチェーンは、前記メモリー上部の配線を介して、前記複数のスキャンチェーンのうちの他のスキャンチェーンに結線される、
ことを特徴とする集積回路。
【請求項２】
それぞれクロックドメインが異なり、かつ、それぞれがスキャンチェーンを有する複数の論理回路と、
その上部に配線が配置されるメモリーとを備え、
前記各論理回路のスキャンチェーンは、前記メモリー上部の配線を介して、前記複数の論理回路のうちの他の論理回路のスキャンチェーンに結線される、
ことを特徴とする集積回路。
【請求項３】
スキャンチェーンを有する論理回路と、
前記論理回路とはクロックドメインが異なり、かつ、スキャンチェーンを有するテスト専用回路と、
その上部に配線が配置されるメモリーとを備え、
前記論理回路のスキャンチェーンと前記テスト専用回路のスキャンチェーンとは、前記メモリー上部の配線を介して結線される、
ことを特徴とする集積回路。
【請求項４】
請求項１ないし３のいずれかに記載の集積回路において、
前記メモリー上部には、その配線長、配線幅、及び配線高がそれぞれ同一の複数の配線が配置される、
ことを特徴とする集積回路。
【請求項５】
請求項１ないし３のいずれかに記載の集積回路において、
前記メモリー上部には、その配線幅及び／または配線高がそれぞれ異なる複数の配線が配置される、
ことを特徴とする集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路に関し、特に、例えばＣＭＯＳ構成による大規模なデジタル回路で複数のクロック系統を有しスキャンテストが行なわれるものに関するものである。
【背景技術】
【０００２】
従来の集積回路のスキャンテストに関する技術としては、同期信号のスキューが一定値以下に保証されていないフリップフロップ間のパスが活性化されたとき生じるスキャンチェーンのホールドエラーを回避するものがある（例えば、特許文献１参照。）。
【０００３】
しかし、大規模な集積回路で異種クロックを含むスキャン回路のホールドエラーを回避する技術は見当たらず、集積化が進み多くのクロックドメインが異なる異種クロックを含む論理回路を同時に検査する場合には、異なるクロックドメインのスキャンチェーンを結線することでスキャンチェーンの増加を相殺してきた。
【０００４】
図８は、従来の集積回路を示すブロック図である。
図８において、１００１はワンチップ化された集積回路、１００２，１００３はシステムを有する論理回路、１００４は論理回路１００２により制御されるメモリー、１００５はクロックの生成と供給とを行なうクロック部、１００６はクロックを発振するＰＬＬ、１０１０，１０１１，１０２０，１０２１は外部から論理回路１００２に信号を与える端子、１０１２，１０１３は外部から論理回路１００３に信号を与える端子、１０１５は外部からクロック部５に信号を与える端子、１０３０は端子１０２０の信号を内部に伝える信号線、１０３１は端子１０１０の信号を内部に伝える信号線、１０３２は信号線１０３０または信号線１０３１のいずれか一方を選択する選択器、１０３３は選択器１０３２の出力をラッチするフリップフロップ（以降ＦＦと記載する）、１０３４はＦＦ１０３３の出力を伝える信号線、１０３５は端子１０１１の信号を内部に伝える信号線、１０３６は信号線１０３４または信号線１０３５のいずれか一方を選択する選択器、１０３７は選択器１０３６の出力をラッチするＦＦ、１０３８はＦＦ１０３７の出力を伝える信号線、１０３９は信号線１０３４及び信号線１０３８の信号から動作・機能する組み合わせ回路、１０４０は端子１０２１の信号を内部に伝える信号線、１０４１は組み合わせ回路１０３９の出力である信号線、１０４２は信号線１０４０または信号線１０４１のいずれか一方を選択する選択器、１０４３は選択器１０４２の出力をラッチするＦＦ、１０４４はＦＦ１０４３の出力を伝える信号線、１０４５は組み合わせ回路１０３９の出力である信号線、１０４６は信号線１０４４または信号線１０４５のいずれか一方を選択する選択器、１０４７は選択器１０４６の出力をラッチするＦＦ、１０４８はＦＦ１０４７の出力を伝える信号線、１０４９は信号線１０４４及び信号線１０４８の信号から動作・機能する組み合わせ回路、１０５０，１０５１は組み合わせ回路１０４９の出力である信号線、１０２２は信号線１０５０の信号を外部に伝える端子、１０２３は信号線１０５１の信号を外部に伝える端子、１０５６はメモリー１００４を制御するための組み合わせ回路１０３９からの信号線、１０５７はメモリー１００４を制御するための組み合わせ回路１０４９からの信号線、１１１０は信号線１０３８の信号のホールド時間を確保するための遅延素子としてのバッファ、１１１１は信号線１０４８の信号のホールド時間を確保するための遅延素子としてのバッファ、１０６０はバッファ１１１０の出力を論理回路１００３に伝える信号線、１０６１は端子１０１２の信号を内部に伝える信号線、１０６２は信号線１０６０または信号線１０６１のいずれか一方を選択する選択器、１０６３は選択器１０６２の出力をラッチするＦＦ、１０６４はＦＦ１０６３の出力を伝える信号線、１０６５は端子１０１３の信号を内部に伝える信号線、１０６６は信号線１０６４または信号線１０６５のいずれか一方を選択する選択器、１０６７は選択器１０６６の出力をラッチするＦＦ、１０６８はＦＦ１０６７の出力を伝える信号線、１０６９は信号線１０６４及び信号線１０６８の信号から動作・機能する組み合わせ回路、１０７０はバッファ１１１１の出力を論理回路１００３に伝える信号線、１０７１は組み合わせ回路１０６９の出力である信号線、１０７２は信号線１０７０または信号線１０７１のいずれか一方を選択する選択器、１０７３は選択器１０７２の出力をラッチするＦＦ、１０７４はＦＦ１０７３の出力を伝える信号線、１０７５は組み合わせ回路１０６９の出力である信号線、１０７６は信号線１０７４または信号線１０７５のいずれか一方を選択する選択器、１０７７は選択器１０７６の出力をラッチするＦＦ、１０７８はＦＦ１０７７の出力を伝える信号線、１０７９は信号線１０７４及び信号線１０７８の信号から動作・機能する組み合わせ回路、１０８０，１０８１は組み合わせ回路１０７９の出力である信号線、１０２５は信号線１０６８の信号を外部に伝える端子、１０２６は信号線１０７８の信号を外部に伝える端子、１０２７は信号線１０８０の信号を外部に伝える端子、１０２８は信号線１０８１の信号を外部に伝える端子、１０５２は端子１０１５からのテスト用のクロックをクロック部１００５に伝えるクロック、１０５３はＰＬＬ１００６から生成される論理回路１００２のための通常動作用のクロック、１０５４はクロック１０５２またはクロック１０５３のいずれか一方を選択する選択器、１０５５は論理回路１００２に供給するクロック、１０８３はＰＬＬ１００６から生成される論理回路１００３のための通常動作用のクロック、１０８４はクロック１０５２またはクロック１０８３のいずれか一方を選択する選択器、１０８５は論理回路１００３に供給するクロックである。
【０００５】
図９は、従来の集積回路の通常動作時のタイミングチャートである。
図９において、１２００はＰＬＬ１００６からのクロック１０５４へ供給するクロック波形、１２０１は末端であるＦＦ１０３３，ＦＦ１０３７，ＦＦ１０４３，ＦＦ１０４７に供給されるクロック１０５５のクロック波形、１２０２はＰＬＬ１００６からのクロック１０８３へ供給するクロック波形、１２０３は末端であるＦＦ１０６３，ＦＦ１０６７，ＦＦ１０７３，ＦＦ１０７７に供給されるクロック１０８５のクロック波形、１２０５はクロック波形１２０１とクロック波形１２００との遅延時間差、１２０６はクロック波形１２０３とクロック波形１２０２との遅延時間差である。
【０００６】
図１０は、従来の集積回路のスキャンテスト時のタイミングチャートである。
図１０において、１２１０は端子１０１５から供給するクロック波形、１２１１は末端であるＦＦ１０３３，ＦＦ１０３７，ＦＦ１０４３，ＦＦ１０４７に供給されるクロック１０５５のクロック波形、１２１２は末端であるＦＦ１０６３，ＦＦ１０６７，ＦＦ１０７３，ＦＦ１０７７に供給されるクロック１０８５のクロック波形、１２１５はクロック波形１２１１とクロック波形１２１０との遅延時間差、１２１６はクロック波形１２１２とクロック波形１２１０との遅延時間差である。
【０００７】
以上のように構成された従来の集積回路の動作について説明する。
まず通常動作について説明する。
通常動作時には、選択器１０５４はクロック１０５３を、選択器１０８４はクロック１０８３を、選択器１０３２は信号線１０３１を、選択器１０３６は信号線１０３５を、選択器１０４２は信号線１０４１を、選択器１０４６は信号線１０４５を、選択器１０６２は信号線１０６１を、選択器１０６６は信号線１０６５を、選択器１０７２は信号線１０７１を、選択器１０７６は信号線１０７５を、それぞれ選択する。
【０００８】
論理回路１００２では、端子１０１０からの信号が信号線１０３１、選択器１０３２を経てＦＦ１０３３にラッチされると同時に、端子１０１１からの信号が信号線１０３５、選択器１０３６を経てＦＦ１０３７にラッチされる。組み合わせ回路１０３９は、信号線１０３４及び信号線１０３８の値に従い通常動作の仕様に基づき信号線１０４１、信号線１０４５、及び信号線１０５６に信号を出力する。
【０００９】
信号線１０４１の信号は選択器１０４２を経てＦＦ１０４３にラッチされ、信号線１０４５の信号は選択器１０４６を経てＦＦ１０４７にラッチされる。組み合わせ回路１０４９は、信号線１０４４及び信号線１０４８の値に従いパイプライン処理を伴って通常動作の仕様に基づき信号線１０５０、信号線１０５１、及び信号線１０５７に信号を出力する。
【００１０】
ＦＦ１０３３、ＦＦ１０３７、ＦＦ１０４３、及びＦＦ１０４７のクロックはＰＬＬ１００６が発振する論理回路１００２に適した周波数が、クロック１０５３、選択器１０５４、クロック１０５５を経て同じように伝播する。
【００１１】
メモリー１００４は信号線１０５６及び信号線１０５７の値に基づいて読み出しや書き込みなどの制御が行なわれる。
【００１２】
信号線１０５０の値が端子１０２２に、信号線１０５１の値が端子１０２３にそれぞれ伝播する。一般には端子１０２２及び端子１０２３は外付けの集積回路に情報を伝達することになる。
【００１３】
論理回路１００３では、端子１０１２からの信号が信号線１０６１及び選択器１０６２を経てＦＦ１０６３にラッチされると同時に、端子１０１３からの信号が信号線１０６５及び選択器１０６６を経てＦＦ１０６７にラッチされる。組み合わせ回路１０６９は、信号線１０６４及び信号線１０６８の値に従い通常動作の仕様に基づき信号線１０７１及び信号線１０７５に信号を出力する。
【００１４】
信号線１０７１の信号は選択器１０７２を経てＦＦ１０７３にラッチされ、信号線１０７５の信号は選択器１０７６を経てＦＦ１０７７にラッチされる。組み合わせ回路１０７９は、信号線１０７４及び信号線１０７８の値に従いパイプライン処理を伴って通常動作の仕様に基づき信号線１０８０及び信号線１０８１に信号を出力する。
【００１５】
ＦＦ１０６３、ＦＦ１０６７、ＦＦ１０７３、及びＦＦ１０７７のクロックはＰＬＬ１００６が発振する論理回路１００３に適した周波数が、クロック１０８３、選択器１０８４、クロック１０８５を経て同じように伝播する。
【００１６】
信号線１０８０の値が端子１０２７に、信号線１０８１の値が端子１０２８にそれぞれ伝播する。一般には端子１０２７及び端子１０２８は外付けの集積回路に情報を伝達することになる。
【００１７】
ここで、論理回路１００３は、たとえばＭＰＥＧ２やＭＰＥＧ４などの複数の異なる画像圧縮形式がデコード可能な画像プロセッサ等を、論理回路１００２は、論理回路１００３を制御する１６ビットや３２ビットのシステムコントローラ等をそれぞれ想定しており、論理回路１００２と論理回路１００３とはクロックが異なることで独立して動作が可能である。このような状態をクロックドメインが異なるという。一般にレイアウト設計時には、クロック１０５５とクロック１０８５とのクロックの遅延調整は独立して行なわれ、ＰＬＬ１００６から各クロックドメインの末端ＦＦまでの到達時間は異なる場合が多い。
【００１８】
本集積回路１００１では、ＰＬＬ１００６でクロック１０５３及びクロック１０８３のポジエッジの位相が、クロック波形１２００及びクロック波形１２０２に示されるように同一であっても、論理回路１００２及び論理回路１００３の末端ＦＦに到達するまでに、それぞれ１２０５及び１２０６に示される遅延時間差が生じるため、クロック１０５５のクロック波形及びクロック１０８５のクロック波形は、それぞれ１２０１及び１２０３に示されるようになる。ここでは、
（遅延時間差１２０６）＞（遅延時間差１２０５）
の関係が成立するものとする。
【００１９】
つづいて、スキャンテスト時の動作について説明する。
スキャンシフト時には、選択器１０５４及び選択器１０８４はクロック１０５２を、選択器１０３２は信号線１０３０を、選択器１０３６は信号線１０３４を、選択器１０４２は信号線１０４０を、選択器１０４６は信号線１０４４を、選択器１０６２は信号線１０６０を、選択器１０６６は信号線１０６４を、選択器１０７２は信号線１０７０を、選択器１０７６は信号線１０７４を、それぞれ選択する。
【００２０】
スキャンシフト時には、一般にスキャンチェーンと呼ばれる経路が構成される。
スキャンチェーンが構成される場合のクロックは、クロックドメインが異なる場合でもテスト端子を節約するため、テスト用のクロック信号が端子１０１５から入力され、論理回路１００２にはクロック１０５２、選択器１０５４、クロック１０５５を経て、ＦＦ１０３３、ＦＦ１０３７、ＦＦ１０４３、及びＦＦ１０４７に供給され、論理回路１００３にはクロック１０５２、選択器１０８４、クロック１０８５を経て、ＦＦ１０６３、ＦＦ１０６７、ＦＦ１０７３、及びＦＦ１０７７に供給される。すなわちＦＦ１０３３、ＦＦ１０３７、ＦＦ１０４３、ＦＦ１０４７、ＦＦ１０６３、ＦＦ１０６７、ＦＦ１０７３、及びＦＦ１０７７には、ともに同一クロックが供給される。
【００２１】
端子１０１５での波形はクロック波形１２１０で示される。通常動作と同様に、クロックが論理回路１００２及び論理回路１００３の末端ＦＦに到達するまでには、遅延時間差１２１５及び遅延時間差１２１６が生じるため、クロック１０５５のクロック波形及びクロック１０８５のクロック波形は、それぞれ１２１１及び１２１２に示されるようになる。ここでは、
（遅延時間差１２１６）＞（遅延時間差１２１５）
の関係が成立するものとする。
【００２２】
ＦＦ１０３３とＦＦ１０３７とが接続される第１のスキャンチェーンでは、外部の端子１０２０からの信号が信号線１０３０、選択器１０３２を経てＦＦ１０３３にラッチされ、ＦＦ１０３３の出力は信号線１０３４、選択器１０３６を経てＦＦ１０３７にラッチされ信号線１０３８に伝播する。
【００２３】
バッファ１１１０は、クロック１０５５及びクロック１０８５の遅延時間差分（時間差Δ＝遅延時間差１２１６−遅延時間差１２１５）を遅延させることで、スキャンチェーンのホールド時間を確保し、論理回路１００２から論理回路１００３に信号を伝播させる際にＦＦがシフトレジスタとして動作するよう保証する。
【００２４】
バッファ１１１０の出力は、信号線１０６０、選択器１０６２を経てＦＦ１０６３にラッチされる。ＦＦ１０６３の出力は、信号線１０６４、選択器１０６７を経てＦＦ１０６７にラッチされる。ＦＦ１０６７の出力は、信号線１０６８を経て端子１０２５で観測することができる。
【００２５】
ＦＦ１０４３とＦＦ１０４７とが接続される第２のスキャンチェーンでは、外部の端子１０２１からの信号が信号線１０４０、選択器１０４２を経てＦＦ１０４３にラッチされ、ＦＦ１０４３の出力は信号線１０４４、選択器１０４６を経てＦＦ１０４７にラッチされ信号線１０４８に伝播する。
【００２６】
バッファ１１１１は、クロック１０５５及びクロック１０８５の遅延時間差分（時間差Δ＝遅延時間差１２１６−遅延時間差１２１５）を遅延させることで、スキャンチェーンのホールド時間を確保し、論理回路１００２から論理回路１００３に信号を伝播させる際にＦＦがシフトレジスタとして動作するよう保証する。
【００２７】
バッファ１１１１の出力は、信号線１０７０、選択器１０７２を経てＦＦ１０７３にラッチされる。ＦＦ１０７３の出力は、信号線１０７４、選択器１０７７を経てＦＦ１０７７にラッチされる。ＦＦ１０７７の出力は、信号線１０７８を経て端子１０２６で観測することができる。
【００２８】
スキャンキャプチャ時には、選択器１０５４及び選択器１０８４はクロック１０５２を、選択器１０３２は信号線１０３１を、選択器１０３６は信号線１０３５を、選択器１０４２は信号線１０４１を、選択器１０４６は信号線１０４５を、選択器１０６２は信号線１０６１を、選択器１０６６は信号線１０６５を、選択器１０７２は信号線１０７１を、選択器１０７６は信号線１０７５を、それぞれ選択する。
【００２９】
すなわち、スキャンキャプチャ時の動作は、選択器１０５４及び選択器１０８４のクロックラインをスキャンシフト時と同様に選択する他は、全て通常動作と同じである。
【００３０】
そして、スキャンテストは、スキャンシフトにより外部からＦＦ１０３３、ＦＦ１０３７、ＦＦ１０６３、及びＦＦ１０６７を設定し、１クロックサイクルのみスキャンキャプチャ動作をさせることで組み合わせ回路１０３９、及び組み合わせ回路１０６９の出力をＦＦ１０４３、ＦＦ１０４７、ＦＦ１０７３、及びＦＦ１０７７にラッチさせ、引き続いてスキャンシフトさせることで組み合わせ回路１０３９、及び組み合わせ回路１０６９の不具合を検出する。
【００３１】
同様に、スキャンシフトにより外部からＦＦ１０４３、ＦＦ１０４７、ＦＦ１０７３、及びＦＦ１０７７を設定し、１クロックサイクルのみスキャンキャプチャ動作をさせ、組み合わせ回路１０４９、及び組み合わせ回路１０７９の出力先である端子１０２２、端子１０２３、端子１０２７、端子１０２８を観測することにより組み合わせ回路１０４９、及び組み合わせ回路１０７９の不具合を検出する。
一方、スキャンテストが行なわれる集積回路には、テスト専用回路を有するものもある。
【００３２】
以下に、従来のテスト専用回路を有する集積回路について説明する。
図１１は、従来のテスト専用回路を有する集積回路を示すブロック図である。
図１１において、２００１はワンチップ化された集積回路、１００２はシステムを有する論理回路、１００４，１００７は論理回路１００２により制御されるメモリー、１００５はクロックの生成と供給とを行なうクロック部、１００６はクロックを発振するＰＬＬ、１０９０はテスト用のベクタやストレスパターンを生成する乱数発生器、１１００はスキャンテスト時に論理回路１００２からの観測信号を圧縮しビットパターンとして外部に出力する圧縮器、１０１０，１０１１は外部から論理回路１００２に信号を与える端子、１０２０は外部から乱数発生器１０９０に信号を与える端子、１０９１は端子１０２０の信号を乱数発生器１０９０に伝える信号線、１０９２は乱数発生回路、１０９３は乱数発生回路１０９２が生成した乱数を伝える信号線、１０９４，１０９６は信号線１０９３をラッチするＦＦ、１０９５はＦＦ１０９４の出力を伝える信号線、１０９７はＦＦ１０９７の出力を伝える信号線、１１２０は信号線１０９５の信号のホールド時間を確保するための遅延素子としてのバッファ、１１２１は信号線１０９７の信号のホールド時間を確保するための遅延素子としてのバッファ、２０３０はバッファ１１２０の出力を伝える信号線、１０３１は端子１０１０の信号を内部に伝える信号線、１０３２は信号線２０３０または信号線１０３１のいずれか一方を選択する選択器、１０３３は選択器１０３２の出力をラッチするＦＦ、１０３４はＦＦ１０３３の出力を伝える信号線、１０３５は端子１０１１の信号を内部に伝える信号線、１０３６は信号線１０３４または信号線１０３５のいずれか一方を選択する選択器、１０３７は選択器１０３６の出力をラッチするＦＦ、１０３８はＦＦ１０３７の出力を伝える信号線、１０３９は信号線１０３４及び信号線１０３８の信号から動作・機能する組み合わせ回路、２０４０はバッファ１１２１の信号を伝える信号線、１０４１は組み合わせ回路１０３９の出力である信号線、１０４２は信号線２０４０または信号線１０４１のいずれか一方を選択する選択器、１０４３は選択器１０４２の出力をラッチするＦＦ、１０４４はＦＦ１０４３の出力を伝える信号線、１０４５は組み合わせ回路１０３９の出力である信号線、１０４６は信号線１０４４または信号線１０４５のいずれか一方を選択する選択器、１０４７は選択器１０４６の出力をラッチするＦＦ、１０４８はＦＦ１０４７の出力を伝える信号線、１０４９は信号線１０４４及び信号線１０４８の信号から動作・機能する組み合わせ回路、１０５０，１０５１は組み合わせ回路１０４９の出力である信号線、１０２２は信号線１０５０の信号を外部に伝える端子、１０２３は信号線１０５１の信号を外部に伝える端子、１０５６はメモリー１００４を制御するための組み合わせ回路１０３９からの信号線、１０５７はメモリー１００４を制御するための組み合わせ回路１０４９からの信号線、１０５８はメモリー１００７を制御するための組み合わせ回路１０３９からの信号線、１０５９はメモリー１００７を制御するための組み合わせ回路１０４９からの信号線、１１３０は信号線１０３８の信号のホールド時間を確保するための遅延素子としてのバッファ、１１３１は信号線１０４８の信号のホールド時間を確保するための遅延素子としてのバッファ、１１３２はバッファ１１３０の出力を伝える信号線、１１３３はバッファ１１３０の出力を伝える信号線、１１０５は圧縮信号を生成する圧縮回路、１１０１は圧縮回路１１０５の出力を伝える信号線、１１０２は信号線１１０１、またはゼロ（グラウンド）のいずれか一方を選択する選択器、１１０３は選択器１１０２の出力をラッチするＦＦ、１１０４はＦＦ１１０３の出力を伝える信号線、１１０６は圧縮回路１１０５の出力を伝える信号線、１１０７は信号線１１０６または信号線１１０４のいずれか一方を選択する選択器、１１０８は選択器１１０７の出力をラッチするＦＦ、１１０９はＦＦ１１０８の出力を伝える信号線、１０２７は信号線１１０９の信号を外部に伝える端子、１０５２は端子１０１５からのテスト用のクロックをクロック部１００５に伝えるクロック、１０５３はＰＬＬ１００６から生成される論理回路１００２のための通常動作用のクロック、１０５４はクロック１０５２またはクロック１０５３のいずれか一方を選択する選択器、１０５５は論理回路１００２に供給するクロック、１１４０はクロック１０５２の遅延調整用のバッファ、１１４１はバッファ１１４０の出力で乱数発生器１０９０に供給するクロック、１１４２はクロック１０５２の遅延調整用のバッファ、１１４３はバッファ１１４２の出力で圧縮器１１００に供給するクロックである。
【００３３】
図１２は、従来のテスト専用回路を有する集積回路のスキャンテスト時のタイミングチャートである。
【００３４】
図１２において、１２１０は端子１０１５から供給するクロック波形、１２１１は末端であるＦＦ１０３３，ＦＦ１０３７，ＦＦ１０４３，ＦＦ１０４７に供給されるクロック１０５５のクロック波形、１２１３は末端であるＦＦ１０９４，ＦＦ１０９６に供給されるクロック１１４１のクロック波形、１２１４は末端であるＦＦ１１０３，ＦＦ１１０８に供給されるクロック１１４３のクロック波形、１２１５はクロック波形１２１１とクロック波形１２１０との遅延時間差、１２１７はクロック波形１２１３とクロック波形１２１０との遅延時間差、１２１８はクロック波形１２１４とクロック波形１２１０との遅延時間差である。
【００３５】
以上のように構成された従来のテスト専用回路を有する集積回路の動作について説明する。
まず通常動作について説明する。
【００３６】
通常動作で動作する回路は、クロック部１００５、及び論理回路１００２のみであり、その動作は、図８に示される集積回路のクロック部１００５及び論理回路１００２の通常動作と同様である。
【００３７】
通常動作時には、選択器１０５４はクロック１０５３を、選択器１０３２は信号線１０３１を、選択器１０３６は信号線１０３５を、選択器１０４２は信号線１０４１を、選択器１０４６は信号線１０４５を、それぞれ選択する。
【００３８】
論理回路１００２では、端子１０１０からの信号が信号線１０３１、選択器１０３２を経てＦＦ１０３３にラッチされると同時に、端子１０１１からの信号が信号線１０３５、選択器１０３６を経てＦＦ１０３７にラッチされる。組み合わせ回路１０３９は、信号線１０３４及び信号線１０３８の値に従い通常動作の仕様に基づき信号線１０４１、信号線１０４５、及び信号線１０５６に信号を出力する。
【００３９】
信号線１０４１の信号は選択器１０４２を経てＦＦ１０４３にラッチされ、信号線１０４５の信号は選択器１０４６を経てＦＦ１０４７にラッチされる。組み合わせ回路１０４９は信号線１０４４及び信号線１０４８の値に従いパイプライン処理を伴って通常動作の仕様に基づき信号線１０５０、信号線１０５１、及び信号線１０５７に信号を出力する。
【００４０】
ＦＦ１０３３、ＦＦ１０３７、ＦＦ１０４３、及びＦＦ１０４７のクロックはＰＬＬ１００６が発振する論理回路１００２に適した周波数が、クロック１０５３、選択器１０５４、クロック１０５５を経て同じように伝播する。
【００４１】
メモリー１００４は信号線１０５６及び信号線１０５７の値に基づいて読み出しや書き込みなどの制御が行なわれ、メモリー１００７は信号線１０５８及び信号線１０５９の値に基づいて読み出しや書き込みなどの制御が行なわれる。
【００４２】
信号線１０５０の値が端子１０２２に、信号線１０５１の値が端子１０２３にそれぞれ伝播する。一般には端子１０２２及び端子１０２３は外付けの集積回路に情報を伝達することになる。
【００４３】
つづいて、スキャンテスト時の動作について説明する。
スキャンテスト時には、テスト用のクロック信号が端子１０１５から入力され、クロック１０５２を経て３系統に供給される。
【００４４】
乱数発生器１０９０にはクロック１０５２、バッファ１１４０を経てクロック１１４１が供給される。論理回路１００２にはクロック１０５２、選択器１０５４、クロック１０５５を経て、ＦＦ１０３３及びＦＦ１０３７と、ＦＦ１０４３及びＦＦ１０４７との２系統のチェーンに対し同一クロックが供給される。圧縮器１１００にはクロック１０５２、バッファ１１４２を経てクロック１１４３が供給される。
【００４５】
このクロックに同期することにより、圧縮器１１００のＦＦ１１０３、及びＦＦ１１０８が初期化される。これには選択器１１０２は接地（グラウンド：論理的にはゼロと等価。）を、選択器１１０７は信号線１１０４を、それぞれ選択する。
【００４６】
クロック１１４３から第１のクロックが入力されるとＦＦ１１０３は選択器１１０２よりゼロをラッチする。第２のクロックが入力されるとＦＦ１１０３の値であるゼロが信号線１１０４、選択器１１０７を経てＦＦ１１０８にラッチされる。
【００４７】
乱数発生器１０９０では、端子１０２０から信号線１０９１を通じて乱数生成回路１０９２に起動信号を送られると、乱数生成回路１０９２は内蔵したアルゴリズムにより乱数を生成する。ここでは２ビット生成されるものとする。この２ビットの乱数が信号線１０９３を経てＦＦ１０９４及びＦＦ１０９６に、クロック１１４１に同期してラッチされる。
【００４８】
ＦＦ１０９４の出力は信号線１０９５を経てバッファ１１２０に伝播し、ＦＦ１０９６の出力は信号線１０９７を経てバッファ１１２１に伝播する。
【００４９】
バッファ１１２０、及びバッファ１１２１は遅延時間差に応じて遅延を生じさせ、それぞれ信号線２０３０、及び信号線２０４０に伝播する。この遅延時間差については後述する。
論理回路１００２にはスキャンシフト時にスキャンチェーンが構成される。
【００５０】
ＦＦ１０３３とＦＦ１０３７とが接続される第１のスキャンチェーンでは、バッファ１１２０からの信号が、信号線２０３０、選択器１０３２を経てＦＦ１０３３にラッチされ、ＦＦ１０３３の出力は信号線１０３４、選択器１０３６を経てＦＦ１０３７にラッチされ信号線１０３８に伝播する。
【００５１】
ＦＦ１０４３とＦＦ１０４７とが接続される第２のスキャンチェーンでは、バッファ１１２１からの信号が、信号線２０４０、選択器１０４２を経てＦＦ１０４３にラッチされ、ＦＦ１０４３の出力は信号線１０４４、選択器１０４６を経てＦＦ１０４７にラッチされ信号線１０４８に伝播する。
【００５２】
ＦＦ１０３７の出力は信号線１０３８を経てバッファ１１３０に伝播し、ＦＦ１０４７の出力は信号線１０４８を経てバッファ１１３１に伝播する。
【００５３】
バッファ１１３０、及びバッファ１１３１は遅延時間差に応じて遅延を生じさせ、それぞれ信号線１１３２、及び信号線１１３３に伝播する。この遅延時間差については後述する。
【００５４】
圧縮器１１００が圧縮動作する際には、選択器１１０２及び選択器１１０７は、それぞれ信号線１１０１及び信号線１１０６を選択する。
【００５５】
圧縮回路１１０５は、バッファ１１３０及びバッファ１１３１の出力である信号線１１３２及び信号線１１３３の値と、上述した初期化動作による信号線１１０４及び信号線１１０９の値とを加算し、結果を２ビット化する。ここで桁あふれが生じた場合には下位２ビットのみを有効とする。
【００５６】
圧縮回路１１０５の結果は、信号線１１０１、及び信号線１１０６に出力される。信号線１１０１の信号は選択器１１０２を経てＦＦ１１０３にラッチされ、信号線１１０６の信号は選択器１１０７を経てＦＦ１１０８にラッチされる。
【００５７】
同様に、ひきつづき、バッファ１１３０及びバッファ１１３１を経た第１及び第２のスキャンチェーンからのシフトデータである信号線１１３２及び信号線１１３３の値と、圧縮器１１００の初期化動作による信号線１１０４及び信号線１１０９の値との加算を行ない、一連の動作を行なう。
【００５８】
第１及び第２のスキャンチェーンのシフトが完了すれば、ＦＦ１１０３、及びＦＦ１１０８の出力を外部で検出する動作を行なう。これには、選択器１１０２は接地を、選択器１１０７は信号線１１０４を、それぞれ選択する。
【００５９】
クロック１１４３から第１のクロックが入力されるとＦＦ１１０３は選択器１１０２よりゼロをラッチする。このとき同時にＦＦ１１０８の出力が信号線１１０９を経て端子１０２７から観測することができる。
【００６０】
第２のクロックが入力されるとＦＦ１１０３の値であるゼロが信号線１１０４、選択器１１０７を経てＦＦ１１０８にラッチされる。このＦＦ１１０８の出力が信号線１１０９を経て端子１０２７から出力されることで、ＦＦ１１０３の値も外部から観測することができる。
【００６１】
そして、スキャンテストは、スキャンシフトを行なって、図８に示される集積回路１００１の場合と同様に、組み合わせ回路１０３９、及び組み合わせ回路１０４９を含む論理回路１００２の不具合を検出する。
【００６２】
ここで、第１及び第２のスキャンチェーンの遅延時間について説明する。
クロック波形１２１０は端子１０１５でのクロック波形である。乱数発生器１０９０、論理回路１００２、及び圧縮器１１００のクロック波形は、それぞれバッファ１１４０、選択器１０５４、及びバッファ１１４２で遅延差が生じ、乱数発生器１０９０のクロック１１４１はクロック波形１２１３、論理回路１００２のクロック１０５５はクロック波形１２１１、圧縮器１１００のクロック１１４３はクロック波形１２１４となる。
【００６３】
したがって、バッファ１１２０及びバッファ１１２１は、クロック波形１２１１とクロック波形１２１３との遅延時間差分（時間差Δ＝遅延時間差１２１５−遅延時間差１２１７）を遅延させる必要がある。
【００６４】
同様に、バッファ１１３０及びバッファ１１３１は、クロック波形１２１４とクロック波形１２１１との遅延時間差分（時間差Δ＝遅延時間差１２１８−遅延時間差１２１５）を遅延させる必要がある。
【特許文献１】特開平１１−１７４１２３号公報
【発明の開示】
【発明が解決しようとする課題】
【００６５】
しかし、上述のような従来の集積回路では、異なるクロックドメインのスキャンチェーンを結線する毎にバッファを挿入してホールド時間を確保するため、チップ面積の増大を招くという問題があった。
【００６６】
本発明は、上記のような従来の問題点を解決するためになされたものであり、チップ面積を小さくすることのできる集積回路を提供することを目的とする。
【課題を解決するための手段】
【００６７】
本発明の請求項１に係る集積回路は、複数のスキャンチェーンと、その上部に配線が配置されるメモリーとを備え、前記各スキャンチェーンが、前記メモリー上部の配線を介して、前記複数のスキャンチェーンのうちの他のスキャンチェーンに結線されるものである。
【００６８】
本発明の請求項２に係る集積回路は、それぞれクロックドメインが異なり、かつ、それぞれがスキャンチェーンを有する複数の論理回路と、その上部に配線が配置されるメモリーとを備え、前記各論理回路のスキャンチェーンが、前記メモリー上部の配線を介して、前記複数の論理回路のうちの他の論理回路のスキャンチェーンに結線されるものである。
【００６９】
本発明の請求項３に係る集積回路は、スキャンチェーンを有する論理回路と、前記論理回路とはクロックドメインが異なり、かつ、スキャンチェーンを有するテスト専用回路と、その上部に配線が配置されるメモリーとを備え、前記論理回路のスキャンチェーンと前記テスト専用回路のスキャンチェーンとが、前記メモリー上部の配線を介して結線されるものである。
【００７０】
本発明の請求項４に係る集積回路は、請求項１ないし３のいずれかに記載の集積回路において、前記メモリー上部には、その配線長、配線幅、及び配線高がそれぞれ同一の複数の配線が配置されるものとしたものである。
【００７１】
本発明の請求項５に係る集積回路は、請求項１ないし３のいずれかに記載の集積回路において、前記メモリー上部には、その配線幅及び／または配線高がそれぞれ異なる複数の配線が配置されるものとしたものである。
【発明の効果】
【００７２】
本発明の請求項１に係る集積回路は、複数のスキャンチェーンと、その上部に配線が配置されるメモリーとを備え、前記各スキャンチェーンが、前記メモリー上部の配線を介して、前記複数のスキャンチェーンのうちの他のスキャンチェーンに結線されるものとしたので、バッファ領域が不要になり、チップ面積を小さくすることができるという効果がある。
【００７３】
本発明の請求項２に係る集積回路は、それぞれクロックドメインが異なり、かつ、それぞれがスキャンチェーンを有する複数の論理回路と、その上部に配線が配置されるメモリーとを備え、前記各論理回路のスキャンチェーンが、前記メモリー上部の配線を介して、前記複数の論理回路のうちの他の論理回路のスキャンチェーンに結線されるものとしたので、バッファ領域が不要になり、チップ面積を小さくすることができるという効果がある。
【００７４】
本発明の請求項３に係る集積回路は、スキャンチェーンを有する論理回路と、前記論理回路とはクロックドメインが異なり、かつ、スキャンチェーンを有するテスト専用回路と、その上部に配線が配置されるメモリーとを備え、前記論理回路のスキャンチェーンと前記テスト専用回路のスキャンチェーンとが、前記メモリー上部の配線を介して結線されるものとしたので、バッファ領域が不要になり、チップ面積を小さくすることができるという効果がある。
【００７５】
本発明の請求項４に係る集積回路は、請求項１ないし３のいずれかに記載の集積回路において、前記メモリー上部に、その配線長、配線幅、及び配線高がそれぞれ同一の複数の配線が配置されるものとしたので、各配線での遅延時間が同一となり、タイミング設計を容易に行なうことができるという効果がある。
【００７６】
本発明の請求項５に係る集積回路は、請求項１ないし３のいずれかに記載の集積回路において、前記メモリー上部に、その配線幅及び／または配線高がそれぞれ異なる複数の配線が配置されるものとしたので、各配線毎に異なる遅延時間差を設定することができるという効果がある。
【発明を実施するための最良の形態】
【００７７】
以下に、本発明の実施の形態について、図面を参照しながら説明する。
（実施の形態１）
図１は、本発明の実施の形態１による集積回路を示すブロック図である。
【００７８】
図１において、１はワンチップ化された集積回路、２，３はシステムを有する論理回路、４は論理回路２により制御されるメモリー、５はクロックの生成と供給とを行なうクロック部、６はクロックを発振するＰＬＬ、１０，１１，２０，２１は外部から論理回路２に信号を与える端子、１２，１３は外部から論理回路３に信号を与える端子、１５は外部からクロック部５に信号を与える端子、３０は端子２０の信号を内部に伝える信号線、３１は端子１０の信号を内部に伝える信号線、３２は信号線３０または信号線３１のいずれか一方を選択する選択器、３３は選択器３２の出力をラッチするフリップフロップ（以降ＦＦと記載する）、３４はＦＦ３３の出力を伝える信号線、３５は端子１１の信号を内部に伝える信号線、３６は信号線３４または信号線３５のいずれか一方を選択する選択器、３７は選択器３６の出力をラッチするＦＦ、３８はＦＦ３７の出力を伝える信号線、３９は信号線３４及び信号線３８の信号から動作・機能する組み合わせ回路、４０は端子２１の信号を内部に伝える信号線、４１は組み合わせ回路３９の出力である信号線、４２は信号線４０または信号線４１のいずれか一方を選択する選択器、４３は選択器４２の出力をラッチするＦＦ、４４はＦＦ４３の出力を伝える信号線、４５は組み合わせ回路３９の出力である信号線、４６は信号線４４または信号線４５のいずれか一方を選択する選択器、４７は選択器４６の出力をラッチするＦＦ、４８はＦＦ４７の出力を伝える信号線、４９は信号線４４及び信号線４８の信号から動作・機能する組み合わせ回路、５０，５１は組み合わせ回路４９の出力である信号線、２２は信号線５０の信号を外部に伝える端子、２３は信号線５１の信号を外部に伝える端子、５６はメモリー４を制御するための組み合わせ回路３９からの信号線、５７はメモリー４を制御するための組み合わせ回路４９からの信号線、６１は端子１２の信号を内部に伝える信号線、６２は信号線６０または信号線６１のいずれか一方を選択する選択器、６３は選択器６２の出力をラッチするＦＦ、６４はＦＦ６３の出力を伝える信号線、６５は端子１３の信号を内部に伝える信号線、６６は信号線６４または信号線６５のいずれか一方を選択する選択器、６７は選択器６６の出力をラッチするＦＦ、６８はＦＦ６７の出力を伝える信号線、６９は信号線６４及び信号線６８の信号から動作・機能する組み合わせ回路、７１は組み合わせ回路６９の出力である信号線、７２は信号線７０または信号線７１のいずれか一方を選択する選択器、７３は選択器７２の出力をラッチするＦＦ、７４はＦＦ７３の出力を伝える信号線、７５は組み合わせ回路６９の出力である信号線、７６は信号線７４または信号線７５のいずれか一方を選択する選択器、７７は選択器７６の出力をラッチするＦＦ、７８はＦＦ７７の出力を伝える信号線、７９は信号線７４及び信号線７８の信号から動作・機能する組み合わせ回路、８０，８１は組み合わせ回路７９の出力である信号線、２５は信号線６８の信号を外部に伝える端子、２６は信号線７８の信号を外部に伝える端子、２７は信号線８０の信号を外部に伝える端子、２８は信号線８１の信号を外部に伝える端子、５２は端子１５からのテスト用のクロックをクロック部５に伝えるクロック、５３はＰＬＬ６から生成される論理回路２のための通常動作用のクロック、５４はクロック５２またはクロック５３のいずれか一方を選択する選択器、５５は論理回路２に供給するクロック、８３はＰＬＬ６から生成される論理回路３のための通常動作用のクロック、８４はクロック５２またはクロック８３のいずれか一方を選択する選択器、８５は論理回路３に供給するクロックである。
【００７９】
図２は、本発明の実施の形態１による集積回路の通常動作時のタイミングチャートである。
図２において、２００はＰＬＬ６からのクロック５４へ供給するクロック波形、２０１は末端であるＦＦ３３，ＦＦ３７，ＦＦ４３，ＦＦ４７に供給されるクロック５５のクロック波形、２０２はＰＬＬ６からのクロック８３へ供給するクロック波形、２０３は末端であるＦＦ６３，ＦＦ６７，ＦＦ７３，ＦＦ７７に供給されるクロック８５のクロック波形、２０５はクロック波形２０１とクロック波形２００との遅延時間差、２０６はクロック波形２０３とクロック波形２０２との遅延時間差である。
【００８０】
図３は、本発明の実施の形態１による集積回路のスキャンテスト時のタイミングチャートである。
図３において、２１０は端子１５から供給するクロック波形、２１１は末端であるＦＦ３３，ＦＦ３７，ＦＦ４３，ＦＦ４７に供給されるクロック５５のクロック波形、２１２は末端であるＦＦ６３，ＦＦ６７，ＦＦ７３，ＦＦ７７に供給されるクロック８５のクロック波形、２１５はクロック波形２１１とクロック波形２１０との遅延時間差、２１６はクロック波形２１２とクロック波形２１０との遅延時間差である。
【００８１】
以上のように構成された本実施の形態１による集積回路の動作について説明する。
まず通常動作について説明する。
通常動作時には、選択器５４はクロック５３を、選択器８４はクロック８３を、選択器３２は信号線３１を、選択器３６は信号線３５を、選択器４２は信号線４１を、選択器４６は信号線４５を、選択器６２は信号線６１を、選択器６６は信号線６５を、選択器７２は信号線７１を、選択器７６は信号線７５を、それぞれ選択する。
【００８２】
論理回路２では、端子１０からの信号が信号線３１、選択器３２を経てＦＦ３３にラッチされると同時に、端子１１からの信号が信号線３５、選択器３６を経てＦＦ３７にラッチされる。組み合わせ回路３９は、信号線３４及び信号線３８の値に従い通常動作の仕様に基づき信号線４１、信号線４５、及び信号線５６に信号を出力する。
【００８３】
信号線４１の信号は選択器４２を経てＦＦ４３にラッチされ、信号線４５の信号は選択器４６を経てＦＦ４７にラッチされる。組み合わせ回路４９は、信号線４４及び信号線４８の値に従いパイプライン処理を伴って通常動作の仕様に基づき信号線５０、信号線５１、及び信号線５７に信号を出力する。
【００８４】
ＦＦ３３、ＦＦ３７、ＦＦ４３、及びＦＦ４７のクロックはＰＬＬ６が発振する論理回路２に適した周波数が、クロック５３、選択器５４、クロック５５を経て同じように伝播する。
【００８５】
メモリー４は信号線５６及び信号線５７の値に基づいて読み出しや書き込みなどの制御が行なわれる。
【００８６】
信号線５０の値が端子２２に、信号線５１の値が端子２３にそれぞれ伝播する。一般には端子２２及び端子２３は外付けの集積回路に情報を伝達することになる。
【００８７】
論理回路３では、端子１２からの信号が信号線６１及び選択器６２を経てＦＦ６３にラッチされると同時に、端子１３からの信号が信号線６５及び選択器６６を経てＦＦ６７にラッチされる。組み合わせ回路６９は、信号線６４及び信号線６８の値に従い通常動作の仕様に基づき信号線７１及び信号線７５に信号を出力する。
【００８８】
信号線７１の信号は選択器７２を経てＦＦ７３にラッチされ、信号線７５の信号は選択器７６を経てＦＦ７７にラッチされる。組み合わせ回路７９は、信号線７４及び信号線７８の値に従いパイプライン処理を伴って通常動作の仕様に基づき信号線８０及び信号線８１に信号を出力する。
【００８９】
ＦＦ６３、ＦＦ６７、ＦＦ７３、及びＦＦ７７のクロックはＰＬＬ６が発振する論理回路３に適した周波数が、クロック８３、選択器８４、クロック８５を経て同じように伝播する。
【００９０】
信号線８０の値が端子２７に、信号線８１の値が端子２８にそれぞれ伝播する。一般には端子２７及び端子２８は外付けの集積回路に情報を伝達することになる。
【００９１】
ここで、論理回路３は、たとえばＭＰＥＧ２やＭＰＥＧ４などの複数の異なる画像圧縮形式がデコード可能な画像プロセッサ等を、論理回路２は、論理回路３を制御する１６ビットや３２ビットのシステムコントローラ等をそれぞれ想定しており、論理回路２と論理回路３とはクロックが異なることで独立して動作が可能である。このような状態をクロックドメインが異なるという。一般にレイアウト設計時には、クロック５５とクロック８５とのクロックの遅延調整は独立して行なわれ、ＰＬＬ６から各クロックドメインの末端ＦＦまでの到達時間は異なる場合が多い。
【００９２】
本実施の形態１による集積回路１では、ＰＬＬ６でクロック５３及びクロック８３のポジエッジの位相が、クロック波形２００及びクロック波形２０２に示されるように同一であっても、論理回路２及び論理回路３の末端のＦＦに到達するまでに、それぞれ遅延時間差２０５及び遅延時間差２０６が生じるため、クロック５５のクロック波形及びクロック８５のクロック波形は、それぞれ２０１及び２０３のようになる。ここでは、
（遅延時間差２０６）＞（遅延時間差２０５）
の関係が成立するものとする。
【００９３】
つづいて、スキャンテスト時の動作について説明する。
スキャンシフト時には、選択器５４及び選択器８４はクロック５２を、選択器３２は信号線３０を、選択器３６は信号線３４を、選択器４２は信号線４０を、選択器４６は信号線４４を、選択器６２は信号線３８を、選択器６６は信号線６４を、選択器７２は信号線４８を、選択器７６は信号線７４を、それぞれ選択する。
【００９４】
スキャンシフト時は一般にスキャンチェーンと呼ばれる経路が構成される。
スキャンチェーンが構成される場合のクロックは、クロックドメインが異なる場合でもテスト端子を節約するため、テスト用のクロック信号が端子１５から入力され、論理回路２にはクロック５２、選択器５４、クロック５５を経て、ＦＦ３３、ＦＦ３７、ＦＦ４３、ＦＦ４７に供給され、論理回路３にはクロック５２、選択器８４、クロック８５を経てＦＦ６３、ＦＦ６７、ＦＦ７３、ＦＦ７７に供給される。すなわちＦＦ３３、ＦＦ３７、ＦＦ４３、ＦＦ４７、ＦＦ６３、ＦＦ６７、ＦＦ７３、及びＦＦ７７には、ともに同一クロックが供給される。
【００９５】
端子１５での波形はクロック波形２１０で示される。通常動作と同様に、クロックが論理回路２及び論理回路３の末端ＦＦに到達するまでには、遅延時間差２１５及び遅延時間差２１６が生じるため、クロック５５のクロック波形及びクロック８５のクロック波形は、それぞれ２１１及び２１２に示されるようになる。ここでは、
（遅延時間差２１６）＞（遅延時間差２１５）
の関係が成立するものとする。
【００９６】
ＦＦ３３とＦＦ３７とが接続された第１のスキャンチェーンでは、外部の端子２０からの信号が信号線３０、選択器３２を経てＦＦ３３にラッチされ、ＦＦ３３の出力は信号線３４、選択器３６を経てＦＦ３７にラッチされ信号線３８に伝播する。
【００９７】
信号線３８は、大きな配線遅延を生じさせるためにメモリー４の領域上部をその配線領域としてメモリー４を横切るように配置されており、クロック５５及びクロック８５の遅延時間差分（時間差Δ＝遅延時間差２１６−遅延時間差２１５）を遅延させることで、スキャンチェーンのホールド時間を確保し、論理回路２から論理回路３に信号を伝播させる際にＦＦがシフトレジスタとして動作するよう保証する。
【００９８】
ＦＦ３７の出力は、信号線３８、選択器６２を経てＦＦ６３にラッチされる。ＦＦ６３の出力は、信号線６４、選択器６７を経てＦＦ６７にラッチされる。ＦＦ６７の出力は、信号線６８を経て端子２５で観測することができる。
【００９９】
ＦＦ４３とＦＦ４７とが接続された第２のスキャンチェーンは、外部の端子２１からの信号が信号線４０、選択器４２を経てＦＦ４３にラッチされ、ＦＦ４３の出力は信号線４４、選択器４６を経てＦＦ４７にラッチされ信号線４８に伝播する。
【０１００】
信号線４８は、大きな配線遅延を生じさせるためにメモリー４の領域上部をその配線領域としてメモリー４を横切るように配置されており、クロック５５及びクロック８５の遅延時間差分（時間差Δ＝遅延時間差２１６−遅延時間差２１５）を遅延させることで、スキャンチェーンのホールド時間を確保し、論理回路２から論理回路３に信号を伝播させる際にＦＦがシフトレジスタとして動作するよう保証する。
【０１０１】
このようにＦＦ４７の出力は信号線４８、選択器７２を経てＦＦ７３にラッチされる。ＦＦ７３の出力は信号線７４、選択器７６を経てＦＦ７７にラッチされる。ＦＦ７７の出力は信号線７８を経て端子２６で観測することができる。
【０１０２】
スキャンキャプチャ時には、選択器５４及び選択器８４はクロック５２を、選択器３２は信号線３１を、選択器３６は信号線３５を、選択器４２は信号線４１を、選択器４６は信号線４５を、選択器６２は信号線６１を、選択器６６は信号線６５を、選択器７２は信号線７１を、選択器７６は信号線７５を、それぞれ選択する。
【０１０３】
ずなわち、スキャンキャプチャ時の動作は、選択器５４、及び選択器８４のクロックラインをスキャンシフト時と同様に選択する他は、全て通常動作と同じである。
【０１０４】
そして、スキャンテストは、スキャンシフトにより外部からＦＦ３３、ＦＦ３７、ＦＦ６３、及びＦＦ６７を設定し、１クロックサイクルのみスキャンキャプチャ動作をさせることで組み合わせ回路３９、及び組み合わせ回路６９の出力をＦＦ４３、ＦＦ４７、ＦＦ７３、及びＦＦ７７にラッチさせ、引き続いてスキャンシフトさせることで組み合わせ回路３９、及び組み合わせ回路６９の不具合を検出する。
【０１０５】
同様に、スキャンシフトにより外部からＦＦ４３、ＦＦ４７、ＦＦ７３、及びＦＦ７７を設定し、１クロックサイクルのみスキャンキャプチャ動作をさせることで組み合わせ回路４９、及び組み合わせ回路７９の出力先である端子２２、端子２３、端子２７、端子２８を観測することにより組み合わせ回路４９、及び組み合わせ回路７９の不具合を検出する。
【０１０６】
このように、本実施の形態１による集積回路は、異種クロックのスキャンチェーン間にメモリーを配置し、スキャンチェーン間の配線がメモリー領域上部を横切るように各スキャンチェーンを結線することで、メモリー領域上部の配線を伝播する時間がクロック遅延時間差を吸収してスキャンチェーンのホールド時間を確保するので、バッファ領域が不要となり、チップ面積を小さくすることができる。
【０１０７】
なお、上記実施の形態１では、メモリー領域上部の配線が２本の場合で説明したが、これに限るものではなく、例えば５０本以上などチェーンが多数ある場合には、図４に示されるように、メモリー４上に、信号線１５０ないし１５６のような、それぞれが等長等幅等高の各信号線を等間隔に配線することで、各信号線での遅延時間が同一となり、タイミング設計を容易に行なうことができる。
【０１０８】
また、メモリー上の遅延時間にチェーンごとに差を設ける必要が生じた場合には、図５に示されるように、メモリー４上の配線長は変更せずに、信号線１６０ないし１６４のように、それぞれの配線幅及び／または配線高を調整することで遅延時間差を設定することができる。配線には抵抗成分と容量成分とを有し、ここでは両者の積である時定数が遅延時間を決定するものとし、配線幅を広くすることで抵抗成分が減少し遅延時間が小さくなるものとすれば、信号線１６０ないし１６４の中では信号線１６０の遅延時間が最小となる。ただし、微細プロセスでは配線幅を増加させることによる容量成分増加が遅延時間を決定づけることもある。
【０１０９】
また、上記実施の形態１では、２つの論理回路と１つのメモリーとを用いて説明したが、論理回路及びメモリーの数は、これに限るものではない。
【０１１０】
（実施の形態２）
図６は、本発明の実施の形態２による集積回路を示すブロック図である。
図６において、９はワンチップ化された集積回路、２はシステムを有する論理回路、４，７は論理回路２により制御されるメモリー、５はクロックの生成と供給とを行なうクロック部、６はクロックを発振するＰＬＬ、９０はテスト用のベクタやストレスパターンを生成する乱数発生器、１００はスキャンテスト時に論理回路２からの観測信号を圧縮しビットパターンとして外部に出力する圧縮器、１０，１１は外部から論理回路２に信号を与える端子、２０は外部から乱数発生器９０に信号を与える端子、９１は端子２０の信号を乱数発生器９０に伝える信号線、９２は乱数発生回路、９３は乱数発生回路９２が生成した乱数を伝える信号線、９４，９６は信号線９３をラッチするＦＦ、９５はＦＦ９４の出力を伝える信号線、９７はＦＦ９７の出力を伝える信号線、３１は端子１０の信号を内部に伝える信号線、３２は信号線９５または信号線３１のいずれか一方を選択する選択器、３３は選択器３２の出力をラッチするＦＦ、３４はＦＦ３３の出力を伝える信号線、３５は端子１１の信号を内部に伝える信号線、３６は信号線３４または信号線３５のいずれか一方を選択する選択器、３７は選択器３６の出力をラッチするＦＦ、３８はＦＦ３７の出力を伝える信号線、３９は信号線３４及び信号線３８の信号から動作・機能する組み合わせ回路、４１は組み合わせ回路３９の出力である信号線、４２は信号線９７または信号線４１のいずれか一方を選択する選択器、４３は選択器４２の出力をラッチするＦＦ、４４はＦＦ４３の出力を伝える信号線、４５は組み合わせ回路３９の出力である信号線、４６は信号線４４または信号線４５のいずれか一方を選択する選択器、４７は選択器４６の出力をラッチするＦＦ、４８はＦＦ４７の出力を伝える信号線、４９は信号線４４及び信号線４８の信号から動作・機能する組み合わせ回路、５０，５１は組み合わせ回路４９の出力である信号線、２２は信号線５０の信号を外部に伝える端子、２３は信号線５１の信号を外部に伝える端子、５６はメモリー４を制御するための組み合わせ回路３９からの信号線、５７はメモリー４を制御するための組み合わせ回路４９からの信号線、５８はメモリー７を制御するための組み合わせ回路３９からの信号線、５９はメモリー７を制御するための組み合わせ回路４９からの信号線、１０５は圧縮信号を生成する圧縮回路、１０１は圧縮回路１０５の出力を伝える信号線、１０２は信号線１０１、またはゼロ（グラウンド）のいずれか一方を選択する選択器、１０３は選択器１０２の出力をラッチするＦＦ、１０４はＦＦ１０３の出力を伝える信号線、１０６は圧縮回路１０５の出力を伝える信号線、１０７は信号線１０６または信号線１０４のいずれか一方を選択する選択器、１０８は選択器１０７の出力をラッチするＦＦ、１０９はＦＦ１０８の出力を伝える信号線、２７は信号線１０９の信号を外部に伝える端子、５２は端子１５からのテスト用のクロックをクロック部５に伝えるクロック、５３はＰＬＬ６から生成される論理回路２のための通常動作用のクロック、５４はクロック５２またはクロック５３のいずれか一方を選択する選択器、５５は論理回路２に供給するクロック、１４０はクロック５２の遅延調整用のバッファ、１４１はバッファ１４０の出力で乱数発生器９０に供給するクロック、１４２はクロック５２の遅延調整用のバッファ、１４３はバッファ１４２の出力で圧縮器１００に供給するクロックである。
【０１１１】
図７は、本発明の実施の形態２による集積回路のスキャンテスト時のタイミングチャートである。
図７において、２１０は端子１５から供給するクロック波形、２１１は末端であるＦＦ３３，ＦＦ３７，ＦＦ４３，ＦＦ４７に供給されるクロック５５のクロック波形、２１３は末端であるＦＦ９４，ＦＦ９６に供給されるクロック１４１のクロック波形、２１４は末端であるＦＦ１０３，ＦＦ１０８に供給されるクロック１４３のクロック波形、２１５はクロック波形２１１とクロック波形２１０との遅延時間差、２１７はクロック波形２１３とクロック波形２１０との遅延時間差、２１８はクロック波形２１４とクロック波形２１０との遅延時間差である。
【０１１２】
以上のように構成された本実施の形態２による集積回路の動作について説明する。
まず通常動作について説明する。
通常動作で動作する回路は、クロック部５、及び論理回路２のみである。
【０１１３】
通常動作時には、選択器５４はクロック５３を、選択器３２は信号線３１を、選択器３６は信号線３５を、選択器４２は信号線４１を、選択器４６は信号線４５を、それぞれ選択する。
【０１１４】
論理回路２では、端子１０からの信号が信号線３１、選択器３２を経てＦＦ３３にラッチされると同時に、端子１１からの信号が信号線３５、選択器３６を経てＦＦ３７にラッチされる。組み合わせ回路３９は、信号線３４及び信号線３８の値に従い通常動作の仕様に基づき信号線４１、信号線４５、及び信号線５６に信号を出力する。
【０１１５】
信号線４１の信号は選択器４２を経てＦＦ４３にラッチされ、信号線４５の信号は選択器４６を経てＦＦ４７にラッチされる。組み合わせ回路４９は信号線４４及び信号線４８の値に従いパイプライン処理を伴って通常動作の仕様に基づき信号線５０、信号線５１、及び信号線５７に信号を出力する。
【０１１６】
ＦＦ３３、ＦＦ３７、ＦＦ４３、及びＦＦ４７のクロックはＰＬＬ６が発振する論理回路２に適した周波数が、クロック５３、選択器５４、クロック５５を経て同じように伝播する。
【０１１７】
メモリー４は信号線５６及び信号線５７の値に基づいて読み出しや書き込みなどの制御が行なわれ、メモリー７は信号線５８及び信号線５９の値に基づいて読み出しや書き込みなどの制御が行なわれる。
【０１１８】
信号線５０の値が端子２２に、信号線５１の値が端子２３にそれぞれ伝播する。一般には端子２２及び端子２３は外付けの集積回路に情報を伝達することになる。
【０１１９】
つづいて、スキャンテスト時の動作について説明する。
スキャンテスト時には、テスト用のクロック信号が端子１５から入力され、クロック５２を経て３系統に供給される。
【０１２０】
乱数発生器９０にはクロック５２、バッファ１４０を経てクロック１４１が供給される。論理回路２にはクロック５２、選択器５４、クロック５５を経て、ＦＦ３３及びＦＦ３７と、ＦＦ４３及びＦＦ４７との２系統のチェーンに対し同一クロックが供給される。圧縮器１００にはクロック５２、バッファ１４２を経てクロック１４３が供給される。
【０１２１】
このクロックに同期することにより、圧縮器１００のＦＦ１０３、及びＦＦ１０８が初期化される。これには選択器１０２は接地（グラウンド：論理的にはゼロと等価。）を、選択器１０７は信号線１０４を、それぞれ選択する。
【０１２２】
クロック１４３から第１のクロックが入力されるとＦＦ１０３は選択器１０２よりゼロをラッチする。第２のクロックが入力されるとＦＦ１０３の値であるゼロが信号線１０４、選択器１０７を経てＦＦ１０８にラッチされる。
【０１２３】
乱数発生器９０では、端子２０より信号線９１を通じて乱数生成回路９２に起動信号を送られると、乱数生成回路９２は内蔵したアルゴリズムにより乱数を生成する。ここでは２ビット生成されるものとする。この２ビットの乱数が信号線９３を経てＦＦ９４、及びＦＦ９６にクロック１４１に同期してラッチされる。
【０１２４】
信号線９５、及び信号線９７は、メモリー７の領域上部をその配線領域としてメモリー７を横切るように配置されており、論理回路２に伝播する信号を遅延させる。このときの遅延時間については後述する。
【０１２５】
論理回路２にはスキャンシフト時にスキャンチェーンが構成される。
ＦＦ３３とＦＦ３７とが接続された第１のスキャンチェーンでは、信号線９５、選択器３２を経てＦＦ３３にラッチされ、ＦＦ３３の出力は信号線３４、選択器３６を経てＦＦ３７にラッチされ信号線３８に伝播する。
【０１２６】
ＦＦ４３とＦＦ４７とが接続された第２のスキャンチェーンは、信号線９７、選択器４２を経てＦＦ４３にラッチされ、ＦＦ４３の出力は信号線４４、選択器４６を経てＦＦ４７にラッチされ信号線４８に伝播する。
【０１２７】
信号線３８、及び信号線４８は、メモリー４の領域上部をその配線領域としてメモリー７を横切るように配置されており、圧縮機１００に伝播する信号を遅延させる。このときの遅延時間については後述する。
【０１２８】
圧縮器１００が圧縮動作する際には、選択器１０２及び選択器１０７は、それぞれ信号線１０１及び信号線１０６を選択する。
【０１２９】
圧縮回路１０５は、ＦＦ３７及びＦＦ４７の出力である信号線３８及び信号線４８の値と、上述した初期化動作による信号線１０４及び信号線１０９の値とを加算し、結果を２ビット化する。ここで桁あふれが生じた場合には下位２ビットのみを有効とする。
【０１３０】
圧縮回路１０５の結果は信号線１０１、及び信号線１０６に出力される。信号線１０１の信号は選択器１０２を経てＦＦ１０３にラッチされ、信号線１０６の信号は選択器１０７を経てＦＦ１０８にラッチされる。
【０１３１】
同様に、ひきつづき、信号線３８及び信号線４８の値と、信号線１０４及び信号線１０９の値との加算を行ない、一連の動作を行なう。
【０１３２】
第１及び第２のスキャンチェーンのシフトが完了すれば、ＦＦ１０３、及びＦＦ１０８の出力を外部で検出する動作を行なう。これには、選択器１０２は接地を、選択器１０７は信号線１０４を、それぞれ選択する。
【０１３３】
クロック１４３から第１のクロックが入力されるとＦＦ１０３は選択器１０２よりゼロをラッチする。このとき同時にＦＦ１０８の出力が信号線１０９を経て端子２７から観測することができる。第２のクロックが入力されるとＦＦ１０３の値であるゼロが信号線１０４、選択器１０７を経てＦＦ１０８にラッチされる。このＦＦ１０８の出力が信号線１０９を経て端子２７から出力されることで、ＦＦ１０３の値も外部から観測することができる。
【０１３４】
そして、スキャンテストは、スキャンシフトを行なって、上記実施の形態１による集積回路１の場合と同様に、組み合わせ回路３９、及び組み合わせ回路４９を含む論理回路２の不具合を検出する。
【０１３５】
ここで、第１及び第２のスキャンチェーンの遅延時間について説明する。
クロック波形２１０は端子１５でのクロック波形である。乱数発生器９０、論理回路２、及び圧縮器１００のクロック波形は、それぞれバッファ１４０、選択器５４、及びバッファ１４２で遅延差が生じ、乱数発生器９０のクロック１４１はクロック波形２１３、論理回路２のクロック５５はクロック波形２１１、圧縮器１００のクロック１４３はクロック波形２１４となる。
【０１３６】
したがって、信号線９５及び信号線９７は、メモリー７の領域上部をその配線領域とすることで、クロック波形２１１とクロック波形２１３との遅延時間差分（時間差Δ＝遅延時間差２１５−遅延時間差２１７）を遅延させる。
【０１３７】
同様に、信号線３８及び信号線４８は、メモリー４の領域上部をその配線領域とすることで、クロック波形２１４とクロック波形２１１との遅延時間差分（時間差Δ＝遅延時間差２１８−遅延時間差２１５）を遅延させる。
【０１３８】
このように、本実施の形態２による集積回路は、異種クロックのスキャンチェーン間にメモリーを配置し、スキャンチェーン間の配線がメモリー領域上部を横切るように各スキャンチェーンを結線することで、メモリー領域上部の配線を伝播する時間がクロック遅延時間差を吸収してスキャンチェーンのホールド時間を確保するので、バッファ領域が不要となり、チップ面積を小さくすることができる。
【産業上の利用可能性】
【０１３９】
本発明は、異種クロックを多用するなど高度に集積された半導体集積回路等に有効である。
【図面の簡単な説明】
【０１４０】
【図１】本発明の実施の形態１による集積回路を示すブロック図である。
【図２】本発明の実施の形態１による集積回路の通常動作時のタイミングチャートである。
【図３】本発明の実施の形態１による集積回路のスキャンテスト時のタイミングチャートである。
【図４】集積回路のメモリー上に、それぞれの幅が等しい複数の信号線が配置されているのを示す図である。
【図５】集積回路のメモリー上に、それぞれの幅が異なる複数の信号線が配置されているのを示す図である。
【図６】本発明の実施の形態２による集積回路を示すブロック図である。
【図７】本発明の実施の形態２による集積回路のスキャンテスト時のタイミングチャートである。
【図８】従来の集積回路を示すブロック図である。
【図９】従来の集積回路の通常動作時のタイミングチャートである。
【図１０】従来の集積回路のスキャンテスト時のタイミングチャートである。
【図１１】従来のテスト専用回路を有する集積回路を示すブロック図である。
【図１２】従来のテスト専用回路を有する集積回路のスキャンテスト時のタイミングチャートである。
【符号の説明】
【０１４１】
１，９  集積回路
２，３  論理回路
４，７  メモリー
５  クロック部
６  ＰＬＬ
１０，１１，１２，１３，１５，２０，２１，２２，２３，２５，２６，２７，２８  端子
３２，３６，４２，４６，６２，６６，７２，７６，５４，８４，１０２，１０７  選択器
３３，３７，４３，４７，６３，６７，７３，７７，９４，９７，１０３，１０８  ＦＦ
３９，４９，６９，７９  組み合わせ回路
１１０，１１１  バッファ
５２，５３，５５，８３，８４，８５  クロック
３０，３１，３４，３５，３８，４０，４１，４４，４５，４８，５０，５１，６０，６１，６４，６５，６８，７０，７１，７４，７５，７８，８０，８１  信号線
２００，２０１，２０２，２０３，２１０，２１１，２１２  クロック波形
２０５，２０６，２１５，２１６  遅延時間差
９０  乱数発生器
９１  乱数発生回路
１００  圧縮器
１０５  圧縮回路
【図１】
2005257469.tif 000003
【図２】
2005257469.tif 000004
【図３】
2005257469.tif 000005
【図４】
2005257469.tif 000006
【図５】
2005257469.tif 000007
【図６】
2005257469.tif 000008
【図７】
2005257469.tif 000009
【図８】
2005257469.tif 000010
【図９】
2005257469.tif 000011
【図１０】
2005257469.tif 000012
【図１１】
2005257469.tif 000013
【図１２】
2005257469.tif 000014