(57)【要約】【課題】  長さが均等化されたスキャンチェインを容易に構築することができるテスト容易化回路の設計方法を提供すること。【解決手段】  本発明にかかるテスト容易化回路の設計方法は、構築するスキャンチェイン数と、複数の論理ブロック毎のフリップフロップ数と、を取得するステップと、スキャンチェイン毎に均等なフリップフロップ数を決定するステップと、１つの論理ブロックから選択された前記均等なフリップフロップ数のフリップフロップによって、入力端子と出力端子とを接続し、スキャンチェインを構築するステップと、前記１つの論理ブロックと他の論理ブロックから選択された前記均等なフリップフロップ数のフリップフロップによって、入力端子と出力端子とを接続し、スキャンチェインを構築するステップと、を備えるものである。【選択図】  図５
2005276069.tif 000002
【特許請求の範囲】
【請求項１】
複数の論理ブロックを有する半導体集積回路において、複数の入力端子と複数の出力端子のそれぞれを、複数のフリップフロップを介して接続し、複数のスキャンチェインを構築するテスト容易化回路の設計方法であって、
構築するスキャンチェイン数と、複数の論理ブロック毎のフリップフロップ数と、を取得するステップと、
前記構築するスキャンチェイン数と前記複数の論理ブロック毎のフリップフロップ数に基づいて、スキャンチェイン毎に均等なフリップフロップ数を決定するステップと、
１つの論理ブロックから選択された前記均等なフリップフロップ数のフリップフロップによって、入力端子と出力端子とを接続し、スキャンチェインを構築するステップと、
前記１つの論理ブロックと他の論理ブロックから選択された前記均等なフリップフロップ数のフリップフロップによって、入力端子と出力端子とを接続し、スキャンチェインを構築するステップと、
を備えるテスト容易化回路の設計方法。
【請求項２】
前記均等なフリップフロップ数を決定するステップは、
前記複数の論理ブロック毎のフリップフロップ数の総数を、前記構築するスキャンチェイン数により除算して得られる商について、小数点以下を切り上げた数を前記均等なフリップフロップ数とする、
請求項１に記載のテスト容易化回路の設計方法。
【請求項３】
前記１つの論理ブロックから選択されたフリップフロップによってスキャンチェインを構築するステップを、前記１つの論理ブロックに、スキャンチェインを構築していないフリップフロップが、前記均等なフリップフロップ数よりも小さくなるまで、繰り返すステップ、
を備える、請求項１又は２に記載のテスト容易化回路の設計方法。
【請求項４】
前記１つの論理ブロックと他の論理ブロックから選択されたフリップフロップによってスキャンチェインを構築するステップは、
前記１つの論理ブロックから選択されたフリップフロップによって構築されたスキャンチェインに含まれるフリップフロップ以外のフリップフロップと、前記他の論理ブロックから選択された前記均等なフリップフロップ数のフリップフロップによって、入力端子と出力端子とを接続し、スキャンチェインを構築する、
請求項１乃至３のいずれかに記載のテスト容易化回路の設計方法。
【請求項５】
前記他の論理ブロックから選択された前記均等なフリップフロップ数のフリップフロップによって、入力端子と出力端子とを接続し、スキャンチェインを構築するステップと、
前記他の論理ブロックから選択されたフリップフロップによってスキャンチェインを構築するステップを、前記他の論理ブロックに、スキャンチェインを構築していないフリップフロップが、前記均等なフリップフロップ数よりも小さくなるまで、繰り返すステップと、をさらに備え、
前記１つの論理ブロックと他の論理ブロックから選択されたフリップフロップによってスキャンチェインを構築するステップは、
前記１つの論理ブロックから選択されたフリップフロップによって構築されたスキャンチェインに含まれるフリップフロップ以外のフリップフロップと、前記他の論理ブロックから選択されたフリップフロップによって構築されたスキャンチェインに含まれるフリップフロップ以外のフリップフロップと、から選択された前記均等なフリップフロップ数のフリップフロップによって、入力端子と出力端子とを接続し、スキャンチェインを構築する、
請求項１乃至３のいずれかに記載のテスト容易化回路の設計方法。
【請求項６】
前記１つの論理ブロックと前記他の論理ブロック間の距離に関する情報を取得するステップと、
前記距離に関する情報に基づいて、前記１つの論理ブロックと前記他の論理ブロック間のルートを決定するステップと、をさらに備え、
前記１つの論理ブロックと他の論理ブロックから選択されたフリップフロップによってスキャンチェインを構築するステップは、前記決定したルートに従って、フリップフロップを接続し、スキャンチェインを構築する、
請求項１乃至５のいずれかに記載のテスト容易化回路の設計方法。
【請求項７】
フリップフロップの動作するエッジと、フリップフロップの駆動クロックの極性に基づいて、フリップフロップの接続順序を決定するステップ、をさらに備え、
前記１つの論理ブロックと他の論理ブロックから選択されたフリップフロップによってスキャンチェインを構築するステップは、
前記決定した接続順序に従って、フリップフロップを接続し、スキャンチェインを構築する、
請求項１乃至６のいずれかに記載のテスト容易化回路の設計方法。
【請求項８】
複数の論理ブロックを有する半導体集積回路において、複数の入力端子と複数の出力端子のそれぞれを、複数のフリップフロップを介して接続し、複数のスキャンチェインを構築する処理をコンピュータに実行させるプログラムであって、前記処理は、
構築するスキャンチェイン数と、複数の論理ブロック毎のフリップフロップ数と、を取得するステップと、
前記構築するスキャンチェイン数と前記複数の論理ブロック毎のフリップフロップ数に基づいて、スキャンチェイン毎に均等なフリップフロップ数を決定するステップと、
１つの論理ブロックから選択された前記均等なフリップフロップ数のフリップフロップによって、入力端子と出力端子とを接続し、スキャンチェインを構築するステップと、
前記１つの論理ブロックと他の論理ブロックから選択された前記均等なフリップフロップ数のフリップフロップによって、入力端子と出力端子とを接続し、スキャンチェインを構築するステップと、
を備えるプログラム。
【請求項９】
複数の論理ブロックを有する半導体集積回路において、複数の入力端子と複数の出力端子のそれぞれを、複数のフリップフロップを介して接続し、複数のスキャンチェインを構築するテスト容易化回路の設計システムであって、
構築するスキャンチェイン数と、複数の論理ブロック毎のフリップフロップ数と、を取得する手段と、
前記構築するスキャンチェイン数と前記複数の論理ブロック毎のフリップフロップ数に基づいて、スキャンチェイン毎に均等なフリップフロップ数を決定する手段と、
１つの論理ブロックから選択された前記均等なフリップフロップ数のフリップフロップによって、入力端子と出力端子とを接続し、スキャンチェインを構築する手段と、
前記１つの論理ブロックと他の論理ブロックから選択された前記均等なフリップフロップ数のフリップフロップによって、入力端子と出力端子とを接続し、スキャンチェインを構築する手段と、
を備えるテスト容易化回路の設計システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テスト容易化回路の設計システム、設計方法及びプログラムに関し、特に、スキャンテストに用いられるテスト容易化回路の設計システム、設計方法及びプログラムに関する。
【背景技術】
【０００２】
近年、半導体集積回路の大規模化、高集積化が進んでおり、このような半導体集積回路の製造不良テスト（manufacturing test）を効率よく行うべく、テスト容易化設計（DFT：Design For Test）が注目されている。
【０００３】
テスト容易化設計とは、テストが容易になる回路構成を設計することであり、このような回路をテスト容易化回路という。テスト容易化回路を用いて行われるテストの一つにスキャンテストが知られている。スキャンテストは、集積回路中の複数のフリップフロップ（以下、「ＦＦ」という）をシフトレジスタのように連結し（これを「スキャンチェイン」という）、外部端子からテスト信号を入力して、組合せ回路の動作結果をスキャンチェインを介して読み出すことによって、テスト容易化を図るものである。スキャンチェインにより連結されるＦＦをスキャンＦＦという。
【０００４】
また、大規模化した半導体集積回路の設計手法として、階層設計が知られている。階層設計では、回路を複数の階層に分割し、各階層の設計がそれぞれ別に行われ、それぞれの設計が終了した後にそれらの設計データを併合し、１つの集積回路とする。
【０００５】
図１１は、従来のスキャンチェインが構築された半導体チップを示している。図に示されるように、半導体チップ１１０には、Ａ、Ｂ、Ｃ、Ｄ及びＴＯＰの階層の回路が配置され、２本のスキャンチェイン１１１が構築されている。ＳＩＮ１及びＳＩＮ２はスキャンイン端子、ＳＯＴ１及びＳＯＴ２はスキャンアウト端子である。また、階層Ａ、Ｂ、Ｃ及びＴＯＰには、ロックアップラッチ１２３が設けられている。スキャンチェイン１１１は、各階層に設けられたスキャンＦＦを接続し構成されている。
【０００６】
図１２に、スキャンチェイン１１１を構成するスキャンＦＦの例を示す。図１２（ａ）は、マルチプレクサ方式のスキャンＦＦの例であり、図１２（ｂ）は、スキャンＦＦとロックアップラッチを含むスキャンチェインの例である。
【０００７】
図１２（ａ）に示されるように、スキャンＦＦ１２１は、入力側に、スキャンチェイン１１１を介してＳＩＮ（スキャンイン）端子、組合せ回路１２２の出力端子が接続され、出力側に、スキャンチェイン１１１を介してＳＯＴ（スキャンアウト）端子、組合せ回路１２２の入力端子が接続されている。また、スキャンＦＦ１２１は、ＳＭＣ（スキャンモードコントロール）端子とも接続され、さらに、クロック信号ＣＬＫが入力される。
【０００８】
ＳＩＮ端子からスキャンチェイン１１１を介してテストパターンを入力し、シフトレジスタ機能によりテスト対象となる組合せ回路１２２の前段のスキャンＦＦ１２１まで当該テストパターンを運び、当該テストパターンが組合せ回路１２２に入力される。そして、当該組合せ回路１２２の演算結果を後段のスキャンＦＦ１２１で受け取り、再びシフトレジスタ機能により当該演算結果をＳＯＴ端子へ出力する。
【０００９】
スキャンＦＦ１２１は、図に示されるように、記憶素子であるＤ−ＦＦ１２１１と、入力信号を切り替えるマルチプレクサ１２１２とを有している。マルチプレクサ１２１２には、ＳＩＮ端子側のスキャンチェイン１１１、組合せ回路１２２、ＳＭＣ端子が接続されており、ＳＭＣ端子からの信号によりシフトモードかキャプチャーモードかスキャンＦＦ１２１の動作モードを切り替える。マルチプレクサ１２１２は、シフトモードであれば、ＳＩＮ端子側のスキャンチェイン１１１から入力された信号をＤ−ＦＦ１２１１に出力し、キャプチャーモードであれば、組合せ回路１２２から入力された信号をＤ−ＦＦ１２１１に出力する。Ｄ−ＦＦ１２１１は、クロック信号ＣＬＫに従って、マルチプレクサ１２１２からの信号をＳＯＴ端子側のスキャンチェイン１１１や後段の組合せ回路１２２へ出力する。
【００１０】
図１２（ｂ）の例では、２つのスキャンＦＦ１２１をロックアップラッチ１２３を介して接続し、スキャンチェイン１１１を構築している。接続されるスキャンＦＦ１２１の駆動クロック、図の例では、ＣＬＫ１とＣＬＫ２が異なる場合に、ロックアップラッチ１２３によってクロックの同期をとり、１つのスキャンチェインの構築を可能とする。したがって、接続されるスキャンＦＦのクロックが異なる場合には、スキャンＦＦ１２１の間にロックアップラッチを挿入しなければならない。
【００１１】
一般に、エッジトリガ型であるＤ−ＦＦは、クロック信号ＣＬＫのエッジを検出し動作する。例えば、Ｄ−ＦＦ１２１１では、クロック信号ＣＬＫのエッジを検出した時に、入力信号Ｄを出力信号Ｑとして記憶する。ＦＦの検出するエッジの種別によって、クロック信号ＣＬＫの立上りエッジを検出するＦＦを、ｐｏｓｉｔｉｖｅ  ｅｄｇｅ  ＦＦ（立上りエッジ型ＦＦ。以下、ＰＯＳ−ＦＦという。）といい、クロック信号ＣＬＫの立下りエッジを検出するＦＦを、ｎｅｇａｔｉｖｅ  ｅｄｇｅ  ＦＦ（立下りエッジ型ＦＦ。以下、ＮＥＧ−ＦＦという。）という。また、クロック信号ＣＬＫは、信号の極性によって、「０」を基準とするＲＴＺ（Ｒｅｔｕｒｎ  Ｔｏ  Ｚｅｒｏ）と、「１」を基準とするＲＴＯ（Ｒｅｔｕｒｎ  Ｔｏ  Ｏｎｅ）が知られている。
【００１２】
次に、図１３乃至図２０を用いて、検出エッジとクロック極性が異なるパターンについて、スキャンＦＦ１２１の動作を説明する。
【００１３】
図１３は、スキャンＦＦ１２１ａ、ｂがＰＯＳ−ＦＦで、クロック信号ＣＬＫがＲＴＺの場合のシフト動作を示している。スキャンＦＦ１２１ａ、ｂがＰＯＳ−ＦＦであるので、クロック信号ＣＬＫの立上り時に、入力信号を記憶し、記憶されたデータを後段に転送する。すなわち、クロック信号ＣＬＫの立上り時に、スキャンＦＦ１２１ｂは、データｂをスキャンＦＦ１２１ａに転送し、同時に、スキャンＦＦ１２１ａは、データａを後段に転送する。したがって、１クロックサイクルで、データａとｂを転送することができる。
【００１４】
図１４は、スキャンＦＦ１２１ａ、ｂがＮＥＧ−ＦＦで、クロック信号ＣＬＫがＲＴＺの場合のシフト動作を示している。スキャンＦＦ１２１ａ、ｂがＮＥＧ−ＦＦであるので、クロック信号ＣＬＫの立下り時に、入力信号を記憶し、記憶されたデータを後段に転送する。すなわち、クロック信号ＣＬＫの立下り時に、スキャンＦＦ１２１ｂは、データｂをスキャンＦＦ１２１ａに転送し、同時に、スキャンＦＦ１２１ａは、データａを後段に転送する。したがって、１クロックサイクルで、データａとｂのデータを転送することができる。
【００１５】
図１５は、スキャンＦＦ１２１ａがＰＯＳ−ＦＦ、スキャンＦＦ１２１ｂがＮＥＧ−ＦＦ、クロック信号ＣＬＫがＲＴＺの場合のシフト動作を示している。スキャンＦＦ１２１ａがＰＯＳ−ＦＦのため、クロック信号ＣＬＫの立下り時にデータを後段に転送し、スキャンＦＦ１２１ｂがＮＥＧ−ＦＦのため、クロック信号ＣＬＫの立下り時にデータをスキャンＦＦ１２１ａに転送する。すなわち、１クロックの初めの立上り時に、スキャンＦＦ１２１ａがデータａを後段に転送し、１クロックの終わりの立下り時に、スキャンＦＦ１２１ｂがデータｂをスキャンＦＦ１２１ａに転送する。したがって、クロック信号がＲＴＺの場合、ＮＥＧ−ＦＦの次にＰＯＳ−ＦＦを接続すると、１クロックサイクルで、データａとｂを転送することができる。
【００１６】
図１６は、スキャンＦＦ１２１ａがＮＥＧ−ＦＦ、スキャンＦＦ１２１ｂがＰＯＳ−ＦＦ、クロック信号ＣＬＫがＲＴＺの場合のシフト動作を示している。図１５とＦＦの接続順序が異なるため、１クロックの初めの立上り時に、スキャンＦＦ１２１ｂがデータｂをスキャンＦＦ１２１ａに転送する。そうすると、１クロックの終わりの立下り時に、スキャンＦＦ１２１ａがデータａを後段に転送しようとするが、すでに、スキャンＦＦ１２１ｂからデータｂが転送されているため、データａを転送することができない。この場合には、スキャンＦＦ１２１ａは、データｂを転送してしまう。したがって、クロック信号がＲＴＺの場合、ＰＯＳ−ＦＦの次にＮＥＧ−ＦＦを接続すると、１クロックサイクルで、データを正常に転送することができない。
【００１７】
図１７は、図１３とクロック信号の極性が異なる場合であり、ここでは、クロック信号がＲＴＯである。この場合は、図１３と同様に、１クロックサイクルで、データａとｂを転送することができる。図１８も、図１４のクロック信号の極性をＲＴＯにした場合であり、図１４と同様に、１クロックサイクルで、データａとｂを転送することができる。
【００１８】
図１９は、図１６のクロック信号の極性をＲＴＯにした場合である。この場合、１クロックの初めの立下り時に、スキャンＦＦ１２１ａがデータａを後段に転送し、１クロックの終わりの立上り時に、スキャンＦＦ１２１ｂがデータｂをスキャンＦＦ１２１ａに転送する。したがって、クロック信号がＲＴＯの場合には、ＰＯＳ−ＦＦの次にＮＥＧ−ＦＦを接続すると、１クロックサイクルで、データａとｂを転送することができる。
【００１９】
図２０は、図１５のクロック信号の極性をＲＴＯにした場合である。この場合、１クロックの初めの立下り時に、スキャンＦＦ１２１ｂがデータｂをスキャンＦＦ１２１ａに転送する。そうすると、１クロックの終わりの立上り時に、スキャンＦＦ１２１ａがデータａを後段に転送しようとするが、すでに、スキャンＦＦ１２１ｂからデータｂが転送されているため、データａを転送することができない。したがって、クロック信号がＲＴＯの場合、ＮＥＧ−ＦＦの次にＰＯＳ−ＦＦを接続すると、１クロックサイクルで、データを正常に転送することができない。
【００２０】
以上のように、接続するスキャンＦＦのクロックが異なる場合には、ロックアップラッチが必要であったり、接続するスキャンＦＦの動作するエッジが異なる場合には、クロックの極性に応じた接続順序とする必要がある等、スキャンチェイン構築には制約が存在する。
【００２１】
このような制約を守りながら、スキャンチェインを構築する方法として、図２１のフローチャートに示す方法が知られている。ここでは、図１１に示したスキャンチェインを構築する例について説明する。
【００２２】
まず、各階層及びＴＯＰにおけるスキャンチェインを構築する（Ｓ２１１）。所定のチェイン数、ここでは２本のスキャンチェインを各階層にそれぞれ構築する。また、各階層内部のスキャンチェインの構成は、ＰＯＳ−ＦＦとＮＥＧ−ＦＦで分けてスキャンチェインが構築される。例えば、一方のスキャンチェインをＰＯＳ−ＦＦのみで構築し、他方のスキャンチェインをＮＥＧ−ＦＦのみで構築する。
【００２３】
次いで、各階層及びＴＯＰ間のスキャンチェインを構築する（Ｓ２１２）。Ｓ２１１で構築された各階層のスキャンチェインを階層間で互いに接続する。さらに、ＳＩＮ１端子、ＳＩＮ２端子、ＳＯＴ１端子、ＳＯＴ２端子を接続する。この例では、ＰＯＳ−ＦＦとＮＥＧ−ＦＦでスキャンチェインを分けているため、接続順序には問題は生じない。また、必要に応じて、ロックアップラッチ１２３を挿入し、クロックの同期をとっている。したがって、上記の制約を守ることができる。
【００２４】
しかしながら、一般的に、回路内部のＦＦは、ＰＯＳ−ＦＦとＮＥＧ−ＦＦのＦＦ数に差が生じるため、このような方法では、各スキャンチェインのチェイン長には、差異が生じ、均等化されないという問題がある。スキャンテストは、スキャンチェインの長さに比例してテスト時間が長くなるため、スキャンチェインが均等化されていないと、テスト時間が長くなり、テストコストが増大する。
【００２５】
スキャンテストは、複数のスキャンチェインを同時にテストするため、１つでも長いスキャンチェインがあると、他の短いスキャンチェインのテストが終了しても、長いスキャンチェインのテストが終了しなければ、スキャンテストが終了しない。このため、無駄なテストパターンが発生し、スキャンテストの効率が悪化する。
【００２６】
また、階層内部でスキャンチェインを均等化できた場合でも、半導体チップ全体では、上記のようなスキャンチェイン接続順序に制限があるため、均等化するのが困難であるという問題もあった。
【００２７】
さらに、この方法においては、構成されるスキャンチェインの本数は均等になるが、隣接する階層間をスキャンチェイン本数分の配線が通ることになり配線面積が増加し、配線性が悪いという問題もあった。
【００２８】
尚、従来のスキャンチェイン回路として、特許文献１が知られている。また、従来のスキャンチェインの長さを均等化する方法として、特許文献２が知られている。
【特許文献１】特開２００３−１２１４９８号公報
【特許文献２】特開２０００−９０１３７号公報
【発明の開示】
【発明が解決しようとする課題】
【００２９】
このように、テスト容易化設計回路の設計方法では、長さが均等化されたスキャンチェインを構築することが困難であるため、テスト時間が長く、テスト効率が悪い、さらに配線性が悪いという問題点があった。
【００３０】
本発明は、このような問題点を解決するためになされたもので、長さが均等化されたスキャンチェインを容易に構築することができるテスト容易化回路の設計方法を提供することを目的とする。
【課題を解決するための手段】
【００３１】
本発明にかかるテスト容易化回路の設計方法は、複数の論理ブロックを有する半導体集積回路において、複数の入力端子と複数の出力端子のそれぞれを、複数のフリップフロップを介して接続し、複数のスキャンチェインを構築するテスト容易化回路の設計方法であって、構築するスキャンチェイン数と、複数の論理ブロック毎のフリップフロップ数と、を取得するステップと、前記構築するスキャンチェイン数と前記複数の論理ブロック毎のフリップフロップ数に基づいて、スキャンチェイン毎に均等なフリップフロップ数を決定するステップと、１つの論理ブロックから選択された前記均等なフリップフロップ数のフリップフロップによって、入力端子と出力端子とを接続し、スキャンチェインを構築するステップと、前記１つの論理ブロックと他の論理ブロックから選択された前記均等なフリップフロップ数のフリップフロップによって、入力端子と出力端子とを接続し、スキャンチェインを構築するステップと、を備えるものである。これにより、長さが均等化されたスキャンチェインを容易に構築することができる。
【００３２】
上述のテスト容易化回路の設計方法において、前記均等なフリップフロップ数を決定するステップは、前記複数の論理ブロック毎のフリップフロップ数の総数を、前記構築するスキャンチェイン数により除算して得られる商について、小数点以下を切り上げた数を前記均等なフリップフロップ数としてもよい。これにより、長さが均等化されたスキャンチェインをさらに容易に構築することができる。
【００３３】
上述のテスト容易化回路の設計方法において、前記１つの論理ブロックから選択されたフリップフロップによってスキャンチェインを構築するステップを、前記１つの論理ブロックに、スキャンチェインを構築していないフリップフロップが、前記均等なフリップフロップ数よりも小さくなるまで、繰り返すステップ、を備えていてもよい。これにより、長さが均等化されたスキャンチェインを効率良く構築することができる。
【００３４】
上述のテスト容易化回路の設計方法において、前記１つの論理ブロックと他の論理ブロックから選択されたフリップフロップによってスキャンチェインを構築するステップは、前記１つの論理ブロックから選択されたフリップフロップによって構築されたスキャンチェインに含まれるフリップフロップ以外のフリップフロップと、前記他の論理ブロックから選択された前記均等なフリップフロップ数のフリップフロップによって、入力端子と出力端子とを接続し、スキャンチェインを構築してもよい。これにより、長さが均等化されたスキャンチェインを効率良く構築することができる。
【００３５】
上述のテスト容易化回路の設計方法において、前記他の論理ブロックから選択された前記均等なフリップフロップ数のフリップフロップによって、入力端子と出力端子とを接続し、スキャンチェインを構築するステップと、前記他の論理ブロックから選択されたフリップフロップによってスキャンチェインを構築するステップを、前記他の論理ブロックに、スキャンチェインを構築していないフリップフロップが、前記均等なフリップフロップ数よりも小さくなるまで、繰り返すステップと、をさらに備え、前記１つの論理ブロックと他の論理ブロックから選択されたフリップフロップによってスキャンチェインを構築するステップは、前記１つの論理ブロックから選択されたフリップフロップによって構築されたスキャンチェインに含まれるフリップフロップ以外のフリップフロップと、前記他の論理ブロックから選択されたフリップフロップによって構築されたスキャンチェインに含まれるフリップフロップ以外のフリップフロップと、から選択された前記均等なフリップフロップ数のフリップフロップによって、入力端子と出力端子とを接続し、スキャンチェインを構築してもよい。これにより、長さが均等化されたスキャンチェインを効率良く構築することができる。
【００３６】
上述のテスト容易化回路の設計方法において、前記１つの論理ブロックと前記他の論理ブロック間の距離に関する情報を取得するステップと、前記距離に関する情報に基づいて、前記１つの論理ブロックと前記他の論理ブロック間のルートを決定するステップと、をさらに備え、前記１つの論理ブロックと他の論理ブロックから選択されたフリップフロップによってスキャンチェインを構築するステップは、前記決定したルートに従って、フリップフロップを接続し、スキャンチェインを構築してもよい。これにより、長さが均等化されたスキャンチェインをさらに効率良く構築することができる。
【００３７】
上述のテスト容易化回路の設計方法において、フリップフロップの動作するエッジと、フリップフロップの駆動クロックの極性に基づいて、フリップフロップの接続順序を決定するステップ、をさらに備え、前記１つの論理ブロックと他の論理ブロックから選択されたフリップフロップによってスキャンチェインを構築するステップは、前記決定した接続順序に従って、フリップフロップを接続し、スキャンチェインを構築してもよい。これにより、長さが均等化されたスキャンチェインをさらに効率良く構築することができる。
【００３８】
本発明にかかるプログラムは、複数の論理ブロックを有する半導体集積回路において、複数の入力端子と複数の出力端子のそれぞれを、複数のフリップフロップを介して接続し、複数のスキャンチェインを構築する処理をコンピュータに実行させるプログラムであって、前記処理は、構築するスキャンチェイン数と、複数の論理ブロック毎のフリップフロップ数と、を取得するステップと、前記構築するスキャンチェイン数と前記複数の論理ブロック毎のフリップフロップ数に基づいて、スキャンチェイン毎に均等なフリップフロップ数を決定するステップと、１つの論理ブロックから選択された前記均等なフリップフロップ数のフリップフロップによって、入力端子と出力端子とを接続し、スキャンチェインを構築するステップと、前記１つの論理ブロックと他の論理ブロックから選択された前記均等なフリップフロップ数のフリップフロップによって、入力端子と出力端子とを接続し、スキャンチェインを構築するステップと、を備えるものである。これにより、長さが均等化されたスキャンチェインを容易に構築することができる。
【００３９】
本発明にかかるテスト容易化回路の設計システムは、複数の論理ブロックを有する半導体集積回路において、複数の入力端子と複数の出力端子のそれぞれを、複数のフリップフロップを介して接続し、複数のスキャンチェインを構築するテスト容易化回路の設計システムであって、構築するスキャンチェイン数と、複数の論理ブロック毎のフリップフロップ数と、を取得する手段と、前記構築するスキャンチェイン数と前記複数の論理ブロック毎のフリップフロップ数に基づいて、スキャンチェイン毎に均等なフリップフロップ数を決定する手段と、１つの論理ブロックから選択された前記均等なフリップフロップ数のフリップフロップによって、入力端子と出力端子とを接続し、スキャンチェインを構築する手段と、前記１つの論理ブロックと他の論理ブロックから選択された前記均等なフリップフロップ数のフリップフロップによって、入力端子と出力端子とを接続し、スキャンチェインを構築する手段と、を備えるものである。これにより、長さが均等化されたスキャンチェインを容易に構築することができる。
【発明の効果】
【００４０】
本発明によれば、長さが均等化されたスキャンチェインを容易に構築することができるテスト容易化回路の設計方法を提供することができる。
【発明を実施するための最良の形態】
【００４１】
以下に、本発明を適用可能な実施の形態が説明される。以下の説明は、本発明の実施形態を説明するものであり、本発明が以下の実施形態に限定されるものではない。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。又、当業者であれば、以下の実施形態の各要素を、本発明の範囲において容易に変更、追加、変換することが可能である。尚、各図において同一の符号を付されたものは同様の要素を示しており、適宜、説明を省略する。
【００４２】
発明の実施の形態１．
図１は、本発明の実施の形態１にかかるスキャンチェインが構築された半導体チップを示している。図に示されるように、この半導体チップ１０には、Ａ、Ｂ、Ｃ、Ｄ及びＴＯＰの階層の回路が配置され、２本のスキャンチェイン１１が構築されている。ＳＩＮ１及びＳＩＮ２はスキャンイン端子、ＳＯＴ１及びＳＯＴ２はスキャンアウト端子であり、階層Ｂにはロックアップラッチ１２が設けられている。この例では、図１１と異なり、各階層の全てが同じスキャンチェイン数ではないが、スキャンチェインの長さが均等化されたものである。また、階層間を接続するスキャンチェインが少なく、配線性よくスキャンチェインが構築されている。
【００４３】
次に、図２乃至図１０を用いて、本発明の実施の形態１にかかるテスト容易化回路の設計システムについて説明する。このテスト容易化回路の設計システムは、図１に示した、均等化されたスキャンチェインを構築するための設計システムである。尚、以下においては、設計システムにおけるプログラムを実行することにより、スキャンチェインを構築する例を説明するが、以下の方法を設計者が設計方法として使用することにより、同様にスキャンチェインを構築することが可能である。
【００４４】
図２は、本発明の実施の形態１にかかるテスト容易化回路の設計システムのブロック図である。テスト容易化回路の設計システム３００は、例えば、パーソナルコンピュータやサーバコンピュータ等のコンピュータにより構成され、図中の各ブロックは、ハードウェアもしくはハードウェア上で実行されるソフトウェアによって構成される。尚、テスト容易化回路の設計システム３００は、単一のコンピュータでなくとも、複数のコンピュータによって構成することも可能である。
【００４５】
図に示されるように、テスト容易化回路の設計システム３００は、スキャンチェイン構築部３１０、記憶部３２０、入力部３３０及び表示部３４０を備えている。
【００４６】
記憶部３２０は、スキャンチェイン構築部３１０の処理に関する情報を格納する。記憶部３２０は、構築前ネットリスト３２１、スキャンチェイン情報３２２、階層間の隣接情報３２３、階層のＦＦ情報３２４、構築後ネットリスト３２５を有しており、例えば、ハードディスク等の内部記憶装置や光ディスク等の外部記憶装置である。また、記憶部３２０は、この他、ＯＳプログラムやアプリケーションプログラム、各プログラムの処理に必要な各種データ等が格納されている。
【００４７】
構築前ネットリスト３２１は、各階層のネットリストであり、例えば、論理合成ツール等により、あらかじめＲＴＬ回路を論理合成し生成されている。ネットリストには、ゲートの接続関係が記述されている。構築後ネットリスト３２５は、構築前ネットリスト３２１に基づき、スキャンチェイン構築部３１０によって、スキャンチェインが構築されたネットリストである。
【００４８】
スキャンチェイン構築部３１０は、記憶部３２０に格納されている、構築前ネットリスト３２１、スキャンチェイン情報３２２、階層間の隣接情報３２３及び階層のＦＦ情報３２４等の情報を入力として、均等化されたネットリストを構築し、当該構築したネットリストを記憶部３２０に構築後ネットリスト３２５として格納する。スキャンチェイン構築部３１０は、例えば、ソフトウェアプログラムがメモリ上に展開され、ＣＰＵがソフトウェアプログラムに従って処理を行い、他のハードウェア構成と協働することによって構成することができる。
【００４９】
表示部３４０は、スキャンチェイン構築部３１０の処理に関する情報を表示する。例えば、構築後ネットリスト３２５等を、スキャンチェイン構築部３１０から受け付け、当該情報をＣＲＴやＬＣＤ等の表示装置において表示する。
【００５０】
入力部３３０は、ユーザから入力されるスキャンチェイン構築部３１０の処理に関する情報を受け付ける。例えば、キーボードやマウス等の入力装置を介して、ユーザから、構築前ネットリスト３２１等に関する情報（ネットリストのファイル名等）を受け付け、当該情報をスキャンチェイン構築部３１０へ出力する。
【００５１】
図３は、本発明にかかるテスト容易化回路の設計システムに格納される情報のデータ構造の例を示している。図３（ａ）はスキャンチェイン情報３２２、図３（ｂ）は階層間の隣接情報３２３、図３（ｃ）は階層のＦＦ情報３２４である。尚、これらのデータは、一例であり、後述するスキャンチェイン構築処理において処理可能なデータであれば、その他のデータでもよい。
【００５２】
図３（ａ）に示されるように、スキャンチェイン情報３２２には、スキャンチェイン数、スキャン端子名及びテストクロックの極性が含まれている。スキャンチェイン情報３２２は、例えば、ユーザによって入力部３３０を介して入力され格納される。この例では、スキャンチェイン数が１０本、ＳＩＮ端子の端子名が「ＩＮ１」から「ＩＮ１０」、ＳＯＴ端子の端子名が「ＯＵＴ１」から「ＯＵＴ１０」、ＳＭＣ端子が「ＳＭＣ」、ＴＥＮ端子が「ＴＥＮ」、テストクロックの極性がＲＴＺとして格納されている。
【００５３】
ＳＩＮ端子はスキャンイン端子であり、ＳＩＮ端子には、テストパターンが入力される。ＳＯＴ端子はスキャンアウト端子であり、組合せ回路のテスト結果が出力される。ＳＩＮ端子から入力されたテストパターンは、スキャンチェインによりテスト対象の組合せ回路まで転送され、組合せ回路の演算結果がさらにスキャンチェインにより転送されＳＯＴ端子から出力される。
【００５４】
ＳＭＣ端子はスキャンイネーブル端子であり、ＳＭＣ端子にはシフトモードとキャプチャーモードを切り替える信号が入力される。ＳＭＣ端子からの信号は、スキャンチェインを構成するスキャンＦＦに入力される。シフトモードの信号が入力された場合、スキャンＦＦはシフトレジスタとして動作し、ＳＩＮ端子から入力されたテストパターンや組合せ回路の演算結果を転送する。キャプチャーモードの信号が入力された場合、スキャンＦＦは組合せ回路の演算結果を記憶する。
【００５５】
ＴＥＮ端子はテストイネーブル端子であり、ＴＥＮ端子にはスキャンテストモードとユーザモードを切り替える信号が入力される。スキャンテスト時にスキャンテストモードの信号が入力され、通常の回路動作時にユーザモードの信号が入力される。ＴＥＮ端子からの信号は、例えば、回路のクロック動作を制御するゲーテッドクロック回路等に入力され、テストモード信号が入力された場合には、クロック制御を行わない。
【００５６】
尚、この例では、テストクロックの極性は、全スキャンチェインで共通としているが、スキャンチェイン毎にテストクロックの極性を設けてもよい。
【００５７】
図３（ｂ）に示されるように、階層間の隣接情報３２３には、階層間の距離と最短ルートが格納されている。階層間の隣接情報３２３は、例えば、配置配線ツールにより生成されてもよいし、ユーザにより入力部３３０を介して入力されてもよい。階層間の距離には、階層Ａ−Ｂ間、階層Ａ−Ｃ間・・・階層Ｄ−ＴＯＰ間の距離がそれぞれ格納されている。また、最短ルートには、階層Ａ→階層Ｂ→ＴＯＰ→階層Ｃ→階層Ｄのルートと、階層Ｂ→階層Ａ→ＴＯＰ→階層Ｃ→階層Ｄの２つのルートが格納されている。この例における、階層間の距離の値は一例であり、必ずしも最短ルートのルートとは限らない。尚、階層間の距離あるいは最短ルートのいずれか一方のみでもよいし、その他の形式でもよい。
【００５８】
図３（ｃ）に示されるように、階層のＦＦ情報３２４には、階層内総ＦＦ数、ＮＥＧ−ＦＦ数、ＰＯＳ−ＦＦ数が含まれ、階層毎にそれぞれ格納されている。階層のＦＦ情報３２４は、例えば、配置配線ツールにより生成されてもよいし、ユーザにより入力部３３０を介して入力されてもよく、構築前ネットリスト３２１から取得してもよい。ＮＥＧ−ＦＦ数は、各階層内のＮＥＧ−ＦＦの数であり、ＰＯＳ−ＦＦ数は、各階層内のＰＯＳ−ＦＦの数である。すなわち、ＮＥＧ−ＦＦ数とＰＯＳ−ＦＦ数の和が階層内総ＦＦ数となる。例えば、階層Ａにおける階層内ＦＦ数が５５５個、ＮＥＧ−ＦＦ数が３５個、ＰＯＳ−ＦＦ数が５２０個として格納されている。尚、その他、各階層のＦＦ数を合計した、半導体チップ内の総ＦＦ数等を格納していてもよい。
【００５９】
図４は、本発明にかかる半導体チップのスキャンチェイン構築前の状態を示している。この図は、スキャンチェインを構築するために、各階層及びＴＯＰを初期配置した状態を示しており、図３（ｂ）（ｃ）のデータに対応している。例えば、配置配線ツール等を用いて、図４のように各階層のネットリストを配置することにより、図３（ｂ）（ｃ）のデータが生成される。各階層のネットリストを配置したときの、各階層間の距離が階層間の隣接情報３２３となり、各階層のネットリスト内のＦＦ数が階層のＦＦ情報３２４となる。図に示される、各階層内の数値がＦＦ数である。例えば、階層Ｄの総ＦＦ数が４３６７個、ＮＥＧ−ＦＦ数が２０６２個、ＰＯＳ−ＦＦ数が２３０５個である。
【００６０】
図５のフローチャートは、本発明にかかるスキャンチェイン構築部の処理を示している。これらの処理は、スキャンチェイン構築部３１０における処理であり、例えば、テスト容易化回路の設計システム３００において所定のアプリケーションプログラム等により実行される。ここでは、図３のデータを用いた例について説明する。
【００６１】
まず、スキャンチェイン毎の均等化されたＦＦ数を決定する（Ｓ５０１）。各階層及びＴＯＰにおけるスキャンＦＦ数と構築するスキャンチェイン数より１本当たりの均等化されたスキャンＦＦ数を求める。１本当たりのスキャンＦＦ数を基準値Ｆ＿ＢＡＳＥとして、基準値Ｆ＿ＢＡＳＥは、数１のように半導体チップ全体のＦＦ数とスキャンチェイン数により求めることができる。
【数１】
2005276069.tif 000003
ここで、Ｎはスキャンチェイン数である。また、Ｆ＿ＡＬＬは半導体チップ全体のＦＦ数であり、数２で表される。
【数２】
2005276069.tif 000004
ここで、Ｆ＿ＡからＦ＿Ｎ及びＦ＿ＴＯＰは、階層Ａから階層Ｎ及びＴＯＰのＦＦ数である。数１及び数２に、図３の例をあてはめて計算すると数３となる。
【数３】
2005276069.tif 000005
ここで、小数点以下を切り上げると、基準値Ｆ＿ＢＡＳＥは、１３２３となり、１３２３個のＦＦからなるスキャンチェインを１０本構築することにより、均等化されたスキャンチェインの構築が可能となる。
【００６２】
次いで、各階層及びＴＯＰにおけるスキャンチェインを構築する（Ｓ５０２）。Ｓ５０１で求めた基準値Ｆ＿ＢＡＳＥの長さのスキャンチェインを、各階層及びＴＯＰ内のそれぞれ構築する。詳細は後述する。
【００６３】
次いで、各階層及びＴＯＰ間のスキャンチェインを構築する（Ｓ５０３）。Ｓ５０２で構築された各階層内のスキャンチェインに含まれないスキャンＦＦを用いて、半導体チップ全体でスキャンチェインを構築する。詳細は後述する。以上で当該処理が終了し、均等化されたスキャンチェインが構築され、構築されたスキャンチェインは、構築後ネットリスト３２５に格納される。
【００６４】
図６のフローチャートは、図５の各階層及びＴＯＰにおけるスキャンチェインの構築（Ｓ５０２）の処理を示している。これらの処理は、図５と同様に、スキャンチェイン構築部３１０における処理であり、アプリケーションプログラム等により実行される。
【００６５】
まず、各階層で閉じたスキャンチェイン数を決定する（Ｓ６０１）。各階層で閉じたスキャンチェインとは、階層内のＦＦのみで構成されたスキャンチェインであり、ＳＩＮ端子とＳＯＴ端子とが１つの階層のＦＦのみを介して接続されるものである。階層内で閉じたスキャンチェイン数は、数４のように階層内総ＦＦ数と基準値により求めることができる。
【数４】
2005276069.tif 000006
ここで、数４の商である、Ｃｈａｉｎ＿ＡからＣｈａｉｎ＿Ｎ及びＣｈａｉｎ＿ＴＯＰは、階層Ａから階層Ｎ及びＴＯＰ内で閉じたスキャンチェイン数である。また、数４の余りである、Ｓ＿ａからＳ＿ｎ及びＳ＿ｔｏｐは、他の階層のＦＦと接続されるＦＦ数であり、Ｓ＿ａ＿ＮからＳ＿ｎ＿Ｎ及びＳ＿ｔｏｐ＿Ｎは、ＮＥＧ−ＦＦ数であり、Ｓ＿ａ＿ＰからＳ＿ｎ＿Ｐ及びＳ＿ｔｏｐ＿Ｐは、ＰＯＳ−ＦＦ数である。数４に、図３の例をあてはめて計算すると数５となる。
【数５】
2005276069.tif 000007
したがって、階層Ｂに２本、階層Ｃに３本、階層Ｄに３本の閉じたスキャンチェインを構築することとする。
【００６６】
次いで、他の階層と結線（接続）されて構成されるスキャンチェイン数を決定する（Ｓ６０２）。他の階層との結線されて構成されるスキャンチェイン数Ｃｈａｉｎ＿ａｌｌは、数６により求めることができる。
【数６】
2005276069.tif 000008
ここで、Ｓ＿ａｌｌは、半導体チップ全体の他の階層と結線されるＦＦ数であり、数７で表される。
【数７】
2005276069.tif 000009
数６及び数７に、図３の例をあてはめて計算すると数８となる。
【数８】
2005276069.tif 000010
ここで、小数点以下を切り上げると、Ｃｈａｉｎ＿ａｌｌは２となり、他の階層との結線されて構成されるスキャンチェインを２本構築することとする。
【００６７】
次いで、基準値と構築するスキャンチェインとの誤差を決定する（Ｓ６０３）。基準値が数３で小数点以下切り上げているため、基準値と構築するスキャンチェインとに誤差が生じる。誤差が生じるスキャンチェインの長さは数９により求めることができる。
【数９】
2005276069.tif 000011
ここで、Ｓｕｒｐｌｕｓ＿ＦＦが基準値と誤差が生じるスキャンチェインのＦＦ数となる。また、基準値と構築するスキャンチェインとの誤差は、数１０となる。
【数１０】
2005276069.tif 000012
ここでＣｈａｉｎ＿ｄｉｆｆが誤差である。数９及び数１０に、図３の例をあてはめて計算すると数１１となる。
【数１１】
2005276069.tif 000013
したがって、基準値との誤差は４となる。
【００６８】
次いで、Ｓ６０３で求めた誤差より、誤差が許容範囲内か判定する（Ｓ６０４）。例えば、誤差の許容範囲を基準値の１０％と以内すると、基準値は１３２３なので１３２以下か判定する。ここでは、誤差が４のため許容範囲内と判定する。
【００６９】
Ｓ６０４において、誤差が許容範囲外と判定された場合、基準値Ｆ＿ＢＡＳＥの数を増減させて、再度Ｓ６０１から処理を行い、誤差が許容範囲内となるまで繰り返す。
【００７０】
Ｓ６０４において、誤差が許容範囲内と判定された場合、各階層で閉じたスキャンチェインを構築する（Ｓ６０５）。それぞれの階層において、数５で求めた数のスキャンチェインを、基準値の数のＦＦと、ＳＩＮ端子及びＳＯＴ端子を接続することにより構築する。
【００７１】
以上で当該処理が終了し、各階層に閉じたスキャンチェインが構築される。この閉じたスキャンチェインを構築した状態を図７に示す。各階層の近傍にＩＮ１からＩＮ８、ＯＵＴ１からＯＵＴ８の端子が設けられ、スキャンチェインが構築されている。この図では、各階層の数字は、スキャンチェイン構築後の残りのＦＦ数を示している。例えば、階層Ｄは、スキャンチェインを３本構築し、ＰＯＳ−ＦＦが３９８個残っていることを表している。
【００７２】
図８のフローチャートは、図５の各階層及びＴＯＰ間のスキャンチェインの構築（Ｓ５０３）の処理を示している。これらの処理は、図５と同様に、スキャンチェイン構築部３１０における処理であり、アプリケーションプログラム等により実行される。
【００７３】
まず、スキャンチェインの構築ルールを決定する（Ｓ８０１）。上述のように、ＰＯＳ−ＦＦとＮＥＧ−ＦＦを接続する場合に、接続順序に制約があるため、テストクロックの極性に応じて、ＰＯＳ−ＦＦとＮＥＧ−ＦＦとの接続順を決定する。テストクロックがＲＴＺの場合、ＮＥＧ−ＦＦ→ＰＯＳ−ＦＦの順番でスキャンチェインを構築し、テストクロックがＲＴＯの場合、ＰＯＳ−ＦＦ→ＮＥＧ−ＦＦの順番でスキャンチェインを構築する。図３の例では、テストクロックがＲＴＺなので、ＮＥＧ−ＦＦ→ＰＯＳ−ＦＦの順番でスキャンチェインを構築することとする。
【００７４】
次いで、スキャンチェインのルートを決定する（Ｓ８０２）。Ｓ８０１で決定した構築ルールと、階層間の隣接情報３２３から、構築するスキャンチェインのルートを決定する。例えば、階層間の隣接情報３２３の最短ルートが、階層Ａ→階層Ｂ→ＴＯＰ→・・・→階層Ｎで、テストクロックがＲＴＺの場合、ルートは、Ｓ＿ａ＿Ｎ→Ｓ＿ｂ＿Ｎ→Ｓ＿ｔｏｐ＿Ｎ→・・・→Ｓ＿ｎ＿Ｎ→Ｓ＿ｎ＿Ｐ→・・・→Ｓ＿ｔｏｐ＿Ｐ→Ｓ＿ｂ＿Ｐ→Ｓ＿ａ＿Ｐとなる。
【００７５】
図３の例では、階層間の隣接情報３２３の最短ルートが２つあるため、この２つのルートについて考える。また、Ｓ８０１より、まず、ＮＥＧ−ＦＦの接続について考える。そうすると、３５（Ｓ＿ａ＿Ｎ）→８３（Ｓ＿ｂ＿Ｎ）のルート１と、８３（Ｓ＿ｂ＿Ｎ）→３５（Ｓ＿ａ＿Ｎ）のルート２が考えられる。ここで、Ｘ（Ｓ＿ｎ＿Ｎ）は階層ｎのＮＥＧ−ＦＦがＸ個、Ｘ（Ｓ＿ｎ＿Ｐ）は階層ｎのＰＯＳ−ＦＦがＸ個、を表すこととする。
【００７６】
次に、ＰＯＳ−ＦＦの接続順を考える。ルート１の場合、ＰＯＳ−ＦＦの接続順は階層Ｂ→階層Ａ→ＴＯＰ→階層Ｃ→階層→Ｄとなり、３５（Ｓ＿ａ＿Ｎ）→８３（Ｓ＿ｂ＿Ｎ）→３００（Ｓ＿ｂ＿Ｐ）→５２０（Ｓ＿ａ＿Ｐ）→１２１（Ｓ＿ｔｏｐ＿Ｐ）→１１８５（Ｓ＿ｃ＿Ｐ）→３９８（Ｓ＿ｄ＿Ｐ）となる。ルート２の場合、ＰＯＳ−ＦＦの接続順は階層Ａ→階層Ｂ→ＴＯＰ→階層Ｃ→階層→Ｄとなり、８３（Ｓ＿ｂ＿Ｎ）→３５（Ｓ＿ａ＿Ｎ）→５２０（Ｓ＿ａ＿Ｐ）→３００（Ｓ＿ｂ＿Ｐ）→１２１（Ｓ＿ｔｏｐ＿Ｐ）→１１８５（Ｓ＿ｃ＿Ｐ）→３９８（Ｓ＿ｄ＿Ｐ）となる。
【００７７】
ここでは、ルート２よりもルート１の方が配線性がよいと仮定して、ルート１と決定する。尚、このようなスキャンチェイン構築ルールを、各階層及びＴＯＰ内の閉じたスキャンチェイン構築に適用してもよい。
【００７８】
次いで、基準値の長さのスキャンチェインを構築する（Ｓ８０３）。Ｓ８０２で決定したスキャンチェインのルートから、基準値Ｆ＿ＢＡＳＥの長さで区切りスキャンチェインを構築する。例えば、Ｓ＿ａ＿Ｎ＋Ｓ＿ｂ＿Ｎ＋Ｓ＿ｔｏｐ＿Ｎ＋Ｓ＿ｔｏｐ＿Ｐ＋Ｓ＿ｂ＿ＰのＸ番目が基準値Ｆ＿ＢＡＳＥの場合、スキャンチェインは、ＳＩＮ端子→Ｓ＿ａ＿Ｎ→Ｓ＿ｂ＿Ｎ→Ｓ＿ｔｏｐ＿Ｎ→Ｓ＿ｔｏｐ＿Ｐ→Ｓ＿ｂ＿ＰのＸ番目→ＳＯＴ端子となる。
【００７９】
上記の例では、ルート２を基準値１３２３で区切る。３５＋８３＋３００＋５２０＋１２１＋２６４＝１３２３となるため、階層Ｃの頭から２６４番目のＦＦで区切ることとなる。したがって、Ｓ＿ａ＿Ｎ→Ｓ＿ｂ＿Ｎ→Ｓ＿ｂ＿Ｐ→Ｓ＿ａ＿Ｐ→Ｓ＿ｔｏｐ＿Ｐ→Ｓ＿ｃ＿Ｐ（２６４番目まで）と、Ｓ＿ｃ＿Ｐ（２６５番目から）→Ｓ＿ｄ＿Ｐの２本のスキャンチェインを構築する。
【００８０】
次いで、ロックアップラッチを挿入する（Ｓ８０４）。マルチプレクサ方式のスキャンチェインの場合、スキャンチェイン上で異なるクロックの間にはタイミング保障のため、階層内の最終段に、ロックアップラッチを挿入する。ただし、ＮＥＧ−ＦＦ→ＰＯＳ−ＦＦあるいはＰＯＳ−ＦＦ→ＮＥＧ−ＦＦの境界の場合には、ロックアップラッチは不要である。
【００８１】
以上で処理を終了し、均等化されたスキャンチェインが構築できる。均等化されたスキャンチェインを構築した状態を図９に示す。階層Ａの近傍にＩＮ９端子、階層Ｃの近傍にＯＵＴ９端子及びＩＮ１０端子、階層Ｄの近傍にＯＵＴ１０端子が設けられ、複数の階層を介するスキャンチェインが構築されている。
【００８２】
このような構成により、均等化されたスキャンチェインを容易に構築することができる。スキャンチェインを均等化することにより、無駄なテストパターンを少なくすることができ、テスト時間の短縮、テストコストの削減、設計ＴＡＴ（設計期間）の短縮が可能となる。
【００８３】
その他の発明の実施の形態．
尚、上述の例では、階層設計において分割された階層を、半導体チップに配置しスキャンチェインを構築する例について説明したが、その他の論理ブロック、例えばセルやマクロ等に分割されていてもよい。
【００８４】
また、上述の例では、スキャンチェイン構築のみについて説明したが、その他のＥＤＡ（Electronic Design Automation）ツール等とともに使用することで、さらに設計作業の効率化を図ることができる。例えば、上述の例で構築したネットリストをＡＴＰＧ（Automatic Test Pattern Generator）に入力し、テストパターンを自動的に作成することができる。
【００８５】
上述したテスト容易化回路の設計システム３００を実現するためのハードウェア構成の例を図１０に示す。設計システム３００は、典型的なコンピュータ・システムが利用可能であり、中央処理装置（ＣＰＵ）２０１とメモリ２０４とを含んでいる。
【００８６】
ＣＰＵ２０１とメモリ２０４とは、バスを介して補助記憶装置としてのハードディスク装置２１３に接続される。フレキシブルディスク装置２２０、ハードディスク装置２１３・２３０、ＣＤ−ＲＯＭドライブ２２６・２２９、ＭＯドライブ２２８等の記憶媒体駆動装置は、フレキシブルディスク・コントローラ２１９、ＩＤＥコントローラ２２５、ＳＣＳＩコントローラ２２７等の各種コントローラを介してバスに接続される。フレキシブルディスク装置２２０等の記憶媒体駆動装置には、フレキシブルディスク等の可搬型記憶媒体が挿入される。
【００８７】
記憶媒体にはオペレーティングシステムと共同してＣＰＵ２０１等に命令を与え、テスト容易化回路の設計システム３００の機能を実施するためのコンピュータ・プログラムを記憶することができる。コンピュータ・プログラムは、メモリ２０４にロードされることによって実行される。コンピュータ・プログラムは圧縮し、又、複数に分割して記憶媒体に記憶することができる。ハードウェア構成は、典型的には、ユーザ・インターフェース・ハードウェアを備える。
【００８８】
ユーザ・インターフェース・ハードウェアとしては、例えば、入力をするためのポインティングデバイス（マウス２０７、ジョイスティック等）やキーボード２０６、あるいは、視覚データをユーザに提示するための液晶ディスプレイなどの表示装置２１１やＣＲＴディスプレイ２１２がある。
【００８９】
また、パラレルポート２１６を介してプリンタを接続するも可能である。このコンピュータ・システムは、シリアルポート２１５を介してモデムを接続することが可能であり、シリアルポート２１５およびモデムまたはトークンリングや通信アダプタ２１８等を介してネットワークに接続し、他のコンピュータ・システムと通信を行っている。尚、上記構成は必要に応じて省略することができる。
【図面の簡単な説明】
【００９０】
【図１】本発明にかかるスキャンチェインが構築された半導体チップを示す模式図である。
【図２】本発明にかかるテスト容易化回路の設計システムの構成を示すブロック図である。
【図３】本発明にかかるテスト容易化回路の設計システムで格納される情報を説明するための図である。
【図４】本発明にかかる半導体チップのスキャンチェイン構築前の状態を説明するための図である。
【図５】本発明にかかるスキャンチェイン構築処理を示すフローチャートである。
【図６】本発明にかかるスキャンチェイン構築処理を示すフローチャートである。
【図７】本発明にかかる半導体チップの各階層にスキャンチェインを構築した状態を説明するための図である。
【図８】本発明にかかるスキャンチェイン構築部の処理を示すフローチャートである。
【図９】本発明にかかる半導体チップのスキャンチェイン構築後の状態を説明するための図である。
【図１０】本発明にかかるテスト容易化回路の設計システムのハードウェア構成図である。
【図１１】従来のスキャンチェインが構築された半導体チップを示す模式図である。
【図１２】スキャンフリップフロップの構成を説明するための図である。
【図１３】スキャンフリップフロップの動作を説明するための図である。
【図１４】スキャンフリップフロップの動作を説明するための図である。
【図１５】スキャンフリップフロップの動作を説明するための図である。
【図１６】スキャンフリップフロップの動作を説明するための図である。
【図１７】スキャンフリップフロップの動作を説明するための図である。
【図１８】スキャンフリップフロップの動作を説明するための図である。
【図１９】スキャンフリップフロップの動作を説明するための図である。
【図２０】スキャンフリップフロップの動作を説明するための図である。
【図２１】従来のスキャンチェイン構築方法を示すフローチャートである。
【符号の説明】
【００９１】
１０  半導体チップ
１１  スキャンチェイン１１
１２  ロックアップラッチ
３００  テスト容易化回路の設計システム
３１０  スキャンチェイン構築部３１０
３２０  記憶部
３２１  構築前ネットリスト
３２２  スキャンチェイン情報３２２
３２３  階層間の隣接情報
３２４  階層のＦＦ情報
３２５  構築後ネットリスト３２５
３３０  入力部
３４０  表示部
【図１】
2005276069.tif 000014
【図２】
2005276069.tif 000015
【図３】
2005276069.tif 000016
【図４】
2005276069.tif 000017
【図５】
2005276069.tif 000018
【図６】
2005276069.tif 000019
【図７】
2005276069.tif 000020
【図８】
2005276069.tif 000021
【図９】
2005276069.tif 000022
【図１０】
2005276069.tif 000023
【図１１】
2005276069.tif 000024
【図１２】
2005276069.tif 000025
【図１３】
2005276069.tif 000026
【図１４】
2005276069.tif 000027
【図１５】
2005276069.tif 000028
【図１６】
2005276069.tif 000029
【図１７】
2005276069.tif 000030
【図１８】
2005276069.tif 000031
【図１９】
2005276069.tif 000032
【図２０】
2005276069.tif 000033
【図２１】
2005276069.tif 000034