(57)【要約】【課題】半導体装置においてテストの充分な効率化を実現する。【解決手段】半導体装置は、同一構成を有する複数Ｎ個の回路と、Ｎ個の回路のそれぞれに設けられ、外部から同一の入力データを受け取るＮ個のスキャンチェーンと、Ｎ個のスキャンチェーンのそれぞれから出力されるＮビットを入力として受け取りＭビット（Ｍ：Ｎより小さい正の整数）を出力するエンコーダと、エンコーダが出力するＭビットを外部に出力するＭ個の出力端子とを有する。【選択図】図１
2020034287.tif 000002
【特許請求の範囲】
【請求項１】
同一構成を有する複数Ｎ個の回路と、
前記Ｎ個の回路のそれぞれに設けられ、外部から同一の入力データを受け取るＮ個のスキャンチェーンと、
前記Ｎ個のスキャンチェーンのそれぞれから出力されるＮビットを入力として受け取りＭビット（Ｍ：Ｎより小さい正の整数）を出力するエンコーダと、
前記エンコーダが出力する前記Ｍビットを外部に出力するＭ個の出力端子と、
を有する半導体装置。
【請求項２】
前記エンコーダにおいて、少なくとも前記Ｎビットの全ビットが同一値である状態と前記Ｎビットにおいて１ビットのみ値が異なるビット位置とが前記Ｍビットから特定可能であるように、前記Ｎビットと前記Ｍビットとが対応付けられる請求項１記載の半導体装置。
【請求項３】
前記エンコーダにおいて、前記Ｎビットの全ビットが０である状態と前記Ｎビットの全ビットが１である状態との両方が、前記Ｍビットの１つのビットパターンに共通に対応付けられている、請求項１又は２記載の半導体装置。
【請求項４】
前記エンコーダは、前記Ｎビットのうちの特定のビットの値が他のビットの値と異なっている状態が前記１つのビットパターンに対応付けられるようにマスク処理が可能である、請求項３記載の半導体装置。
【請求項５】
前記Ｎ個のスキャンチェーンのそれぞれの途中から出力されるＮビットを受け取りＭビットを出力する第２のエンコーダと、
前記第２のエンコーダが出力する前記Ｍビットを外部に出力するＭ個の出力端子と、
を更に含む、請求項１乃至４いずれか一項記載の半導体装置。
【請求項６】
前記エンコーダは、前記Ｎ個のスキャンチェーンのそれぞれの終端から出力される第１のＮビットと前記Ｎ個のスキャンチェーンのそれぞれの途中から出力される第２のＮビットとを圧縮することにより生成されたＮビットを前記入力として受け取る、請求項１乃至４いずれか一項記載の半導体装置。
【請求項７】
半導体装置において同一構成を有する複数Ｎ個の回路のそれぞれに設けられたＮ個のスキャンチェーンに同一の入力データを供給し、
前記Ｎ個のスキャンチェーンのそれぞれから出力されるＮビットを前記半導体装置内のエンコーダに入力し、
前記エンコーダから出力されるＭビット（Ｍ：Ｎより小さい正の整数）を前記半導体装置のＭ個の出力端子から出力させ、
前記Ｍ個の出力端子から出力された前記Ｍビットを固定値である期待値データと比較する
各段階を含み、前記エンコーダにおいて、少なくとも前記Ｎビットの全ビットが同一値である状態と前記Ｎビットにおいて１ビットのみ値が異なるビット位置とが前記Ｍビットから特定可能であるように前記Ｎビットと前記Ｍビットとが対応付けられている、半導体装置の試験方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願開示は、半導体装置及び半導体装置の試験方法に関する。
【背景技術】
【０００２】
マルチコアプロセッサには同一構成を有する複数個のプロセッサコアが搭載されている。特にメニーコアプロセッサと呼ばれるプロセッサでは、搭載するプロセッサコアの個数が桁違いに多くなっており、非常に大きな規模のＬＳＩ（大規模集積回路）となっている。そのような大規模の回路では、内蔵される試験用のスキャンチェーンのビット数及び本数が増大するので、スキャンチェーンの入出力を制御及び監視する半導体テスタ（テスタ装置）側において、メモリ容量不足及び端子数不足等が問題となる。必要なメモリ容量及び端子数を確保しようとすると、より性能の高いテスタ装置が必要となり、製造試験コストが増大してしまう。
【０００３】
従来、同一構成の回路ブロック（プロセッサコア等）が複数個搭載されているというマルチ回路の特性を利用して、テストの効率化を図る方法がいくつか提案されている。例えば、複数の回路ブロックからそれぞれ出力される複数のテスト出力データに対して論理和や論理積等の演算を施してテスト出力データの一致又は不一致を検出することにより、テストの効率化を図ることができる（例えば特許文献１及び３参照）。また共通のテスト入力データを複数のコアに並列に供給し、各コアからのテスト出力データを共通の期待値ビットパターンと回路内部で比較し、テスト結果の良否を示すデータを生成することにより、入出力ピンの数を削減することができる（例えば特許文献２参照）。
【０００４】
しかしながらこれらの方法では、テスト出力データに対応する期待値のビットパターンが必要であったり、複数の回路ブロックのうちで故障が発生した回路ブロックを特定するためには各回路ブロック毎に出力端子が必要であったりする。特に、いずれの方法においても、故障が発生した回路ブロックを特定するためには期待値のビットパターンが必要になるので、テスタ装置のメモリ容量を削減できない。即ち、いずれの方法においても、充分なテストの効率化が実現できていない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−６９６４２号公報
【特許文献２】米国特許出願公開第２００８／０１４８１１７号明細書
【特許文献３】米国特許第６１３４６７５号明細書
【特許文献４】特開２００３−９８２２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
以上を鑑みると、半導体装置においてテストの充分な効率化を実現することが望まれる。
【課題を解決するための手段】
【０００７】
半導体装置は、同一構成を有する複数Ｎ個の回路と、前記Ｎ個の回路のそれぞれに設けられ、外部から同一の入力データを受け取るＮ個のスキャンチェーンと、前記Ｎ個のスキャンチェーンのそれぞれから出力されるＮビットを入力として受け取りＭビット（Ｍ：Ｎより小さい正の整数）を出力するエンコーダと、前記エンコーダが出力する前記Ｍビットを外部に出力するＭ個の出力端子とを有する。
【発明の効果】
【０００８】
少なくとも１つの実施例によれば、半導体装置においてテストの充分な効率化を実現することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、テスタ装置及び被試験対象の半導体装置の構成の一例を示す図である。
【図２】図２は、半導体装置の第１実施例の構成の一例を示す図である。
【図３】図３は、図２に示すテーブル回路の入出力関係の一例を示す図である。
【図４】図４は、図１のテスタ装置により半導体装置を試験する方法の手順の一例を示すフローチャートである。
【図５】図５は、図１に示すテスタ装置による半導体装置の試験におけるマスク処理の一例を説明するための図である。
【図６】図６は、半導体装置の第２実施例の構成の一例を示す図である。
【図７】図７は、図６に示すテーブル回路の入出力関係の一例を示す図である。
【図８】図８は、半導体装置の第３実施例の構成の一例を示す図である。
【図９】図９は、図８に示される半導体装置の動作の一例を示す図である。
【図１０】図１０は、半導体装置の第４実施例の構成の一例を示す図である。
【図１１】図１１は、図１０に示すテーブル回路の入出力関係の一例を示す図である。
【図１２】図１２は、半導体装置の第５実施例の構成の一例を示す図である。
【図１３】図１３は、図１２に示すテーブル回路の入出力関係の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。以下の図において、同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。
【００１１】
図１は、テスタ装置１０及び被試験対象の半導体装置２０の構成の一例を示す図である。テスタ装置１０は、期待値比較回路１１及びメモリ１２を含む。半導体装置２０は、同一構成を有する複数Ｎ個の回路ブロック２１−１乃至２１−Ｎ、テーブル回路２２、テスト入力端子２５、テーブル制御端子２６、及びテスト出力端子２７を含む。
【００１２】
半導体装置２０は、回路ブロック２１−１乃至２１−Ｎのそれぞれに設けられ、外部（テスタ装置１０）からテスト入力端子２５を介して同一のテスト入力データを受け取るＮ個のスキャンチェーン３０−１乃至３０−Ｎを含む。スキャンチェーン３０−１乃至３０−Ｎの各々は、縦続接続された複数のスキャンフリップフロップ３１を含む。回路ブロック２１−１乃至２１−Ｎの各々は、１つ又は複数のロジック回路３２を含む。図１において、図示の都合上、回路ブロック２１−１に対してのみ、スキャンフリップフロップ３１及びロジック回路３２の参照番号を示してあるが、他の回路ブロック２１−２乃至２１−Ｎについても同様である。
【００１３】
各スキャンフリップフロップ３１には、スキャン入力端子とスキャン出力端子とが設けられている。あるスキャンフリップフロップ３１のスキャン出力端子は別のスキャンフリップフロップ３１のスキャン入力端子に結合され、複数のスキャンフリップフロップ３１の従属接続によりスキャンチェーンを形成している。各スキャンフリップフロップ３１のクロック入力端子にはスキャンクロック信号が入力される。
【００１４】
テスト動作時には、テスタ装置１０が、メモリ１２に格納されているテスト入力データＳＩを、スキャンクロック信号に同期させてテスト入力端子２５に印加する。テスト入力端子２５に印加されたテスト入力データＳＩは、スキャンクロック信号に同期したスキャンフリップフロップ３１のシフト動作によってスキャンチェーン内を順次シフトされ、所定のデータを各スキャンフリップフロップ３１に設定することができる。
【００１５】
所定のデータをスキャンフリップフロップ３１に設定し終えると、ロジック回路３２を動作させ、ロジック回路３２からの出力データをスキャンフリップフロップ３１に取り込むキャプチャー動作を実行する。スキャンフリップフロップ３１の各々のデータ入力端子とデータ出力端子とがロジック回路３２に結合されている。各スキャンフリップフロップ３１のデータ出力端子から出力されたデータを入力としてロジック回路３２が動作し、ロジック回路３２の出力データがデータ入力端子からスキャンフリップフロップ３１に並列に格納される。このキャプチャー動作の後、スキャンクロック信号によってスキャンフリップフロップ３１のデータを順次シフトさせることにより、スキャンチェーン３０−１乃至３０−Ｎからのスキャン出力データをテーブル回路２２に入力する。
【００１６】
テーブル回路２２は、Ｎ個のスキャンチェーン３０−１乃至３０−Ｎのそれぞれから出力されるＮビットのスキャン出力データｃ１乃至ｃＮを入力として受け取り、Ｍビットのテスト出力データｓｏ１乃至ｓｏＭ（Ｍ：Ｎより小さい正の整数）を出力する。すなわち、テーブル回路は、Ｎ個のスキャンチェーンのそれぞれから出力されるＮビットを入力として受け取り、Ｍビット（Ｍ：Ｎより小さい正の整数）を出力するエンコーダ回路である。より具体的には、スキャンクロック信号の各サイクル毎にＮビットのスキャン出力データｃ１乃至ｃＮがテーブル回路２２に入力として印加され、各サイクル毎にテーブル回路２２からＭビットのテスト出力データｓｏ１乃至ｓｏＭが出力される。Ｍビットのテスト出力データｓｏ１乃至ｓｏＭは、テスト出力端子２７から半導体装置２０の外部（テスタ装置１０）に供給される。
【００１７】
テーブル回路２２は、例えば、入力Ｎビットをアドレスとして受け取り、当該アドレスに格納されるデータを出力Ｍビットとして出力するメモリ回路として実現されてよい。この場合、メモリ回路に格納されるデータを制御することにより、適宜所望の入出力関係を設定することができる。また例えば、テーブル回路２２は、入力Ｎビットと制御信号ビットとを入力として受け取り、これらの入力に基づく論理演算により出力Ｍビットを生成する組み合わせ論理回路として実現されてよい。この場合、制御信号ビットの値を制御するにより、適宜所望の入出力関係を設定することができる。
【００１８】
テーブル回路２２においては、少なくとも入力のＮビットの全ビットが同一値である状態と入力のＮビットにおいて１ビットのみ値が異なるビット位置とが、出力のＭビットから特定可能であるように、入力Ｎビットと出力Ｍビットとが対応付けられている。即ち、入力Ｎビットが全ビット"１"であるか又は全ビット"０"である入力ビットパターンが出力Ｍビットの特定のビットパターンに対応付けられており、当該出力ビットパターンが出力に出現したときには入力Ｎビットの全ビットが同一値であると特定できる。なおこの際、入力Ｎビットの全ビットが"０"である状態と入力Ｎビットの全ビットが"１"である状態との両方が、出力Ｍビットの特定の１つのビットパターン（例えば全ビット"０"であるビットパターン）に共通に対応付けられてよい。
【００１９】
また更に、入力のＮビットにおいて１ビットのみ値が"１"であるか又は１ビットのみ値が"０"であるビット位置に関する情報が、出力Ｍビットのビットパターンに含まれるように、出力Ｍビットが定められている。例えば、入力のＮビットにおける第Ｘビット（Ｘ＝１〜Ｎ）のみ値が異なる場合には、出力Ｍビットが２進数Ｘとなるように、入力Ｎビットと出力Ｍビットとが対応付けられてよい。なお入力Ｎビットのある１つのビット位置においてのみ値が"１"である状態と同一のビット位置においてのみ値が"０"である状態との両方の状態を、出力Ｍビットの同一のビットパターンに共通に割り当てることは必ずしも必要ではない。
【００２０】
例えばＮが３の場合には、出力２ビットの２進数"０"を入力３ビットの全ビットが同一値である状態に対応付けてよい。更に、出力２ビットの２進数Ｘ（Ｘ＝１〜３）を入力３ビットにおいて第Ｘビットのみ値が異なる状態に対応付けてよい。また例えばＮが２の場合には、出力１ビットの２進数"０"を入力２ビットの全ビットが同一値である状態に対応付けてよい。更に、入力２ビットにおいて１ビットのみ値が異なる状態では、異なるビットの位置は第１ビットであるとも解釈できるし、第２ビットであるとも解釈できるので、第１ビットであると解釈して、出力１ビットの２進数"１"をこの状態に対応付けてよい。
【００２１】
Ｍの値が大きく、上記の特定すべき入力ビットパターンと比較して出力Ｍビットにより表現可能なビットパターン数に余裕が有る場合には、入力のＮビットにおいて２ビットの値が異なる場合にも当該ビット位置を特定可能なように出力Ｍビットを定めてもよい。同様に、出力Ｍビットにより表現可能であるならば、入力のＮビットにおいて３ビット又はそれ以上の値が異なる場合に当該ビット位置を特定可能なように出力Ｍビットを定めてもよい。
【００２２】
一般に、入力Ｎビットにおいて一箇所のみ値が異なるビット位置を出力Ｍビットにより特定するためには、少なくともｃｅｉｌｉｎｇ（ｌｏｇ２Ｎ）個の出力ビットが必要となる。ここでｃｅｉｌｉｎｇ（ｘ）は天井関数であり、ｘ以上の最小の整数値を表す。入力Ｎビットの全ビットが同一の値である状態にも出力ビットのビットパターンを少なくとも１つ割り当てる必要があるので、最小の出力ビット数Ｍは、ｃｅｉｌｉｎｇ（１＋ｌｏｇ２Ｎ）として求めることができる。
【００２３】
なお図１において、テスタ装置１０のメモリ１２に格納されるテーブル書き換えデータを、テーブル制御端子２６を介してテーブル回路２２に書き込むことにより、テーブル回路２２の入出力関係を変更することが可能である。これにより後述するマスク処理等を実現することが可能となる。
【００２４】
以上説明したように図１に示す半導体装置２０においては、テーブル回路２２の入出力関係を適宜設定することにより、半導体装置２０のテスト出力端子２７から出力されるテスト出力データｓｏ１乃至ｓｏＭの期待値を固定化している。即ち、Ｎ個のスキャン出力データｃ１乃至ｃＮの全てが同一値である状態に割り当てられた特定のテスト出力データｓｏ１乃至ｓｏＭのビットパターン（例えば全ビットゼロ）を、テスト出力データｓｏ１乃至ｓｏＭの期待値であるとして扱うことができる。何故なら、スキャン出力データｃ１乃至ｃＮのＮ個のビット全てが同一の値である場合には、回路ブロック２１−１乃至２１−Ｎの全てのロジック回路３２が正常に動作していると考えることができる（或いはその可能性が高い）からである。
【００２５】
なお入力Ｎビットの全ビットが"０"である状態と入力Ｎビットの全ビットが"１"である状態とを、出力Ｍビットのそれぞれ異なる特定のビットパターンに対応付け、２つの期待値を用いるようにしてもよい。しかしながら、これら２つの状態を出力Ｍビットの特定の１つのビットパターンに共通に対応付け、１つの期待値を用いることがより好ましい。期待値を１つのビットパターンに固定化することにより、メモリ削減及びテスト処理の効率化を更に図ることができる。
【００２６】
仮にスキャン出力データｃ１乃至ｃＮをそのまま半導体装置２０からテスタ装置１０に供給した場合には、"０"と"１"とが順次現れるＮビット×Ｋサイクル（Ｋはスキャン出力データ長）の時系列ビットパターンがスキャン出力データｃ１乃至ｃＮの期待値となる。この膨大なビット数の期待値データをメモリ１２に格納しておき、テスタ装置１０の期待値比較回路１１が、スキャン出力データｃ１乃至ｃＮと期待値データとを比較し、両者が一致している場合にパス判定（正常動作であるとの判定）を行う。この場合、テスタ装置１０のメモリ１２には充分な容量が要求される。
【００２７】
図１に示される半導体装置２０の場合には、ロジック回路３２が正常動作している場合には、テスト出力データｓｏ１乃至ｓｏＭは各クロックサイクルにおいて常に所定のビットパターン（例えば全ビットゼロであるビットパターン）に固定されている。従って、メモリ１２に格納しておく必要がある期待値データはＭビットのデータ（或いは例えば全ビットゼロとの情報）であればよく、期待値データのために必要なメモリ１２のメモリ容量を削減することができる。また更に、スキャン出力データｃ１乃至ｃＮをそのまま半導体装置２０から出力するためにはＮ個のテスト出力端子が必要となるのに対して、テスト出力データｓｏ１乃至ｓｏＭを半導体装置２０から出力するためにはＭ個のテスト出力端子２７があればよい。従ってテスト出力端子２７の数を削減することもできる。
【００２８】
なお厳密に言えば、スキャン出力データｃ１乃至ｃＮが全て同一値であることは、必ずしも回路ブロック２１−１乃至２１−Ｎのロジック回路３２が正常動作していることを意味しない。例えば全てのロジック回路３２が誤動作して同一の誤った値を出力している場合には、スキャン出力データｃ１乃至ｃＮは全て同一値となってしまう。しかしながら設計ミスではなくプロセス変動等の原因で誤動作する場合には、誤動作が発生する確率自体が小さく、また全ての同一回路が同一の誤った値を同時に出力する可能性は更に小さくなる。従って、スキャン出力データｃ１乃至ｃＮが全て同一値である状態は、回路ブロック２１−１乃至２１−Ｎのロジック回路３２が正常動作していることを示していると解釈して実用上は問題がない。
【００２９】
また同一回路の数が大きくなる程、全ての回路に対するスキャン出力データが同一の誤った値になる確率は小さくなる。従って、特にメニーコアプロセッサのように多数の同一構成の回路が設けられている場合、テスト出力データｓｏ１乃至ｓｏＭに基づく動作判定結果には、実質的に充分な信頼性があると考えられる。
【００３０】
図２は、半導体装置２０の第１実施例の構成の一例を示す図である。図２に示す半導体装置２０は、４個の回路ブロック２１−１乃至２１−４、４個のスキャンチェーン３０−１乃至３０−４、及び４入力３出力のテーブル回路２２を含む。図２及び以降の同様の図において、各回路ブロック内のロジック回路３２の図示、及び各スキャンチェーン内のスキャンフリップフロップ３１の図示は省略する。
【００３１】
テーブル回路２２は、４個のスキャンチェーン３０−１乃至３０−４のそれぞれから出力される４ビットのスキャン出力データｃ１乃至ｃ４を入力として受け取り、３ビットのテスト出力データｓｏ１乃至ｓｏ３を出力する。より具体的には、スキャンクロック信号の各サイクル毎に４ビットのスキャン出力データｃ１乃至ｃ４がテーブル回路２２に入力として印加され、各サイクル毎にテーブル回路２２から３ビットのテスト出力データｓｏ１乃至ｓｏ３が出力される。３ビットのテスト出力データｓｏ１乃至ｓｏ３は、テスト出力端子２７から半導体装置２０の外部（テスタ装置１０）に供給される。
【００３２】
図３は、図２に示すテーブル回路２２の入出力関係の一例を示す図である。図３に示されるテーブル回路２２においては、入力４ビットｃ１乃至ｃ４が全ビット"１"であるか又は全ビット"０"である入力ビットパターンが、出力３ビットｓｏ１乃至ｓｏ３が全ビット"０"であるビットパターンに対応付けられている。また入力の４ビットにおける第Ｘビット（Ｘ＝１〜４）のみ値が異なる場合には、出力３ビットが２進数Ｘとなるように、入力４ビットｃ１乃至ｃ４と出力３ビットｓｏ１乃至ｓｏ３とが対応付けられている。上記以外の入力４ビットｃ１乃至ｃ４のビットパターンに対しては、出力３ビットｓｏ１乃至ｓｏ３が全ビット"１"であるビットパターンが対応付けられている。
【００３３】
以上のようにして、少なくとも入力の４ビットの全ビットが同一値である状態と入力の４ビットにおいて１ビットのみ値が異なるビット位置とが、出力の３ビットから特定可能であるように、入力４ビットと出力３ビットとが対応付けられている。
【００３４】
図４は、図１のテスタ装置１０により半導体装置２０を試験する方法の手順の一例を示すフローチャートである。なお図４に示すフローチャートに記載された各ステップの実行順序は一例にすぎず、本願の意図する技術範囲が、記載された実行順番に限定されるものではない。例えば、Ａステップの次にＢステップが実行されるように本願に説明されていたとしても、Ａステップの次にＢステップを実行することが可能なだけでなく、Ｂステップの次にＡステップを実行することが、物理的且つ論理的に可能である場合がある。この場合、どちらの順番でステップを実行しても、当該フローチャートの処理に影響する全ての結果が同一であるならば、本願に開示の技術の目的のためには、Ｂステップの次にＡステップが実行されてもよいことは自明である。Ａステップの次にＢステップが実行されるように本願に説明されていたとしても、上記のような自明な場合を本願の意図する技術範囲から除外することを意図するものではなく、そのような自明な場合は、当然に本願の意図する技術範囲内に属する。
【００３５】
ステップＳ１において、半導体装置２０の各ロジック回路３２に関する設計データ等に基づいて生成したテスト入力データＳＩをテスタ装置１０のメモリ１２に格納する。ステップＳ２において、テスタ装置１０は半導体装置２０に対する試験動作を実行する。具体的には、テスタ装置１０が、メモリ１２に格納されているテスト入力データＳＩを、スキャンクロック信号に同期させてテスト入力端子２５に印加し、各スキャンフリップフロップ３１にテスト入力データを設定する。所定のデータをスキャンフリップフロップ３１に設定し終えると、ロジック回路３２を動作させ、ロジック回路３２の出力データを各スキャンフリップフロップ３１に並列に格納する。その後、スキャンクロック信号によってスキャンフリップフロップ３１のデータを順次シフトさせることにより、スキャンチェーン３０−１乃至３０−Ｎからのスキャン出力データをテーブル回路２２に入力する。スキャンクロック信号の各サイクル毎にＮビットのスキャン出力データｃ１乃至ｃＮがテーブル回路２２に入力として印加され、各サイクル毎にテーブル回路２２からＭビットのテスト出力データｓｏ１乃至ｓｏＭが出力される。Ｍビットのテスト出力データｓｏ１乃至ｓｏＭは、テスト出力端子２７から半導体装置２０の外部（テスタ装置１０）に供給される。
【００３６】
ステップＳ３において、テスタ装置１０の期待値比較回路１１が、テスト出力データｓｏ１乃至ｓｏＭと期待値とを比較することにより、エラーの有無を判定する。この際、テーブル回路２２によるデータ変換により、テスト出力データｓｏ１乃至ｓｏＭの期待値は固定値に変換されているので、膨大な期待値データを比較対象とする必要はない。
【００３７】
ステップＳ３においてエラー無しと判定された場合には、処理はステップＳ４に進む。ステップＳ４において、テスタ装置１０は故障検出無しとの試験結果を出力し、処理はステップＳ８に更に進む。
【００３８】
ステップＳ３においてエラー有りと判定された場合には、ステップＳ５において、テスタ装置１０の期待値比較回路１１により更にテスト出力データｓｏ１乃至ｓｏＭのビットパターンが単一故障に該当するのか、或いは複数故障に該当するのかを判定する。この判定のためには、例えば、図３に示されるテスト出力データｓｏ１乃至ｓｏＭと判定結果ＤＥＣとの対応関係を示すデータをメモリ１２に格納しておき、当該対応関係を示すデータを期待値比較回路１１に供給すればよい。期待値比較回路１１が、当該対応関係を示すデータに基づいて、半導体装置２０からのテスト出力データｓｏ１乃至ｓｏＭに対応する判定結果ＤＥＣを検出すればよい。
【００３９】
ステップＳ５において複数故障であるとの判定結果が出された場合には、ステップＳ６において、テスタ装置１０は、当該半導体装置２０が複数の故障を有する製品に該当するとの試験結果を出力する。ステップＳ５において単数故障であるとの判定結果が出された場合には、ステップＳ７において、テスタ装置１０は、当該半導体装置２０が単数の故障を有する製品に該当するとの試験結果を出力する。
【００４０】
ステップＳ８において、半導体装置２０の品質判定を行う。テスタ装置１０が故障検出無しとの試験結果を出力した場合には、半導体装置２０が良品であるとの品質判定を行う。テスタ装置１０が単数故障であるとの試験結果を出力した場合には、例えば、半導体装置２０が部分良品であるとの品質判定を行う。テスタ装置１０が複数故障であるとの試験結果を出力した場合には、例えば、半導体装置２０が不良品であるとの品質判定を行う。なお部分良品の場合には、故障の存在する箇所（故障の存在する回路ブロック）が特定できているので、当該回路ブロックを不活性化して半導体装置２０を使用する等の措置をとることができる。以上で半導体装置２０の試験を終了する。
【００４１】
以上説明したように、図１に示す試験システムにおいては、期待値が固定化されているにも関わらず、故障箇所が一箇所だけである場合には、一回の試験動作を実行するだけで故障箇所を特定することができる。即ち、メモリ容量削減及びテスト出力端子数の削減を実現しながらも、複数のスキャンチェーン３０−１乃至３０−Ｎのうち、何れのスキャンチェーンにおいて故障が発生したのかを一回の試験動作により特定することが可能となっている。これにより、期待値を固定化しているにも関わらず追加の試験動作を実行する必要がなくなり、試験にかかるコストを大幅に削減することができる。
【００４２】
図５は、図１に示すテスタ装置１０による半導体装置２０の試験におけるマスク処理の一例を説明するための図である。
【００４３】
前述のように、図１に示す半導体装置２０に内蔵されるテーブル回路２２においては、入力Ｎビットが全ビット"１"であるか又は全ビット"０"である入力ビットパターンが出力Ｍビットの特定のビットパターン（例えば全ビットゼロ）に対応付けられている。更にテーブル回路２２においては、入力Ｎビットのうちの特定のビットの値が他のビットの値と異なっている状態が、上記の特定のビットパターンに対応付けられるように、テーブル回路２２の入出力関係を変更可能であってよい。
【００４４】
具体的には、テスタ装置１０のメモリ１２に格納されるテーブル書き換えデータをテーブル制御端子２６を介してテーブル回路２２に書き込むことにより、テーブル回路２２の入出力関係を図３に示す入出力関係から図５に示す入出力関係に変更可能であってよい。図５に示されるテーブル回路２２の入出力関係においては、入力Ｎビットのうちの第２ビットｃ２の値のみが他のビットの値と異なっている状態が、出力Ｍビットが全ビットゼロであるビットパターン、即ち故障検出無しを示すビットパターンに対応付けられる。
【００４５】
このようにテーブル回路２２の入出力関係を書き換えることにより、ある特定の試験やタイミングにおいて特定の箇所にのみ発生するエラーについてはマスクしてしまい、故障として検出されないようにすることが可能となる。これにより、より柔軟な試験が可能となる。
【００４６】
図６は、半導体装置の第２実施例の構成の一例を示す図である。図６に示す半導体装置は、４個の回路ブロック２１−１乃至２１−４、８個のスキャンチェーン３０−１乃至３０−８、及び各々が４入力３出力である２個のテーブル回路２２−１及び２２−２を含む。スキャンチェーン３０−１乃至３０−４は、回路ブロック２１−１乃至２１−４に対してそれぞれ設けられている。またスキャンチェーン３０−５乃至３０−８も、回路ブロック２１−１乃至２１−４に対してそれぞれ設けられている。即ち、回路ブロック２１−１乃至２１−４の各々には、２本のスキャンチェーンが設けられている。
【００４７】
テーブル回路２２−１は、４個のスキャンチェーン３０−１乃至３０−４のそれぞれから出力される４ビットのスキャン出力データＣ１−１乃至Ｃ４−１を入力として受け取り、３ビットのテスト出力データｓｏ１−１乃至ｓｏ３−１を出力する。テーブル回路２２−２は、４個のスキャンチェーン３０−５乃至３０−８のそれぞれから出力される４ビットのスキャン出力データＣ１−２乃至Ｃ４−２を入力として受け取り、３ビットのテスト出力データｓｏ１−２乃至ｓｏ３−２を出力する。
【００４８】
図７は、図６に示すテーブル回路２２−１及び２２−２の入出力関係の一例を示す図である。テーブル回路２２−１及び２２−２の各々は、図７に示される入出力関係を有してよい。図７の表において、「Ｘ＝１（第１グルーブ）」は、第１のグループのスキャンチェーン（第１スキャンチェーン３０−１乃至第４スキャンチェーン３０−４）に関するテーブル回路２２−１の入出力関係を示す。また「Ｘ＝２（第２グルーブ）」は、第２のグループのスキャンチェーン（第５スキャンチェーン３０−５乃至第８スキャンチェーン３０−８）に関するテーブル回路２２−２の入出力関係を示す。
【００４９】
図７に示される入出力関係においては、入力４ビットＣ１−Ｘ乃至Ｃ４−Ｘが全ビット"１"であるか又は全ビット"０"である入力ビットパターンが、出力３ビットｓｏ１−Ｘ乃至ｓｏ３−Ｘが全ビット"０"であるビットパターンに対応付けられている。また入力の４ビットにおける第Ｙビット（Ｙ＝１〜４）のみ値が異なる場合には、出力３ビットが２進数Ｙとなるように、入力４ビットと出力３ビットとが対応付けられている。上記以外の入力４ビットのビットパターンに対しては、出力３ビットが全ビット"１"であるビットパターンが対応付けられている。
【００５０】
図６のように回路ブロック２１−１乃至２１−Ｎの各々に２本又はそれ以上のスキャンチェーンが設けられている場合には、それぞれのスキャンチェーンを２個又はそれ以上の数にグループ分けし、それぞれのグループに対してテーブル回路を設ければよい。テスタ装置１０側では、期待値比較回路１１により、各々のテーブル回路からのテスト出力データをチェックすればよい。
【００５１】
図８は、半導体装置の第３実施例の構成の一例を示す図である。図８に示す半導体装置は、４個の回路ブロック２１−１乃至２１−４、スキャンチェーン部分３０−１Ａ乃至３０−４Ａ及び３０−１Ｂ乃至３０−４Ｂ、及び各々が４入力３出力である２つのテーブル回路２２Ａ及び２２Ｂを含む。
【００５２】
図８に示される第３実施例の構成において、回路ブロック２１−１乃至２１−４の各々には、図２に示される第１実施例の構成と同様に、１本ずつスキャンチェーンが設けられている。但し図８の構成では、当該一本のスキャンチェーンを前半部分と後半部分とに分けて示してある。即ち例えば回路ブロック２１−１に対して設けられた一本のスキャンチェーンは、前半のスキャンチェーン部分３０−１Ａと後半のスキャンチェーン部分３０−１Ｂとに分けて示されている。
【００５３】
図２に示される第１実施例では、回路ブロック２１−１乃至２１−４の各々に設けられた一本のスキャンチェーンの終端から出力されるスキャン出力データをテーブル回路２２に入力していた。それに対して図８に示される第３実施例では、回路ブロック２１−１乃至２１−４の各々に設けられた一本のスキャンチェーンの終端からスキャン出力データを取り出すだけでなく、当該スキャンチェーンの途中からもスキャン出力データを取り出している。即ち、第１のテーブル回路２２Ａは、回路ブロック２１−１乃至２１−４のそれぞれに設けられた４個のスキャンチェーンのそれぞれの途中から出力される４ビットＣ１−１乃至Ｃ４−１を受け取り、３ビットｓｏ１−１乃至ｓｏ３−１を出力する。また第２のテーブル回路２２Ｂは、回路ブロック２１−１乃至２１−４のそれぞれに設けられた４個のスキャンチェーンの終端から出力される４ビットＣ１−２乃至Ｃ４−２を受け取り、３ビットｓｏ１−２乃至ｓｏ３−２を出力する。３ビットｓｏ１−１乃至ｓｏ３−１はテスト出力端子２７Ａから外部に出力され、３ビットｓｏ１−２乃至ｓｏ３−２はテスト出力端子２７Ｂから外部に出力される。
【００５４】
図９は、図８に示される半導体装置の動作の一例を示す図である。図９（ａ）は、テスト入力端子からテスト入力データＳＩとして"１０１０１０１０１"が入力され、シフト動作を行うことにより、各スキャンチェーンにテスト入力データ"１０１０１０１０１"が設定された状態を示している。
【００５５】
図９（ｂ）は、ロジック回路を動作させ、ロジック回路からの出力データをスキャンチェーンの各スキャンフリップフロップに取り込むキャプチャー動作を実行した後の状態を示している。この例では、スキャンチェーン部分３０−１Ａ乃至３０−２Ａには"１０００１"が取り込まれ、スキャンチェーン部分３０−１Ｂ乃至３０−２Ｂには"１０１１１"が取り込まれることが想定されている。但し、回路の誤動作により、スキャンチェーン部分３０−１Ａにおいてはビット位置４０に対応するスキャンフリップフロップの格納データが、誤った値"１"に設定されてしまっている。
【００５６】
図９（ｃ）は、キャプチャー動作の後、スキャンフリップフロップのデータを順次シフトさせることにより、スキャンチェーンからのスキャン出力データをテーブル回路２２に順次入力させる動作を示している。テーブル回路２２Ｂから出力される出力３ビットは各サイクルにおいて"０００"となっており、回路が正常動作していることを示している。一方、テーブル回路２２Ａから出力される出力３ビットは第２サイクル４１において"１００"となっており、スキャンチェーン部分３０−１Ａに対応するロジック回路の部分に故障があることを示している。
【００５７】
上記のように、スキャンチェーンの終端からだけでなく途中からもスキャン出力データを取り出すことにより、テスト出力データを確認する時間（サイクル数）を短くし、試験コストを削減することができる。この場合、テスト出力端子の数が増加することになるが、同一構成の回路ブロックの数が大規模である場合にはテーブル回路２２の導入によるテスト出力端子数の削減効果は極めて大きいので、テスト出力端子の数を若干増やしても時間短縮することには意味がある。例えば図１に示す構成において１６個の回路ブロックが設けられている場合には、５個のテスト出力端子が必要になる。この場合にスキャンチェーンを２分割しても、２倍の１０個のテスト出力端子が必要になるだけであり、テスト出力端子の個数は回路ブロックの個数よりも依然として小さい。従って、スキャンチェーンを２分割することで、出力端子数削減の効果を維持しながらも、テスト時間削減の効果を得ることができる。
【００５８】
図１０は、半導体装置の第４実施例の構成の一例を示す図である。図１０に示す半導体装置は、４個の回路ブロック２１−１乃至２１−４、スキャンチェーン部分３０−１Ａ乃至３０−４Ａ及び３０−１Ｂ乃至３０−４Ｂ、テーブル回路５１及び５２、ＯＲ回路５３−１乃至５３−４、及びテーブル回路２２を含む。
【００５９】
図１０に示される第４実施例におけるスキャンチェーンの構成は、図８に示される第３実施例におけるスキャンチェーンの構成と同様である。即ち、回路ブロック２１−１乃至２１−４の各々に設けられた一本のスキャンチェーンの終端からスキャン出力データを取り出すだけでなく、当該スキャンチェーンの途中からもスキャン出力データを取り出している。図１０に示される構成では、これらのスキャン出力データは、テーブル回路５１とテーブル回路５２とにそれぞれ入力される。テーブル回路５１とテーブル回路５２とは同一の入出力関係を有してよい。
【００６０】
テーブル回路５１は、回路ブロック２１−１乃至２１−４のそれぞれに設けられた４個のスキャンチェーンのそれぞれの終端から出力される４ビットを入力端子Ｃ１乃至Ｃ４にて受け取り、出力端子ｏｕｔ１乃至ｏｕｔ４から４ビットを出力する。テーブル回路５２は、回路ブロック２１−１乃至２１−４のそれぞれに設けられた４個のスキャンチェーンのそれぞれの途中から出力される４ビットを入力端子Ｃ１乃至Ｃ４にて受け取り、出力端子ｏｕｔ１乃至ｏｕｔ４から４ビットを出力する。テーブル回路５１からの４ヒット出力とテーブル回路５２からの４ピット出力とはＯＲ回路５３−１乃至５３−４にそれぞれ入力され、ビット毎の論理和演算が実行される。ＯＲ回路５３−１乃至５３−４の出力は、図３に示す入出力関係を有するテーブル回路２２に入力され、テーブル回路２２から３ビットのテスト出力データｓｏ１乃至ｓｏ３が出力される。
【００６１】
図１１は、図１０に示すテーブル回路５１及び５２の入出力関係の一例を示す図である。図１１に示される入出力関係では、入力４ビットが全て同一値であるビットパターンは、出力４ビットが全て"０"であるビットパターンに対応付けられている。また入力４ビットにおいてある１つのビット位置においてのみ値が異なるビットパターンは、出力４ビットにおいて当該ビット位置と同一のビット位置においてのみ値が"１"であるビットパターンに対応付けられている。この入出力関係に従い入力４ビットを出力４ビットに変換することにより、１ビットまでの故障のあるビット位置を正論理で示したビットパターンが得られることになる。
【００６２】
図１０に示すＯＲ回路５３−１乃至５３−４が、テーブル回路５１及び５２の出力のビット毎の論理和を計算することにより、２セットのスキャン出力データのいずれかにおいて存在する１ビットまでの故障ビット位置を正論理で示したビットパターンが得られる。即ち、スキャンチェーンの終端から出力された第１のスキャン出力データと途中から出力された第２のスキャン出力データとのいずれかにおいて、１ビットだけ周囲とは値の異なるビットかあった場合には、当該ビット位置が正論理で示されることになる。このようにして計算された４ビットのデータは、４個のスキャンチェーンのそれぞれの終端から出力される第１の４ビットと４個のスキャンチェーンのそれぞれの途中から出力される第２の４ビットとを、１セットの４ビットのデータに圧縮したものであると考えられる。この圧縮は、正論理への変換と論理和演算とによって実現される。
【００６３】
テーブル回路２２は、圧縮後の４ビットのビットパターンを入力として、３ビットのテスト出力データｓｏ１乃至ｓｏ３を生成する。このテスト出力データｓｏ１乃至ｓｏ３は、第１のスキャン出力データ又は第２のスキャン出力データのいずれかにおいて１ビットのみ値が異なる位置を、２進数で表現したビットパターンとなっている。値の異なるビットが存在しない場合には、２進数のゼロ（全ビットゼロ）のビットパターンがテスト出力データｓｏ１乃至ｓｏ３として生成される。
【００６４】
上記のように、スキャンチェーンの終端からだけでなく途中からもスキャン出力データを取り出すことにより、テスト出力データを確認する時間（サイクル数）を短くし、試験コストを削減することができる。図１０に示す構成においては、データを圧縮することにより１個のテーブル回路２２のみを用いているので、図８に示す構成とは異なりテスト出力端子の数が増えることはない。即ち、テスト出力端子数の削減の効果が低減されることはない。但し、データを圧縮したことにより、スキャンチェーンの前半で発生した故障とスキャンチェーンの後半で発生した故障とを区別することはできなくなる。
【００６５】
図１２は、半導体装置２０の第５実施例の構成の一例を示す図である。図１２に示す半導体装置２０は、７個の回路ブロック２１−１乃至２１−７、７個のスキャンチェーン３０−１乃至３０−７、及び７入力５出力のテーブル回路２２を含む。テーブル回路２２は、スキャンチェーン３０−１乃至３０−７から７ビットのスキャン出力データｃ１乃至ｃ７を入力として受け取り、５ビットのテスト出力データｓｏ１乃至ｓｏ３を出力する。図１２に示す半導体装置２０では、１ビット故障の故障箇所だけでなく、２ビット故障の故障箇所も特定できるように、テーブル回路２２の入出力関係が設定されている。
【００６６】
図１３は、図１２に示すテーブル回路２２の入出力関係の一例を示す図である。スキャン出力データｃ１乃至ｃ７の７ビットのうちで、他のビットとは値が異なるビットの位置を"Ａ"で示してある。即ち、"Ａ"が記載されている行においては、"Ａ"が記載されているビットのみが"０"で残りのビットが"１"であるか、或いは"Ａ"が記載されているビットのみが"１"で残りのビットが"０"であるかのいずれかである。入力されるスキャン出力データｃ１乃至ｃ７の７ビットの各ビットパターンに対して、図１３に示されるように、テスト出力データｓｏ１乃至ｓｏ５の４ビットのビットパターンが対応付けられている。なお図１３に示す表において、"ＤＥＣ"は、テスト出力データｓｏ１乃至ｓｏ５の示す２進数を１０進数で示したものである。
【００６７】
例えば、テスト出力データｓｏ１乃至ｓｏ５が"００１１０"である場合には、スキャン出力データｃ６の位置でビット値が異なっていること、即ち回路ブロック２１−６にて故障が発生していることが分かる。また例えば、テスト出力データｓｏ１乃至ｓｏ５が"１００１０"である場合には、スキャン出力データｃ２及びｃ７の位置でビット値が異なっていること、即ち回路ブロック２１−２及び２１−７にて故障が発生していることが分かる。
【００６８】
上述の第５実施例では、前述の実施例のようにスキャン出力データにおいて１ビットのみ値が異なるビット位置を特定できるようにするだけではなく、２つのビット位置で値が異なる場合にも、それら２つのビット位置を特定できるようにすることが可能である。即ち、２箇所の故障が存在する場合にも、それらの故障箇所を特定することが可能である。これにより、半導体装置２０の品質判定を行う際に、判定をより詳細に行うことができる。即ち、故障検出無しとの試験結果に対しては良品、単数故障であるとの試験結果に対しては高品質部分良品、２個の故障であるとの試験結果に対しては低品質部分良品、３個以上の故障であるとの試験結果に対しては不良品である等の品質判定が可能になる。
【００６９】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【符号の説明】
【００７０】
１０  テスタ装置
２０  半導体装置
１１  期待値比較回路
１２  メモリ
２１−１〜２１−Ｎ  回路ブロック
２２  テーブル回路
２５  テスト入力端子
２６  テーブル制御端子
２７  テスト出力端子
３０−１〜３０−Ｎ  スキャンチェーン
３１  スキャンフリップフロップ
３２  ロジック回路
【図１】
2020034287.tif 000003
【図２】
2020034287.tif 000004
【図３】
2020034287.tif 000005
【図４】
2020034287.tif 000006
【図５】
2020034287.tif 000007
【図６】
2020034287.tif 000008
【図７】
2020034287.tif 000009
【図８】
2020034287.tif 000010
【図９】
2020034287.tif 000011
【図１０】
2020034287.tif 000012
【図１１】
2020034287.tif 000013
【図１２】
2020034287.tif 000014
【図１３】
2020034287.tif 000015