(57)【特許請求の範囲】
【請求項１】
テストフィクスチャであって、
テスト対象設計を前記テストフィクスチャに通信可能に結合するように配されるテストコネクタであって、選択されたピンの第１のセットに結合される共用テストバスを含む、前記テストコネクタと、
前記テストコネクタに通信可能に結合され、ダウンロード可能なテストベンチを受け取るように配される、プログラム可能な論理インタフェースであって、前記ダウンロード可能なテストベンチが、テストベクトルの第１のセットからのテストベクトルを第１のテスト制御バスに適用するように配され、前記プログラム可能な論理インタフェースが、アドレスを生成するように配されるプログラムカウンタを含むようにプログラムされたフィールドプログラマブルゲートアレイ（ＦＰＧＡ）を含み、そのアドレスにより、前記テストベクトルの第１のセットからのテストベクトルがリトリーブされ、前記プログラムカウンタの値が、前記テストベクトルの第１のセットからのリトリーブされたテストベクトルの値に応答して変えられる、前記プログラム可能な論理インタフェースと、
前記テストベクトルの第１のセットがストアされる、アドレス指定可能なメモリと、
前記第１のテスト制御バスと第２のテスト制御バスの一方を前記共用テストバスに選択的に結合するように配されるマルチプレクサであって、前記第２のテスト制御バスが、テストベクトルの第２のセットからのテストベクトルを適用するように配される、前記マルチプレクサと、
を含み、
前記テストベクトルの第１のセットからの前記リトリーブされたテストベクトルの第１のセットの第１の部分が、前記テストコネクタの前記選択されたピンの第１のセットに適用され、
前記テストベクトルの第１のセットに対する前記リトリーブされたテストベクトルの第１のセットの第２の部分が、前記テストコネクタの選択されたピンの第２のセットに結合される第３のテストバスに適用され、
前記テストコネクタの前記選択されたピンの第２のセットが、前記選択されたピンの第１のセットにおける前記選択されたピンとは異なる選択されたピンを含む、テストフィクスチャ。
【請求項２】
請求項１に記載のテストフィクスチャであって、
前記テストベクトルの第２のセットが、前記テストベクトルの第１のセットの実行を制御するように人間により動作され得るデバッガにより供給される、テストフィクスチャ。
【請求項３】
請求項２に記載のテストフィクスチャであって、
前記共用テストバスのマスターシップを前記デバッガとダウンロード可能なテストベンチとの間で移動させるように配されるアービタを更に含む、テストフィクスチャ。
【請求項４】
請求項２に記載のテストフィクスチャであって、
前記テストベクトルの第１のセットが、前記テストコネクタに結合される前記テスト対象設計の性能を検証するように配される、テストフィクスチャ。
【請求項５】
請求項３に記載のテストフィクスチャであって、
前記アービタが、前記プログラム可能な論理インターフェースから受信したコマンドに依存する前記共用テストバスのマスターシップを転送する、テストフィクスチャ。
【請求項６】
請求項３に記載のテストフィクスチャであって、
前記アービタが、前記第１の制御バスの内容に依存する前記共用テストバスのマスターシップを転送する、テストフィクスチャ。
【請求項７】
請求項３に記載のテストフィクスチャであって、
前記アービタが、前記第２の制御バスの内容に依存する前記共用テストバスのマスターシップを転送する、テストフィクスチャ。
【請求項８】
請求項３に記載のテストフィクスチャであって、
前記アービタが、テスト対象設計の出力に依存する前記共用テストバスのマスターシップを転送する、テストフィクスチャ。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、概して自動試験装置に関し、特に、プログラム可能なインタフェースベースの検証及びデバッグに関連する。
【背景技術】
【０００２】
自動試験装置（ＡＴＥ）は、多くの電子的設計の、特に集積回路を用いて実装される電子的設計の、検証及びデバッグのために有効である。集積回路は比較的複雑であるため、デバッグ及びデバイス検証は、典型的に時間がかかり、ＡＴＥを用いるテストベクトルの甚だしい反復に関与する。ＡＴＥの複雑性のため、テスト対象設計（designs-under-test）のデバッグのためにＡＴＥを用いるためのコストがそれに応じて高価となる。デバッグの困難さは、テスト対象設計を行うためのインタフェースの入力／出力制約により更に悪化する。
【発明の概要】
【０００３】
記載される例において、テストコネクタが、テスト対象設計をテストフィクスチャに通信可能に結合するように配される。プログラム可能な論理インタフェースが、テストコネクタに通信可能に結合され、ダウンロード可能なテストベンチを受け取るように配される。ダウンロード可能なテストベンチは、テストベクトルの第１のセットから第１のテスト制御バスにテストベクトルを適用するように配される。マルチプレクサが、第１のテスト制御バス及び第２のテスト制御バスの一つを、テストコネクタに結合される共用テストバスに選択的に結合するように配される。第２のテスト制御バスは、テストベクトルの第２のセットからのテストベクトルを適用するように配される。
【図面の簡単な説明】
【０００４】
【図１】本開示の例示の実施例に従った例示の電子デバイスを示す。
【０００５】
【図２】本開示の例示の実施例に従って検証設計及びデバッグボードを用いてデバッグを実施するためのテストフローのフローチャートである。
【０００６】
【図３】本開示の例示の実施例に従った、検証設計及びデバッグボードの構成要素のブロック図である。
【０００７】
【図４】本開示の例示の実施例に従った、検証設計及びデバッグボードシステムの構成要素の構成図である。
【０００８】
【図５】本開示の例示の実施例に従った、テスト対象設計のための検証設計及びデバッグボードバスインタフェースの構成図である。
【発明を実施するための形態】
【０００９】
図１は、本開示の好ましい例示の実施例に従った例示のコンピューティングデバイス１００を示す。例えば、コンピューティングデバイス１００は、ラップトップ、モバイルデバイス、パーソナルデジタルアシスタント、パーソナルコンピュータ、電子機器制御「ボックス」又はディスプレイ、電子的テストベンチ、又は任意の他のタイプの電子的システムなどの電子的システム１２９であるか、或いは電子的システム１２９に組み込まれる。コンピューティングデバイス１００は、ライン電流、ソーラーセル、及び／又はバッテリー（又は容量性）ストレージから電力供給され得る。一例において、コンピューティングデバイス１００は、アドホックネットワーク通信を向上させるためのコスト効率のよい解決策を提供する、プログラム可能なインタフェースベースの検証及びデバッグシステムを含む。
【００１０】
幾つかの実施例において、コンピューティングデバイス１００は、メガセル又はシステムオンチップ（ＳｏＣ）を含み、メガセル又はＳｏＣは、ＣＰＵ１１２（中央処理装置）、ストレージ１１４（ランダムアクセスメモリ（ＲＡＭ）など）、及び、ＶＤＢ（検証設計及びデバッグボード）１３１にアクセスするように配されるＶＤＢデバッガ１１０（ハードウェアにおいて少なくとも部分的に具現化される実行可能ソフトウェアなど）プログラムなどの制御論理を含む。ＣＰＵ１１２は、例えば、ＣＩＳＣタイプ（Complex Instruction Set Computer）ＣＰＵ、ＲＩＳＣタイプＣＰＵ（Reduced Instruction Set Computer）、ＭＣＵタイプ（Microcontroller Unit）、又はデジタルシグナルプロセッサ（ＤＳＰ）であり得る。ストレージ１１４（これは、オンプロセッサキャッシュ、オフプロセッサキャッシュ、ＲＡＭ、フラッシュメモリ、又はディスクストレージなどのメモリであり得る）は、ＣＰＵ１１２により実行されると、コンピューティングデバイス１００に関連付けられる任意の適切な機能を実施する一つ又は複数のソフトウェアアプリケーション１３０（エンべディドアプリケーションなど）をストアする。
【００１１】
ＣＰＵ１１２は、ストレージ１１４により提供されるメモリから頻繁にアクセスされる情報をストアする、メモリ及び論理を含む。コンピューティングデバイス１００は、しばしば、ソフトウェアアプリケーション１３０の実行の間、出力を提供し、ユーザーからの入力を受信するＵＩ（ユーザーインタフェース）１１６を用いてユーザーにより制御される。出力は、ディスプレイ１１８、インジケータ光、スピーカー、振動、及び他の方式を用いて提供される。入力は、オーディオ及び／又はビデオ入力（例えば、音声又は画像認識を用いて）、及びキーパッド、スイッチ、及び近接度検出器などの機械的デバイスを用いて受信される。ＣＰＵ１１２及びＶＤＢデバッガ１１０は、Ｉ／Ｏ（入力／出力）ポート１２８に結合され、Ｉ／Ｏポート１２８は、ＶＤＢ１３１から入力を受信する（及び／又はＶＤＢ１３１へ出力を提供する）ように構成されるＪＴＡＧ（joint test action group）インタフェースなどのインタフェースを提供する。Ｉ／Ｏポート１２８は、ＵＳＢ（ユニバーサルシリアルバス）、ＲＳ−２３２（Radio Sector of the Electronic Industries Alliance）、及びＩ２Ｃ（inter-integrated circuit）などのバスであり得る。コンピューティングデバイス１００はまた、周辺機器及び／又はコンピューティングデバイスに結合され得、これらは、有形の、非一時的（non-transistory）媒体（フラッシュメモリなど）及び／又は有線又はワイヤレス媒体を含む。これらの及び他の入力及び出力デバイスが、ワイヤレス又は有線接続を用いて外部デバイスによりコンピューティングデバイス１００に選択的に結合される。ストレージ１１４は、例えば、Ｉ／Ｏポート１２８を介して外部デバイスによりアクセスされ得る。
【００１２】
ＶＤＢデバッガ１１０は、監視及び制御システムであり、テスト対象設計（ＤＵＴ：design-under-test）の監視、制御、テスト、及びデバッグをサポートする論理及び機能性（少なくとも部分的にハードウェアにおいて具現化され、ストレージ１１４に少なくとも部分的にストアされるソフトウェアアプリケーション１３０により少なくとも部分的に制御される）を含む。例えば、ＶＤＢデバッガ１１０は、検証設計及びデバッグボード（ＶＤＢ）１４２などのテストフィクスチャに含まれるＶＤＢ  ＦＰＧＡ（フィールドプログラマブルゲートアレイ）１４２などのプログラム可能な論理（少なくとも部分的にハードウェアにおいて具現化される）インタフェースをダウンロード及び／又は制御するために有用である。従って、一例において、デバッガ１１０は、ＶＤＢ１４２などのテストフィクスチャとは異なる自己完結コンピュータシステム（ラップトップパーソナルコンピュータなど）である。
【００１３】
ＶＤＢデバッガ１１０及びＶＤＢ１４２の構成要素は、物理ＤＵＴ及び／又はコネクタＪ１を介するＤＵＴのエミュレータの検証を可能にする。例えば、エミュレータのソケットをコネクタＪ１につなぐことにより、エミュレータは、種々の状況（ＤＵＴの構成要素がソフトウェアアプリケーション１３０とどのように相互作用し得るかなど）下の意図される最終的な実施例（パッケージされた集積回路など）におけるオペレーションのＤＵＴの性能を再現し得る。このようにして、ＤＵＴは、プレプロダクション（pre-production）又はポストプロダクション（post-production）オペレーションに類似する単一の環境においてデバッグされ得る。
【００１４】
従来のテスト機器は、典型的に、比較的固定された方式でテスト対象設計と相互作用する、主としてハードウェア指向の環境を提供する。例えば、テストベクトル（テストピンがコードの単一のラインに現れるときでも、テストピンを設定するため又はテストピンの設定を検証するための情報など）がＤＵＴメモリにロードされる。一例において、プログラムコードがテストベクトルを介してデバイスメモリにロードされた後、テストベクトルの実行に課される外部制御はない。テストベクトルの実行の後、テスト結果は大抵、テストに合格したか不合格であるかの指示を提供するシグネチャーに制限される。
【００１５】
これに対し、ＶＤＢデバッガ１１０は、ＤＵＴ内部回路にわたる制御、及びＤＵＴ内部回路内への可視性を提供する。例えば、ＶＤＢデバッガ１１０は、例えばＤＵＴ内でインテグレートされるプロセッサ（マイクロプロセッサ、ＤＳＰ、及びマイクロコントローラなど）をデバッグするために、用いられるＣＣＳ（code composer studio）１１１などのデバッガソフトウェアを含む。ＣＣＳ１１１は、デバッグコマンドを提供する。一例において、デバッグコマンドは高レベルコマンドであり、これらは、ＤＵＴをデバッグするためにＪＴＡＧコマンドに変換される。（以下に更に述べるような）テストマスターとして用いられるとき、ＣＣＳ１１１は、可視性（ＤＵＴの内部レジスタ及びメモリのステータスなど）、及び、例えばＪＴＡＧ（joint test action group）インタフェースを用いてアサートされた検証低レベルコマンドを抑制するデバッグ機能性（ステップ、実行、停止、及びブレークポイントなど）を提供する。そのため、ＤＵＴ内のプロセッサが、コードを介して、停止されて１ステップずつ実行され得る一方で、検証低レベルコマンドを用いて起こる欠陥の原因及び位置を判定するための補助として内部レジスタの状態を調査し得る。
【００１６】
従って、ＶＤＢ１４２は、初期デバイステストのため、カスタマーデモンストレーションボードとしての（設計がシリコンに帰着（reduced）された後、設計検証及びアプリケーションテストを実行することなどによる）デバイス信頼度構築のため、現場欠陥テストのため、及びその他の同様の目的のために有効である。また、ＶＤＢ  ＦＰＧＡ１４２は、改訂された又は新たなテスト対象設計のための新たなインタフェース要件に対して調節する（及び／又は新たなインタフェース要件を提供する）ために再プログラムされ得、これは、再利用性を促進し、テスト機器及びフィクスチャのための設計時間を短縮する。
【００１７】
図２は、本開示の例示の実施例に従って、検証設計及びデバッグボードを用いてデバッグを実施するためのテストフローのフローチャートである。概して説明すると、テストフロー２００が、ＶＤＢ  ＦＰＧＡ１４２などのプログラム可能なインタフェースを介してテスト対象設計上にテストベクトルをロードするための例示のプロセスを含む。テストフローは、モノリシック集積回路としてシリコンにおいて具現化される（シリコンに帰着される）ＤＵＴに関連するように説明されるが、本開示は、（コネクタＪ１を介してなど）ＶＤＢ  ＦＰＧＡ１４２に結合され得るＤＵＴのエミュレータに適用し得る。
【００１８】
更に特定して言えば、テストフローは、ノード２０２で開始し、テストのために検証設計及びデバッグボード１３１が初期化されるオペレーション２１０に進む。検証設計及びデバッグボードは、例えば、ＤＵＴの特定の入力に（ＶＤＢデバッガ１１０から受信されるなどの）テストベクトルを結合するようにＶＤＢ  ＦＰＧＡ１４２をプログラムするためにネットリストを用いることによって、初期化される。特定の入力は、パッケージ（集積回路のパッケージにおけるピンなど）及び／又はコネクタ（コネクタＪ１など）におけるピンに従って特定のピン（オーダーされた「ピンアウト」など）に割り当てられる。
【００１９】
ＶＤＢ  ＦＰＧＡ１４２のプログラミングの後、ＶＤＢ１３１上の信号が正しい動作状態に置かれる。例えば、リセット信号がデアサートされ得、選択された動作周波数のクロックがＤＵＴのそれぞれの入力に結合され得、ＤＵＴにおける電子的ヒューズのステータスが確認され得る。初期化の後、テストフローはオペレーション２２０において継続する。
【００２０】
オペレーション２２０において、デザインフォーテスト（ＤＦＴ）モードが開始される。従来技術（従来技術では、例えば、ＪＴＡＧベースのテストが開始され、プロセスの制御及び監視がテストの完了まで保留される）とは対照的に、検証設計及びデバッグボードがＤＦＴモードに入るように配される一方で、監視プロセス（ＣＣＳ１１１により制御され観測されるなど）に、ＤＵＴの個別のレジスタ及びメモリ位置の値を監視及び変更させ得、テストベクトルの特定の範囲（テストベクトルのステップ実行及び／又は選択されたブロックなど）を実行させ得、及び（所定の位置においてなど）テスト実行を停止させ得る。デザインフォーテストモードに入った後、テストフロー２００はオペレーション２３０において継続する。
【００２１】
オペレーション２３０において、ＤＵＴをテストするためのプログラムコードが、検証設計及びデバッグボード１３１にロードされる。更に特定して言えば、ＤＵＴの特定の部分をテストするために特定のプログラムコードがロードされ、テストされるべきＤＵＴの任意の選択された部分に特定的な異なるプログラムコードをロードすることによりＤＵＴの種々の部分がテストされ得る。そのため、例えば、プログラムコード部分が検証設計及びデバッグボード１３１に存在するように、ＤＵＴのためのテストシナリオを構成するためのプログラムコード（及びその他のこのようなプログラムコード）が検証設計及びデバッグボード１３１にロードされ得る。プログラムコードは、図３及びそれ以降に関連して下記で説明するように、メモリの一つにロードされ得る。
【００２２】
テストフロー２００におけるオペレーションの各々は、異なるオペレーション（オペレーション２３０又はオペレーション２４０など）が中断され得、種々の構成要素のステータスが監視プロセスにより検査され得るように、テストフロー２００において監視プロセスにより中断され得る。そのため、例えば、実行されているテストの結果が、実施されているテストが停止されるか又はその他の方式で終了される前に、検査され得る。テストフロー２００は、オペレーション２４０において継続する。
【００２３】
オペレーション２４０において、プログラムコードが実行される。例えば、コマンド（デバッグコマンドなど）が、監視プロセス（ＣＣＳ１１１など）から受信され、これは、検証設計及びデバッグボード１３１に、（受け取ったコマンドに応答して）選択されたテストベクトルをＤＵＴのそれぞれのピンに適用するように指示する。テストベクトルがＴＤＬ（テストデザイン言語）ベースである例において、共用ＪＴＡＧバスのマスタリングが監視プロセスに与えられ、監視プロセスからのテストシーケンスが、受け取ったコマンドに従ってＤＵＴのＪＴＡＧ特定ピンに適用される。
【００２４】
例えば、ロー及びコラムを有するマトリックスとしてテストが表され得るＴＤＬにテストが書き込まれ得る。ＴＤＬの各ローは、特定の時間期間（時間スライス又はテストクロックなど）に関連付けられ、その場合、各ローのスティミュラス（stimulus）がテストの特定の時間にＤＵＴの設計ピン（及びそれから測定された応答）に順次適用される。一例において、各コラムが設計ピンに関連付けられ、ＴＤＬの各ローが、スティミュラス及び／又は値として適用される値を有し、これらは、設計ピンで受け取った応答に対して比較される。従って、ＴＤＬの特定のローに関連付けられるテストフローにおける或るポイントで、値が適用され得及び／又は測定され得る。
【００２５】
種々の実施例において、テストフロー２００のオペレーションは必ずしも順次実施される必要はない。例えば、ＤＵＴの第１の部分が、第１の部分をテストするためのコードを実行することによりテストされ得、一方、ＤＵＴの第２の部分が、第２の部分をテストするためのコードを実行することによりテストされ得、この場合、第１の部分をテストするためのコードは、第２の部分をテストするためのコードが実行される第２の時間期間に少なくとも部分的に重なる第１の時間期間の間実行される。従って、非同期事象に対する応答が、第１及び第２の部分をテストするためのコードが（ＣＣＳ１１１から受信した個別のコマンドに応答してなど）開始される相対的な時間を変えることによりテストされ得る。
【００２６】
オペレーション２５０において、分析のためにテスト結果がアクセスされる（ダンプされる）。テスト結果は、Ｉ／Ｏトレースを監視すること、テストシグネチャーを比較すること、オンＤＵＴ  ＪＴＡＧレジスタを読むこと、メモリ及び／又はレジスタコンテンツを読むこと、メモリにストアされたビルトインテスト（ＢＩＴ）デバイスの結果を読むことにより、及びその他の同様なオペレーションにより、アクセスされ得る。
【００２７】
図３は、本開示の例示の実施例に従った、検証設計及びデバッグボードの構成要素のブロック図である。検証設計及びデバッグボード３００が、ＶＤＢデバッガ１１０などのＶＤＢコントローラと通信するために一つ又は複数のインタフェースを含むＶＤＢ１３１などの検証設計及びデバッグボードである。例えば、ＶＤＢデバッガ１１０が、独自のインタフェース（Ｉ／Ｆ）（ＶＤＢ  Ｉ／Ｆ３０２など）を介して又は規格ベースのインタフェース（ＪＴＡＧインタフェース３０４など）を介して、ＶＤＢ３００と通信するように配される。
【００２８】
検証設計及びデバッグボード３００は、ＶＤＢ３００、及びコネクタＪ１を介してＶＤＢ３００に結合されるＤＵＴを給電するために、一つ又は複数の電源を含む。例えば、ＶＤＢ３００は、プログラム可能な電源３１２ＰＰＳ１〜ＰＰＳ１０及び固定電源３１４ＦＰＳ１〜ＦＰＳ７などの電源３１０を含む。プログラム可能な電源ＰＰＳ１〜ＰＰＳ１０は、ＶＤＢ  ＦＧＰＡ３３６をプログラムするため及びＤＵＴの選択された部分を給電するために電圧を提供するようにＶＤＢデバッガ１１０によりプログラムされ得る。固定電源ＦＰＳ１〜ＦＰＳ７が、それぞれ、０．９Ｖ、１Ｖ、１．２Ｖ、１．８Ｖ、２．５Ｖ、３．３Ｖ、及び５Ｖなど、半導体設計に適した電圧を提供するように配される。電力供給出力（及びＤＵＴからのアナログ信号出力）が測定ユニット３１６を用いて測定され得る。測定ユニット３１６は、（固定又はプラグラム可能な）電源又はＤＵＴピン（コネクタＪ１を介してなど）からアナログデジタルコンバータ（ＡＤＣ１）の入力へ信号を（ＶＤＢデバッガ１１１からのコマンドに応答してなど）選択的に結合するように配される電子的スイッチマトリックスＳ１を含む。
【００２９】
検証設計及びデバッグボード３００は更に、ＶＤＢ３００、及びコネクタＪ１を介してＶＤＢ３００に結合されるＤＵＴを給電するために、一つ又は複数のクロック生成器３２０を含む。例えば、ＶＤＢ３００は、プログラム可能なクロック生成器３２２ＣＬＫ１〜ＣＬＫ１５及び固定クロック生成器３２４Ｙ１〜Ｙ７などのクロック生成器３２０を含む。プラグラム可能なクロック生成器ＣＬＫ１〜ＣＬＫ１５は、ＤＵＴの選択された部分をクロックするための選択された周波数（及び／又は位相）を提供するようにＶＤＢデバッガ１１０によりプログラムされ得る。
【００３０】
検証設計及びデバッグボード３００は更に、ＤＵＴ  ＤＣ３３０などの一つ又は複数のドーターカード（ＤＣ）、メモリ（ＭＥＭ）ＤＣ３４６、周辺（ＰＥＲＩＰＨ）ＤＣ３６０、及びトレースバックＤＣ３７０を含む。ＶＤＢ３００は、コネクタを用いてドーターカードを受け取るように配され、コネクタの各々は、電力及び信号をドーターカードに提供し、ドーターカードから信号を受け取るように配される。各ドーターカードの機能性は、部分的に又は完全に、ＶＤＢ３００上に直接的に実装され得る。しかし、ドーターカードの利用は、例えば、置換されるドーターカードのための構成要素（メモリなど）の新たな世代が利用可能となるにつれてドーターカード全体が置き換えられ得るので、ＶＤＢ３００能力のアップグレードを促進する。
【００３１】
テスト対象設計ドーターカード（ＤＵＴ  ＤＣ）３３０は、ＤＵＴをホストするため（及び／又はＤＵＴのためのエミュレータソケットをホストするため）の機能性を含む。例えば、ＤＵＴ  ＤＣ３３０は、ＤＵＴ又はエミュレーションソケット（及び／又はプラグ）を含む集積回路を受け取るように配されるＤＵＴコネクタＪ１を含む。コネクタＪ１はまた、信号をＤＵＴからＤＵＴ  ＤＣ３３０の回路要素に結合する（電気的に結合するなど）ように配される。そのため、ＶＤＢデバッガ１１０は、ＶＤＢ１３１及びＤＵＴ  ＤＣ３３０を介してＤＵＴと通信するように配される。ＤＵＴ  ＤＣ３３０はまた、ＪＴＡＧインタフェース３３４、ＵＳＢバージョン２．０インタフェース３３８、及びイーサネット（物理層）インタフェース３４０などの、直接通信インタフェースを含む。直接通信インタフェースは、ＤＵＴのテスト及び評価のための種々の外部周辺デバイスとの直接通信を可能にする。
【００３２】
ＤＵＴ  ＤＣはまたＶＤＢ  ＦＰＧＡ３３６を含む。ＶＤＢデバッガ１１０は、ＤＵＴをテストするために用いられるべき選択されたテストベクトルを適用するように配される、合成された「ハードウェアテストベンチ」をプログラムするように配される。合成されたハードウェアテストベンチプログラムは、ＶＤＢ  ＦＰＧＡ３３６（をプログラミングするために用いられるなど）に移植（port）される。ＶＤＢ  ＦＰＧＡ３３６は、ＤＵＴの「ピンアウト」（入力／出力信号の機能性及び順序付けを含む）に従ってプログラムされる。そのため、ＶＤＢ  ＦＰＧＡ３３６は、ＤＵＴ（製造されるモノリシック半導体、設計をエミュレートするエミュレーションデバイス、及びコネクタＪ１に結合するために適したインタフェースを有する電子的システムなど）をテストするとき、選択されたテストベクトルをＤＵＴの対応するピン（設計ピン）に（順次になど）適用するように配される。
【００３３】
選択されたテストベクトルが、ＶＤＢ  ＦＰＧＡ３３６を介して（例えば、駆動／ストローブピンバス４５６及び／又はＪＴＡＧバス４５８を用いて）ＤＵＴメモリにロードされると、選択されたテストベクトルの実行の制御は、ＶＤＢ３００に結合されるＶＤＢデバッガ１１０などの監視プロセスに向けられる。ＶＤＢデバッガ１１０は、例えば、被試験デバイスにおける種々のレジスタ又はメモリコンテンツの全プロセッサビューを有する。ＶＤＢデバッガ１１０は、実行を停止すること、プログラムコードを介してステップ実行すること、及びブレークポイントを付加することが可能であり、この能力は、デバッグサイクルを短縮及び加速化することを助ける。従って、合成可能なハードウェアテストベンチをＶＤＢ  ＦＰＧＡ３３６にダウンロードすることは、従来のＡＴＥ解決策に対して拡張された可視性及び制御性を提供する。
【００３４】
検証設計及びデバッグボード３００は、ＤＵＴをテストするためのＤＵＴ  ＤＣ３３０の構成要素による使用のためのメモリを提供する。例えば、ＤＵＴ  ＤＣ３３０はメモリ３３２を含み、メモリ３３２は、ＤＵＴコネクタＪ１に密に結合され、ＤＵＴから読み出すこと又はＤＵＴに書き込むことに対して迅速にアクセスされ得る。３２ビットワイドスタティックＲＡＭ（ＳＲＡＭ３４２）及びダブルデータレートＲＡＭバージョン２（ＤＤＲ２）３４４などの補助的メモリは、ワイドデータバスを用いてＤＵＴに選択的に結合されるメモリの大きなバンクを提供する。補助的メモリは、ビデオ又はオーディオストリームなどのテストスティミュラス及び／又はテスト結果をストア、供給、及び捕捉するために有用である。一つ又は複数のクロック生成器Ｙ７が、ＤＵＴの選択された部分をテストするために選択された周波数（及び／又は位相）を提供するようになど、ＤＵＴ  ＤＣ３３０の構成要素のオペレーションを制御するようにクロック信号を生成するために提供される。
【００３５】
検証設計及びデバッグボード３００はまた、付加的なメモリを提供するため及び／又は付加的なメモリをＶＤＢ３００に結合するために、一つ又は複数の拡張されたメモリカード（ＭＥＭ  ＤＣ）３６０を含む。例えば、ＶＤＢ３００は、非同期メモリ３４８及び同期メモリ３５２を含む。非同期メモリは、フラッシュメモリ及び／又はスタティックＲＡＭ（ＳＲＡＭ）などのメモリを含み得る非同期メモリ構成要素３５０を含む。同期メモリは、ＳＲＡＭ３５４、ＤＤＲ３５６、及びモバイルＤＤＲ（ＭＤＤＲ）３５８などのメモリを含み得る同期メモリ構成要素３５２を含む。非同期メモリ構成要素３５０及び同期メモリ構成要素３５２などの既存のメモリ構成要素を拡張又は置換するために、デュアルインラインパッケージ（ＤＩＰ）ソケットＪ２が有用である。
【００３６】
検証設計及びデバッグボード３００はまた、付加的な機能性を提供するため及び／又は付加的な機能性をＶＤＢ３００に結合するために、一つ又は複数の周辺ドーターカード（ＰＥＲＩＰＨ  ＤＣ）３６０を含む。例えば、ＶＤＢ３００は、外部ＪＴＡＧ対応デバイスからのテストベクトルを結合するためのＪＴＡＧインタフェースを提供するＪＴＡＧインタフェース（ＪＴＡＧ）３６２などのテストインタフェースを含む。ＶＤＢ  ＦＰＧＡ３３６にダウンロードされたハードウェアテストベンチは、外部ＪＴＡＧ対応デバイスにより開始されるテストフローにおいてＪＴＡＧ関連プログラミングを実行するように配され得る。（ＰＣ４１０上でホストされるなどの）ＶＤＢデバッガ１１０は、外部ＪＴＡＧ対応デバイスにより開始されるテストフロープログラミングを制御するように配される。周辺ドーターカード（ＰＥＲＩＰＨ  ＤＣ）３６０は、Ｊ３〜Ｊ９などのコネクタを用いてＱｕｉｃｋｔｕｒｎ及びＰａｌｌａｄｉｕｍテスト機器などの回路内エミュレーション外部周辺機器のためのその他のテストインタフェースを提供する。（表面実装されるなどの）集積回路を、ＶＤＢ  ＦＰＧＡ３３６、コネクタＪ１、ＶＤＢデバッガ１１０、及びその他のテスターに結合するために、Ｉ２Ｃ（inter-integrated circuit）インタフェース３６６が有用である。
【００３７】
検証設計及びデバッグボード３００は更に、トレースバック機能性及び／又はＶＤＢ３００へのインタフェースのために、一つ又は複数のトレースバックドーターカード（トレースバックＤＣ）３７０を含む。例えば、トレースバックＤＣ３７０はトレースバックメモリ３７２を含み、トレースバックメモリ３７２は、トリガー前に存在する環境を記録するための情報を捕捉するように及び／又は生じる事象を捕捉するように配される。トレースバックメモリは、円形のキューとして、及び比較的大量の情報を継続的に記録するように配され得、その場合、円形のキューのサイズが、どのくらい量のトレースバック情報が捕捉されたかを判定するように古い情報が上書きされる。或る事象が起こると（ＪＴＡＧコントローラ（ＶＤＢデバッガ１１０など）に応答して受け取ったコマンドなど）、その事象の周りのデータが上書きされないように、（事象後記録の選択された部分を除いて）データの記録が止められる。その事象の周りの捕捉されたデータは、その事象の周りの環境（デバイス状態など）をデバッグするために有用である。
【００３８】
ＦＰＧＡ３８４は、トレースバック機能性の制御を実装するようにプログラムされ得る。一例において、発振器Ｙ７が、トレースバック制御回路要素を駆動するためのクロックを提供するように、及びトレースバックメモリ３７２に書き込むため及びトレースバックメモリ３７２から読み出すための信号を提供するように配される。ＤＵＴへのインタフェース（Ｉ／Ｆ  ｔｏ  ＤＵＴ）３７０が、ＦＰＧＡ３８４に応答して動作するように、及び、例えば、ＤＵＴからトレースバックメモリ３７２に情報を結合するように配される。
【００３９】
トレースバックＤＣ３７０は、トレースバック機能性を提供するための種々のインタフェースを含む。ＤＵＴ  ＤＣ３７０は、ＪＴＡＧインタフェース３７４、ＵＳＢバージョン２．０インタフェース３８２、及びイーサネット（物理層）インタフェース３８０などの通信インタフェース（直列通信インタフェースなど）を含む。ＤＵＴ  ＤＣ３７０は、Ｈｅｗｌｅｔｔ−Ｐａｃｋａｒｄインタフェース（ＨＰＩ）、パーソナルコンピュータインタフェース（ＰＣＩ）、及びＶＬＹＮＱ（テキサス・インスツルメンツ（商標）独自のインタフェース）インタフェース３７８などの、通信インタフェース（直列及び／又は並列通信インタフェースなど）を含む。直接通信インタフェースは、内部バス、例えば、ＤＵＴのテスト及び評価のために用いられる外部周辺デバイスのバスに延在する。ビデオインタフェース３８６及び「その他の」インタフェース３８８が、ビデオ又はオーディオストリームなどのスティミュラス及び／又はテスト結果を受信するために有用である。
【００４０】
図４は、本開示の例示の実施例に従った、検証設計及びデバッグボードシステムの構成要素の構成図である。検証設計及びデバッグボードシステム４００が、ＤＵＴ４６０をテストするために配置される、パーソナルコンピュータ（ＰＣ）４１０及びＴＤＬファイル４１２を含む。ＰＣ４１０は、ＴＤＬファイル４１２の選択されたコンテンツをＤＵＴ４６０の設計ピンに適用するためにダウンロード可能なテストベンチをつくるように配される、コンピューティングデバイス１００などのコンピューティングデバイス（パーソナルコンピューティングデバイスなど）である。ＰＣ４１０は、テストベンチ及び関連するテストベクトルを、ＪＴＡＧバス４１４などのインタフェースを用いて検証設計及びデバッグボード４２０（これは、ＶＤＢ３００などの検証設計及びデバッグボードである）にダウンロードするように配される。
【００４１】
ＶＤＢコントローラ４３０が、ダウンロード可能なテストベンチ及び関連するテストベクトルの画像を（ＪＴＡＧバス４１４を介して）受け取るように配される。選択されたＴＤＬファイルにストアされた、ダウンロード可能なテストベンチ及び関連するテストベクトルの受け取った画像は、（書き込みバス４３２を介して）メモリ４４０のコンテンツ（ＴＤＬ画像４４４など）としてストアされる。メモリ４４０のコンテンツは、読み出しバス４４２を介してＦＰＧＡ４５０により読み出されるように配される。ＦＰＧＡ４５０は（例えば、ＶＤＢコントローラ４３０の制御下で）、ダウンロード可能なテストベンチの受け取った画像を読み、ダウンロードされたテストベンチ４５４としてインスタンス化する（instantiate）ように配される。ダウンロード可能なテストベンチがダウンロードされたテストベンチ４５４としてインスタンス化される（プログラミングされるなど）場合、発振器Ｙ７及びクロック生成器４５２が、ダウンロードされたテストベンチ４５４を駆動及びクロックするために一つ又は複数のクロックを提供するように配される。
【００４２】
ＦＰＧＡ４５０においてインスタンス化されたダウンロードされたテストベンチ４５４は、駆動／ストローブピンバス４５６及びＪＴＡＧバス４５８を介してテスト対象設計（ＤＵＴ）４６０と通信するように配される。一例において、駆動／ストローブピンバス４５６は、別のバスマスターと共用されない。ＪＴＡＧバス４５８が、ＪＴＡＧマルチプレクサ（ＭＵＸ）４６２の第１の入力に結合される。ダウンロードされたテストベンチ４５４がテストマスターモード（例えばＤＵＴ４６０に対して）にあるとき、ＪＴＡＧマルチプレクサ４６２は、ＪＴＡＧバス４５８を、共用テストバス４６６を介してＤＵＴ４６０のＪＴＡＧバス設計ピンに結合するように配される。共用テストバス４６６は、テストコントローラバス（駆動／ストローブピンバス４５６とは対照的に）であり、例えば、テスト、又はＤＵＴ上のＪＴＡＧスキャンチェーンからの読み出しを開始するために有用である。一例において、共用テストバスは、駆動／ストローブピンバス４５６が結合されるＤＵＴ上のピンのセットとは異なる、ＤＵＴのピンの異なるセットに結合される。
【００４３】
ダウンロードされたテストベンチ４５４は、ＴＤＬ画像４４４からテストベクトルにアクセスするように、及び、例えばデザインフォーテストモードに入る際、テストの間ＴＤＬ画像の時間スライスを設計ピンに順次適用するように配される。例えば、テストベクトルの各スライス（各「ロー」又は「ライン」など）が、クロック生成器４５２から受信したクロックに従ってプログラムカウンタ４４６をインクリメントすることによって順次読み出され得る。プログラムカウンタの値は、ＴＤＬ画像４４４のメモリコンテンツをアドレス指定する目的でアドレスバス４４８上でアサートされるアドレスを形成するために有用である。
【００４４】
ＰＣ４７０は、ＪＴＡＧバス４６４を介してテスト対象設計（ＤＵＴ）４６０と通信するように配される。ＪＴＡＧバス４５８が、ＪＴＡＧマルチプレクサ（ＭＵＸ）４６２の第２の入力に結合される。ＰＣ４７０がテストマスターモード（ＤＵＴ４６０に対してなど）にあるとき、ＪＴＡＧマルチプレクサ４６２は、ＪＴＡＧバス４６４を、共用テストバス４６６を介してＤＵＴ４６０のＪＴＡＧバス設計ピンに結合するように配される。例えば、ＰＣ４７０上で実行するＣＣＳ１１１によるＤＵＴ４６０（及び共用テストバス４６６）の「マスターシップ（mastership）」は、ＣＣＳ１１１に、ＴＤＬ画像４４４からＴＤＬを実施するように配されるテストフローを観察及び制御させ得る。
【００４５】
従来の解決策とは対照的に、例えば、２つのテストマスターを代わる代わる用いて、ＴＤＬ画像４４４のコードの実行フローのフル制御が許可される。種々の実施例において、テストマスターは、例えば、ＰＣ４１０及びＰＣ４７０が同じ又は異なる物理（又は仮想）デバイスであり得るように、同じ又は異なるデバイスであり得る（又は同じ又は異なるデバイスから派生し得る）。例示の実施例において、ＴＤＬ画像４４４のコードの実行フローの制御が、メモリ４４０にロードされたＴＤＬ画像４４４の実行フローにわたるフル制御を提供するためにＶＤＢ上の設計に対するＰＣ４７０接続性のＣＣＳ１１１を確立することによって達成される。
【００４６】
ＴＤＬ画像４４４のコードの実行フローのフル制御が、ダウンロードされたテストベンチ４５４からＰＣ４７０のＣＣＳ１１１にテストマスター制御を移動させることによって達成され得る。例えば、ダウンロードされたテストベンチ４５４は、ＤＵＴ４６０におけるＴＤＬ画像４４４のコードのロード及び実行にわたって、テストマスター（共用テストバス４６６を介してＤＵＴ４６０のＪＴＡＧピンを制御することによるなど）として作用するように配される。こういった実行が、ＴＤＬ画像４４４における或るポイント（ＰＣ４１０のＣＣＳ１１１により事前に設定された所定のブレークポイントなど）に達した後、ダウンロードされたテストベンチ４５４は、ＰＣ４７０のＣＣＳ１１１が新たなテストマスターとなるように、テストの制御をＰＣ４７０のＣＣＳ１１１に移動させるように配される。ダウンロードされたテストベンチ４５４とＰＣ４７０のＣＣＳ１１１との間のテストバスのマスターシップの移動を促進するように、アービタ（シリコン基板における論理ゲートとして具現化されるメカニズムなど）４７２が実装される。ＣＣＳ１１１がテストバスのマスターシップの必要性をもはや有さないとき、ダウンロードされたテストベンチは、テストバスの現在のマスターとして作用することにより、テストすること（再開すること、又は新たにロードされたテストシーケンスを実行することを含む）を再開し得る。
【００４７】
アービタ４７２は、ダウンロードされたテストベンチ４５４及びＰＣ４７０のＣＣＳ１１１のいずれが共用バス４６６のマスターとなるべきかを選択し得る。アービタ４７２は、リセット状態に応答して、コントローラ（ＶＤＢコントローラ４３０又はＶＤＢデバッガ１１０など）から受信したコマンド、又はＪＴＡＧバス４６４の評価コンテンツ、ＤＵＴトグルド出力、及び／又はＪＴＡＧバス４５８のコンテンツのいずれが、共用バス４６６のマスターとなるべきかを選択し得る。
【００４８】
図５は、本開示の例示の実施例に従った、テスト対象設計のための検証設計及びデバッグボードバスインタフェースの構成図である。検証設計及びデバッグボードＦＰＧＡ３３６（及び／又はＦＰＧＡ４５０）が、それぞれ、バス５１２及び５２２を介して入力制御論理（少なくとも部分的にハードウェアにおいて具現化されるなど）５３０を駆動するための、ベクトルメモリ５１０及び出力イネーブルメモリ（ＯＥＮ）５２０を含む。ベクトルメモリ５１０及びＯＥＮメモリ５２０はＶＤＢ  ＦＰＧＡ３３６上に存在するように示されているが、ベクトルメモリ５１０及びＯＥＮメモリ５２０のすべて又は幾つかの部分は、ＶＤＢ  ＦＰＧＡ３３６から離れて存在し得る（一方で、例えば、その場合でもＶＤＢ３００上に存在する）。
【００４９】
ベクトルメモリ５１０が、ＤＵＴ５５０設計ピンの各々上に駆動されるべき値の各々をストアするように配される。ベクトルメモリ５１０はまた、例えば、ＳＥＴＲ（予期されるレートでのピンの設定された値など）、ＲＵＮＰ（予め設定された値を反復することにより実行「パックされる」など）、及びＥＮＤ（停止実行など）などの種々のＴＤＬ構成の実行を制御するための情報をストアするように配される。上述したように、テストベクトルにアクセスするためのアドレスを生成するためにプログラムカウンタ４４６が有用である。一実施例において、プログラムカウンタは、関連するメモリからテストベクトルをフェッチ及びパックするように、及びテストベクトルを予期されるレート（ＳＥＴＲ構成など）で設計ピンに適用するように配される状態機械を含む。状態機械によりＲＵＮＰ構成が生じると、ＲＵＮＰカウントが満了するまで、予めパックされた値が設計ピンに駆動される。ＥＮＤ構成が生じると、例えば、状態機械をリセット（又は変更する）ＦＰＧＡ３３６又は４５０の外で事象が起こるまで、予めパックされた値が駆動される。
【００５０】
ＯＥＮメモリ５２２は、テストベクトル（又はテストベクトルのグループ）のためのＤＵＴ設計ピン（又はピンのグループ）の状態の方向情報（出力及び／又は入力など）をストアするように配される。メモリストレージは、例えば、ベクトル毎の方向情報の１ワード（３２ビットなど）を用いる方向情報を関連付けることにより、又はＴＤＬベースのテストベクトルのライン毎（ロー毎など）に１ワードを用いることにより、最適化され得る。
【００５１】
オペレーションにおいて、ダウンロードされたテストベンチ４５４は、例えば、ＴＤＬ画像４４４に応答して方向情報を生成するように配される。ベクトルメモリ５１０においてテストベクトルが実行されているとき、ＴＤＬの特定のラインを選択するためのアドレスも、ＴＤＬの選択されたラインのための関連する方向情報をリトリーブするために用いられる。ＴＤＬの選択されたラインのためのリトリーブされた関連する方向情報は、一つ又は複数のトライステートバッファ５４０（分かり易くするため全てのバッファは示されていない）の状態を制御するために用いられる。例えば、方向情報はバス５３２を介して適用され、これが、バス５３４の選択されたコンテンツ（ビット又はワードなど）が、選択されイネーブルされたトライステートバッファ５４０により、コネクタＪ１を介してＤＵＴ５５０に結合されるバス５４２上に出力されるか否かを判定する。
【００５２】
本発明の特許請求の範囲内で、説明した例示の実施例に変形が成され得、多くの他の実施例が可能である。
【図１】
0006557220.tif 000002
【図２】
0006557220.tif 000003
【図３】
0006557220.tif 000004
【図４】
0006557220.tif 000005
【図５】
0006557220.tif 000006