(57)【要約】試験用装置の入力ピンに接続可能である出力チャネルを有するシーケンス制御ロジックユニットと、シーケンス制御ロジックユニットによって実行可能である命令を備える第１の命令セットを格納する第１のメモリと、シーケンス制御ロジックユニットによって実行可能である命令を備える第２の命令セットを格納する第２のメモリと、を含み、第１のメモリと第２のメモリのうちの少なくとも一方が非逐次的にアクセス可能なメモリを備える、集積回路を試験する機器である。
2005524851.tif 000002
【特許請求の範囲】
【請求項１】
試験用装置の入力ピンに接続可能である出力チャネルを有するシーケンス制御ロジックユニットと、
前記シーケンス制御ロジックユニットによって実行可能である命令を備える第１の命令セットを格納する第１のメモリと、
前記シーケンス制御ロジックユニットによって実行可能である命令を備える第２の命令セットを格納する第２のメモリと、
を備え、
前記第１のメモリと前記第２のメモリのうちの少なくとも一方が、非逐次的な形式でアクセス可能なメモリを備える、集積回路を試験する機器。
【請求項２】
前記第１のメモリと前記第２のメモリのうちの少なくとも一方が、データセットを格納するためのメモリを備え、前記データセットが、前記出力チャネルへ出力するためのテストパターンを決定するため前記シーケンス制御ロジックユニットによって使用される、請求項１に記載の機器。
【請求項３】
前記機器の動作中に、前記第１の命令の命令セットからの第１の命令の実行によって、前記第２の命令の命令セットからの第２の命令が実行させられる、請求項１に記載の機器。
【請求項４】
前記第１のメモリが、第１の幅を有するメモリを備え、前記第２のメモリが、前記第１の幅と一致しない第２の幅を有するメモリを備える、請求項１に記載の機器。
【請求項５】
前記第１のメモリに格納された命令が、第１の長さを有する命令を備え、前記第２のメモリに格納された命令が、前記第１の長さと一致しない第２の長さを有する命令を備える、請求項４に記載の機器。
【請求項６】
前記シーケンス制御ロジックユニットが、少なくとも二つの別個の要求元からのメモリアクセス要求を受信するため結合された読み出し／書き込みキューを有するメモリインタフェースを更に備える、請求項２に記載の機器。
【請求項７】
前記シーケンス制御ロジックユニットが、前記メモリインタフェースからの実行可能な命令を受信し保持するため結合された命令キャッシュを更に備える、請求項６に記載の機器。
【請求項８】
前記第１のメモリと前記第２のメモリのうちの少なくとも一方が、前記試験用装置から受信したテスト結果を格納するメモリを備える、請求項２に記載の機器。
【請求項９】
前記第１の命令セット、前記第２の命令セット、及び前記データセットのうちの少なくとも一つを前記メモリインタフェースへロードするため結合されたフロントエンドプロセッサを更に備える、請求項２に記載の機器。
【請求項１０】
前記シーケンス制御ロジックユニットが、複数のパターン制御ロジックブロックを更に備え、
少なくとも一つの前記パターン制御ロジックブロックが、前記データセットから受信したデータに基づいてテストパターンを出力するためロジックを備える、請求項２に記載の機器。
【請求項１１】
前記複数のパターン制御ロジックブロックのうちの対応した一つから少なくとも一つの出力ビットを受信するための複数の選択マルチプレクサと、
前記複数の選択マルチプレクサのそれぞれの出力を制御するためのデータ選択ロジックブロックと、
を更に備える、請求項１０に記載の機器。
【請求項１２】
前記データ選択ロジックブロックが、前記第１のメモリと前記第２のメモリのうちの一方に格納された実行可能な命令の一部分に基づいて、前記複数の選択マルチプレクサのそれぞれのためのデータ選択コードを決定する、請求項１１に記載の機器。
【請求項１３】
前記第１のメモリ及び前記第２のメモリに格納された前記データセットが、機能データ、スキャンデータ、及びデジタル化されたアナログデータを表すデータセットのうちの少なくとも一つを備える、請求項２に記載の機器。
【請求項１４】
シーケンス制御ロジックユニットによって使用可能である第１の命令セットを第１のメモリに格納するステップと、
前記シーケンス制御ロジックユニットによって使用可能である第２の命令セットを第２のメモリに格納するステップと、
試験用装置の入力ピンに接続可能である出力チャネルに出力するためのテストパターンを決定するため、前記第１のメモリと前記第２のメモリの両方に格納された命令にアクセスするステップと、
を備える、集積回路を試験する方法。
【請求項１５】
前記アクセスするステップが、前記第１のメモリと前記第２のメモリのうちの少なくとも一方に格納された命令に非逐次的な形式でアクセスする、請求項１４に記載の方法。
【請求項１６】
前記第１のメモリに格納された前記第１の命令の命令セットから第１の命令を実行するステップと、
前記第１の命令を実行するステップの後に、前記第２のメモリに格納された前記第２の命令セットから第２の命令を実行するステップと、
を更に備える、請求項１４に記載の方法。
【請求項１７】
前記命令を前記第１のメモリに格納するステップが、第１の幅を有する命令を格納し、
前記命令を前記第２のメモリに格納するステップが、前記第１の幅と一致しない第２の幅を有する命令を格納する、請求項１４に記載の方法。
【請求項１８】
テストシステムに複数のパターン制御ロジックブロックから複合出力パターンを選択させるデータ選択命令を備える、テストシステム命令。
【請求項１９】
オペコードフィールドと、
前記複合出力パターンを指定するためのオペランドフィールドと、
を更に備える、請求項１８に記載の命令。
【請求項２０】
前記オペランドフィールドが、データルックアップテーブルのインデックスを決め、前記複数のパターン制御ブロックからの前記複合出力パターンの選択を制御するため使用される、請求項１９に記載の命令。
【請求項２１】
第１のメモリから読み出されたとき、テストシステムに第２のメモリから後続の命令を読み出させる呼び出し命令を備える、テストシステム命令。
【請求項２２】
オペコードフィールドと、
前記第２のメモリに格納された命令のアドレスを指定するためのオペランドフィールドと、
を更に備える、請求項２１に記載のテストシステム命令。
【請求項２３】
前記第２のメモリから読み出されたとき、テストシステムに前記第１のメモリから後続の命令をフェッチさせるリターン命令を更に備える、請求項２２に記載のテストシステム命令。
【請求項２４】
テストシーケンスプログラムに含まれる命令に対応した実行可能な命令をアセンブルするステップを備え、
前記アセンブルするステップが、両方ともにテストシステムによって実行可能である第１の命令の命令セット又は第２の命令の命令セットに含まれる第１の実行可能な命令を決定するステップを更に備える、方法。
【請求項２５】
前記決定するステップが、前記第１の実行可能な命令が前記テストシステムによって逐次的な形式で実行されるかどうかを決定するステップを更に備える、請求項２４に記載の方法。
【発明の詳細な説明】
【優先権主張】
【０００１】
[0001]本願は、米国特許法１１９条（ｅ）に基づいて、２００２年５月８日に出願された米国特許出願第６０／３７９，３４１号に基づく優先権を主張し、この特許出願の全内容は参照によって本明細書に組み入れられる。
【背景】
【０００２】
[0002]本願は集積回路テストに関する。
【０００３】
[0003]典型的な集積回路テストシステムでは、テストパターンのシーケンス（「テストシーケンス」）が、試験用装置（ＤＵＴ）のピンに供給される。多種多様なテストパターン、例えば、スキャンパターン、機能パターン、アルゴリズムパターン、及びアナログパターンが特定のＤＵＴを収容する様々なロジックセクションを試験するため使用される。一部のタイプのテストパターン（例えば、スキャンパターン）は直列形式でＤＵＴピンへ供給され、別のタイプ（例えば、機能パターン、アナログパターン及びアルゴリズムパターン）は並列形式でピンの組に供給される。ＤＵＴのアーキテクチャに応じて、テストシーケンスは、複合テストパターンを出力し、すなわち、２タイプ以上のテストパターンを同時にＤＵＴの異なるピンへ出力する。
【０００４】
[0004]テストシーケンス中に、ＤＵＴは出力ピンからテスト「結果」を出力する。したがって、テストシステムは、テストシーケンス中にテスト結果を受信するためＤＵＴに接続された二つ以上の入力チャネルを含む。
【概要】
【０００５】
[0007]本発明の一態様によれば、集積回路を試験する機器は、試験用装置の入力ピンに接続可能である出力チャネルを有するシーケンス制御ロジックユニットと、シーケンス制御ロジックユニットによって実行可能である命令を備える第１の命令セットを格納する第１のメモリと、シーケンス制御ロジックユニットによって実行可能である命令を備える第２の命令セットを格納する第２のメモリと、を含み、第１のメモリと第２のメモリのうちの少なくとも一方が非逐次的にアクセス可能なメモリを含む。
【０００６】
[0008]以下の一つ以上の特徴が含まれる。集積回路を試験する機器は、第１のメモリと第２のメモリのうちの少なくとも一方がデータセットを格納するためのメモリを含み、データセットが出力チャネルへ出力するためのテストパターンを決定するためシーケンス制御ロジックユニットによって使用されることを特徴とする。集積回路を試験する機器は、機器の動作中に、第１の命令の命令セットからの第１の命令の実行によって、第２の命令の命令セットからの第２の命令が実行されることを特徴とする。集積回路を試験する機器は、第１のメモリが第１の幅を有するメモリを備え、第２のメモリが第１の幅と一致しない第２の幅を有するメモリを備えることを特徴とする。集積回路を試験する機器は、第１のメモリに格納された命令が第１の長さを有する命令を備え、第２のメモリに格納された命令が第１の長さと一致しない第２の長さを有する命令を備えることを特徴とする。集積回路を試験する機器は、シーケンス制御ロジックユニットが少なくとも二つの別個の要求元からのメモリアクセス要求を受信するため結合された読み出し／書き込みキューを有するメモリインタフェースを含むことを特徴とする。集積回路を試験する機器は、シーケンス制御ロジックユニットがメモリインタフェースからの実行可能な命令を受信し保持するため結合された命令キャッシュを更に備えることを特徴とする。集積回路を試験する機器は、第１のメモリと第２のメモリのうちの少なくとも一方が試験用装置から受信したテスト結果を格納するメモリを備えることを特徴とする。集積回路を試験する機器は、第１の命令セット、第２の命令セット、及びデータセットのうちの少なくとも一つをメモリインタフェースへロードするため結合されたフロントエンドプロセッサを含むことを特徴とする。集積回路を試験する機器は、シーケンス制御ロジックユニットが複数のパターン制御ロジックブロックを含み、少なくとも一つのパターン制御ロジックブロックがデータセットから受信したデータに基づいてテストパターンを出力するためロジックを備えることを特徴とする。集積回路を試験する機器は、少なくとも一つの出力ビットを複数のパターン制御ロジックブロックのうちの対応した一つから受信するため複数の選択マルチプレクサを含み、複数の選択マルチプレクサのそれぞれの出力を制御するためデータ選択ロジックブロックを含むことを特徴とする。集積回路を試験する機器は、データ選択ロジックブロックが第１のメモリと第２のメモリのうちの一方に格納された実行可能な命令の一部分に基づいて複数の選択マルチプレクサのそれぞれのためのデータ選択コードを決定することを特徴とする。集積回路を試験する機器は、第１のメモリ及び第２のメモリに格納されたデータセットが機能データ、スキャンデータ、及びデジタル化されたアナログデータを表すデータセットのうちの少なくとも一つを備えることを特徴とする。
【０００７】
[0009]本発明の実施形態は、以下の一つ以上の効果を奏する。例えば、本発明の機器は、リニア形式で、ランダムアクセス形式で、又はそれらの組み合わされた形式で複合テストプログラムに含まれた命令をフェッチする。ランダムアクセス形式で命令をフェッチする能力は機器のプログラミングにフレキシビリティを与え、例えば、機器のための命令セットの命令が非リニアテストシーケンスプログラムの実行を引き起こす。更に、一部の実施例において、機器は二つのメモリを含み、各メモリが命令セット及び／又はデータセットを格納するため使用され、命令のそれぞれの組のために、又は特定のＤＵＴを試験するため必要なテストパターンの異なるタイプのそれぞれのために付加的なメモリが要求されないので、機器のコストを削減する。また、機器の信頼性は、個別のコンポーネントの個数が減少するので、例えば、メモリ及び個別のロジックブロックの個数が減少するので向上する。
【説明】
【０００８】
[0010]図１を参照すると、試験用装置（ＤＵＴ７０）を試験する集積回路テストシステム１０は、シーケンス制御ロジックのブロック２０（ＳＣＬ２０）と、第１のメモリ６０と、フロントエンドプロセッサ６５（ＦＥＰ６５）とを含む。ＳＣＬ２０は、シーケンス制御プロセッサブロック２５（ＳＣＰ２５）と、第２のメモリ７５と、出力チャネル５０と、入力チャネル５１とを含む。ＳＣＰ２５は、第１のメモリ６０及び／又は第２のメモリ７５に格納された命令を実行し、テストパターンを出力チャネル５０からＤＵＴ７０へ出力する。本例のシステム１０において、複合テストシーケンスプログラム６２（図示せず）は、第１の実行可能な命令の命令セット６２ａ（第１の命令セット６２ａ）及び第２の実行可能な命令の命令セット６２ｂ（第２の命令セット６２ｂ）を含み、第１の命令セット６２ａ及び第２の命令セット６２ｂの両方はＳＣＰ２５によって実行可能である。システム１０の動作中に、第１の命令セット６２ａは第１のメモリ６０に格納され、第２の命令セット６２ｂは第２のメモリ７５に格納される。複合テストシーケンスプログラム６２は、したがって、第１の命令セット６２ａからの命令と第２の命令セット６２ｂからの命令を交互に実行することによりＳＣＰ２５によって実行される。複合テストプログラム６２の実行中に、ＳＣＰ２５は、ＳＣＬ２０に含まれる種々のロジックブロックを制御し、出力チャネル５０からＤＵＴ７０へ出力されるテストパターンを発生する。
【０００９】
[0011]システム１０の一実施例において、メモリ６０に格納された実行可能な命令は、逐次方式（「リニアアクセス」）だけでＳＣＬ２０によってアクセスされ（例えば、読み出され）、一方、メモリ７５に格納された実行可能な命令はリニア形式又はランダム形式の何れかでＳＣＰ２５によってアクセスされる。本実施例において、メモリ６０は比較的大規模かつ比較的低速のリニアアクセスメモリとして実現され、一方、メモリ７５は比較的小規模かつ比較的高速のランダムアクセスメモリとして実現される（すなわち、メモリ７５は以下ではＲＡＭ７５と称される）。
【００１０】
[0012]典型的なＤＵＴは、各パターンの間の時間量がＤＵＴロジックの速度によって決められる逐次的なテストパターンの組の入力を必要とする。したがって、ＳＣＬ２０からＤＵＴ７０への逐次的なテストパターン出力は、適時に、例えば、ＤＵＴの入力パターンタイミング必要条件を満たすように出力されなければならない。システム１０の一実施例において、比較的低速のメモリ６０は、テストシーケンスプログラムに含まれた実行可能な命令の部分を格納するため使用される。メモリ６０内のロケーションへの非逐次的アクセスを処理するため必要な時間は、ＤＵＴ７０への逐次的なテストパターン出力の間に許容できないほど長い遅延を生じさせる。したがって、ＳＣＬロジックユニット２０はリニア形式だけでメモリ６０へアクセスするように実現され、例えば、複合テストプログラム６２の実行中にメモリ６０内の逐次的なロケーションに格納された命令を読み出す。これに対して、比較的高速のランダムアクセスメモリ７５は、システム１０に収容され、ＳＣＬ２０が（例えば、メモリ６０から）リニア形式と（例えば、ＲＡＭ７５から）ランダムアクセス形式の両方の形式で複合テストプログラムに含まれる命令をフェッチすることを可能にさせる。このリニア形式とランダムアクセス形式の両方で命令をフェッチする方式は、システム１０のプログラミングにフレキシビリティを与え、例えば、非リニアテストシーケンスプログラムに命令を収容すること（例えば、命令セットに「ジャンプアドレス」命令を収容すること）を許容する。また、ＲＡＭ７５の比較的高速のアクセス時間は、ＤＵＴ７０への逐次的なテストパターン出力の間に許容できない遅延を生じさせることなく、ＳＣＰ２５がＲＡＭ７５に格納された実行可能な命令のランダムアクセスを実行することを可能にさせる。
【００１１】
[0013]従来のテストシステムは、ＤＵＴを試験するため必要な特定のテストパターンのそれぞれを発生する別個のロジックのブロックを含むことがよくある。典型的に、別個のパターン固有ロジックブロックのそれぞれは、特定のタイプのテストパターンを生成するため必要なデータセット及び／又はアルゴリズム情報を記憶する別個のメモリを含む。これに対して、システム１０は、命令を格納するため使用され、データセットを格納するために使用してもよい第１のメモリ６０及び第２のメモリ７５を含み、この各データセットはＤＵＴをテストするために必要である様々なタイプのテストパターンに対応する可能性がある。例えば、データセットのタイプには、機能データ（Ｆデータ）、スキャンデータ及びデジタル化されたアナログデータが含まれる。しかし、デジタルフォーマットで表現されるあらゆるタイプのデータがメモリ６０及び／又はＲＡＭ７５に格納され、メモリ６０及び／又はＲＡＭ７５から読み出される。命令とデータセットの両方を格納するためメモリ６０及びＲＡＭ７５を使用することにより、テストシーケンスプログラムのそれぞれに、及び／又はＤＵＴのため必要な異なるタイプのテストパターンのそれぞれに別個のメモリが要求されないので、システム１０のコストが削減される。更に、命令とデータセットの両方を格納するためメモリ６０及びＲＡＭ７５を使用することにより、別個のコンポーネントの個数が減少し、すなわち、メモリと別個のロジックブロックの個数が減少するので、システム１０の信頼性が向上する。
【００１２】
[0014]図１を更に参照すると、ＳＣＰ２５は複合テストシーケンスプログラム６２を実行し、また一連のパターン制御ロジックブロック３７ａ−３７ｃ（ＰＣＬ３７ａ−３７ｃ）及びアルゴリズムパターン発生ブロック４１（ＡＰＧ４１）の出力を制御する。ＡＰＧ４１は、ＳＣＰ２５によって作動されたとき、ハードウェアに組み込まれた、又はプログラム６２の実行前若しくは実行中にＡＰＧ４１にロードされたソフトウェアプログラムによって実現された、アルゴリズムに基づく出力ビットパターンを生成する。使用される具体的なアルゴリズムは、希望のテストのタイプ及びＤＵＴの仕様に依存する。ＳＰＬ制御ブロック３７ａは、データセットに基づいて出力するために適切なＳＣＡＮビットを決定する制御ブロックを表す。ＡＰＬ制御ブロック３７ｂは、データセットに基づいて出力するために適切なデジタル化されたアナログビットを決定する制御ブロックを表す。Ｆ制御ブロック３７ｃは、データセットに基づいて出力するために適切な機能データビットを決定する制御ブロックを表す。
【００１３】
[0015]ＰＣＬ３７ａ−３７ｃは、メモリ６０に格納されたデータセット６０ａ−６０ｎからデータのブロックを受信するため接続される。ＰＣＬ３７ａ−３７ｃ及びＡＰＧ４１の出力３９ａ−３９ｄはセレクタマルチプレクサ４３（ＭＵＸ４３）へ入力される。複合ビットパターンはＭＵＸ４３からバス４４に出力され、選択された複合ビットパターンはＳＣＰ２５からの制御ライン４０によって制御される。バス４４上の複合ビットパターンは、次に、イベントロジックブロック４７及びピンエレクトロニクスブロック４９を介して送信される。ＳＣＰ２５は、制御ライン４６上のイベントロジック４７に機能信号を送信するため接続される。ライン４６上の機能信号は、ＤＵＴ７０によって要求される適切な出力信号特性を決定するためイベントロジック４７及びピンエレクトロニクス４９によって使用される。より詳細には、機能信号４６は、ＤＵＴ７０へ送信される出力信号の適切な動作特性を決定するため、例えば、出力チャネル５０に接続されたＤＵＴ７０の各ピンによって要求されるタイミング、電圧レベル及び／又は電流レベルを決定するため、イベントロジック４７及びピンエレクトロニクス４９によって使用される。
【００１４】
[0016]メモリ６０へアクセスするため、ＳＣＬ２０は、メモリバス６１によってメモリ６０に接続されたメモリインタフェース／ページ要求スプーラ２９（ＭＩＰＲＳ２９）を含む。ＭＩＰＲＳ２９は、ＳＣＬ２０内の様々なロジックブロック（要求元）からデータ及び命令読み出し／書き込み要求を受信するため接続された読み出し／書き込みキュー２９ａを含む。読み出し／書き込みキュー２９ａは、ＭＩＰＲＳ２９が複数の読み出し／書き込み要求を保持し、これらの要求を順番に処理することを可能にさせる。システム１０の本実施例において、要求元は（第１の命令セット６２ａから命令を要求する）ＳＣＰ２５と、（それぞれがデータセット６０ａ−６０ｎからデータを要求する）ＰＣＬ３７ａ−３７ｃと、（結果がＤＵＴ７０から入力チャネル５１で受信されたときにデータ書き込みを要求する）ＰＥ４９と、を含む。各要求元は、また、第１の要求元が動作を継続している間に同時にＭＩＰＲＳ２９が第２の要求元からの読み出し又は書き込み要求を処理可能にするために十分なデータ又は命令のバッファを保持するため、関連したキャッシュ（又はバッファ）（例えば、１組のＦＩＦＯレジスタ）を含む。例えば、ＳＣＬ２０は、命令キャッシュ２５ａ及び結果キャッシュ３１を含み、両方のキャッシュはＭＩＰＲＳ２９に接続され、メモリ６０から読み出された命令及びメモリ６０へ書き込まれるべき結果データをそれぞれ記憶するため使用される。同様に、各ＰＣＬ３７ａ−３７ｃは、バス３４上でメモリ６０から読み出されたテストデータ及びＭＩＰＲＳ２９から受信されたテストデータ、又はＲＡＭ７５から読み出されたテストデータ及びＳＣＰ２５からバス３４ａ上で受信されたテストデータを保持するため使用されるＦＩＦＯレジスタ３８ａ−３８ｃを含む。
【００１５】
[0017]ＳＣＬ２０は、バス２８によってＭＩＰＲＳ２９に接続され、バス２８ａによってＲＡＭ７５に接続されたバスインタフェースブロック２７を含む。バスインタフェースブロック２７は、また、バス６６によってフロントエンドプロセッサ６５に接続され、バス２６によってシーケンス制御プロセッサ２５（ＳＣＰ２５）に接続される。システム１０の動作中に、フロントエンドプロセッサ６５は、バスインタフェース２７、バス２８及びＭＩＰＲＳ２９を経由して命令セット及びデータセットを送信することにより、第１の命令の命令セット６２ａ及び／又はテストデータセット６０ａ−６０ｎをメモリ６０にロードする。同様に、フロントエンドプロセッサ６５は、バスインタフェース２７及びバス２８ａを経由して命令セット及びデータセットをＲＡＭ７５へ送信することにより、第２の命令の命令セット６２ｂ及び／又はテストデータセットをＲＡＭ７５にロードする。
【００１６】
[0018]バスインタフェース２７は、複数のレジスタＲＥＧａ−ＲＥＧｎを含み、複数のレジスタは、メモリ６０及び／又はＲＡＭ７５に格納された第１の命令セット６２ａの開始アドレスと各データセットの開始（「ベース」）アドレスを格納するため、フロントエンドプロセッサ６５（ＦＥＰ６５）によって使用される。第１の命令セット６２ａ及び各データセット６０ａ−６０ｎのベースアドレス及びサイズは可変である。システム１０の動作中、ローディング前に、ＦＥＰ６５は第１の命令セット６２ａ及び各データセットのベースアドレスをレジスタＲＥＧａ−ＲＥＧｎのうちの一つのレジスタに書き込む。ベースアドレスはＭＩＰＲＳ２９へ転送され、ＭＩＰＲＳ２９は、メモリ６０のローディング中に第１の命令セット６２ａ及び各データセット６０ａ−６０ｎの次の書き込みロケーションを決定するためベースアドレスを使用する。ＭＩＰＲＳ２９は、また、ＳＣＰ２５及びパターン制御ブロック３７ａ−３７ｃのそれぞれから受信された次の読み出しのロケーションを決定するため、すなわち、第１の命令セット６２ａ及び各データセット内でベースアドレスに対して相対的に次の読み出しアドレスを決定するため、第１の命令セット６２ａ及び各データセットのベースアドレスを使用する。
【００１７】
[0019]ＦＥＰ６５は、信号ライン６８によってＳＣＰ２５へコマンド信号を送信するため接続される。第１の命令の命令セット６２ａ及びテストデータセット６０ａ−６０ｎがメモリ６０にロードされた後、第２の命令の命令セット６２ｂがＲＡＭ７５にロードされて、ＦＥＰ６５は信号ライン６８上のＳＣＰ２５へ「スタート」信号を送信し、これにより、ＳＣＰ２５にテストシーケンスプログラム６２の実行を開始させる。ＳＣＰ２５がＦＥＰ６５から「スタート」信号を受信するとき、ＳＣＰ２５は、（レジスタＲＥＧａ−ＲＥＧｎのうちの一つのレジスタに格納された）第１の命令セット６２ａの開始アドレスをＭＩＰＲＳ２９へ送信する。ＭＩＰＲＳ２９は、送信された開始アドレスから始まる第１の命令セット６２ａから命令のブロックを読み出し、次に、読み出された実行可能な命令を命令キャッシュ２５ａへ転送し、命令キャッシュは次にこれらの命令を命令バス３３上のＳＣＰ２５へ転送する。
【００１８】
[0020]上述のように、レジスタＲＥＧａ−ＲＥＧｎは、メモリ６０に格納された第１の命令セット６２ａ及びテストデータ６０ａ−６０ｎの各セットに関するベースアドレスを格納するため使用される。ＳＣＰ２５がテストシーケンスプログラム６２の実行を開始すると、ＳＣＰ２５は、要求された各データセットの第１の読み出し要求を初期化するため、これらのベースアドレスを読み出し、バスインタフェース２７を介してＭＩＰＲＳ２９へ転送する。後続の読み出し要求は、データセット６０ａ−６０ｎからの付加データを要求する要求側のＰＣＬ３７ａ−３７ｃからＭＩＰＲＳ２９へ送信される。同様に、ＳＣＰ２５は、第１の命令セット６２ａからの付加命令がＳＣＰ２５によって要求されたとき、命令読み出し要求をＭＩＰＲＳ２９へ送信する。ＭＩＰＲＳ２９によって受信された各読み出し要求は、ＭＩＰＲＳ２９に、第１の命令セット６２ａ又はテストデータ６０ａ−６０ｎのそれぞれから命令又はデータのページを読み出させ、命令又はデータのそれぞれのページを要求元へ返却させる。「ページ」は、各要求元がその付随したバッファに格納することができる命令又はデータのブロックサイズを表す。各要求元が有するページサイズは異なっていてもよい。
【００１９】
[0021]ＳＣＰ２５は、各ＦＩＦＯ３８ａ−３８ｃに保持されたデータの進みを制御するため、制御ライン２９によって各制御ブロック３７ａ−３７ｃのそれぞれの出力３９ａ−３９ｃに接続される。ＳＣＰ２５は、また、ＭＵＸ４３へのアルゴリズムパターンの出力３９ｄを制御するため、制御ライン２７によってＡＰＧ４１に接続される。ＳＣＰ２５は、また、選択ライン４０によってＭＵＸ４３へ接続され、バス４４上の複合ビットパターンの選択を制御する。システム１０の動作中、テストシーケンスプログラム６２内の実行可能な命令のそれぞれがＳＣＰ２５によって受信されるとき、その命令はＳＣＰ２５によってデコードされる。実行可能な命令に基づいて、ＳＣＰ２５は、各ＰＣＬ３７ａ−３７ｃ及びＡＰＧ４１から要求される出力ビットを決定し、ＭＵＸ４３への制御バス４０に選択コードを出力する。選択コードは、ＤＵＴ７０のピン毎に指定されたテストパターンに対応し、パターン制御ブロック３７ａ−３７ｃ及びＡＰＧ４１のそれぞれからの適切なビットを選択させる。一例として、ＭＵＸ４３の出力バス４４が３２ビット幅であるならば（ビット０からビット３１までのビット位置を有するならば）、命令は、ＳＰＬ制御ブロック３７ａからのスキャンビットとしてビット０を指定し、ＡＰＬ制御ブロック３７ｂからのアナログビットとしてビット１〜ビット３１を指定する。この場合、ＳＣＰ２５は、ＭＵＸ４３からの複合出力パターンを形成するため、ＳＰＬブロック３７ａ及びＡＰＬブロック３７ｂから出力されたビットを選択するように選択コードを送信し、この場合は、ＳＰＬブロック３７ａからのビット０とＡＰＬブロック３７ｂからのビット１〜ビット３１を結合する。ＭＵＸ４３への選択コードの出力に続いて、ＳＣＰ２５は、制御ライン２９及び制御ライン２７のそれぞれに前進信号を送信することにより、ＰＣＬ３７ａ−３７ｃ及びＡＰＧ４１〜出力３９ａ〜３９ｃのそれぞれからの適切なビットを進める。したがって、本例において、バス２９上の前進信号は、ＳＰＬブロック３７ａからの１ビット及びＡＰＬブロック３７ｂからの３１ビットを出力するため送信される。
【００２０】
[0022]バス４４上の複合ビットパターン出力はイベントロジックブロック４５に入力される。イベントロジック４５は、また、ＳＣＰ２５からのライン４６上の機能制御信号を受信する。機能信号は、出力チャネル５０に接続されたＤＵＴ７０の各ピンのため必要な出力信号の動作特性を反映する。イベントロジック４７は、バス４８上のデジタル信号パターンとバス４６ａ上の条件付け信号をピンエレクトロニクス４９（ＰＥ４９）へ転送する。バス４８上のデジタル信号パターンはＤＵＴ７０の必要なタイミングに基づく。ＰＥ４９は、次に、バス４６ａ上の条件付け信号に応じて、受信したデジタル信号パターンに「条件を設定」し、例えば、出力信号の電圧を増幅し、及び／又はデジタル信号パターンをアナログ出力信号に変換し、及び／又はＤＵＴ７０のピン若しくはピンの組によって要求される出力信号のタイミングを調整する。
【００２１】
[0023]ＰＥ４９からＤＵＴ７０への条件設定された出力信号は、ＤＵＴピン７０ａ−７０ｄに接続された信号チャネル５０に出力される。テストパターンがＤＵＴ７０へ出力されるとき、テスト結果は入力チャネル５１に接続されたＤＵＴ７０のピン７０ａからＳＣＬ２０へ入力される。受信された結果は、次に、バス４９ａを介して送信され、結果キャッシュ３１に格納される。結果キャッシュ３１が結果のページ全体を格納したとき、結果キャッシュ３１は、結果のページをメモリ６０へ書き込むため、書き込み要求をＭＩＰＲＳ２９へ送信する。メモリ６０に格納された結果は、フロントエンドプロセッサ６５又はＳＣＰ２５によって後で取り出される。システム２０の一実施形態において、受信された結果は、プログラム６２から実行される命令の流れを決定するため（例えば、受信した結果に基づいて分岐判定を行うため）、プログラム６２の実行中にＳＣＰ２５によって使用される。
【００２２】
[0024]一実施形態において、ＲＡＭ７５はテスト結果を格納するため使用され、それらの結果は命令実行の流れを決定するため使用される。
【００２３】
[0025]一実施形態において、システム１０をプログラムするため使用される命令セットは統一命令セットであり、すなわち、単一の命令セットであり、この単一の命令セットから第１の命令の命令セット６２ａ及び第２の命令の命令セット６２ｂの実行可能な命令がアセンブルされる。単一の統一命令セットの使用は、メモリ６０とＲＡＭ７５の両方のために別個の命令セットが必要とされないので、プログラミングシステム１０の複雑さを軽減する。
【００２４】
[0026]統一命令セット内の各命令は、実行可能な命令にアセンブルされたとき、オペコードフィールドとオペランドフィールドを含む。一実施形態において、オペコードフィールドは長さが４ビットである。４ビットのオペコードは比較的短いオペコードであるが、比較的短いオペコードフィールドは、実行可能な命令を保存するためメモリ６０及び／又はＲＡＭ７５の比較的狭いメモリ幅の使用を可能にする。また、比較的短いオペコードフィールドの４ビットの長さは、比較的長いオペランドフィールドの長さを比較的長いアドレス又はデータ値を指定するため使用できるようにする。
【００２５】
[0027]ＳＣＰ２５は、命令によって指定されたカウント値を格納するため使用される１組のカウンタＣＮＴＲａ−ＣＮＴＲｎを含む。第１の命令によって一つのカウンタに格納されたカウント値は、後述するように、後続の命令の実行中にＤＵＴ７０に出力する後続のテストパターンの個数を決定するため、ＳＣＰ２５によって使用される。
【００２６】
[0028]一実施形態において、統一命令セットは、実行されたときに、システム１０に含まれる種々のハードウェアブロックの選択及び／又は設定を引き起こす「選択」命令を含む。例えば、統一命令は、ＰＣＬ３７ａ−３７ｃから複合出力パターンを選択するため使用される「ＳＤＳ  データ」（データ選択）命令を含む。別の例として、統一命令セットは、カウンタ値のローディングを行うカウンタＣＮＴＲａ−ＣＮＴＲｎのうちの一つを選択するため使用される「ＳＬＣ  ｘ」（カウンタ選択）命令を含む。カウンタ値は、一般に、先に選択された複合出力パターンを使用して出力する後続のテストパターンの個数を決定するため使用される。例えば、システム１０によって実行可能であるテストシーケンスプログラムは、ＰＣＬからの出力の組み合わせを選択させる、及び／又は（例えば、後続のテストプログラムの実行中に出力する選択されたパターンの個数を指定するため）カウンタ値を格納するためにカウンタを選択させる、一つ以上の選択命令を含む。
【００２７】
[0029]例１（以下に示す）は、ＰＣＬから出力パターンを選択するための、この場合は、ＳＰＬ  ＰＣＬ３７ａからのスキャンビットだけを選択させる「ＳＤＳ  ｓｃａｎ」（データ選択）命令を含むテストシーケンスプログラムの一例である。例１は、また、カウンタのうちの一つを選択する、この場合は、ＣＮＴＲａを選択する「ＳＣＬ  ａ」命令を含む。「ＳＣＬ  ａ」命令の後には、実行されたときに、「４０９５」のカウント値をＣＮＴＲａにロードさせる「ＬＤＣ  ４０９５」（カウンタ値ロード）命令が続く。例１は、また、実行されたとき、ＳＣＰ２５による実行の各サイクル中にＣＮＴＲａに格納されたカウント値（例えば、４０９５の値）をデクリメントさせ、ＣＮＴＲａに格納されたカウント値がゼロにデクリメントされるまで選択された出力パターンを出力させる「ＢＯＺ  アドレス１」（ゼロのときアドレス１へ分岐）を含む。
【００２８】
[0030]例１：
ＳＤＳ  “ｓｃａｎ”        ；すべての出力ピンに対しスキャンデータソースが選択される。
ＳＬＣ  ａ                      ；カウンタａ（ＣＮＴＲａ）を選択
ＬＤＣ  ４０９５              ；４０９５のカウンタ値をＣＮＴＲａにロード
ＢＯＺ  “ａｄｄｒｅｓｓ１”；ゼロのとき分岐する。システム１０によって実行されるとき、ＣＮＴＲａに保存されたカウンタ値４０９５がゼロにデクリメントされるまで、選択されたｓｃａｎパターンの出力を生じさせる。
【００２９】
[0031]統一命令セットは、また、システム１０に含まれる他のハードウェアブロックを設定又は選択させるその他の選択命令を含む。例えば、統一命令セットは、「ＳＹＮＣ（同期）」イベント、すなわち、ハードウェアブロックによって検出可能であり、複数のシーケンス制御ロジックユニットの動作を同期させるため使用される信号又はコードを指定する選択命令を含む。
【００３０】
[0032]テストシーケンスプログラム６２に含まれる命令はプログラマが指定してもよく、又はユーザは、例えば、フロントエンドプロセッサ６５上でテストシーケンス発生プログラムを実行してもよい。テストシーケンス発生プログラムは、ユーザがフロントエンドプロセッサ６５に接続された入力／出力装置（例えば、図示されないキーボード又はマウス）を用いてＤＵＴテスト用選択を実行できるようにする。例えば、テストシーケンス発生プログラムは、ユーザがＤＵＴ７０の各ピンに必要なテストパターンのタイプ、及びテストシーケンスプログラムの実行中にＤＵＴ７０へ出力する逐次的なパターンの個数を選択し指定できるようにする。ユーザは、また、テストシーケンス中にＤＵＴ出力ピンからの予想結果を選択し指定してもよい。ユーザは、また、ＤＵＴ７０の物理特性、例えば、ＤＵＴ７０によって必要とされるクロック速度及び／又は動作電圧レベルを指定してもよい。テストシーケンスプログラム６２は、後述するように、ＳＣＬ２０から出力されたテストパターン信号及びＤＵＴへの入力がＤＵＴの動作信号必要条件に合致するよう条件付けされるように、ＤＵＴの物理特性を反映する命令を含む。
【００３１】
[0033]アセンブラプログラムは、（プログラマによって指定されるように、又はテストシーケンス発生プログラムの実行中にユーザの選択に基づいて）テストシーケンスプログラムに含まれる命令に基づいて実行可能な命令をアセンブルするため使用される。実行可能な命令は第１の命令セット６２ａ及び／又は第２の命令セット６２ｂに含まれる。
【００３２】
[0034]複合テストシーケンスプログラム６２を実行するためメモリ６０とＲＡＭ７５の両方を使用する一例として、第１の命令の命令セット６２ａはメモリ６０にロードされ、第２の命令の命令セット６２ｂはＲＡＭ７５にロードされる。第１の命令の命令セット６２ａの開始アドレスはレジスタ、例えば、ＲＥＧａにロードされ、スタート信号は、信号ライン６８上のＦＥＰ６５によってＳＣＰ２５に入力される。ＳＣＰ２５は、ＲＥＧａに格納された宛先アドレスから（メモリ６０に格納された）第１の命令セット６２ａからの命令をフェッチすることによりテストプログラム６２を実行し始める。ＳＣＰ２５は、ＳＣＰ２５にＲＡＭ７５から命令のフェッチを開始させる命令がフェッチされるまで、第１の命令セット６２ａからの命令をフェッチし実行する。例えば、統一命令セットは、ＲＡＭ７５に格納された第２の命令セット６２ｂ内の「アドレス１」に格納されたサブルーチンを指定するサブルーチン呼び出し命令「ＣＡＬ  アドレス１」を含む。この場合、ＳＣＰ２５が第１の命令セット６２ａからの「ＣＡＬ  アドレス１」命令をフェッチしデコードするとき、ＳＣＰ２５はＲＡＭ７５に格納された第２の命令セット６２ｂの一部として格納されたサブルーチンから後続の命令をフェッチし始める。ＳＣＰ２５は、「ＲＥＴ」（リターン）命令が第２の命令セット６２ｂからフェッチされるまで、ＲＡＭ７５からの命令の実行を継続する。ＲＥＴ命令は、呼び出し命令からフェッチ命令への復帰を生じさせ、この場合は、ＣＡＬ命令の後に続く第１の命令セット６２ａ内の命令へ戻る。
【００３３】
[0035]統一命令セットは、ＲＡＭ７５だけから実行される命令を含む。例えば、統一命令セットは、ＲＡＭ７５に格納された別の命令のアドレスを指定する「ＪＭＰ  アドレス１」（アドレス１へジャンプ）命令を含む。ＳＣＰ２５がＲＡＭ７５から「ＪＭＰ  アドレス１」命令をフェッチし実行するとき、ＳＣＰ２５はアドレス１から命令をフェッチし始める。「ＪＭＰ  アドレス」命令は、ＲＡＭ７５への非リニアアクセスを生じさせる命令の一例であり、したがって、「ＪＭＰ  アドレス」命令は、一部の実施例においてリニア形式でのみアクセス可能であるメモリ６０に格納された命令にアクセスするためには使用されない。
【００３４】
[0036]アセンブラプログラムは、また、テストシーケンスプログラムに含まれる命令の中で、どの命令が第１の命令セット６２ａに含まれ、どの命令が第２の命令セット６２ｂに含まれるべきかを決定する。例えば、アセンブラは、どの命令がリニア形式でフェッチされ実行されるかを決め、どの命令が非リニア形式でフェッチされ実行されるかを決定する。
【００３５】
[0037]システム１０の一実施例において、ＲＡＭ７５はメモリ６０よりも広い幅で実現される。したがって、ＲＡＭ７５に格納された実行可能な命令は、より長い命令であり、メモリ６０に格納されたものよりも長いオペコードフィールド及び／又はオペランドフィールドを含む。例えば、メモリ６０は３２ビット幅であり、ＲＡＭ７５は４０ビット幅である。従って、第２の命令セット６２ｂ内の命令で、ＲＡＭ７５に格納された命令は、第１の命令セット６２ａの命令のオペランドフィールドよりも長いオペランドフィールドを含む。第２の命令セットの命令に含まれるより長いオペレンドフィールドは、第１の命令セット６２ａに格納された命令よりも大きいデータ値又はアドレスを指定するため使用される。しかし、第１の命令セット６２ａの命令は、第１の命令セット６２ａ（メモリ６０）の実行可能な命令の比較的短いオペランドフィールドで実現可能であるテストパターンのシーケンスよりも長いテストシーケンスのパターンを出力させるため、先に実行された命令によって第２の命令セット６２ｂに格納されたカウント値を使用することがある。より詳細には、第２の命令セット６２ａに含まれる命令が実行されたとき、データ値をカウンタ、例えば、ＣＮＴＲａにロードし、その後に第１の命令セット６２ａの命令の実行が続き、ＣＮＴＲａに格納された値を使用することがある。この実施例では、ＳＣＰ２５は、ＲＡＭ７５内の命令又はメモリ６０内の命令のどちらのオペランドフィールドサイズに一致するオペランドフィールドサイズをデコードするかを決定するロジックブロック（図示せず）を含む。
【００３６】
[0038]図２を参照すると、テストシステム１０の代替実施形態は、データ選択ロジック１０ａ（ＤＳＬ１０ａ）を含む。ＤＳＬ１０ａは、ＰＣＬ３７ａ−３７ｃ及びＡＰＧ４１からの複合ビットパターンを選択し割り当てる代替的な方式を表す。一部のケースでは、ＰＣＬ３７ａ−３７ｃ及びＡＰＧ４１のような１組のパターン制御ロジックブロックからの出力ラインの本数は、ＭＵＸ４３のような単一のマルチプレクサの入力ライン容量を超過する。したがって、ＤＳＬ１０ａは、データ選択ルックアップロジックブロック４２（ＤＳＬＬＢ４２）の出力によって制御される複数のマルチプレクサ４３ａ−４３ｆを使用して、比較的多数の入力を多重化することが可能である。より詳細には、各ＰＣＬ３７ａ−３７ｃ及びＡＰＧ４１は、３２ビットのデータをそれぞれのバス３９ａ−３９ｄに出力する。１６個の選択マルチプレクサ４３ａ−４３ｐがＰＣＬ３７ａ−３７ｃ及びＡＰＧ４１の各出力バス３９ａ−３９ｎからそれぞれ２ビットを受信するため接続される。各ＭＵＸ４３ａ−４３ｐは、次に、１６本の出力バスＤ（０：１）−Ｄ（３０：３１）にそれぞれ２ビットずつを出力するため選択され、バス４４に複合ビットパターンを形成する。バス４４上で適切な複合ビットパターンを選択するため、ＤＳＬＬＢ４２は、テストシーケンスプログラム６０ａの実行前にインデックス付きルックアップテーブルがロードされる。ＤＳＬＬＢ４２は、ライン４０上でＳＣＰ２５から４ビットデータ選択インデックス４０ａ（ＤＳ  Ｉｎｄｅｘ０：３）を受信するため接続され、次に、３ビット選択コードを選択ライン４３ａ−４３ｐ上のそれぞれのＭＵＸ４３ａ−４３ｐへ出力する。データ選択インデックス４０ａは、システム１０の動作中にメモリ６０又はＲＡＭ７５の何れかからフェッチされたＳＤＳ命令３３ａのオペランドフィールドの一部に対応する。ＳＣＰ２５はＳＤＳ命令をデコードし、対応した４ビットデータ選択インデックス４０ａ（ＤＳ  Ｉｎｄｅｘ（０：３））をＤＳＬＬＢ４２へ出力する。ＤＳＬＬＢ４２は、受信した４ビット「ＤＳ  Ｉｎｄｅｘ」を使用し、格納されたルックアップテーブルに索引を付け、１６個の別個の３ビット選択コードを、３ビット選択コード毎に別個の選択バス４５ａ−４５ｐで、それぞれのＭＵＸ４３ａ−４３ｐへ出力する。
【００３７】
[0039]このようにインデックス付きルックアップテーブルを用いて複数のマルチプレクサを制御する方式は、比較的短いオペコードフィールドを有する実行可能な命令で比較的多数のマルチプレクサを制御可能にさせる。この場合は、ＳＤＳ命令は、アセンブルされ、４ビットオペコードフィールドによって表現され、ＤＳＬＬＢ４２からそれぞれのライン４５ａ−４５ｐへ出力される１６個の３ビット選択コードを選択するため使用される。これは、比較的小規模のオペコードが複数のマルチプレクサを制御するために十分な個別の選択コードを発生させるため使用されるので有利である。
【００３８】
[0040]システム１０ａの一実施形態において、複合ビットパターン４４は分割され、集積回路の種々の物理的な部分へ割り当てられ、又は種々の回路基板へ割り当てられる。例えば、出力バス４４の３２ビットは、二つの１６ビットグループ、すなわち、Ｄ（０−１５）及びＤ（１６−３１）のそれぞれに分割され、各グループが異なる回路基板又は集積回路へ割り当てられる。これは、３２ビットのテストパターンを制御するために必要なロジックの量が単一の集積回路又は回路基板の回路容量を上回るような状況である。
【００３９】
[0041]メモリ６０及び／又はＲＡＭ７５は、必ずしもテストシステム１０又は１０ａ内の別個のパターン固有ロジックブロックのすべてに対して使用されなくてもよい。それどころか、メモリ６０又はＲＡＭ７５の何れかが二つ以上の別個のパターン固有ロジックブロックの任意の組み合わせのために機能し、一方、他のロジックブロックが専用メモリを有し、及び／又は別個の統一メモリアドレス空間を共有してもよい。
【００４０】
[0042]メモリ６０及び／又はＲＡＭ７５は、「ＰＣ標準」メモリ、すなわち、ＰＣ標準通信プロトコルに準拠して動作するように構築されたメモリを使用して実現してもよい。一般に、単一の統一メモリアドレス空間としてアクセスすることができるあらゆる物理的又は電気的メモリ構造が使用される。
【００４１】
[0043]システム１０の一実施形態において、特定のデータセット６０ａ−６０ｎと関連付けられたリンクテーブルがデータセットと共にメモリ６０及び／又はＲＡＭ７５に格納される。リンクテーブルは、データセットの種々のセグメントへのポインタを含み、データセットが非リニア形式でメモリに保存されメモリから読み出されることを可能にする。したがって、特定のＰＣＬ３７ａ−３７ｃは、リンクテーブルを要求し、関連したＦＩＦＯレジスタ３８ａ−３８ｃにリンクテーブルを格納し、格納されたリンクテーブルは、メモリ６０及び／又はＲＡＭ７５に格納され、これらのリンクテーブルに基づいて編成されたデータセットのセグメントにアクセスするため使用される。
【００４２】
[0044]上記の実施形態における集積回路を試験するプロセス（又は方法）は、図１〜２のハードウェア及びソフトウェアとの共用に限定されない。以下ではプロセス２００と称されるこのプロセスは、あらゆるコンピューティング又はプロセシング環境にアプリケーションが見出されるであろう。プロセス２００は、ハードウェア、ソフトウェア、又は両者の組み合わせの形で実施される。プロセス２００は、それぞれにプロセッサ及びプロセッサによって読み取り可能な記憶媒体を含むプログラマブルコンピュータ又はその他のマシンで実行されるコンピュータプログラムの形で実施される。
【００４３】
[0045]本明細書に記載されていないその他の実施形態も特許請求の範囲に含まれる。
【図面の簡単な説明】
【００４４】
【図１】集積回路テストシステムの第１の実施形態を示すブロック図である。
【図２】集積回路テストシステムの第２の実施形態を示すブロック図である。
【図１】
2005524851.tif 000003
【図２】
2005524851.tif 000004
【国際調査報告】
2005524851.tif 000005
2005524851.tif 000006