(57)【特許請求の範囲】
【請求項１】
複数のスタート側フリップフロップと複数のエンド側フリップフロップとの間に、組合せ論理回路を介した複数の信号経路が形成された論理回路を含む半導体集積回路の、遅延性故障検出のためのテスト条件を生成し、テスト条件データベースに格納する方法において、
第１のエンド側フリップフロップに供給される出力データの論理値の遷移が期待される、第１のスタート側フリップフロップに供給する入力データの論理値の遷移を含むテストパターンを生成し、
前記複数のスタート側フリップフロップのいずれかをスタートポイントとし、前記第１のエンド側フリップフロップをエンドポイントとして共有する複数の信号経路の遅延時間のうちの最長の遅延時間と前記論理回路の実動作のタイミングとの差として、もしくは、前記第１のスタート側フリップフロップをスタートポイントとして共有し、前記複数のエンド側フリップフロップのいずれかをエンドポイントとする複数の信号経路の遅延時間のうちの最長の遅延時間と前記実動作のタイミングとの差として、最小スラックマージンを把握し、
前記論理回路の実動作のタイミングに比較して速いテストタイミングを設定し、
前記第１のスタート側フリップフロップに供給される入力データの論理値の遷移による前記第１のエンド側フリップフロップに供給される出力データの論理値の遷移、および、該遷移の後の出力データの前記第１のエンド側フリップフロップへの取り込みのシミュレーションを、前記第１のスタート側フリップフロップと第１のエンド側フリップフロップとの間の信号経路の遅延時間に前記最小スラックマージンを加えて行い、
前記シミュレーションによって、前記テストタイミングで、前記期待される論理値の遷移の後の出力データを前記第１のエンド側フリップフロップに取り込むことができないと判断された場合に、前記第１のエンド側フリップフロップに保持されたデータを、前記テストパターンとテストタイミングを用いたテストにおける判定の対象から除外するマスクデータを生成し、前記テスト条件データベースに格納することを特徴とするテスト条件の生成方法。
【請求項２】
前記生成したテストパターンが、さらに、前記第１のエンド側フリップフロップとは異なる、第２のエンド側フリップフロップに供給される第２の出力データの論理値の遷移が期待される、前記第１のスタート側フリップフロップとは異なる、第２のスタート側フリップフロップに供給する第２の入力データの論理値の遷移を含み、
前記最小スラックマージンの把握において、さらに、前記複数のスタート側フリップフロップのいずれかをスタートポイントとし、前記第２のエンド側フリップフロップをエンドポイントとして共有する複数の信号経路の遅延時間のうちの最長の遅延時間と前記実動作のタイミングとの差として、もしくは、前記第２のスタート側フリップフロップをスタートポイントとして共有し、前記複数のエンド側フリップフロップのいずれかをエンドポイントとする複数の信号経路の遅延時間のうちの最長の遅延時間と前記実動作のタイミングとの差として、第２の最小スラックマージンを把握し、
前記シミュレーションにおいて、さらに、前記第２のスタート側フリップフロップに供給される第２の入力データの論理値の遷移による前記第２のエンド側フリップフロップに供給される第２の出力データの論理値の遷移、および、該遷移の後の第２の出力データの前記第２のエンド側フリップフロップへの取り込みのシミュレーションを、前記第２のスタート側フリップフロップと第２のエンド側フリップフロップとの間の信号経路の遅延時間に前記第２の最小スラックマージンを加えて行うことを特徴とする請求項１記載のテスト条件の生成方法。
【請求項３】
前記最小スラックマージンを、前記第１のスタート側フリップフロップと第１のエンド側フリップフロップとの間の信号経路の、該最小スラックマージンの把握において考慮した、エンドポイントを共有する複数の信号経路、もしくは、スタートポイントを共有する複数の信号経路の、全てに共有される部分の遅延時間に加えて、前記シミュレーションを行うことを特徴とする請求項１または２記載のテスト条件の生成方法。
【請求項４】
前記マスクデータを格納したときに、前記テスト条件データベースに格納されたマスクデータに基づいて、前記論理回路内に存在する遅延性故障のうちの、前記テストパターンを用いて検出が行えるものの割合である検出率を把握し、該把握した検出率が目標値を下回るときに、
前記テストタイミングを緩和し、該緩和したテストタイミングを用いて、前記シミュレーションと、マスクデータの生成およびテスト条件データベースヘの格納を行うことを特徴とする請求項１ないし３のいずれかに記載のテスト条件の生成方法。
【請求項５】
前記緩和したテストタイミングを用いて行うシミュレーションを、前記生成したテストパターンを用いて行うことを特徴とする請求項４記載のテスト条件の生成方法。
【請求項６】
前記把握した検出率が目標値を下回るときに、テストパターンを再生成し、該再生成したテストパターンおよび緩和したテストタイミングを用いて、前記シミュレーションと、マスクデータの生成およびテスト条件データベースヘの格納を行うことを特徴とする請求項４記載のテスト条件の生成方法。
【請求項７】
複数のスタート側フリップフロップと複数のエンド側フリップフロップとの間に、組合せ論理回路を介した複数の信号経路が形成された論理回路を含む半導体集積回路の、遅延性故障検出のためのテスト条件を生成し、テスト条件データベースに格納する装置において、
第１のエンド側フリップフロップに供給される出力データの論理値の遷移が期待される、第１のスタート側フリップフリップに供給する入力データの論理値の遷移を含むテストパターンを生成するテストパターン生成部と、
前記複数のスタート側フリップフロップのいずれかをスタートポイントとし、前記第１のエンド側フリップフロップをエンドポイントとして共有する複数の信号経路の遅延時間のうちの最長の遅延時間と前記論理回路の実動作のタイミングとの差として、もしくは、前記第１のスタート側フリップフロップをスタートポイントとして共有し、前記複数のエンド側フリップフロップのいずれかをエンドポイントとする複数の信号経路の遅延時間のうちの最長の遅延時間と前記実動作のタイミングとの差として、最小スラックマージンを把握する最小スラックマージン把握部と、
前記論理回路の実動作のタイミングに比較して速いテストタイミングを設定するテストタイミング設定部と、
前記第１のスタート側フリップフロップに供給される入力データの論理値の遷移による前記第１のエンド側フリップフロップに供給される出力データの論理値の遷移、および、該遷移の後の出力データの前記第１のエンド側フリップフロップへの取り込みのシミュレーションを、前記第１のスタート側フリップフロップと第１のエンド側フリップフロップとの間の信号経路の遅延時間に前記最小スラックマージンを加えて行うシミュレーション部と、
前記シミュレーションによって、前記テストタイミングで、前記期待される論理値の遷移の後の出力データを前記第１のエンド側フリップフロップに取り込むことができないと判断された場合に、前記第１のエンド側フリップフロップに保持されたデータを、前記テストパターンとテストタイミングとを用いたテストにおける判定の対象から除外するマスクデータを生成し、前記テスト条件データベースに格納するマスクデータ生成部とを有することを特徴とするテスト条件生成装置。
【請求項８】
前記テストパターン生成部が、さらに、前記第１のエンド側フリップフロップとは異なる、第２のエンド側フリップフロップに供給される第２の出力データの論理値の遷移が期待される、前記第１のスタート側フリップフロップとは異なる、第２のスタート側フリップフロップに供給する第２の入力データの論理値の遷移を含むテストパターンを生成し、
前記最小スラックマージン把握部が、さらに、前記複数のスタート側フリップフロップのいずれかをスタートポイントとし、前記第２のエンド側フリップフロップをエンドポイントとして共有する複数の信号経路の遅延時間のうちの最長の遅延時間と前記実動作のタイミングとの差として、もしくは、前記第２のスタート側フリップフロップをスタートポイントとして共有し、前記複数のエンド側フリップフロップのいずれかをエンドポイントとする複数の信号経路の遅延時間のうちの最長の遅延時間と前記実動作のタイミングとの差として、第２の最小スラックマージンを把握し、
前記シミュレーション部が、さらに、前記第２のスタート側フリップフロップに供給される第２の入力データの論理値の遷移による前記第２のエンド側フリップフロップに供給される第２の出力データの論理値の遷移、および、該遷移の後の第２の出力データの前記第２のエンド側フリップフロップへの取り込みのシミュレーションを、前記第２のスタート側フリップフロップと第２のエンド側フリップフロップとの間の信号経路の遅延時間に前記第２の最小スラックマージンを加えて行うことを特徴とする請求項７記載のテスト条件生成装置。
【請求項９】
前記シミュレーション部が、前記最小スラックマージンを、前記第１のスタート側フリップフロップと第１のエンド側フリップフロップとの間の信号経路の、該最小スラックマージンの把握において考慮した、エンドポイントを共有する複数の信号経路、もしくは、スタートポイントを共有する複数の信号経路の、全てに共有される部分の遅延時間に加えて、前記シミュレーションを行うことを特徴とする請求項７または８記載のテスト条件生成装置。
【請求項１０】
前記マスクデータの格納が行われたときに、前記テスト条件データベースに格納されたマスクデータに基づいて、前記論理回路内に存在する遅延性故障のうちの、前記テストパクーンを用いて検出が行えるものの割合である検出率を把握する故障検出率把握部をさらに有し、
前記故障検出率把握部が把握した検出率が目標値を下回るときに、前記テストタイミング設定部が前記テストタイミングを緩和し、前記シミュレーション部とマスクデータ生成部が、前記緩和したテストタイミングを用いて、前記シミュレーションと、マスクデータの生成およびテスト条件データベースヘの格納を行うことを特徴とする請求項７ないし９のいずれかに記載のテスト条件生成装置。
【請求項１１】
前記把握した検出率が目標値を下回るときに、
前記テストパターン生成部がテストパターンを再生成し、
前記シミュレーション部とマスクデータ生成部が、前記再生成したテストパターンおよび緩和したテストタイミングを用いて、前記シミュレーションと、マスクデータの生成およびテスト条件データベースヘの格納を行うことを特徴とする請求項１０記載のテスト条件生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の信号経路が形成された論理回路を含む半導体集積回路の、遅延性故障検出のためのテスト条件の生成方法、およびテスト条件生成装置に関する。
【背景技術】
【０００２】
半導体集積回路は、製造後にさまざまなテストを行い、その半導体集積回路に搭載された論理回路が正常に動作する良品のみを選別して出荷する必要がある。このようなテストの１つに、論理回路の遅延性故障を検出するためのディレイテストがある。以下、このディレイテストについて説明する。
【０００３】
図５は、論理回路のディレイテストを説明するための図である。
【０００４】
図５（Ａ）には、論理回路１００の構成が示されている。また、図５（Ｂ）には、図５（Ａ）に示す論理回路１００のタイミングが示されている。
【０００５】
図５（Ａ）に示す論理回路１００には、組合せ論理回路であるユーザロジック１０１と、このユーザロジック１０１の入力側に配置された入力側（スタートポイント）フリップフロップ１０２と、このユーザロジック１０１の出力側に配置された出力側（エンドポイント）フリップフロップ１０３とが備えられている。フリップフロップ１０２，１０３のクロック端子Ｃには、クロック信号が入力される。
【０００６】
ここで、図５（Ｂ）に示すように、スタートポイントフリップフロップ１０２のデータ端子Ｄに、図示しない前段のユーザロジックで生成された‘Ｈ’レベルのデータ信号が入力される。この‘Ｈ’レベルのデータ信号は、クロック信号の立ち上がりエッジのタイミングでスタートポイントフリップフロップ１０２に取り込まれ、所定の遅延時間ｄ１経過後、‘Ｈ’レベルのデータ信号として出力端子Ｑから出力される。出力された‘Ｈ’レベルのデータ信号は、ユーザロジック１０１に入力される。
【０００７】
ユーザロジック１０１からは、この入力された‘Ｈ’レベルのデータ信号に基づいたデータ信号（ここでは、‘Ｈ’レベルのデータ信号）が、所定の遅延時間ｄ２経過後に出力される。この‘Ｈ’レベルのデータ信号は、エンドポイントフリップフロップ１０３のデータ端子Ｄに入力される。
【０００８】
そして、‘Ｈ’レベルのデータ信号がＤ端子に入力されたタイミングが、クロック信号の次の立ち上がりエッジよりも、所定のセットアップ時間ｄ３ｍｉｎ以上の時間ｄ３だけ早かった場合、この‘Ｈ’レベルのデータ信号が、クロック信号の次の立ち上がりエッジのタイミングでエンドポイントフリップフロップ１０３に取り込まれる。そして、所定の遅延時間ｄ４経過後、‘Ｈ’レベルのデータ信号として出力端子Ｑから出力され、図示しない後段のユーザロジックに供給される。
【０００９】
ここで、ユーザロジック１０１は、クロック信号の１周期未満の遅延時間（厳密には、フリップフロップ１０２，１０３の動作のために必要な時間ｄ１＋ｄ３ｍｉｎだけ、クロック信号の１周期よりも短い遅延時間）で出力データ信号（論理信号）を生成するように設計する必要がある。即ち、スタートポイントフリップフロップ１０２からエンドポイントフリップフロップ１０３に至るデータ経路の遅延時間（ｄ１＋ｄ２＋ｄ３ｍｉｎ）が、クロック信号の１周期よりも短くなるように、ユーザロジック１０１内を通過する論理信号の遅延時間を設計する必要がある。
【００１０】
ユーザロジックに致命的な故障（ユーザロジックを構成するトランジスタが動作しない、トランジスタ間を接続する配線に断線や短絡がある等の故障）が無く、入力された論理信号から期待される期待値と同一の論理値を有する論理信号が生成される場合であっても、トランジスタの遅延時間が設計値よりも大きかったり、トランジスタ間を接続する配線の抵抗が設計値よりも大きかったりするために、所定の遅延時間（設計値）内に論理信号を生成することができない場合がある。このような故障を検出する目的で行われるのがディレイテストである。
【００１１】
図５に示す論理回路１００においては、クロック信号の周期を所定の値に設定し、設定した周期内に前段のフリップフロップ１０２（スタートポイントフリップフロップ）から後段のフリップフロップ１０３（エンドポイントフリップフロップ）へと論理信号が正しく伝達されるか否かのディレイテストが行われる。
【００１２】
特に、ここでは、ユーザが実際に半導体集積回路（チップ）を動作させる際に用いるタイミング（システムタイミング）で論理回路を動作させて行うディレイテストを、アット・スピード（ａｔ−ｓｐｅｅｄ）テストと呼ぶ。このアット・スピードテストを実施するために、半導体集積回路内に、テスタから入力することが可能な低い周波数のクロック信号からシステムタイミングのエッジを有するクロック信号を生成するクロック生成回路を設ける技術が提案されている（例えば、非特許文献１参照）。
【００１３】
実際には、ユーザロジックは、複数のスタート側フリップフロップ（スタートポイントフリップフロップ群）と、複数のエンド側フリップフロップ（エンドポイントフリップフロップ群）との間に接続される。このユーザロジックは、スタートポイントフリップフロップ群から供給された入力論理信号（入力データ）に基づいて出力論理信号（出力データ）を生成する。生成した出力データは、クロック信号エッジのタイミングで、エンドポイントフリップフロップ群に取り込まれ、保持される。そして、ディレイテストを行う際には、例えば特許文献１の段落［００３３］〜［００３５］に記載されているように、先ず、シフトモード（フリップフロップ群をチェーン接続する）においてフリップフロップ群にクロック信号を供給することにより、スタートポイントのフリップフロップ群に所定のデータ（テストパターン）をセットする。続いて、キャプチャモード（スタートポイントフリップフロップ群とエンドポイントフリップフロップ群との間にユーザロジックを接続する）においてフリップフロップ群にクロック信号を供給し、ユーザロジックが生成した出力データをエンドポイントフリップフロップ群に取り込む。その後、再びスキャンモードにおいてフリップフロップ群にクロック信号を供給し、エンドポイントフリップフロップ群が取り込み、保持した出力データを半導体集積回路外に出力し、期待値と比較する。
【００１４】
より具体的には、特許文献１には、シフトモードにおいて供給するクロック信号の最後のクロックエッジを、スタートポイントフリップフロップ群にセットされた入力データを組合せ論理回路に供給するためのラウンチ（１ａｕｎｃｈ）用クロックエッジとして利用し、その後、キャプチャモードに切り換えてから、エンド側フリップフロップ群に出力データを取り込むためのキャプチャ（Ｃａｐｕｔｕｒｅ）用クロックエッジを有するクロック信号を供給するＬｏＳ（Ｌａｕｎｃｈ−ｏｆｆ−Ｓｈｉｆｔ）方式の例が示されている。一方、非特許文献１には、キャプチャモードに切り換えてから、ラウンチ用クロックエッジを有するクロック信号とキャプチャ用クロックエッジを有するクロック信号とを供給するＬｏＣ（Ｌａｕｎｃｈ−ｏｆｆ−ＣａｐｔｕｒｅまたはＬａｕｎｃｈ−ｏｎ−Ｃａｐｔｕｒｅ）方式の例が示されている。
【００１５】
さらに、アット・スピードテストでは検出することができない微小な遅延性故障を検出するために、ファースタ・ザン・アット・スピード（Ｆａｓｔｅｒ−ｔｈａｎ−ａｔ−ｓｐｅｅｄ）テスト（システムタイミングよりも速いタイミングで動作させて、期待値と同一の論理値の出力データが得られるか否かを検査するテスト）を行うことも提案されている（例えば、非特許文献２参照）。この場合にも、上記のクロック生成回路を利用して、テスト対象の論理回路をシステムタイミングよりも速いタイミングでフリップフロップを動作させるクロック信号を生成することができる。
【非特許文献１】“Ｌｏｗ  Ｃｏｓｔ  Ｄｅｌａｙ  Ｔｅｓｔｉｎｇ  ｏｆ  Ｎａｎｏｍｅｔｅｒ  ＳｏＣｓ  Ｕｓｉｎｇ  Ｏｎ―Ｃｈｉｐ  Ｃｌｏｃｋｉｎｇ  ａｎｄ  Ｔｅｓｔ  Ｃｏｍｐｒｅｓｓｉｏｎ”［Ａｓｉａｎ  Ｔｅｓｔ  Ｓｙｍｐｏｓｉｕｍ，Ｄｅｃｅｍｂｅｒ  ２００５、ｐ．１５６―１６１］
【特許文献１】特開２００５―３２６２０３号公報
【非特許文献２】“ＫＡＷＡＳＡＫＩ  ＭＩＣＲＯ  ＭＡＸＩＭＩＺＥＳ  ＤＥＬＡＹ  ＴＥＳＴ  ＣＯＶＥＲＡＧＥ  ＷＩＴＨ  ＬＡＴＥＳＴ  ＣＡＤＥＮＣＥ  ＴＥＣＨＮＯＬＯＧＹ”  ［ＳＡＮ  ＪＯＳＥ，Ｃａｌｉｆ．，Ｎｏｖｅｍｂｅｒ  ７，２００５］（Ｃａｄｅｎｃｅ社報道）
【発明の開示】
【発明が解決しようとする課題】
【００１６】
一般に、半導体集積回路のテストには、ＡＴＰＧ（Ａｕｔｏ  Ｔｅｓｔ  Ｐａｔｔｅｒｎ  Ｇｅｎｅｒａｔｏｒ）が用いられる。ＡＴＰＧは、半導体集積回路の各種のテストを行うためのテストパターンを自動的に生成するツールであり、半導体集積回路のどのような故障を検出するかによってＡＴＰＧに与える故障モデルは異なる。ここでは、遅延性故障と呼ばれる、フリップフロップ間の信号の伝達が遅れてしまうことに起因する故障検出を対象とする。ＡＴＰＧは、与えた故障モデルに基づいて、故障を検出するために、故障モデル内の各故障の存在する信号経路（パス）を活性化する。
【００１７】
すなわち、故障の存在する信号経路のスタートポイントとなるスタート側フリップフロップに供給する入カデータの論理値の遷移を含み、その遷移が、故障の存在する信号経路を介して伝達（信号経路上の各ノードの状態が遷移）し、エンドポイントフリップフロップに供給される出力データの論理値が遷移することが期待される、テストパターンを生成する。
【００１８】
図６は、１つのエンドポイントフリップフロップ２０３をエンドポイントとして共有する複数のパスを示す図である。
【００１９】
図６には、スタート側フリップフロップ２０２＿１，２０２＿２，２０２＿３，２０２＿４を含むスタートポイント群２０２と、１つのエンド側フリップフロップ２０３と、それらの間に形成されるパスが示されている。それぞれのパスは、それぞれのスタートポイントフリップフロップから、ユーザロジックの異なる部分２０１＿１，２０１＿２，２０１＿３，２０２＿４を経由し、さらに、ユーザロジックの共通の部分２０１＿５を経由して、エンドポイントフリップフロップ２０３にいたる。
【００２０】
このように、半導体集積回路に設けられる論理回路内には、１つのエンドポイントフリップフロップを共有するパスが複数存在し、テストにおいては、これらのパスのいずれかが活性化される。例えば、スタート側フリップフロップ２０２＿１をスタートポイントとするパスが活性化される場合、エンド側フリップフロップ２０３に供給される出力データの論理値が遷移することが期待される、スタート側フリップフロップ２０１＿１に供給される入力データの論理値の遷移を含むテストパターンが、スタートポイント群２０２に供給される。これにより、スタートポイントフリップフロップ２０２＿１から、ユーザロジックの２０１＿１の部分および２０１＿５の部分を経て、エンドポイントフリップフロップ２０３にいたる信号経路のいずれかの位置に存在する遅延性故障が検出できる可能性がある。同様に、スタート側フリップフロップ２０２＿２をスタートポイントとするパスが活性化される場合、スタートポイントフリップフロップ２０２＿２から、ユーザロジックの２０１＿２の部分および２０１＿５の部分を経てエンドポイントフリップフロップ２０３にいたる信号経路のいずれかの位置に存在する遅延性故障が検出できる可能性がある。スタート側フリップフロップ２０２＿３もしくは２０２＿４をスタートポイントとするパスが活性化される場合についても同様である。
【００２１】
このように、４つのパスのいずれかが活性化されることによって検出できる可龍性がある遅延性故障を代表して、図６には、遅延性故障２０１＿５ａが、全てのパスに共通する、ユーザロジックの２０１＿５の部分に示されている。
【００２２】
論理回路内に存在する遅延性故障は、さまざまな故障サイズを有する。ここで、故障サイズとは、あるパスに遅延性故障が存在することによる、そのパスの遅延時間の設計値からの増大量をいう。あるテストタイミングを設定してテストを行う場合、ＡＴＰＧが活性化しているパスの遅延時間（遅延性故障が存在しない場合の値、すなわち、設計値）と設定したテストタイミングとの差よりも大きな故障サイズの遅延性故障を検出することができる。ここで、パスの遅延時間はパスごとに異なる。このため、同一のテストタイミングでテストを行う場合であっても、どのパスを活性化するかによって検出することができる遅延性故障の故障サイズが異なる。
【００２３】
以下に、遅延性故障の検出において重要なファクターである「最小スラックマージン」と「最小検出可能故障サイズ」について説明する。
【００２４】
一般に、ある位置に存在する遅延性故障を検出することができる可能性のある信号パスの中の、最長のパスの遅延時間（遅延性故障が存在しない場合の設計値）と、システムタイミングとの差を「最小スラックマージン」と呼ぶ。
【００２５】
特にここでは、図６に示されたように、エンドポイントを共有する複数の信号パスが存在し、その複数の信号パスの全てに共通する部分に遅延性故障が存在する場合を想定する。この場合、複数の信号パスのいずれが活性化された場合でも、それらの信号パスに共通する部分に存在する遅延性故障を検出できる可能性がある。従って、これら４つの信号パスの中の最も長いパスの遅延時間と、システムタイミングとの差が「最小スラックマージン」である。ここで、遅延故障が存在しても、その故障サイズが最小スラックマージンよりも小さい場合には、システムタイミングにおける論理回路の実動作において不良発生の原因にならない。
【００２６】
前述のように、図６に示された例において、４つのパスのいずれかが活性化されることによって検出できる可能性がある遅延性故障を代表して、遅延性故障２０１＿５ａが示されている。そして、図６において遅延性故障２０１＿５ａが示された位置に限らず、４つの信号パスのいずれに遅延性故障が存在する揚合であっても、その故障サイズが最小スラックマージンよりも小さければ、図６に示された範囲では、システムタイミングでの実動作において不良発生の原因にはならない。
【００２７】
また、ＡＴＰＧが活性化しているパスとテストタイミングの差が、検出可能な遅延性故障サイズであり、活性化された中で最長のパスについての検出可能遅延性故障サイズを「最小検出可能故障サイズ」と呼ぶ。
【００２８】
図７は、半導体集積回路のチップ全体の回路構成を示す図である。
【００２９】
図７には、半導体集積回路のチップ全体の回路を構成する、ユーザロジック２１０とスタートポイント群２２０とエンドポイント群２３０とが示されている。
【００３０】
スタートポイント群２２０は、スタート側フリップフロップ２２０＿１，２２０＿２，…，２２０＿ｎ−１，２２０＿ｎから構成されている。
【００３１】
また、エンドポイント群２３０は、エンド側フリップフロップ２３０＿１，２３０＿２，…，２３０ｍ−１，２３０＿ｍから構成されている。
【００３２】
ユーザロジック２１０には、遅延値がそれぞれ異なる多数のパスが存在する。
【００３３】
このように、半導体集積回路の論理回路には、多数のパスが存在し、それら多数のパス全てが異なる遅延値を有する。このため、エンドポイントフリップフロップ毎に最小スラックマージン及び最小検出可能遅延性故障サイズは全て異なる。
【００３４】
図８は、最小スラックマージンと最小検出可能遅延性故障サイズの関係を示す図である。
【００３５】
図８には、システムタイミングと、このシステムタイミングよりも低速のテストタイミングとが示されている。前述のように、「システムタイミング」と「最長パス」（図６の例では、エンドポイントが同一であるパスの中で最長のパスの遅延時間）との差である「最小スラックマージンＡ」よりも故障サイズが小さい遅延性故障は、存在していてもシステムタイミングでの実動作に影響を与えない。このため、検出する必要はない（冗長部分（ｒｅｄｕｎｄａｎｔ））。
【００３６】
また、図８に示す「活性化される最長パス」（図６の例では、エンドポイントが同一であるパスの中で、活性化される最長のパスの遅延時間）と「テストタイミング」との差である「最小検出可能故障サイズＢ」よりも故障サイズが大きな遅延性故障は、ディレイテストによって検出される（図７に示す検出可能部分Ｃ（ｄｅｔｅｃｔｅｄ））。
【００３７】
しかし、「最小スラックマージンＡ」より大きく、「最小検出可能故障サイズＢ」よりも小さい故障サイズの遅延性故障は、システムタイミングでの実動作に影響を与えるにもかかわらず検出されず、テストの品質の観点としては不十分となる（図８に示す検出不能部分Ｄ（ｕｎｄｅｔｅｃｔｅｄ））。
【００３８】
このような微小な遅延性故障の検出方法として、上述したファースタ・ザン・アット・スピード（Ｆａｓｔｅｒ−ｔｈａｎ−ａｔ−ｓｐｅｅｄ）テストがある。
【００３９】
図９は、ファースタ・ザン・アット・スピードのテストを説明するための図である。
【００４０】
このテストでは、システムタイミングよりも高速のテストタイミングでディレイテストを行うことにより、最小検出可能故障サイズＢを小さくし、アット・スピードテストでは検出不可能だった微小な遅延性故障を検出することができる。
【００４１】
しかし、テストタイミングをシステムタイミングよりも高速にすることで、一部のパスでは、最小スラックマージンよりも最小検出可能故障サイズが小さくなってしまう場合がある。これは、最小スラックマージンよりも小さいサイズの故障、つまり実動作に影響を与えない微小な遅延性故障までも検出している過剰検出状態であり、歩留まりの低下につながる。これをオーバーキルと呼ぶ。
【００４２】
図１０は、オーバーキルの概念を説明するための図である。
【００４３】
テストタイミングをシステムタイミングよりも高速にしてディレイテストを行った結果、図１０の右側に示すように、「最小スラックマージンＡ」よりも小さいサイズの遅延故障までもが検出されている。従って、過剰検出（オーバーキル）の状態になっている。
【００４４】
半導体集積回路の論理回路には、図７を参照して説明したように、多数の信号経路（各スタートポイントフリップフロップから各エンドポイントフリップフロップに至る信号経路）が存在する。従って、１つのエンドポイントフリップフロップに注目すると、図６を参照して説明したように、複数のスタートポイントフリップフロップのそれぞれから、その１つのエンドポイントフリップフロップに至る複数の信号経路が存在する。そして、この複数の信号経路のそれぞれは、異なる遅延時間を有する。
【００４５】
また、現実のテストにおいては、全ての信号経路についてテストを行うことは困難であり、テストパターン自動生成ツール（ＡＴＰＧ）がテスト対象として選択した経路についてのみテストが行われる。遅延性故障を効率的に検出するためには、テストが行われる信号経路毎に、その信号経路の遅延時間（設計値）に応じて、テストタイミングを適切に設定する必要がある。ここで、テストタイミングが遅すぎると、微小な遅延性故障を検出することができないという問題が発生する。一方、テストタイミングが速すぎると、上述したように、実際の論理回路の動作において問題になることがないほどに微小な遅延性故障まで検出し、良品として出荷できる半導体集積回路まで不良と判断してしまうオーバーキル（過剰検出）が発生する。従って、半導体集積回路の遅延性故障を効率よく検出することは困難であるという問題を抱えている。
【００４６】
本発明は、上記事情に鑑み、オーバーキルの発生を防止しながら遅延性故障を効率よく検出することができるテスト条件の生成方法およびテスト条件生成装置を提供することを目的とする。
【課題を解決するための手段】
【００４７】
上記目的を達成する本発明のテスト条件の生成方法は、複数のスタート側フリップフロップと複数のエンド側フリップフロップとの間に、組合せ論理回路を介した複数の信号経路が形成された論理回路を含む半導体集積回路の、遅延性故障検出のためのテスト条件を生成し、テスト条件データベースに格納する方法において、
第１のエンド側フリップフロップに供給される出力データの論理値の遷移が期待される、第１のスタート側フリップフロップに供給する入力データの論理値の遷移を含むテストパターンを生成し、
上記複数のスタート側フリップフロップのいずれかをスタートポイントとし、上記第１のエンド側フリップフロップをエンドポイントとして共有する複数の信号経路の遅延時間のうちの最長の遅延時間と上記論理回路の実動作のタイミングとの差として、もしくは、上記第１のスタート側フリップフロップをスタートポイントとして共有し、上記複数のエンド側フリップフロップのいずれかをエンドポイントとする複数の信号経路の遅延時間のうちの最長の遅延時間と上記実動作のタイミングとの差として、最小スラックマージンを把握し、
上記論理回路の実動作のタイミングに比較して速いテストタイミングを設定し、
上記第１のスタート側フリップフロップに供給される入力データの論理値の遷移による上記第１のエンド側フリップフロップに供給される出力データの論理値の遷移、および、その遷移の後の出力データの上記第１のエンド側フリップフロップへの取り込みのシミュレーションを、上記第１のスタート側フリップフロップと第１のエンド側フリップフロップとの間の信号経路の遅延時間に上記最小スラックマージンを加えて行い、
上記シミュレーションによって、上記テストタイミングで、上記期待される論理値の遷移の後の出力データを上記第１のエンド側フリップフロップに取り込むことができないと判断された場合に、上記第１のエンド側フリップフロップに保持されたデータを、上記テストパターンとテストタイミングを用いたテストにおける判定の対象から除外するマスクデータを生成し、上記テスト条件データベースに格納することを特徴とする。
【００４８】
本発明のテスト条件の生成方法は、論理回路の実動作のタイミングに比較して速いテストタイミングを設定し、第１のスタート側フリップフロップと第１のエンド側フリップフロップとの間の信号経路の遅延時間に最小スラックマージンを加えてシミュレーションを行い、第１のエンド側フリップフロップに、期待される論理値の遷移の後の出力データを取り込むことができないと判断された場合に、第１のエンド側フリップフロップに保持されたデータを判定の対象から除外するマスクデータを生成して、テスト条件データベースに格納する方法である。このため、実際の論理回路の動作において問題になることがないほどに微小な遅延性故障をマスクして判定の対象から除外することができる。このようにすることにより、オーバーキル（過剰検出）の発生が防止される。
【００４９】
ここで、上記生成したテストパターンが、さらに、上記第１のエンド側フリップフロップとは異なる、第２のエンド側フリップフロップに供給される第２の出力データの論理値の遷移が期待される、上記第１のスタート側フリップフロップとは異なる、第２のスタート側フリップフロップに供給する第２の入力データの論理値の遷移を含み、
上記最小スラックマージンの把握において、さらに、上記複数のスタート側フリップフロップのいずれかをスタートポイントとし、上記第２のエンド側フリップフロップをエンドポイントとして共有する複数の信号経路の遅延時間のうちの最長の遅延時間と上記実動作のタイミングとの差として、もしくは、上記第２のスタート側フリップフロップをスタートポイントとして共有し、上記複数のエンド側フリップフロップのいずれかをエンドポイントとする複数の信号経路の遅延時間のうちの最長の遅延時間と上記実動作のタイミングとの差として、第２の最小スラックマージンを把握し、
上記シミュレーションにおいて、さらに、上記第２のスタート側フリップフロップに供給される第２の入力データの論理値の遷移による上記第２のエンド側フリップフロップに供給される第２の出力データの論理値の遷移、および、その遷移の後の第２の出力データの上記第２のエンド側フリップフロップへの取り込みのシミュレーションを、上記第２のスタート側フリップフロップと第２のエンド側フリップフロップとの間の信号経路の遅延時間に上記第２の最小スラックマージンを加えて行うことが好ましい。
【００５０】
現実の半導体集積回路の論理回路では、複数のスタート側フリップフロップと複数のエンド側フリップフロップとの間に複数の信号経路が形成される。そして、本発明のテスト条件生成方法によって生成されるテスト条件には、さまざまな信号経路に存在する遅延性故障を検出するためのパターンが含まれる。このさまざまな信号経路は、それぞれ異なった最小スラックマージンを有することが多い。この場合には、信号経路ごとに最小スラックマージンを把握して、シミュレーションを行うことが好ましい。
【００５１】
また、上記最小スラックマージンを、上記第１のスタート側フリップフロップと第１のエンド側フリップフロップとの間の信号経路の、その最小スラックマージンの把握において考慮した、エンドポイントを共有する複数の信号経路、もしくは、スタートポイントを共有する複数の信号経路の、全てに共有される部分の遅延時間に加えて、上記シミュレーションを行うことも好ましい態様である。
【００５２】
このようにすると、シミュレーションのために信号経路の遅延時間に最小スラックマージンを加える処理を効率的に行うことができる。
【００５３】
さらに、上記マスクデータを格納したときに、上記テスト条件データベースに格納されたマスクデータに基づいて、上記論理回路内に存在する遅延性故障のうちの、上記テストパターンを用いて検出が行えるものの割合である検出率を把握し、その把握した検出率が目標値を下回るときに、
上記テストタイミングを緩和し、その緩和したテストタイミングを用いて、上記シミュレーションと、マスクデータの生成およびテスト条件データベースヘの格納を行うことも好ましい。
【００５４】
また、上記緩和したテストタイミングを用いて行うシミュレーションを、上記生成したテストパターンを用いて行うことが好ましい。
【００５５】
マスキングを行なった場合、マスクされたフリップフロップをエンドポイントとする信号経路上の遅延性故障は未検出扱いとなるため、故障検出率が低下する。従って、いったん論理シミュレーションおよびマスキングを行った後に、故障検出率が目標値を下回るときには、テストタイミングを緩和し、ふたたび論理シミュレーションを行う。これにより、オーバーキルの発生を抑えたまま故障検出率を高くすることができる。
【００５６】
また、上記把握した検出率が目標値を下回るときに、テストパターンを再生成し、上記再生成したテストパターンおよび緩和したテストタイミングを用いて、上記シミュレーションと、マスクデータの生成およびテスト条件データベースヘの記憶を行うことも好ましい。
【００５７】
このように、再生成したテストパターンおよび緩和したテストタイミングを用いて、シミュレーションと、マスクデータの生成およびテスト条件データベースヘの格納を行うと、オーバーキルの発生を抑えたまま高い故障検出率を得ることができる。
【００５８】
また、上記目的を達成する本発明のテスト条件生成装置は、複数のスタート側フリップフロップと複数のエンド側フリップフロップとの間に、組合せ論理回路を介した複数の信号経路が形成された論理回路を含む半導体集積回路の、遅延性故障検出のためのテスト条件を生成し、テスト条件データベースに格納する装置において、
第１のエンド側フリップフロップに供給される出力データの論理値の遷移が期待される、第１のスタート側フリップフリップに供給する入力データの論理値の遷移を含むテストパターンを生成するテストパターン生成部と、
上記複数のスタート側フリップフロップのいずれかをスタートポイントとし、上記第１のエンド側フリップフロップをエンドポイントとして共有する複数の信号経路の遅延時間のうちの最長の遅延時間と上記論理回路の実動作のタイミングとの差として、もしくは、上記第１のスタート側フリップフロップをスタートポイントとして共有し、上記複数のエンド側フリップフロップのいずれかをエンドポイントとする複数の信号経路の遅延時間のうちの最長の遅延時間と上記実動作のタイミングとの差として、最小スラックマージンを把握する最小スラックマージン把握部と、
上記論理回路の実動作のタイミングに比較して速いテストタイミングを設定するテストタイミング設定部と、
上記第１のスタート側フリップフロップに供給される入力データの論理値の遷移による上記第１のエンド側フリップフロップに供給される出力データの論理値の遷移、および、その遷移の後の出力データの上記第１のエンド側フリップフロップへの取り込みのシミュレーションを、上記第１のスタート側フリップフロップと第１のエンド側フリップフロップとの間の信号経路の遅延時間に上記最小スラックマージンを加えて行うシミュレーション部と、
上記シミュレーションによって、上記テストタイミングで上記期待される論理値の遷移の後の出力データを上記第１のエンド側フリップフロップに取り込むことができないと判断された場合に、上記第１のエンド側フリップフロップに保持されたデータを、上記テストパターンとテストタイミングとを用いたテストにおける判定の対象から除外するマスクデータを生成し、上記テスト条件データベースに記憶するマスクデータ生成部とを有することを特徴とする。
【００５９】
本発明のテスト条件生成装置は、テストタイミング設定部で論理回路の実動作のタイミングに比較して速いテストタイミングを設定し、シミュレーション部で第１のスタート側フリップフロップと第１のエンド側フリップフロップとの間の信号経路の遅延時間に最小スラックマージンを加えてシミュレーションを行い、第１のエンド側フリップフロップに、期待される論理値の遷移の後の出力データを取り込むことができないと判断された場合に、マスクデータ生成部で第１のエンド側フリップフロップに保持されたデータを判定の対象から除外するマスクデータを生成して、テスト条件データベースに格納する装置である。このため、実際の論理回路の動作において問題になることがないほどに微小な遅延性故障をマスクして判定の対象から除外することができる。このようにすることにより、オーバーキルの発生が防止される。
【００６０】
ここで、上記テストパターン生成部が、さらに、上記第１のエンド側フリップフロップとは異なる、第２のエンド側フリップフロップに供給される第２の出力データの論理値の遷移が期待される、上記第１のスタート側フリップフロップとは異なる、第２のスタート側フリップフロップに供給する第２の入力データの論理値の遷移を含むテストパターンを生成し、
上記最小スラックマージン把握部が、さらに、上記複数のスタート側フリップフロップのいずれかをスタートポイントとし、上記第２のエンド側フリップフロップをエンドポイントとして共有する複数の信号経路の遅延時間のうちの最長の遅延時間と上記実動作のタイミングとの差として、もしくは、上記第２のスタート側フリップフロップをスタートポイントとして共有し、上記複数のエンド側フリップフロップのいずれかをエンドポイントとする複数の信号経路の遅延時間のうちの最長の遅延時間と上記実動作のタイミングとの差として、第２の最小スラックマージンを把握し、
上記シミュレーション部が、さらに、上記第２のスタート側フリップフロップに供給される第２の入力データの論理値の遷移による上記第２のエンド側フリップフロップに供給される第２の出力データの論理値の遷移、および、その遷移の後の第２の出力データの上記第２のエンド側フリップフロップへの取り込みのシミュレーションを、上記第２のスタート側フリップフロップと第２のエンド側フリップフロップとの間の信号経路の遅延時間に上記第２の最小スラックマージンを加えて行うことが好ましい。
【００６１】
また、上記シミュレーション部が、上記最小スラックマージンを、上記第１のスタート側フリップフロップと第１のエンド側フリップフロップとの間の信号経路の、その最小スラックマージンの把握において考慮した、エンドポイントを共有する複数の信号経路、もしくは、スタートポイントを共有する複数の信号経路の、全てに共有される部分の遅延時間に加えて、上記シミュレーションを行うことも好ましい態様である。
【００６２】
さらに、上記マスクデータの格納が行われたときに、上記テスト条件データベースに格納されたマスクデータに基づいて、上記論理回路内に存在する遅延性故障のうちの、上記テストパクーンを用いて検出が行えるものの割合である検出率を把握する故障検出率把握部をさらに有し、
上記故障検出率把握部が把握した検出率が目標値を下回るときに、上記テストタイミング設定部が上記テストタイミングを緩和し、上記シミュレーション部とマスクデータ生成部が、上記緩和したテストタイミングを用いて、上記シミュレーションと、マスクデータの生成およびテスト条件データベースヘの記憶を行うことも好ましい。
【００６３】
さらに、上記把握した検出率が目標値を下回るときに、
上記テストパターン生成部が、テストパターンを再生成し、
上記シミュレーション部とマスクデータ生成部が、上記再生成したテストパターンおよび緩和したテストタイミングを用いて、上記シミュレーションと、マスクデータの生成およびテスト条件データベースヘの記憶を行うことも好ましい。
【発明の効果】
【００６４】
本発明によれば、オーバーキルの発生を防止しながら遅延性故障を効率よく検出することができるテスト条件の生成方法およびテスト条件生成装置を提供することができる。
【発明を実施するための最良の形態】
【００６５】
以下、図面を参照して本発明の実施の形態を説明する。
【００６６】
図１は、本発明の一実施形態のテスト条件生成装置の構成を示す図である。
【００６７】
尚、図１に示すテスト条件生成装置１には、本発明の一実施形態のテスト条件の生成方法が適用されている。
【００６８】
図１に示すテスト条件生成装置１は、複数のスタート側フリップフロップと複数のエンド側フリップフロップとの間に、組合せ論理回路を介した複数の信号経路が形成された論理回路を含む半導体集積回路の、遅延性故障検出のためのテスト条件を生成し、テスト条件データベースに記録する装置である。
【００６９】
図１に示すテスト条件生成装置１には、タイミング解析に必要な最小スラックマージンを把握するための最小スラックマージン把握部１１が備えられている。この最小スラックマージン把握部１１は、ネットリスト記憶部１２に格納されたネットリスト（論理回路の接続情報）と遅延情報ファイル１３を参照して、最小スラックマージンを把握する。
【００７０】
具体的には、１つのエンド側フリップフロップをエンドポイントとして共有する複数の信号経路のうちの最長の信号経路の遅延時間と、テスト対象の論理回路の実動作のタイミングとの差として、もしくは、１つのスタート側フリップフロップをスタートポイントとして共有する複数の信号経路のうちの最長の信号経路の遅延時間と、実動作のタイミングとの差として、最小スラックマージンを求める。ここでは、論理シミュレーションに必要か否かにかかわらず、エンドポイントとして共有されるエンド側フリップフロッブのそれぞれ、もしくは、スタートポイントとして共有されるスタート側フリップフロップのそれぞれについて最小スラックマージンを求める。求めた最小スラックマージンは、最小スラックマージン記憶部１４に格納される。また、遅延情報ファイル（ＳＤＦ：Ｓｔａｎｄａｒｄ  Ｄｅｌａｙ  Ｆｏｒｍａｔ）とは、各種遅延情報が記載されたファイルをいう。具体的には、ネットリスト上に存在するそれぞれのセル（スタート側およびエンド側フリップフロップ、および、ユーザロジックを構成する論理ゲート）の遅延値（各ピン間の遅延値、タイミング制約値）、セルを接続する配線の遅延値等が記載されている。
【００７１】
遅延情報ファイルは、図１では省略されているが、各種のセルおよび配線の遅延値が格納されたライブラリと、ネットリストとを参照して生成する。
【００７２】
また、テスト条件生成装置１には、ＳＤＦ補正部１５が備えられている。このＳＤＦ補正部１５は、最小スラックマージン部１４に格納された最小スラックマージンを利用して、遅延情報ファイル部１３に格納された遅延情報を補正し、論理シミュレーションにおいて利用する遅延情報ファイル（補正後の遅延情報ファイル）を作成する。例えば、エンド側フリップフロップを共有する複数の信号経路を考慮して最小スラックマージンを把握した場合、エンド側フリップフロップのデータ入力端子の遅延時間に最小スラックマージンを加算して補正し、補正後の遅延情報ファイルとする。
【００７３】
さらに、テスト条件生成装置１には、データ生成部１７が備えられている。このデータ生成部１７は、ネットリスト記憶部１２に格納されたネットリストを参照し、論理回路内に存在する個々の遅延性故障を検出するために、スタート側フリップフロップに与える入力データ（遷移前のデータと遷移後のデータとの組み）と、その入力データの遷移によってもたらされるエンド側フリップフロップに取り込まれるデータの遷移の期待値を生成する。入力データおよび期待値は、パターンデータ記憶部１８に格納される。また、検出対象の故障の位置は、故障データ記憶部１９に格納される。尚、パターンデータには、テストタイミングについてのデータも含まれる。
【００７４】
また、テスト条件生成装置１には、テストパターン生成部２０が備えられている。テストパターン生成部２０は、パターンデータ部１８に格納されたデータを、後述する論理シミュレーション部２４において利用できるフォーマットに変換して、テストパターン（一時的）を生成する。
【００７５】
さらに、テスト条件生成装置１には、テストタイミングデータ記憶部２２が備えられている。このテストタイミングデータ記憶部２２には、ファースタ・ザン・アット・スピードテストを行う最速のテストタイミング、および、段階的に緩和するテストタイミングが格納されている。
【００７６】
また、テスト条件生成装置１には、テストタイミング補正部２３が備えられている。このテストタイミング補正部２３は、本発明にいうテストタイミング設定部に相当し、論理回路の実動作のタイミングに比較して速いテストタイミングを設定する。具体的には、テストタイミングデータ記憶部２２に格納された、ファースタ・ザン・アット・スピードテストを行うための最速のテストタイミングを利用して、パターンデータに含まれるデフォルト値のテストタイミングを補正する。この時、パターンデータ記憶部１８に格納されたパターンデータに含まれるテストタイミングのデータも補正される。
【００７７】
また、テスト条件生成装置１には、論理シミュレーション部２４が備えられている。この論理シミュレーション部２４は、本発明にいうシミュレーション部の一例に相当し、スタート側フリップフロップに供給される入力データの論理値の遷移によるエンド側フリップフロップに供給される出力データの論理値の遷移、および、遷移後の出力データのエンド側フリップフロップへの取り込みの論理シミュレーションを、スタート側フリップフロップとエンド側フリップフロップとの間の信号経路の遅延時間に最小スラックマージンを加えて行う。具体的には、ネットリスト記憶部１２に格納されたネットリストと、遅延情報ファイル（補正後）１６およびテストパターン（一時的）２１を参照して、論理シミュレーションを行うことによりパス／フェイルの検証を行い、フェイルＦＦリスト（マスクＦＦリスト）２５を生成する。
【００７８】
さらに、テスト条件生成装置１には、マスキング部２６と、マスクデータ記憶部２７と、データ保存部２８と、テスト条件データベース部２９とが備えられている。ここで、マスキング部２６とデータ保存部２８が、本発明にいうマスクデータ生成部に相当し、論理シミュレーションによって、上記テストタイミングで、期待される論理値の遷移の後の出力データをエンド側フリップフロップに取り込むことができないと判断された場合に、エンド側フリップフロップに保持されたデータを、テストパターンとテストタイミングとを用いたテストにおける判定の対象から除外するマスクデータを生成し、テスト条件データベース部２９に格納する。具体的には、マスキング部２６は、論理シミュレーション部２４で生成されたマスクＦＦリスト２５を取得して、マスクデータを生成し、マスクデータ記憶部２７に格納する。データ保存部２８は、あるパターンデータで作成し、あるテストタイミングで補正したテストパターンを用いて行われた論理シミュレーションにより、マクスデータがマスクデータ記憶部２７に格納された段階で、故障データ、パターンデータ、およびマスクデータを、テスト条件データベース部２９に格納する。
【００７９】
さらに、テスト条件生成装置１には、故障検出率チェック部３０が備えられている。故障検出率チェック部３０は、本発明にいう故障検出率把握部の一例に相当し、テスト条件データベース部２９に格納されたデータを参照して、遅延性故障の検出率を把握する。そして、検出率が目標値を下回る場合には、データ生成部１７に、データ生成のやり直しを指示する。この時、テスト条件データベース部２９に格納されたテスト条件を参照し、その時点までに生成されたテスト条件では検出ができない遅延性故障を検出できるように、故障データおよびパターンデータの生成が行われる。具体的には、その時点までにテスト条件データベース部２９に格納されたテスト条件で検出可能な遅延性故障を除いた、それ以外の場所に存在する遅延性故障を含む故障モデルを用いてデータの生成を行う。生成された故障データおよびパターンデータは、故障データ記憶部１９およびパターンデータ記憶部１８に格納される。そして、格納されたパターンデータを用いて作成されたテストパターンと、テストタイミング補正部２３によって補正された（綬和された）テストタイミングで、再び論理シミュレーションが行われる。テストタイミングデータ記憶部２２には、最速のテストタイミングのみではなく、この最速のテストタイミングを段階的に緩和する複数のテストタイミングが格納されている。故障検出率チェック部３０の指示による繰り返しを行うときには、この、段階的に緩和するテストタイミングを利用したテストタイミングの補正が行われる。これにより、ファースタ・ザン・アット・スピードテストである範囲で、最初よりも遅いテストタイミングでの論理シミュレーションが行われる。２回目以降の繰り返しでは、さらに遅いテストタイミングでの論理シミュレーションが行われる。なお、データ生成のやり直しを行わずに、テストタイミング補正部２３に、テストタイミングの緩和のみを指示してもよい。
【００８０】
シミュレーションの結果、マスクデータがマスクデータ記憶部２７に格納される。この段階で、再び、故障データ、パターンデータ、マスクデータを、テスト条件データベース部２９に格納（累積）する。検出率が目標値に達した場合には、最終テストパターン生成部３１に指示を行う。
【００８１】
最終テストパターン生成部３１は、テスト条件データベース部２９に格納（累積）されたテスト条件に基づいて、実際にテスタ（テスト装置）が利用するためのテストパターン３２を生成する。
【００８２】
尚、この図１の点線で囲まれた部分を構成する、データ生成部１７，パターンデータ記憶部１８，故障データ記憶部１９，テストパターン生成部２０，マスキング部２６，マスクデータ記憶部２７，データ保存部２８，テスト条件データベース部２９が、ＡＴＰＧ（Ａｕｔｏ  Ｔｅｓｔ  Ｐａｔｔｅｒｎ  Ｇｅｎｅｒａｔｏｒ：テストパターン自動生成ツール）に相当する。
【００８３】
図２は、図１に示すテスト条件生成装置の論理シミュレーションにおいて、オーバーキルが発生しない状態を示す図、図３は、図１に示すテスト条件生成装置の論理シミュレーションにおいて、オーバーキルが発生する状態を示す図である。
【００８４】
図１に示すＡＴＰＧで活性化されるパスが、あるテストタイミングでのファースタ・ザン・アット・スピードテストでオーバーキルになるかどうかを判別するために、論理シミュレーションが行なわれる。この論理シミュレーションの際、遅延情報ファイル（ＳＤＦ）の各エンドポイントフリップフロップの入力端子の遅延値に、先のタイミング解析で得た対象のエンドポイントフリップフロップに対応する最小スラックマージン（Ｔｍｇｎ）を追加した値を遅延値とする（尚、エンドポイントフリップフロップ毎に最小スラックマージンの値は異なる）。
【００８５】
図２の左側には、あるエンド側フリップフロップをエンドポイントとする信号パスの中で、最長のパス（下側）およびＡＴＰＧで活性化された中で最長のパス（上側）の遅延時間と、システムタイミングおよびテストタイミングとの関係を示す。そして、図２の右側には、論理シミュレーションにおいて評価される、活性化された中で最長のパスの遅延時間に最小スラックマージンを加えた遅延時間と、テストタイミングとの関係を示す。具体的には、図２には、活性化される中で最長のパスの遅延時間とテストタイミングとの差Ｔｄｅｔ（最小検出可能故障サイズ）が、最小スラックマージン（Ｔｍｇｎ）を超えている場合の例が示される。この場合には、活性化された中で最長のパスの遅延時間に最小スラックマージンを加えても、テストタイミングより短い。このため、論理シミュレーションで、期待される論理値の遷移の後の出力データをエンドポイントフリップフロップに取り込むことができ、シミュレーション結果はパス（合格）になる。このように、最小スラックマージンを加えて行った論理シミュレーションでパスする場合には、シミュレーションを行ったテストタイミングでオーバーキルは発生しない。
【００８６】
これに対して、図３には、活性化された中で最長のパスの遅延時間とテストタイミングとの差Ｔｄｅｔ（最小検出可能故障サイズ）が、最小スラックマージン（Ｔｍｇｎ）未満である場合の例を示す。この場合には、活性化された中で最長のパスの遅延時間に最小スラックマージンを加えると、テストタイミングを超える。このため、期待される論理値の遷移の後の出力データをエンドポイントフリップフロップに取り込むことができず、論理シミュレーション結果はフェイル（不合格）となる。このように、最小スラックマージンを加えて行った論理シミュレーションでフェイルする場合には、シミュレーションを行ったテストタイミングでオーバーキルが発生する。
【００８７】
図１に示すテスト条件生成装置の論理シミュレーション部２４は、ＡＴＰＧで活性化されたそれぞれのパスについて上記のような論理シミュレーションを行い、それぞれのエンドポイントフリップフロップについてのシミュレーション結果に基づいて、フェイルするエンド側フリップフロップのリスト（フェイルＦＦリスト）を生成する。ＡＴＰＧが活性化したパスに、同じエンド側フリップフロップをエンドポイントとするパスが複数含まれる場合、いずれか１つのパスについてのシミュレーションでフェイルした（すなわち、活性化したパスの中で最長のパスがフェイルした）場合には、そのエンド側フリップフロップがフェイルＦＦリストに追加される。
【００８８】
なお、前述のように、最小スラックマージンの値はエンドポイントフリップフロップごとに異なる。従って、異なるエンド側フリップフロップをエンドポイントとするパスごとに、異なる最小スラックマージンを用いた論理シミュレーションが行われ、マスクするか否かが判断される。
【００８９】
マスキング部２６は、論理シミュレーション部２４が生成したフェイルＦＦリストをマスクデータ（ｉｇｎｏｒｅ＿ＦＦ＿ｌｉｓｔ）としてＡＴＰＧに読み込ませる。データ保存部２８がテスト条件データベース２９にテスト条件を格納する際に、マスクデータ記憶部２７に格納されたフェイルする（オーバーキルが発生する）エンドポイントフリップフロップの期待値をＸ（ｄｏｎ’ｔ  ｃａｒｅ）に置き換えて、マスキングを行う。
【００９０】
マスキングを行なった場合、マスクされたフリップフロップをエンドポイントとするパス上の遅延性故障はＡＴＰＧで未検出扱いとなるため、故障検出率が低下する。従って、いったん論理シミュレーションおよびマスキングを行った後に、故障検出率が目標値を下回るときには、テストタイミングを緩和し、ふたたび論理シミュレーションを行う（図３の右部の状態であったパスを、図２の右部の状態にして検出する）。これにより、オーバーキルを起こすことなく故障検出率を高くすることができる。テストタイミングの緩和は、故障検出率が目標値に達するまで、もしくは、アット・スピードテストになるまで行われる。
【００９１】
なお、どのテストタイミングにおいてオーバーキルが発生するのかは、ＡＴＰＧが活性化している全パスにおいて個別であるため、テストタイミングの緩和は段階的に行う必要がある。
【００９２】
前述のように、故障検出率チェック部３０が把握した検出率が目標値を下回っていたときに、データ生成部１９でのデータ生成のやり直しを行わず、同一のテストパターンについて、段階的に緩和したテストタイミングでシミュレーションとマスクデータの生成を繰り返して行うことも可能である。この場合、それぞれのテストパターンについて、オーバーキルを起こさない範囲で最も速い、すなわち、微小な遅延性故障の検出が行えるテストタイミングを設定することができる。
【００９３】
一方、故障検出率チェック部３０の指示によってデータ生成部１７がデータ生成のやり直しを行うことによって、より高い故障検出率が得られることが期待される。すなわち、その時点までにテスト条件データベース部２９に格納されたテスト条件で検出可能な遅延性故障を除いた、それ以外の位置の遅延性故障を検出の対象としてデータ生成のやり直しを行うことにより、それ以前に生成されたテストパターンでは検出することができなかった遅延性故障を検出できるテストパターンが生成されることが期待される。
【００９４】
このようにして、半導体集積回路の、遅延性故障検出のためのテスト条件を生成することにより、ファースタ・ザン・アット・スピードテストによるオーバーキルを防ぐことができる。このため、オーバーキルによる歩留まりの低下を起こすことなく、ファースタ・ザン・アット・スピードテストによる微小遅延故障検出を利用してテスト品質を向上することができる。従来のテスト業界においては、ファースタ・ザン・アット・スピードテストによる微小遅延故障の検出はオーバーキルの影響が大きいために敬遠されてきたが、本実施形態によれば、ファースタ・ザン・アット・スピードテストをリスクなく使用することが可能となる。
【００９５】
上記の説明においては、図６に示されるように、あるエンド側フリップフロップ（２０３）をエンドポイントとして共有とする複数の信号経路を想定して、最小スラックマージンを算出した。すなわち、そのエンド側フリップフロップをエンドポイントとして共有する複数の信号経路のうちの最長の経路の遅延時問と、システムタイミングとの差を、最小スラックマージンして算出した。そして、このようにして求めた最小スラックマージンを遅延時間に加えた論理シミュレーションを行い、ＡＴＰＧが活性化した信号経路の中で最長の経路でオーバーキルが起きると判断される場合には、そのエンド側フリップフロップ２０３のマスクを行うことによって、テスト条件の生成を行った。この場合、論理シミュレーションにおいて、最小スラックマージンは、エンドポイントを共有する複数の信号経路の全てに共有される部分の遅延時間に加えることが好ましい。これにより、遅延情報ファイル（補正後）１６生成を効率的に、すなわち、補正が必要な箇所を最小にして行うことができる。さらに、そのエンド側フリップフロップをエンドポィントとする信号経路のみに含まれる部分、例えば、そのエンド側フリップフロップのデータ入力端子の遅延時間に加えることが好ましい。これにより、他のエンド側フリップフロップをエンドポイントとする信号経路の論理シミュレーションに影響を与えることが無い。
【００９６】
一方、あるスタート側フリップフロップをスタートポイントとして共有する複数の信号経路を想定して、同様の処理を行い、テスト条件の生成を行うことも可能である。
【００９７】
図４は、１つのスタート側フリップフロップ２２３をスタートポイントとして共有する複数のパスを示す図である。
【００９８】
図４には、１つのスタート側フリップフロップ２４２と、エンド側フリップフロップ２４３＿１，２４３＿２，２４３＿３，２４３＿４を含むエンドポイント群２４３と、それらの間に形成される信号経路（パス）が示されている。それぞれのパスは、それぞれのスタートポイントフリップフロップから、ユーザロジックの共通の部分２４１＿５を経由し、さらに、ユーザロジックのそれぞれ異なる部分２４１＿１，２４１＿２，２４１＿３，２４１＿４を経由して、対応するエンドポイントフリップフロップ２４３＿１，２４３＿２，２４３＿３，２４３＿４にいたる。図４には、また、上記の複数の信号経路のいずれかが活性化されることによって検出できる可能性がある遅延性故障を代表して、遅延性故障２４１＿５ａが、全てのパスに共通する、ユーザロジックの２４１＿５の部分に示されている。
【００９９】
図４に示された例において、複数の信号パスのいずれが活性化された場合でも、それらの信号パスに共通する部分に存在する遅延性故障を検出できる可能性がある。従って、これら４つの信号パスの中の最も長いパスの遅延時間と、システムタイミングとの差が「最小スラックマージン」である。ここで、遅延性故障が存在しても、その故障サイズが最小スラックマージンよりも小さければ、システムタイミングでの実動作において不良発生の原因にはならない。さらに、図４において遅延性故障２４１＿５ａが示された位置に限らず、４つの信号パスのいずれに遅延性故障が存在する場合であっても、その故障サイズが最小スラックマージンよりも小さければ、図４に示された範囲では、システムタイミングでの実動作において不良発生の原因にはならない。
【０１００】
従って、この場合には、最小スラックマージンを、スタート側フリップフロップをスタートポイントとして共有する複数の信号経路のうちの最長の経路の遅延時間と、システムタイミングとの差として算出する。そして、ＡＴＰＧが活性化するそれぞれの信号経路について、遅延時間に算出した最小スラックマージンを加えて論理シミュレーションを行う。そして、この論理シミュレーションにおいてフェイルした信号経路がエンドポイントとするエンド側フリップフロップをフェイルＦＦリストに加える。この論理シミュレーションにおいて、最小スラックマージンは、スタートポイントを共有する複数の信号経路の全てに共有される部分に加えることが好ましい。さらに、共有されるスタート側フリップフロップをスタートポイントとする信号経路のみに含まれる部分、例えば、そのスタート側フリップフロップの出力端子の遅延時間に加えることが好ましい。
【図面の簡単な説明】
【０１０１】
【図１】本発明の一実施形態のテスト条件生成装置の構成を示す図である。
【図２】図１に示すテスト条件生成装置の論理シミュレーションにおいて、オーバーキルが発生しない状態を示す図である。
【図３】図１に示すテスト条件生成装置の論理シミュレーションにおいて、オーバーキルが発生する状態を示す図である。
【図４】１つのスタート側フリップフロップ２２３をスタートポイントとして共有する複数のパスを示す図である。
【図５】論理回路のディレイテストを説明するための図である。
【図６】１つのエンドポイントフリップフロップ２０３をエンドポイントとして共有する複数のパスを示す図である。
【図７】半導体集積回路のチップ全体の回路構成を示す図である。
【図８】最小スラックマージンと最小検出可能遅延性故障サイズの関係を示す図である。
【図９】ファースタ・ザン・アット・スピードのテストを説明するための図である。
【図１０】オーバーキルの概念を説明するための図である。
【符号の説明】
【０１０２】
１  テスト条件生成装置
１１  最小スラックマージン把握部
１２  ネットリスト記憶部
１３  遅延情報ファイル
１４  最小スラックマージン記憶部
１５  ＳＤＦ補正部
１６  遅延情報ファイル
１７  データ生成部
１８  パターンデータ記憶部
１９  故障データ記憶部
２０  テストパターン生成部
２１  テストパターン（一時的）
２２  テストタイミングデータ記憶部
２３  テストタイミング補正部
２４  論理シミュレーション部
２５  フェイルＦＦリスト（マスクＦＦリスト）
２６  マスキング部
２７  マスクデータ記憶部
２８  データ保存部
２９  テスト条件データベース部
３０  故障検出率チェック部
３１  最終テストパターン生成部
【図１】
0005032395.tif 000002
【図２】
0005032395.tif 000003
【図３】
0005032395.tif 000004
【図４】
0005032395.tif 000005
【図５】
0005032395.tif 000006
【図６】
0005032395.tif 000007
【図７】
0005032395.tif 000008
【図８】
0005032395.tif 000009
【図９】
0005032395.tif 000010
【図１０】
0005032395.tif 000011