"半導体装置の故障箇所を推定する故障診断装置が実行する故障診断方法であって、前記半導体装置は、テスト対象の回路にテストパターンを供給し前記テスト対象の回路の各点の信号レベルを保持する複数のスキャンチェーンと、前記複数のスキャンチェーンの出力信号を前記スキャンチェーンの幅方向に圧縮する第1の圧縮器と、前記複数のスキャンチェーンの出力信号を前記スキャンチェーンの長さ方向に圧縮する第2の圧縮器とを含み、記憶装置には、前記第1の圧縮器及び前記第2の圧縮器の出力信号をテスト装置にて観測した第1の観測結果及び第2の観測結果がそれぞれ記憶され、前記故障診断装置は、故障仮定箇所に縮退故障を設定して前記第1の圧縮器をシミュレーションし、前記第1の圧縮器のシミュレーション結果と前記第1の観測結果とを比較した結果に基づいて前記第2の圧縮器の入力信号を設定して前記第2の圧縮器をシミュレーションし、前記第2の圧縮器のシミュレーション結果と、前記第2の観測結果とに基づいて、前記故障仮定箇所のスコアを算出する、ことを特徴とする故障診断方法。前記故障診断装置は、テストパターンにより前記テスト対象の回路と前記複数のスキャンチェーンを論理シミュレーションし、前記論理シミュレーションによる故障仮定箇所の信号値に応じて前記故障仮定箇所に縮退故障を設定して前記テスト対象の回路と前記複数のスキャンチェーンを故障シミュレーションし、前記第1の圧縮器のシミュレーション結果と前記第1の観測結果とを比較した結果に基づいて、前記シミュレーション結果と前記第1の観測結果とが一致する場合に前記故障シミュレーションの結果を前記第2の圧縮器の入力値に設定し、前記シミュレーション結果と前記第1の観測結果とが一致しない場合に前記論理シミュレーションの結果を前記第2の圧縮器の入力値に設定する、ことを特徴とする請求項1記載の故障診断方法。前記故障診断装置は、前記故障シミュレーションの結果に基づいて前記スキャンチェーンまで故障が伝搬したか否かを判定し、前記故障が前記スキャンチェーンまで伝搬しない場合、前記論理シミュレーションの結果を前記第2の圧縮器の入力値に設定し、前記故障が前記スキャンチェーンまで伝搬した場合、前記故障シミュレーションの結果を前記第1の圧縮器の入力値に設定して前記第1の圧縮器をシミュレーションする、ことを特徴とする請求項2記載の故障診断方法。半導体装置の故障箇所を推定する故障診断装置であって、前記半導体装置は、テスト対象の回路にテストパターンを供給し前記テスト対象の回路の各点の信号レベルを保持する複数のスキャンチェーンと、前記複数のスキャンチェーンの出力信号を前記スキャンチェーンの幅方向に圧縮する第1の圧縮器と、前記複数のスキャンチェーンの出力信号を前記スキャンチェーンの長さ方向に圧縮する第2の圧縮器とを含み、記憶装置には、前記第1の圧縮器及び前記第2の圧縮器の出力信号をテスト装置にて観測した第1の観測結果及び第2の観測結果がそれぞれ記憶され、故障仮定箇所に縮退故障を設定して前記第1の圧縮器をシミュレーションし、前記第1の圧縮器のシミュレーション結果と前記第1の観測結果とを比較した結果に基づいて前記第2の圧縮器の入力信号を設定して前記第2の圧縮器をシミュレーションし、前記第2の圧縮器のシミュレーション結果と、前記第2の観測結果とに基づいて、前記故障仮定箇所のスコアを算出する、ことを特徴とする故障診断装置。半導体装置をテストするテストシステムであって、前記半導体装置は、テスト対象の回路にテストパターンを供給し前記テスト対象の回路の各点の信号レベルを保持する複数のスキャンチェーンと、前記複数のスキャンチェーンの出力信号を前記スキャンチェーンの幅方向に圧縮する第1の圧縮器と、前記複数のスキャンチェーンの出力信号を前記スキャンチェーンの長さ方向に圧縮する第2の圧縮器とを含み、テストパターンを前記複数のスキャンチェーンを介して前記テスト対象の回路にシフトインさせ、前記テスト対象の回路の各点の信号レベルを前記複数のスキャンチェーンにキャプチャさせ、前記複数のスキャンチェーンから前記第1の圧縮器と前記第2の圧縮器へシフトアウトさせ、前記第1の圧縮器及び前記第2の圧縮器の出力信号を観測した第1の観測結果及び第2の観測結果をそれぞれ記憶装置に記憶するテスト装置と、前記半導体装置の回路情報と前記テストパターンに基づいて、故障仮定箇所に縮退故障を設定して前記第1の圧縮器をシミュレーションし、前記第1の圧縮器のシミュレーション結果と前記第1の観測結果とを比較した結果に基づいて前記第2の圧縮器の入力信号を設定して前記第2の圧縮器をシミュレーションし、前記第2の圧縮器のシミュレーション結果と、前記第2の観測結果とに基づいて、前記故障仮定箇所のスコアを算出する故障診断装置と、を含むテストシステム。半導体装置の故障箇所を推定する故障診断装置が実行するプログラムであって、前記半導体装置は、テスト対象の回路にテストパターンを供給し前記テスト対象の回路の各点の信号レベルを保持する複数のスキャンチェーンと、前記複数のスキャンチェーンの出力信号を前記スキャンチェーンの幅方向に圧縮する第1の圧縮器と、前記複数のスキャンチェーンの出力信号を前記スキャンチェーンの長さ方向に圧縮する第2の圧縮器とを含み、記憶装置には、前記第1の圧縮器及び前記第2の圧縮器の出力信号をテスト装置にて観測した第1の観測結果及び第2の観測結果がそれぞれ記憶され、前記故障診断装置が実行するプログラムは、故障仮定箇所に縮退故障を設定して前記第1の圧縮器をシミュレーションするステップと、前記第1の圧縮器のシミュレーション結果と前記第1の観測結果とを比較した結果に基づいて前記第2の圧縮器の入力信号を設定して前記第2の圧縮器をシミュレーションするステップ、前記第2の圧縮器のシミュレーション結果と、前記第2の観測結果とに基づいて、前記故障仮定箇所のスコアを算出するステップと、を含む、プログラム。故障として、例えばゲート回路に信号を供給する配線にオープン故障が生じた場合、そのゲート回路の入力に接続された配線は、隣接する配線との間のカップリング容量によって、隣接配線によって伝達される信号の影響を受ける。このような故障は、隣接配線の信号値によって、0縮退故障として観測される場合と、1縮退故障として観測される場合がある。圧縮器を用いた自己テスト回路の場合、故障が単一の外部観測点のみに伝達する故障の場合、故障箇所の候補数が増加する。例えば、スキャンフリップフロップのデータ端子に接続される配線にオープン故障が生じた場合、そのオープン故障が生じたスキャンフリップフロップと同じ段の全てのスキャンフリップフロップのデータ端子に接続された配線が故障箇所の候補となる。このように、自己テスト回路に含まれる圧縮器は、複数のスキャンチェーンの出力信号を圧縮するため、圧縮器の出力信号に基づいて故障を診断した場合、故障の状態によっては故障箇所と推定する箇所が多くなる、つまり推定精度が低下する場合があった。本発明の一観点によれば、半導体装置は、テスト対象の回路にテストパターンを供給し前記テスト対象の回路の各点の信号レベルを保持する複数のスキャンチェーンと、前記複数のスキャンチェーンの出力信号を前記スキャンチェーンの幅方向に圧縮する第1の圧縮器と、前記複数のスキャンチェーンの出力信号を前記スキャンチェーンの長さ方向に圧縮する第2の圧縮器とを含み、記憶装置には、前記第1の圧縮器及び前記第2の圧縮器の出力信号をテスト装置にて観測した第1の観測結果及び第2の観測結果がそれぞれ記憶され、故障診断装置は、故障仮定箇所に縮退故障を設定して第1の圧縮器をシミュレーションし、前記第1の圧縮器のシミュレーション結果と前記第1の観測結果とを比較した結果に基づいて第2の圧縮器の入力信号を設定して前記第2の圧縮器をシミュレーションし、前記第2の圧縮器のシミュレーション結果と、前記第2の観測結果とに基づいて、前記故障仮定箇所のスコアを算出する。本発明の一観点によれば、故障箇所推定の精度低下を抑制することができる。以下、実施形態を添付図面に従って説明する。図1aに示すように、テストシステム10は、テスト対象の半導体装置20をテストするテスト装置11と、テスト装置11のテスト結果に基づいて半導体装置20の故障箇所を推定する故障診断装置12とを備えている。先ず、テスト対象の半導体装置20の構成を説明する。図1bに示すように、半導体装置20は、ロジック回路21と、ロジック回路21をテストするための自己テスト回路BISTBuiltinSelfTest回路22を備えている。自己テスト回路22は、展開器23と、複数図1bでは2つのスキャンチェーン24,25と、圧縮器26,27とを含む。展開器23は、テスト装置11からテスト信号TSが供給される。テスト信号TSは圧縮されたデータであり、展開器23は、テスト信号TSを展開し、各スキャンチェーン24,25に供給する。スキャンチェーン24は、直列的に接続された複数段図において3段のスキャンフリップフロップ以下、SFF24a,24b,24cを備える。同様に、スキャンチェーン25は、SFF25a,25b,25cを備える。各SFF24a~25cは、展開器23から供給されるテストパターンを保持する。ロジック回路21は、各SFF24a~25cに保持されたテストパターンに従って動作する。即ち、スキャンチェーン24,25は、展開器23から入力されるシリアルテストパターンを、ロジック回路21に供給する。また、各SFF24a~25cは、ロジック回路21の各観測箇所における信号レベルを保持する。スキャンチェーン24,25は、保持した信号レベルを、各SFF24a~25cの接続に従って転送する。即ち、スキャンチェーン24,25は、ロジック回路21の各観測点における信号レベルテスト応答を保持し、保持した信号レベルを圧縮器26,27に伝達する。スキャンチェーン24,25のSFF24a~25cにテストパターンを保持する動作をシフトインSHIFTINという。各SFF24a~25cにテスト応答を保持することを、キャプチャCaptureという。そして、各SFF24a~25cに保持した信号レベルテスト応答を転送出力する動作をシフトアウトSHIFTOUTという。なお、シフトインは、スキャンインScaninやロードLoadと呼ばれることがある。また、シフトアウトは、スキャンアウトScanoutやアンロードUnloadと呼ばれることがある。第1の圧縮器26は、例えば、排他的論理和回路EOR回路である。圧縮器26は、複数のスキャンチェーン24,25から出力される信号を1ビットの出力信号に圧縮し、圧縮後の信号D1を出力する。詳しくは、圧縮器26は、各スキャンチェーン24,25の各段のSFFに保持した信号を1ビットの信号に圧縮する。従って、スキャンチェーンの段数をm、スキャンチェーンの数をnとすると、自己テスト回路22は、ロジック回路21におけるm×n箇所の信号レベルテスト応答を保持する。なお、段数mは、複数のスキャンチェーンの段数の最大値となる。そして、圧縮器26は、m×n個の信号を、m個の信号に圧縮する。つまり、圧縮器26は、各スキャンチェーン24,25から同時に出力される2つの信号を1つの信号に圧縮する。このように、スキャンチェーンの幅方向に信号を圧縮する圧縮器を、空間圧縮回路と呼ぶ。第2の圧縮器27は、例えば、多入力線形帰還シフトレジスタMISRMultipleInputSignatureRegisterである。圧縮器27は、ロジック回路21におけるm×n個の信号を、n個の信号に圧縮する。つまり、圧縮器27は、複数のスキャンチェーン24,25に保持した信号を、スキャンチェーンに含まれるSFFの接続方向スキャンチェーンの長さ方向に圧縮する。このように、複数のスキャンチェーンの長さ方向に信号を圧縮する圧縮器を、時間圧縮回路又は時系列圧縮回路と呼ぶ。図1aに示すように、テスト装置11は、半導体装置20に対応するテストパターン13を入力する。テストパターン13は、出荷試験時にサイクル番号毎に半導体装置20を動作させるテスト信号のパターンと、そのパターンにより半導体装置20から出力されるであろう信号を示す期待値を含む。テスト装置11は、テストパターンを半導体装置20に供給する。そして、テスト装置11は、テストパターンに対応して半導体装置20の圧縮器26から出力されるテスト応答信号D1を観測し、観測結果、即ちテスト応答結果に応じてフェイル情報14を生成する。例えば、テスト装置11は、観測したテスト結果と期待値とを比較し、半導体装置20の良否を判定する。そして、テスト装置11は、テスト結果と期待値とが一致しない場合に半導体装置20が故障していると判定し、その判定結果と、半導体装置20に対する観測結果を含むフェイル情報14を生成する。また、テスト装置11は、テストパターンに応じて圧縮器26から出力される複数のテスト応答の観測後に、圧縮器27における圧縮結果シグネチャSignatureと呼ぶを観測する。そして、テスト装置11は、観測したシグネチャをフェイル情報14に格納する。テストパターン13には、複数のパターンが含まれている。テスト装置11は、複数のパターンを半導体装置20のスキャンチェーン24,25図1b参照にシフトインし、各スキャンチェーン24,25からシフトアウトされたデータをそれぞれ観測する。なお、テスト装置11は、1つのパターンに対するテスト応答をシフトアウトするときに、次のパターンをシフトインする。各スキャンチェーン24,25は、各SFF24a~24c,25a~25cに対して、シフト用のパルス信号例えばクロック信号に応答して、シフトイン及びシフトアウトを行う。即ち、図3に示すように、テスト装置11は、先ず、自己テスト回路22の初期化を行う。次いで、テスト装置11は、スキャンチェーン24,25の段数SFF24a~24c,25a~25cの数のパターンP1をシフトインSHIFTINと表記する。次いで、テスト装置11は、ロジック回路21を動作させ、ロジック回路21におけるパターンP1に対応するテスト応答を、各スキャンチェーン24,25にキャプチャCaptureと表記させる。次いで、テスト装置11は、キャプチャしたテスト応答をシフトアウトSHIFTOUTと表記させるとともに、次のパターンP2をシフトインする。そして、テスト装置11は、スキャンチェーン24,25の段数に対応する数のテスト応答、つまりパターンP1に対するテスト結果をシフトアウトさせ、各テスト応答を観測する。詳しくは、テスト装置11は、スキャンチェーン24,25の各SFF24a~24c,25a~25cにクロック信号を供給する。各SFF24a~24c,25a~25cは、クロック信号の各パルスに応答して、入力される信号を保持する。これにより、スキャンチェーン24,25は、保持したデータをシフトする。圧縮器26は、各スキャンチェーン24,25から出力される信号を、1ビットの信号に圧縮する。そして、テスト装置11は、クロック信号のパルス毎に、圧縮器26から出力される信号を観測する。同様にして、テスト装置11は、n個のパターンP1~Pnをシフトインさせる。テスト装置11は、n個目のパターンPnに対するテスト応答をキャプチャCaptureと表記させる。そして、テスト装置11は、テスト応答をシフトアウトさせ、各テスト応答を観測する。上記したように、テスト装置11は、全てのパターンP1~Pnに対応するテスト応答をシフトアウトさせて観測する。テスト装置11は、例えばパターンP1に対応するテスト応答のシフトアウトとパターンP2のシフトインのように、テスト応答のシフトアウトと次のパターンのシフトインとを同時に行うことで、半導体装置20に対するテスト期間の長期化を抑制している。次いで、テスト装置11は、圧縮器27における圧縮結果Signatureを観測する。上記したように、圧縮器27は、例えば多入力線形帰還シフトレジスタMISRであり、パルス信号例えばクロック信号に応答して圧縮結果を出力する。テスト装置11は、スキャンチェーンの本数分のパルスを圧縮器27に供給し、各パルスに応答して圧縮器27から出力される圧縮結果SignatureOUTと表記を観測する。このように、テスト装置11は、全てのパターンP1~Pnに対応するテスト応答を観測した後に、そのテスト応答の圧縮結果Signatureを観測することで、テストパターン長の増加を最小限に抑えることができる。故障診断装置12は、テストパターン13と、フェイル情報14と、半導体装置20の回路情報ネットリスト15とを入力する。故障診断装置12は、半導体装置20の故障仮定箇所に縮退故障を設定し、シミュレーションを実施する。故障診断装置12は、シミュレーションにより得た圧縮器26の出力信号と、テスト装置11により観測した圧縮器26の出力信号とを比較し、その比較結果に応じて圧縮器27の入力信号を設定してシミュレーションを実施する。そして、故障診断装置12は、シミュレーションにより得た圧縮器27の出力信号と、テスト装置11により観測した圧縮器27の出力信号に基づいて、故障仮定箇所のスコアを算出する。故障診断装置12は、テストパターン13を読み込み、半導体装置20のロジック回路21とスキャンチェーン24,25の各SFF24a~24c,25a~25cの論理シミュレーションを行う。そして、故障診断装置12は、故障仮定箇所の信号レベルに応じて、0縮退故障又は1縮退故障を故障仮定箇所に設定する。また、故障診断装置12は、縮退故障を設定して故障シミュレーションを実施した結果、故障がSFF24a~24c,25a~25cまで伝搬しない場合、論理シミュレーションの結果における各SFF24a~24c,25a~25cの信号レベルを圧縮器27の入力に採用する。一方、故障診断装置12は、故障がSFF24a~24c,25a~25cまで伝搬した場合、故障シミュレーションの結果におけるSFF24a~24c,25a~25cの信号レベルを採用し、圧縮器26をシミュレーションする。そして、故障診断装置12は、シミュレーションにより得た圧縮器26の出力信号と、テスト装置11により観測した圧縮器26の出力信号とを比較する。上記のテスト装置11と故障診断装置12は、は、パーソナルコンピュータ、ワークステーション等の汎用的な目的で使用される計算機上で実行されるコンピュータプログラムにより実現する。図6に示すように、計算機は、処理装置CPU41、メモリ主記憶装置42、記憶装置補助記憶装置43、出力装置44、入力装置45、ドライブ装置46などから構成され、コンピュータプログラムを実行するものであり、コンピュータプログラムは、フレキシブルディスクやCD-ROM等の可搬型記録媒体48やネットワーク接続された他の計算機の主記憶装置や補助記憶装置等に格納されて提供される。提供されたコンピュータプログラムは、可搬型記録媒体48からドライブ装置46を介して記憶装置43にコピーまたはインストール後にメモリ42にロードされ実行される。また、ネットワーク接続された他の装置に格納されて提供された場合も、他の装置からネットワークを経由して受信後に記憶装置43にコピーまたはインストールされ、メモリ42にロードされ実行されるものである。記憶装置43には、図1に示すテストパターン13,フェイル情報14,回路情報15,故障候補16がファイルとして格納される。次に、圧縮器の構成例を説明する。図2に示すように、圧縮器26aは、例えば5入力の排他的論理和回路EOR回路であり、5つのスキャンチェーンの出力信号を圧縮する。同様に、圧縮器27aは、5つのスキャンチェーンから出力される信号を圧縮する。この圧縮器27aは、入力信号の数に対応する5つの排他的論理和回路EOR回路31a~31e及びスキャンフリップフロップSFF32a~32eを備えている。各EOR回路31a~31eの出力端子はSFF32a~32eのデータ入力端子Dに接続されている。各SFF32a~32dの出力端子Qは、次段のSFF32b~32eのスキャンイン端子SIと、各段に対応するEOR回路31b~31eの入力端子に接続されている。最終段のSFF32eの出力端子Qは、初段のEOR回路31aの入力端子に接続されている。初段のSFF32aのスキャンイン端子SIには、初期化のためのデータが入力される。尚、回路の初期化は、各SFFのリセット端子に供給する信号により行われても良い。そして、各SFF32a~32eのクロック端子にはクロック信号CLKが供給される。次に、故障診断装置12が実行する処理を説明する。故障診断装置12は、図4及び図5に示すフローチャートに従って、故障診断処理を実行する。図4に示すように、故障診断装置12は、先ず、回路情報15を入力するステップ51。次いで、故障診断装置12は、故障仮定箇所を1つ選択するステップ52。故障診断装置12は、半導体装置20で故障する可能性のある複数の箇所のうちの1つを選択する。半導体装置20で故障する可能性のある箇所は、例えば、テスト装置11のテスト結果に基づいて、回路情報15例えばネットリストをバックトレースすることで、仮定する故障箇所の候補が複数設定され、例えばフェイル情報14に格納されている。なお、バンクトレースは、故障診断装置が行うようにしてもよい。また、バックトレースを行わずに故障する可能性のある箇所を設定するようにしてもよい。次いで、故障診断装置12は、テストパターン13に含まれる全てのパターン例えば、図3に示すシーケンス説明図では、n個のパターンに対する処理を終了したか否かを判定するステップ53。全てのパターンに対する処理を終了していないと判定した場合判定:NO、故障診断装置12は次のステップ54に進む。次いで、故障診断装置12は、テストパターン13に含まれる1つのパターンを読み込むステップ54。次いで、故障診断装置12は、読み込んだパターンで、テスト対象のロジック回路21とスキャンチェーン24,25の各SFF24a~24c,25a~25cを論理シミュレーションするステップ55。そして、故障診断装置12は、この論理シミュレーション結果の値を、第1のシミュレーション結果として記憶する。次いで、故障診断装置12は、論理シミュレーション結果に基づいて、選択した箇所における信号値が0か否かを判定するステップ56。論理シミュレーション結果の信号値が1判定:NOの場合、故障診断装置12は、ステップ57aにおいて、選択した箇所に、0縮退故障Stuckat0故障:SA0を埋め込む。一方、論理シミュレーション結果の信号値が0判定:YESの場合、故障診断装置12は、ステップ57bにおいて、選択した箇所に、1縮退故障Stuckat1故障:SA1を埋め込む。つまり、故障診断装置12は、論理シミュレーション結果に基づいて、そのシミュレーション結果と異なる縮退故障を、選択した箇所に仮定する。0縮退故障は、状態値信号レベルを0に固定する故障であり、期待値が1のときに観測値が0になることによって、故障と判定される。1縮退故障は、状態値信号レベルを1に固定する故障であり、期待値が0のときに観測値が1になることによって、故障と判定される。次いで、故障診断装置12は、テスト対象のロジック回路21とスキャンチェーン24,25の各SFF24a~24c,25a~25cを故障シミュレーションするステップ58。そして、故障診断装置12は、この故障シミュレーション結果の値を、第2のシミュレーション結果として記憶する。次いで、故障診断装置12は、ステップ58の故障シミュレーションにおいて、スキャンチェーン24,25のSFF24a~24c,25a~25cまで故障が伝搬したか否かを判定するステップ59。故障が伝搬しない場合NO、故障診断装置12は、ステップ62aに移行する。一方、故障が伝搬した場合YES、故障診断装置12は、ステップ60に移行する。次いで、故障診断装置12は、ステップ58の故障シミュレーションにおける各SFF24a~24c,25a~25cの信号値を用いて、空間圧縮タイプの圧縮器26をシミュレーションし、チップ外部端子での出力結果を得るステップ60。図1aに示すテスト装置11は、半導体装置20の外部端子と電気的に接続され、圧縮器26の出力信号レベルを観測する。従って、故障診断装置12は、故障シミュレーションにおける各SFF24a~24c,25a~25cの信号値に基づいて、圧縮器26から出力されるテスト応答をシミュレーションにより得る。次いで、故障診断装置12は、圧縮器26のシミュレーション結果SIM結果と表記と、テスト装置11による圧縮器26の観測結果とが一致するか否かを判定するステップ61。即ち、故障診断装置12は、ステップ54において読み込んだパターンに対応するテスト応答テスト装置11の観測結果を、フェイル情報14から読み込む。そして、故障診断装置12は、読み込んだテスト応答と、ステップ60におけるシミュレーションにより得られた信号レベルと比較し、テスト応答とシミュレーション結果とが一致するか否かを判定する。故障診断装置12は、シミュレーション結果と観測結果とが一致しない場合NOにステップ62aに移行し、シミュレーション結果と観測結果とが一致する場合YESにステップ62bに移行する。ステップ62aにおいて、故障診断装置12は、圧縮器27の入力値として、上記第1のシミュレーション結果Aを採用する。一方、ステップ62bにおいて、故障診断装置12は、圧縮器27の入力値として、上記第2のシミュレーション結果Bを採用する。つまり、故障診断装置12は、観測結果とシミュレーション結果とが一致しない場合に、論理シミュレーションにより得られた値Aを採用し、観測結果とシミュレーション結果とが一致する場合に故障シミュレーションにより得られた値Bを採用する。次いで、故障診断装置12は、上記のステップ62a又はステップ62bにおいて採用した値を用いて、時間圧縮タイプの圧縮器27の状態をシミュレーションするステップ63。そして、故障診断装置12は、シミュレーション結果を、仮定した縮退故障に対応付けて記憶する。そして、故障診断装置12は、ステップ53に移行する。ステップ53において、故障診断装置12は、全てのパターンに対する処理を終了したと判定した場合判定:YES、図5に示すステップ64に移行する。次に、故障診断装置12は、圧縮器27のシミュレーション結果と、テスト装置11による圧縮器27の観測結果とに基づいて、仮定した縮退故障に対するスコアKCを算出するステップ64。時間圧縮タイプの圧縮器27に対するシミュレーション結果と一致したテスト装置11の観測結果の数をKm、圧縮器27に含まれるSFFの総数をKnとし、スコアKCを、KC=Km÷Kn×100により算出する。シミュレーション結果と観測結果とが全て一致する場合、一致数Kmは、圧縮器27に含まれるSFFの総数Knと等しく、スコアKCの値は100となる。従って、スコアKCの値が100に近いほど、仮定した縮退故障が真である可能性が高い。次いで、故障診断装置12は、全ての故障仮定箇所に対する処理を終了したか否かを判定するステップ67。全ての故障箇所に対する処理を終了していない場合判定:NO、故障診断装置12は、図4に示すステップ52に移行する。一方、全ての故障箇所に対する処理を終了した場合判定YES、故障診断装置12は、次のステップ66に移行する。次いで、故障診断装置12は、レポートを作成するステップ66。即ち、故障診断装置12は、全ての故障仮定箇所に対応するスコアKCを含む故障候補16を作成する。そして、故障診断装置12は、処理を終了する。次に、上記のように構成された故障診断装置12の作用を説明する。[ドライブ故障の説明]先ず、ドライブ故障について説明する。図7aに示すように、半導体装置20には複数本図において2本の配線71,72が形成され、信号は、配線71,72を介して伝達される。これらの配線71,72は、ネットリストに従って形成され、モジュールセルやパッド等の間を接続する。尚、図7aにおいて、信号は図の左側から右側に向って伝達されるものとする。例えば、配線71において、図7bに示すように、オープン故障が発生する、つまり断線する。この場合、配線71aから配線71bに信号が伝達されない。そして、この配線71bの信号レベルは、隣接ネット、即ち配線72との間のカップリング容量73により、配線72の信号レベルの影響を受ける。このように、他の配線の影響を受ける故障をドライブ故障と呼ぶ。なお、ドライブ故障は、複数の隣接ネットの影響を、同時に又は何れか一方を支配的に受ける故障、隣接ネットの信号値の組合せ=テストパターンによって振る舞いが変る場合、等を含む。上記したように、ドライブ故障は、隣接ネットの信号値により、0縮退故障として観測される場合と、1縮退故障として観測される場合がある。したがって、テスト装置11において観測されたフェイルが、故障仮定箇所を0縮退故障と仮定したシミュレーション結果と、故障仮定箇所を1縮退故障と仮定したシミュレーション結果の何れかで説明できる場合、この故障仮定箇所が図8bに示すドライブ故障モデルであると推定することができる。なお、図8aは、正常なドライブモデルを示す。つまり、セル81の出力端子はセル82の入力端子に接続され、セル83の出力端子は、セル84の入力端子に接続されている。これに対し、ドライブ故障モデルは、セル81の出力端子は未接続であり、セル82の入力端子はセル83の出力端子に接続されている。このようなドライブ故障モデルを故障仮定箇所に設定し、故障シミュレーションを実行する。従って、図9aに示すように、セル91,92間のオープン故障は、図9bに示すドライブ故障モデルを設定し、故障シミュレーションを実行する。その結果、図10に示すように、テスト装置により、ドライブネットの信号値と等しい観測結果テスタ故障と表記が得られる。尚、ドライブネットは、図9bに示す配線93を介して伝達される信号ネットである。図10に示すように、テスト装置の観測結果において、正常時の信号値が0であってテスタの信号値が1の場合、テスタにおいてフェイルFailしている。この状態は、故障シミュレーション結果故障SIM結果と表記の1縮退故障SA1を設定した結果1故障、TFSFにより説明される。故障シミュレーションは、設定した1縮退故障により、正常時と異なる信号値をシミュレーション結果として出力する。つまり、1縮退故障により説明される。同様に、テスト応答0Failは、0縮退故障SA0を設定した結果0故障、TFSFにより説明される。故障シミュレーションは、設定した0縮退故障により、正常時と異なる信号値をシミュレーション結果として出力する。つまり、0縮退故障により説明される。なお、図10中のTFSFは、テスタでフェイル、故障シミュレーションでフェイルTesterFailandSimulationFaultを示す。また、TPSFは、テスタでパス、故障シミュレーションでフェイルTesterPassandSimulationFaultを示す。故障診断処理において、上記の図10に示すドライブネットを特定することは、困難である。それは、故障仮定箇所毎に、半導体装置20のレイアウトデータから隣接ネットを抽出しなければならないため、隣接ネットの抽出に非常に多くの時間を要するからである。また、故障仮定箇所は、例えば2つのセルの間に設定されるため、その2つのセルが離間して配置されていると、その間の配線に対する隣接ネットが対象となるため、隣接ネットの抽出に非常に多くの時間を要する。また、故障仮定箇所として設定したネットの配線が、2つの配線に挟まれている場合、それら2つの隣接ネットの何れの信号が支配的か、又は2つの隣接ネットが共に影響するか、不明である。従って、ドライブネットを特定することは、実質的に不可能ということになる。また、複数の隣接ネットの影響を同時に受ける場合や、隣接ネットのテストパターンによって振る舞いが変る場合、不良箇所の特定前に、実際の不良チップで発生している物理現象の完全な予測は不可能である。[本実施形態の説明]本実施形態の故障診断装置12は、空間圧縮回路の故障シミュレーション結果と、空間圧縮回路のテスタ観測結果とに基づいて、圧縮前のテスト応答、つまりスキャンチェーン24,25の各SFF24a~24c,25a~25cに保持された信号レベルを推測する。故障診断装置12は、推測した信号レベルにより時間圧縮回路の状態をシミュレーションする。そして、故障診断装置12は、時間圧縮回路のシミュレーション結果に基づいて、故障箇所を推定する。詳述すると、不良箇所の信号は、例えばCMOS構造の半導体装置の場合に論理値0又はロン塵1に落ち着き、1つのテストパターンにおいて、0縮退故障,1縮退故障,故障なしのいずれかとして観測される。従って、故障診断装置12は、故障仮定箇所に縮退故障を設定した回路情報を故障シミュレーションした結果と、テスト装置11による観測結果とを比較する。そして、故障診断装置12は、故障シミュレーション結果と観測結果とが一致した場合、設定した縮退故障が活性化したと判定する。これにより、圧縮器27時間圧縮回路の故障シミュレーションにおいて、不確定な部分を無くすことができる。つまり、縮退故障を設定した故障シミュレーション結果とテスト装置11の観測結果が一致している場合、設定した縮退故障は、物理動作、つまり半導体装置20の動作と一致している。従って、半導体装置20では、テストパターンに対して、ドライブ故障が活性化している可能性が高いと判定することができる。このため、故障診断装置12は、圧縮器27の入力信号レベル、つまり、スキャンチェーン24,25の各SFF24a~24c,25a~25cに保持した信号レベルに、故障シミュレーションの結果を採用する。また、縮退故障を設定した故障シミュレーション結果とテスト装置11の観測結果が一致していない場合、設定した縮退故障は、物理動作、つまり半導体装置20の動作と一致していない。従って、半導体装置20では、テストパターンに対して、ドライブ故障が活性化していない可能性が高いと判定することができる。このため、故障診断装置12は、圧縮器27の入力信号レベル、つまり、スキャンチェーン24,25の各SFF24a~24c,25a~25cに保持した信号レベルに、論理シミュレーションの結果を採用する。このように、故障診断装置12は、縮退故障を設定した故障シミュレーション結果とテスト装置11の観測結果の比較結果に応じて、論理シミュレーションの結果又は故障シミュレーションの結果を採用する。これにより、隣接ネットを特定することなくドライブ故障の活性化を判定することができ、圧縮器27時間圧縮回路の故障シミュレーションを行うことができる。故障診断装置12は、圧縮器27の故障シミュレーションの結果と、テスト装置11の観測結果に基づいて、故障仮定箇所のスコアを算出する。そして、故障診断装置12は、全ての故障仮定箇所のスコアを含むレポートを作成する。スコアは、圧縮器27のシグネチャの総ビット数に対する、故障シミュレーション結果とテスト装置11の観測結果とが互いに一致するビットの数の割合である。従って、スコアの値が大きいほど、一致するビット数が多い、つまり、設定した故障仮定箇所が正しい真である可能性が高いことを示す。以上記述したように、本実施形態によれば、以下の効果を奏する。1半導体装置20のスキャンチェーン24,25はロジック回路21にテストパターンを供給し、ロジック回路21の各点における信号レベルを保持する。第1の圧縮器26は、スキャンチェーン24,25の出力信号を、スキャンチェーン24,25の幅方向に圧縮する。第2の圧縮器27は、スキャンチェーン24,25の出力信号を、スキャンチェーン24,25の長さ方向に圧縮する。テスト装置11は、テストパターン13を半導体装置20に供給し、各圧縮器26,27の出力信号を観測してフェイル情報14を生成する。故障診断装置12は、半導体装置20の故障仮定箇所に縮退故障を設定し、シミュレーションを実施する。故障診断装置12は、シミュレーションにより得た圧縮器26の出力信号と、テスト装置11により観測した圧縮器26の出力信号とを比較し、その比較結果に応じて圧縮器27の入力信号を設定してシミュレーションを実施する。そして、故障診断装置12は、シミュレーションにより得た圧縮器27の出力信号と、テスト装置11により観測した圧縮器27の出力信号に基づいて、故障仮定箇所のスコアを算出する。故障仮定箇所のスコアは、その値が大きいほど、シミュレーションにより得た圧縮器27の出力信号と、テスト装置11により観測した圧縮器27の出力信号とが一致する、つまり、故障仮定箇所に設定した縮退故障が正しい真であることを示す。従って、圧縮器26のみを用いた場合と比べ、故障箇所の候補とする箇所を少なくすることができ、故障箇所推定の精度低下を抑制することができる。また、ドライブ故障に対して、隣接ネットを特定する必要がない。診断時間の長期化を防ぎ、実質的に有効な時間で故障診断を行うことができる。2故障診断装置12は、縮退故障を設定して故障シミュレーションを実施した結果、故障がSFF24a~24c,25a~25cまで伝搬しない場合、論理シミュレーションの結果における各SFF24a~24c,25a~25cの信号レベルを採用する。一方、故障診断装置12は、故障がSFF24a~24c,25a~25cまで伝搬した場合、故障シミュレーションの結果におけるSFF24a~24c,25a~25cの信号レベルを採用し、圧縮器26をシミュレーションする。そして、故障診断装置12は、シミュレーションにより得た圧縮器26の出力信号と、テスト装置11により観測した圧縮器26の出力信号とを比較する。これにより、隣接ネットを特定することなくドライブ故障の活性化を判定することができ、圧縮器27時間圧縮回路の故障シミュレーションを行うことができる。尚、上記各実施形態は、以下の態様で実施してもよい。空間系の圧縮器26として例えば排他的論理和回路EOR回路を用いたが、その他の圧縮器を用いても良い。時間系の圧縮器27として例えば多入力線形帰還シフトレジスタMISRを用いたが、その他の圧縮器、例えば、線形帰還シフトレジスタLFSR;LinearFeedbackShiftRegisterを用いても良い。故障診断装置12が実行する処理を適宜変更してもよい。例えば、上記実施形態では、図4,5に示すように、選択した故障仮定箇所に対して、全てのテストパターンについて圧縮器27の状態をシミュレーションするようにした。これに対し、1つのテストパターンを選択し、そのテストパターンについて、全ての故障箇所に対して圧縮器27の状態をシミュレーションするようにしてもよい。上記実施形態では、圧縮器27の入力信号を、スキャンチェーン24,25の本数と同じに設定したが、スキャンチェーンの本数よりも少ない数を入力信号の数として設定してもよい。その場合、スキャンチェーンと圧縮器27との間に、スキャンチェーンの幅方向に圧縮する空間圧縮型の圧縮器例えばEOR回路を挿入し、その圧縮器にて信号を圧縮して圧縮器27に供給するようにしてもよい。半導体装置20において、スキャンチェーン24,25と外部出力端子との間に、他の回路が存在してもよい。例えば、スキャンチェーン24,25と圧縮器26との間にマスク回路が存在する構成としてもよい。上記実施形態に対し、スキャンチェーンの本数、各スキャンチェーンに含まれるSFFの数は、適宜変更されてもよい。上記実施の形態では、実際の半導体装置20のテストをテスト装置11にて行い、半導体装置20の回路情報15に基づく故障箇所の推定を故障診断装置12にて行うようにしたが、これらを1つの装置にて行うようにしてもよい。上記実施の形態では、テスト装置11にテストパターン13を入力する構成としたが、半導体装置にテストパターンを生成する回路を備える構成としてもよい。また、半導体装置に期待値と出力信号とを比較し、比較結果を出力する回路を備えるようにしてもよい。"