(57)【要約】  本発明はテスト装置に関し、テスト装置は、データ処理命令を格納するためのメモリ（３０４）と、データ処理命令が実行されるときに、テスト対象デバイス（１０２）にテスト操作を実施するためのテストコード（３０８）を実行するように構成された１つ以上のプロセッサとを備えるテストデバイス（３０２）を備え、テストコードは、テスト対象デバイスをテストするために機器に適用される１つ以上のテストパターンおよび１つ以上のテストアルゴリズムを定義し、テストコードは、テストデバイスとテスト対象デバイスとの間のテストインターフェース（１０６、０８）に依存しない第１の形式を有し、テスト装置は、テストコードの実行中にテストデバイスによって生成される通信をテストインターフェースに適した第２の形式に変換し、テスト対象デバイスからの通信を第１の形式に変換するように構成されるインターフェースコントローラ（３１０）を備える。
2020521124.tif 000002
【特許請求の範囲】
【請求項１】
テスト対象デバイス（１０２）をテストするテスト装置であって、
データ処理命令を格納するためのメモリ（３０４）と、前記データ処理命令が実行されるときに、前記テスト対象デバイス（１０２）にテスト操作を実施するためのテストコード（３０８）を実行するように構成された１つ以上のプロセッサとを備えるテストデバイス（３０２）と、
前記テストコード（３０８）は、前記テスト対象デバイスをテストするために機器に適用される１つ以上のテストパターンおよび１つ以上のテストアルゴリズムを定義し、前記テストコードは、前記テストデバイス（３０２）と前記テスト対象デバイスと（１０２）の間のテストインターフェース（１０６、１０８）に依存しない第１の形式であり、
前記テスト対象デバイス（１０２）に結合され、前記テストコードの実行中に前記テストデバイスによって生成される通信を前記テストインターフェースに適した第２の形式に変換し、前記テスト対象デバイス（１０２）からの通信を第１の形式に変換するように構成されるインターフェースコントローラ（３１０）と、
を備える、テスト装置。
【請求項２】
前記テストデバイスの前記１つ以上のプロセッサまたは別のデバイスによって実装される複数のインターフェースコントローラ（３１０、３１０’）を備え、前記テストデバイスは、前記変換を実行するために前記複数のインターフェースコントローラから１つを選択するように構成される、請求項１に記載のテスト装置。
【請求項３】
前記テストデバイスの前記１つ以上のプロセッサ、またはテスト生成ツールの１つ以上の他のプロセッサは、前記テストデバイスによる前記テストコードの実行前に前記テストコードを生成するように構成される、請求項１または２に記載のテスト装置。
【請求項４】
前記インターフェースコントローラ（３１０）をテスト対象デバイス（１０２）に結合する前記テストインターフェース（１０６、１０８）をさらに備える、請求項１から３のいずれか一項に記載のテスト装置。
【請求項５】
前記テストデバイス（３０２）は、前記テスト機器の第１のものに適用される第１のテストアルゴリズムと、前記テスト機器の第２のものに適用される第２のテストアルゴリズムとを並行して実行するように構成される、請求項１から４のいずれか一項に記載のテスト装置。
【請求項６】
前記テストデバイス（３０２）の前記１つ以上のプロセッサは、前記テスト対象デバイスのサブ回路をテストするための１つ以上の他のテストアルゴリズムを定義する外部ライブラリ（６０２）にアクセスするようにさらに構成される、請求項１から５のいずれか一項に記載のテスト装置。
【請求項７】
前記テストデバイス（３０２）の前記１つ以上のプロセッサは、前記外部ライブラリ（６０２）を前記テストコードに組み込むことにより、および／または前記テストコードに前記１つ以上の他のテストアルゴリズムへの関数呼び出しを組み込むことにより前記テストコードを生成するように構成される、請求項６に記載のテスト装置。
【請求項８】
前記サブ回路はデータまたは信号処理機能を実装し、前記１つ以上の他のテストアルゴリズムは、前記データまたは信号処理機能の予想される動作を検証するように構成される、請求項６または７に記載のテスト装置。
【請求項９】
前記サブ回路は暗号機能を実装し、前記１つ以上の他のテストアルゴリズムは、前記テ
スト生成ツール（３０２）が前記暗号機能の動作を検証できるように暗号化および／または復号操作を提供するように構成される、請求項６または７に記載のテスト装置。
【請求項１０】
請求項１から９のいずれか一項の前記テスト装置と、
前記テスト装置に結合された前記テスト対象デバイス（１０２）と
を備え、前記テスト対象デバイスは、テストアクセスポート（１０４）と複数のテスト機器（２０２〜２１６）とを備え、各テスト機器は１つ以上の分析レジスタを備える、テストシステム。
【請求項１１】
テスト対象デバイス（１０２）をテストするための方法であって、
前記テスト対象デバイス（１０２）にテスト動作を実施するためにテストデバイス（３０２）によって前記テストコード（３０８）を実行するステップであって、前記テストコード（３０８）は、前記テスト対象デバイス（１０２）のテスト機器に適用される１つ以上のテストパターンおよび１つ以上のテストアルゴリズムを定義し、前記テストコードは、前記テスト生成ツール（３０２）と前記テスト対象デバイス（１０２）との間のテストインターフェース（１０６、１０８）に依存しない第１の形式であるステップと、
テストフェーズ中に、
前記テストコードの実行によって生成され、前記テスト対象デバイス（１０２）向けの通信を、前記テストインターフェースに適合した第２の形式に変換するステップと、
前記テスト対象デバイス（１０２）からの通信を前記第１の形式に変換するステップと、
を含む、方法。
【請求項１２】
前記テストコードの実行前に、前記テストデバイス（３０２）、またはテスト生成ツールの１つ以上の他のプロセッサにより前記テストコード（３０８）を生成することをさらに含む、請求項１１に記載の方法。
【請求項１３】
前記変換を実行するために、前記テストデバイス（３０２）によって複数のインターフェースコントローラ（３１０、３１０’）から１つを選択することをさらに含む、請求項１１または１２に記載の方法。
【請求項１４】
前記テスト機器の第１のものに適用される第１のテストアルゴリズムと、前記テスト機器の第２のものに適用される第２のテストアルゴリズムとを前記テストデバイス（３０２）によって並行して実行することをさらに含む、請求項１１から１３のいずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本説明は、集積回路のテスト、特に自動デジタルテストの分野に関する。
【背景技術】
【０００２】
自動デジタルテストの分野では、長年にわたり、一般にＪＴＡＧ標準（Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ）と呼ばれる標準ＩＥＥＥ１１４９．１が、集積回路のテストに使用されるテストインターフェースを定義してきた。ただし、ＳｏＣ（システムオンチップ）や３Ｄ集積技術などの回路技術の過去数年間の変化により、適切なテストを可能にするために機能を追加する必要が生じている。
テスト能力を向上させる取り組みの中で、一般にＩＪＴＡＧ（内部ＪＴＡＧ）と呼ばれる新しい標準ＩＥＥＥ１６８７−２０１４が開発され、２０１４年、米国の電気電子技術者協会で「ＩＥＥＥ  Ｓｔａｎｄａｒｄ  ｆｏｒ  Ａｃｃｅｓｓ  ａｎｄ  Ｃｏｎｔｒｏｌ  ｏｆ  Ｉｎｓｔｒｕｍｅｎｔａｔｉｏｎ  Ｅｍｂｅｄｄｅｄ  ｗｉｔｈｉｎ  ａ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ  Ｄｅｖｉｃｅ」という名称で公開された。ＩＥＥＥ１１４９．１標準に関連して、この新しい標準では２つの注目すべき変更が導入されている。
−動的長さ分析文字列、および
−ＪＴＡＧ文字列の媒介による機器の使用
【０００３】
専門家は動的長さ分析文字列によって可能になった将来性の分野に注目しているが、機器へのアクセスの将来性に焦点を合わせた研究は比較的少ない。実際、機器への実際の機能アクセスは、自動テストパターン生成（ＡＴＰＧ）に基づく現在のテストフローと互換性がない。
【０００４】
したがって、ＪＴＡＧ文字列内の機器へのアクセスを含むテストを生成し、集積回路に適用するソリューションの技術が必要である。
【０００５】
自動テストの分野における別の難点は、回路要素の絶え間ない小型化により、回路の密度が高まり、集積回路に組み込まれたテスト文字列がますます複雑になっていることである。これにより、自動テストの実行に必要な時間が長くなる可能性がある。さらに、回路への効果的なアクセスインターフェースは最終段階で決定されることが多く、これにより、従来のＡＴＰＧが複雑な変換操作を実行するように強制される。したがって、自動化されたテストシーケンスの高速実行を可能にするテスト装置および方法を提供することがさらに必要である。
【発明の概要】
【０００６】
本説明の実施形態の目的は、先行技術の１つまたはいくつかの問題を少なくとも部分的に解決することである。
【０００７】
一態様によれば、テスト対象デバイスをテストするテスト装置は、データ処理命令を格納するためのメモリと、データ処理命令が実行されるときに、テスト対象デバイスにテスト操作を実施するためのテストコードを実行するように構成された１つ以上のプロセッサとを備えるテストデバイスを備え、テストコードは、テスト対象デバイスをテストするために機器に適用される１つ以上のテストパターンおよび１つ以上のテストアルゴリズムを定義し、テストコードは、テストデバイスとテスト対象デバイスとの間のテストインターフェースに依存しない第１の形式であり、テスト装置は、テスト対象デバイスに結合され、テストコードの実行中にテストデバイスによって生成される通信をテストインターフェースに適した第２の形式に変換し、テスト対象デバイスからの通信を第１の形式に変換す
るように構成されるインターフェースコントローラを備える。
【０００８】
一実施形態によれば、テスト装置は、テストデバイスの前記１つ以上のプロセッサまたは別のデバイスによって実装される複数のインターフェースコントローラを備え、テストデバイスは、変換を実行するために、複数のインターフェースコントローラから１つを選択するように構成される。
【０００９】
一実施形態によれば、テストデバイスの前記１つ以上のプロセッサ、またはテスト生成ツールの１つ以上の他のプロセッサは、テストデバイスによるテストコードの実行前にテストコードを生成するように構成される。
【００１０】
一実施形態によれば、テスト装置は、インターフェースコントローラをテスト対象デバイスに結合するテストインターフェースをさらに備える。
【００１１】
一実施形態によれば、テストデバイスは、テスト機器の第１のものに適用される第１のテストアルゴリズムと、テスト機器の第２のものに適用される第２のテストアルゴリズムとを並行して実行するように構成される。
【００１２】
一実施形態によれば、テストデバイスの前記１つ以上のプロセッサは、テスト対象デバイスのサブ回路をテストするための１つ以上の他のテストアルゴリズムを定義する外部ライブラリにアクセスするようにさらに構成される。
【００１３】
一実施形態によれば、テストデバイスの前記１つ以上のプロセッサは、外部ライブラリをテストコードに組み込むことにより、および／またはテストコードに前記１つ以上の他のテストアルゴリズムへの関数呼び出しを組み込むことによりテストコードを生成するように構成される。
【００１４】
一実施形態によれば、サブ回路はデータまたは信号処理機能を実装し、前記１つ以上の他のテストアルゴリズムは、データまたは信号処理機能の予想される動作を検証するように構成される。
【００１５】
一実施形態によれば、サブ回路は暗号機能を実装し、前記１つ以上の他のテストアルゴリズムは、テスト生成ツールが暗号機能の動作を検証できるように暗号化および／または復号操作を提供するように構成される。
【００１６】
別の態様によれば、前述のテスト装置と、テスト装置に結合されたテスト対象デバイスとを備えるテストシステムが提供され、テスト対象デバイスは、テストアクセスポートと複数のテスト機器とを備え、各テスト機器は、１つ以上の分析レジスタを備える。
【００１７】
別の態様によれば、テスト対象デバイスをテストするための方法が提供され、方法は、テスト対象デバイスにテスト動作を実施するためにテストデバイスによってテストコードを実行するステップを含み、テストコードは、テスト対象デバイスのテスト機器に適用される１つ以上のテストパターンおよび１つ以上のテストアルゴリズムを定義し、テストコードは、テスト生成ツールとテスト対象デバイスとの間のテストインターフェースに依存しない第１の形式であり、テストフェーズ中に、テストコードの実行によって生成され、テスト対象デバイス向けの通信を、テストインターフェースに適合した第２の形式に変換するステップ、およびテスト対象デバイスからの通信を第１の形式に変換するステップを含む。
【００１８】
一実施形態によれば、方法は、テストコードの実行前に、テストデバイス、またはテス
ト生成ツールの１つ以上の他のプロセッサによりテストコードを生成することをさらに含む。
【００１９】
一実施形態によれば、方法は、前記変換を実行するために、テストデバイスによって複数のインターフェースコントローラから１つを選択することをさらに含む。
【００２０】
一実施形態によれば、方法は、テスト機器の第１のものに適用される第１のテストアルゴリズムと、テスト機器の第２のものに適用される第２のテストアルゴリズムとをテストデバイスによって並行して実行することをさらに含む。
【図面の簡単な説明】
【００２１】
これらの目的、特性および利点、ならびにその他は、情報の目的のために与えられた特定の実施形態の以下の説明において、添付の図面に関連して非限定的に詳細に開示される。
【００２２】
【図１】図１は、典型的なＡＴＰＧを図式的に示す。
【図２】図２は、テスト対象デバイスを含む図１の集積回路をより詳細に図式的に示す。
【図３Ａ】図３Ａは、本説明の実施形態によるテスト装置を図式的に示す。
【図３Ｂ】図３Ｂは、本説明の実施形態によるテスト装置を図式的に示す。
【図４】図４は、集積回路に自動テストを適用する方法のステップを示すフローチャートである。
【図５Ａ】図５Ａは、本説明の実施形態による図３Ａおよび図３Ｂのテスト装置の異なる適用を図式的に示す。
【図５Ｂ】図５Ｂは、本説明の実施形態による図３Ａおよび図３Ｂのテスト装置の異なる適用を図式的に示す。
【図５Ｃ】図５Ｃは、本説明の実施形態による図３Ａおよび図３Ｂのテスト装置の異なる適用を図式的に示す。
【図５Ｄ】図５Ｄは、本説明の実施形態による図３Ａおよび図３Ｂのテスト装置の異なる適用を図式的に示す。
【図６】図６は、別の実施形態によるテスト生成ツールを図式的に示す。
【図７Ａ】図７Ａは、本説明の実施形態によるＦＦＴ機能（高速フーリエ変換）をテストするように適合された図３Ｂのテスト装置の部分を図式的に示す。
【図７Ｂ】図７Ｂは、本説明の実施形態による暗号機能をテストするように適合された図３Ｂのテスト装置の部分を図式的に示す。
【発明を実施するための形態】
【００２３】
図１は、標準のＩＪＴＡＧに基づいて提案されたテスト装置１００を図式的に示す。
【００２４】
集積回路１０１は、例えば、テストアクセスポート（ＴＡＰ）１０４の媒介によりアクセスされるテスト対象デバイス（ＤＵＴ）１０２を含む。図１の例では、ＴＡＰ１０４はＤＵＴ１０２と同じチップに集積されているが、代替実施形態では、これは別個のチップであり得る。
【００２５】
ＴＡＰ１０４は、例えば、テストインターフェース（ＩＮＴＥＲＦＡＣＥ）１０８の媒介により、テストコントローラ（ＴＥＳＴ  ＣＯＮＴＲＯＬＬＥＲ）１０６と通信する。テストコントローラ１０６は、ＴＡＰ１０４の媒介によりＤＵＴ１０２にロードされるテストパターン（ＩＮＰＵＴ  ＰＡＴＴＥＲＮＳ）１１０に基づいて、ＤＵＴ１０２内でテストシーケンスを実行する。例えば、テストパターンは、例えばＢＤＳＬ（バウンダリ・スキャン記述言語）を使用した境界分析操作により、ＤＵＴ１０２に組み込まれたテスト
機器にロードされるビットシーケンスである。これには、例えば、テストパターンに基づいて分析レジスタをプログラミングし、ＤＵＴ１０２を１つ以上のクロックサイクルで動作させてから、分析レジスタの変更されたデータビットを取得することにより、機能構成をＤＵＴ１０２にロードする必要がある。次いで、変更されたデータビットは、例えば、テストコントローラ１０６によって予想テストパターン（ＥＸＰＥＣＴＥＤ  ＰＡＴＴＥＲＮＳ）１１４と比較される出力テストパターン（ＯＵＴＰＵＴ  ＰＡＴＴＥＲＮＳ）１１２を生成するために、テストコントローラに供給される。出力テストパターン１１２と予想テストパターン１１４が一致する場合、これはテストが正常に実行されたことを意味する。これらのパターンはこの手法では「ベクトル」と呼ばれることもあり、この説明では２つの用語を同義語として使用する。
【００２６】
入力テストパターン１１０および予想テストパターン１１４は、さまざまな入力ファイルに基づいてテスト生成ツール（ＴＧＴ）１１６によって生成される。例えば、ＴＧＴ１１６は、ＤｆＴ（テスト用設計）ファイル（ＤＦＴ  ＦＩＬＥＳ）１１８、回路記述ファイル（ＣＩＲＣＵＩＴ  ＤＥＳＣＲＩＰＴＩＯＮ）１２０、および障害モデル（ＦＡＵＬＴ  ＭＯＤＥＬＳ）１２２を受信する。ＤｆＴファイル１１８は、例えば、ＤＵＴ１０２に組み込まれたテスト機器を定義し、これは、分析テスト中にアクセスできる分析レジスタ／スイッチ、ＢＩＳＴ（ビルトイン自己テスト）などを含むことができる。回路記述１２０は、例えば、接続のリストの形で、ＤＵＴ１０２の回路コンポーネントを定義する。障害モデルは、例えば、回路設計で発生する可能性のある障害を示し、これらの障害を効果的にカバーするテストパターンが生成できるようにする。
【００２７】
図１の例では、ＴＧＴ１１６は、ＴＧＴ１１６とＤＵＴ１０２との間に実装されたテストインターフェース（ＩＮＴＥＲＦＡＣＥ  ＤＥＦＩＮＩＴＩＯＮ）１２４も認識している。図１の例では、このインターフェースは、テストコントローラ１０６を介したＪＴＡＧインターフェースである。
【００２８】
図２は、一実施形態による集積回路１０１をより詳細に図式的に示す。この例では、集積回路１０１は、ＴＡＰ１０４に加えて、ＤＵＴ１０２を形成する３つの回路ブロック１０２Ａ、１０２Ｂ、１０２Ｃを含む。回路ブロック１０２Ａは、例えば、分析文字列２０６によってＴＡＰ１０４に接続されたテスト機器２０２および２０４を備え、回路ブロック１０２Ｂは、例えば、分析文字列２１０によってＴＡＰ１０４に接続されたテスト機器２０８を備え、回路ブロック１０２Ｃは、例えば、分析文字列２１８によってＴＡＰ１０４に接続されたテスト機器２１２、２１４および２１６を備える。
【００２９】
ここで図１および図２を参照すると、各テスト機器２０２〜２１６にテストを適用するために、テストベクトルをラップしてテストコントローラ１０６により各テスト機器への適用を可能にするために、例えばＰＤＬ（手続き定義言語）がＴＧＴ１１６によって使用される。ＰＤＬでラップされたベクトルは、テストの期間を最小限にするために、ＴＧＴ１１６によってスケジュールおよびマージできる。
【００３０】
標準ＩＪＴＡＧ１６８７は、テスト中、テスト機器とのより高度な相互作用も考慮する。特に、標準ＩＪＴＡＧは機能的な使用を提案しており、そこでは未加工機器を記述することができ、ＰＤＬはこれらの機器の境界で定義できる。特に、ＰＤＬ言語は、機器の入力／出力値を定義し、これらの値は、より高いレベルのベクトルを取得してインターフェース操作のシーケンスを取得するためにコンパイルされる。これは、この手法では「リターゲティング」として一般的に知られている。レベル０の最も単純なＰＤＬ言語は、例えば入出力（Ｉ／Ｏ）ベクトル操作を記述するが、レベル１のＰＤＬ言語は、動的プログラミング言語Ｔｃｌなどで記述されたアルゴリズムと機器をインターフェースするために使用できるプリミティブデータインターフェースを導入する。
【００３１】
しかしながら、図１の例では、ＴＧＴ１１６は、単一のステップで入力テストパターン１１０および予想テストパターン１１４を生成するように構成されている。後者が生成されると、ＴＧＴ１１６はテストプロセスに関与しなくなり、テストコントローラ１０６を介してテストパターンをＤＵＴに適用することにより、テストコントローラがＰＤＬファイルに基づいてテストを実行する。したがって、テストのフローは、ＴＧＴ１１６からＤＵＴへの単一方向に移動し、ＤＵＴから戻ってくる信号に基づいて変化するアルゴリズムの実行を可能にするＴＧＴ１１６へのリターンパスはない。
【００３２】
実際、図１の例では、テストの生成およびテストの適用は、製品の開発における２つの異なるステップであり、一般に異なる場所で異なる時間に異なるチームによって実行される。その結果、テストコントローラ１０６が入力パターン１１０を適用するとき、ＴＧＴ１１６が利用さえできないこともある。
【００３３】
さらに、Ｔｃｌは本質的にシーケンシャルであるため、異なる機器のテストの同時性を確保するための計算が難しく、重いため、各機器でテストアルゴリズムを並行して実行することは困難である。
【００３４】
別の難点は、ＴＧＴ１１６がＤＵＴ１０２から戻ってくるデータパターンを受信し、ＤＵＴ１０２のテストフェーズ中に入力テストパターン１１０を動的に変更するためのアルゴリズムを実行する権限を与えられた場合でも、ＴＧＴ１１６は、ＴＧＴ１１６とＤＵＴ１０２との間で使用される特定のインターフェースに基づいて出力パターンを解釈する必要があり、テストパターンを変更する方法を決定する際にインターフェース１２４の定義を考慮する必要があるため、そのようなテスト処理は時間がかかり、複雑になることである。さらに、ＴＧＴ１１６は別の機器の別のアルゴリズムを実行できるようになる前にテストを終了するために頻繁に保持されるため、ＴＧＴ１１６によるいくつかのテストアルゴリズムの同時実行は遅くなる。
【００３５】
図３Ａおよび図３Ｂは、図１のテスト装置１００に関連して上述した難点の少なくとも一部を処理する実施形態によるテスト装置を図式的に示す。図３Ａおよび図３Ｂの特定の要素は、図１のテスト装置１００の要素と同様であり、これらの要素は同じ参照番号を有しており、再度詳細には説明しない。
【００３６】
図３Ａは、テスト装置のテストコード３００Ａを生成および実行するためのモジュールを図式的に示す。このモジュール３００Ａは、以下により詳細に説明されるいくつかの態様において図１のＴＧＴ１１６とは異なるテスト生成ツール（ＴＧＴ）３０２を含む。
【００３７】
図１のＴＧＴ１１６として、ＴＧＴ３０２は、例えば、ＤＦＴファイル１１８、回路記述１２０、および障害モデル１２２を受信するが、これらについては再び詳細には説明しない。
【００３８】
ＴＧＴ３０２は、例えば、命令メモリ（ＩＮＳＴＲ  ＭＥＭ）３０４に格納されたデータ処理命令を実行する１つ以上のプロセッサを含む。例えば、これらの命令の実行により、ＴＧＴ３０２の前記１つ以上のプロセッサは、ＤＵＴ（図３Ａには図示せず）をテストするためにテストコード（ＴＥＳＴ  ＣＯＤＥ）３０８を生成および実行するように構成される。テストコードは、例えば、ＤＵＴの機器に適用される１つ以上のテストパターンおよび１つ以上のテストアルゴリズムを含む。一例において、レベル０  ＰＯＬを使用してテストパターンを定義し、レベル１  ＰＯＬを使用してテストアルゴリズムを定義し、Ｔｃｌなどの高レベル言語で記述されたコードを含む。ただし、ここで使用する「テストコード」という用語は、テストパターンとテストアルゴリズムを含むコードだけでなく、
以下により詳細に説明するように、テストを実装するための実行可能コードを指定するために使用される。
【００３９】
テストコードは、例えば、ＴＧＴ３０２とＤＵＴとの間のインターフェースに依存しない形式である。例えば、ＴＧＴ３０２は、抽象インターフェース（ＡＢＳＴＲＡＣＴ  ＩＮＴＥＲＦＡＣＥ）３０６、特にテストコードに使用される抽象形式を定義するデータを格納するメモリを含む。
【００４０】
図３Ｂは、例えばＴＧＴ３０２をＤＵＴ１０２に接続するテスト装置の部分３００Ｂを図式的に示す。この例では、テストコードはＴＧＴ３０２によって実行される、つまり同じデバイスがテストコードを生成して実行すると想定している。しかし、代替実施形態では、分離されたデバイスを使用してテストコードを生成および実行することができ、その実行は任意のテストデバイスによって実行できる。
【００４１】
図３Ｂに示されるように、テストコード３０８の実行により生成されるＤＵＴ１０２への通信は、例えば、抽象ＡＰＩ（アプリケーションプログラミングインターフェース）を介してインターフェースコントローラ（ＩＮＴＥＲＦＡＣＥ  ＤＲＩＶＥＲ）３１０に供給される。当業者に知られているように、高レベル言語で書かれたプログラムと、所望の操作を実行するルーチンまたは機能との間のインターフェースを提供するアプリケーションのＡＰＩ。これらのルーチンは、同じ言語または異なる言語で実装でき、実行可能コードまたはオブジェクトコードの形式でプリコンパイルされたモジュールのパッケージに含めることができる。
【００４２】
インターフェースコントローラ３１０は、例えば、テストコードによって使用される抽象形式からの通信を、ＴＧＴ３０２とＤＵＴ１０２との間のインターフェースに適した形式に変換する。同様に、インターフェースコントローラ３１０は、例えば、ＤＵＴ１０２からの通信を、ＴＧＴ３０２によって使用される抽象形式に変換する。インターフェースコントローラ３１０は、例えば、ＴＧＴ３０２に関連する別個の回路により実装されるが、代替実施形態では、インターフェースコントローラの機能は、ＴＧＴ３０２の１つ以上のプロセッサにより実行されるコードにより実装され得る。
【００４３】
インターフェースコントローラ３１０は、特殊なＡＰＩインターフェースの媒介によりテストコントローラ１０６に結合され、図３Ｂの例における特殊なインターフェースは、例えばＪＴＡＧインターフェースである。テストコントローラ１０６は、インターフェース１０８の媒介により集積回路１０１に結合されている。図１のように、集積回路１０１は、例えばＤＵＴ１０２とインターフェースするためにＴＡＰ１０４を含むが、代替実施形態では、ＴＡＰ１０４はＤＵＴ１０２とは別個のチップであり得る。
【００４４】
ＴＧＴ３０２によるテストコード３０８の実行により、例えば、インターフェースコントローラ３１０およびテストコントローラ１０６を介してＤＵＴ１０２にテストパターンおよびテストアルゴリズムが適用され、ＤＵＴ１０２によって返されるデータは、例えば、供給されてＴＧＴ３０２に戻り、解釈できるようになる。特に、テストコードを実行すると、テストアルゴリズムが実装され、出力データ（ＴＥＳＴ  ＯＵＴＰＵＴ）３１２が生成される。
【００４５】
特定の実施形態では、構成情報（ＣＯＮＦＩＧＵＲＡＴＩＯＮ）３１４は、テストコード３０８を実行するデバイスに提供され、例えば、インターフェースのタイプを示すので、テストフェーズ中に使用される適切なインターフェースコントローラを選択することが可能になる。例えば、テストデバイスは、異なるタイプのインターフェースを制御するための１つ以上の他のインターフェースコントローラ３１０’を備え、テストデバイスは、
構成情報３１４に基づいて適切なインターフェースコントローラ３１０、３１０’を選択する。
【００４６】
ＴＧＴ３０２とＤＵＴ１０２との間のインターフェースに依存しない抽象形式でテストコードを提供する利点は、ＴＧＴ３０２によって特定のインターフェース形式を考慮する必要がないため、このテストコードの実行が比較的高速になる可能性があることである。さらに、ＤＵＴ１０２との通信は、インターフェースコントローラ３１０によって管理され、これにより、ＴＧＴ３０２とインターフェースコントローラ３１０との間の動作を並列に行うことが可能になる。これは、ＴＧＴ３０２が、ＤＵＴ１０２の他の機器に関するテストコードの実行を継続する前に、ＤＵＴ１０２の所定の機器との通信がＤＵＴ１０２によって受信および処理されるのを待つ義務がないことを意味する。
【００４７】
図３Ａおよび図３Ｂのテスト装置を使用するＤＵＴのテスト方法を、図４を参照してより詳細に説明する。
【００４８】
図４は、一実施形態によるＤＵＴのテスト方法のステップを示すフローチャートである。
【００４９】
この方法は、例えば、図３Ａおよび図３Ｂのテスト装置のＴＧＴ３０２およびインターフェースコントローラ３１０によって実施される。
【００５０】
ステップ４０１において、ＴＧＴ３０２は、ＴＧＴ３０２をＤＵＴ１０２に接続するインターフェースに依存しない抽象形式でテストコードを生成する。抽象形式は、例えば、ＴＧＴ３０２で使用される形式とＤＵＴ３０２とのインターフェースで使用される形式との間の中間形式である。テストコードは、例えば、ＤＵＴの機器に適用される１つ以上のテストパターンおよび１つ以上のテストアルゴリズムを含む。テストコードの生成は、例えば、ＤＦＴファイル１１８、回路記述１２０、および障害モデル１２２のうちの１つまたはいくつかの要素に基づいている。
【００５１】
ステップ４０２において、テストコードが実行される。例えば、テストコードは、ＴＧＴ３０２のプロセッサ、またはより一般的にはテストコードの実行に使用される任意のテストデバイスのプロセッサによって実行できるコードでラップされたテストパターンおよびテストアルゴリズムを含む。特定の実施形態では、テストコードの実行は、ＤＵＴ１０２の対応する複数のテスト機器への複数のテストアルゴリズムの並行した適用を伴う。
【００５２】
また、テストコードの実行には、例えば、分析文字列内の機器の位置を定義するＤＵＴ１０２のテスト計装テストモデルの構築、分析文字列内の機器の位置の定義、および計装ステータスも含まれる。計装ステータスは、例えば、セグメント挿入ビット（ＳＩＢ）と分析マルチプレクサを含む、ＤＵＴの動的要素のステータスを含む。したがって、テストコード自体には例えばシステムモデルは含まれず、これはテストコードの実行中にのみ生成される。
【００５３】
ステップ４０３において、テストコードの実行中に、ＴＧＴ３０２からＤＵＴ１０２への通信は、インターフェースコントローラ３１０によって、ＴＧＴ３０２とＤＵＴ１０２との間の特定のインターフェースに適した形式に変換される。これらの通信には、例えば、ＤＵＴ１０２の機器に適用される１つ以上のテストパターン、およびＤＵＴ１０２の機器に適用される１つ以上のテストアルゴリズムが含まれる。
【００５４】
ステップ４０４において、ＤＵＴ１０２からＴＧＴ３０２への通信は、ＴＧＴ３０２によって処理できるようにインターフェースコントローラ３１０によって中間形式に変換さ
れる。これらの通信には、例えば、ＤＵＴ１０２の出力テストパターンが含まれる。これらの通信は、例えば、その後、他のテストパターンを生成するために使用できるシステムモデルのテスト機器のステータスを更新するために使用される。
【００５５】
ＴＧＴ３０２とＤＵＴ１０２との間の特定のインターフェースの例を、図５Ａから図５Ｄを参照してより詳細に説明する。
【００５６】
図５Ａは、実施形態による部分３００Ｂを図式的に示しており、ＴＧＴ３０２とＤＵＴ１０２との間のインターフェースが、例えばＵＳＢ（ユニバーサルシリアルバス）インターフェースをＪＴＡＧインターフェース（ＪＴＡＧ）５０４に変換するＦＴＤＩチップ（Ｆｕｔｕｒｅ  Ｔｅｃｈｎｏｌｏｇｙ  Ｄｅｖｉｃｅｓ  Ｉｎｔｅｒｎａｔｉｏｎａｌ社）（ＦＴＤＩ  ＣＨＩＰ）５０２によって提供される。この実施形態では、インターフェースコントローラ３１０は、例えば、ＦＴＤＩチップ５０２を制御するために使用される低レベルコードである例えばＬｉｂＦＴＤＩドライバ（ＬＩＢ  ＦＴＤＩ  ＤＲＩＶＥＲ）を備え、構成情報３１４は、例えばこのＬｉｂＦＴＤＩドライバを識別して変換用に選択できるようにする。
【００５７】
図５Ｂは、図５Ａに関する代替実施形態によるテスト装置の部分３００Ｂを図式的に示しており、ＤＵＴ１０２は、製造の際に一般的に使用されるような自動テスト装置（ＡＴＥ）５０８の媒介によりアクセスされる。そのような場合、ＴＧＴ３０２とＤＵＴ１０２との間のインターフェースは、例えば、ＤＵＴ１０２との物理インターフェースを担当するラインカード（ＬＩＮＥ  ＣＡＲＤＳ）５１２と通信するＡＴＥ固有のフレームワーク（ＡＴＥ  ＳＰＥＣＩＦＩＣ  ＦＲＡＭＥＷＯＲＫ）を含むインターフェースコントローラ３１０によって制御される光ファイバインターフェースなどの高速インターフェース５１０によって実装される。
【００５８】
図５Ｃは、ＤＵＴがシミュレートされる図５Ａおよび図５Ｂに関する代替実施形態によるテスト装置の部分３００Ｂを図式的に示す。この場合、ＤＵＴ１０２は、例えば、ＶＨＤＬ言語（ＶＨＳＩＣ（超高速集積回路）ハードウェア設計言語）またはＶｅｒｉｌｏｇなどのハードウェア記述言語を使用することにより実装され、シミュレーションは高レベルテストベンチＳＶ  ＶＥＲＩＬＯＧ５１６により制御される。この例では、テストベンチはＨＤＬ  ＳｙｓｔｅｍＶｅｒｉｌｏｇ（ＳＶ）を使用して実装されている。ＴＧＴ３０２とＤＵＴ１０２との間のインターフェースは、インターフェースコントローラ３１０を実装するＤＰＩ（直接プログラミングインターフェース）の媒介により、およびＤＰＩ呼び出し５１８によって行われ、ＤＵＴ１０２は、テストベンチＳＶ（ＳＶ  ＴＥＳＴＢＥＮＣＨ）５１６を含むＤＰＩ対応シミュレータ（ＤＰＩ−ＥＮＡＢＬＥ  ＳＩＭＵＬＡＴＯＲ）５２０を使用してアクセスされる。
【００５９】
図５Ｄは、図５Ｃのものと同様の実施形態によるテスト装置の部分３００Ｂを図式的に示し、ＤＰＩ対応シミュレータ５２０は、パターンスヌーパー（ＰＡＴＴＥＲＮ  ＳＮＯＯＰＥＲ）５２４をさらに含む。パターンスヌーパー５２４は、例えば、ＤＵＴ１０２から静的パターン（ＳＴＡＴＩＣ  ＰＡＴＴＥＲＮＳ）５２６を抽出し、それらを既知の形式で配置することを可能にする。そのような実施形態が重要なのは、動作が従来のＡＴＰＧ（自動テストパターン生成）システムの動作と同様になることであり、したがって、図５Ｄのテストデバイスは後方互換である。ＤＰＩ対応シミュレータ５２０を使用する代わりに、より少ない計算労力で時間的要素のないパターンを供給するため、シミュレータを使用せず、エミュレーションを使用することによりこの実施形態を実施できる。
【００６０】
ここで説明するテストデバイスの利点は、ＴＧＴ３０２を使用して、ＤＵＴ１０２の特定の回路をテストするための比較的複雑なテストアルゴリズムを適用できるようになるこ
とである。例えば、これまで、回路テストは、専用のＢＩＳＴ（組み込み自己テスト）の使用を必要とする高速フーリエ変換（ＦＦＴ）や暗号機能などの複雑な機能を実装し、チップ上の貴重なスペースを消費していた。ＴＧＴ３０２は、例えば、そのような複雑なテストアルゴリズムを実装するコードを含むテストコードを生成することができ、または、図６、図７Ａおよび図７Ｂを参照して説明される、そのような複雑なテストアルゴリズムを実行するためのコードを格納するライブラリへの関数呼び出しを含む。
【００６１】
図６は、図３Ａのものと同様の別の実施形態によるテストコード３００Ａを生成および実行するためのモジュールを示し、ＴＧＴ３０２に結合された外部ライブラリ（ＥＸＴＥＲＮＡＬ  ＬＩＢＲＡＲＹ）６０２をさらに含む。この外部ライブラリ６０２は、例えば、ＤＵＴの機器に適用できる複雑なテストアルゴリズムを格納する。
【００６２】
図７Ａは、ＤＵＴ１０２がＦＦＴ機能（図示せず）を実装するＦＦＴ回路を含み、テストインターフェースにこのＦＦＴ回路を供給する計装を含む例を図式的に示す。図６の外部ライブラリ６０２は、例えば、ＦＦＴ機能をテストし、出力における応答を検証するためのテストシーケンスを定義するＦＦＴライブラリを含む。特殊なアルゴリズム（ＣＵＳＴＯＭ  ＡＬＧＯＲＩＴＨＭ）７０４は、例えば、ＦＦＴの複雑なテストアルゴリズムを実装するためにテストコード３０２に組み込まれている。さらに、ＦＦＴライブラリ７０６は、例えば、テストフェーズ中にアクセスできるようにテストコードに組み込まれている。図示されるように、ＤＵＴ１０２のＦＦＴ回路からの生データの出力は、この例では入力信号の周波数に応じた出力信号の振幅を示す複雑な波形７０８を提供することができ、特殊なアルゴリズム７０４およびライブラリ７０６は、そのような波形がＴＧＴ３０２によって検証されることを可能にする。
【００６３】
図７Ｂは、ＤＵＴ１０２が暗号機能（図示せず）を実装する暗号化回路を含み、この暗号化回路にテストインターフェースを供給する計装を含む別の例を図式的に示す。そのような場合、図６の外部ライブラリ６０２は、例えば暗号ライブラリを含む。特殊なアルゴリズム７０４に加えて、図７Ｂのテストコード３０２は、例えば、暗号機能を実行できるようにするため、およびこれにより暗号回路の正しい動作を検証できるようにするための暗号化ライブラリ７１２への関数呼び出し７１０を含む。特に、暗号化ライブラリは、例えば、関数呼び出し７１０を介して単純なテキストを受け取り、関数呼び出し７１０にコード化されたデータを返す。これの代わりに、またはこれに加えて、暗号化ライブラリ７１２は復号化操作を実行し、関数呼び出し７１０から暗号化されたデータを受け取り、関数呼び出し７１０に単純なテキストを返すことができる。
【００６４】
少なくとも１つの例示的な実施形態が説明されたが、さまざまな変更、修正および改善が当業者には容易に明らかになるであろう。例えば、ＴＧＴがテストコードを生成および実行する実施形態を説明したが、当業者には、他の実施形態ではＴＧＴとは別のデバイスによってテストコードを実行できることが明らかになるであろう。
【００６５】
さらに、ＦＦＴ回路をテストするための複雑なテストアルゴリズムの特定の例について説明したが、同じ原理を任意のデータや信号処理アルゴリズム、またはアナログデジタルコンバータなどのアナログ回路など、テスト対象の他のタイプの回路にも適用できることが当業者には明らかになるであろう。
【図１】
2020521124.tif 000003
【図２】
2020521124.tif 000004
【図３Ａ】
2020521124.tif 000005
【図３Ｂ】
2020521124.tif 000006
【図４】
2020521124.tif 000007
【図５Ａ】
2020521124.tif 000008
【図５Ｂ】
2020521124.tif 000009
【図５Ｃ】
2020521124.tif 000010
【図５Ｄ】
2020521124.tif 000011
【図６】
2020521124.tif 000012
【図７Ａ】
2020521124.tif 000013
【図７Ｂ】
2020521124.tif 000014
【国際調査報告】
2020521124.tif 000015
2020521124.tif 000016
2020521124.tif 000017
2020521124.tif 000018