(57)【要約】【課題】テスト時間の短縮化を実現させることができ、充分なテスト回路の構成容量を得ることができる半導体集積回路のテスト装置を提供する。【解決手段】テスト装置２は、半導体集積回路１７のテスト回路として、任意の論理を書き換え可能な可変論理回路であるＦＰＧＡ−ａ〜ｃ１１〜１３を用いるとともに、これらＦＰＧＡ−ａ〜ｃ１１〜１３に接続して、半導体集積回路１７の検証、およびテストプログラムの書き換えを選択的に切り替えるＭＵＸ１０を備える。ＦＰＧＡ−ａ〜ｃ１１〜１３をインターリーブさせることにより、テスト周波数をＧＨｚ単位にまで引き上げることができる。また、テストプログラムの書き換え時間を実質的に無視することができ、間断なくテストを実行することができる。【選択図】        図１
2005003630.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路のテストプログラムからテスト回路を構成し、このテスト回路で前記半導体集積回路の動作を検証する半導体集積回路のテスト装置において、
前記テスト回路として、任意の論理を書き換え可能な複数の可変論理回路を用いるとともに、
これら複数の可変論理回路に接続して、前記半導体集積回路の検証、および前記テストプログラムの書き換えを選択的に切り替える切替回路を備えたことを特徴とする半導体集積回路のテスト装置。
【請求項２】
前記テストプログラムが帯域圧縮されていた場合、前記切替回路は、前記複数の可変論理回路に対して、帯域圧縮されたテストプログラムの書き込み、書き込まれたテストプログラムの解凍、解凍したテストプログラムに基づくテスト回路の構成、および構成されたテスト回路を用いた半導体集積回路の検証を順次実行させるように前記切り替えを行うことを特徴とする請求項１に記載の半導体集積回路のテスト装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半導体メモリや論理集積回路などの半導体集積回路の動作を検証する半導体集積回路のテスト装置に関する。
【０００２】
【従来の技術】
従来、半導体メモリや論理集積回路などの半導体集積回路の動作を検証する際には、製品の仕様に合わせたテストパターンがプログラムされたテスタを用いている。テストパターンの生成は、半導体集積回路の開発段階で自動的あるいは半自動的に行われる。すなわち、半導体集積回路の開発段階において、まず、実現しようとする製品のシステム仕様や動作アルゴリズムをＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  ｌａｎｇｕａｇｅ  ）やＣ言語で記述し、これを検証するテスト・ベンチで動作が適切であるか否かを検証しながら、不具合の修正や動作速度の確認を行う。
【０００３】
ＨＤＬの生成後、検証済みのＨＤＬを論理合成して、論理ゲートレベルの設計データに変換する。そして、これら論理合成データおよび設計データを、再びテスト・ベンチにより検証する。さらに、動作タイミングの検証を行って、動作が不十分であった場合は再度設計をやり直す。このとき、生成されたゲートに対して故障仮定を行い、テスト・ベンチのテストパターンで、仮定された故障が検出されない場合には、テストパターンを生成してテストの故障検出率を高めている。また、例えばＤＦＴ（Ｄｅｓｉｇｎ  Ｆｏｒ  Ｔｅｓｔａｂｉｌｉｔｙ）設計を活用して、新たに対応したテストパターン発生器を追加する場合もある。
【０００４】
次に、論理ゲートレベルの設計データに基づいて、素子レベルのレイアウト・データを生成する。生成されたレイアウト・データは、上記テストパターンがプログラムされたテスタによって配線遅延などを含めた形で実負荷シミュレーションが行われ、不適切な個所が修正・最適化される。そして、最適化されたレイアウト・データを元にマスクパターン・データが生成され、これに基づいて作成されたマスクにより半導体ウェハ上に集積回路が形成される。
【０００５】
しかしながら、上記テストパターンは基本的にタイムドリブン方式であり、テスタが読み込める形式ではないため、タイムドリブン方式からレート方式への展開が必要となり、且つ使用するテスタの構造に合わせるべくテストパターンを変換しなければならない。この変換には膨大な時間が掛かり、変換ミスも多く、製品デバックの信頼性を低下させる原因となる。
【０００６】
また、テストパターンの生成には、製品シミュレーションも関わるため、使用する全てのテストパターンが揃うまでに時間が掛かり、製造工数を増加させる大きな要因となっている。さらに、製品の量産段階においては、通常、設計時とは別のテスタを用いるため、再度テストプログラムの変換を行わなければならず、非常に煩雑であるという問題があった。このため、テスタには高い汎用性が要求され、複雑、且つ大規模なハードウェアを持たざるを得ず、非常に高価なものとなっていた。
【０００７】
上記のような問題点を解消する方法として、ユーザーにより任意の論理が書き換え可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ  ）などのプログラマブル・デバイスを集積回路に搭載し、このプログラマブル・デバイスに、ＨＤＬ記述されたテストプログラムに基づいて、所望のテスト内容を実行可能なテスタ回路を構成する技術が提案されている（特許文献１および２参照）。
【０００８】
図７に、特許文献１および２に記載される半導体集積回路のテスト装置の概略構成を示す。テスト装置１００は、ＦＰＧＡ１０１を中心に、ＡＤ変換器（ＡＤＣ）１０２やＤＡ変換器（ＤＡＣ）１０３、およびこれらに付随する増幅器（ＡＭＰ）１０４から構成される。このテスト装置１００は、ＡＭＰ１０４に接続された入出力端子１０５、１０６を介して電圧や電流を入出力することが可能となっている。ＦＰＧＡ１０１は、ＡＤＣ１０２およびＤＡＣ１０３のデジタル端子に接続されいる。また、リレーなどのスイッチングデバイスを介して、検証される半導体集積回路（図示せず）に選択的に接続されている。
【０００９】
特許文献１および２に記載される技術では、製品の仕様に応じたテストパターンを生成し、このテストパターンをテスタでデバックしたテストプログラムをＨＤＬに変換して、必要に応じてシミュレーションを行いつつ、ＨＤＬ変換されたテストプログラムを論理合成することにより、ＦＰＧＡ１０１に所望のテスト回路が構成される。この技術によれば、テスタを用いて製品の検証を行う従来の方式に比べて、製造コストおよび工数を大幅に削減させることができる。
【００１０】
【特許文献１】
国際公開第９８／５７２８１号パンフレット
【特許文献２】
特開２００２−１２３５６２号公報
【００１１】
【発明が解決しようとする課題】
ＦＰＧＡ１０１にテスト回路を構成する際には、ＨＤＬ記述されたテストプログラムを論理合成して、このデータをビットストリームとしたものをＦＰＧＡ１０１に書き込むことで行う。このとき、テストプログラムの全てを一度にテスト回路として構成することが可能であれば、テスト回路の構成時間は大きな問題とはならないが、不可能であった場合はテストプログラムを分割して、テスト中にビットストリームを書き換える必要がある。
【００１２】
上記問題の対応策として、テスト装置１００では、半導体集積回路上に設けた外部ＲＯＭにビットストリームを記憶しておき、この外部ＲＯＭから直接書き込む方法を採用している。この方法によれば、１回の書き換え時間が１００ｍｓ程度となるため、テスト対象としてフラッシュメモリなど数十分のテスト時間を要するものについては有効である。しかしながら、例えばテスト対象として論理集積回路など数秒オーダーのテスト時間が要求されるものに対しては、充分な効果を発揮する方法であるとはいえず、テスト時間を長引かせる要因となっていた。
【００１３】
また、テストプログラムでは、テストの判定結果によって条件分岐をする場合がある。この場合、テストの判定結果が出力されるのを待って、条件に対応したテスト内容に書き換えざるを得ないため、やはり上記書き換え時間が問題となる。
【００１４】
また、テスト装置１００では、ＦＰＧＡ１０１の動作速度にテスト周波数が律則されるので、ＦＰＧＡ１０１の性能を最大限に活かしたとしても、高々数百ＭＨｚのテスト周波数に制限されてしまう。
【００１５】
さらに、半導体メモリのテストを行う場合は、１つのＦＰＧＡ１０１で充分対応することができるが、論理集積回路のテストを行う場合には、テスト回路を構成する容量が１つのＦＰＧＡ１０１では不足するおそれがある。
【００１６】
本発明は、テスト時間の短縮化を実現させることができ、充分なテスト回路の構成容量を得ることができる半導体集積回路のテスト装置を提供することを目的とする。
【００１７】
【課題を解決するための手段】
上記目的を達成するために、本発明は、半導体集積回路のテストプログラムからテスト回路を構成し、このテスト回路で前記半導体集積回路の動作を検証する半導体集積回路のテスト装置において、前記テスト回路として、任意の論理を書き換え可能な複数の可変論理回路を用いるとともに、これら複数の可変論理回路に接続して、前記半導体集積回路の検証、および前記テストプログラムの書き換えを選択的に切り替える切替回路を備えたことを特徴とする。
【００１８】
なお、前記テストプログラムが帯域圧縮されていた場合、前記切替回路は、前記複数の可変論理回路に対して、帯域圧縮されたテストプログラムの書き込み、書き込まれたテストプログラムの解凍、解凍したテストプログラムに基づくテスト回路の構成、および構成されたテスト回路を用いた半導体集積回路の検証を順次実行させるように前記切り替えを行うことが好ましい。
【００１９】
【発明の実施の形態】
図１において、本発明を適用した半導体集積回路のテスト装置２は、マルチプレクサ（ＭＵＸ）１０、ＦＰＧＡ−ａ〜ｃ１１〜１３、ＡＤ変換器（ＡＤＣ）１４、ＤＡ変換器（ＤＡＣ）１５、および増幅器（ＡＭＰ）１６から構成される。このテスト装置２は、検証する半導体集積回路１７のテストプログラムに基づいて、所望のテスト内容を実行可能なテスタ回路をＦＰＧＡ−ａ〜ｃ１１〜１３に構成する。半導体集積回路１７のテストプログラムは、図示しない外部ＲＯＭに記憶され、ビットストリームとしてＦＰＧＡ−ａ〜ｃ１１〜１３に書き込まれる。
【００２０】
ここで、ＭＵＸ１０は、ＦＰＧＡ−ａ〜ｃ１１〜１３と同種の他のＦＰＧＡで構成することができる。このＭＵＸ１０の機能をＦＰＧＡで実現させるには、ＦＰＧＡ−ａ〜ｃ１１〜１３と同様に、ＦＰＧＡにＭＵＸとして機能させるための論理合成を行えばよい。
【００２１】
テスト装置２は、図７に示すテスト装置１００と同様に、ＡＭＰ１６に接続された入出力端子１８、１９を介して電圧や電流を入出力することが可能となっている。ＦＰＧＡ−ａ１１およびＦＰＧＡ−ｃ１３は、ＡＤＣ１４およびＤＡＣ１５のデジタル端子に接続されいる。
【００２２】
ＦＰＧＡ−ａ〜ｃ１１〜１３は、ＭＵＸ１０を介して検証すべき半導体集積回路１７に選択的に接続されている。図２に示すように、ＭＵＸ１０は、ｎ番目に実行するテストのビットストリームが外部ＲＯＭからＦＰＧＡ−ａ１１に書き込まれて、テストｎに基づいたテスト回路がＦＰＧＡ−ａ１１に構成され、ＦＰＧＡ−ａ１１により半導体集積回路１７にテストｎを実行している最中に、ＦＰＧＡ−ｂ１２にｎ＋１番目のテストのビットストリームを書き込んでおく。
【００２３】
テストｎの終了後、ＭＵＸ１０は、ＦＰＧＡ−ａ１１からＦＰＧＡ−ｂ１２に半導体集積回路１７との接続を切り替え、ＦＰＧＡ−ｂ１２にテストｎ＋１を実行させる。このときもテストｎの実行時と同様に、ＦＰＧＡ−ｃ１３にｎ＋２番目のテストのビットストリームを書き込んでおく。
【００２４】
テストｎ＋１の終了後、ＭＵＸ１０は、ＦＰＧＡ−ｂ１２からＦＰＧＡ−ｃ１３に半導体集積回路１７との接続を切り替え、ＦＰＧＡ−ｃ１３にテストｎ＋２を実行させる。このときもテストｎ、ｎ＋１の実行時と同様に、ＦＰＧＡ−ａ１１にｎ＋３番目のテストのビットストリームを書き込んでおく。ＭＵＸ１０は、ＦＰＧＡ−ａ〜ｃ１１〜１３に対してこれらの動作を繰り返し行わせ、外部ＲＯＭに記憶された全てのテストプログラムを逐次実行させる。
【００２５】
図３に示すように、ｎ番目のテストで条件分岐が発生した場合は、ＦＰＧＡ−ａ１１でテストｎを実行している最中に、テストｎにパスした場合に実行されるテストｎ＋１のビットストリームをＦＰＧＡ−ｂ１２に、テストｎにパスしなかった場合のテストｎ＋１のビットストリームをＦＰＧＡ−ｃ１３にそれぞれ書き込んでおく。
【００２６】
テストｎにパスした場合、ＭＵＸ１０は、ＦＰＧＡ−ａ１１からＦＰＧＡ−ｂ１２に半導体集積回路１７との接続を切り替え、ＦＰＧＡ−ｂ１２にテストｎ＋１を実行させる。このとき、ＦＰＧＡ−ａ１１にｎ＋２番目のテストのビットストリームを書き込んでおく。
【００２７】
一方、テストｎにパスしなかった場合、ＭＵＸ１０は、ＦＰＧＡ−ａ１１からＦＰＧＡ−ｃ１３に半導体集積回路１７との接続を切替え、ＦＰＧＡ−ｃ１３にテストｎ＋１を実行させる。このときも同様に、ＦＰＧＡ−ａ１１にｎ＋２番目のテストのビットストリームを書き込んでおく。
【００２８】
テストｎ＋１の終了後、ＭＵＸ１０は、ＦＰＧＡ−ｂ１２、またはＦＰＧＡ−ｃ１３からＦＰＧＡ−ａ１１に半導体集積回路１７との接続を切替え、ＦＰＧＡ−ａ１１にテストｎ＋２を実行させる。このとき、ＦＰＧＡ−ｂ１２にｎ＋３番目のテストのビットストリームを書き込んでおく。
【００２９】
このようにすれば、一回のテストに要する時間は数百秒程度であり、テストプログラムの書き換え時間は概して１００ｍｓ程度であるため、テストプログラムの書き換え時間を実質的に無視することができ、間断なくテストを実行することができる。
【００３０】
さらに、一個のＦＰＧＡでテスト回路を構成することができないテストプログラムであっても、予めＦＰＧＡ−ａ〜ｃ１１〜１３に大容量のテストプログラムを分割して書き込んでおき、例えばＦＰＧＡ−ａ１１に最初のテストパターンを生成した後、ＭＵＸ１０で直ちにＦＰＧＡ−ｂ１２に切り替えて最初のパターンから継続されたテストパターンを生成し、ＦＰＧＡ−ｃ１３に残りのテストパターンを生成するようにして順次テストを実行すれば、大容量のテストを実行することに容易に対応することができる。
【００３１】
ＭＵＸ１０は、テストプログラムが帯域圧縮（ハフマン圧縮、ＬＺＨ圧縮など）されていた場合、ＦＰＧＡ−ａ〜ｃ１１〜１３に対して、帯域圧縮されたテストプログラムの書き込み、書き込まれたテストプログラムの解凍、解凍したテストプログラムに基づくテスト回路の構成、および構成されたテスト回路を用いた半導体集積回路１７の検証を順次実行させるように切り替える。すなわち、例えばＦＰＧＡ−ａ１１で帯域圧縮されたテストプログラムが解凍され、解凍されたテストプログラムに基づいたテスト回路が構成されており、ＦＰＧＡ−ａ１１で半導体集積回路１７にテストを実行している最中に、ＦＰＧＡ−ｂ１２、およびＦＰＧＡ−ｃ１３に帯域圧縮されたテストプログラムを書き込み、解凍しておく。
【００３２】
ＦＰＧＡ−ａ１１によるテストの終了後、ＭＵＸ１０は、ＦＰＧＡ−ａ１１からＦＰＧＡ−ｂ１２に半導体集積回路１７との接続を切り替え、ＦＰＧＡ−ｂ１２に次のテストを実行させる。このとき、ＦＰＧＡ−ｂ１２以外のＦＰＧＡのテストプログラムの解凍を行う。このようにすると、従来に比べて数十倍以上のテストパターンの生成が可能となる。
【００３３】
なお、図４に示すように、テストを実行する前に、ＦＰＧＡ−ａ〜ｃ１１〜１３の全てに、実行する順にテストプログラムを書き込んでおき、テスト実行時にこれらのテストプログラムを同時走行させ、図５に示すように、ＭＵＸ１０でＦＰＧＡ−ａ〜ｃ１１〜１３を周期的に切り替えるようにすれば、従来と比較して３倍のテスト周波数を得ることができる。このように、３個のＦＰＧＡ−ａ〜ｃ１１〜１３をインターリーブさせることにより、テスト周波数をＧＨｚ単位にまで引き上げることができる。
【００３４】
ここで、最近の半導体集積回路のテスト技術として、半導体集積回路のチップ内にＢＩＳＴ（Ｂｕｉｌｔ  Ｉｎ  Ｓｅｌｆ  Ｔｅｓｔ）を搭載する手法が活用され始めている。これはＩＥＥＥ１１４９で規定されたＴＡＰ（Ｔｅｓｔ  Ａｃｃｅｓｓ  Ｐｏｒｔ）からコントロール信号を入力してＢＩＳＴを動作させ、自己テストを行わせるものである。ＢＩＳＴのテスト結果はＴＡＰから出力され、最終的にはテスタで良否が判定される。ここで用いられるテスタとして、最近ではＤＦＴテスタが開発されつつある。
【００３５】
テスト装置２は、上記ＤＦＴテスタに代わるものであり、ＤＦＴテスタ以上の効果をもたらすものである。なぜならば、テスト装置２は、半導体集積回路の設計段階で得られるＨＤＬやＣ言語からテスト回路の論理合成を行うので、高価な作成ツールを必要とせず、比較的簡単にテストを立ち上げることができるためである。また、半導体集積回路の実装状況を見ながらテストを行えるので、効率良く充分なテストを実行することができる。
【００３６】
また、通信機器の高速信号を処理するために、高速シリアル・インターフェイスをＩ／Ｏとして使用する動きがある。この高速シリアル・インターフェイスは、送信側と受信側との双方で情報転送の確認を行う独自のプロトコルを有しており、通常のテスタを用いた場合には判定マッチを行う必要がある。この判定マッチには、テスタ上でテストプログラムを作成して検証する従来の形態を採用せざるを得ず、テストの立ち上げが困難になっていた。しかし、プロトコルを設計する際に用いられるテスト・ベンチは、ＨＤＬやＣ言語で記述されているため、このテスト・ベンチをテスタ装置２に適用すれば、上記問題が解決される可能性がある。したがって、テスト装置２は、今後のデバイス動向に適合したものであるといえる。
【００３７】
さらに、最近ＦＰＧＡの論理合成で活用され始めたＣ言語論理合成をテスト装置２に適用することで、テスト装置２自体でテストプログラムを作成することができ、従来のテスタと同様の性能を有し、且つ安価な独自のテスタとして使用することが可能となる。これを実現させる手順としては、図６に示すように、まず、Ｃ言語にてテストフローを作成し、これに基づいてＨＤＬを生成する。このとき、ユーザーの利便を図るために、テスト装置２のハードをＩＰとして関数化しておく。そして、生成したＨＤＬの論理合成を行ってビットストリームを生成し、これをテストファイルとしてテスト装置２に書き込み、テストを実行する。
【００３８】
なお、上記実施形態では、３個のＦＰＧＡを備えたテスト装置２を例示して説明したが、ＦＰＧＡの個数は検証する半導体集積回路の仕様などに応じて適宜変更することが可能である。
【００３９】
【発明の効果】
以上のように、本発明の半導体集積回路のテスト装置によれば、テスト回路として任意の論理を書き換え可能な複数の可変論理回路を用いるとともに、これら複数の可変論理回路に接続して、半導体集積回路の検証、およびテストプログラムの書き換えを選択的に切り替える切替回路を備えたので、テスト時間の短縮化を実現させることができ、充分なテスト回路の構成容量を得ることができる。
【図面の簡単な説明】
【図１】本発明を適用した半導体集積回路のテスト装置の概略構成を示す図である。
【図２】テスト装置の動作手順を示すフローチャートである。
【図３】条件分岐が発生したときの動作手順を示すフローチャートである。
【図４】テスト装置の動作手順の別の例を示すフローチャートである。
【図５】図４に示す動作手順におけるＭＵＸおよびテスト周波数のタイミングチャートを示す図である。
【図６】Ｃ言語論理合成を採用した場合のテスト装置の処理手順を示すフローチャートである。
【図７】従来のテスト装置の概略構成を示す図である。
【符号の説明】
２  テスト装置
１０  マルチプレクサ（ＭＵＸ）
１１〜１３  ＦＰＧＡ−ａ〜ｃ
１７  半導体集積回路
【図１】
2005003630.tif 000003
【図２】
2005003630.tif 000004
【図３】
2005003630.tif 000005
【図４】
2005003630.tif 000006
【図５】
2005003630.tif 000007
【図６】
2005003630.tif 000008
【図７】
2005003630.tif 000009