(57)【要約】【課題】半導体集積回路のテストパタンの作成において、クリティカルパス上のインスタンスの接続関係を考慮し、かつ、誤テストを回避するテストパタンの生成を効率的に行う。【解決手段】テストパタン生成装置は、レイアウト情報と回路情報とを使用して、半導体集積回路に配置されるインスタンスを抽出し、インスタンス情報を生成するインスタンス情報生成部１０と、回路情報を参照して、テストパタンを使用して半導体集積回路を動作させたときに、クロックの印加に応じて変化するインスタンスを抽出した動作情報を生成する動作情報抽出部４０と、クリティカルパス情報、インスタンス情報、及び動作情報を使用して、レイアウト情報に含まれるインスタンスのうち、クリティカルパスを構成するパス上インスタンスより前に変化する注目インスタンスを抽出し、注目インスタンスを用いて、テストパタンの適否を判定する判定部９０と、を備える。【選択図】図１
2011163897.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路をテストするテストパタンを生成するテストパタン生成装置であって、
記憶領域と、
レイアウト情報と回路情報とを使用して、前記半導体集積回路に配置されるインスタンスを抽出し、前記インスタンスとインスタンスに関する情報とを対応づけたインスタンス情報を生成し、前記インスタンス情報を前記記憶領域に記録するインスタンス情報生成部と、
前記回路情報を参照して、前記テストパタンを使用して前記半導体集積回路を動作させたときに、クロックの印加に応じて変化するインスタンスを抽出した動作情報を生成し、前記動作情報を前記記憶領域に記録する動作情報抽出部と、
クリティカルパスを特定するクリティカルパス情報、前記インスタンス情報、及び前記動作情報を使用して、前記レイアウト情報に含まれるインスタンスのうち、前記クリティカルパスを構成するパス上インスタンスより前に変化する注目インスタンスを抽出し、抽出した注目インスタンスを用いて、前記テストパタンの適否を判定する判定部と、を備えるテストパタン生成装置。
【請求項２】
前記判定部は、前記インスタンス情報を参照して、前記パス上インスタンスより先に遷移する影響インスタンスを抽出し、前記動作情報を参照して、前記影響インスタンスの中から前記注目インスタンスを抽出することを特徴とする請求項１記載のテストパタン生成装置。
【請求項３】
前記レイアウト情報に基づいて、前記半導体集積回路を複数のブロックに分割した複数のリージョンを生成し、前記複数のリージョンと各リージョンに配置されるインスタンスとを対応づけるリージョン情報を生成するリージョン分割部を、さらに備え、
前記判定部は、前記インスタンス情報と前記リージョン情報とを参照して、前記パス上インスタンスと同じリージョンに配置されるリージョンインスタンスの中から前記影響インスタンスを抽出することを特徴とする請求項２記載のテストパタン生成装置。
【請求項４】
前記判定部は、前記リージョンインスタンスに対する前記注目インスタンスの割合を用いて、前記パス上インスタンスに影響を与える電源ノイズを数値化し、前記テストパタンの適否を判定することを特徴とする請求項３記載のテストパタン生成装置。
【請求項５】
前記判定部は、前記注目インスタンス及び前記リージョンインスタンスについて、ファンアウト数、インスタンスの個数、及び寄生容量のうちの少なくとも一つを用いて前記パス上インスタンスに影響を与える電源ノイズを数値化することを特徴とする請求項４記載のテストパタン生成装置。
【請求項６】
前記判定部は、前記注目インスタンスと前記リージョンインスタンスとに関する情報を用いて、前記パス上インスタンスに影響を与える電源ノイズを数値化した指標を算出し、予め設定した基準値と前記指標とを比較した結果に応じて前記テストパタンの適否を判定することを特徴とする請求項４または５に記載のテストパタン生成装置。
【請求項７】
前記クリティカルパスは複数のパス上インスタンスから構成され、
前記判定部は、前記基準値と、複数のパス上インスタンスそれぞれについて算出した複数の指標の平均値とを比較することを特徴とする請求項６記載のテストパタン生成装置。
【請求項８】
前記インスタンス情報生成部は、前記インスタンス情報を、前記インスタンスと前記インスタンスの論理段数とを対応づけて生成し、
前記判定部は、前記インスタンス情報を参照して、前記パス上インスタンスより論理段数の小さいインスタンスを前記影響インスタンスとして抽出することを特徴とする請求項２乃至７のいずれか一項に記載のテストパタン生成装置。
【請求項９】
前記判定部は、前記インスタンス情報を参照して、前記パス上インスタンスより変化時刻の早いインスタンスを影響インスタンスとして抽出することを特徴とする請求項２乃至７のいずれか一項に記載のテストパタン生成装置。
【請求項１０】
前記判定部は、
前記リージョン情報を参照して、前記影響インスタンスを抽出する影響インスタンス抽出部と、
前記動作情報を参照して、前記影響インスタンスの中から前記注目インスタンスを抽出し、前記注目インスタンスと前記リージョンインスタンスとを用いてパス上インスタンスに影響を与える電源ノイズを数値化し、前記テストパタンの適否を判定する比較判定部を備えることを特徴とする請求項３乃至９のいずれか一項に記載のテストパタン生成装置。
【請求項１１】
前記動作情報抽出部は、前記回路情報と前記インスタンス情報を参照して、前記インスタンスのスイッチング確率を定義し、前記スイッチング確率が閾値より大きいインスタンスを抽出した動作情報を生成し、
前記判定部は、前記注目インスタンスを用いて、前記パス上インスタンスに影響を与える電源ノイズを数値化し、インスタンスの配置の適否を判定することを特徴とする請求項１乃至１０のいずれか一項に記載のテストパタン生成装置。
【請求項１２】
前記判定部がテストパタンの適否を判定するテストパタン判定処理と、前記インスタンスの配置の適否を判定する回路判定処理とを切り替える選択信号を出力する機能選択部をさらに備え、
前記動作情報抽出部は、前記選択信号に応じて動作情報を生成することを特徴とする請求項１１記載のテストパタン生成装置。
【請求項１３】
半導体集積回路をテストするテストパタンを生成するテストパタン生成装置であって、
記憶領域と、
レイアウト情報と回路情報とを使用して、前記半導体集積回路に配置されるインスタンスを抽出し、前記インスタンスとインスタンスに関する情報とを対応づけたインスタンス情報を生成し、前記インスタンス情報を前記記憶領域に記録するインスタンス情報生成部と、
前記回路情報と前記インスタンス情報を参照して、インスタンスのスイッチング確率を定義し、前記スイッチング確率が閾値より大きいインスタンスを抽出した動作情報を生成し、前記動作情報を前記記憶領域に記録する動作情報抽出部と、
クリティカルパスを特定するクリティカルパス情報、前記インスタンス情報、及び前記動作情報を使用して、前記レイアウト情報に含まれるインスタンスのうち、前記クリティカルパスを構成するパス上インスタンスより前に変化する注目インスタンスを抽出し、抽出した注目インスタンスを用いて、前記パス上インスタンスに影響を与える電源ノイズを判定する判定部と、を備えるテストパタン生成装置。
【請求項１４】
半導体集積回路をテストするテストパタンを生成するテストパタン生成方法であって、
レイアウト情報と回路情報とを使用して、前記半導体集積回路に配置されるインスタンスを抽出し、前記インスタンスとインスタンスに関する情報とを対応づけたインスタンス情報を生成してインスタンス情報記憶部へ記録し、
前記回路情報を参照して、前記テストパタンを使用して前記半導体集積回路を動作させたときに、クロックの印加に応じて変化するインスタンスを抽出した動作情報を生成して動作情報記憶部へ記録し、
クリティカルパスを特定するクリティカルパス情報、前記インスタンス情報、及び前記動作情報を使用して、前記レイアウト情報に含まれるインスタンスのうち、前記クリティカルパスを構成するパス上インスタンスより前に変化する注目インスタンスを抽出し、
抽出した注目インスタンスを用いて、前記テストパタンの適否を判定するテストパタン生成方法。
【請求項１５】
半導体集積回路をテストするテストパタンを生成するプログラムであって、
コンピュータに、
レイアウト情報と回路情報とを使用して、前記半導体集積回路に配置されるインスタンスを抽出し、前記インスタンスとインスタンスに関する情報とを対応づけたインスタンス情報を生成してインスタンス情報記憶部へ記録するインスタンス情報生成手順と、
前記回路情報を参照して、前記テストパタンを使用して前記半導体集積回路を動作させたときに、クロックの印加に応じて変化するインスタンスを抽出した動作情報を生成して動作情報記憶部へ記録する動作情報生成手順と、
クリティカルパスを特定するクリティカルパス情報、前記インスタンス情報、及び前記動作情報を使用して、前記レイアウト情報に含まれるインスタンスのうち、前記クリティカルパスを構成するパス上インスタンスより前に変化する注目インスタンスを抽出する注目インスタンス抽出手順と、
抽出した注目インスタンスを用いて、前記テストパタンの適否を判定する判定する判定手順と、を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路をスキャンテストする技術に関し、具体的には、誤動作を回避するテストパタンを生成する技術に関する。
【背景技術】
【０００２】
半導体集積回路（ＬＳＩ）をスキャンテストするために、スキャンテストパタン（以下単にテストパタンという）を生成する。半導体集積回路のスキャンテストでは、電源ノイズによる誤動作を回避するテストパタンを生成する必要がある。すなわち、スキャンテスト時に電源ノイズによる誤動作が生じると、良品を不良品と判断する誤ったテスト（以下、適宜「誤テスト」という）を行うことになる。その結果、スキャンテスト時の歩留まりの低下を引き起こす。
【０００３】
近年、ＬＳＩの大規模化により、電源ノイズを解析する時間が長くなっている。また、ＬＳＩの微細化に伴い、電源ノイズの解析処理が複雑化している。これらに伴い、設計期間の延ばすことなく、簡素化した設計フローを利用することによって、誤テストを回避するテストパタンを生成することが望まれている。
【０００４】
特許文献１には、半導体集積回路をスキャンテストする時に、ＩＲドロップによる誤動作を回避し、効率のよいスキャンテストを実現する技術が開示されている。図２４に特許文献１に開示されたテストパタン生成装置１００Ｐを示す。テストパタン生成装置１００Ｐは、半導体集積回路をスキャンテストするためのテストパタンを生成する装置であり、危険箇所抽出部１１０Ｐと、ＡＴＰＧ（パタン生成実行部）１５０Ｐを備える。危険箇所抽出部１１０Ｐは、半導体集積回路から、電源のＩＲドロップに起因してテスト時に誤動作が生じうる危険箇所を抽出する。危険箇所抽出部１１０Ｐは、ＩＲドロップ量算出部１２０Ｐと抽出実行部１３０Ｐとを備える。ＡＴＰＧ１５０Ｐは、危険箇所抽出部１１０Ｐにより抽出された危険箇所に対して、該危険箇所に含まれるインスタンスの動作率を抑制するようにテストパタンを生成する。
【０００５】
具体的には、ＩＲドロップ量算出部１２０Ｐは、まず、チップを複数のブロックに等分割し、各ブロックに対して、ＩＲドロップ量を計算する。抽出実行部１３０Ｐは、電源のＩＲドロップに起因してテスト時に誤動作が生じうる危険箇所の抽出を実行する。このとき、抽出実行部１３０Ｐは、半導体集積回路を複数の分割したブロックのＩＲドロップ量と所定の基準値と比較し、基準値より大きいＩＲドロップ量を有するブロックを危険箇所として抽出する。ＡＴＰＧ１５０Ｐは、複数のインスタンスが含まれる危険箇所に対して、該複数のインスタンスが同時に変化することがないようにテストパタンを生成する。
【０００６】
すなわち、ＡＴＰＧ１５０は、危険箇所として抽出されたブロックに対して、該ブロック内に動作する複数のインスタンスが含まれる場合には、これらのインスタンスを同時に変化させないテストパタンを生成する。これにより、該ブロック内のインスタンスの動作率を抑制する。その結果、テストパタン生成装置１００Ｐにより出力されるテストパタンはテスト時にＩＲドロップによる誤動作の発生を生じさせないものとなる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−２２４３１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
半導体集積回路のスキャンテストにおいて、電源ノイズによる影響は、各インスタンスの遅延増加という形で現れる。このため、クリティカルパスが動作するときに誤動作しやすいと考えられる。
【０００９】
しかしながら、特許文献１の技術では、危険箇所に含まれるインスタンスの動作率を抑制するという方法でテストパタンを作成するが、テスト時に動作するクリティカルパス上の回路の接続関係（クリティカルパスの遅延関係）の情報を考慮していない。具体的には、抽出したインスタンスに含まれる時刻に関する情報（伝播遅延値や、論理段数など、パス内のインスタンスの接続情報）を参照して、クリティカルパスの誤動作を回避していない。その結果、誤テストを回避することができず、歩留まり低下を引き起こし、さらに、動作率抑制の制約により、テストパタン数が増加し、テスト時間の増加を引き起こしていた。
【００１０】
このように、半導体集積回路のテストパタンの作成において、クリティカルパス上のインスタンスの接続関係を考慮し、かつ、誤テストを回避するテストパタンの生成が効率的に行われていないという問題があった。
【課題を解決するための手段】
【００１１】
本発明に係るテストパタン生成装置の一態様は、半導体集積回路をテストするテストパタンを生成するテストパタン生成装置であって、記憶領域と、レイアウト情報と回路情報とを使用して、前記半導体集積回路に配置されるインスタンスを抽出し、前記インスタンスとインスタンスに関する情報とを対応づけたインスタンス情報を生成し、前記インスタンス情報を前記記憶領域に記録するインスタンス情報生成部と、前記回路情報を参照して、前記テストパタンを使用して前記半導体集積回路を動作させたときに、クロックの印加に応じて変化するインスタンスを抽出した動作情報を生成し、前記動作情報を前記記憶領域に記録する動作情報抽出部と、
クリティカルパスを特定するクリティカルパス情報、前記インスタンス情報、及び前記動作情報を使用して、前記レイアウト情報に含まれるインスタンスのうち、前記クリティカルパスを構成するパス上インスタンスより前に変化する注目インスタンスを抽出し、抽出した注目インスタンスを用いて、前記テストパタンの適否を判定する判定部と、を備える。パス上インスタンスより前の時刻に遷移するインスタンスであって、かつ、値が変化する注目インスタンスが、パス上インスタンスに与える電源ノイズに影響する。判定部は、注目インスタンスに関する情報を用いて、電源ノイズの影響を取得する。そして、テストパタンの適否、具体的には、テストパタンが誤テストを生じるか否かを判定する。これにより、半導体集積回路をテストするテストパタン生成の効率化を図る。
【００１２】
本発明に係る他のテストパタン生成装置の一態様は、半導体集積回路をテストするテストパタンを生成するテストパタン生成装置であって、記憶領域と、レイアウト情報と回路情報とを使用して、前記半導体集積回路に配置されるインスタンスを抽出し、前記インスタンスとインスタンスに関する情報とを対応づけたインスタンス情報を生成し、前記インスタンス情報を前記記憶領域に記録するインスタンス情報生成部と、前記回路情報と前記インスタンス情報を参照して、インスタンスのスイッチング確率を定義し、前記スイッチング確率が閾値より大きいインスタンスを抽出した動作情報を生成し、前記動作情報を前記記憶領域に記録する動作情報抽出部と、クリティカルパスを特定するクリティカルパス情報、前記インスタンス情報、及び前記動作情報を使用して、前記レイアウト情報に含まれるインスタンスのうち、前記クリティカルパスを構成するパス上インスタンスより前に変化する注目インスタンスを抽出し、抽出した注目インスタンスを用いて、前記パス上インスタンスに影響を与える電源ノイズを判定する判定部と、を備える。
【００１３】
本発明に係るテストパタン生成方法の一態様は、半導体集積回路をテストするテストパタンを生成するテストパタン生成方法であって、レイアウト情報と回路情報とを使用して、前記半導体集積回路に配置されるインスタンスを抽出し、前記インスタンスとインスタンスに関する情報とを対応づけたインスタンス情報を生成してインスタンス情報記憶部へ記録し、前記回路情報を参照して、前記テストパタンを使用して前記半導体集積回路を動作させたときに、クロックの印加に応じて変化するインスタンスを抽出した動作情報を生成して動作情報記憶部へ記録し、クリティカルパスを特定するクリティカルパス情報、前記インスタンス情報、及び前記動作情報を使用して、前記レイアウト情報に含まれるインスタンスのうち、前記クリティカルパスを構成するパス上インスタンスより前に変化する注目インスタンスを抽出し、抽出した注目インスタンスを用いて、前記テストパタンの適否を判定する。
【００１４】
本発明に係るプログラムの一態様は、半導体集積回路をテストするテストパタンを生成するプログラムであって、コンピュータに、レイアウト情報と回路情報とを使用して、前記半導体集積回路に配置されるインスタンスを抽出し、前記インスタンスとインスタンスに関する情報とを対応づけたインスタンス情報を生成してインスタンス情報記憶部へ記録するインスタンス情報生成手順と、前記回路情報を参照して、前記テストパタンを使用して前記半導体集積回路を動作させたときに、クロックの印加に応じて変化するインスタンスを抽出した動作情報を生成して動作情報記憶部へ記録する動作情報生成手順と、クリティカルパスを特定するクリティカルパス情報、前記インスタンス情報、及び前記動作情報を使用して、前記レイアウト情報に含まれるインスタンスのうち、前記クリティカルパスを構成するパス上インスタンスより前に変化する注目インスタンスを抽出する注目インスタンス抽出手順と、抽出した注目インスタンスを用いて、前記テストパタンの適否を判定する判定する判定手順と、を実行させる。
【発明の効果】
【００１５】
本発明によれば、半導体集積回路のテストパタンの作成において、クリティカルパス上のインスタンスの接続関係を考慮し、かつ、誤テストを回避するテストパタンの生成を効率的に行うことが可能となる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態に係るテストパタン生成装置の構成例を示すブロック図である。
【図２】テストパタン生成装置の動作環境の一例を示すシステム構成図である。
【図３】本発明の実施形態１に係るテストパタン生成装置の構成例を示すブロック図である。
【図４】インスタンス情報の一例を示す図である。
【図５】リージョン分割例を示す図である。
【図６】リージョン情報の一例を示す図である。
【図７】スイッチングインスタンスの抽出の一例を示す図である。
【図８】動作情報の一例を示す図である。
【図９】クリティカルパス情報の一例を示す図である
【図１０】パス上インスタンスと影響インスタンスとの関係を説明する図である。
【図１１】実施形態１のテストパタン生成装置の動作例を示すフローチャートである。
【図１２】インスタンス情報生成処理の動作例を示すフローチャートである。
【図１３】リージョン分割処理の動作例を示すフローチャートである。
【図１４】指標計算処理の動作例を示すフローチャートである。
【図１５】影響インスタンス抽出処理の動作例を示すフローチャートである。
【図１６】指標の計算方法を説明する図である。
【図１７】基準値と指標との比較を、電源のノイズ解析と対応づけて説明する図である。
【図１８】基準値０．７のときの判定結果例を示す図である。
【図１９】基準値０．８のときの判定結果例を示す図である。
【図２０】本発明の実施形態２に係るテストパタン生成装置の構成例を示すブロック図である。
【図２１】実施形態２のテストパタン生成装置の動作例を示すフローチャートである。
【図２２】本発明の実施形態３に係るテストパタン生成装置の構成例を示すブロック図である。
【図２３】実施形態３のテストパタン生成装置の動作例を示すフローチャートである。
【図２４】従来のテストパタン生成装置の構成例を示すブロック図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。各図面において同一の構成または機能を有する構成要素および相当部分には、同一の符号を付し、その説明は省略する。
【００１８】
図１は、本発明の実施形態に係るテストパタン生成装置の構成例を示すブロック図である。テストパタン生成装置１は、コンピュータを用いて実現することが可能であり、例えば、パーソナルコンピュータを用いることができる。
テストパタン生成装置１は、レイアウト情報、テストパタン情報、回路情報、及びクリティカルパス情報を外部より取得し、取得した情報を使用して、誤テストを回避するテストパタンを作成する装置である。図１では、テストパタン生成装置１は、誤テストを回避するため、テストパタンを使用してテストしたときに、クリティカルパス上のインスタンスへ影響を与える電源ノイズが、任意の基準値より大きいか否か判定し、判定結果を出力するテストパタン判定処理を実現する機能を示す。また、なお、図１では、テストパタンを生成する機能については明示していない。
【００１９】
レイアウト情報は、半導体装置を構成するインスタンス（各素子）の配置を設計した情報である。具体的には、各インスタンスがチップ上の配置される位置を、座標を用いて特定する情報である。
テストパタン情報は、半導体装置をテストする際に使用するテストパタンを記述した情報である。テストパタン情報は、少なくとも一つのテストパタンを含む。
回路情報は、半導体装置を構成するインスタンスの接続関係を記述した情報である。回路情報は、各インスタンスの接続関係に基づいて、各インスタンスが遷移する順番を特定することが可能な情報を含む。また、回路情報は、インスタンスに関する情報（例えば、クロックの種類など）を含む。
クリティカルパス情報は、半導体装置に含まれるパスのうち、遅延することができないクリティカルパスを特定した情報である。クリティカルパス情報は、半導体集積回路の設計者によって作成される。
【００２０】
図１では、各情報を取得する手段（経路）を示していないが、例えば、外部より取得した各情報をテストパタン生成装置１がアクセス可能な記憶領域（例えば、ハードディスク、メモリなど）に記録する。また、テストパタン生成装置１内に、情報を外部から取得する情報取得部を備えていてもよい。テストパタン生成装置１内の各構成要素は、各情報を記録領域から読み出すことによって使用する。
【００２１】
また、本明細書では、半導体装置を構成するインスタンス、具体的には物理的な各素子にインスタンス（名称）が付与されていることを前提とする。インスタンスの接続関係を説明する場合には、インスタンスをノードと称し、配線をパスと称して説明することもある。また、インスタンスのうち、電源ノイズの影響を与える可能性のあるインスタンスをゲートということもある。
【００２２】
図１に示すテストパタン生成装置１は、インスタンス情報生成部１０、動作情報抽出部４０、判定部９０、及び記憶領域１００を備える。記憶領域１００は、テストパタン生成装置１がアクセス可能なデータを格納する領域であり、一つの記憶領域（例えばハードディスク）であってもよいし、複数の記録領域（例えば、複数のハードディスク、ハードディスクとメモリまたは外部記録媒体など）から構成されていてもよい。また、図１では、記憶領域１００は少なくともインスタンス情報記憶部１１０と動作情報記憶部１４０とを含む。
【００２３】
インスタンス情報生成部１０は、インスタンス情報を生成し、生成したインスタンス情報をインスタンス情報記憶部１１０へ記録する。インスタンス情報は、半導体集積回路を構成するインスタンス、並びに各インスタンスに関する情報（以降、適宜「インスタンス属性」という）、例えば、論理段数、ファンアウトなどを示す情報を含む。具体的には、インスタンス情報生成部１０は、レイアウト情報を参照して、半導体集積回路を構成するインスタンスを抽出し、回路情報を参照して、各インスタンスについてインスタンス属性を抽出・算出する。インスタンス情報生成部１０は、各インスタンスとインスタンス属性とを対応づけるインスタンス情報を生成する。
インスタンス情報は、判定部９０が電源ノイズの影響を判定するときに使用する。従って、インスタンス情報生成部１０は、判定部９０の機能に応じて回路情報からインスタンス属性を抽出する。
【００２４】
動作情報抽出部４０は、動作情報を生成し、生成した動作情報を動作情報記憶部１４０に記録する。動作情報は、クロックの印加に応じて変化するインスタンスに関する情報である。例えば、動作情報抽出部４０は、回路情報とテストパタン情報とを使用して、テストパタンを使用して半導体集積回路を動作させたときに、クロックの印加に応じて変化するインスタンス（スイッチングインスタンス）を抽出して動作情報を生成することができる。また、動作情報抽出部４０は、回路情報とインスタンス情報とを使用して、スイッチング確率を定義することによって動作情報を生成することができる。動作情報の具体的な生成については以降の各実施形態で説明する。
【００２５】
判定部９０は、クリティカルパス情報、インスタンス情報、及び動作情報を使用して、前記パス上インスタンスに影響を与える電源ノイズを判定する。判定部９０は、レイアウト情報に含まれるインスタンスを解析する。そして、判定部９０は、クリティカルパスを構成するインスタンス、すなわち、クリティカルパス上のインスタンス（以降、「パス上インスタンス」という）へ、パス上インスタンスより前に値が変化するインスタンス（以降、「注目インスタンス」という）を抽出する。そして、抽出した注目インスタンスを用いて、テストパタンの適否を判定する。このとき、判定部９０は、インスタンス情報記憶部１１０からインスタンス情報を、動作情報記憶部１４０から動作情報を読み出す。
【００２６】
具体的には、判定部９０は、次の動作を行う。（１）まず、レイアウト情報に含まれるインスタンスを解析し、パス上インスタンスを抽出する。（２）次に、パス上インスタンスそれぞれについて、インスタンス情報を参照して、パス上インスタンスより先に遷移するインスタンス（以降、「影響インスタンス」という）を抽出する。（３）そして、動作情報を参照して、影響インスタンスの中から注目インスタンスを抽出し、抽出した注目インスタンスを解析する。そして、注目インスタンスがクリティカルバス上のインスタンスへ電源ノイズを与えるか否かを判定する。
【００２７】
なお、図１では、テストパタン情報を使用してテストパタンを判定するテストパタン判定処理の機能を有する場合を説明したが、図１に示すテストパタン生成装置１の構成は、後述する実施形態２に適用することも可能である。
【００２８】
図２は、テストパタン生成装置の動作環境の一例を示すシステム構成図である。図２に示すシステムは、コンピュータ装置２−１、２−２とサーバ４とが、ネットワーク３を介して接続される構成である。
コンピュータ装置２−１、２−２は、パーソナルコンピュータ、あるいはエンジニアリングワークステーションを用いることが可能であり、テストパタン生成装置１を搭載する。また、コンピュータ装置２−１、２−２の数は、一例を示したものであり、１台以上の数がネットワーク３に接続される。
サーバ４は、実行プログラム、及びデータの提供に供される。サーバ４はインターネットなどのネットワーク３を介してコンピュータ装置２−１、２−２に接続される。また、サーバ４は、記録媒体５を有する。
【００２９】
記録媒体５は、レイアウト情報、テストパタン情報、回路情報、クリティカル情報を格納する。また、記録媒体５は、実行プログラムやＣＡＤ設計ツール（回路エディタやレイアウトエディタ等）を格納していてもよい。記録媒体５が保持するデータはネットワーク３を介してコンピュータ装置２−１、２−２にダウンロードされる。ダウンロードされた各情報等は、コンピュータ装置２−１、２−２のローカルなハードディスク、メモリなどの記録領域にストアされる。テストパタン生成装置１は、格納されたデータを使用して、テストパタンの判定を実施する。
【００３０】
また、本発明に係るテストパタン生成装置１は、例えば、テストパタン生成装置１の各処理をコンピュータに実現させるプログラムによって実現する。プログラムは、コンピュータ装置２−１、２−２のメモリにロードされ、当該コンピュータ装置２−１、２−２のＣＰＵ（Central Processing Unit）の制御のもとで、実行される。また、プログラムは、コンピュータ装置２−１、２−２で読み取り可能な記録媒体に記録することができる。
以下、具体的な実施形態を用いて、テストパタン生成装置１の詳細な説明を行う。
【００３１】
実施形態１．
実施形態１では、誤テストを回避するため、半導体集積回路のスキャンテストをにおいて、テストパタンを使用してテストしたときに、クリティカルパス上のインスタンスへ影響を与える電源ノイズが、任意の基準値より大きいか否か判定し、判定結果を出力するテストパタン判定処理を実現する場合を説明する。
【００３２】
図３は、本発明の実施形態１に係るテストパタン生成装置の構成例を示すブロック図である。テストパタン生成装置１ａは、インスタンス情報生成部１０ａ、リージョン分割部２０、動作情報抽出部４０、影響インスタンス抽出部５０、指標計算部６０、基準値算出部７０、及び基準値比較部８０を備える。また、記憶領域（記憶部）として、インスタンス情報記憶部１１０、リージョン情報記憶部１２０、クリティカルパス情報記憶部１３０、動作情報記憶部１４０、影響インスタンス情報記憶部１５０を備える。図１では、レイアウト情報、テストパタン情報、及び回路情報を記憶する記憶部を明示していないが、これらの情報も所定の記憶部に格納され、各構成要素が当該記憶部から読み出す。
【００３３】
なお、図１の判定部９０は、影響インスタンス抽出部５０、指標計算部６０、基準値算出部７０、及び基準値比較部８０に相当する。また、指標計算部６０と基準値比較部８０とを比較判定部９１ということもある。
【００３４】
インスタンス情報生成部１０ａは、図１のインスタンス情報生成部１０と同様であり、ここでは、具体的にクロック情報抽出部１１、論理段数算出部１２、及びファンアウト数算出部１３を備える例を示す。
クロック情報抽出部１１は、各インスタンスが用いるクロックを特定する。
論理段数算出部１２は、各インスタンスの論理段数を算出する。
ファンアウト数算出部１３は、各インスタンスが許容するファンアウト数（FANOUT数）を算出する。
【００３５】
インスタンス情報生成部１０ａは、レイアウト情報及び回路情報を使用して、各インスタンスについて、クロック、論理段数、及びファンアウト数のインスタンス属性を取得する。そして、インスタンス情報生成部１０ａは、各インスタンスとインスタンス属性とを対応づけてインスタンス情報を生成する。図４にインスタンス情報の一例を示す。図４では、インスタンス属性として、クロック、論理段数、及びファンアウト数を示しているが、インスタンス情報には、これ以外のインスタンス属性が含まれていてもよい。
【００３６】
リージョン分割部２０は、リージョン情報を生成し、生成したリージョン情報をリージョン情報記憶部１２０へ記録する。具体的には、リージョン分割部２０は、レイアウト情報に基づいて、半導体集積回路（チップ）を複数のブロックに分割した複数のリージョンを生成し、各リージョンに配置されるインスタンスを抽出する。そして、リージョン分割部２０は、複数のリージョンと各リージョンに配置されるインスタンスとを対応づけるリージョン情報を生成する。
図５は、リージョン分割例を示す図である。図５に示すように、チップを複数のブロックに分割した複数のリージョンを生成し、各リージョンに名称（リージョン名）を付与している。なお、図５では、チップを格子状に分割した例を示しているが、他の形状に分割してもよい。
【００３７】
図６は、リージョン情報の一例を示す図である。リージョン分割部２０は、レイアウト情報を参照して各リージョンに配置されるインスタンスを抽出し、リージョン名とインスタンスとを対応づけるリージョン情報を生成する。図６の例では、ＲＥＧＩＯＮ＿Ａには、ＩＮＳＴ１、ＩＮＳＴ２、ＩＮＳＴ３が対応づけられている。
【００３８】
動作情報抽出部４０は、動作情報を生成し、生成した動作情報を動作情報記憶部１４０に記録する。動作情報は、テストパタンを用いて半導体集積回路を動作させたときに、クロックの印加に応じて変化するスイッチングインスタンスを抽出した情報である。
【００３９】
具体的には、動作情報抽出部４０は、まず回路情報を参照して、インスタンスの接続関係を抽出し、論理的な回路構成を構築する。次に、動作情報抽出部４０は、構築した回路構成を、テストパタンで動作させ、当該インスタンスが保持する値が、このテストパタンの動作によって変化する場合、そのインスタンスは、変化するインスタンス（すなわち、スイッチングインスタンス）として抽出する。動作情報抽出部４０は、各テストパタンに識別子を付与し、抽出したスイッチングインスタンスを、識別子に対応付けた動作情報を生成し、動作情報記憶部１４０へ記録する。
【００４０】
ここで、図７を用いて具体的な動作を説明する。動作情報抽出部４０は、回路情報を参照してインスタンスの接続関係を取得し、論理的な回路構成を構築する。構築した回路構成をテストパタン用いて動作させる。図７では、テストパタンは、Ｓｉｎから回路構成へ入力され、Ｓｏｕｔへ出力される。クロックの印加に応じてフリップフロップ（以下、適宜「ＦＦ」という）が保持する値が変化する状態を示す。ＩＮＩＴＩＡＬは、初期状態であり、ＳＨＩＦＴ０〜ＳＨＩＦＴ１１はクロックが印加されるタイミングを示す。６クロック目でＦＦ２が１から０へ、ＦＦ４が０から１へ変化する（点線で囲んだ部分）。
【００４１】
動作情報抽出部４０は、クロックの印加に応じて変化するＦＦをスイッチングインスタンスとして抽出する。さらに、動作情報抽出部４０は、ＦＦから出力される値を入力するインスタンス（ＦＦが保持する値の変化に応じて変化するインスタンス）をスイッチングインスタンスとして抽出する。動作情報抽出部４０は、スイッチングインスタンスとテストパタンとを対応させて動作情報を生成する。
図８に、動作情報の一例を示す。ここでは、パタン番号はテストパタンの識別子であり、ＦＦ１、ＩＮＳＴ１などは、インスタンスである。
【００４２】
図９は、クリティカルパス情報の一例を示す図である。この例では、クリティカルパス上のインスタンスとして、ＦＦ１、ＩＮＳＴ１、ＩＮＳＴ２、ＩＮＳＴ３、ＦＦ２である場合を示している。クリティカルパス情報は、設計者によって生成される。本実施形態では、影響インスタンス抽出部５０は、クリティカルパス情報を参照して、クリティカルパス上のインスタンスを抽出する。
【００４３】
影響インスタンス抽出部５０は、影響インスタンス情報を生成し、生成した影響インスタンス情報を影響インスタンス情報記憶部１５０へ記録する。影響インスタンス情報は、パス上インスタンスより先に遷移するインスタンスを抽出した情報である。影響インスタンス抽出部５０は、リージョン情報、インスタンス情報、及びクリティカル情報を使用して、影響インスタンスを抽出する。
【００４４】
具体的には、影響インスタンス抽出部５０は、リージョン情報を参照して、パス上インスタンスが存在するリージョンに配置されたインスタンス（以下、特定のリージョンに配置されたインスタンスを「リージョンインスタンス」ともいう）から、パス上インスタンスより先に遷移するインスタンスを影響インスタンスとして抽出する。例えば、影響インスタンス抽出部５０は、インスタンス情報を参照して、パス上インスタンスより論理段数の小さいインスタンスを影響インスタンスとして抽出する。あるいは、パス上インスタンスより変化時刻の早いインスタンスを影響インスタンスとして抽出してもよい。そして、抽出した影響インスタンスを、パス上インスタンスと対応づけた影響インスタンス情報を生成する。
【００４５】
ここで、パス上インスタンスと影響インスタンスとの関係を説明する。図１０は、パス上インスタンスと影響インスタンスとの関係を説明する図である。符号ＰＦＲｎは、一つのリージョン（ブロック）を示し、符号Ｃｍは、一つのクリティカルパスを示すことを前提とし（ｎ、ｍは１以上の整数）、図１０では、リージョンＰＦＲ２とクリティカルパスＣ１とを示している。リージョンＰＦＲ２は、パス上インスタンスを含むリージョンの一例である。インスタンスＩＮＳＴ１〜ＩＮＳ４は、クリティカルパスＣｍ上に配置されるパス上インスタンス、インスタンスＰ１からＰ７は、リージョンＰＦＲｎ内に配置され、かつ、パス上インスタンスではないインスタンスである。
【００４６】
ここで、インスタンスＩＮＳＴ２を着目インスタンスとする場合、影響インスタンス抽出部５０は、インスタンスＩＮＳＴ２より先に遷移するインスタンスＰ１、Ｐ２、Ｐ３、すなわち、インスタンスＩＮＳＴ２より前時刻に変化するインスタンスＰ１、Ｐ２、Ｐ３を、影響インスタンスとして抽出する。図１０中、インスタンスＩＮＳＴ２より後時刻に変化するインスタンスＰ４〜Ｐ７は、影響インスタンスに該当しない。影響インスタンス抽出部５０は、抽出した影響インスタンスを影響インスタンスセットとする。以降、影響インスタンスセットを、ＩＩＳ（IMPACT INSTANCES SET）として表すこともある。例えば、図１０において、ＩＮＳＴ２の影響インスタンスセットを、IIS(INST2)={INST1, p1, p2, p3}と表す。
【００４７】
なお、図１０では、影響インスタンス抽出部５０は、リージョンＰＦＲ２内に配置され、インスタンスＩＮＳＴ２が遷移するより前に（先に）遷移するインスタンスを影響インスタンスとして抽出する例を説明した。しかしながら、影響インスタンス抽出部５０は、クリティカルパスＣ１から所定の距離内に配置されたインスタンスの中から、影響インスタンスを抽出してもよい。
【００４８】
また、リージョン情報は、リージョン分割部２０によって、レイアウト情報を用いて生成された情報であることから、影響インスタンス抽出部５０は、レイアウト情報とインスタンス情報とを使用して、影響インスタンスを抽出するといえる。具体的な動作は、図１５を用いて後述する。
【００４９】
指標計算部６０は、クリティカルパス上のインスタンスに与える電源ノイズの影響を示す指標を計算する。具体的には、指標計算部６０は、影響インスタンス情報と動作情報とを参照して、影響インスタンスの中から注目インスタンスを抽出し、リージョンインスタンスと注目インスタンスとを用いて指標を計算する。例えば、指標計算部６０は、リージョンインスタンスに対する注目インスタンスの割合を用いて指標を計算してもよい。また、指標計算部６０は、注目インスタンス及びリージョンインスタンスについて、ファンアウト数、インスタンスの個数、及び寄生容量のうちの少なくとも一つを用いて指標を計算してもよい。さらに、指標計算部６０は、所定の計算式を用いて、注目インスタンス及びリージョンインスタンスに基づいて指標を算出してもよい。このとき、指標計算部６０は、複数のパス上インスタンスそれぞれについて指標を算出し、算出した複数の指標の平均値を算出してもよい。
【００５０】
基準値算出部７０は、指標計算部６０が計算した指標と比較する基準値を、レイアウト情報と回路情報とを用いて算出する。なお、基準値算出部７０を備えることなく、予め算出した基準値を基準値比較部８０が保持する構成でもあってもよい。
基準値比較部８０は、指標計算部６０が計算した指標と基準値とを比較し、テストパタンの適否を判定し、判定結果を出力する。
【００５１】
なお、図３には明示していないが、テストパタン生成装置１ａは、上述した各構成要素の処理実行を制御・調整する制御部（制御機能）を備える。制御部は、以降で動作例において説明する各処理の工程を制御・調整する。
【００５２】
続いて、本実施形態のテストパタン生成装置１ａが実施するテストパタン判定処理の動作を説明する。例えば、テストパタン生成装置１ａは、設計者（利用者）から起動され、対象となる半導体装置を特定されることによって処理を開始する。
図１１は、実施形態１のテストパタン生成装置の動作例を示すフローチャートである。まず、テストパタン生成装置１ａ（制御部）は、テストパタンの判定を行う半導体集積回路に関する、レイアウト情報、テストパタン情報、回路情報、及びクリティカルパス情報を外部より取得し、自装置内の所定の記憶領域に記録する（Ｓ１１）。
【００５３】
続いて、インスタンス情報生成処理及びリージョン分割処理を実施する。インスタンス情報生成処理及びリージョン分割処理は、どちらを先に実施してもかまわないし、並列して実行してもかまわない。
図１２は、インスタンス情報生成処理の動作例を示すフローチャートである。インスタンス情報生成部１０ａは、レイアウト情報と回路情報とを所定の記録領域から読み出し、レイアウト情報に記載されている全インスタンスについて、インスタンス属性を取得する（Ｓ２１）。具体的には、クロック情報抽出部１１は、回路情報を参照して各インスタンスが使用するクロック（クロックの種類）を抽出する（Ｓ２２）。論理段数算出部１２は、回路情報を参照して、当該インスタンスの接続情報を用いて論理段数を算出する（Ｓ２３）。ファンアウト数算出部１３は、回路情報を参照して、当該インスタンスのファンアウト数を算出する（Ｓ２４）。インスタンス情報生成部１０ａは、全インスタンスそれぞれについて、ステップＳ２２からＳ２４までの処理を繰り返す（Ｓ２５）。インスタンス情報生成部１０ａは、取得したインスタンス属性を、インスタンスと対応させたインスタンス情報（例えば、図４）を生成し、インスタンス情報記憶部１１０へ記録する。
【００５４】
図１３は、リージョン分割処理の動作例を示すフローチャートである。リージョン分割部２０は、レイアウト情報を所定の記録領域から読み出し、レイアウト情報を使用して、リージョンの切り出しを行う（Ｓ３１）。例えば、図５に示すような複数のブロックに分割して複数のリージョンを生成する。次にリージョン分割部２０は、複数のリージョン配置されたインスタンスを抽出し、リージョン名とインスタンスとを対応づけたリージョン情報（例えば、図６）を生成し、リージョン情報記憶部１２０へ記録する（Ｓ３２）。
【００５５】
次に、テストパタン生成装置１ａは、テストパタン情報に含まれるテストパタンそれぞれについて、テストパタンの適否を判定する処理を行う（Ｓ１３からＳ１８）。まず、動作情報抽出部４０は、テストパタン情報と回路情報とを参照して、動作情報を抽出する（Ｓ１３）。具体的には、図７、８を用いて説明した処理を行う。
【００５６】
次に、指標計算処理を行う（Ｓ１５）。図１４は、指標計算処理の動作例を示すフローチャートである。まず、影響インスタンス抽出部５０は、影響インスタンス抽出処理を行う（Ｓ４１）。影響インスタンス抽出処理の詳細を、図１５を用いて説明する。図１５は、影響インスタンス抽出処理の動作例を示すフローチャートである。影響インスタンス抽出部５０は、クリティカルパス情報記憶部１３０からクリティカル情報を読み出し、クリティカル情報を参照して、パス上インスタンス、すなわち、クリティカルパス上に配置されたインスタンスを抽出する（Ｓ５１）。そして、影響インスタンス抽出部５０は、抽出したパス上インスタンスを保持する（特定する）パス上インスタンス情報を生成し、任意の記憶領域に記憶する。例えば、影響インスタンス情報記憶部１５０を使用してもよい。
【００５７】
次に、影響インスタンス抽出部５０は、抽出したパス上インスタンスそれぞれについて、ステップＳ５３からステップＳ６０までの処理を実施する（Ｓ５２、Ｓ６１）。ここでは、複数のパス上インスタンスのうち、論理段数の小さいインスタンスから処理を順に処理することを前提とする。
【００５８】
影響インスタンス抽出部５０は、リージョン情報記憶部１２０に記録されたリージョン情報を参照して、パス上インスタンスのリージョン名を抽出する（Ｓ５３）。そして、影響インスタンス抽出部５０は、リージョン情報を参照して、抽出したリージョン名のリージョンに配置されるインスタンスを抽出し、抽出したインスタンスをパス上インスタンスと対応づけたリージョン内インスタンス情報を生成し、任意の記憶領域に記憶する（Ｓ５４）。例えば、ここでは影響インスタンス情報記憶部１５０を使用してもよい。
【００５９】
次に、影響インスタンス抽出部５０は、リージョン内インスタンス情報に含まれるリージョンインスタンスそれぞれについて、ステップＳ５６からステップＳ５８までの処理を実施する（Ｓ５５、Ｓ５９）。影響インスタンス抽出部５０は、インスタンス情報記憶部１１０に記録されたインスタンス情報を参照して、パス上インスタンスとリージョンインスタンスとの論理段数を検索する（Ｓ５６）。なお、パス上インスタンスの論理段数は一度検索した後は、ステップＳ５６からステップＳ５８の間、検索した論理段数を保持していてもよい。そして、影響インスタンス抽出部５０は、パス上インスタンスの論理段数とリージョンインスタンスの論理段数とを比較する（Ｓ５６）。なお、図１５では、パス上インスタンスの論理段数を「OP_INST」と表示し、リージョンインスタンスの論理段数を「R_INST」と表示している。影響インスタンス抽出部５０は、パス上インスタンスの論理段数がリージョンインスタンスの論理段数より大きい場合（Ｓ５６でＹＥＳ）、当該リージョンインスタンスを影響インスタンスであると判定し、影響インスタンス情報へ追加する。このようにして、影響インスタンス抽出部５０は、リージョンインスタンスの中から抽出した影響インスタンスを、パス上インスタンスと対応づけて影響インスタンス情報を生成する。
【００６０】
なお、本実施形態では、パス上インスタンスとリージョンインスタンスとの論理段数を比較することによって、影響インスタンスであるか否かを判定しているが、この他の要素を用いて判定してもよい。パス上インスタンスより前時刻に遷移する（変化する）インスタンスを検出可能な要素であれば、用いることができる。
【００６１】
影響インスタンス抽出部５０は、全リージョンインスタンスについてステップＳ５６からステップＳ５８の処理を終了すると（Ｓ５９）、着目するパス上インスタンスの論理段数を１つ加算し、次のパス上インスタンスの処理を開始する（Ｓ６０）。影響インスタンス抽出部５０は、パス上インスタンスの全部のインスタンスについて、ステップＳ５３以降の処理を繰り返し、影響インスタンス情報を生成する。影響インスタンス抽出部５０は、生成した影響インスタンス情報を影響インスタンス情報記憶部１５０へ記録する。どのタイミングで影響インスタンス情報を影響インスタンス情報記憶部１５０へ記録するかは、設計事項であり、例えば、リージョンインスタンス毎でもよいし、全パス上インスタンスの処理が終了してからでもよい。
【００６２】
影響インスタンス抽出部５０は、影響インスタンス抽出処理が終了すると、ステップＳ５１において生成したパス上インスタンス情報と、ステップＳ５４において生成したリージョンインスタンス情報とを指標計算部６０へ通知する。影響インスタンス抽出部５０は、影響インスタンス情報記憶部１５０にパス上インスタンス情報及びリージョンインスタンス情報を記録することによって、指標計算部６０が参照できるようにしてもよい。
【００６３】
指標計算部６０は、パス上インスタンス情報を参照して、全パス上インスタンスについて、ステップＳ４３、ステップＳ４４の処理を行う（Ｓ４２、Ｓ４５）。このとき、指標計算部６０は、インスタンス情報記憶部１１０に記録されたインスタンス情報、動作情報記憶部１４０に記録された動作情報、及びリージョンインスタンス情報を参照して指標を計算する。指標計算部６０は、パス上インスタンスについて指標を計算し（Ｓ４３）、計算した指標を既に計算した指標と合算してトータル指標を計算する（Ｓ４４）。トータル指標は、一つのリージョンに配置されたパス上インスタンスそれぞれの指標を合算した値である。指標計算部６０は、全パス上インスタンスについてＳ４３、Ｓ４４の処理が終了すると（Ｓ４５）、指標を平均化する（Ｓ４６）。
【００６４】
ここで指標の算出方法について、式１，２、及び図１６を用いて説明する。式１，２は、インスタンスのファンアウト数を、電源ノイズの発生を予測する一つの要素として用いて指標を計算する例を示す。本実施形態では、式１に従ってパス上インスタンスの指標を計算し（Ｓ４３）、式２の計算式に従って指標を平均化する（Ｓ４６）。
【００６５】
【数１】
2011163897.tif 000003
【００６６】
なお、式１、２中、ｉは、インスタンスを識別する変数であり、１からパス上インスタンス数の範囲の整数値をとる。ｊは、リージョンを識別する変数であり、１から全リージョン数の範囲の整数値をとる。ＩＦ（ＩＮＳＴ  ｉ）は、ｉ番目のインスタンスの指標である。ＩＦ（Ｃｋ）は、クリティカルパスＣｋ（ｋは、１以上の整数）の論理段数一段あたりの指標（ＩＦ値）である。また、ＯＮ−ＰＡＴＨとは、クリティカルパス上を意味し、ＯＮ−ＰＡＴＨ  ＩＮＳＴＡＮＣＥＳは、クリティカルパス上のインスタンスである。ＩＩＳは、影響インスタンスセットである。
【００６７】
各インスタンスの指標（ＩＦ値）は、分母に、全リージョンインスタンスのインスタンス属性を積算した値を用い、分子に、注目インスタンスのインスタンス属性を積算した値を用いる。具体的には、式１は、各リージョンインスタンスのファンアウト数に１を加算した値を、全リージョンインスタンスについて合計した値を分母とする。また、各注目インスタンスのファンアウト数に１を加算した値を、全注目インスタンスについて合計した値を分子とする。
【００６８】
式１に従ってパス上インスタンスの指標を計算するにあたって、指標計算部６０は、まず、リージョンインスタンス情報を参照して、パス上インスタンスに対応づけられたリージョンインスタンス情報を取得する。分母の値の計算において、指標計算部６０は、リージョンインスタンス情報に含まれるリージョンインスタンスそれぞれについて、インスタンス情報を参照してファンアウト数を取得する。指標計算部６０は、取得したファンアウト数を用いて分母の値を計算する。
【００６９】
分子の計算において、指標計算部６０は、影響インスタンス情報を参照して、パス上インスタンスの影響インスタンスを取得する。指標計算部６０は、動作情報を参照して、各影響インスタンスがスイッチングインスタンスである場合、当該影響インスタンスを注目インスタンスとして抽出する。指標計算部６０は、全影響インスタンス（IIS(INST i))のち注目インスタンスのファンアウト数を用いて分子の値を計算する。このようにして、指標計算部６０は、各インスタンスの指標を計算する。
【００７０】
図１６に、クリティカルパスＣｋのうち、リージョンＰＦＲ２に配置されたインスタンスを示す。指標計算部６０は、インスタンスＩＮＳＴ１、ＩＮＳＴ２、ＩＮＳＴ３それぞれについて、式１を用いて各インスタンスの指標ＩＦ（ＩＮＳＴ１）、ＩＦ（ＩＮＳＴ２）、ＩＦ（ＩＮＳＴ３）を計算する（Ｓ４３）。そして、指標計算部６０は、順次指標を加算してトータル指標を計算する（Ｓ４４）。具体的には、指標計算部６０は、パス上インスタンスについて既に計算した指標と、新たに算出した指標とを合算する。これを全パス上インスタンスについて行う。図１６の例では、指標計算部６０は、指標ＩＦ（ＩＮＳＴ１）を計算すると、トータル指標を、指標ＩＦ（ＩＮＳＴ１）とする。指標計算部６０は、指標ＩＦ（ＩＮＳＴ３）を計算すると、前回計算したトータル指標へ指標ＩＦ（ＩＮＳＴ３）を加算し、トータル指標を指標ＩＦ（ＩＮＳＴ１）＋指標ＩＦ（ＩＮＳＴ２）＋指標ＩＦ（ＩＮＳＴ３）とする。
【００７１】
全パス上インスタンスの指標の計算が完了すると、指標計算部６０は、式２に従って、クリティカルバス上のインスタンス数を分母とし、トータル指標を分子として、指標を平均化する。
式２は、クリティカルパス上のインスタンスの数（PATH LENGTH (# OF ON-PATH INSTANCES）)を分母とする。また、式１に従って計算した値ＩＦ（INST i）をクリティカルパス上の全インスタンス（N_OPI = # OF ON-PATH INSTANCES ）について合計した値を分子とする。
指標計算部６０は、平均化した指標を基準値比較部８０に通知する。
【００７２】
基準値比較部８０は、平均化した指標を、基準値算出部７０が算出した基準値と比較する（Ｓ１６）。基準値より平均化した指標が大きい場合、基準値比較部８０は、当該テストパタンが適切でないと判断し、テストパタン識別子を一時的に保持する（Ｓ１７）。なお、基準値比較部８０は、テストパタンが適切でない箇所を検出可能な場合、検出した箇所を設計者に通知する、あるいは情報を記録するなどの処理を実施してもよい。全テストパタンの処理が終了すると、基準値比較部８０は、保持したテストパタン識別子を明示する判定結果を生成し、出力する。判定結果に含める情報は、設計者がその後の作業に必要な情報を含めることが可能である。例えば、計算した指標、使用した基準値などその後の作業を選択するうえで有効な情報を含めることが可能である。
【００７３】
設計者は、出力された判定結果に応じて、テストパタンの削除、テストパタンの再作成、あるいは半導体集積回路の設計変更等の作業を行う。この判定結果の出力するにより、設計者は誤テストを回避するテストパタンの生成を効率化することが可能になる。
【００７４】
ここで、電源ノイズ解析フローと本発明のフローとの関係について説明する。図１７は、基準値と指標との比較を、電源のノイズ解析と対応づけて説明する図である。右側に本発明のテストパタン生成装置１ａによって指標を算出し、算出した指標と基準値を比較するフローを示す。左側に電源ノイズ解析フローを示す。電源ノイズ解析フローでは、テストパタンを使用して、インスタンスのうち、保持する値の変化を抽出し（GATE-LEVEL SWICHING ACTIVITY）、ＩＲ−ＤＲＯＰを解析する。この解析では、CELL LIBRARY LAYOUTとPOWER-GRID PACKAGEの情報を取得し、これらの情報を使用してＩＲ−ＤＲＯＰを解析する。解析結果を用いて、ＩＲ−ＤＲＯＰ値を遅延値に変換する。遅延値とクリティカルパスとを用いて、ＳＴＡ（Static Timing Analysis：静的タイミング解析）の手法により解析し、クリティカルパスが、このテストパタンを動作させた時に、タイミング違反をおこさないかどうかを判定する。ＳＴＡは、パスの遅延値を算出する処理である。これらの手続が本願発明のテストパタン生成装置では、指標を算出し、指標を基準値と比較する手順に相当する。
【００７５】
基準値を算出する場合に、既知の半導体集積回路を用いてＳＴＡによる判定結果を取得する。判定結果と、同様のパスに対しての式１の指標の計算を行い、仮に設定した基準値と比較結果とを照らし合わせて、仮に設定した基準値の妥当性を判定する。図１８は、基準値０．７のときの判定結果例を示す図であり、図１９は、基準値０．８のときの判定結果例を示す図である。図１８に示すように、基準値を０．７と算出した場合、ＰＡＴＨ１、３では判定結果が一致し、基準値を適切と判断する。一方、ＰＡＴＨ２では、判定結果が一致しないため、基準値を適切でないと判断する。この結果、基準値算出部７０は、基準値として０．７を採用しない。また、図１９に示すように、基準値を０．８と算出した場合、ＰＡＴＨ１、２、及び３ともに判定結果が一致し、基準値を適切と判断する。この結果、基準値算出部７０は、基準値として０．８を採用する。このようにして、基準値算出部７０は、既知の手法による電源のノイズの解析結果を用いて基準値を算出する。
【００７６】
なお、図１６では、インスタンスのファンアウト数を用いて指標を計算する例を説明したが、他の要素を用いて指標を計算してもよい。例えば、インスタンスの出力ピンにつながるすべてのインスタンス数、インスタンスの寄生容量を用いて指標を計算することができる。
【００７７】
以上説明したように、本実施形態によれば、テストパタン生成装置１ａは、分割したリージョン単位でクリティカルパス上の各インスタンスに関して、遷移時刻が当該インスタンスより前となる他のインスタンスを、電源ノイズを与える可能性を有する影響インスタンスとして抽出する。そして、テストパタン生成装置１ａは、抽出した影響インスタンスの動作情報と、影響インスタンスに関する情報（インスタンス属性、例えば、ファンアウト数）を使用して指標を算出し、算出した指標を、あらかじめ算出した基準値と比較し、誤テストを回避することができるか否かを判断する。これにより、クリティカルパス上のインスタンスについて、電源ノイズによって引き起こされる遅延の影響で生じる誤テストを回避することができる。
【００７８】
また、誤テストを回避する効果が向上することによって、歩留まりの向上が期待できる。これは、誤テストとなる可能性が高いクリティカルパスと、クリティカルパス上のインスタンスの遷移時刻を考慮した指標を使用してテストパタンを判定し、判定結果に基づいてテストパタンを生成するからである。
さらに、誤テストを回避することによって、テストに要する時間を削減することができる。これは、誤テストが発生するクリティカルパスを対象に誤テストを回避するため、回避する必要のないテストパタンの削除と作り替えなど、過剰にテストパタンを削除することを抑制できるからである。
【００７９】
なお、図１１のステップＳ１７において、どのような情報を保持するかは設計事項であり、設計者に当該テストパタンが適切でないことを判定結果に示すことができる情報であればよい。また、図１１のステップＳ１９において、判定結果を出力しているが、テストパタン毎に判定結果を出力してもよい。さらに、判定結果に応じて設計者が処理する作業は上述したものに限られるわけではなく、テスト対象となる半導体集積回路に応じて処理が選択されるものであり、本発明においては具体的な言及をしない。
【００８０】
実施形態２．
実施形態２では、誤テストを回避するため、半導体集積回路のスイッチング確率を使用して動作情報を生成し、インスタンスの配置の適否を判定する例を説明する。具体的には、回路情報とインスタンス情報とを用いて動作情報を生成する。本実施形態では、テストパタン生成装置は、テストパタン情報を用いることなく、レイアウト情報、回路情報、及びクリティカル情報を使用して指標を計算し、計算した指標に応じて判定結果を出力する。実施形態２では、指標を用いて、クリティカルパス上のインスタンスが電源ノイズの影響を受けるか否かを、回路のレイアウト及びインスタンス属性を用いて判定する回路判定処理を説明する。
【００８１】
図２０は、本発明の実施形態２に係るテストパタン生成装置の構成例を示すブロック図である。図２０に示すテストパタン生成装置１ｂは、動作情報抽出部４０ｃ、動作情報記憶部１４０ｃ、指標計算部６０ｂ、基準値算出部７０ｂ、及び基準値比較部８０ｂの処理が、図３に示したテストパタン生成装置１ａと異なる。その他の構成要素は図３と同様である。
【００８２】
動作情報抽出部４０ｂは、回路情報とインスタンス情報とを使用して、インスタンスのスイッチング確率を定義する。動作情報抽出部４０ｂは、スイッチング確率を定義したインスタンスをスイッチングインスタンスとして動作情報を生成し、動作情報記憶部１４０ｂへ記録する。動作情報は、スイッチングインスタンスがテストパタンと対応づけられない点が異なる。
ここで、スイッチング確率は、インスタンスが変化するか否かの確率、すなわち、動作する確率を示す。スイッチング確率を定義する処理の一例としては次のように行うことができるが、これに限られず一般的に用いられている手法でスイッチング確率を定義することができる。
【００８３】
まず、動作情報抽出部４０ｂは、回路情報を参照して、回路情報に含まれるインスタンスのうち、フリップフロップを抽出する。また、動作情報抽出部４０ｂは、インスタンス情報を参照して、抽出したフリップフロップのクロック情報を取得する。動作情報抽出部４０ｂは、クロックの印加（クロック周期）に応じてフリップフロップが保持する値が変化すると仮定して、任意の期間におけるスイッチング確率を算出する。そして、動作情報抽出部４０ｂは、回路情報を参照して、フリップフロップに接続される（フリップフロップの出力を入力する）インスタンスがフリップフロップの変化に応じて変化するため、フリップフロップと同じスイッチング確率であると仮定する。動作情報抽出部４０ｂは、このようにして、各インスタンスのスイッチング確率を定義する。
【００８４】
指標計算部６０ｂは、動作情報、インスタンス情報、及び影響インスタンス情報を使用して指標を計算する。指標計算部６０ｂは、スイッチング確率そのもの（１以下の値）を利用して、式３を用いてＩＦの値を計算する。式３は、実施形態１で示した式１の"FOR ALL SWITCHING INSTANCES IN IIS"を、"ALL INSTANCES IN IIS"へ変更した計算式である。指標の計算自体は、式１に替えて式３を用いる点を除いて、実施形態１と同様である。上述したように、指標計算部６０ｂが参照する動作情報の内容が異なる。指標計算部６０ｂは、実施形態１と同様の手法を用いて、注目インスタンスを抽出することができる。また、指標計算部６０ｂは、式３を用いて指標を計算することができる。
【００８５】
【数２】
2011163897.tif 000004
【００８６】
実施形態１では、図１７に示すように、テストパタンを使ってＩＲｄｒｏｐ解析する。これに対して、実施形態２では、ＩＦの算出と同様に、クロックの情報を与えて算出したスイッチング確率に基づき、ＩＲｄｒｏｐの解析を行う点が異なる。
具体的には、基準値算出部７０ｂは、誤動作が生じる確率が既知である半導体集積回路を用いてシミュレーションし、スイッチング確率を用いた場合の基準値を算出する点が、実施形態１と異なる。また、基準値比較部８０ｂは、あらかじめ、算出された基準値と計算した指標とを比較する。基準値比較部８０ｂは、指標が基準値を超えるようであれば、判定結果に含める情報を収集するが、収集する情報が実施形態１と異なる。例えば、基準値比較部８０ｂは、クリティカルパス上の各インスタンスに関して、電源のノイズの影響を与える可能性があるインスタンスを抽出する。
このように、指標計算部６０ｂ、基準値算出部７０ｂ、及び基準値比較部８０ｂは、使用する情報が実施形態１と異なるが、基本的な処理については実施形態１と同様である。
【００８７】
図２１は、実施形態２のテストパタン生成処理の動作例を示すフローチャートである。実施形態１で説明した図１１動作例では、各テストパタンに対して誤テスト回避可能か否かを判断していた。本実施形態では、テストパタン生成装置１ｂは、各テストパタンを考慮することなく、半導体集積回路を構成する各インスタンスについて、レイアウトと接続関係とを用いて指標を計算する。図２１において、図１１と同じステップの番号をつけた処理は、実施形態１と同様である。
【００８８】
ステップＳ８１では、テストパタン情報を取得しない点を除いて、図１１のステップＳ１１と同様である。
動作情報抽出部４０ｂは、半導体集積回路を構成する各インスタンスについて、スイッチング確率を定義し、動作情報を生成する（Ｓ８２）。また、ステップＳ８３からステップＳ８４までは、上述した各構成要素について説明した処理を実施する。基準値比較部８０ｂは、ステップＳ８４の処理によって、半導体集積回路が通常動作時に誤動作を回避することができるか否かを判断する。また、計算した指標が基準値より大きい場合（Ｓ８４でＹＥＳ）、基準値比較部８０ｂは、設計者に通知したい情報を収集する（Ｓ８５）。そして、基準値比較部８０ｂは、判定結果を生成し、出力する（Ｓ８６）。
【００８９】
ここで、判定結果は、回路判定処理をした結果であり、指標が基準値より大きいか否かと、ステップＳ８５で収集した情報を収集した場合には収集した情報とを含むものである。設計者は、判定結果に応じて、クリティカルパス上の各インスタンスに関して、電源ノイズの影響を与える可能性がある影響インスタンスを、別のリージョンに配置変更するなど、半導体集積回路の設計を変更（耐電源ノイズ設計）することができる。これにより、クリティカルパスが含まれるリージョンに配置される影響インスタンスを減らし、指標を基準値以下の値へ変更する。その結果、半導体集積回路の誤動作を回避することが可能になる。
【００９０】
実施形態３．
実施形態３では、実施形態１のテストパタン判定処理と、実施形態２の回路判定処理とを有するテストパタン生成装置の一態様を説明する。
図２２は、本発明の実施形態３に係るテストパタン生成装置の構成例を示すブロック図である。テストパタン生成装置１ｃは、機能選択部９を備える。その他の構成要素は、図３と図２０で説明した機能を有する構成要素である。
【００９１】
機能選択部９は、機能選択情報を外部から受け付け、テストパタン判定処理と回路判定処理とのいずれかを選択し、動作情報抽出部４０ｃ、指標計算部６０ｃ、基準値算出部７０ｃ、及び基準値比較部８０ｃへ通知する。機能選択部９は、例えば選択信号によって通知する。
【００９２】
動作情報抽出部４０ｃは、機能選択部９から通知された選択信号に応じて、生成する動作情報を選択する。具体的には、動作情報抽出部４０ｃは、選択信号がテストパタン判定処理を示す場合（例えば、ＬＯＷ）、実施形態１で説明した処理を実施し、選択信号が回路判定処理を示す場合（例えば、ＨＩＧＨ）、実施形態２で説明した処理を実施する。
【００９３】
同様に、指標計算部６０ｃ、基準値算出部７０ｃ、及び基準値比較部８０ｃも、選択信号に応じて処理を実施する。
なお、図２２において、機能選択部９から指標計算部６０ｃと基準値比較部８０ｃへ制御信号が入力されているが（一点鎖線で示した部分）、動作情報内に機能選択情報を含めてもよい。この場合、指標計算部６０ｃは、動作情報に基づいて選択された機能を判断する。例えば、動作情報は、図８と同様の構成を有する場合、予め設定されたテスト番号である場合に回路判定処理であることを判断できるようにしてもよい。指標計算部６０ｃは、予め設定されたテスト番号を記憶していればよい。
【００９４】
図２３は、実施形態３のテストパタン生成装置の動作例を示すフローチャートである。図１１と同じステップ番号をつけた処理は、実施形態１と同様である。
ステップＳ９１では、実施形態１の処理に加え、機能選択部９は、外部から機能選択情報を取得する。例えば、テストパタン生成装置１ｃ（機能選択部９）は、設計者がテストパタン判定処理と回路選択処理とを選択する画面を提供し、設計者が入力した情報によって、機能選択情報を取得する。
【００９５】
また、機能選択部９は、取得した機能選択情報に基づいて選択信号を出力する。そして、選択信号に応じて（Ｓ９２）、テストパタン生成装置１ｃは、テストパタン判定処理（Ｓ９３）と回路判定処理（Ｓ９４）とのいずれかを実施する。
テストパタン判定処理（Ｓ９３）は、図１１に示したステップＳ１３からステップＳ１９までの処理である。また、回路判定処理（Ｓ９４）は、図２１に示したステップＳ８２からステップＳ８５までの処理である。
【００９６】
設計者は、テストパタン生成装置１ｃから出力される判定結果に応じて、テストパタンの削除、テストパタンの再作成、半導体集積回路の設計を変更（耐電源ノイズ設計）などの処理を実施する。また、設計者は、判定結果に応じて、テストパタン生成装置１ｃに実施させる機能を変更し、異なる機能の判定結果を取得した後、実施する処理を選択することもできる。
【００９７】
なお、上記実施形態では、テストパタン判定処理と回路判定処理とのいずれかを行う例を説明したが、機能選択情報として、双方とも実施するモードを設定してもよい。この場合、二つの処理を続けて実施するように図２３に示す手順を変更すればよい。
【００９８】
その他の実施形態
実施形態１では、半導体集積回路のレイアウトをリージョン分割し、複数のリージョン毎に指標を算出する場合を説明した。しかしながら、リージョン分割処理を実施しないで指標を算出することも可能である。この場合、クリティカルパスの着目インスタンスに対して、任意の領域の範囲を設定し、設定下範囲内に配置された注目インスタンスを抽出する方法をとることもできる。例えば、図１５のステップＳ５３では、パス上インスタンスのリージョン名を抽出して、リージョン内に配置されるインスタンスをリージョンインスタンスとして抽出する。この処理について、パス上インスタンスに対して任意の距離に配置されたインスタンスを、レイアウト情報を参照することによって抽出する。抽出したインスタンスを図１６におけるリージョンインスタンスの代わりに用いてもよい。
【００９９】
以上のように、本発明に係る実施形態のいずれかによれば、クリティカルパス上のインスタンスの接続関係、すなわち、クリティカルパスの遅延関係を考慮して、誤テストを回避するテストパタンを生成することができる。また、指標を算出する手法を用いることによって、テストパタン生成の手続を簡素化し、効率よくテストパタンを生成することができる。
【０１００】
クリティカルパス上のインスタンスは、電源ノイズの影響により動作が遅延し、遅延が増加することによって誤動作が生じる。また、テスト時の各インスタンスのＩＲドロップは、各時刻で異なる。そこで、本発明の各実施形態では、誤テストの発生率が高いクリティカルパスと、クリティカル上のインスタンスの遷移時刻を考慮した指標を用いる。この指標によって、電源ノイズに起因する誤テストの回避し、歩留まり向上させることができる。また、本発明の各実施形態では、誤動作の発生が深刻な影響を与えるクリティカルパスを対象に誤テスト回避を行う。このため、回避する必要がないようなテストパタンの削除など、過剰な誤テストの回避を抑制する。これにより、テストパタンの生成に要する時間を削減することができる。
【０１０１】
なお、本発明は上記に示す実施形態に限定されるものではない。本発明の範囲において、上記実施形態の各要素を、当業者であれば容易に考えうる内容に変更、追加、変換することが可能である。
【符号の説明】
【０１０２】
１、１ａ  テストパタン生成装置
２−１、２−２  コンピュータ装置
３  ネットワーク
４  サーバ
５  記録媒体
１０、１０ａ  インスタンス情報生成部
１１  クロック情報抽出部
１２  論理段数算出部
１３  ファンアウト数算出部
２０  リージョン分割部
４０、４０ｂ、４０ｃ  動作情報抽出部
５０  影響インスタンス抽出部
６０、６０ｂ、６０ｃ  指標計算部
７０、７０ｂ、７０ｃ  基準値算出部
８０、８０ｂ、８０ｃ  基準値比較部
９０  判定部
９１、９１ｂ、９１ｃ  比較判定部
１００  記憶領域
１１０  インスタンス情報記憶部
１２０  リージョン情報記憶部
１３０  クリティカルパス情報記憶部
１４０、１４０ｂ、１４０ｃ  動作情報記憶部
１５０  影響インスタンス情報記憶部
【図１】
2011163897.tif 000005
【図２】
2011163897.tif 000006
【図３】
2011163897.tif 000007
【図４】
2011163897.tif 000008
【図５】
2011163897.tif 000009
【図６】
2011163897.tif 000010
【図７】
2011163897.tif 000011
【図８】
2011163897.tif 000012
【図９】
2011163897.tif 000013
【図１０】
2011163897.tif 000014
【図１１】
2011163897.tif 000015
【図１２】
2011163897.tif 000016
【図１３】
2011163897.tif 000017
【図１４】
2011163897.tif 000018
【図１５】
2011163897.tif 000019
【図１６】
2011163897.tif 000020
【図１７】
2011163897.tif 000021
【図１８】
2011163897.tif 000022
【図１９】
2011163897.tif 000023
【図２０】
2011163897.tif 000024
【図２１】
2011163897.tif 000025
【図２２】
2011163897.tif 000026
【図２３】
2011163897.tif 000027
【図２４】
2011163897.tif 000028