以下、添付図面を参照し、本明細書に開示された実施例を詳しく説明する。各図面の構成要素に参照符号を割り当てることにおいて、同一の構成要素に対しては、たとえ異なる図面上に示されていても、可能な限り同一の符号を割り当てている。また、本発明の実施例を説明することにおいて、関連した公知の構成または機能に関する具体的な説明が本発明の要旨を薄め得ると判断される場合には、その詳細な説明を省略する。
さらに、本発明の構成要素を説明することにおいて、第1、第2、A、B、(a)、(b)などの用語を用いることができる。このような用語は、当該構成要素を他の構成要素と区別するためのものであり、その用語によって当該構成要素の本質や順番などが限定されることではない。明細書全体で、ある部分がある構成要素を「含む」または「備える」ということは、特に反対の記載がない限り、他の構成要素を除外することではなく、他の構成要素をさらに含むことができるとの意味である。また、明細書に記載した「部」、「モジュール」などの用語は、少なくとも一つの機能や動作を処理する単位を意味し、このような処理単位は、ハードウェアやソフトウェアまたはハードウェア及びソフトウェアの組み合わせにより実現することができる。
図1は、スキャン設計方法を適用したICチップ(100)の一例を示す概略図である。
図1に示すように、ICチップ(100)は、組み合わせ回路(110)と順序回路(Sequential Logic)を含む。順序回路は、複数のフリップフロップ(120、130、140)で構成される。それぞれのフリップフロップ(120、130、140)は、マルチプレクサ(MUX:Multiplexer)方式のスキャンフリップフロップを含む様々な方式で構成することができる。
ICチップ(100)は、メイン入力(PI:Primari Input)ポート(150)、メイン出力(PO:Primary Output)ポート(152)、スキャン活性化(SE:Scan Enable)ポート(160)、スキャン入力ポート(162)、クロック(Clock)入力ポート(164)、スキャン出力ポート(166)などを含む。スキャン活性化ポート(160)とクロック入力ポート(164)はフリップフロップ(120、130、140)と接続される。それぞれのフリップフロップ(120、130、140)は、組み合わせ回路(110)と接続され、それぞれのフリップフロップに記憶されている値を組み合わせ回路(110)に出力し、組み合わせ回路(110)から出力された値を入力として受ける。
メイン入力ポート(150)及びメイン出力ポート(152)は、それぞれICチップの正常な動作過程でデータを入力し、出力するためのポートである。
スキャン活性化ポート(160)は、スキャン活性化信号またはスキャン非活性化信号を入力するためのポートである。スキャン活性化信号またはスキャン非活性化信号によって、ICチップは正常な動作を行うノーマル(Normal)モード(または機能(Functional)モード)になるか、またはICチップをテストするスキャンモードになる。
スキャン入力ポート(162)は、ICチップ(100)をテストするためにスキャンパターンを入力するためのポートであり、スキャン出力ポート(166)は、スキャンパターンによるテスト結果を出力するためのポートである。スキャン出力ポートを介して出力されるビットパターンを出力スキャンパターン、出力パターン、またはスキャンテスト結果パターンという。
クロック入力ポート(164)は、スキャン入力ポート(162)を介して入力されるスキャンパターンをフリップフロップ(120、130、140)にシフト(Shift)してロードするか、または組み合わせ回路(110)の出力をキャプチャーしてフリップフロップ(120、130、140)に格納できるようにトリガー(Trigger)機能を果たすクロック信号を入力するためのポートである。例えば、フリップフロップ(120、130、140)、クロック入力ポート(164)を介して入力されるクロック信号の立ち上がりエッジ(Rising Edge)または立ち下がりエッジ(Falling Edge)によってトリガーされる。
スキャン入力ポート(162)から複数個のフリップフロップ(120、130、140)を経てスキャン出力ポート(166)につながる経路(点線で示した経路)をスキャンチェーン(Scan Chain)またはスキャン経路(Sacn Path)という。図1では単一スキャン経路を示しているが、複数のスキャン経路を用いることもできる。
機能モードの場合、組み合わせ回路(110)は、メイン入力ポート(150)を介してデータの入力を受け、メイン出力ポート(152)を介して結果を出力する動作を行う。機能モードで、フリップフロップ(120、130、140)は、クロック信号によって組み合わせ回路(110)の出力値の入力を受け、スキャンテスト時には、このような動作をスキャンキャプチャー(Scan Capture)という。
スキャンモードで、スキャンパターンの各ビットはクロック信号によってスキャン経路上に存在するフリップフロップ(120、130、140)に順次シフトイン(Shift−In)され、またスキャン出力ポート(166)を介してシフトアウト(Shift−Out)される。ここで、フリップフロップ(120、130、140)にスキャンパターンがシフトインされるのをロード(Load)といい、フリップフロップ(120、130、140)に記憶されている値がスキャン出力ポート(166)を介してシフトアウトされることをアンロード(Unload)という。
例えば、ICチップ内のスキャン経路上のフリップフロップ(120、130、140)の数が3個だとすると、各スキャンパターンの長さはスキャン経路上のフリップフロップの数と同一な3ビットの長さを有し、3ビットのスキャンパターンはクロック信号によって順次スキャン経路上のフリップフロップ(120、130、140)にシフトインされる。
即ち、クロック信号の立ち上がりエッジでフリップフロップに値が格納されるとすると、一番目のクロック信号の立ち上がりエッジで一番目のフリップフロップ(140)にスキャンパターンの一番目のビットが格納され、二番目のクロック信号の立ち上がりエッジで一番目のフリップフロップ(140)の出力値は二番目のフリップフロップ(130)に格納され、一番目のフリップフロップ(140)にはスキャンパターンの二番目のビット値が格納される。三番目のクロック信号の立ち上がりエッジで二番目のフリップフロップ(130)の出力値が三番目のフリップフロップ(120)に格納され、一番目のフリップフロップ(140)の出力値は二番目のフリップフロップ(130)に格納され、一番目のフリップフロップ(140)にはスキャンパターンの三番目のビット値が格納される。従って、3回のクロック信号で一つのスキャンパターンがスキャン経路上のフリップフロップ(120、130、140)にロードされる。同様に、3回のクロック信号でスキャン経路上のフリップフロップ(120、130、140)の値がスキャン出力ポート(166)を介してアンロードされる。
以下、スキャンテスト工程をより具体的に説明する。
(1)ICチップ(100)のメイン入力ポート(150)にメイン入力テストデータを印加する。
(2)スキャン活性化ポート(160)にスキャン活性化信号を印加し、ICチップ(100)をスキャンモードに設定する。
(3)スキャン入力ポート(162)にスキャンパターンをシフトインし、スキャン経路上のフリップフロップ(120、130、140)にスキャンパターンをロードする。スキャン経路にロードされたスキャンパターンは組み合わせ回路(110)に印加される。スキャンパターンが組み合わせ回路(110)に印加された後、メイン出力ポート(152)を介して出力される結果を予測したメイン出力値と比較し、比較結果が異なると、当該ICチップを不良品として判定する。
(4)スキャン活性化ポート(160)にスキャン非活性化信号を印加し、ICチップ(100)をスキャンモードから機能モードに切り替える。機能モードでクロック信号が印加されると、フリップフロップ(120、130、140)は組み合わせ回路(110)の出力値をキャプチャーする。このような動作をスキャンキャプチャーといい、この時のモードをスキャンキャプチャーモードという。
(5)スキャン活性化ポート(160)にスキャン活性化信号を印加し、ICチップ(100)を再び機能モードからスキャンモードに切り替える。
(6)そして、スキャン経路上のフリップフロップ(120、130、140)にキャプチャーされた値をスキャン出力ポート(166)を介してシフトアウトすることでアンロードする。
(7)アンロードされた出力パターンと事前に知っている予測パターンを比較し、ICチップ(100)の正常動作可否を把握する。ここで、予測パターンは、ICチップ(100)が正常の場合にメイン入力テストデータとスキャンパターンを印加してスキャンキャプチャー動作を行った後にスキャン出力ポート(166)を介して出力されるスキャンパターンで、テストの前に知っている値または予測される結果パターンである。ステップ(3)での比較結果が同一で、ステップ(7)での比較結果が同一であれば、テスト結果が正常(PASS)であるので、ICチップは良品であり、そうでないと、ICチップは不良品である。テスト正常(PASS)は、ICチップに異常がないと(Fault−Free)判断される場合を意味し、テスト失敗(FAIL)は、ICチップに異常があると判断される場合を意味する。
図2及び3は、本発明が適用されるATE(Automatic Test Equipment)と呼ばれるICチップテストシステムの一実施例の構成を示すブロック図である。
図2及び3に示すように、ICチップテストシステムは、ホストコンピューター(200、300)、テスター本体(210、310)、テストヘッド(220、320)、及びインタフェースボード(230、330)を備える。テストのためにインタフェースボード(230、330)にセットされるテスト対象デバイス(DUT:Device Under Test)は、ウェハー上のICまたはパッケージングされたICチップなどである。DUTがウェハー上のICチップの場合、プローバー(350)をさらに備える。以下、IC回路、ウェハー上のICチップ、パッケージングされたICチップなどを、説明の便宜上ICチップまたはチップと称する。
テスター本体(210、310)は、全体のスキャンテストを制御する。例えば、テスター本体(210、310)はDUTテストのためのセットアップ、DUTテストのための電気的信号の発生、DUTテスト結果信号の観測及び測定などの全般的な工程を制御する。テスター本体(210、310)は、中央処理装置(CPU:Central Processing Unit)、メモリ、ハードディスク、ユーザーインタフェースなどを含むコンピューターで実現することができ、実施例によってDUT(240、340)に電源を供給するデバイスパワーサプライ装置(Device Power Supply)をさらに含むことができる。
テスター本体(210、310)は、各種のディジタル信号を処理する信号処理プロセッサ(DSP:Digital Signal Processor)(不図示)とテストヘッド(220、320)を制御し、DUT(240、340)に信号を印加する制御器及び信号発生器などの専用ハードウェア、ソフトウェア、またはファームウェアなどを含むことができる。テスター本体(210、310)は、メインフレームまたはサーバーとも呼ばれる。
ホストコンピューター(200、300)は、パーソナルコンピューター、ワークステーションなどのコンピューターであり、ユーザーがテストプログラムを実行させ、テスト工程を制御し、テスト結果を分析できるようにする装置である。一般に、ホストコンピューター(200、300)は、CPU、メモリまたはハードディスクのような格納装置、及びユーザーインタフェースなどを含み、テスター本体(210、310)と有線または無線通信で接続される。ホストコンピューター(200、300)はテストを制御するための専用ハードウェア、ソフトウェア、及びファームウェアなどを含む。本実施例ではホストコンピューター(200、300)とテスター本体(210、310)を分けて図示しているが、ホストコンピューター(200、300)とテスター本体(210、310)は一つの装置で実現することもできる。
テスター本体(210、310)またはホストコンピューター(200、300)のメモリにはDRAM、SRAM、フラッシュメモリなどを用いることができる。メモリには、DUTテストを行うためのプログラムとデータを格納することができる。
テスター本体(210、310)またはホストコンピューター(200、300)のソフトウェアまたはファームウェアは、スキャンテストのためのデバイスドライバープログラム、OS(Operating System)プログラム、DUTテストを行うプログラムで、DUTテストのためのセットアップ、DUTテストのための信号の発生、DUTテスト結果信号の観測、分析などを行うための命令コード(Instruction Code)の形態でメモリに格納され、CPUによって実行される。
従って、スキャンパターンは、このようなプログラムによってDUTに印加される。さらに、DUTテスト及びテスト結果のレポーティング及び分析データをプログラムを介しての自動実行で得ることができる。プログラムに用いられる言語として、C、C++、Javaなど、様々な言語を用いることができる。プログラムは、ハードディスク、磁気テープ、またはフラッシュメモリなどの記録装置に格納することができる。
テスター本体(210、310)またはホストコンピューター(200、300)のCPUは、プロセッサ(Processor)であり、メモリに格納されたソフトウェアまたはプログラムのコードを実行する。例えば、キーボードやマウスなどのユーザーインタフェースを介してユーザー命令を受けると、CPUはユーザーの命令を分析し、該当する作業をソフトウェアまたはプログラムを介して行った後、その結果をスピーカー、プリンター、モニターなどのユーザーインタフェースを介してユーザーに提供する。
テスター本体(210、310)またはホストコンピューター(200、300)のユーザーインタフェースは、ユーザーと装置との間で情報を取り交わし、命令を伝達できるようにする。例えば、キーボード、タッチスクリーン、マウスなどのようなユーザー入力のためのインタフェース装置と、スピーカー、プリンター、モニターなどのような出力インタフェース装置などがある。
テストヘッド(220、320)は、テスター本体(210、310)とDUT(240、340)との間に電気的信号を転送するためのチャネルなどを含む。テストヘッド(220、320)の上部にはインタフェースボード(230、330)が備えられる。パッケージングされたICチップに用いられるインタフェースボードを通常ロードボード(Load Board)といい、ウェハー上のICチップのテストに用いられるインタフェースボードを通常プローブカード(Probe Card)という。
本発明の少なくとも一つの実施例で、ホストコンピューター(200、300)はICチップテスト装置(250、360)を含む。
本発明の少なくとも一つの実施例に係るICチップテスト装置(250、360)は、スキャンパターン集合に含まれる少なくとも二つ以上のスキャンセクションのうち、使用可能なシフト周波数を検索する対象である対象スキャンセクションをスキャン経路にシフトしてスキャンテストの結果が正常または失敗であるシフト周波数を検索するシフト周波数検索部(251、361)を備える。
本発明の少なくとも一つの実施例に係るICチップテスト装置(250、360)で、シフト周波数検索部(251、361)は、対象スキャンセクションに対するシフト周波数の検索時に、対象スキャンセクションのシフト周波数を、スキャン経路にシフトする他のスキャンセクションのうち少なくとも一つのスキャンセクションとは異なるように増加または減少して、または異なるシフト周波数に設定して、スキャンテストの結果が正常または失敗であるシフト周波数を検索する。
本発明の少なくとも一つの実施例に係るICチップテスト装置(250、360)で、シフト周波数検索部(251、361)は、対象スキャンセクションに対し使用可能なシフト周波数の検索時に、対象スキャンセクションのシフト周波数を増加または減少しながらスキャンテストの結果が正常から失敗に変わる領域または失敗から正常に変わる領域のシフト周波数を検索する。
本発明の少なくとも一つの実施例に係るICチップテスト装置(250、360)で、シフト周波数検索部(251、361)は、対象スキャンセクションに対して使用可能なシフト周波数の検索時に、対象スキャンセクションに対して第1シフト周波数を用いて得られた第1スキャンテストの結果と、対象スキャンセクション以前の何れか一つのスキャンセクションに対して第1シフト周波数とは異なる第2シフト周波数を用いて得られた第2スキャンテストの結果と、が両方とも正常な場合に第1シフト周波数を対象スキャンセクションに対して使用可能なシフト周波数として決定する。
本発明の少なくとも一つの実施例に係るICチップテスト装置(250、360)は、第1スキャンセクションを含む第1スキャンパターンをICチップのスキャン経路にシフトしてテストを行う第1テスト工程及び第1スキャンセクション以降の第2スキャンセクションを含む第2スキャンパターンをスキャン経路にシフトしてテストを行う第2テスト工程を実行して、第2スキャンセクションに対して使用可能なシフト周波数を検索するシフト周波数検索部(251、361)を備える。
本発明の少なくとも一つの実施例に係るICチップテスト装置(250、360)で、シフト周波数検索部(251、361)は、第1テスト工程で第1スキャンセクションを第1シフト周波数でスキャン経路にシフトし、第2テスト工程で第2スキャンセクションを第1シフト周波数とは異なる第2シフト周波数でスキャン経路にシフトし、第2スキャンセクションに対する使用可能なシフト周波数の検索時に、第1テスト工程でのテスト結果と第2テスト工程でのテスト結果とが両方とも正常な場合に、第2シフト周波数を第2スキャンセクションに対して使用可能なシフト周波数として決定する。
本発明の少なくとも一つの実施例に係るICチップテスト装置(250、360)で、第1スキャンセクションは、第1スキャンパターンまたは第1スキャンパターンの一部であり、第2スキャンセクションは、第2スキャンパターンまたは第2スキャンパターンの一部である。
本発明の少なくとも一つの実施例に係るICチップテスト装置(250、360)で、シフト周波数検索部(251、361)は、第2スキャンセクションに対する使用可能なシフト周波数の検索時に、第2シフト周波数を、スキャン経路にシフトする他のスキャンセクションのうち少なくとも一つのスキャンセクションとは異なるように増加または減少して、または異なるシフト周波数に設定して、第2スキャンセクションに対する使用可能なシフト周波数を検索する。
本発明の少なくとも一つの実施例に係るICチップのテスト方法は、スキャンパターン集合に含まれる少なくとも二つ以上のスキャンセクションのうち、使用可能なシフト周波数を検索する対象である対象スキャンセクションをスキャン経路にシフトしてスキャンテストの結果が正常または失敗であるシフト周波数を検索するシフト周波数検索工程を備える。
本発明の少なくとも一つの実施例に係るICチップのテスト方法において、シフト周波数検索工程は、対象スキャンセクションに対するシフト周波数の検索時に、対象スキャンセクションのシフト周波数を、スキャン経路にシフトする他のスキャンセクションのうち少なくとも一つのスキャンセクションとは異なるように増加または減少して、または異なるシフト周波数に設定して、スキャンテストの結果が正常または失敗であるシフト周波数を検索する工程を含む。
本発明の少なくとも一つの実施例に係るICチップのテスト方法において、シフト周波数検索工程は、対象スキャンセクションに対し使用可能なシフト周波数の検索時に、対象スキャンセクションのシフト周波数を増加または減少しながらスキャンテストの結果が正常から失敗に変わる領域または失敗から正常に変わる領域のシフト周波数を検索する工程を含む。
本発明の少なくとも一つの実施例に係るICチップのテスト方法において、シフト周波数検索工程は、対象スキャンセクションに対して使用可能なシフト周波数の検索時に、対象スキャンセクションに対して第1シフト周波数を用いて得られた第1スキャンテストの結果と、対象スキャンセクション以前の何れか一つのスキャンセクションに対して第1シフト周波数とは異なる第2シフト周波数を用いて得られた第2スキャンテストの結果と、が両方とも正常な場合に第1シフト周波数を対象スキャンセクションに対して使用可能なシフト周波数として決定する工程を含む。
本発明の少なくとも一つの実施例に係るICチップのテスト方法は、第1スキャンセクションを含む第1スキャンパターンをICチップのスキャン経路にシフトしてテストを行う第1テスト工程及び第1スキャンセクション以降の第2スキャンセクションを含む第2スキャンパターンをスキャン経路にシフトしてテストを行う第2テスト工程を実行して、第2スキャンセクションに対して使用可能なシフト周波数を検索するシフト周波数検索工程を備える。
本発明の少なくとも一つの実施例に係るICチップのテスト方法において、シフト周波数検索工程は、第1テスト工程で第1スキャンセクションを第1シフト周波数でスキャン経路にシフトし、第2テスト工程で第2スキャンセクションを第1シフト周波数とは異なる第2シフト周波数でスキャン経路にシフトする工程と、第2スキャンセクションに対する使用可能なシフト周波数の検索時に、第1テスト工程でのテスト結果と第2テスト工程でのテスト結果とが両方とも正常な場合に、第2シフト周波数を第2スキャンセクションに対して使用可能なシフト周波数として決定する工程と、を含む。
本発明の少なくとも一つの実施例に係るICチップのテスト方法において、第1スキャンセクションは、第1スキャンパターンまたは第1スキャンパターンの一部であり、第2スキャンセクションは、第2スキャンパターンまたは第2スキャンパターンの一部である。
本発明の少なくとも一つの実施例に係るICチップのテスト方法において、シフト周波数検索工程は、第2スキャンセクションに対する使用可能なシフト周波数の検索時に、第2シフト周波数を、スキャン経路にシフトする他のスキャンセクションのうち少なくとも一つのスキャンセクションとは異なるように増加または減少して、または異なるシフト周波数に設定して、第2スキャンセクションに対する使用可能なシフト周波数の検索する工程を含む。
図2及び3ではICチップテスト装置(250、360)がホストコンピューター(200、300)に含まれると説明しているが、これは単に一つの実施例であり、プロセッサを有する別途のコンピューターがICチップテスト装置(250、360)を含み、ホストコンピューター(200、300)またはテスター本体(210、310)に接続されて機能を行うこともできる。
図2及び3に示すICチップテストシステムは、本発明の理解を深めるための一つの例に過ぎないので、それぞれの構成を統合して一体型に実現するか、または一つの構成を複数の構成に分離して実現するなど、実施例によって様々な設計変更が可能である。
スキャンパターンは、スキャンテストを行うためにスキャン経路に入力されるビットパターンまたはスキャン経路から出力されるビットパターンを意味する。
スキャンパターンのビットの長さは、1回のスキャンテスト動作のために必要なビットパターンの長さである。例えば、スキャンパターンのビットの長さはスキャンキャプチャー動作を行う前までスキャン経路にシフトされるビットパターンのビットの長さと同一であっても良い。他には、スキャンパターンのビットの長さは、スキャン経路上のフリップフロップなどのようなビット記憶素子(Storage Element)の数と同一であっても良い。スキャンパターンのビットの長さは、以上の説明に限定されず、スキャンテスト回路によって様々な形態に設定することができる。
本発明の実施例は、図1に示すICチップのみならず、スキャン経路にビットパターンをシフトインしてスキャン経路から出力パターンをシフトアウトする様々な種類のチップに適用することができる。
例えば、本発明の実施例は、スキャンパターンをスキャン経路にシフトインする動作、スキャンキャプチャー動作、そしてキャプチャーされたビットパターンをシフトアウトする動作が行える回路を含む様々な種類のチップに適用することができる。
図4は、本発明の少なくとも一つの実施例に係るチップテストに適用可能なスキャンパターンの一例を示す概略図である。
図4に示すように、スキャンモードでシフトイン動作とシフトアウト動作をそれぞれ行う場合にかかる時間を短縮するためにシフトインとシフトアウト動作が同時に行われる。即ち、ロードとアンロード動作が同時に行われる。
例えば、入力パターンK(430)がスキャン入力ポートを介してスキャン経路にシフトインされロードされるとき、入力パターンK−1(400)によるテスト結果がスキャン出力ポートを介して同時にシフトアウトされアンロードされる。この時、アンロードされた出力パターンは入力パターンK−1(400)に対する予測パターンK−1(440)と比較される。一般に入力パターンK−1(400)に対する予測パターンK−1(440)と入力パターンK(430)はテストデータまたはファイルでペアーで管理することができる。
本発明の少なくとも一つの実施例において、シフトインとシフトアウト動作を重ねて(Overlapping)スキャンテストを行うために、スキャン入力ポートを介してシフトインされる入力パターンK(430)と入力パターンK−1(400)に対する予測パターンをペアーで管理する。このように、スキャンパターンは互いに順番を有することができる。実施例によっては、スキャンパターンは順番なしに様々な方法で再配置することができる。
本発明の少なくとも一つの実施例において、一番目のスキャンパターンをスキャン経路にシフトインするとき、同時にシフトアウトされる出力パターンはドンケア(Don’t Care)パターンまたはテスト対象チップのリセットによるスキャン経路状態値である。
スキャンテスト時間を最小化するためのもう一つの方法として、スキャンテストのためのスキャンパターンの総数を減らす方法とスキャンシフト速度を上げる方法がある。
ここで、スキャンシフト速度を上げるのは、スキャンパターンのシフトインまたはシフトアウトのシフト周波数上げるかシフト周波数の周期を短くすることを意味する。反対に、スキャンシフト速度を下げるのは、シフト周波数を下げるかシフト周波数の周期を長くすることを意味する。さらに、スキャンシフト速度を最適化するのは、シフト周波数を最適化するかシフト周波数の周期を最適化することを意味する。
シフト周波数の増加または減少はシフト周波数の周期の減少または増加と実質的に同一であるので、以下では、説明の便宜のため、主にシフト周波数の増減の観点からスキャンテスト時間を最小化する方法について説明する。従って、以下では、明視的な記載がないとしても、周波数の増加または減少は周波数の周期の減少または増加と同等に解釈されても良いし、反対に、周波数の周期の増加または減少は周波数の減少または増加と同等に解釈されても良い。以下、周波数の周期は単に周期とも称する。
図5ないし9は、本発明の少なくとも一つの実施例に係るチップテスト時間を最小化するためにテストデータを少なくとも一つ以上のスキャンセクションに分割する方法の様々な例を示す概略図である。
図5に示すように、ICチップのテストのためにスキャン経路にシフトされるテストデータ(500)のビットパターンを複数のスキャンセクション(510、512、514、516、518)に分割し、スキャンセクション(510、512、514、516、518)別の最適なシフト周波数を決定してスキャンテストに適用することで、スキャンテスト時間を短縮することができる。
本発明の少なくとも一つの実施例において、テストデータ(500)のビットパターンは、図6に示すような複数のスキャンパターンで構成することができる。
図6に示すように、ICチップのテストのために複数のスキャンパターンを用いることができる。スキャンセクションは、少なくとも一つ以上のスキャンパターンで構成するかスキャンパターンの一部で構成することができ、スキャンセクション別に最適なシフト周波数を決定してスキャンテストに適用することで、スキャンテスト時間をより短縮することができる。
第1実施例で、スキャンセクション(600)は、一つのスキャンパターンで構成され、スキャンパターンと一対一に対応する。即ち、スキャンパターンがそのままスキャンセクションになる。
第2実施例で、スキャンセクション(610)は、二つのスキャンパターンを含むことができる。スキャンセクションに含まれるスキャンパターンの数は実施例によって変更可能である。
第3実施例で、スキャンセクション(620)は、第1スキャンパターンの一部と第2スキャンパターンの一部で構成することができる。
第4実施例で、スキャンセクション(630)は、一つのスキャンパターンの一部で構成することができる。
第5実施例で、一つのスキャンパターンを二つのスキャンセクション(640、650)に分割することができる。一つのスキャンパターンに含まれるスキャンセクションの数は実施例によって変更可能である。
テストデータは、様々な実施例に係るスキャンセクション(600、610、520、630、640、650)のうち何れの形態に分割できるし、これらの実施例を二つ以上適用して分割することができる。例えば、図6に示すようにN個のスキャンパターンで構成されたテストデータは、一つのスキャンパターンを含む第1スキャンセクション(600)、二つのスキャンパターンを含む第2スキャンセクション(610)、一つのスキャンパターンの一部を含む第3スキャンセクション(640)及び第4スキャンセクション(650)に分割することができる。
図7に示すように、テストデータ(700)のビットパターンで同一で連続したビット値を有する区間をスキャンセクション(702、704、706、708、710)に分割することができる。同一のビット値が連続してスキャン経路にシフトされると、スキャン経路のビット値スイッチング動作(Switching Activities)が減り、電力消耗が低くなるので、連続したビット値を有するスキャンセクションに高いシフト周波数を割り当てることができる。
例えば、テストデータ(700)のビットパターンで、ビット値が0から1に、または1から0に変わる境界を基準に、テストデータ(700)は少なくとも一つ以上のスキャンセクション(702、704、706、708、710)に分割することができる。さらに、0または1のビット値が連続するビットパターンの区間(710)内でM(Mは、整数)個のビットを一つのスキャンセクション(720、722)に分割することができる。
さらに、テストデータのビットパターンで同一で連続したビット値を有する区間の長さが所定の長さより短いと、この区間をスキャンセクションとして分割しないで、少なくとも二つ以上の区間(702、704)を一つのスキャンセクション(703)に分割することができる。
図8に示すように、スキャンセクション(810)は、再び複数のサブスキャンセクション(Sub Scan Section)(812、814)に分割することができる。例えば、スキャンセクション(810、820)別に検索した最適シフト周波数のうち相対的に低いシフト周波数を有するスキャンセクション(810)を再び複数のサブスキャンセクション(812、814)に分割し、サブスキャンセクション(812、814)に対して再び最適なシフト周波数を検索することができる。
図9に示すように、テストデータ(900、910)の各スキャンセクションに適用する最適なシフト周波数を検索するのにかかる予想時間(以下、「予想所要時間」と称する)を考慮してテストデータを分割するスキャンセクションの数を決めることができる。スキャンセクションの数が多いほど全体のスキャンセクションの最適なシフト周波数を検索するのにかかる予想所要時間が長くなる。予想所要時間は、スキャンセクションの数と予想所要時間との関係を表す前もって設定された数式によって算出することができる。
図9に示す例で、最適なシフト周波数を検索するのにA時間の制約があるとすると、予想所要時間がA時間以下になるようにテストデータ(900)を分割するスキャンセクションの数Nが決められる。最適なシフト周波数を検索するのにB(A>B)時間の制約があるとすると、予想所要時間がB時間以下になるようにテストデータ(910)を分割するスキャンセクションの数M(N>M)が決められる。
テストデータ(900)を分割する数がN個に決まると、テストデータ(900)は決められてN個のスキャンセクションに分割される。例えば、テストデータ(900)を均等なビットの長さを有するN個のスキャンセクションに分割する方法、図7に示すように同一で連続したビット値を有する区間をスキャンセクションに分割するが、区間の数がN個になるまで分割する方法など、様々な方法を適用することができる。
予想所要時間を算出するためには、次のような情報を用いることができる。
・最適なシフト周波数を検索するための開始周波数
・最適なシフト周波数を検索するための終了周波数
・最適なシフト周波数を検索するための周波数の増減単位
・最適なシフト周波数を検索するための周波数の増減方法(連続的な増減または二進検索方法による増減など)
・テストデータに含まれたスキャンパターンの数(SPN)
・スキャンパターンのビットの長さ(SBL)
・テストデータをスキャンセクションに分割する方法や基準(一定のビットの長さ単位で分割、一定の数で分割、またはビット値が変わる境界を基準に分割など)
・スキャンセクションの数(SSN)
・最適なシフト周波数を検索する方法を実行する装置の性能(例えば、プロセッサの性能(CPU速度など)、メモリやハードディスクの容量及び速度など)
・最適なシフト周波数を検索する方法を実行する装置のデータ入出力時間などを考慮したその他のマージン時間
本発明の少なくとも一つの実施例において、最適なシフト周波数を検索する際に開始周波数から終了周波数まで一定の間隔で順次増加する方法を用いるとすると、予想所要時間を算出するための数式の一例は次のようである。
(数1)
予想所要時間(T)=SSN*SPN*SBL*SFP*FN
ここで、SSNはスキャンセクションの数、SPNはスキャンパターンの数、SBLはスキャンパターンのビットの長さ、SFPはシフト周波数の周期、FNはスキャンセクション当り最適なシフト周波数を検索するためのシフト周波数の増加回数を表す。
数1で予想所要時間が与えられると、これを満足させるスキャンセクションの数を決めることができる。
図10は、本発明の少なくとも一つの実施例に係るスキャンセクションの数とスキャンテスト時間の低減率との関係を示すグラフである。
図10に示すように、スキャンセクションの数やスキャンセクションの分割方法によるスキャンテスト時間減少率の推移情報を用いてテストデータのスキャンセクションの分割数を決めることができる。シフト周波数が最適化されたスキャンセクションの数が多いほど、テストデータを用いたスキャンテストの時間減少率が高くなる。
図10で、縦軸はテストデータ全体に単一シフト周波数(Constant Shift Frequency)を用いる場合にかかるスキャンテスト時間対スキャンセクション別に最適なシフト周波数を用いる場合かかるスキャンテスト時間の減少率である。横軸はシフト周波数が最適化されたスキャンセクションの数を表す。
テストデータを分割するスキャンセクションの数が多いほどスキャンセクションの平均ビットの長さは短くなる。そして、スキャンセクションのビットの長さが短いほど最適なシフト周波数は高くなり、スキャンテスト時間をより短縮することができる。
以上で考察したスキャンセクションの様々な分割方法は、本発明の理解を深めるための実施例であり、本発明が図5ないし10に示す方法に限定されるものではない。図5ないし10に示す方法以外にもテストデータを分割する様々な方法を適用できるのは言うまでもない。
図11は、本発明の少なくとも一つの実施例に係るICチップのテスト時間を最小化するために各スキャンセクション別にシフト周波数を割り当てた一例を示す概略図である。
図11に示すように、複数のシフト周波数が各スキャンセクションに割り当てられる。従来のスキャンテストの場合、テストデータの全てのスキャンパターンをICチップのスキャン経路に正常にシフトできる単一シフト周波数が用いられている。このような単一シフト周波数を名目(Nominal)シフト周波数ともいう。
一般に、名目周波数はATPGソフトウェアでスキャンパターンを作成するときに用いられるシフト周波数またはこれを基準に若干調整したシフト周波数であり、ICチップをテストするための全てのスキャンパターンをICチップのスキャン経路に正常にシフトできる単一周波数で、比較的に低い周波数(例えば、約5MHz)である。
従って、名目周波数をテストデータを構成する数千ないし数万個以上のスキャンパターンにそのまま用いる場合、スキャンテスト時間が相当かかることになり、特にICチップの量産テストの場合には、ICチップの原価と市場進入時間(Time−to−Market)に相当な影響を与えることになる。例えば、1個のICチップをテストするのに2秒がかかるとすると、1千万個チップを順次テストすると約5、556時間、即ち、約231日がかかる。高価の装置を用いて数個のチップを同時にテストしても比較的長いテスト時間が必要である。通常ICチップテストサービス業者は使用するテスト装置の台数とテスト時間に基づいて費用を請求するので、チップテストにかかる時間はチップの原価に大きな影響を及ぼすことになる。
このような問題を解決するために、名目シフト周波数を単に上げる場合、スキャンパターンをシフトインまたはシフトアウトする際に発生する電力消耗がICチップが許容する電力消耗の範囲から外れることがあるので、ノーマルなスキャンテストを行うことができなくなる場合がある。さらに、オーバーシフト周波数によってクリティカル経路遅延時間問題、パワーサプライノイズの影響、信号ライン間の干渉影響などにより、良品を不良品と判定するオーバーキル問題が発生する場合がある。これは、ICチップの量産において大変重要な収率と原価に影響を及ぼすことになる。
従って、本発明の実施例は、全体のスキャンパターンに対して名目シフト周波数のような単一のシフト周波数を適用するのではなく、スキャンセクション別にスキャン経路に正常にシフトできる最適なシフト周波数を割り当てる。スキャンセクション別に最適なシフト周波数を検索する工程は、図12以下を参照し、より詳しく説明する。最適なシフト周波数は、スキャンセクションに対して使用可能な最大シフト周波数またはこれより低いシフト周波数を意味する。
図11に示す例で、スキャンセクション1にはシフト周波数Aが割り当てられ、スキャンセクション2にはシフト周波数Bが割り当てられる。スキャンセクション3には、スキャンセクション1と同様にシフト周波数Aが割り当てられる。このように、各スキャンセクションには同一なシフト周波数または互いに異なるシフト周波数を割り当てられる。
例えば、一つのスキャンパターンが複数のスキャンセクションに分割された場合に、一つのスキャンパターンに複数のシフト周波数が割り当てられる。図6を参照すると、一つのスキャンパターンに属する二つのスキャンセクション(640、650)には互いに異なるシフト周波数が割り当てられる。即ち、一つのスキャンパターンに二つのシフト周波数が割り当てられる。
シフト周波数が割り当てられたスキャンセクションは、実施例によってはセクショングループに統合することができる。例えば、二番目のスキャンセクションと三番目のスキャンセクションをセクショングループとし、各スキャンセクションのシフト周波数AとBのうちより低いシフト周波数以下を当該セクショングループに割り当てることができる。
スキャンテスト工程でメイン入力ポートにメイン入力テストデータの印加及びスキャン経路にスキャンパターンを入力した後でメイン出力からのテスト結果の観察は、以下の実施例のチップテスト工程に適用される場合と適用されない場合がある。
図12は、本発明の少なくとも一つの実施例に係るICチップのテスト時間を最小化するためにシフト周波数を検索する一例を示す概略図である。
まず、入力パターン、スキャンセクション、スキャンパターン、及び出力パターンとの関係について説明する。
入力パターン(1202、1204、1206)は、スキャン経路(1210)に入力されるビットパターンである。図12で、シフト周波数を決定する対象である。スキャンセクションKは入力パターンK(1204)と一対一に対応する。最適なシフト周波数を検索または決定しようとするスキャンセクションK(以下、「対象スキャンセクションK」と称する)を含む入力パターンK(1204)の前または後に位置するビットパターンは、対象スキャンセクションに対する補助スキャンセクションまたは補助ビットパターンと称することができる。
(スキャンセクションとスキャンパターンが一対一対応する場合の入力パターン)
対象スキャンセクションK(1204)がスキャンパターンMと一対一に対応する場合に、入力パターンK−1(1202)、入力パターンK(1204)、及び入力パターンK+1(1206)はそれぞれスキャンパターンM−1、スキャンパターンM、及びスキャンパターンM+1と一対一に対応することができる。
(スキャンセクションとスキャンパターンが一対一対応する場合の出力パターンK)
対象スキャンセクションK(1204)がスキャンパターンMと一対一に対応する場合に、対象スキャンセクションK(1204)に対するスキャン経路(1210)の出力パターンはスキャンパターンMに対するスキャン経路(1210)の出力パターンK(1224)に該当する。出力パターンK(1224)は、対象スキャンセクションK(1204)に対するスキャンキャプチャー結果パターンまたはスキャンパターンMがスキャン経路からそのまま出力されたパターンである。
(スキャンセクションとスキャンパターンが一対一対応する場合の出力パターンK−1)
対象スキャンセクションK(1204)がスキャンパターンMと一対一に対応する場合、入力パターンK−1(1202)に対するスキャン経路の出力パターンはスキャンパターンM−1に対するスキャン経路の出力パターンK−1(1222)に該当する。出力パターンK−1(1222)は、スキャンパターンM−1に対するスキャンキャプチャー結果またはスキャンパターンM−1がスキャン経路からそのまま出力されたパターンである。
(スキャンセクションとスキャンパターンが一対一対応する場合の出力パターンK+1)
対象スキャンセクションK(1204)がスキャンパターンMと一対一に対応する場合、入力パターンK+1(1206)に対するスキャン経路の出力パターンは、スキャンパターンM+1に対するスキャン経路の出力パターンK+1である。出力パターンK+1は、スキャンパターンM+1に対するスキャンキャプチャー結果またはスキャンパターンM+1がスキャン経路からそのまま出力されたパターンである。
(スキャンセクションがスキャンパターンの一部の場合の入力パターンK−1、K+1)
例えば、図14に示すように、対象スキャンセクションK(1204)がスキャンパターンMの一部である場合に、入力パターンK−1(1202)は、スキャンパターンM−1及びスキャンパターンMからスキャンセクションK(1204)以外一部を含むことができる。入力パターンK+1は、スキャンパターンM+1及びスキャンパターンMからスキャンセクションK(1204)以外の一部を含むことができる。
(スキャンセクションがスキャンパターンの一部の場合の出力パターンK)
対象スキャンセクションK(1204)が、図14に示すように、スキャンパターンMの一部である場合、対象スキャンセクションK(1204)に対するスキャン経路の出力パターンK(1224)は、対象スキャンセクションK(1204)に対するスキャンキャプチャー結果パターンまたはスキャンセクションKが含まれたスキャンパターンMに対するスキャンキャプチャー結果パターンである。或いは、出力パターンK(1224)は、スキャンセクションK(1204)がスキャン経路からそのまま出力されたパターンまたはスキャンセクションK(1204)が含まれたスキャンパターンMがスキャン経路からそのまま出力されたパターンである。
(スキャンセクションがスキャンパターンの一部の場合の出力パターンK−1、K+1)
対象スキャンセクションK(1204)が、図14に示すように、スキャンパターンMの一部である場合、入力パターンK−1(1202)に対するスキャン経路の出力パターンK―1(1222)は、スキャンパターンM―1に対する出力パターンまたはスキャンパターンM―1及びスキャンパターンMの一部に対する出力パターンである。さらに、入力パターンK+1(1206)に対するスキャン経路の出力パターンK+1は、スキャンパターンM+1に対する出力パターンまたはスキャンパターンM+1及びスキャンパターンMの一部に対する出力パターンである。他の例では、入力パターンK−1(1202)または入力パターンK+1(1206)に含まれたスキャンパターンMの一部に対するスキャン経路の出力パターンは、対象スキャンセクションK(1204)が含まれたスキャンパターンMに対するスキャン経路の出力パターンに反映される。さらにほかの例では、入力パターンK−1(1202)または入力パターンK+1(1206)に対する出力パターンは、入力パターンK−1(1202)または入力パターンK+1(1206)がスキャン経路からそのまま出力されたパターンである。
(スキャンセクションが複数のスキャンパターンにわたる場合)
例えば、図15に示すように、対象スキャンセクションK(1204)が複数のスキャンパターンにわたる場合がある。このような場合、入力パターンK−1(1202)は、スキャンパターンM―1から対象スキャンセクションK(1204)の部分を除いた部分を含み、入力パターンK+1(1206)は、スキャンパターンM+1から対象スキャンセクションK(1204)の部分を除いた部分を含む。この場合、各スキャンパターンにかかっている対象スキャンセクションK(1204)の各部分に対して最適なシフト周波数をそれぞれ検索し、対象スキャンセクションK(1204)に対して割り当てられる最適なシフト周波数を決めることができる。
以上の例は本発明の理解を深めるための例に過ぎないので、本発明はこれに限定されない。さらに、スキャンパターンは、図5ないし10を参照して説明したように、様々な形態のスキャンセクションに分割することができ、スキャンセクションの分割形態により入力パターンKとその前後に位置する入力パターンK−1または入力パターンK+1の形態も適切に変えることができる。即ち、入力パターンK−1(1202)または入力パターンK+1(1206)は、少なくとも一つ以上のスキャンセクションで構成することができる。
図12は、図4を参照して説明したシフトインとシフトアウトが重なって行われる場合にスキャンテスト時間を最小化するための一例を示す。図12は本発明の少なくとも一つの実施例に係る例を説明するためのもので、本発明は図4を参照して説明したシフトインとシフトアウトが同時に行われる場合に限定されないのは言うまでもない。
ICチップのスキャンテストにおいては、入力パターン(1200)に対するテスト結果パターン(1220)を予測パターン(1230)と比較してテスト結果が正常か否かを判断する。即ち、入力パターン(1200)をスキャン経路(1210)にロードした後、キャプチャー動作を行って得られた結果パターン(1220)をアンロードするか、入力パターンをロードした後、キャプチャー動作なしにアンロードし、予測パターン(1230)とアンロードされた結果パターン(1220)とを比較してテスト正常可否を判断する。
本発明の少なくとも一つの実施例において、スキャンパターンまたはスキャンセクションに対するシフト周波数の最適化のためには、対象スキャンパターンまたは対象スキャンセクションがスキャン経路にシフトインされる時、同時に(または順次に)シフトアウトされる出力パターンも正常であるか確認する。例えば、対象スキャンパターン対象スキャンセクションが増加したシフト周波数でスキャン経路に正常にシフトインされても増加したシフト周波数でシフトアウトされる以前の入力パターンに対するテスト結果パターンにエラーが発生する場合があるからである。
図12に示す例で、現在シフト周波数を決める対象であるスキャンセクションK(1204)が特定のシフト周波数でスキャン経路に正常にシフトインされるのかを確認するために、入力パターンK−1(1202)と入力パターンK+1(1206)を共に用いることができる。即ち、対象スキャンセクションK(1204)を繰り返しスキャン経路(1210)に入力する前にスキャン経路を一定のビットパターンで初期化できる入力パターンK−1(1202)を用いることができる。さらに、k番目のスキャンセクション(1204)に対するスキャン経路の出力パターンが繰り返しシフトされるごとに、一定のビットパターンでスキャン経路にシフトインされる入力パターンK+1(1206)を用いることができる。
対象スキャンセクションK(1204)がスキャンパターンMと一対一に対応する場合に、入力パターンK−1(1202)は、対象スキャンセクションK(1204)の前に位置する実際テストに用いられるスキャンパターンM―1またはスキャンパターンM―1をスキャン経路にロードした後にスキャンキャプチャーして得られた結果パターンに対する予測パターンである。
他の例では、対象スキャンセクションK(1204)が図14に示すようにスキャンパターンMの一部である場合、入力パターンK−1(1202)は、対象スキャンセクションK(1204)の前に位置する実際テストに用いられるスキャンパターンM―1またはスキャンパターンM―1をスキャン経路にロードした後スキャンキャプチャーして得られた結果パターンに対する予測パターンを含む。さらに、入力パターンK−1(1202)は、スキャンパターンMから対象スキャンセクションK(1204)以外の一部を含む。ここで、スキャンパターンMから対象スキャンセクションK(1204)以外の一部は実際スキャンテストに用いられるビットパターンの一部である。
さらに、入力パターンK−1(1202)は、スキャン経路のスイッチング動作を減らすためにビット0または1で主に構成されるか、連続したビット0または1で主に構成されるなど予め設定された任意のパターンである。
さらに、他の例では、入力パターンK−1(1202)は、図13に示すように少なくとも一つ以上のスキャンセクションで構成される。
対象スキャンセクションK(1204)がスキャンパターンMと一対一に対応する場合に、k+1番目の入力パターンK+1(1206)は、スキャンセクションK(1204)の後に位置する実際スキャンテストに用いられるスキャンパターンM+1またはスキャンパターンM+1をスキャン経路にロードした後スキャンキャプチャーして得られた結果パターンに対する予測パターンである。
さらに他の例では、対象スキャンセクションK(1204)が図14に示すようにスキャンパターンMの一部である場合、入力パターンK+1(1206)は、対象スキャンセクションK(1204)の後に位置する実際スキャンテストに用いられるスキャンパターンM+1などを含む。さらに、入力パターンK+1(1206)は、スキャンパターンMから対象スキャンセクションK(1204)以外の一部を含む。ここで、対象スキャンセクションK(1204)以外の一部は実際スキャンテストに用いられるビットパターンの一部である。
さらに他の例では、入力パターンK+1(1206)は、スキャン経路上のスイッチング動作を減らすためにビット0または1で主に構成されるか、連続したビット0または1で主に構成されるなど予め設定された任意のパターンである。
さらに他の例では、入力パターンK+1(1206)は、図13に示すように少なくとも一つ以上のスキャンセクションで構成される。
そして、スキャンテストにおいて一番目のスキャンセクションの前と最後のスキャンセクションの後に位置する入力パターンは、スキャン経路のスイッチング動作を減らすためにビット0または1で主に構成されるか、連続したビット0または1で主に構成されるなど予め設定された任意のパターンである。さらに、最初のスキャンセクションの前に位置する入力パターンは、テスト対象チップがリセット状態のときのスキャン経路上の値であっても良い。
本発明の少なくとも一つの実施例において、入力パターンK−1(1202)または入力パターンK+1(1206)は、それぞれ一つ以上のスキャンセクションで構成され、これらセクションのシフト周波数は現在シフト周波数を決める対象であるスキャンセクションK(1204)の最大シフト周波数を検索するのに制約を与えないようにすることができる。
例えば、入力パターンK−1(1202)は最大30MHzまでスキャン経路に正常にシフトイン可能であり、対象スキャンセクションK(1204)は最大50MHzまでスキャン経路に正常にシフトイン可能であるとする。シフト周波数を上げながら入力パターンK−1(1202)と対象スキャンセクションK(1204)を同一のシフト周波数でスキャン経路に順次シフトインすると、対象スキャンセクションK(1204)に対して検索できる最大シフト周波数は30MHzに制約される。シフト周波数が30MHzを超えると入力パターンK−1(1202)に対する出力パターンと予測パターンが互いに異なる場合が出て来るからである。さらに、入力パターンK+1(1206)が最大30MHzまでスキャン経路に正常にシフトイン可能な場合でも、対象スキャンセクションK(1204)に対して検索できる最大シフト周波数は30MHzに制約される。
従って、このような制約を避けるために、本発明の少なくとも一つの実施例においては、入力パターンK−1(1202)または入力パターンK−1(1202)のシフト周波数は予め設定されたシフト周波数(前述した例では30MHz)を超えないようにすることができる。
例えば、入力パターンK−1(1202)または入力パターンK+1(1206)のシフト周波数を予め設定されたシフト周波数(前述した例の場合、30MHz)に固定し、対象スキャンセクションK(1204)のシフト周波数のみを上げ、対象スキャンセクションK(1204)に使用可能な最大シフト周波数を検索することができる。
さらに他の例では、入力パターンK−1(1202)、対象スキャンセクションK(1204)、及び入力パターンK+1(1206)に対して予め設定したシフト周波数(前述の例の場合、30MHz)まで一緒にシフト周波数を上げ、予め設定されたシフト周波数を超える場合に対象スキャンセクションK(1204)のシフト周波数のみを上げることができる。
言い換えれば、対象スキャンセクションK(1204)のシフト周波数と他の入力パターン(1202、1206)のシフト周波数を互いに異なるように制御することができる。入力パターンK−1(1202)または入力パターンK+1(1206)の最大許容シフト周波数が対象スキャンセクションK(1204)の最大シフト周波数より高ければ、対象スキャンセクションK(1204)と他の入力パターン(1202、1206)のシフト周波数を同一に上げることができる。ここで、予め設定されたシフト周波数は、名目シフト周波数または名目シフト周波数を調整したシフト周波数またはプログラムによってテスト装置に予め設定された値またはユーザーが予め設定した値など、実施例によって適切に変更可能であり、上記の例に限定されるのではない。
本発明の少なくとも一つの実施例において、入力パターンK−1(1202)または入力パターンK+1(1206)に対して、本発明の少なくとも一つの実施例に係る方法を用いて最適なシフト周波数が既に決められた場合は、最適なシフト周波数以下を適用して入力パターンK−1(1202)または入力パターンK+1(1206)をスキャン経路にシフトインすることもできる。
例えば、本発明の少なくとも一つの実施例に係る方法をスキャンパターンに対して順次適用する場合、対象スキャンセクションK(1204)のシフト周波数を決定する以前に入力パターンK−1を構成する少なくとも一つ以上のスキャンセクションに対する最適なシフト周波数が先に決定される場合がある。従って、スキャンテスト時間を最小化する装置は、入力パターンK−1(1202)のスキャンセクション別の最適なシフト周波数を用い、入力パターンK+1(1206)に対しては名目シフト周波数または名目シフト周波数を調整したシフト周波数を適用することができる。
そして、対象スキャンセクションK(1204)のシフト周波数を上げながら入力パターン(1202、1204、1206)をスキャン経路(1210)上に順次入力し、実際出力パターン(1220)が予測パターン(1230)と同一であるのかを判断する。この際に、必要に応じて入力パターン(1202、1204、1206)のうち少なくとも一つ以上の入力パターンに対するスキャンキャプチャー動作を行っても良い。
例えば、スキャンテスト時間を最小化する装置は、初期シフト周波数として名目シフト周波数を用い、スキャンテスト時間を最小化する装置に予め設定されたシフト周波数の増減単位でシフト周波数を上げる。即ち、入力パターンK−1(1202)をスキャン経路に名目周波数のように予め設定されたシフト周波数でシフトインすることでロードした後、対象スキャンセクションK(1204)を「初期シフト周波数+増加単位」のシフト周波数でスキャン経路にシフトインし、同時に入力パターンK−1(1202)によるテスト結果(即ち、出力パターンK−1)(1222)をシフトアウトし、既知の予測パターンK−1(1232)と同一であるかを比較する。
このとき、入力パターンK−1(1202)または入力パターンK−1(1202)に含まれた少なくとも一つ以上のスキャンセクションに対して予め設定されたシフト周波数は、対象スキャンセクションK(1204)の初期シフト周波数と互いに異なる場合がある。そして、再び入力パターンK+1(1206)のシフトインと同時に対象スキャンセクションK(1204)に対するテスト結果をシフトアウトして得られた出力パターンK(1224)を既知の予測パターン(1234)と同一であるのかを比較する。このとき、対象スキャンセクションK(1204)が図14に示すようにスキャンパターンの一部である場合、入力パターンK−1(1202)、対象スキャンセクションK(1204)、及び入力パターンK+1(1206)とそれぞれに対する出力パターンは前述のようである。
本発明の少なくとも一つの実施例において、前述した予め設定されたシフト周波数は、対象スキャンセクションK(1204)の最適なシフト周波数を検索するのに制約を与えないようにすることができる。本発明の少なくとも一つの実施例において、入力パターンK−1(1202)または入力パターンK+1(1206)のシフト周波数は対象スキャンセクションK(1204)のシフト周波数と共に増減されないようにするか、対象スキャンセクションK(1204)と異なる周波数を用いることができる。このとき、入力パターンK−1(1202)または入力パターンK+1(1206)のスキャンセクションをスキャン経路に正常に入力可能なシフト周波数を用いる。
本発明の少なくとも一つの実施例において、予め設定されたシフト周波数は、名目シフト周波数以外にも名目シフト周波数を調整した値またはプログラムによって装置に設定された値またはユーザーが設定した値など、実施例によって変更可能であり、前述の例に限定されるものではない。
出力パターンK−1(1222)と予測パターンK−1(1232)が同一で、出力パターンK(1224)と予測パターンK(1234)が同一ならば、現在のシフト周波数が対象スキャンセクションK(1204)に対して使用可能なシフト周波数である。スキャンテスト時間を最小化する装置は、対象スキャンセクションK(1204)に対するシフト周波数を再び所定の大きさだけ増加し、同様に入力パターンK−1(1202)からスキャン経路に入力する工程を行いながら出力パターン(1220)と予測パターン(1230)とを比較する工程を再び行う。
このように、対象スキャンセクションK(1204)に対するシフト周波数を続けて増加し、出力パターン(1220)と予測パターン(1230)が同一でなくなるまで行い、それ以前のシフト周波数以下を対象スキャンセクションK(1204)の最適なシフト周波数として決定することができる。
前述した実施例はシフト周波数を上げて最適なシフト周波数を検索する方法を主に説明しているが、他の実施例としてシフト周波数を対象スキャンセクションK(1204)の出力パターン(1220)と予測パターン(1230)が異なる高い周波数から繰り返し下げながら出力パターン(1220)と予測パターン(1230)が同一になるシフト周波数を検索することができる。そして、出力パターン(1220)と予測パターン(1230)が同一になるシフト周波数以下を対象スキャンセクションK(1204)の最適なシフト周波数として決定することができる。
さらに、シフト周波数を増減しながらスキャンセクションまたはスキャンパターンに対する出力パターンと予測パターンとの繰り返し比較を行う際のシフト周波数増減範囲の例として、スキャンテスト時間を最小化する装置に設定された範囲内で増減するか、出力パターン(1220)と予測パターン(1230)が同一であったのが同一でなくなるシフト周波数または同一でなかったのが同一になるシフト周波数が見つかったらシフト周波数の増減を止める。この場合、スキャンセクション別に使用可能な最大シフト周波数を検索するのにかかる時間を短縮することができる。
実施例によって、対象スキャンセクションK(1204)に対する最適なシフト周波数を検索するための初期シフト周波数は名目周波数以外に様々な値を設定することができる。さらに、低いシフト周波数から上げるのではなく、出力パターンと予測パターンが互いに異なる高いシフト周波数から始め、シフト周波数を下げながら出力パターンと予測パターンが同一になるシフト周波数を検索することができる。さらに、対象スキャンセクションK(1204)のシフト周波数の変化を順次増加または減少するのではなく、様々なアルゴリズムを介して様々な方法で変更し、より短い時間に最適なシフト周波数を検索することも可能である。
本発明の少なくとも一つの実施例において、二進検索(Binary Search)アルゴリズムを用いることができる。例えば、シフト周波数が10MHzでテスト正常で、20MHzでテスト失敗なら、次のシフト周波数はその間の15MHzを試してみる。そして、テスト正常であれば、15MHzと20MHzの間を試し、テスト失敗であれば、10MHzと15MHzの間を試してみる方法である。テスト正常は、テスト対象チップが良品として判定されるのを意味し、テスト失敗は、テスト対象チップが不良品として判定されるのを意味する。
二進検索を採用すると、線形検索(Linear Search)に比べ、テスト正常とテスト失敗の境界になる周波数またはテスト正常で使用可能な周波数範囲を検索するまでかかる時間を短縮できるという効果がある。例えば、線形検索を用いてN回の周波数増減回数でテスト正常の最大周波数を検索すると、二進検索を用いると、約log2(N)の回数でテスト正常の最大周波数を検索することができる。二進検索を用いてテスト正常の最大周波数を検索するまでかかる検索時間短縮効果は、スキャンセクションの総数及びテスト装置によって増減される周波数の単位値が小さいほど線形検索方法より効果的である。
さらに他の例では、テスト対象チップに供給される電圧(Supply Voltage)の変化(Variation)マージンを考慮して最適な周波数や周期を決めることができる。例えば、次のようなステップを経てテスト対象チップに供給される電圧の範囲内で最適な周波数または周期を迅速に検索することができる。
ステップ1
スキャンテスト時間を最小化する装置は、テスト対象チップに供給される電圧を所定の単位で変更しながら電圧別にテストデータのテスト結果が正常である最大シフト周波数またはシフト周波数の範囲を検索する。即ち、テストデータを分割したスキャンセクション別にシフト周波数を検索するのではなく、テストデータ全体に使用可能な最大シフト周波数またはシフト周波数の範囲を検索する。
ステップ2
ステップ1での結果から、スキャンテスト時間を最小化する装置は、テスト対象チップに供給する特定の電圧を選択する。ここで、テスト対象チップに供給する特定の電圧は、ステップ1で検索した電圧別最大シフト周波数のうち最も低いシフト周波数に対応する電圧またはそれに隣接した電圧である。他には、テストセットアップ、製造工程(Manufacturing Process)、またはテスト工程(Test Process)などを考慮してテスト対象チップに供給する電圧を選択することができる。
ステップ3
スキャンテスト時間を最小化する装置は、ステップ2で選択した特定の電圧をテスト対象チップに供給する。そして、スキャンテスト時間を最小化する装置は、特定の電圧を供給した状態で、スキャンセクション別にシフト周波数を増加または減少しながら各スキャンセクションのシフト周波数別にテスト正常またはテスト失敗を把握する。
ステップ4
スキャンテスト時間を最小化する装置は、ステップ3で得られたスキャンセクション別のテスト正常またはテスト失敗の結果がマッピングされたシフト周波数情報を用いてスキャンセクション別に最適なシフト周波数を検索または決定する。
ステップ5
スキャンテスト時間を最小化する装置は、テスト対象チップに供給される電圧を変更しながらステップ4で検索または決定したスキャンセクション別最適なシフト周波数を用いてテスト結果が正常であるのかを確認する。
本発明の少なくとも一つの実施例において、ステップ5での電圧の変更範囲はステップ1での電圧変更範囲と同一であっても良い。さらに、ステップ5での電圧の変更範囲はテストセットアップ、製造工程、またはテスト工程などを考慮してステップ1での変更範囲を調整した範囲でも良い。電圧の変更範囲内で電圧を変更しながらステップ4で検索または決定したスキャンセクション別最適なシフト周波数を用いたスキャンテスト結果が正常であるのかを確認する。
各スキャンセクションが電圧の変更範囲内ですべてテスト正常であれば、正常的にシフト周波数が最適化されたのである。他に、テストセットアップ、製造工程、及びテスト工程などを考慮してスキャンセクション別にシフト周波数が正常的に最適化されたと判断する様々な基準があり得る。例えば、特定の電圧の場合にはテスト失敗をもたらすこともある。
テスト対象チップに供給される電圧の変化マージンを考慮して最適な周波数を検索しないといけない場合、全てのスキャンセクションに対して電圧と周波数をそれぞれ変更しながら検索する方法より、前述したステップのような方法を用いると、最適なシフト周波数またはシフト周波数の周期を迅速に検索または決定することができる。
例えば、SN(スキャンセクションの数)=1、000、VN(電圧変更回数)=10、FN(周波数変更回数)=10だとして、以下の場合を考察する。
場合1
全てのスキャンセクションに対して電圧と周波数をそれぞれ変更しながらテスト正常またはテスト失敗を把握するために必要な検索回数=SNxVNxFN=100、000
場合2
前述したステップ1ないし5を用いてテスト正常またはテスト失敗を把握するために必要な検索回数=(ステップ1)VNxFN+(ステップ3)SNxFN+(ステップ5)VN=(VN+SN)xFN+VN=10、110
場合2が場合1の約10%まで回数が減っているのがわかる。
最適なシフト周波数検索するためのスキャンセクションK(1204)は、図14に示すようにスキャンパターンMの一部で構成される場合がある。即ち、対象スキャンセクションK(1204)の長さがスキャン経路の長さより短い場合がある。このような場合、対象スキャンセクションK(1204)を含むスキャンパターンMで対象スキャンセクションK(1204)を除いた部分のシフト周波数は対象スキャンセクションK(1204)の最適なシフト周波数を検索するのに制約を与えないようにする。
例えば、スキャンパターンMで対象スキャンセクションK(1204)を除いた部分のシフト周波数は、対象スキャンセクションK(1204)のシフト周波数と共に増減されないようにするか、対象スキャンセクションK(1204)と異なるシフト周波数を用いることができる。本発明の少なくとも一つの実施例において、スキャンパターンMで対象スキャンセクションK(1204)を除いた部のシフト周波数としては、対象スキャンセクションK(1204)を除いた部分をスキャン経路に正常ン入力できるシフト周波数を用いることができる。
他の例で、スキャンパターンMで対象スキャンセクションK(1204)を除いた部分に適用されるシフト周波数は、名目シフト周波数以下または対象スキャンセクションK(1204)を除いた部分に対して本発明の少なくとも一つの実施例に係る方法を用いて最適なシフト周波数が既に決まっている場合は、当該最適なシフト周波数以下のように、予め設定されたシフト周波数を用いることができる。対象スキャンセクションK(1204)に対しては、以上で説明したように、シフト周波数増減を介して最適な周波数を検索する。予め設定されたシフト周波数は、名目シフト周波数を調整した値またはプログラムによって装置に設定された値またはユーザーが設定した値など、実施例によって変更可能であり、前述の例に限定されるものではない。
図12は、入力パターンK−1(1202)を一緒に用いて対象スキャンセクションK(1204)の最適なシフト周波数を検索する方法を示しているが、これに限定されるものではない。実施例によって、対象スキャンセクションK(1204)または対象スキャンセクションK(1204)を含むスキャンパターンに対するスキャン経路の出力パターンのみを予測パターンと比較して最適なシフト周波数検索または決定することができる。
(前の入力パターンに対する出力パターンの予測パターンとの比較)
本発明の少なくとも一つの実施例において、対象スキャンセクションK(1204)の最適なシフト周波数を検索または決定する際に、対象スキャンセクションK(1204)の直前に位置する入力パターンK−1(1202)に対する出力パターンまたは対象スキャンセクションK(1204)が含まれたスキャンパターン直前に位置するスキャンパターンに対する出力パターンも予測パターンと比較することができる。
例えば、対象スキャンセクションK(1204)に対するスキャン経路の出力パターンが予測パターンと同一で、入力パターンK−1(1202)に対する出力パターンも予測パターンと同一な場合に、対象スキャンセクションK(1204)をスキャン経路にシフトするときに用いたシフト周波数は対象スキャンセクションK(1204)の使用可能なシフト周波数である。
他の例で、対象スキャンセクションK(1204)が図14に示すようにスキャンパターンの一部の場合、対象スキャンセクションK(1204)を含むスキャンパターンMに対するスキャン経路の出力パターンK(1224)が予測パターンK(1234)と同一で、スキャンパターンMの前に位置するスキャンパターンM−1に対するスキャン経路の出力パターンK−1(1222)が予測パターンK−1(1232)と同一な場合に、対象スキャンセクションK(1204)をスキャン経路にシフトするときに用いたシフト周波数は対象スキャンセクションK(1204)の使用可能なシフト周波数である。
このように、対象スキャンセクションK(1204)のみならず、その前に位置する入力パターン(1202)に対する出力パターン(1222)と予測パターン(1232)とを比較する理由は、対象スキャンセクションK(1204)の前に位置する入力パターン(または入力パターンの一部)に対するスキャン経路の出力パターンが対象スキャンセクションK(1204)のシフトイン周波数によって影響を受けるからである。ここで、入力パターンに対するシフトアウト出力パターンは、対象スキャンセクションK(1204)の前に位置する入力パターン(または入力パターンの一部)がスキャン経路に入力された後にスキャンキャプチャー動作を行って得られるパターンまたはスキャンキャプチャー操作なしにスキャン経路から出力されるパターンである。
図16は、本発明の少なくとも一つの実施例に係るスキャンパターンの使用可能なシフト周波数を検索する方法の一例を示すグラフである。図17は、本発明の少なくとも一つの実施例に係る最適シフト周波数を検索しようとするスキャンパターンのシフト周波数を増加または減少させる際に、他のスキャンパターンのテスト結果が失敗である場合を示すグラフである。
図16に示すように、第2スキャンパターンの最適なシフト周波数を検索するために第1スキャンパターン、第2スキャンパターン、第3スキャンパターンが順次スキャン経路に入力される。本発明の少なくとも一つの実施例において、第1スキャンパターンのシフトインには第1スキャンパターンをスキャン経路に正常に入力可能なシフト周波数(例えば、5MHz)が用いられる。即ち、第1スキャンパターンによるスキャンテスト結果が正常であるシフト周波数が第1スキャンパターンのシフティングに用いられる。
第2スキャンパターンのシフト周波数を5MHzから順次25MHzまで上げた場合に、第1スキャンパターン及び第2スキャンパターンのテスト結果は両方とも正常である。この場合、25MHz以下の全てのシフト周波数は第2スキャンパターンに使用可能なシフト周波数である。
図17に示すように、第2スキャンパターンのシフト周波数を30MHzに上げると、第2スキャンパターンのテスト結果は正常であるが、第1スキャンパターンのテスト結果は失敗である。シフトアウトされる第1スキャンパターンのテスト結果が第2スキャンパターンのシフト周波数によって影響を受けるからである。従って、本発明の少なくとも一つの実施例において、最適なシフト周波数を検索しようとする第2スキャンパターンのみならず、第2スキャンパターンの前の入力パターンである第1スキャンパターンのテスト結果も正常の場合のシフト周波数が第2スキャンパターンの使用可能な周波数である。
最適なシフト周波数を検索しようとするスキャンセクションがスキャンパターンの一部である場合がある。このような場合、前述したように、最適なシフト周波数を検索しようとする対象スキャンセクションが含まれた第2スキャンパターンのみならず、第1スキャンパターンのテスト結果も正常の場合のシフト周波数が対象スキャンセクションの使用可能な周波数である。対象スキャンセクションを除いたビットパターンにはビットパターンをスキャン経路に正常に入力可能なシフト周波数が用いられる。
第3スキャンパターンは、正常にスキャン経路にシフトインされ、同時に第2スキャンパターンに対するテスト結果を正常にシフトアウト可能なシフト周波数が用いられる。
スキャンセクションの最適なシフト周波数を検索するまたはチップの量産テスト時間を短縮するために互いに隣り合う第1スキャンセクションと第2スキャンセクションを順次チップのスキャン経路に入力する際に、第1スキャンセクションのシフト周波数と第2スキャンセクションのシフト周波数を互いに異なるようにしてスキャンテストを行うことができる。例えば、二つのスキャンセクションに用いられた互いに異なるそれぞれのシフト周波数は二つのスキャンセクションを用いたスキャンテストが正常になるシフト周波数以下である。
互いに隣り合う第1スキャンセクションと第2スキャンセクションに対して第1スキャンセクションのシフト周波数より第2スキャンセクションのシフト周波数を高くまたは低くしてスキャンテストを行うことができる。このとき、故障のない(Fault−Free)チップに対するテスト結果が正常の場合の隣り合う二つのスキャンセクションのそれぞれのシフト周波数以下をチップの量産テスト時間を短縮するために用いる。即ち、互いに隣り合うスキャンセクションがスキャンテスト時に互いに及ぼす影響を考慮しなければならない。
例えば、第1スキャンセクションと第2スキャンセクションが互いに隣り合うスキャンパターンだとすると、第1スキャンセクションによるスキャンキャプチャー結果がシフトアウトされるとき、続いて入力される第2スキャンセクションのシフト周波数の影響を考慮しなければならない。例えば、スキャンキャプチャー結果パターンがシフトアウトされるときにシフト周波数によって結果パターンのビット値が変わる場合があるからである。
他の例で、互いに隣り合う第1スキャンセクションと第2スキャンセクションが一つのスキャンパターンに含まれる場合、第1スキャンセクションがシフトインされるときに続いてシフトインされる第2スキャンセクションのシフト周波数の影響を考慮しなければならない。例えば、第2スキャンセクションのシフト周波数によってスキャン経路でシフトされる第1スキャンセクションのビット値が変わる場合があるからである。
さらに他の例で、第1スキャンセクションと第2スキャンセクションを含む第2スキャンパターンの前でシフトインされた第1スキャンパターンのスキャンキャプチャー結果がシフトアウトされるとき、第2スキャンパターンに属する第1スキャンセクション及び第2スキャンセクションの影響を考慮しなければならない。このような影響を考慮しないと、量産テスト時に故障のないチップに対するスキャンテスト結果がテスト失敗になる場合があるからである。
(最適シフト周波数を検索しようとする対象スキャンセクションの前または後の入力パターンに対する出力結果の考慮)
対象スキャンセクションの最適なシフト周波数を検索または決定しようとする場合、対象スキャンセクションのみならず、その前または後に位置する入力パターンまたは対象スキャンセクション(1204)を含むスキャンパターンの前または後に位置するスキャンパターンに対するスキャン経路の出力パターンを予測パターンと比較して実際に正常なテスト対象ICチップが正常なものとしてテストされるのかを把握する。
本発明の少なくとも一つの実施例において、このような工程をシフト周波数を増減しながら繰り返し、対象スキャンセクションの最適なシフト周波数を検索することができる。このとき、テスト結果が正常なシフト周波数は、対象スキャンセクションの使用可能なシフト周波数である。対象スキャンセクションに対するスキャン経路の出力パターンは対象スキャンセクションをスキャン経路にロードしてからキャプチャー動作を行って得られるパターンであるか、対象スキャンセクションまたは対象スキャンセクションが含まれたスキャンパターンをスキャンキャプチャー動作なしにスキャン経路から出力したパターンである。
(最適シフト周波数を検索しようとする対象スキャンセクションの後に入力される入力パターンに対する出力結果の考慮)
最適なシフト周波数を検索または決定するために、対象スキャンセクションの後に位置する入力パターンまたは対象スキャンセクション(1204)を含むスキャンパターンの後に位置するスキャンパターンに対するスキャン経路の出力パターンも予測パターンと比較する工程を含むことができる。
例えば、対象スキャンセクションの最適なシフト周波数を検索する際に、スキャン経路からシフトアウトされる対象スキャンセクションに対する出力パターンが対象スキャンセクションの直後に位置してシフトインされる入力パターンのビット値に影響を与える場合がある。他の例で、対象スキャンセクションの最適なシフト周波数を検索または決定する際に、スキャン経路からシフトアウトされる対象スキャンセクションを含むスキャンパターンに対する出力パターンが対象スキャンセクションを含むスキャンパターンの直後に位置してシフトインされるスキャンパターンのビット値に影響を与える場合がある。
(後のパターンが最適シフト周波数を検索しようとする対象スキャンセクションに影響を与えられる場合)
対象スキャンセクションまたは対象スキャンセクションを含むスキャンパターンに対するスキャン経路の出力パターンがシフトアウトされるとき、後ろに位置してシフトインされる入力パターンが対象スキャンセクションの出力パターンのビット値に影響を与える場合がある。
(後の入力パターンのシフト周波数の考慮)
入力パターン(またはスキャンパターン)による影響を減らすまたはなくすために、対象スキャンセクションまたは対象スキャンセクションを含むスキャンパターンに対するスキャン経路の出力パターンがシフトアウトされるときに直後に位置してシフトインされる入力パターン(またはスキャンパターン)のシフト周波数として、対象スキャンセクションの後に位置してシフトインされる入力パターン(またはスキャンパターン)をスキャン経路に正常にシフトできるシフト周波数を用いることができる。
(前または後の入力パターンのシフト周波数の考慮)
対象スキャンセクションの最適なシフト周波数を検索または決定する際に、対象スキャンセクションの前または後に位置する入力パターン(または入力パターンの一部)のシフト周波数として、対象スキャンセクションと同一又は異なるシフト周波数を用いることができる。このとき、本発明の少なくとも一つの実施例において、対象スキャンセクションの前または後に位置する入力パターンがスキャン経路に正常にシフトできるシフト周波数が用いられる。
これは、現在使用可能な最大シフト周波数を検索しようとする対象スキャンセクションの前または後に位置する入力パターンが前述のように対象スキャンセクションの使用可能な最大シフト周波数に制約を与える場合があるからである。例えば、対象スキャンセクションの前または後に位置する入力パターンの使用可能な最大シフト周波数が対象スキャンセクションの使用可能な最大シフト周波数より低い場合がある。
図18ないし20は、本発明の少なくとも一つの実施例に係る最適なシフト周波数を得るために必要なスキャンパターン、スキャンセクション、及びシフト周波数情報の構成に関する一例を示す概略図である。
図18に示すように、チップを正常にテストできる使用可能なシフト周波数または最適なシフト周波数を検索しようとするスキャンセクションがスキャンパターンの場合である。テストデータ(1800)の各スキャンパターンN+1、スキャンパターンN+2、及びスキャンパターンN+3は、使用可能なシフト周波数または最適なシフト周波数を検索しようとするスキャンセクションである。図18は、スキャンパターンN+1、スキャンパターンN+2、及びスキャンパターンN+3それぞれの使用可能なシフト周波数または最適なシフト周波数を検索または決定するために必要なスキャンパターン、スキャンセクション、及びシフト周波数情報の構成を示す。
本発明の少なくとも一つの実施例において、図18で、T1、T2、T3、及びTarget_Tは、スキャンシフト周波数またはスキャンシフト周波数の周期と関連した情報を表し、説明の便宜上、タイミング識別子(Timing Identifier)、タイミングセット、またはタイミング情報とも称する。
本発明の少なくとも一つの実施例において、タイミング情報は、シフト周波数またはシフト周波数の周期と関連する情報で、シフト周波数またはシフト周波数の周期を含むか表すことができる。タイミング情報は、スキャンパターンまたはスキャンセクションを識別または制御するのに用いることができる。例えば、テスト装置がタイミング情報によって識別されるスキャンパターンまたはスキャンセクションのシフト周波数またはシフト周波数の周期を増減することができる。
図18で、T1はスキャンパターンNに対するシフト周波数またはシフト周波数の周期と関連する情報を表し、スキャンパターンNのタイミング情報である。図18で、スキャンパターンN+1に対するTarget_Tは使用可能なシフト周波数または最適なシフト周波数を検索しようとするスキャンセクションであるスキャンパターンN+1に対するシフト周波数またはスキャンシフト周波数の周期と関連する情報を表し、スキャンパターンN+1のタイミング情報である。即ち、図18で、T1、T2、及びT3は最適なシフト周波数を検索しようとするスキャンセクションの前に位置するスキャンパターンのタイミング情報で、Target_Tはシフト周波数最適化対象であるスキャンセクションのタイミング情報である。
図18で、Target_T、T1、T2、及びT3のうち少なくとも二つ以上は互いに同一であるまたは異なるシフト周波数またはシフト周波数の周期を用いることができる。
図18で、T1、T2、またはT3のシフト周波数またはシフト周波数の周期情報はT1、T2、またはT3に該当するスキャンパターンまたはスキャンセクションがスキャン経路に正常に入力できるようにするシフト周波数またはシフト周波数の周期を用いる。このとき、Target_Tに該当するシフト周波数またはシフト周波数の周期は最適な値を検索するため増減される場合がある。さらに、図18に示す例に限定されずに、一つのスキャンパターンには一つ以上のシフト周波数、シフト周波数の周期、またはタイミング情報が割り当てられるか用いられても良い。
本発明の少なくとも一つの実施例において、あるスキャンセクションの使用可能なシフト周波数または最適なシフト周波数を検索するために用いられる検索用データ(1810、1820、1830)は、図18に示すように少なくとも二つ以上のスキャンパターンを含むことができる。
スキャンパターンN+1の使用可能なシフト周波数または最適なシフト周波数を検索するための検索用データ(1810)は少なくともスキャンパターンN+1をその前に位置するスキャンパターンNを含む。例えば、検索用データ(1810、1820、1830)に含まれたスキャンセクションまたはスキャンパターンは、特定のスキャンセクションにおいて使用可能なシフト周波数または最適なシフト周波数を検索するためにスキャン経路に繰り返し入力されても良い。
このとき、検索用データ(1810、1820、1830)に含まれた少なくとも二つ以上のスキャンパターンを使用するチップのスキャンテスト出力パターンに基づいて各スキャンパターンに対するテスト正常またはテスト失敗を判断する。例えば、出力パターンと予測パターンとを比較することができる。予測パターンは検索用データ(1810、1820、1830)に含まれて管理される。即ち、検索用データ(1810、1820、1830)はそれぞれのスキャンパターンN+1とその前に位置するスキャンパターンNに対する各出力パターンに対応する各予測パターンを共に含むことができる。そして、テスト正常またはテスト失敗情報に基づいてスキャンセクションの使用可能なシフト周波数または最適なシフト周波数を検索することができる。例えば、Target_Tに該当するスキャンパターンN+1の使用可能なシフト周波数または最適なシフト周波数を検索することができる。
スキャンパターンN+1の使用可能なシフト周波数または最適なシフト周波数を検索するために、スキャンパターンN+1とその前に位置するスキャンパターンNを用いてスキャンテストを行う。このとき、二つのスキャンパターンN+1とNそれぞれに対するチップのスキャンテスト出力パターンに基づいてテスト正常またはテスト失敗を判断することができる。そして、スキャンパターンN+1に対する使用可能なシフト周波数または最適なシフト周波数を検索することができる。スキャンパターンN+1とその前に位置するスキャンパターンNを用いたスキャンテスト結果がともに正常であるシフト周波数はスキャンパターンN+1の使用可能なシフト周波数である。
図19に示すように、使用可能なシフト周波数または最適なシフト周波数を検索しようとするスキャンセクションはスキャンパターンである。スキャンセクションに対する最適なシフト周波数を検索するために、対象スキャンセクションの前と後ろに位置するスキャンパターンを含む少なくとも三つ以上のスキャンパターンが用いられる。
例えば、スキャンセクションの使用可能なシフト周波数または最適なシフト周波数を検索するために用いられる検索用データ(1910、1920、1930)は、図19に示すように少なくとも三つ以上のスキャンパターンを含む。使用可能なシフト周波数または最適なシフト周波数を検索するために用いられる検索用データ(1910、1920、1930)のスキャンパターンまたはスキャンセクションはスキャン経路に繰り返し入力されても良い。このとき、検索用データ(1910、1920、1930)に含まれたスキャンパターンの出力パターンと予測パターンとの比較に基づいてICチップのテスト正常またはテスト失敗を判断する。そして、テスト正常可否に基づいて最適なシフト周波数を検索しようとするスキャンセクションの使用可能なシフト周波数を検索することができる。
検索用データ(1910)でスキャンパターンN+1の使用可能なシフト周波数または最適なシフト周波数を検索するために、スキャンパターンN+1とその前に位置するスキャンパターンNによるチップテストを行う。このとき、テスト結果が正常のときのシフト周波数はスキャンパターンN+1の使用可能なシフト周波数である。このとき、スキャンパターンN+1の後に位置するスキャンパターンN+2はスキャン経路に正常にシフトされるシフト周波数を用いることで、スキャンパターンN+2によるチップテストを省略することができる。スキャンパターンN+2によるチップテスト結果も正常な場合のシフト周波数をスキャンパターンN+2の使用可能なシフト周波数として決めることができる。
図19に示すように、タイミング情報Target_T、T1、T2、T3、T4、T5、及びT6のうち少なくとも二つ以上は互いに同一であるかまたは異なるシフト周波数またはシフト周波数の周期であっても良い。シフト周波数の周期とは、シフト周波数でスキャンパターンがシフトする場合のシフト動作の時間間隔であり、シフト周波数の逆数である。本発明の少なくとも一つの実施例において、タイミング情報T1、T2、T3、T4、T5、またはT6のシフト周波数またはシフト周波数の周期情報は、T1、T2、T3、T4、T5、またはT6に該当するスキャンパターンまたはスキャンセクションがスキャン経路に正常に入力されるようにするシフト周波数またはシフト周波数の周期を用いる。このとき、Target_Tに該当するシフト周波数またはシフト周波数の周期は最適な値を検索するために増減されても良い。
さらに、図19に示す例に限定されずに、一つのスキャンパターンには一つ以上のシフト周波数、シフト周波数の周期、またはタイミング情報が多様に用いられても良い。
図20に示すように、使用可能なシフト周波数または最適なシフト周波数を検索しようとするスキャンセクションがスキャンパターンの一部の場合である。即ち、スキャンパターンN+1のスキャンセクションA,A+1、及びA+2は、最適なシフト周波数を検索しようとするスキャンセクションである。
タイミング情報T1、T2、T3、T4、T5、T6、T7、T8、T9、及びT10は、使用可能なシフト周波数または最適なシフト周波数を検索しようとするスキャンセクションの前または後に位置するスキャンパターンまたはスキャンセクションのタイミング情報である。そして、Target_Tは、シフト周波数の最適化対象であるスキャンセクションのタイミング情報である。
Target_T、T1、T2、T3、T4、T5、T6、T7、T8、T9、及びT10のうち少なくとも二つ以上は互いに同一のまたは互いに異なるシフト周波数またはシフト周波数の周期を用いることができる。
本発明の少なくとも一つの実施例において、T1、T2、T3、T4、T5、T6、T7、T8、T9、またはT10のシフト周波数またはシフト周波数の周期情報には、T1、T2、T3、T4、T5、T6、T7、T8、T9、またはT10に該当するスキャンパターンまたはスキャンセクションがスキャン経路に正常に入力されるようにするシフト周波数またはシフト周波数の周期が用いられる。このとき、Target_Tに該当するシフト周波数またはシフト周波数の周期はテスト正常な値または最適な値を検索するために増減される。さらに、図20に示す例に限定されず、一つのスキャンパターンには一つ以上のシフト周波数、シフト周波数の周期またはタイミング情報が多様に用いられる。
スキャンパターンまたはスキャン経路の長さより短いあるスキャンセクションに対する最適なシフト周波数を検索するための検索用データ(2010、2020、2030)の一例を図20に示す。検索用データ(2010、2020、2030)に含まれるスキャンパターンは、図18に示すように少なくとも二つ以上または図19に示すように少なくとも三つ以上のスキャンパターンで構成されても良い。検索用データ(2010、2020、2030)が三つのスキャンパターンで構成されている場合に、少なくとも三つ以上のスキャンパターンに対するスキャン経路の出力パターンが予測パターンと比較される。
図18ないし20を参照して例を挙げたように、スキャンセクションの使用可能なシフト周波数または最適なシフト周波数を検索するための検索用データに含まれたスキャンパターンまたはスキャンセクションはスキャン経路に繰り返し入力されても良い。
さらに、図18ないし20に示す例に限定されず、検索用データに含まれた少なくとも二つ以上のスキャンパターンまたはスキャンセクションに対するタイミング情報は互いに同一であるか、または互いに異なる。
スキャンセクションの最適なシフト周波数を検索するために用いられる検索用データは、図18、19、または20に示す場合のように、少なくとも二つ以上のスキャンパターンを含んで構成することができる。本発明の少なくとも一つの実施例において、検索用データは、図18、19、または20に示すタイミング情報と関連する情報を含むことができる。タイミング情報は、テスト装置によってスキャンパターンまたはスキャンセクションをスキャン経路に入力するタイミングを制御するために用いることができる。タイミングは、シフト周波数またはシフト周波数の周期である。他の一例で、図18ないし20に示すように、互いに隣り合うスキャンセクションに対する最適なシフト周波数を検索するために用いられるそれぞれの検索用データには互いに重なるスキャンパターンが含まれても良い。
本発明の少なくとも一つの実施例において、数多いスキャンセクションのそれぞれの最適なシフト周波数を検索するために用いられる検索用データを作成する工程は、コンピュータープログラムまたはソフトウェアを用いて一括的に処理するのが効率的な場合がある。
例えば、図18ないし20に示すように、それぞれのスキャンセクションの最適なシフト周波数を検索するために用いられるスキャンパターン、スキャンセクション、及びシフト周波数と関連するタイミング情報またはデータを構成または分割する作業はコンピュータープログラムまたはソフトウェアを用いて一括的に処理することができる。さらに、このような作業で最適化しようとするスキャンセクションの数、スキャンセクションのビットの長さ、スキャンセクションの位置などの情報を用いることができる。
さらに、特定のスキャンセクションの使用可能なシフト周波数または最適なシフト周波数を検索するために用いられる検索用データには、予測パターンも含まれても良い。さらに、特定のスキャンセクションの使用可能なシフト周波数または最適なシフト周波数を検索するために用いられる検索用データには、スキャンテスト時に一緒に用いられるICチップのメイン入力(Primary Input)テストデータまたはメイン出力(Primary Output)予測データも含まれても良い。
図21ないし28は、本発明の少なくとも一つの実施例に係る検索用データを生成する方法の一例を示す概略図である。このうち、図21ないし23は、スキャンセクションがスキャンパターンの場合に検索用データを生成する方法に関し、図24ないし26は、スキャンセクションがスキャンパターンの一部の場合に検索用データを生成する方法に関する。
図21は、複数のスキャンパターンを含むテストデータの一例を示す概略図である。
図21に示すように、テストデータ(2100)内のすべてのスキャンパターンに単一シフト周波数(例えば、T1=50ns(20MHz))が与えられている。従って、すべてのスキャンパターンはICチップのスキャン経路に同一のシフト周波数でシフトイン及びシフトアウトされる。
テストデータ(2100)は、入力スキャンパターンと予測パターンをペアーで含む複数のサブテストデータで構成することができる。例えば、51番目の入力スキャンパターンは50番目の入力スキャンパターンの予測パターンとペアーになる。テストデータは、STIL(Standard Test Interface Language)またはWGL(Waveform Generation Language)などのフォーマットで作成することができる。
一番目のサブテストデータのドンケア予測パターンは第1入力スキャンパターンがスキャン経路にシフトインされるときに、シフトアウトされる出力パターンを特定の予測パターンと比較しないとの意味である。フリップフロップが特定の値にセット(Set)またはリセット(Reset)された後に最初の入力スキャンパターンが入力されるときシフトアウトされる出力パターンはドンケア予測パターンではない場合がある。
図22は、スキャンセクションがスキャンパターンである場合にスキャンセクション別の最適なシフト周波数を検索するための検索用データを生成する方法の一例を示す概略図である。
図22に示すように、図21のオリジナルテストデータ(2100)で最適なシフト周波数を検索しようとする対象スキャンセクション(2210)にタイミング情報Target_Tを与える。タイミング情報Target_Tは、対象スキャンセクション(2210)を識別するか、対象スキャンセクションのシフト周波数を制御するために用いられる。例えば、Target_Tは、初期状態で50nsであり、テスト装置によって増減されても良い。
対象スキャンセクション(2210)が入力スキャンパターン51の場合、入力スキャンパターン51の使用可能なシフト周波数または最適なシフト周波数を検索するため、Target_Tが与えたれた検索用データ(2200)をチップに繰り返し入力する。繰り返し入力するたびにTarget_Tに該当する対象スキャンセクション(2210)のシフト周波数の周期を変更する。このとき、対象スキャンセクション(2210)を除いた入力スキャンパターンのシフト周波数の周期はスキャンパターンがスキャン経路に正常に入力できるシフト周波数の周期(例えば、T1=50ns)である。
例えば、対象スキャンセクション(2210)の使用可能な最大シフト周波数を検索するまでTarget_Tに該当するシフト周波数の周期を減少しながら検索用データ(2200)をチップに繰り返し入力する。このとき、入力スキャンパターン50に対する出力パターンはサブテストデータ51に含まれた入力スキャンパターン50に対する予測パターンと比較される。さらに、入力スキャンパターン51に対する出力パターンはサブテストデータ52に含まれた入力スキャンパターン51に対する予測パターンと比較される。入力スキャンパターン50と入力スキャンパターン51のテスト結果が両方とも正常であれば、シフト周波数は対象スキャンセクション(2210)の使用可能なシフト周波数である。
対象スキャンセクション(2210)の使用可能なシフト周波数または最適なシフト周波数を検索するために用いられる検索用データ(2200)の大きさが小さいほど最適なシフト周波数を検索するのにかかる時間を短縮できる。
図23は、最適シフト周波数を検索するのにかかる時間を短縮するための検索用データの生成方法の一例を示す概略図である。
図23に示すように、対象スキャンセクション(2310)である入力スキャンパターン51の使用可能なシフト周波数または最適なシフト周波数を検索するための検索用データ(2300)は、対象スキャンセクション(2310)とその前後に位置する入力スキャンパターン50,52を含む。そして、対象スキャンセクション(2310)の前に位置するサブテストデータ50に含まれた予測パターンはドンケア予測パターンである。即ち、入力スキャンパターン50がスキャン経路にシフトインされると、シフトアウトされる出力パターンは特定の予測パターンと比較されない。
対象スキャンセクション(2310)の使用可能な最大シフト周波数を検索するまでTarget_Tに該当するシフト周波数の周期を変更しながら検索用データ(2300)をチップのスキャン経路に繰り返し入力する。入力スキャンパターン50を用いたテスト結果はサブテストデータ51に含まれた入力スキャンパターン50に対する予測パターンと比較される。さらに、入力スキャンパターン51を用いたテスト結果はサブテストデータ52に含まれた入力スキャンパターン51に対する予測パターンと比較される。入力スキャンパターン50と入力スキャンパターン51のテスト結果が両方とも正常であれば、シフト周波数は対象スキャンセクション(2310)の使用可能なシフト周波数である。
検索用データ(2300)は図23に示す例に限定されるものではなく、対象スキャンセクションの前または後に位置する二つ以上の入力スキャンパターンを含むことができる。
図24は、複数のスキャンパターンを含むテストデータの一例を示す概略図である。図25ないし28は、スキャンセクションがスキャンパターンの一部の場合に最適なシフト周波数を検索するための検索データを生成する方法の一例を示す概略図である。
図24に示すように、テストデータ(2400)内の全てのスキャンパターンに単一のシフト周波数(例えば、T1=50ns(20MHz))が与えられている。従って、すべてのスキャンパターンはICチップのスキャン経路に同一のシフト周波数でシフトインまたはシフトアウトされる。
テストデータ(2400)は、入力スキャンパターンと予測パターンをペアーで含む複数のサブテストデータで構成することができる。例えば、51番目の入力スキャンパターンは50番目の入力スキャンパターンの予測パターンとペアーをなす。
テストデータ(2400)は複数のスキャンセクションに分割することができる。本実施例では、説明の便宜上、入力スキャンパターン51を三つのスキャンセクション(2410、2420、2430)に分割した場合に各スキャンセクションの最適なシフト周波数を検索するための検索用データを生成する方法について図25ないし28を参照して説明する。
図25ないし27に示すように、検索用データ(2500、2600、2700)は、対象スキャンセクション(2510、2610、2710)を含む入力スキャンパターン51とその前後に位置する入力スキャンパターン50、52を含む。そして、サブテストデータ50に含まれた予測パターンはドンケア予測パターンである。即ち、入力スキャンパターン50がスキャン経路にシフトインされるときにシフトアウトされる出力パターンは特定の予測パターンと比較されない。タイミング情報Target_Tは対象スキャンセクション(2510、2610、2710)を識別するか、または対象スキャンセクションのシフト周波数を制御するために用いられる。例えば、Target_Tは初期50nsであり、テスト装置によって増減されても良い。
図25に示すように、検索用データ(2500)は、入力スキャンパターン51の一部である第1対象スキャンセクション(2510)にTarget_Tのタイミング情報を与え、入力スキャンパターン51の残りにはT1のタイミング情報をそのまま維持する。第1対象スキャンセクション(2510)の使用可能な最大シフト周波数を検索するまでTarget_Tに該当するシフト周波数の周期を変更しながら検索用データ(2500)をチップのスキャン経路に繰り返し入力する。入力スキャンパターン50を用いたテスト結果はサブテストデータ51に含まれた入力スキャンパターン50に対する予測パターンと比較される。さらに、入力スキャンパターン51を用いたテスト結果はサブテストデータ52に含まれた入力スキャンパターン51に対する予測パターンと比較される。入力スキャンパターン50と入力スキャンパターン51を用いたテスト結果が両方とも正常であれば、シフト周波数は第1対象スキャンセクションの使用可能なシフト周波数である。
第2対象スキャンセクション(2610)や第3対象スキャンセクション(2710)の最適なシフト周波数を検索するときにもそれぞれ図26及び27の検索用データ(2600、2700)を図25と同じ方法でチップに繰り返し入力してスキャンテストする。
一つのスキャンパターンが複数のスキャンセクションに分割された場合に各スキャンセクションの最適なシフト周波数を検索するために図25ないし27に示すようにスキャンセクション別検索用データ(2500、2600、2700)を作成しないで、図28に示すように一つの検索用データ(2800)を作成することができる。
図28に示すように、検索用データ(2800)は第1ないし第3対象スキャンセクション(2810、2820、2830)にそれぞれのタイミング情報Target_T1、Target_T2、Target_T3を含む。即ち、使用可能なシフト周波数または最適なシフト周波数を同時に検索しようとする対象スキャンセクションの数ほどタイミング識別子を作成し、各対象スキャンセクション(2810、2820、2830)に割り当てる。例えば、第1対象スキャンセクション(2810)の使用可能なシフト周波数または最適なシフト周波数を検索する際にはTarget_T1に該当するシフト周波数を増減することができる。
図28に示すように、複数の対象スキャンセクションのための一つの検索用データ(2800)を生成すると、対象スキャンセクション別検索用データを生成するのに比べ、記録媒体の格納容量を節約することができる。但し、テスト装置の使用可能なタイミング識別子の数またはシフト周波数の数に制約が発生する場合がある。
例えば、テスト装置で使用可能なタイミング識別子の数が3個に制限されていて、スキャンパターンが4個の対象スキャンセクションに分割されると、図25ないし27に示すように対象スキャンセクション別に検索用データ(2500、2600、2700)を作成して最適なシフト周波数を検索すれば良い。
検索用データ(2500、2600、2700、2800)は、図25ないし28に限定されるものではなく、対象スキャンセクションを含む入力スキャンパターンの前または後に位置する二つ以上の入力スキャンパターンを含むことができる。
スキャンパターンまたはスキャンセクションの使用可能なシフト周波数または最適なシフト周波数を検索するために用いられる検索用データの大きさはできるだけ小さいほどシフト周波数を検索するのにかかる時間を短縮できる。例えば、スキャンパターンまたはスキャンセクションの数を小さくするほど使用可能なシフト周波数または最適なシフト周波数を検索するのにかかる時間を短縮することができる。
テストデータの全てのスキャンパターンに対して最適なシフト周波数を検索するためにかかるシフトクロックサイクルの総数を計算するため、SN、BL、FNを次のように定義する。
SN:テストデータを構成するスキャンパターンの数。
BL:一つのスキャンパターンのビットの長さで、1ビットをシフトするのに一つのシフトクロックサイクルが用いられる。
FN:スキャンパターン当りの最適なシフト周波数を検索するためのシフト周波数の増加回数。予め設定された低いシフト周波数から予め設定された高いシフト周波数まで所定の間隔で順次増加する。
本発明の少なくとも一つの実施例において、SN=5,000、BL=1,000で、FN=20とする。次の方法1及び方法2に対してテストデータの全てのスキャンパターンに対して最適なシフト周波数を検索するためにかかるシフトクロックサイクルの総数は次のとおりである。
方法1
図22に示すように、全入力スキャンパターンを含む検索用データを用いて各スキャンパターンの最適なシフト周波数を検索するときにかかるシフトクロックサイクルの総数は次の通りである。
総所要時間=SNxSNxBLxFN=500,000,000,000 Shift Clock Cycles
総所要時間=SNxSNxBLxFN=500、000、000 Shift Clock Cycles
方法2
図23に示すように、三つの入力スキャンパターンを含む検索用データを用いて各スキャンパターンの最適なシフト周波数を検索するときにかかるシフトクロックサイクルの総数は次のとおりである(このとき、一番目のスキャンパターンの最適なシフト周波数を検索する際には一番目及び二番目の二つの入力スキャンパターンを含む検索用データが用いられる。最後のスキャンパターンの最適なシフト周波数を検索する際には最後の入力スキャンパターンとその前の入力スキャンパターンの二つの入力スキャンパターンを含む検索用データが用いられる)。
総所要時間=(3x(SN−2)xBLxFN)+(2x2xBLxFN)=299、960、000 Shift Clock Cycles
上式で、(3x(SN−2)xBLxFN)はスキャンパターン集合の二つのスキャンパターン(即ち、チップに最初に入力されるスキャンパターンと最後に入力されるスキャンパターン)を除いたスキャンパターンの最適なシフト周波数を検索するために用いられるシフトクロックサイクルの総数である。
上式で、(2x2xBLxFN)はチップに最初に入力されるスキャンパターンと最後に入力されるスキャンパターンの最適なシフト周波数を検索するために用いられるシフトクロックサイクルの総数である。
方法2を用いると、方法1で用いられたシフトクロックサイクルの総数の99.94%が減少したのがわかる。
従って、スキャンパターンまたはスキャンセクションの使用可能なシフト周波数または最適なシフト周波数を検索するために用いられる検索用データはできるだけ少ない数のスキャンパターンまたはスキャンセクションを含むようにする。
本発明の少なくとも一つの実施例において、図18を参照して例を挙げたように、検索用データはシフト周波数または最適なシフト周波数を検索しようとするスキャンセクションとその前または後に位置するスキャンパターンを含む少なくとも二つ以上のスキャンパターンで構成することができる。
さらに、図19ないし28に示すように、検索用データはシフト周波数または最適なシフト周波数を検索しようとするスキャンセクションとその前後に位置するスキャンパターンを含む少なくとも三つ以上のスキャンパターンで構成することができる。
本発明の少なくとも一つの実施例において、スキャンセクションの使用可能なシフト周波数または最適なシフト周波数を検索するために用いられる検索用データはデータコードやファイルなどの形態でコンピューターで読み取り可能な記録媒体に格納されていても良い。
さらに、スキャンセクションの使用可能なシフト周波数または最適なシフト周波数を検索するために用いられる検索用データを作成する工程は実施例によって同一装置または異なる装置で行うことができ、テスト装置またはコンピューターなど装置で行っても良い。
図29は、本発明の少なくとも一つの実施例に係るチップテスト時間を最小化する方法の一例を示すフローチャートである。
図29に示すように、スキャンテスト時間を最小化する装置は、ビットパターンまたは一つ以上のスキャンパターンを少なくとも二つ以上のスキャンセクションに分割する(ステップS2900)。テストデータのビットパターンまたはスキャンパターン集合をスキャンセクションに分割する例を図5ないし10に示す。
分割する工程において、ICチップをテストするための数千または数万個以上のスキャンパターンを分割したスキャンセクションやセクショングループに対する検索用データまたはこれらのデータを含むファイルを作成する作業はコンピュータープログラムまたはソフトウェアを用いて一括的に処理するのが効率的な場合がある。
例えば、コンピュータープログラムまたはソフトウェアはシフト周波数を最適化しようとするスキャンセクションの数、スキャンセクションのビットの長さ、スキャンセクションの位置などのスキャンセクションの分割に関連する情報を用いてテストデータをスキャンセクションやスキャンセクショングループに分割し、分割したスキャンセクションやスキャンセクショングループに対する検索用データまたは検索用データを含むファイルを一括して作成することができる。
スキャンセクションの分割に関連する情報は、キーボード、マウス、音声認識装置のようなユーザーインタフェース装置やスキャンセクションの分割に関連する情報を含む情報データコードやファイル、またはデータ通信ネットワークなどを介して取得し、コンピュータープログラムまたはソフトウェアによって用いられる。
スキャンパターンの分割の例として図5ないし10に示す方法を用いることができる。スキャンテスト時間を最小化する装置は、複数のシフト周波数を各スキャンセクションに割り当てる(ステップS2910)。ここで、各スキャンセクションに割り当てられたシフト周波数はスキャン経路の出力パターンが予測パターンと異なる前のシフト周波数以下である。スキャンパターンのスキャンセクションへの分割(ステップS2900)とシフト周波数のスキャンセクションへの割り当て(ステップS2910)は実施例によって同一装置または異なる装置でそれぞれ行っても良いし、テスト装置またはコンピューターなどの装置で行っても良い。
即ち、スキャンテスト時間を最小化する装置は、シフト周波数の増加によって出力パターンと予測パターン異なる直前のシフト周波数を当該スキャンセクションに割り当て可能な最大シフト周波数として検索することができる。他の例で、スキャンテスト時間を最小化する装置は、シフト周波数の減少によって出力パターンと予測パターンが異なる状態から同一になる時のシフト周波数を当該スキャンセクションに割り当て可能な最大シフト周波数として検索することができる。例えば、スキャンセクションのシフト周波数を増減しながらスキャンテストの正常と失敗の境界に近接し、テスト結果が正常であるシフト周波数を検出し、テスト結果が正常であるシフト周波数を当該スキャンセクションに割り当て可能な最大シフト周波数として決定する。
図30は、本発明の少なくとも一つの実施例に係るチップテストの時間を最小化するためにスキャンセクション別の最適なシフト周波数を決定する方法の一例を示すフローチャートである。
図30に示すように、スキャンテスト時間を最小化する装置は、一つ以上のスキャンパターンを少なくとも二つ以上のスキャンセクションに分割する(ステップS3000)。
スキャンテスト時間を最小化する装置は、スキャンセクションをスキャン経路にシフトインする周波数を増減しながら出力パターンが予測パターンと同一状態から異なる状態になるか、または異なる状態から同一になるまでのシフト周波数を検索する(ステップS3010)。例えば、最適なシフト周波数を検索するために用いられるチップは前もって良品として検査されたチップを用いることができる。例えば、名目シフト周波数を用いてスキャンテストを行った結果がテスト正常である良品のチップを用いて本実施例によって最適なシフト周波数を検索する。この点は、以下の他の実施例でも同様である。
そして、スキャンテスト時間を最小化する装置は、出力パターンと予測パターンが同一状態から異なる状態になる時点以前のテスト正常であるシフト周波数を当該スキャンセクションのシフト周波数として決定する(ステップS3020)。以前のシフト周波数というのは、異なる状態になる時点のシフト周波数より低いシフト周波数も含む。
例えば、第1シフト周波数で出力パターンと予測パターンが同一であったが、第1シフト周波数を所定の周波数だけ上げた第2シフト周波数でスキャン経路の出力パターンと予測パターンが異なる場合、スキャンテスト時間を最小化する装置は第2シフト周波数より低く、テスト正常であるシフト周波数をスキャンセクションのシフト周波数として決定するか、決定するための情報を提供する。
最適なシフト周波数を検索するために増減する周波数の単位はテスト装置に前もって設定されているか、ユーザーによって単位を変更または設定されても良い。
本実施例では、説明の便宜上、シフトインするシフト周波数の増減を介してスキャンセクション別に最適なシフト周波数を検索する方法を記述しているが、実施例によって、シフトアウトする周波数を増減しながら最適なシフト周波数を検索することもできる。この点は、以下の実施例においても同様である。
図30を参照して説明した各ステップは実施例によってはスキャンテスト時間を最小化する装置ですべて実行されるものではなく、少なくともその一部がコンピューターなどの他の装置で実施されても良い。
図31は、本発明の少なくとも一つの実施例に係るチップテスト時間を最小化する方法のより具体的な工程の一例を示すフローチャートである。
図31に示すように、スキャンテスト時間を最小化する装置は一つ以上のスキャンパターンを複数のスキャンセクションに分割する(ステップS3100)。
スキャンテスト時間を最小化する装置は、分割したスキャンセクションのうち本実施例によってシフト周波数が決定されてないスキャンセクションを一つ選択する(ステップS3110)。例えば、スキャンテストのためのスキャンパターンの間に所定の順番が決まっている場合なら、スキャンテスト時間を最小化する装置は一番目のスキャンセクションから順次選択することができる。或いは、ユーザーがシフト周波数を最適化しようとするスキャンセクションを選択し、スキャンテスト時間を最小化する装置は選択されたスキャンセクションに対してシフト周波数の最適化を行うことができる。他にも、シフト周波数を最適化しようとするスキャンセクションを選択するのに、様々の方法を用いることができる。
スキャンテスト時間を最小化する装置はシフト周波数を上げる(ステップS3120)。例えば、スキャンテスト時間を最小化する装置に初期シフト周波数は名目シフト周波数などを設定することができる。
スキャンテスト時間を最小化する装置は、スキャンテスト結果が正常である初期シフト周波数から始め、増加したシフト周波数でスキャンセクションをスキャン経路に正常にシフトインできるか否かを判断する(ステップS3130)。選択されたシフト周波数検索対象スキャンセクションが現在のシフト周波数で正常にシフトインできるか否かを判断する具体的な方法の一例を図32を参照して説明する。
スキャンセクションの正常なシフトインが可能であれば(ステップS3140)、スキャンテスト時間を最小化する装置は再びシフト周波数を上げて(ステップS3120)正常なシフトインが可能か否かを判断する工程を繰り返す(ステップS3130)。
シフト周波数の増加によってスキャンセクションの正常なシフトインが不可能な場合が発生すると(ステップS3140)、スキャンテスト時間を最小化する装置は正常なシフトインが可能だった最大シフト周波数以下を当該スキャンセクションのシフト周波数として決定するか、または決定するための情報をコンピューターで読み取り可能な記録媒体に格納する(ステップS3150)。そして、全てのスキャンセクションに対するシフト周波数が決定されるか、またはシフト周波数を決定するための情報をコンピューターで読み取り可能な記録媒体に格納するまで前述の工程を繰り返し行う(ステップS3160)。ここで、記録媒体に格納する情報は、テスト対象ICチップに対して各シフト周波数に対するシフトまたはテスト正常または失敗に関する情報を含む。
スキャンテスト時間を最小化する装置は、必要に応じてスキャンセクションをセクショングループにグループ化する(ステップS3170)。例えば、実際にスキャンテストを行うテスト装置がスキャンテストの間に支援可能な最大シフト周波数変更回数、シフト周波数の最大数、シフト周波数の変更に必要な遅延時間などの制約事項を有する場合に、スキャンテスト時間を最小化する装置はスキャンセクションの数がこの制約事項を満足するようにスキャンセクションをグループ化する。このとき、スキャンテストにかかる総時間が最小化されるよう考慮しても良い。この場合、一つのスキャンセクショングループに含まれる少なくとも二つ以上のスキャンセクションのそれぞれの最適なシフト周波数のうち最も低いシフト周波数以下を当該セクショングループのシフト周波数として決定することができる。セクションをグループ化する工程(ステップS3170)は実施例によって省略しても良い。
例えば、テスト装置で支援可能な最大シフト周波数の変更回数が5の場合、スキャンテスト時間を最小化する装置は現在スキャンセクションの数が5を超えると、スキャンセクションを5個以下のセクショングループに分け、各セクショングループ内セクションの最適なシフト周波数のうち最も低い最適なシフト周波数以下を当該セクショングループのシフト周波数として決定する。セクショングループにグループ化する方法は、同一或いは類似な最適なシフト周波数を有するスキャンセクションをグループ化するなスキャンテストにかかる総時間が最小化されるような様々な方法を含む。
以上で説明した実施例では、主にシフト周波数の増加を考慮して最適なシフト周波数を検索した。他の例では、シフト周波数を減少しながら当該スキャンセクションの最適なシフト周波数を検索することができる。
例えば、スキャンテスト時間を最小化する装置は、テスト失敗である初期シフト周波数から始め、所定の単位で減少したシフト周波数でスキャンセクションをスキャン経路に正常にシフトイン可能か否かを判断する。シフト周波数の減少によってスキャンセクションの正常なシフトインが得られると、スキャンテスト時間を最小化する装置は正常なシフトインが得られた最大シフト周波数以下を当該スキャンセクションのシフト周波数として決定する、または決定するための情報をコンピューターで読み取り可能な記録媒体に格納する。
さらに他の例では、チップは供給電圧や周辺温度などンよっても影響を受けるので、このような環境条件を反映して最適なシフト周波数を検索することができる。即ち、スキャンテスト時間を最小化する装置は、供給電圧や外部温度などの条件を変更しながら最適なシフト周波数を検索する工程を行うことができる。
例えば、スキャンテスト時間を最小化する装置は、チップの仕様またはQA(Quality Assurance)、QC(Quality Control)などのような品質関連政策などを考慮してチップに供給される電圧を増減できる(ステップS3120)。そして、スキャンテスト時間を最小化する装置は、それぞれの増減された供給電圧で本発明の少なくとも一つの実施例に従ってスキャンセクション別に最適なシフト周波数を検索する。スキャンセクションの供給電圧別に検索した最適なシフト周波数が複数存在すると、スキャンテスト時間を最小化する装置は、このうち最も低い最適なシフト周波数以下を選択されたスキャンセクションのシフト周波数として決定する(ステップS3150)。他には、温度増減や色々な条件別に最適なシフト周波数を検索する工程を繰り返し、このうち最も低い最適なシフト周波数以下を当該スキャンセクションのシフト周波数として決定することができる。
ここで、ICチップの供給電圧または周辺温度などを変更しながらICチップの動作周波数範囲のような特性を把握するのを一般に電気的特性テスティング(Electrical Testing)またはシムイング(Shmooing)という。電気的特性テスティングまたはシムイングを介して特性情報に対する表を作成するのをシムプロッティング(Shmoo Plotting)という。作成した表はシムプロット(Shmoo Plot)という。
図31の各工程はスキャンテスト時間を最小化する装置のみならず、コンピューターなどの他の装置によって行われても良い。
図32は、本発明の少なくとも一つの実施例に係るチップテスト時間を最小化する方法で、正常なシフトインを把握する具体的な工程の一例を示すフローチャートである。即ち、図32は、図31のステップS3130に対応するが、図31の特定のステップに限定されるものではなく、スキャン経路にシフトインが正常に行われているのかを判定または決定する工程を含む多様な実施例に適用することができる。
図12及び32に示すように、スキャンテスト時間を最小化する装置は、現在選択されたシフト周波数を決定しようとする対象スキャンセクションK(1204)の前に位置する入力パターンK−1(1202)をスキャン経路(1210)にシフトインする(ステップS3200)。例えば、入力パターンK−1(1202)は、対象スキャンセクションK(1204)を含むスキャンパターンMの前に位置し、次のように(1)または(2)の例を挙げることができる。
(1)入力パターンK−1(1202)が実際にスキャンテストに用いられるスキャンパターンである場合
スキャンテスト時間を最小化する装置は、スキャンパターンM−1をスキャン経路にシフトし、スキャンキャプチャーする工程を行う。この場合、実際のスキャンテスト動作を反映できるというメリットがある。ここで、スキャンパターンM−1は対象スキャンセクションKを含むスキャンパターンMの前に位置するパターンである。
(2)スキャンパターンM−1が実際にスキャンテストに用いられるスキャンパターンM−1を用いたスキャンテスト結果として予測される出力パターンの場合
スキャンテスト時間を最小化する装置は、スキャンパターンM−1をスキャン経路にシフトした後に別途のスキャンキャプチャー工程を行う必要がなくなる。従って、この場合スキャンキャプチャーのためのクロックにかかる時間を減らすことができ、結果的に最適なシフト周波数を検索するのにかかる時間を短縮できる。
スキャンテスト時間を最小化する装置は、入力パターンK−1(1202)をスキャン経路にシフト(ステップS3200)した後にスキャンキャプチャー動作を行う。他の実施例では、スキャンキャプチャー動作を行わない。次に、スキャンテスト時間を最小化する装置は、対象スキャンセクションK(1204)を増減したシフト周波数でスキャン経路にシフトインする(ステップS3210)。対象スキャンセクションK(1204)が図14に示すようにスキャンパターンMの一部である場合、対象スキャンセクションK(1204)を含むスキャンパターンMをスキャン経路にシフトインする。
このとき、対象スキャンセクションK(1204)または対象スキャンセクションK(1204)を含むスキャンパターンMがスキャン経路にシフトインされ、スキャン経路上に記憶されているビットパターンは同時にシフトアウトされる(ステップS3210)。ここで、シフトアウトされるビットパターンはこの例に限定されず、スキャン経路に対してシフトインとシフトアウト動作が同時に行われるスキャン回路の種類により様々な形態を取り得る。
例えば、対象スキャンセクションK(1204)が図14に示すようにスキャンパターンMの一部でスキャン経路の長さより短い場合、対象スキャンセクションK(1204)を含むスキャンパターンMをスキャン経路にシフトインする。この時、対象スキャンセクションK(1204)を除いたスキャンパターンMの部分のシフト周波数は対象スキャンセクションK(1204)の最適なシフト周波数を検索するのに制約を与えないようにする。このため、スキャンパターンMで対象スキャンセクションK(1204)を除いた部分のシフト周波数は対象スキャンセクションK(1204)のシフト周波数と共に増減されないようにするか、対象スキャンセクションK(1204)とは異なる周波数を用いる。或いは、スキャンパターンMで対象スキャンセクションK(1204)を除いた部分のシフト周波数は対象スキャンセクションK(1204)を除いた部分をスキャン経路にに入力できるシフト周波数を用いる。
本発明の少なくとも一つの実施例において、対象スキャンセクションK(1204)を除いた部分のシフト周波数は、名目シフト周波数以下または本発明の少なくとも一つの実施例に係る方法で最適なシフト周波数が既に決められた場合は当該最適なシフト周波数以下のように予め設定されたシフト周波数を用いることができる。予め設定されたシフト周波数は名目シフト周波数を調整した値、プログラムによって装置に設定された値、またはユーザーが設定した値など、実施例によって変更可能であり、上記の例に限定されるものではない。
スキャンテスト時間を最小化する装置は、テスト対象チップの入力パターンK−1の出力パターンK−1と予測パターンK−1とを比較する(ステップS3220)。出力パターンK−1と予測パターンK−1が同一でなければ(ステップS3220)、スキャンテスト時間を最小化する装置は現在のシフト周波数で対象スキャンセクションK(1204)をスキャン経路に正常にシフトインできないと判断または決定する(ステップS3270)。例えば、スキャンテスト時間を最小化する装置はテスト失敗の情報をコンピューターで読み取り可能な記録媒体に格納する。
入力パターンK−1の出力パターンK−1と予測パターンK−1が同一であれば(ステップS3220)、スキャンテスト時間を最小化する装置は対象スキャンセクションK(1204)に対するスキャンキャプチャー(ステップS3230)動作を行った後にシフトアウト(ステップS3240)動作を行う。他の実施例では、スキャンキャプチャー(ステップS3230)動作を行わないで、シフトアウト(ステップS3240)動作を行う。さらに、シフトアウト(ステップS3240)されるビットパターンは、スキャン経路に対してシフトインとシフトアウト動作が同時に行えるスキャン回路の種類によって異なる。
対象スキャンセクションK(1204)に対する出力パターンがシフトアウト(ステップS3240)されるときに同時にシフトインされる入力パターンK+1(1206)にはシフトアウト(ステップS3240)される対象スキャンセクションK(1204)のビットパターンを不要に変えたりしないシフト周波数が用いられる。即ち、シフトアウト(ステップS3240)動作が正常に行えるシフト周波数が用いられる。さらに、対象スキャンセクションK(1204)のシフトアウト(ステップS3240)動作が行われるときに同時にシフトインされる入力パターンK+1(1206)はスキャン経路に正常にシフトインできるシフト周波数が用いられる。
スキャンテスト時間を最小化する装置は、テスト対象チップの対象スキャンセクションK(1204)の出力パターンKと予測パターンKとを比較する(ステップS3250)。対象スキャンセクションK(1204)の出力パターンKと予測パターンKが同一でないと(ステップS3250)、スキャンテスト時間を最小化する装置は現在用いられたシフト周波数で対象スキャンセクションK(1204)をスキャン経路に正常にシフトインできないと判断または決定する(ステップS3270)。例えば、スキャンテスト時間を最小化する装置はテスト失敗の情報をコンピューターで読み取り可能な記録媒体に格納する。
対象スキャンパターンK(1204)の出力パターンKと予測パターンKが同一ならば(ステップS3250)、スキャンテスト時間を最小化する装置は現在用いられたシフト周波数で対象スキャンセクションK(1204)をスキャン経路に正常にシフトインできると判断または決定する(ステップS3260)。例えば、スキャンテスト時間を最小化する装置はテスト正常の情報をコンピューターで読み取り可能な記録媒体に格納する。
本発明の少なくとも一つの実施例において、対象スキャンセクションK(1204)を含むスキャンパターンのみならず、その前に位置するスキャンパターンに対するチップの出力パターンも該当する予測パターンと比較し、対象スキャンセクションK(1204)の使用可能なシフト周波数または最適なシフト周波数を検索することができる。
本発明の少なくとも一つの実施例において、テスト装置は対象スキャンセクションK(1204)とその前に位置する入力パターンK−1(1202)に対するスキャンテスト結果が両方とも正常であるかを判断または決定する。そして、両方ともテスト正常であれば、対象スキャンセクションK(1204)に用いられたシフト周波数は、対象スキャンセクションK(1204)をスキャン経路に正常にシフトインできるシフト周波数である。
図33は、本発明の少なくとも一つの実施例に係るチップテスト時間を最小化する方法の一例を示すフローチャートである。
チップ製造工程(Process)の種類及び状態によっては、異なるウェハー上のICチップ間または同一ウェハー上のICチップ間のプロセスばらつき(Process Variation)が発生する場合があり、これはICチップの動作周波数及び電力消耗などに大きい影響を及ぼすことになる。特に、微細工程及び低電力工程ではその影響がより大きくなる。
図33に示すように、スキャンテスト時間を最小化する装置は、複数のチップに対して前述したようにスキャンセクション別に最適な周波数を決定する工程を行う(ステップS3300)。ここで、複数のチップは同一ウェハー上のICチップまたは異なるウェハー上のICチップであり、前もって良品として検査されたチップである。
スキャンテスト時間を最小化する装置は、ある一つのスキャンセクションに対して複数のICチップをもって検索した複数の最適なシフト周波数のうち、最も低いシフト周波数以下を当該スキャンセクションの最適なシフト周波数として決定するか、シフト周波数を決定するための情報をコンピューターで読み取り可能な記録媒体に格納し(ステップS3310)、これを各スキャンセクションに対して行う。ここで、記録媒体に格納する情報は、各シフト周波数に対するシフトまたはテストの成功(PASS)または失敗(FAIL)に関する情報を含む。
例えば、第1チップの対象スキャンセクションKのシフト周波数がAで、第2チップの対象スキャンセクションKのシフト周波数がBだとすると、シフト周波数Aがシフト周波数Bより低いと、テスト装置は対象スキャンセクションKのシフト周波数としてAまたはそれ以下を選択するか、選択するための情報をコンピューターで読み取り可能な記録媒体に格納する。
図33の各ステップはスキャンパターンの集合と複数のチップに対してスキャンセクション別に検索したシフト周波数情報を用いてスキャンテスト時間を最小化する装置のみならず、コンピューターなどの他の装置でも行うことができる。
図34は、本発明の少なくとも一つの実施例に係るICチップのテスト時間を最小化する装置の構成を示すブロック図である。
図34に示すスキャンテスト時間を最小化する装置は、各スキャンセクションのシフト周波数の最適化のために前述した本発明の少なくとも一つの実施例に係る方法を行うことができ、本発明の少なくとも一つの実施例において、図12ないし33に示す方法の一部または全部を適用することができる。
図34に示すように、スキャンテスト時間を最小化する装置は、条件設定部(3400)、パターン分割部(3405)、パターン入力部(3410)、パターン比較部(3420)、及び周波数把握部(シフト周波数検索部)(3430)を備える。条件設定部(3400)は、周波数増減部(3402)、供給電圧増減部(3404)、温度増減部(3406)などを含む。
まず、条件設定部(3400)は、スキャンセクション別に最適なシフト周波数を検索するための各種の条件を設定する。具体的に、周波数増減部(3402)はシフト周波数を増減し、供給電圧増減部(3404)はチップに供給される電圧を増減し、温度増減部(3406)はテスト環境の周辺温度を増減する。条件設定部(3400)は、供給電圧、周辺温度などの条件を設定し、シフト周波数を草原することができる。例えば、条件設定部(3400)は、ホストコンピューター(200、300)、テスター本体(210、310)、テストヘッド(220、320)またはプロバー(350)などに備えられる。
パターン分割部(3405)は、一つ以上のスキャンパターンを複数のスキャンセクションに分割することができる。例えば、パターン分割部(3405)はホストコンピューター(200、300)、テスター本体(210、310)、テストヘッド(220、320)またはプロバー(350)などに備えられる。パターン分割部(3405)は、図5ないし10に示す方法を用いてテストデータを少なくとも一つ以上のスキャンセクションに分割することができる。
パターン入力部(3410)は、条件設定部(3400)で設定した条件でスキャンセクションをテスト対象チップのスキャン経路にシフトインされるようにする。具体的に、パターン入力部(3410)は最適なスキャンシフト周波数を検索しようとするスキャンセクションの前と後ろにそれぞれ位置するスキャンパターンまたはスキャンセクションをシフト周波数決定対象スキャンセクションと共に順次スキャン経路にシフトインされるようにできる。例えば、パターン入力部(3410)はホストコンピューター(200、300)、テスター本体(210、310)、テストヘッド(220、320)またはプロバー(350)などに備えられる。
パターン比較部(3420)は、パターン入力部(3410)によってテスト対象チップにシフトインされたスキャンセクションによるテスト結果とシフトアウトされた出力パターンが予測パターンとを比較する。例えば、パターン比較部(3420)は、ホストコンピューター(200、300)、テスター本体(210、310)、テストヘッド(220、320)、またはプロバー(350)などに備えられる。条件設定部(3400)によるシフト周波数の増減によって出力パターンと予測パターンが同一の状態から異なる状態になる、または異なる状態から同一の状態になる時点または周波数が存在し得る。
周波数把握部(3430)は、パターン比較部(3420)による比較結果情報または比較結果に基づいて出力パターンが予測パターンと異なる前のシフト周波数または同一のシフト周波数を検索するためのシフト周波数情報をコンピューターで読み取り可能な記録媒体に格納することができる。例えば、スキャンセクションに対して正常に使用可能なシフト周波数情報をコンピューターで読み取り可能な記録媒体に格納する。さらに、このような情報を用いてスキャンセクションの最適なシフト周波数を決定することも可能である。
本発明の少なくとも一つの実施例において、周波数把握部(3430)は、少なくとも現在シフト周波数を決定しようとする対象スキャンセクションの前に位置するスキャンセクションと対象スキャンセクションに対する出力パターンが両方とも予測パターンと統一な場合のシフト周波数を対象スキャンセクションの使用可能なシフト周波数情報としてコンピューターで読み取り可能な記録媒体に格納する。さらに、図34で二つ以上の各部は互いに一つのモジュールに統合するか、またはより細分化することができる。例えば、周波数把握部(2030)は、ホストコンピューター(200、300)、テスター本体(210、310)、テストヘッド(220、320)、またはプロバー(350)などに備えられる。
前述したスキャンテスト時間を最小化する装置は、ハードウェアまたはソフトウェアなどを用いて様々な形態で実現することができる。さらに、スキャンテスト時間を最小化する装置の全部または一部は、図2及び3に示すテスト装置内に含まれるか、またはコンピューターのような別途の装置を用いて実現することができる。
図35は、本発明の少なくとも一つの実施例に係る複数のスキャンセクションの最適なシフト周波数を並列で検索または決定する方法の一例を示す概略図である。
図35に示すように、スキャンテスト時間を最小化する装置は、複数のICチップのそれぞれに対して互いに異なるスキャンセクションの最適なシフト周波数を並列で(In Parallel)検索または決定することで、最適なシフト周波数の検索または決定にかかる時間を短縮することができる。
例えば、テスト装置のテストインタフェースボード(3500)に位置する複数のICチップ(3510、3512、3514、3516)のそれぞれに対して互いに異なるスキャンセクションの最適なシフト周波数を同時に検索または決定することができる。本発明の少なくとも一つの実施例において、複数のテスト装置または複数のテストインタフェースボードで互いに異なるスキャンセクションの最適なシフト周波数を並列に検索または決定することができる。
全体のスキャンセクションに対してひとつずつ順次最適なシフト周波数を検索または決定する場合h時間がかかるとすると、n個のスキャンセクションを並列にシフト周波数検索または決定すると、約h/n時間に所要時間を短縮できる。従って、同一の時間以内にICチップをテストするための数千ないし数万個以上のスキャンパターンをより短いスキャンセクションに分割して最適化できる効果を得ることができる。
図36は、本発明の少なくとも一つの実施例に係るICチップのテストの時間を最小化するためにスキャンパターンを再配置する方法の一例を示す概略図である。
図36に示すように、スキャンテストのためのスキャンパターンの集合上のスキャンパターンは所定の順番を有する。しかし、このようなスキャンパターンの順番は固定的なものではなく、スキャンセクション別に高いシフト周波数を割り当て、全体のスキャンテストにかかる時間を減らすために再配置することができる。例えば、図36に示すようにオリジナルスキャンパターンの集合上の2番目のスキャンパターンと3番目のスキャンパターンの順番を変えても良い。これによって予測出力スキャンパターンの順番も変わる。
スキャン経路にシフトされるスキャンパターンの順番を再配置する場合、スキャンシフトによってICチップ上で回路のスイッチングされる部分及びスイッチング動作の回数が変更される場合があり、これによって電力消耗も変更され得るので、スキャンパターン(またはスキャンセクション)に割り当てられるシフト周波数が高くなる場合がある。従って、このようなことを利用してスキャンパターンの再配置後に、前述した本発明の実施例を用いてスキャンセクション別に最適なシフト周波数を検索または決定し、全体的なスキャンテスト時間をより短縮することができる。
スキャンパターンを再配置する方法としては、一回以上オリジナルスキャンパターン集合上のスキャンパターンを任意に再配置し、再配置されたスキャンパターン集合に対して前述した実施例によって最適なシフト周波数を把握してスキャンテスト時間が最も短い場合をスキャンパターンの配置として決めることができる。他の実施例では、スキャンパターン間のビットパターンの差が最も小さいスキャンパターンを互いに隣り合うように配置するなど、様々な方法がある。
スキャンパターンの再配置の他の例として、K(Kは1以上の整数)番目のスキャンパターンの次に順番が決まってないスキャンパターンを順次位置させながら前述した最適なシフト周波数を検索する方法と用いて最も高いシフト周波数を有するスキャンパターンをK番目のスキャンパターンの次のパターンにすることができる。
スキャンパターンの順番を再配置する動作の一部または全部はテスト装置に備えられたプロセッサのようなハードウェアとファームウェアまたはソフトウェアによって実行するか、またはコンピューターのような別途の装置で実行することができる。
さらに、最適なスキャンパターンの配置を探すのに多くの時間がかかる場合、最適なスキャンパターンの配置を探すために最大スキャンパターン再配置可能回数または所要時間などの制約事項を設けても良い。
本発明の少なくとも一つの実施例において、少なくとも二つ以上のテストデータの最適な周波数を用いてICチップのストレステストまたはバーンイン(Burn−in)テストにかかる時間を短縮し、テストの品質を高めることができる。本発明の少なくとも一つの実施例において、少なくとも二つ以上のスキャンパターンまたはスキャンセクションに最適なシフト周波数を用いてICチップのストレステストまたはバーンインテスト時間を短縮し、テストの品質を高めることができる。各スキャンパターンまたはスキャンセクションに対する最適なシフト周波数は、本発明の少なくとも一つの実施例に係るスキャンテスト時間最小化方法を用いて検索することができる。
ここで、ストレステストまたはバーンインテストというのは、一般にICチップを長時間動作させ、ICチップにストレスを与えるか、高い電圧と高温をICチップに印加し、老化(Aging)を加速させることで、ICチップの品質をテストしたり、初期不良(Early−Life Failure)ICチップを事前に発見したりすることである。通常、100℃を超える高温環境で数十時間以上バーンインテストする。以下、ストレステストまたはバーンインテストを合わせてバーンインテストと称する。さらに、このようなバーンインテストを行えるテスト装置をバーンインテスト装置と称する。
ICチップの老化は発熱によって多大な影響を受け、発熱はICチップの電力消耗によって多くの影響を受ける。
例えば、数2は、ICチップの回路が動作する際の電力消耗である動的電力消耗(Dynamic Power Dissipation)に影響を及ぼす要素を表す。
(数2)
P=α×C×f×VDD 2
α:Activity Factor
C:Average Switched Capacitance (at each cycle)
f:Circuit Frequency
VDD:Supply Voltage
ICチップのスキャンモードでは、スキャンパターンのビットパターンによって活性化されるICチップの回路部分が異なる場合がある。一般に、ICチップのスキャンモードでは、機能モードより回路のより多い部分にスイッチング動作(Switching Activities)が発生する。従って、スキャンモードで数2に示すように平均スイッチングされるキャパシタンス値Cが増加し、電力消耗Pが増加し得る。
さらに、シフト周波数が上がると、数2に示すようにICチップ回路の動作周波数fに比例してICチップの電力消耗Pが増加し得る。
ICチップの増加したスイッチング動作はICチップの電力消耗をもっと増加させ、ICチップの発熱温度も高くなる。従って、ICチップの老化がより加速化される。
本発明の少なくとも一つの実施例において、バーンインテスト装置は、バーンインテスト時に老化をより加速化させ、バーンインテスト時間を短縮できるように、テストデータまたは前述した各スキャンセクションに割り当て可能な最大シフト周波数を用いることができる。
例えば、バーンインテスト装置は、ICチップのバーンインテストの間に、スキャンパターンまたはスキャンセクションを利用してバーンインテストを加速化することができる。このとき、スキャンテストも一緒に行うことができる。
さらに、スキャンシフト動作時に名目シフト周波数を用いるとスキャンパターンによって活性化される回路部位のうち、一部には高いストレスが印加され、他の一部には相対的に低いストレスが印加される場合がある。一例として、テストデータのスキャンパターンをスキャンセクションに分割し、分割した各スキャンセクションに割り当て可能な最大シフト周波数を用いてバーンインテストを行うことで、回路上の特定の部位だけ老化が速く進行するか、または相対的に遅く進行する現象を減らすことができる。
例えば、図41はテストデータのスキャンパターンに対してシフト周波数を最適化してない場合(4100)とスキャンパターンをスキャンセクションに分割してシフト周波数を最適化した場合(4110)のスキャンシフト動作時に同一のICチップの発熱の差を示す。即ち、シフト周波数が最適化されてないテストデータを用いた場合(4100)よりシフト周波数が最適化されたスキャンセクションを用いた場合(4110)がよりバランス良く高い発熱が発生しているのがわかる。
即ち、スキャンパターンのビットパターンによって活性化されるICチップの異なる部位に対してよりバランス良くストレスを最大限印加し、バーンインテストの速度に加え、品質も向上させる効果がある。チップをテストするためのテストデータの各スキャンセクションの使用可能な最大周波数を用いてバーンインテスト時間を減らし、品質を高めることができる。
図37及び38は、本発明の少なくとも一つの実施例に係るバーンインテストシステムの構成を示すブロック図である。
図37及び38に示すように、バーンインテスト装置は、ホストコンピューター(3700、3800)、テスター本体(3710、3810)、テストヘッド(3720、3820)、インタフェースボード(3730、3830)、温度制御部(3760、3870)、チャンバー(3750、3860)、及びプロバー(3850)を備える。
テストのためにインタフェースボードに位置するテスト対象デバイス(DUT:Device Under Test)は、ウェハー上のICまたはパッケージングされたICチップなどである。DUTがウェハー上のICチップの場合、プローバー(3850)をさらに備える。
テスター本体(3710、3810)は、スキャンテストとバーンインテストを全体的に制御する。例えば、テスター本体(3710、3810)は、DUTテストのためのセットアップ、DUTテストのための電気的信号の発生、DUTテスト結果信号の観測及び測定、温度制御部を介してのチャンバーの温度制御などの全般的な工程を制御する。テスター本体(3710、3810)は、中央処理装置(CPU:Central Processing Unit)、メモリ、ハードディスク、ユーザーインタフェースなどを含むコンピューターで実現することができ、実施例によってDUTに電源を供給するデバイスパワーサプライ装置(Device Power Supply)をさらに含むことができる。さらに、テスター本体(3710、3810)は、各種のディジタル信号を処理する信号処理プロセッサ(DSP:Digital Signal Processor)(不図示)とテストヘッドを制御し、DUT(3740、3840)に信号を印加する制御器及び信号発生器などの専用ハードウェア、ソフトウェア、またはファームウェアなどを含むことができる。テスター本体(3710、3810)は、メインフレームまたはサーバーとも呼ばれる。
ホストコンピューター(3700、3800)は、パーソナルコンピューター、ワークステーションなどのコンピューターであり、ユーザーがテストプログラムを実行させ、テスト工程を制御し、テスト結果を分析できるようにする装置である。一般に、ホストコンピューター(3700、3800)は、CPU、メモリまたはハードディスクのような格納装置、及びユーザーインタフェースなどを含み、テスター本体(3710、3810)と有線または無線通信で接続される。ホストコンピューター(3700、3800)は、テストを制御するための専用ハードウェア、ソフトウェア、及びファームウェアなどを含む。本実施例ではホストコンピューター(3700、3800)とテスター本体(3710、3810)を分けて図示しているが、ホストコンピューター(3700、3800)とテスター本体(3710、3810)は一つの装置で実現することもできる。
テスター本体(3710、3810)またはホストコンピューター(3700、3800)のメモリにはDRAM、SRAM、フラッシュメモリなどを用いることができる。メモリには、DUTテストを行うためのプログラムとデータを格納することができる。
テスター本体(3710、3810)またはホストコンピューター(3700、3800)のソフトウェアまたはファームウェアは、スキャンテストのためのデバイスドライバープログラム、OS(Operating System)プログラム、DUTテストを行うプログラムで、DUTテストのためのセットアップ、DUTテストのための信号の発生、DUTテスト結果信号の観測、分析などを行うための命令コード(Instruction Code)の形態でメモリに格納され、CPUによって実行される。
従って、スキャンパターンは、このようなプログラムによってDUTに印加される。さらに、DUTテスト及びテスト結果のレポーティング及び分析データをプログラムを介しての自動実行で得ることができる。プログラムに用いられる言語として、C、C++、Javaなど、様々な言語を用いることができる。プログラムは、ハードディスク、磁気テープ、またはフラッシュメモリなどの記録装置に格納することができる。
テスター本体(3710、3810)またはホストコンピューター(3700、3800)のCPUは、プロセッサ(Processor)であり、メモリに格納されたソフトウェアまたはプログラムのコードを実行する。例えば、キーボードやマウスなどのユーザーインタフェースを介してユーザー命令を受けると、CPUはユーザーの命令を分析し、該当する作業をソフトウェアまたはプログラムを介して行った後、その結果をスピーカー、プリンター、モニターなどのユーザーインタフェースを介してユーザーに提供する。
テスター本体(3710、3810)またはホストコンピューター(3700、3800)のユーザーインタフェースは、ユーザーと装置との間で情報を取り交わし、命令を伝達できるようにする。例えば、キーボード、タッチスクリーン、マウスなどのようなユーザー入力のためのインタフェース装置と、スピーカー、プリンター、モニターなどのような出力インタフェース装置などがある。
テストヘッド(3720、3820)はテスター本体(3710、3810)とDUTとの間に電気的信号を転送するためのチャネルなどを含む。テストヘッド(3720、3820)の上部にはインタフェースボードが備えられる。パッケージングされたICチップに用いられるインタフェースボードを通常ロードボード(Load Board)といい、ウェハー上のICチップのテストに用いられるインタフェースボードを通常プローブカード(Probe Card)という。
チャンバー(3750、3860)は、DUTに老化を加えられる空間である。チャンバー(3750、3860)は、温度制御部の制御によってチャンバー内に位置するDUTの温度を制御する。温度制御部は、テスター本体(3710、3810)またはホストコンピューター(3700、3800)に含まれても良い。さらに、テスター本体(3710、3810)またはホストコンピューター(3700、3800)はDUTに対するバーンインテスト時間または供給電圧を制御することができる。
図37及び38に示すバーンインテスト装置は、本発明の理解を深めるための一つの例に過ぎないので、それぞれの構成を統合して一体型に実現するか、または一つの構成を複数の構成に分離して実現するなど、実施例によって様々な設計変更が可能である。
さらに、図37及び38に示すバーンインテスト装置は、バーンインテストとスキャンテストを同時に行うか、またはこのうち一つのみを行うように実現することもできる。
本発明の少なくとも一つの実施例において、バーンインテスト装置は、前述したように、スキャンセクション別に最適なシフト周波数を用いてバーンインテストを行うことができる。本発明の少なくとも一つの実施例において、このときチップの正常または失敗を判断するテスト一緒に行うことができる。
本発明の少なくとも一つの実施例において、バーンインテスト装置は、前述のように、各スキャンパターンまたはスキャンセクションに対して最適なシフト周波数を用いてスキャンテストと共にバーンインテストを行うことができる。ICチップは機能モードよりスキャンモードでより多くのICチップ回路部分にスイッチング動作が発生するので、スキャンテストを介して老化をより加速化し、バーンインテスト時間を短縮することができる。さらに、分割した各スキャンセクションに割り当て可能な最大シフト周波数を用いてバーンインテストを行うと、バーンインテスト時間をさらに短縮できるだけでなく、特定のスキャンパターンによって回路上の特定の部位だけ老化が早まる現象も減らすことができる。即ち、ICチップに対して全体的にバランス良くストレスを最大限印加し、バーンインテストの品質も向上させる効果がある。最適化されたシフト周波数を用いるスキャンセクションの長さを短くするほどその効果はより高まる。
本発明は、バーンインテストと共にスキャンテストを同時に行う場合に限定されず、バーンインテスト時にスキャンパターンをシフティングする工程のみを含んで、スキャンテスト自体は行わなくても良い。
図39は、本発明の少なくとも一つの実施例に係る単一スキャンシフト周波数を用いてバーンインテストを行う場合にICチップに及ぶ温度の影響の一例を示す概略図である。
図39に示すように、複数のスキャンパターンは全て同一のスキャンシフト周波数(例えば、25MHz)を用いてICチップ(3900)のスキャン経路にシフトされる。各スキャンパターンによってICチップの活性化される部分は異なる場合がある。例えば、スキャンパターン1(3930)によって活性化されるICチップ部分(3910)とスキャンパターン2(3932)によって活性化されるICチップ部分(3920)が互いに異なる。
さらに、各スキャンパターンによってICチップ上の活性化される部分はスキャンシフト周波数やスキャンパターンによる回路のスイッチング回数などによって発生する熱が異なる場合がある。例えば、スキャンパターン1によって活性化されるICチップの部分(3910)の温度はa℃で、スキャンパターン2によって活性化されるICチップの部分(3920)の温度はb℃である。
ICチップにより多いストレスや熱を発生させてバーンインテストの老化を加速化するためにシフト周波数を上げることができる。しかし、シフト周波数上げすぎると、正常なICチップを不良品として判定するオーバーキルの問題などが発生し得る。反対に、シフト周波数を下げる場合、ICチップで発生するストレスや熱が足りなくてバーンインテストの老化を効率的に加速できなくなる問題がある。
図40は、本発明の少なくとも一つの実施例に係るスキャンパターン別の最適なシフト周波数を用いてバーンインテストを行う場合にICチップに及ぶ温度の影響の一例を示す概略図である。図39と40は、同じICチップと同じスキャンパターンを用いた例である。
図40に示すように、スキャンパターン別に最適なシフト周波数を用いてスキャン経路にシフトすることで、ICチップの老化を加速化することができる。
バーンインテストは、通常100℃を超える高温環境で数十時間以上行うので、バーンインテスト時の時間と電力消耗はテスト費用の上昇をもたらす。即ち、一般にICチップテストサービスプロバイダーはテスト時間に比例して費用を請求するので、チップテストの所要時間はチップの原価に大きい影響を与える。さらに、バーンインテストに用いられるチャンバーに形成する100℃を超える高温は多くの場合電気を使用するので、このための費用も相当であり、テストサービスプロバイダーの費用とチップの原価に多大な影響を及ぼすことになる。
従って、バーンインテスト時間とバーンインテストによって消耗される電力を減らすことはテスト費用の削減において大変重要である。さらに、バーンインテスト時間を減らすことは、製品の市場進入時間(Time−to−Market)においても大変重要である。
例えば、図39に示すスキャンパターン1(3930)の最大スキャンシフト周波数が25MHzで、スキャンパターン2(3932)のシフト周波数はもっと高く設定できる場合、図40に示すように、スキャンパターン2(4032)のシフト周波数を最適化することで上げ、図39に示す温度(b℃)より高い温度(c℃)によってICチップの老化をより加速化することができる。
図39及び40は、説明の便宜上、スキャンパターンに対してシフト周波数を割り当ててスキャン経路にシフトする場合を説明しているが、図5ないし10に示すように、スキャンパターンを少なくとも二つ以上のスキャンセクションに分割し、互いに異なるシフト周波数でスキャン経路にシフトすることができる。
例えば、バーンインテスト時間またはバーンインテスト品質を予測できるように、テスト対象チップのジャンクション温度を所定の範囲内に維持する必要がある。例えば、テスト対象デバイスまたはICチップのジャンクション温度は、数3のように決めることができる。
(数3)
Tj=Ta+P+θja
ここで、Tjはテスト対象デバイスまたはICチップのジャンクション温度、Taは周辺環境の温度(Ambient Temperature)、Pはテスト対象デバイスまたはICチップの電力消耗、θjaはテスト対象デバイスまたはICチップの熱抵抗を表す。
数3を参照すると、Tjの制御度(Controllability)は、TaとPの制御度に依存する。例えば、Taはテスト対象デバイスまたはICチップの外部環境の温度を制御するチャンバーまたはサーマルチャック(Thermal Chuck)などの装置を使用して適正温度に制御することができる。従って、チップのバーンインテストの間に電力消耗Pを制御する方法が必要である。例えば、チップのバーンインテストの間に電力消耗の変動(Fluctuation)はチップのジャンクション温度(Junction Temperature)Tjに相当影響を与える可能性があり、チップの信頼度検査工程(Reliability Screening Process)に悪い影響を及ぼす場合がある。
バーンインテストに必要な時間は、数3のジャンクション温度Tjの中央値(Median Value)に基づいて予測することができる。例えば、ジャンクション温度は図42の電力消耗Pburn−inの値によって決めることができる。Pburn−inはテストデータによる電力消耗の中央値または平均値或いは良質のバーンインテスト時に予測される電力消耗値である。
図42は、テストデータの電力消耗を調整する前のバーンインテストの間に発生する電力消耗の一例を示すグラフである。図43は、テストデータの電力消耗を調整した後のバーンインテストの間に発生する電力消耗の一例を示すグラフである。
図42に示すように、電力消耗がPburn−inまたはマージンが反映されたPmargin−highより高くなると、オーバーバーンイン(Over burn−in)状態が発生する場合がある。これが発生すると、チップの収率に悪い影響を与える。
電力消耗がPburn−inまたはマージンが反映されたPmargin−highより低くなると、アンダーバーンイン(Under burn−in)状態が発生する場合がある。これが発生すると、潜在的な欠陥(Defect)があるチップがテスト工程(Test Process)をパスする状況を作り上げることになる。
従って、バーンイン時間とバーンイン品質に対する予測が正確になるようにテストデータによる電力消耗が図43に示すようにPburn−inに近づける必要がある。即ち、テストデータによる電力消耗の変動が大きくならないようにし、ICチップの発熱の変移を最小化する必要がある。
バーンインテスト時の電力消耗を最適化してバーンイン時間を短縮するか、予測可能にし、バーンイン品質を高める方法の実施例を以下に説明する。
ステップ1
テストデータを少なくとも二つ以上のサブデータに分割する。例えば、図43に示すように、テストデータはテスト時間軸を基準に3個のサブデータに分割することができる。
ステップ2
ステップ1で分割された少なくとも二つ以上のサブデータの電力消耗の差が最小化されるように各サブデータをチップに入力するのに用いられるシフト周波数を検索または決定する。各サブデータによる電力消耗がバーンインテストのための予測電力消耗(または予測電流消耗)と近接するか同一になるように各サブデータをチップに入力するのに用いられる周波数を検索または決定する。例えば、図43に示すように、各サブデータの周波数を調整し、テストデータによる電力消耗がPburn−inに近づくようにする。
ステップ3
サブデータ別にステップ2で検索または決定した周波数を用いてバーンインテストを行う。例えば、図43に示すように、各サブデータ区間の電力消耗がPburn−inに近づくようにしてバーンインテストを行う。
ステップ1ないし3のサブデータは、スキャンセクションまたは機能的テストデータ(チップの機能に関するテストに用いられるデータ)である。
ステップ1ないし3の各ステップは、実施例によって同一の装置または異なる装置でそれぞれ実行することができる。例えば、テスト装置またはコンピューターなどの装置で実行することができる。
他の実施例として、バーンインテスト時の電力消耗を最適化してバーンイン時間を短縮または予測可能にし、バーンイン品質を高める他の方法は次の通りである。
ステップ1
テストデータを少なくとも二つ以上のサブデータに分割する。
ステップ2
各サブデータに対して正常なチップのテスト結果が正常と現れる最大シフト周波数を検索または決定する。例えば、最大シフト周波数はテスト時間を最小化するために最適化された周波数または最大シフト周波数にマージンを反映した周波数である。
ステップ3
ステップ2で各サブデータに対して検索または決定した最大シフト周波数を用いて電力消耗や電流消耗を測定または推定する。
ステップ4
ステップ3で測定または推定した電力消耗や電流消耗が最適なバーンインテストのための電力消耗の基準より大きい場合があるサブデータを探す。例えば、最適なバーンインテストのための電力消耗の基準は図42または43でPburn−inまたはPmargin−highである。
ステップ5
ステップ4で検索したサブデータの周波数を下げてサブデータの電力消耗が最適なバーンインテストのための電力消耗または電流消耗と同一になるかそれに近接するように調整する。例えば、最適なバーンインテストのための電力消耗の基準は図42または43でPburn−in、Pmargin−highまたはPmargin−lowであっても良い。さらに、ステップ3で測定または推定された各サブデータの電力消耗や電流消耗が最適なバーンインテストのための電力消耗または電流消耗より小さい場合がある。しかし、このとき該当するサブデータの周波数を最適なバーンインテストのための電力消耗または電流消耗と同一になるかそれに隣接するように上げるとテスト失敗が発生し得るので、注意が必要である。
ステップ6
ステップ5で調整された各サブデータのシフト周波数を用いてバーンインテストを行う。
本発明の少なくとも一つの実施例において、ステップ1ないし6のサブデータはスキャンセクションまたは機能的テストデータである。
ステップ1ないし6の各ステップは、実施例によって同一の装置または異なる装置でそれぞれ実行することができる。例えば、テスト装置またはコンピューターなどの装置で実行することができる。
他の実施例として、狙いの電力消耗に該当する周波数を検索または決定する方法は次の通りである。ある周波数を用いてサブデータによって消耗される電力消耗値を測定または推定する。そして、数2で示すように電力消耗と周波数との関係式を用いてαxCxVdd 2に対する常数の値を計算する。そして、常数の値と狙いの電力消耗値を数2に代入して目的の周波数値を計算することができる。
本発明の少なくとも一つの実施例において、周波数を増加または減少しながらサブデータによって消耗される電力消耗を測定または推定し、狙いの周波数を検索または決定することができる。
本発明の少なくとも一つの実施例において、サブデータによって消耗される電力消耗は電力または電流消耗を測定または推定する装置またはソフトウェアを用いて測定または推定することができる。
図44は、本発明の少なくとも一つの実施例に係るバーンインテスト時間を最小化するためにスキャンセクション別の最適なシフト周波数を検索する方法の一例を示すフローチャートである。
図44に示すように、バーンインテスト時間最小化装置は、一つ以上のスキャンパターンを少なくとも二つ以上のスキャンセクションに分割する(ステップS4400)。スキャンパターンの分割の例は、図5ないし10に示す方法を用いることができる。バーンインテスト時間最小化装置は複数のシフト周波数をスキャンセクションにそれぞれ割り当てる(ステップS4410)。ここで、各スキャンセクション割り当てられるシフト周波数の値はスキャン経路の出力パターンが予測パターンと異なる状態になるシフト周波数より低い値である。そして、バーンインテスト時間最小化装置は、スキャンセクション別に割り当てられたシフト周波数を用いて当該スキャンセクションをシフトしながらバーンインテストを行う(ステップS4420)。
スキャンパターンのスキャンセクションへの分割(ステップS4400)とシフト周波数のスキャンセクションへの割り当て(ステップS4410)、バーンインテストの遂行(ステップS4420)などは、実施例によって同一の装置または異なる装置でそれぞれ行うことができる。
バーンインテスト時間最小化装置は、シフト周波数の増減によって出力パターンと予測パターンが異なる直前のシフト周波数を検索し、当該スキャンセクションに割り当て可能な最大シフト周波数として決定する。実施例によって、各スキャンセクションはシフト周波数の増減を介して検索した最大シフト周波数より低いシフト周波数を割り当てられる場合がある。
本発明の少なくとも一つの実施例に係るバーンインテストのためにスキャンセクション別に最適なシフト周波数を検索する方法として、前述した様々な実施例を用いることができる。例えば、バーンインテスト時間最小化装置は、図12ないし33に示す方法を実行してスキャンセクション別に最適なシフト周波数を検索することができる。さらに、図36に示すスキャンパターンの配置順番を変更する方法もバーンインテスト時間短縮及びバーンインテスト品質向上のために適用することができる。
図45は、本発明の少なくとも一つの実施例に係るバーンインテスト時間を最小化する装置の一例を示すブロック図である。
図45に示すように、本発明の少なくとも一つの実施例に係るバーンインテスト時間を最小化する装置は、チャンバー制御部(4500)、シフティング部(4510)、及びシフト周波数把握部(シフト周波数検索部)(4520)を備える。
チャンバー制御部(4500)は、検査対象ICチップに供給される電圧、温度、バーンインテスト時間などを制御する。
シフト周波数把握部(4520)は、バーンインテスト時にICチップのスキャン経路にシフトする最適なシフト周波数をスキャンセクション別に検索する。例えば、シフト周波数把握部(4520)は前述した様々な実施例のうち少なくとも一つ以上に基づいてスキャンセクション別に最適なシフト周波数を決定することができる。さらに、最適なシフト周波数の把握は、バーンインテスト時間最小化装置のみならず、別途の装置で行って検索または決定することができ、検索または決定されたシフト周波数はシフト周波数把握部(4520)によって用いられても良い。
シフティング部(4510)は、チャンバー制御部(4500)によってバーンインテストが行われる間に、シフト周波数把握部(4520)によって把握された最適なシフト周波数を用いてスキャン経路にスキャンセクションをシフトすることでバーンインテスト時間を最小化する。
本発明の少なくとも一つの実施例において、スキャンセクション別に最適化された周波数を用いてバーンインテストのみを行うか、バーンインテストと共にチップのテストを行うことができる。バーンインテスト時間最小化装置はバーンインテストと共に前述したスキャンテストを行うことができる。
バーンインテスト時間最小化装置は、図37及び38に示すバーンインテスト装置の一部として実現することができる。本発明の少なくとも一つの実施例において、スキャンセクション別に最適化された周波数を用いてバーンインテストのみを行うか、バーンインテストと共にチップのテストを行うことができる。例えば、スキャンセクション別に最適化されたシフト周波数が割り当てられたスキャンパターンの集合を用いてバーンインテストのみを行うか、バーンインテストとスキャンテストを共に行うことができる。
バーンインテスト時間最小化装置は、図36に示すスキャンパターンの再配置方法を用いてスキャン経路にシフトされるスキャンパターンの順番を再配置することができる。この場合、スキャンパターンの集合上で再配置されたパターン位置のスキャンパターンのシフトによってICチップ上で回路のスイッチングされる部分及びスイッチング動作回数が再配置の前と異なり、これによって電力消耗など回路の動作特性が変更される場合がある。従って、スキャンパターン(または スキャンセクション)に割り当てられるシフト周波数が高くなる可能性がある。従って、このような性質を利用してスキャンパターンの再配置後に前述した実施例を用いてスキャンセクション別に最適なシフト周波数を検索または決定し、全体的なバーンインテスト時間をより短縮し、テスト品質を高めることができる。さらに、スキャンパターンの再配置はバーンインテスト時間最小化装置のみならず、コンピューターなどの別途の装置行って、バーンインテスト時間最小化装置によって用いられても良い。
図46は、MCU(Micro Control Unit)プロセッサICチップとICチップのテストパターンを用いた実験結果を表す表で、シフト周波数決定対象スキャンセクションが一つのスキャンパターンに一対一に対応する場合である。図46は、スキャンパターンによる電力消耗がICチップの許容可能な電力消耗以下を維持しながら、最大限可能なシフト周波数を検索する臨界電力基盤方法(Power−Limit−Based Method)及び前述した本発明の少なくとも一つの実施例に係るシフト周波数増減基盤方法(Shift−Frequency−Scaling−Based Method)を用いて各スキャンパターンに対して検索した最大シフト周波数を示す。
図46に示すように、シフト周波数増減基盤方法を用いた最適化は図12の方法を用いた。さらに、図46に示すように、臨界電力基盤方法とシフト周波数増減基盤方法による最大シフト周波数の結果の差があるのは実際ICチップとICチップのテスト環境ではICチップの電力消耗の他にシフト周波数に影響を与え得る回路構造と特徴、様々な物理的条件と環境などがあるからである。
図46の電力消耗限界(Power Consumption Limit)は、ICチップの機能的周波数の限界である80MHzでICチップを機能モードで動作させた場合の平均電力消耗で、約285mWである。
通常、機能的周波数の限界はICチップが損傷される周波数限界またはスキャンシフト周波数限界とは異なる。例えば、周波数限界はスキャンテストまたは機能的動作モードによる回路動作特性、電力消耗(Power Consumption)、信号ライン間干渉(Signal Crosstalk)の影響、臨界タイミング経路(Critical Timing Path)などが異なるからである。さらに、回路上の互いに異なる位置に供給される電圧または電力の差などの様々な制約を受ける場合があるからである。
図46の一番目の列はスキャンパターン番号で、二番目の列はICチップの漏洩電流による電力消耗である。三番目の列は名目シフト周波数25MHzを用いたスキャンシフトによって消耗される動的(Dynamic)電力消耗である。四番目の列は二番目の列と三番目の列の和で、名目シフト周波数25MHzを用いた場合スキャンパターン当りの総電力消耗である。五番目の列は電力消耗の限界値285mWを超えないで各スキャンパターンの最大限可能なシフト周波数である。
六番目の列は各スキャンパターンに対して五番目の列のシフト周波数でテストした場合のMCUICチップのテスト結果で、テスト正常または失敗を表す。
七番目の列は前述した本発明の少なくとも一つの実施例に係る方法によるシフト周波数増減基盤方法を用いて検索した最大シフト周波数で、全てテスト結果正常を表している。
八番目の列は臨界電力基盤方法による結果である五番目の列対比シフト周波数増減基盤方法による結果である七番目の列に対する増減比率(%)を表す。
図46に示すように、臨界電力基盤方法でスキャンテストが正常に行われなかった六番目のスキャンパターンの場合を除いて平均約30%以上シフト周波数増減基盤方法でのシフト周波数が高いことがわかる。例えば、シフトされるビットパターンによって偽(False)クリティカル経路の場合が発生するか、テスト結果に影響を与えないドンケアビットに該当するスキャンパターン上のビットなど様々な理由が挙げられる。
図46で六番目のスキャンパターンの場合のように、スキャンパターンによって消耗される電力消耗がICチップの許容可能な電力消耗超えないようにするシフト周波数を用いてもICチップを正常にテストできない場合もあり得ることがわかる。この理由は、シフト周波数限界は電力消耗のみならず、ICチップの回路構造による臨界タイミング経路の信号遅延時間、信号干渉、回路上の互いに異なる位置に供給される電圧または電力の差、信号または電力ノイズ、チップ製造プロセスばらつき、及び回路の物理的特性などの様々な影響を受けることがあるからである。さらに、テスト対象チップの周辺温度、チップとチップテスト装置との瀬戸族状態などテスト環境及び条件の影響も受けることがあるからである。
さらに、シフト周波数増減を介して最適なシフト周波数を把握する工程でスキャンセクションまたはスキャンパターンのビットの値が、シフトインされる間に予期せぬ理由により変わってスキャン経路にロードされても、ICチップ回路の構造によってスキャンキャプチャー動作後の結果パターンがスキャン経路上に正常なビットパターンとして現れる場合がある。
従って、シフト周波数の増減を介してスキャン経路にスキャンセクションロードしてスキャンキャプチャーを行う前に、ICチップのメイン出力ポートの出力結果を予測結果と比較し、メイン出力結果が正常(PASS)であるかを確認することで、より正確に最適なシフト周波数を検索することができる。
図47は、ICチップのテストの際に発生し得るテストフェイルホールの一例を示すグラフである。
ICチップをテストするためにテスト装置、テストデータ、またはテストプログラムをセットアップする工程がある。ICチップに故障がないと(Fault−Free)されるべき正常なシフト周波数の範囲内で非正常的なテスト失敗が発生する場合がある。このような非正常的なテスト失敗(4700)をテストフェイルホール(Fail Hole)と称し、テスト周波数フェールホールまたはテスト周波数の周期のフェールホールとも呼ぶ。
図47に示す例は、ICチップをテストするとき、30MHzで非正常的なテスト失敗(4700)が発生した場合である。テストフェイルホールは、ICチップの量産テストを不安定にし、収率に悪い影響を与える場合があるので、除去した方が望ましい。
図48は、本発明の少なくとも一つの実施例に係るテストフェイルホール問題を解決する方法の一例を示すグラフである。
図48に示すのは、テストフェイルホールの問題を解決するための一例である。テストフェイルホールの問題を解決するには、テストフェイルホールが発生するが、フェイルホールの発生に影響を与える特定のサブデータに対するテストが行われないようにする方法がある。
例えば、フェイルホールが発生したサブデータに対するICチップのテスト出力データが予測データと比較されないようにする方法がある。このような方法はテストデータマスキングまたはテストデータの予測結果マスキング(Expected Result Masking)という。以下の実施例で、サブデータはスキャンパターン、スキャンセクションまたは機能的テストデータを意味する。テストデータマスキング方法がスキャンパターンに適用された場合をスキャンパターンマスキング(Scan Pattern Masking)またはスキャンテストの予測結果マスキングと称することができる。他の例として、テストフェイルホールの発生に影響を与えるサブデータを除去するかまたは使用しない方法がある。
図48に示す例では、30MHzでフェイルホールが発生した第2サブデータを検索し、マスキングまたは除去することができる。しかし、サブデータをマスキングまたは除去する方法はテスト対象ICの故障検出率(Fault Coverage)を下げる恐れがある。さらに、サブデータをマスキングまたは除去する方法によって故障のある(Faulty)ICチップに故障がないと(Fault−Free)テスト判定される恐れがある。そして、これによって故障のあるICチップがフィールドに出て行くフィールドエスケープ(Field Escape)問題が発生する恐れがある。
従って、テストフェイルホールの問題を解決するための方法の他の実施例として、フェイルホールが発生するかまたはフェイルホールの発生に影響を与えるサブデータ及びフェイルホールに該当する周波数を探し、フェイルホールが発生するかまたはフェイルホールの発生に影響を与える特定のサブデータでフェイルホールが発生しない周波数を用いる。
図49は、本発明の少なくとも一つの実施例に係るテストフェイルホール問題を解決する方法の一例を示すフローチャートである。
図49に示すように、テスト装置はテストデータを構成するサブデータを選択する(ステップS4900)。ここで、サブデータは、スキャンパターンまたはスキャンセクションである。テスト装置は、サブデータの周波数を増減しながらICチップのテストを行い(ステップS4910)、ICチップのPASSまたはFAILテスト結果に基づいて選択したサブデータに対して使用可能な周波数またはフェイルホールを検索する(ステップS4920)。そして、選択したサブデータに対してフェイルホールが発生しない周波数を用いてICチップをテストする(ステップS4930)。
例えば、スキャンパターンまたはスキャンセクションに対してフェイルホールを検索する際には、シフト周波数の増減を用いてスキャンパターンまたはスキャンセクションの使用可能なシフト周波数を検索する前述した様々な方法を用いることができる。
図50は、本発明の少なくとも一つの実施例に係るテストフェイルホール問題を解決する方法の一例を示すグラフである。
図50に示すように、テストフェイルホール(5000)が発生した第2サブデータには25MHz以下の周波数を用いることができる。ここで、サブデータは、スキャンパターン、スキャンセクションまたは機能的テストデータである。
第1サブデータ、第2サブデータ、第3サブデータがそれぞれ第1スキャンパターン、第2スキャンパターン、及び第3スキャンパターンだとすると、第1スキャンパターン、第2スキャンパターン、及び第3スキャンパターンは順にテスト対象ICチップのスキャン経路にシフトされる。第2スキャンパターンまたは第2スキャンパターンに含まれたスキャンセクションに対するテストフェイルホール(5000)を検索する方法は、シフト周波数の増減を用いてスキャンパターンまたはスキャンセクションの使用可能なシフト周波数を検索する前述した様々な方法を適用することができる。
例えば、第2スキャンパターンのシフト周波数を増減しながら第2スキャンパターンの前または後に位置する第1スキャンパターンまたは第3スキャンパターンをスキャン経路に正常に入力できる周波数を用いてシフトインする。そして、スキャンテスト結果を用いて第2スキャンパターンに対するフェイルホール及び使用可能なシフト周波数範囲を検索することができる。第2スキャンパターンに対するフェイルホールまたは使用可能な周波数範囲を検索する際に用いる第1スキャンパターンまたは第3スキャンパターンのシフト周波数は同一であるかまたは互いに異なる周波数であっても良い。
第2スキャンパターンに対するフェイルホールまたは使用可能な周波数範囲を検索するためのスキャンテスト工程で、第2スキャンパターンの出力パターンのみならず、第2スキャンパターンの前に位置する第1スキャンパターンの出力パターンも該当する予測パターンと比較することができる。このとき、第1スキャンパターン及び第2スキャンパターンのテスト結果が両方とも正常の場合、現在のシフト周波数は第2スキャンパターンの使用可能なシフト周波数である。他の例として、第2スキャンパターンの後に位置するスキャンパターンである第3スキャンパターンの出力パターンと予測パターンを比較することができる。そして、第2スキャンパターン及び第3スキャンパターンのテスト結果が両方とも正常であれば、現在のシフト周波数は第2スキャンパターンの使用可能なシフト周波数である。
テストフェイルホールが発生するかまたはフェイルホールの発生に影響を与えるスキャンパターンは第2スキャンパターンの前または後で入力される第1スキャンパターンまたは第3スキャンパターンである場合がある。第2スキャンパターンのシフト周波数が第1スキャンパターンの出力パターンがシフトアウトされる際にスキャン経路上のビット値に影響を与える場合があるからである。さらに、第2スキャンパターンによるテスト結果がシフトアウトされる際にスキャン経路上のビット値が第3スキャンパターンをスキャン経路にシフトインするシフト周波数により影響を受ける場合があるからである。従って、特定のスキャンセクションまたはスキャンパターンによるテスト結果にテストフェイルホールがある場合、スキャンセクションまたはスキャンパターンの前または後に位置するスキャンセクションまたはスキャンパターンがフェイルホールの発生に影響を与えるかを把握する。
例えば、第2スキャンパターンにはスキャン経路に正常にシフトできる周波数が用いられ、第3スキャンパターンのシフト周波数を上げながらテスト結果を確認する。このとき、もし第2スキャンパターンによるテスト結果は失敗で、第3スキャンパターンによるテスト結果は正常の場合が発生したら、第3スキャンパターンのシフト周波数は第2スキャンパターンのテスト失敗が発生しない周波数を用いる。このようにすることで、第2スキャンパターンのテスト結果に現れるフェイルホールに対する第3スキャンパターンの影響を除去することができる。
本発明の少なくとも一つの実施例において、シフト周波数を増加または減少しながらスキャンテストを行う。そして、ある特定のシフト周波数でフェイルホールが発生すると、フェイルホールに該当するシフト周波数を用いたスキャンテストが失敗だった特定のスキャンパターンを探す。そして、特定のスキャンパターン及び特定のスキャンパターンと隣り合う前または後のスキャンパターンにはフェイルホールが発生したシフト周波数より低いシフト周波数を用いてチップテストを行う。即ち、フェイルホールの発生に影響を与える隣り合うスキャンパターンにフェイルホールが発生したシフト周波数より低いシフト周波数を用いる。
本発明の少なくとも一つの実施例において、シフト周波数の増減を用いてフェイルホールが発生するスキャンセクションまたはスキャンパターンと該当するシフト周波数を探す。そして、製造工程及びテストなどを考慮したシフト周波数のマージンの範囲内でフェイルホールが発生しないシフト周波数をスキャンセクションまたはスキャンパターンに使用する。例えば、フェイルホールが発生したシフト周波数より高くてマージン範囲内ではフェイルホールが発生しないシフト周波数を用いることができる。他の例では、フェイルホールが発生したスキャンセクションまたはスキャンパターンと隣り合うスキャンセクションまたはスキャンパターンにもフェイルホールが発生したシフト周波数より高くてマージン範囲内ではフェイルホールが発生しないシフト周波数を用いることができる。
前述のように、特定のサブデータに対してフェイルホールが発生しない周波数または周波数の周期をチップの量産テストに使用すると、サブデータをマスキングまたは除去する方法によってICチップの故障検出率が低下する問題を解決することができる。さらに、故障のあるICチップがフィールドに出て行くフィールドエスケープの問題を解決することができる。フェイルホールが発生しない特定の周波数または周波数の周期の範囲を探い、チップのテストに用いることができる。
図51は、本発明の少なくとも一つの実施例に係るテスト時間短縮及び収率向上のためのシフト周波数を検索する方法の一例を示すグラフである。
図51に示すように、少なくとも二つ以上のスキャンセクションをチップのスキャン経路に互いに異なるシフト周波数を用いてシフトしてチップのテストを行うとする。このとき、二つ以上のスキャンセクションにテスト結果がすべて正常である特定のシフト周波数(5100)を基準にテスト正常マージンが小さい第1スキャンセクションにはマージンを増やしたシフト周波数が用いられる。シフト周波数のテスト正常マージンが大きい第2スキャンセクションにはマージンを減らしたシフト周波数が用いられる。
スキャンセクションのシフト周波数マージンはスキャンセクションのテスト正常または失敗情報を用いて検索または決定することができる。例えば、スキャンセクションのテスト正常と失敗の境界になる周波数または周波数の周期と特定のシフト周波数(5100)の間の間隔を表すマージンを検索または決定することができる。マージンが反映されたシフト周波数を用いるスキャンセクションとその前に位置するスキャンセクションによるテスト結果が両方とも正常でなければならない。
シフト周波数のマージンが小さいスキャンセクションに対してマージンを増やすとチップの製造工程やテスト環境などの変移に対してテスト時により少ない影響を受ける。従って、収率改善に効果がある場合がある。
さらに、シフト周波数またはシフト周波数の周期のマージンが大きいスキャンセクションに対してマージンを減らすと、テスト時間を短縮できる効果がある。
従って、収率改善とテスト時間短縮という互いに反する効果をスキャンセクション別に周波数のマージンを考慮することで共に得ることができる。
図51に示すように、第1スキャンセクションと第2スキャンセクションは名目シフト周波数(5100)20MHzで両方ともテストパスである。20MHzを基準に第1スキャンセクションのシフト周波数のマージンが予め設定された基準値より小さいと、テスト装置は第1スキャンセクションのシフト周波数のマージンを増やしてチップの量産テスト時の収率を改善することができる。即ち、第1スキャンセクションの使用シフト周波数を基準値を満足するように20MHzより小さい値に変更する。さらに、20MHzを基準に第2スキャンセクションのシフト周波数またはシフト周波数の周期のマージンが基準値より大きいと、第2スキャンセクションの周波数または周波数の周期のマージンを減らし、チップの量産テスト時にテストの総時間を短縮することができる。即ち、第2スキャンセクションの使用シフト周波数を、基準値を満足するように20MHzより大きい値に変更する。
以上のように少なくとも二つ以上のスキャンセクションに対して最適なシフト周波数を探してチップテストを行うにおいて、互いに隣り合うスキャンセクションの境界ビットのシフトタイミングが問題になる場合がある。
スキャンセクションS1の最後のビットをその後ろに順次スキャン経路にシフトインされるスキャンセクションS2の一番目のビットの間のシフト周波数の周期をCP_boundary(Clock Period of Boundary Bits)とすると、スキャンセクションS2の最適な最大シフト周波数の周期を検索したとき、S1とS2の第1CP_boundaryと最適なシフト周波数の周期を決定したS1とS2の第2CP_boundaryは異なる場合がある。例えば、第1CP_boundaryより第2CP_boundaryが小さい場合、スキャンセクションS1とS2を用いたスキャンテストは正常なチップに対して故障があると判断する可能性がある。
このような場合に、互いに隣り合うスキャンセクションの境界ビットのシフトタイミング問題を解決するためには次のような方法を用いることができる。
(1)スキャンセクションS1の最適な最大シフト周波数が決まっている場合、スキャンセクションS1の次にシフトインされるスキャンセクションS2の最適な最大シフト周波数を検索する際に、スキャンセクションS1には、S1に対して決められた最適なシフト周波数を用いる。
(2)CDP(Clock Definition Period)の境界または境界に近接した位置にスキャンビットのシフト動作が行われるクロックエッジが位置するようにする。CDPは、クロックの形が定義される時間区間で、この区間内でクロック信号の立ち上がりまたは立ち下がり時期などが定義される。CDPは装置やテストデータで設定することができる。
(3)スキャンセクションS1の最後のビットとその後に順次スキャン経路にシフトインされるスキャンセクションS2の一番目のビットの間のシフト周波数の周期またはシフト時間間隔を調整する。例えば、S1とS2を含むスキャンパターンを用いてスキャンテストを行う場合正常なチップを正常と判断できるシフト周波数の周期に調整する。シフト周波数の周期またはシフト時間間隔はテストデータで定義されるか、テスト装置で設定される。例えば、スキャンセクションS1とS2それぞれに対して最適なシフト周波数の周期が割り当てられた新規テストデータを作成する際に、スキャンセクションS1の最後のビットまたはS2の一番目のビットに対するタイミング情報を改めて作成し、タイミング情報にはS1とS2を含むスキャンパターンを用いてスキャンテストを行う場合正常なチップを正常と判断できるシフト周波数の周期が割り当てられる。例えば、名目シフト周波数の周期などが割り当てられる。
(4)互いに隣り合うスキャンセクションの境界ビットのシフトタイミング問題によって正常なチップに対してスキャンテスト時に故障があると判断する場合、当該境界ビットを含むスキャンセクションまたはスキャンパターンのシフト周波数の周期を増加する。
本発明の少なくとも一つの実施例を実行するための機能及び本発明の少なくとも一つの実施例を実行して得られたスキャンシフト周波数情報またはこの情報が反映されたスキャンセクション情報は、コンピューターで読み取り可能な記録媒体にコンピューターで読み取り可能なコードまたはデータとして格納することができる。コードの一例として、実行可能なコンピュータープログラムまたはソフトウェアなどが挙げられる。コードまたはデータは、スキャンテスト装置、バーンインテスト装置、またはコンピューターなどの装置で実行されるか用いられる。コンピューターで読み取り可能な記録媒体は、コンピューターシステムによって読み込むことができるデータが格納されるすべての種類の記録装置を含む。コンピューターで読み取り可能な記録媒体の例として、様々な形態のROM、RAM、FLASHメモリ、CD−ROM、磁気テープ、フロッピーディスク、ハードディスク、光データ記録装置などが挙げられる。
さらに、コンピューターで読み取り可能な記録媒体は、ネットワークで接続されたコンピューターシステムに分散され、分散方式でコンピューターで読み取り可能なコードまたはデータとして格納及び実行される形態を含む。本発明の少なくとも一つの実施例において、コンピュータープログラムコードまたはデータは、サーバーコンピューターに格納され、クライアントコンピューターでサーバーコンピューターに接続してコードまたはデータを使用したり、クライアントコンピューターにダウンロードして格納または実行したりことができる。例えば、サーバーコンピューターまたはクライアントコンピューターでプログラムコードを実行することができる。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。そのような変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。本明細書は前記構成の精神及び必須的特徴を外れない範囲で他の特定の形態で具体化されることを当業者へ自明する。前記詳細な説明はすべての面で制限的に解釈してはならず、例示的であることを考慮しなくてはならない。本明細書の範囲は添付された請求項の合理的会社により決定されなくてはならないうえ、本明細書の等価的範囲内でのすべての変更は本発明の範囲に含むものとする。