(57)【要約】【課題】スキャン診断回路におけるホールド違反の発生を回避する。【解決手段】クロック信号が伝達される方向と反対の方向にスキャンデータが流れるようにスキャンチェーン（２６，２７）を接続することにより、スキャンテストデータに対してクロック信号の遷移速度を速くし、さらに、折り返し部（３００）の抵抗をクロック信号伝達経路における抵抗よりも大きくすることで折り返し部でのデータ伝達を遅延させてホールド違反の発生を回避する。【選択図】        図１
2004301661.tif 000002
【特許請求の範囲】
【請求項１】
組み合わせ回路と、上記組み合わせ回路のスキャンテストを可能とするスキャン診断回路とを含む半導体集積回路であって、
上記スキャン診断回路は、クロック信号に同期動作可能な複数のスキャンフリップフロップ回路が結合された第１スキャンチェーン部と、
上記第１スキャンチェーン部の後段に配置され、クロック信号に同期動作可能な複数のスキャンフリップフロップ回路が結合された第２スキャンチェーン部と、
上記第１スキャンチェーン部を伝搬するスキャンテストデータの伝搬方向とは逆の方向からクロック信号を供給可能な第１クロックバッファと、
上記第２スキャンチェーン部を伝搬するスキャンテストデータの伝搬方向とは逆の方向からクロック信号を供給可能な第２クロックバッファと、
上記第１スキャンチェーン部内の上記第１クロックバッファに最も近い位置に配置されたスキャンフリップフロップ回路から出力されたスキャンテストデータを、上記第２スキャンチェーン部内の上記第２クロックバッファから最も遠い位置に配置されたスキャンフリップフロップ回路に伝達するための折り返し部と、を含んで成ることを特徴とする半導体集積回路。
【請求項２】
上記折り返し部は、上記クロック信号の伝搬ラインよりも細い配線層で形成された請求項１記載の半導体集積回路。
【請求項３】
多層化された配線層を有し、配線層によって単位長さ当たりの抵抗値が異なるとき、上記折り返し部は、上記クロック信号の伝搬ラインが形成された配線より上記抵抗値が高い配線を使用して形成される請求項１記載の半導体集積回路。
【請求項４】
上記折り返し部におけるスキャンテストデータ伝搬経路上には遅延素子の挿入可能領域が確保され、この領域に上記遅延素子が挿入されて成る請求項１乃至３の何れか１項記載の半導体集積回路。
【請求項５】
上記第１クロックバッファの出力信号を遅延可能なスキャンテスト用クロックバッファと、上記スキャンチェーン回路によるスキャンテスト時に、上記上記第１クロックバッファからの出力信号に代えて上記スキャンテスト用クロックバッファの出力信号を上記第１スキャンチェーン部に伝達可能なセレクタとを含む請求項１乃至４の何れか１項記載の半導体集積回路。
【請求項６】
回路のスキャンテストを可能とするスキャン診断回路を含む半導体集積回路であって、
上記スキャン診断回路は、クロックバッファと、上記クロックバッファからクロック信号を供給可能なエリアにおいて分散配置された複数のスキャンフリップフロップとを含み、上記クロックバッファから上記スキャンフリップフロップ回路までのクロック信号の遅延時間の大きいスキャンフリップフロップ回路から順にスキャンチェーン接続が行われて成ることを特徴とする半導体集積回路。
【請求項７】
組み合わせ回路と、上記組み合わせ回路のスキャンテストを可能とするスキャン診断回路とを含む半導体集積回路であって、
上記スキャン診断回路は、
第１クロック信号線が接続される複数の第１フリップフロップ回路と、
第２クロック信号線が接続される複数の第２フリップフロップ回路と、
上記第１クロック信号線に接続される第１クロックバッファと、
上記第２クロック信号線に接続される供給する第２クロックバッファとを有し、
上記第１クロックバッファは、上記第１クロック信号線に第１クロック信号を供給し、
上記第２クロックバッファは、上記第２クロック信号に第２クロック信号を供給し、
上記複数の第１フリップフロップ回路は、第１方向に延在する第１仮想線上に設けられるとともに、上記スキャンテスト時に上記複数の第１フリップフロップ回路の一端から他の一端にデータが転送され、
上記複数の第２フリップフロップ回路は、上記第１仮想線に平行である第２仮想線上に設けられるとともに、上記スキャンテスト時に上記複数の第２フリップフロップ回路の一端から他の一端にデータが転送され、
上記複数の第１フリップフロップ回路の他の一端から出力されるデータは、上記複数の第２フリップフロップ回路の一端に入力され、
上記第１クロックバッファは、上記第１クロックバッファと上記複数の第１フリップフロップの他の一端との間の距離が上記第１クロックバッファと上記複数の第１フリップフロップ回路の一端との間の距離より短くなるように配置され、
上記第２クロックバッファは、上記第２クロックバッファと上記複数の第２フリップフロップの他の一端との間の距離が上記第２クロックバッファと上記複数の第２フリップフロップ回路の一端との間の距離より短くなるように配置されることを特徴とする半導体集積回路。
【請求項８】
上記半導体集積回路は、上記第１クロックバッファと上記第２クロックバッファに共通にクロック信号を供給する第３クロックバッファを更に有することを特徴とする請求項７記載の半導体集積回路。
【請求項９】
上記複数の第１フリップフロップ回路の他の一端と上記複数の第２フリップフロップ回路の一端とを接続する配線の抵抗値は、上記第１クロック信号線及び上記第２クロック信号線の抵抗値より大きいことを特徴とする請求項７記載の半導体集積回路。
【請求項１０】
上記複数の第１フリップフロップ回路の他の一端と上記複数の第２フリップフロップ回路の一端とを接続する配線は、上記第１クロック信号線及び上記第２クロック信号線より細いことを特徴とする請求項９記載の半導体集積回路。
【請求項１１】
上記組み合わせ論理回路は、上記複数の第１フリップフロップ回路と上記複数の第２フリップフロップ回路との間に設けられることを特徴とする請求項７記載の半導体集積回路。
【請求項１２】
上記半導体集積回路は、上記第２クロックバッファに接続される第４クロックバッファと、上記複数の第２フリップフロップ回路に上記第２クロックバッファから直接上記第２クロック信号を供給する経路と上記複数の第２フリップフロップ回路に上記第２及び第４クロックバッファを介して上記第２クロック信号を供給する経路とを選択するセレクタとを更に有することを特徴とする請求項７記載の半導体集積回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半導体集積回路、さらにはそれに含まれるスキャン診断回路の改良技術に関する。
【０００２】
【従来の技術】
半導体集積回路に含まれる組み合わせ回路の故障を検出する方法としてスキャンテストが知られている（例えば特許文献１参照）。このスキャンテストを可能とするには、組み合わせ回路とともにスキャンチェーン回路（「スキャンパス回路」とも称される）を予め組み込んでおく必要がある。スキャンチェーン回路は、スキャン入力端子、スキャン出力端子、及びクロック入力端子を有する複数のスキャンフリップフロップ回路が結合されて成る。スキャンフリップフロップ回路のスキャン出力端子は、それに隣接するスキャンフリップフロップ回路のスキャン入力端子に結合されることによって多数のスキャンフリップフロップ回路がチェーン状に結合される。そのような結合により、スキャンテストのためのデータは、クロック信号に同期してスキャンフリップフロップ回路からそれに結合されたスキャンフリップフロップ回路へと順次シフトされる。
【０００３】
スキャンチェーン回路は基本的にはシフトレジスタ構成であるため、動作クロックの遷移速度がスキャンテストデータの遷移速度より遅くなると、データのホールドタイミングが不適切となる。この現象はホールド違反と称される。ホールド違反は、タイミング解析結果に基づいて部分的にディレイバッファ等の遅延素子を追加し遅延量を調整することにより解決することが知られている。スキャンチェーン回路の面積増大を回避するために、追加する遅延素子の数は少ない方が好ましいが、スキャンチェーン回路の配線が最適化されない場合には、多くの遅延素子を追加しなければならず、そうするとスキャンチェーン回路の面積はますます増大する。また、半導体集積回路においてデータパスのような高密度実装が行われている部位では、ディレイバッファ等の遅延素子の挿入するスペースを確保するもの困難とされる。スキャンフリップフロップ回路内にディレイバッファ等の遅延素子を予め組み込んでおくことも考えられるが、そうするとスキャンフリップフロップ回路の面積が大きくなるから、スキャンチェーン回路の面積増大を伴うことに変わりはない。
【０００４】
特許文献１では、スキャンパス回路（スキャンチェーン回路）を組み込むことによるＬＳＩのチップ面積の増大を最小限に抑えるため、スキャンパス回路を伝搬するスキャンテストデータの搬送方向に対して逆の方向からクロック信号を供給する位置にクロックドライバを配置するようにしている。そのような配置によれば、スキャンテストデータに対してクロック信号の遷移速度を速くできることから、ディレイバッファ等の遅延素子の挿入を必要としないため、その分、チップ面積の増大を抑えることができる。
【０００５】
【特許文献１】
特開２００２−７６１２３号公報（第２６段落）
【０００６】
【発明が解決しようとする課題】
しかしながら、特許文献１記載技術においては、スキャンチェーン回路が多段に構成される場合や、スキャンフリップフロップ回路が分散配置される場合については考慮されていない。このため、スキャンチェーン回路が多段に構成される場合やスキャンフリップフロップ回路が分散配置される場合のように、スキャンチェーン回路が複雑に構成される場合にはホールド違反を生ずるおそれがある。
【０００７】
本発明の目的は、スキャン診断回路におけるホールド違反を回避するための技術を提供することにある。
【０００８】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【０００９】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１０】
すなわち、組み合わせ回路と、上記組み合わせ回路のスキャンテストを可能とするスキャン診断回路とを含んで半導体集積回路が構成されるとき、上記スキャン診断回路は、クロック信号に同期動作可能な複数のスキャンフリップフロップ回路が結合された第１スキャンチェーン部と、上記第１スキャンチェーン部の後段に配置され、クロック信号に同期動作可能な複数のスキャンフリップフロップ回路が結合された第２スキャンチェーン部と、上記第１スキャンチェーン部を伝搬するスキャンテストデータの伝搬方向とは逆の方向からクロック信号を供給可能な第１クロックバッファと、上記第２スキャンチェーン部を伝搬するスキャンテストデータの伝搬方向とは逆の方向からクロック信号を供給可能な第２クロックバッファと、上記第１スキャンチェーン部内の上記第１クロックバッファに最も近い位置に配置されたスキャンフリップフロップ回路から出力されたスキャンテストデータを上記第２スキャンチェーン部内の上記第２クロックバッファから最も遠い位置に配置されたスキャンフリップフロップ回路に伝達するための折り返し部とを含んで成る。
【００１１】
上記の手段によれば、上記第１クロックバッファは、上記第１スキャンチェーン部を伝搬するスキャンテストデータの伝搬方向とは逆の方向からクロック信号を供給し、上記第２バッファは、上記第２スキャンチェーン部を伝搬するスキャンテストデータの伝搬方向とは逆の方向からクロック信号を供給する。これにより、上記第１スキャンチェーン部及び上記第２スキャンチェーン部においては、スキャンテストデータに対してクロック信号の遷移速度を速くできることから、そこでのホールド違反の発生を回避することができる。このとき、上記第１スキャンチェーン部内の上記第１クロックバッファに最も近い位置に配置されたスキャンフリップフロップ回路から出力されたスキャンテストデータを、上記第２スキャンチェーン部内の上記第２クロックバッファから最も遠い位置に配置されたスキャンフリップフロップ回路に伝達するための折り返し部が設けられることで、上記第１スキャンチェーン部の後段に上記第２スキャンチェーン部が配置されているように、複数のスキャンチェーン部が多段結合された場合においても、各スキャンチェーン部間でクロック信号の伝達方向を揃えることができる。そして、上記折り返し部においては、上記第１スキャンチェーン部内の上記第１クロックバッファに最も近い位置に配置されたスキャンフリップフロップ回路から出力されたスキャンテストデータを、上記第２スキャンチェーン部内の上記第２クロックバッファから最も遠い位置に配置されたスキャンフリップフロップ回路に伝達可能に設けられているため、スキャンテストデータとクロック信号の伝搬方向が同じになり、ここでホールド違反を生ずることが考えられる。しかしながら、上記第１スキャンチェーン部や上記第２スキャンチェーン部のビット幅が大きいほど、上記折り返し部による信号伝達経路は長くなり、そこでの配線抵抗値が大きくなり、そこでのホールド違反を生じにくくなる。すなわち、スキャンテストデータとクロック信号の伝搬方向が同じ場合においてホールド違反を回避するには、互いに結合された二つのスキャンフリップフロップ回路間の遅延時間を、当該二つのスキャンフリップフロップ回路のクロックスキュー差とスキャンフリップフロップ回路のホールド時間との和よりも大きくすればよいから、上記のように上記折り返し部による信号伝達経路が長くなり、そこでの配線抵抗値が大きくなれば、そこで十分な遅延時間を確保することができ、上記折り返し部でのホールド違反をも回避することができる。
【００１２】
上記折り返し部における配線抵抗を大きくするため、上記クロック信号の伝搬ラインよりも細い配線層で形成すると良い。また、多層化された配線層を有し、配線層によって単位長さ当たりの抵抗値が異なるとき、上記折り返し部は、上記クロック信号の伝搬ラインが形成された配線より上記抵抗値が高い配線を使用して形成すると良い。
【００１３】
上記折り返し部における配線抵抗によって十分な遅延時間を確保することができない場合には、上記折り返し部のスキャンテストデータ伝搬経路上に確保された遅延素子挿入可能領域に、上記遅延素子を挿入することによってホールド違反の発生を回避することができる。上記遅延素子挿入可能領域は、データパス以外の部位に予め確保しておき、遅延素子の挿入の必要性が生じた場合に、上記領域を利用して遅延素子を形成するようにすれば、遅延素子の挿入は容易となる。
【００１４】
さらに、上記第１クロックバッファの出力信号を遅延可能なスキャンテスト用クロックバッファと、上記スキャンチェーン回路によるスキャンテスト時に、上記上記第１クロックバッファからの出力信号に代えて上記スキャンテスト用クロックバッファの出力信号を上記第１スキャンチェーン部に伝達可能なセレクタを設けることができる。
【００１５】
そして、クロックバッファと、上記クロックバッファからクロック信号を供給可能なエリアにおいて分散配置された複数のスキャンフリップフロップとを含む場合には、上記クロックバッファから上記スキャンフリップフロップ回路までのクロック信号の遅延時間の大きいスキャンフリップフロップ回路から順にスキャンチェーン接続を行うことで、スキャンテストデータに対してクロック信号の遷移速度を速くできることから、ホールド違反の発生を回避することができる。
【００１６】
【発明の実施の形態】
図１には、本発明にかかる半導体集積回路の主要部が示される。この半導体集積回路は、所定の論理演算機能を有する組み合わせ回路１００と、この組み合わせ回路１００の故障を検出可能なスキャン診断回路２００とを含み、公知の半導体集積回路製造技術により、単結晶シリコン基板などの一つの半導体基板に形成される。
【００１７】
上記スキャン診断回路２００は、特に制限されないが、ＪＴＡＧ回路（Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ、合同試験実施グループ基準にもとづく回路）２１、ＰＬＬ（フェーズ・ロックド・ループ）分周器２２、クロック選択回路２３、クロックバッファ２４，２５、スキャンチェーン部２６，２７を含む。
【００１８】
ＪＴＡＧ回路２１は、ＪＴＡＧ規格により定義された５個のピンを含み、上記組み合わせ回路１００のスキャンテストを制御する。上記５個のピンは、テストクロック入力ピンＴＣＫ（ｔｅｓｔ  ｃｌｏｃｋ  ｉｎｐｕｔ）  、テストモードセレクト入力ピンＴＭＳ（ｔｅｓｔ  ｍｏｄｅ  ｓｅｌｅｃｔ  ｉｎｐｕｔ）  、テストデータ入力ピンＴＤＩ（ｔｅｓｔ  ｄａｔａ  ｉｎｐｕｔ  ）、テストデータ出力ピンＴＤＯ（ｔｅｓｔ  ｄａｔａ  ｏｕｔｐｕｔ）、及びテストリセットアクティブローＴＲＳＴ（ｔｅｓｔ  ｒｅｓｅｔ  ｉｎｐｕｔ，ａｃｔｉｖｅ  ｌｏｗ）とされる。ＪＴＡＧ回路２１は、入力された各種信号に基づいてスキャンテスト制御のための各種信号を生成する。この信号には、テストクロック信号、テストデータ、及びスキャンモード信号が含まれる。テストクロック信号は後段に配置されたクロック選択回路２３に伝達される。クロック選択回路２３は、ＪＴＡＧ回路２１から伝達されたテストクロック信号とＰＬＬ分周回路２２で生成されたクロック信号とを選択的に後段のクロックバッファ２４，２５に伝達する。
【００１９】
スキャンチェーン部２６は、組み合わせ回路１００の入力端子側に配置され、特に制限されないが、４個のスキャンフリップフロップ回路２６１〜２６４が結合されて成る。
【００２０】
スキャンチェーン部２７は、組み合わせ回路１００の出力端子側に配置され、特に制限されないが、４個のスキャンフリップフロップ回路２７１〜２７４が結合されて成る。
【００２１】
上記スキャンフリップフロップ回路２６１〜２６４，２７１〜２７４は、それぞれデータ入力端子ｄ、スキャン入力端子ｓｉｄ、スキャンモード端子ｓｅ、クロック入力端子ｃｋ、スキャン出力端子ｓｏｄ、及びデータ出力端子ｑを有する。
【００２２】
スキャンチェーン部２６において、スキャンフリップフロップ回路２６１のスキャン入力端子ｓｉｄにはＪＴＡＧ回路２１からテストデータが伝達され、クロック入力端子ｃｋにはクロックバッファ２４を介してクロック信号が伝達される。スキャンモード端子ｓｅにはＪＴＡＧ回路２１からスキャンモード信号が伝達され、データ入力端子ｄには図示されない前段回路から４ビットデータが伝達される。データ出力端子ｑは組み合わせ回路１００の入力端子に結合される。テストデータのスキャンイン・スキャンアウトを可能とするため、スキャンフリップフロップ回路２６１のスキャン出力端子ｓｏｄはスキャンフリップフロップ回路２６２のスキャン入力端子ｓｉｄに結合され、スキャンフリップフロップ回路２６２のスキャン出力端子ｓｏｄはスキャンフリップフロップ回路２６３のスキャン入力端子ｓｉｄに結合され、スキャンフリップフロップ回路２６３のスキャン出力端子ｓｏｄはスキャンフリップフロップ回路２６４のスキャン入力端子ｓｉｄに結合される。スキャンフリップフロップ回路２６４のスキャン出力端子ｓｏｄはスキャンチェーン部２７におけるスキャンフリップフロップ回２７１のスキャン入力端子ｓｉｄに結合される。このスキャンフリップフロップ回路２６４のスキャン出力端子ｓｏｄからスキャンチェーン部２７におけるスキャンフリップフロップ回２７１のスキャン入力端子に至る信号伝達経路は折り返し部３００とされる。
【００２３】
スキャンチェーン部２７において、スキャンフリップフロップ回路２７１のスキャン入力端子ｓｉｄにはスキャンフリップフロップ回路２６４のスキャン出力端子から出力されたテストデータが伝達され、クロック入力端子ｃｋにはクロックバッファ２５を介してクロック信号が伝達される。スキャンモード端子ｓｅにはＪＴＡＧ回路２１からスキャンモード信号が伝達され、データ入力端子ｄには組み合わせ論理回路１００から４ビットデータが伝達される。データ出力端子ｑは図示されない後段回路に結合される。テストデータのスキャンイン・スキャンアウトを可能とするため、スキャンフリップフロップ回路２７１のスキャン出力端子ｓｏｄはスキャンフリップフロップ回路２７２のスキャン入力端子ｓｉｄに結合され、スキャンフリップフロップ回路２７２のスキャン出力端子ｓｏｄはスキャンフリップフロップ回路２７３のスキャン入力端子ｓｉｄに結合され、スキャンフリップフロップ回路２７３のスキャン出力端子ｓｏｄはスキャンフリップフロップ回路２７４のスキャン入力端子ｓｉｄに結合される。スキャンフリップフロップ回路２７４のスキャン出力端子ｓｏｄはＪＴＡＧ回路２１に結合され、テスト結果（テストデータ）の回収が可能とされる。
【００２４】
図２には上記スキャンフリップフロップ回路２６１の構成例が示される。
【００２５】
スキャンフリップフロップ回路２６１は、エッジトリガタイプとされ、図２に示されるように、セレクタ１１、フリップフロップ回路１２、及び出力バッファ１３を含んで成る。セレクタ１１は、スキャンモード端子ｓｅに伝達されたスキャンモード信号に応じて、データ入力端子ｄから入力されたデータと、スキャン入力端子ｓｉｄから入力されたテストデータとを選択的に後段のフリップフロップ回路１２に伝達する。尚、他のスキャンフリップフロップ回路２６２〜２６４，２７１〜２７４は上記スキャンフリップフロップ回路２６１と同一構成とされるため、それらの詳細な説明を省略する。
【００２６】
上記の構成において、スキャンフリップフロップ回路２６１〜２６４，２７１〜２７４のスキャンモード端子ｓｅに伝達されたスキャンモード信号がローレベル状態にされると、通常動作モードとされ、スキャンフリップフロップ回路２６１〜２６４，２７１〜２７４においては、図３に示されるように、データ入力端子ｄから入力されたデータが通常クロック信号（ＰＬＬ分周回路２２で生成されたクロック信号）の波形立ち上がりエッジに同期して保持され、データ出力端子ｑから出力される。これにより、組み合わせ回路１００の前段回路（図示せず）からの出力データがスキャンチェーン部２６を介して組み合わせ回路１００に伝達され、また、組み合わせ回路１００の出力データがスキャンチェーン部２７を介して後段回路（図示せず）に伝達される。
【００２７】
また、スキャンモード信号がハイレベル状態にされると、スキャンシフト動作モードとされ、スキャンフリップフロップ回路２６１〜２６４，２７１〜２７４においては、図４に示されるように、スキャン入力端子ｓｉｄからのテストデータが選択的にフリップフロップ回路１２のデータ入力端子ｄに伝達される。このデータ入力端子ｄに伝達されたデータは、クロック入力端子ｃｋに伝達されたクロック信号の波形立ち上がりエッジに同期して保持され、バッファ１３を介してスキャン出力端子ｓｏｄから出力される。
【００２８】
上記組み合わせ回路１００のスキャンテストは次のように行うことができる。
【００２９】
ＪＴＡＧ回路２１からスキャンチェーン部２６にテストデータを供給し、組み合わせ回路１００への入力データとして任意の値をスキャンチェーン部２６に設定する。設定されたデータが組み合わせ回路１００に入力され、このとき、組み合わせ回路１００から出力されたデータが、データスキャンチェーン部２７におけるスキャンフリップフロップ回路２７１〜２７４に取り込まれる。スキャンフリップフロップ回路２７１〜２７４に取り込まれたデータは、スキャンシフト動作によりＪＴＡＧ回路２１に回収される。
【００３０】
図１に示されるデータパス構造のように、半導体集積回路の自動配置配線前にクロック信号の伝搬順序が分かっている場合には、自動配置配線で生ずるクロックスキューを考慮してスキャンチェーンの接続順序が決定される。すなわち、クロック信号が伝達される方向と反対の方向にスキャンデータが流れるようにスキャンチェーンが接続される。例えば、図１に示されるスキャンチェーン部２６において、クロック信号はクロックバッファ２４を介してスキャンフリップフロップ回路２６４，２６３，２６２，２６１の順に伝搬されるのに対して、スキャンデータはスキャンフリップフロップ回路２６１，２６２，２６３，２６４の順に伝搬される。同様に図１に示されるスキャンチェーン部２７において、クロック信号はクロックバッファ２５を介してスキャンフリップフロップ回路２７４，２７３，２７２，２７１の順に伝搬されるのに対して、スキャンデータはスキャンフリップフロップ回路２７１，２７２，２７３，２７４の順に伝搬される。このようにクロック信号が伝達される方向と反対の方向にスキャンデータが流れるようにスキャンチェーンが接続されることにより、スキャンテストデータに対してクロック信号の遷移速度を速くできることからホールド違反を回避することができる。
【００３１】
スキャンデータはスキャンフリップフロップ回路２７１〜２７４のデータ出力端子ｑから出力される４ビットデータ相互の位相が極端にずれてしまうのを防止するため、クロック選択回路２３から出力されたクロック信号をクロックバッファ２４，２５で分割することにより、スキャンチェーン部２６，２７に対して同一方向からクロック信号を伝搬するようにしている。そのようなクロック信号の伝搬を可能とするため、スキャンチェーン部２６，２７は折り返し部３００によって結合される。しかし、そのようにすると、折り返し部３００においては、クロックバッファ２５から出力されるクロック信号の伝達経路と同一方向にデータが伝搬される経路を含むため、それに起因してホールド違反を生ずるおそれがある。つまり、折り返し部３００は、上記スキャンチェーン部２６内の上記クロックバッファ２４に最も近い位置に配置されたスキャンフリップフロップ回路２６４から出力されたスキャンテストデータを、上記スキャンチェーン部２７内の上記クロックバッファ２５から最も遠い位置に配置されたスキャンフリップフロップ回路２７１に伝達可能に設けられているため、スキャンテストデータとクロック信号の伝搬方向が同じになり、ここでホールド違反を生ずることが考えられる。しかしながら、上記スキャンチェーン部２６，２７のビット幅が大きいほど、上記折り返し部による信号伝達経路は長くなり、そこでの配線抵抗値が大きくなるため、そこでのホールド違反を生じにくくなる。すなわち、スキャンテストデータとクロック信号の伝搬方向が同じ場合においてホールド違反を回避するには、互いに結合された二つのスキャンフリップフロップ回路間の遅延時間を、当該二つのスキャンフリップフロップ回路のクロックスキュー差とスキャンフリップフロップ回路のホールド時間との和よりも大きくすればよいから、上記のように折り返し部３００による信号伝達経路が長くなり、そこでの配線抵抗値が大きくなれば、そこで十分な遅延時間を確保することができ、上記折り返し部でのホールド違反をも回避することができる。そこで本例においては、折り返し部３００の配線抵抗を意識的に大きくするようにしている。例えば配線層の材料が同じ場合には、配線層が細いほど抵抗が大きくなるため、折り返し部３００の配線層には、クロック信号伝達経路の配線層よりも細いものが用いられる。そのようにすれば、折り返し部３００における配線抵抗を大きくすることができ、そこで十分な遅延時間を確保し易くなるため、スキャンチェーン部２６，２７が多段に配置されて折り返し部３００を有しているにもかかわらず、そこでのホールド違反の発生を回避することができる。
【００３２】
上記の例によれば、以下の作用効果を得ることができる。
【００３３】
（１）スキャンチェーン部２６においては、クロック信号はクロックバッファ２４を介してスキャンフリップフロップ回路２６４，２６３，２６２，２６１の順に伝搬されるのに対して、スキャンデータはスキャンフリップフロップ回路２６１，２６２，２６３，２６４の順に伝搬され、スキャンチェーン部２７においては、クロック信号はクロックバッファ２５を介してスキャンフリップフロップ回路２７４，２７３，２７２，２７１の順に伝搬されるのに対して、スキャンデータはスキャンフリップフロップ回路２７１，２７２，２７３，２７４の順に伝搬される。このようにクロック信号が伝達される方向と反対の方向にスキャンデータが流れるようにスキャンチェーンが接続されることにより、スキャンテストデータに対してクロック信号の遷移速度を速くできることからホールド違反を回避することができる。
【００３４】
（２）折り返し部３００においては、スキャンテストデータとクロック信号の伝搬方向が同じになり、ここでホールド違反を生ずることが考えられるが、スキャンチェーン部２６，２７のビット幅が大きいほど、上記折り返し部による信号伝達経路が長くなり、そこでの配線抵抗値が大きくなるため、そこで十分な遅延時間を確保することができ、上記折り返し部でのホールド違反をも回避することができる。
【００３５】
（３）配線層の材料が同じ場合には、配線層が細いほど抵抗が大きくなるため、折り返し部３００の配線層には、クロック信号伝達経路の配線層よりも細いものを用いることで、折り返し部３００の配線抵抗を大きくすることができ、そこで十分な遅延時間を確保することによって、上記折り返し部でのホールド違反を回避することができる。
【００３６】
次に、別の構成例について説明する。
【００３７】
図５には組み合わせ回路とスキャンチェーン部の別の構成例が示される。
【００３８】
図５に示されるように、組み合わせ回路１００が２入力アンドゲート１００１，１００２，１００３，１００４によって形成される場合のように、組み合わせ回路１００の入力端子と出力端子との数が異なる場合には、それに対応して、スキャン診断回路におけるスキャンチェーンが構成される。例えば図５に示される構成では、２入力アンドゲート１００１，１００２，１００３，１００４における一方の入力端子に対応するスキャンチェーン部２８と、２入力アンドゲート１００１，１００２，１００３，１００４における他方の入力端子に対応するスキャンチェーン部２９と、２入力アンドゲート１００１，１００２，１００３，１００４の出力端子に対応するスキャンチェーン部３１とが配置される。スキャンチェーン部２８は４個のスキャンフリップフロップ回路２８１〜２８４を含んで成り、スキャンチェーン部２９は４個のスキャンフリップフロップ回路２９１〜２９４を含んで成り、スキャンチェーン部３１は４個のスキャンフリップフロップ回路３１１〜３１４を含んで成る。スキャンフリップフロップ回路２８１〜２８４，２９１〜２９４，３１１〜３１４は、何れも図２に示されるのと同一構成とされ、図３及び図４に示されるように各動作モードに応じて有効パスが形成される。また、図１におけるクロック選択回路２３から伝達されたクロック信号を取り込むクロックバッファと、その出力をスキャンチェーン部２８，２９，３１に分配するためのクロックバッファ３２，３３，３４が設けられる。尚、図５においてはスキャンチェーン部２８，２９及び３１におけるスキャン論理が省略されている。特に制限されないが、スキャンチェーン部２８、１９、３１の夫々は、仮想線２８０，２９０，３１０上に一列に配置される。このように配置することにより面積を低減することが出来る。
【００３９】
図６には、図５に示される構成において、スキャンチェーン部２８，２９及び３１におけるスキャン論理を加えた構成例が示される。
【００４０】
図６に示されるスキャン論理は基本的には図１に示されるのと同様とされる。例えば、スキャンチェーン部２８において、スキャンフリップフロップ回路２８１のスキャン入力端子ｓｉｄには図１におけるＪＴＡＧ回路２１からテストデータが伝達され、クロック入力端子ｃｋにはクロックバッファ３２を介してクロック信号が伝達される。スキャンモード端子ｓｅには図１に示されるＪＴＡＧ回路２１からスキャンモード信号が伝達され、データ入力端子ｄには図示されない前段回路から４ビットデータが伝達される。データ出力端子ｑからの出力データは組み合わせ回路１００におけるアンドゲート１００１の一方の入力端子に伝達される。テストデータのスキャンイン・スキャンアウトを可能とするため、スキャンフリップフロップ回路２８１のスキャン出力端子ｓｏｄはスキャンフリップフロップ回路２８２のスキャン入力端子ｓｉｄに結合され、スキャンフリップフロップ回路２８２のスキャン出力端子ｓｏｄはスキャンフリップフロップ回路２８３のスキャン入力端子ｓｉｄに結合され、スキャンフリップフロップ回路２８３のスキャン出力端子ｓｏｄはスキャンフリップフロップ回路２８４のスキャン入力端子ｓｉｄに結合される。スキャンフリップフロップ回路２８４のスキャン出力端子ｓｏｄはスキャンチェーン部２９におけるスキャンフリップフロップ回２９１のスキャン入力端子に結合される。スキャンフリップフロップ回路２８４のスキャン出力端子ｓｏｄからスキャンチェーン部２９におけるスキャンフリップフロップ回２９１のスキャン入力端子に至る信号伝達経路は折り返し部４００とされる。
【００４１】
スキャンチェーン部２９において、スキャンフリップフロップ回路２９１のスキャン入力端子ｓｉｄには上記スキャンチェーン部２８におけるスキャンフリップフロップ回路２８４からテストデータが伝達され、クロック入力端子ｃｋにはクロックバッファ３３を介してクロック信号が伝達される。スキャンモード端子ｓｅには図１に示されるＪＴＡＧ回路２１からスキャンモード信号が伝達され、データ入力端子ｄには図示されない前段回路から４ビットデータが伝達される。データ出力端子ｑからの出力データは組み合わせ回路１００におけるアンドゲート１００１の他方の入力端子に伝達される。テストデータのスキャンイン・スキャンアウトを可能とするため、スキャンフリップフロップ回路２９１のスキャン出力端子ｓｏｄはスキャンフリップフロップ回路２９２のスキャン入力端子ｓｉｄに結合され、スキャンフリップフロップ回路２９２のスキャン出力端子ｓｏｄはスキャンフリップフロップ回路２９３のスキャン入力端子ｓｉｄに結合され、スキャンフリップフロップ回路２９３のスキャン出力端子ｓｏｄはスキャンフリップフロップ回路２９４のスキャン入力端子ｓｉｄに結合される。スキャンフリップフロップ回路２９４のスキャン出力端子ｓｏｄはスキャンチェーン部３１におけるスキャンフリップフロップ回３１１のスキャン入力端子ｓｉｄに結合される。スキャンフリップフロップ回路２９４のスキャン出力端子ｓｏｄからスキャンチェーン部３１におけるスキャンフリップフロップ回３１１のスキャン入力端子ｓｉｄに至る信号伝達経路は折り返し部５００とされる。
【００４２】
スキャンチェーン部３１において、スキャンフリップフロップ回路３１１のスキャン入力端子ｓｉｄには上記スキャンチェーン部２９におけるスキャンフリップフロップ回路２９４からテストデータが伝達され、クロック入力端子ｃｋにはクロックバッファ３４を介してクロック信号が伝達される。スキャンモード端子ｓｅには図１に示されるＪＴＡＧ回路２１からスキャンモード信号が伝達され、データ入力端子ｄには組み合わせ回路１００から４ビットデータが伝達される。データ出力端子ｑからの出力データは、図示されない後段回路で伝達される。テストデータのスキャンイン・スキャンアウトを可能とするため、スキャンフリップフロップ回路３１１のスキャン出力端子ｓｏｄはスキャンフリップフロップ回路３１２のスキャン入力端子ｓｉｄに結合され、スキャンフリップフロップ回路３１２のスキャン出力端子ｓｏｄはスキャンフリップフロップ回路３１３のスキャン入力端子ｓｉｄに結合され、スキャンフリップフロップ回路３１３のスキャン出力端子ｓｏｄはスキャンフリップフロップ回路３１４のスキャン入力端子ｓｉｄに結合される。スキャンフリップフロップ回路３１４のスキャン出力端子ｓｏｄはスキャンチェーン出力として図１に示されＪＴＡＧ回路２１に伝達される。尚、クロックバッファ３２，３３，３４の夫々は、クロック信号を供給するスキャンチェーン部の最終的にデータを出力するフリップフロップ回路に近い位置に配置される。
【００４３】
図７には、図６に示される回路部分のレイアウト例が示される。また、図８には、スキャンフリップフロップ回路１個分の端子レイアウト例が拡大して示される。
【００４４】
配線層は、特に制限されないが、メタル第１層、メタル第２層、及びメタル第３層から成る３層構造とされる。配線層によって単位長さ当たりの抵抗値が異なるとき、抵抗値が大きな配線層を利用して上記折り返し部４００，５００が形成され、それよりも抵抗値が小さな配線層を利用して、クロックバッファ３２，３３，３４から出力されるクロック信号の伝達経路が形成される。図７に示されるレイアウト例では、メタル第１層が他の配線層に比べて最も抵抗値が大きいため、このメタル第１層を利用して上記折り返し部４００，５００が形成され、それよりも抵抗値が小さなメタル第３層を利用してクロックバッファ３２，３３，３４から出力されるクロック信号の伝達経路が形成される。尚、電源配線は、主として図示しない更に上層の配線層を使用し、セルへの最終的な電源供給は、メタル第１層を使用する。このように折り返し部４００，５００の配線抵抗を大きくすることで、折り返し部４００，５００において十分な遅延時間を得ることができ、それによってホールド違反の発生を回避することができる。
【００４５】
また、上記のように折り返し部４００，５００の抵抗を、クロック信号伝達経路における抵抗よりも大きくすることで、折り返し部４００，５００でのデータ伝達を遅延させただけではホールド違反を十分に回避することができない場合には、図９に示されるように、折り返し部４００，５００の途中に、信号遅延を可能とするディレイバッファ３６，３７などの遅延素子を設けることができる。このようにディレイバッファ３６，３７などの遅延素子を設け、折り返し部４００，５００において十分なデータ遅延を得ることによってホールド違反を回避することができる。半導体集積回路においてデータパスのような高密度実装が行われている部位では、ディレイバッファ等の遅延素子の挿入するスペースを確保するもは困難とされるが、折り返し部４００，５００におけるディレイバッファ３６，３７等の遅延素子を挿入する領域をデータパス以外の部位に予め確保しておき、ディレイバッファ等の遅延素子の挿入の必要性が生じた場合に、上記領域を利用してディレイバッファ３６，３７等の遅延素子を形成するようにすれば、ディレイバッファ３６，３７等の遅延素子を必要に応じて容易に挿入することができる。
【００４６】
また、図１０に示されるように、クロックバッファ３２の出力信号が伝達されるクロックバッファ３９と、上記クロックバッファ３２，３９の出力信号を選択的にスキャンフリップフロップ回路２９１〜２９４に伝達するためのセレクタ３８とを設けることができる。スキャン診断が行われる場合には、セレクタ３８によってクロックバッファ３９の出力信号が選択される。これにより、スキャンチェーン部２９に供給されるクロック信号は、スキャンチェーン部３１に供給されるクロック信号よりも遅延されることから、スキャンフリップフロップ回路２９４とスキャンフリップフロップ回路３１１との間においては、クロック信号の到着の遅いスキャンフリップフロップ回路に対して、クロック信号の到着の早いスキャンフリップフロップ回路を接続しているのと等価になり、折り返し部５００に起因するホールド違反を回避することができる。
【００４７】
上記の例ではスキャンフリップフロップ回路が規則的に配列されている場合について説明したが、このスキャンフリップフロップ回路が分散配置される場合においてもホールド違反を回避することができる。例えば図１１に示されるように、所定のクロックバッファ４０によってクロックが供給されるサービスエリアを指定し、このサービスエリア内に分散配置されるスキャンフリップフロップ回路▲１▼〜▲８▼までのクロック信号の遅延時間を計算し、この遅延時間の大きなスキャンフリップフロップ回路から順にスキャンチェーンを接続する。Ｓｃａｎ  ｉｎはテストデータ入力を意味し、Ｓｃａｎ  ｏｕｔはテストデータの出力を意味する。スキャンフリップフロップ回路は、▲１▼〜▲８▼の順にスキャンチェーンの接続が行われる。このような接続によれば、スキャンフリップフロップ回路▲１▼〜▲８▼が分散配置されているにもかかわらず、スキャンテストデータの搬送方向に対して逆の方向からクロック信号を供給する位置にクロックドライバが配置されることから、スキャンテストデータに対してクロック信号の遷移速度を速くでき、ホールド違反を回避することができる。尚、レイアウトの途中で、期待する接続順を守ることが困難な場合には、ディレイバッファを挿入してホールド対策を行うことができる。
【００４８】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００４９】
例えば、組み合わせ回路は２入力アンドゲート以外とすることができる。
【００５０】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるＪＴＡＧ規格によるスキャン診断を行う場合について説明したが、本発明はそれに限定されるものではなく、各種スキャン診断に利用することができる。
【００５１】
本発明は、少なくともスキャンテストを行うことを条件に適用することができる。
【００５２】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００５３】
すなわち、本願発明を適用することにより半導体集積回路のテストを容易に行うことができる。
【図面の簡単な説明】
【図１】本発明にかかる半導体集積回路における主要部の構成例回路図である。
【図２】上記半導体集積回路に含まれるスキャンフリップフロップ回路の構成例回路図である。
【図３】上記スキャンフリップフロップ回路の通常動作時における有効パスの説明図である。
【図４】上記スキャンフリップフロップ回路のスキャンシフト動作時における有効パスの説明図である。
【図５】上記半導体集積回路に含まれる組み合わせ回路の具体的な構成を示す回路図である。
【図６】図５に示される回路構成においてスキャン論理が追加された回路図である。
【図７】図６に示される回路構成を採用した場合のチップレイアウト説明図である。
【図８】上記フリップフロップ回路のセルレイアウトの説明図である。
【図９】上記半導体集積回路に含まれるスキャン診断回路の別の構成例を示す回路図である。
【図１０】上記半導体集積回路に含まれるスキャン診断回路の別の別の構成例を示す回路図である。
【図１１】上記半導体集積回路に含まれるスキャン診断回路の別の別の構成例を示す回路図である。
【符号の説明】
２１  ＪＴＡＧ回路
２２  ＰＬＬ分周回路
２３  クロック選択回路
２４，２５，３２，３３，３４，３５，３９，４０  クロックバッファ
２６，２７，２８，２９，３１  スキャンチェーン回路
３６，３７  ディレイバッファ
３８  セレクタ
１００  組み合わせ回路
２００  スキャン診断回路
３００，４００，５００  折り返し部
２８０，２９０，３１０  フリップフロップ回路が配置される位置を示す仮想線
【図１】
2004301661.tif 000003
【図２】
2004301661.tif 000004
【図３】
2004301661.tif 000005
【図４】
2004301661.tif 000006
【図５】
2004301661.tif 000007
【図６】
2004301661.tif 000008
【図７】
2004301661.tif 000009
【図８】
2004301661.tif 000010
【図９】
2004301661.tif 000011
【図１０】
2004301661.tif 000012
【図１１】
2004301661.tif 000013