特許第6557220号(P6557220)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本テキサス・インスツルメンツ株式会社の特許一覧 ▶ テキサス インスツルメンツ インコーポレイテッドの特許一覧

特許6557220プログラム可能なインタフェースベースの検証及びデバッグ
<>
  • 特許6557220-プログラム可能なインタフェースベースの検証及びデバッグ 図000002
  • 特許6557220-プログラム可能なインタフェースベースの検証及びデバッグ 図000003
  • 特許6557220-プログラム可能なインタフェースベースの検証及びデバッグ 図000004
  • 特許6557220-プログラム可能なインタフェースベースの検証及びデバッグ 図000005
  • 特許6557220-プログラム可能なインタフェースベースの検証及びデバッグ 図000006
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6557220
(24)【登録日】2019年7月19日
(45)【発行日】2019年8月7日
(54)【発明の名称】プログラム可能なインタフェースベースの検証及びデバッグ
(51)【国際特許分類】
   G01R 31/28 20060101AFI20190729BHJP
   G06F 11/263 20060101ALI20190729BHJP
   G06F 11/36 20060101ALI20190729BHJP
【FI】
   G01R31/28 H
   G06F11/263 650
   G06F11/36 148
【請求項の数】8
【全頁数】15
(21)【出願番号】特願2016-518161(P2016-518161)
(86)(22)【出願日】2014年9月26日
(65)【公表番号】特表2016-537619(P2016-537619A)
(43)【公表日】2016年12月1日
(86)【国際出願番号】US2014057579
(87)【国際公開番号】WO2015048366
(87)【国際公開日】20150402
【審査請求日】2017年9月15日
(31)【優先権主張番号】14/038,743
(32)【優先日】2013年9月26日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】390020248
【氏名又は名称】日本テキサス・インスツルメンツ合同会社
(73)【特許権者】
【識別番号】507107291
【氏名又は名称】テキサス インスツルメンツ インコーポレイテッド
(74)【上記1名の代理人】
【識別番号】100098497
【弁理士】
【氏名又は名称】片寄 恭三
(72)【発明者】
【氏名】アンシュル ガホイ
(72)【発明者】
【氏名】ラグハベンドラ サンタナゴパル
(72)【発明者】
【氏名】プラディープ クマール バブ
【審査官】 島▲崎▼ 純一
(56)【参考文献】
【文献】 特開平07−243875(JP,A)
【文献】 特開2000−098001(JP,A)
【文献】 国際公開第2004/088339(WO,A1)
【文献】 特開2004−257898(JP,A)
【文献】 特開昭64−074474(JP,A)
【文献】 特開平07−280893(JP,A)
【文献】 特開平06−342036(JP,A)
【文献】 米国特許出願公開第2004/0267480(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G01R 31/28
G06F 11/263
G06F 11/36
(57)【特許請求の範囲】
【請求項1】
テストフィクスチャであって、
テスト対象設計を前記テストフィクスチャに通信可能に結合するように配されるテストコネクタであって、選択されたピンの第1のセットに結合される共用テストバスを含む、前記テストコネクタと、
前記テストコネクタに通信可能に結合され、ダウンロード可能なテストベンチを受け取るように配される、プログラム可能な論理インタフェースであって、前記ダウンロード可能なテストベンチが、テストベクトルの第1のセットからのテストベクトルを第1のテスト制御バスに適用するように配され、前記プログラム可能な論理インタフェースが、アドレスを生成するように配されるプログラムカウンタを含むようにプログラムされたフィールドプログラマブルゲートアレイ(FPGA)を含み、そのアドレスにより、前記テストベクトルの第1のセットからのテストベクトルがリトリーブされ、前記プログラムカウンタの値が、前記テストベクトルの第1のセットからのリトリーブされたテストベクトルの値に応答して変えられる、前記プログラム可能な論理インタフェースと、
前記テストベクトルの第1のセットがストアされる、アドレス指定可能なメモリと、
前記第1のテスト制御バスと第2のテスト制御バスの一方を前記共用テストバスに選択的に結合するように配されるマルチプレクサであって、前記第2のテスト制御バスが、テストベクトルの第2のセットからのテストベクトルを適用するように配される、前記マルチプレクサと、
を含み、
前記テストベクトルの第1のセットからの前記リトリーブされたテストベクトルの第1のセットの第1の部分が、前記テストコネクタの前記選択されたピンの第1のセットに適用され、
前記テストベクトルの第1のセットに対する前記リトリーブされたテストベクトルの第1のセットの第2の部分が、前記テストコネクタの選択されたピンの第2のセットに結合される第3のテストバスに適用され、
前記テストコネクタの前記選択されたピンの第2のセットが、前記選択されたピンの第1のセットにおける前記選択されたピンとは異なる選択されたピンを含む、テストフィクスチャ。
【請求項2】
請求項1に記載のテストフィクスチャであって、
前記テストベクトルの第2のセットが、前記テストベクトルの第1のセットの実行を制御するように人間により動作され得るデバッガにより供給される、テストフィクスチャ。
【請求項3】
請求項2に記載のテストフィクスチャであって、
前記共用テストバスのマスターシップを前記デバッガとダウンロード可能なテストベンチとの間で移動させるように配されるアービタを更に含む、テストフィクスチャ。
【請求項4】
請求項2に記載のテストフィクスチャであって、
前記テストベクトルの第1のセットが、前記テストコネクタに結合される前記テスト対象設計の性能を検証するように配される、テストフィクスチャ。
【請求項5】
請求項3に記載のテストフィクスチャであって、
前記アービタが、前記プログラム可能な論理インターフェースから受信したコマンドに依存する前記共用テストバスのマスターシップを転送する、テストフィクスチャ。
【請求項6】
請求項3に記載のテストフィクスチャであって、
前記アービタが、前記第1の制御バスの内容に依存する前記共用テストバスのマスターシップを転送する、テストフィクスチャ。
【請求項7】
請求項3に記載のテストフィクスチャであって、
前記アービタが、前記第2の制御バスの内容に依存する前記共用テストバスのマスターシップを転送する、テストフィクスチャ。
【請求項8】
請求項3に記載のテストフィクスチャであって、
前記アービタが、テスト対象設計の出力に依存する前記共用テストバスのマスターシップを転送する、テストフィクスチャ。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、概して自動試験装置に関し、特に、プログラム可能なインタフェースベースの検証及びデバッグに関連する。
【背景技術】
【0002】
自動試験装置(ATE)は、多くの電子的設計の、特に集積回路を用いて実装される電子的設計の、検証及びデバッグのために有効である。集積回路は比較的複雑であるため、デバッグ及びデバイス検証は、典型的に時間がかかり、ATEを用いるテストベクトルの甚だしい反復に関与する。ATEの複雑性のため、テスト対象設計(designs-under-test)のデバッグのためにATEを用いるためのコストがそれに応じて高価となる。デバッグの困難さは、テスト対象設計を行うためのインタフェースの入力/出力制約により更に悪化する。
【発明の概要】
【0003】
記載される例において、テストコネクタが、テスト対象設計をテストフィクスチャに通信可能に結合するように配される。プログラム可能な論理インタフェースが、テストコネクタに通信可能に結合され、ダウンロード可能なテストベンチを受け取るように配される。ダウンロード可能なテストベンチは、テストベクトルの第1のセットから第1のテスト制御バスにテストベクトルを適用するように配される。マルチプレクサが、第1のテスト制御バス及び第2のテスト制御バスの一つを、テストコネクタに結合される共用テストバスに選択的に結合するように配される。第2のテスト制御バスは、テストベクトルの第2のセットからのテストベクトルを適用するように配される。
【図面の簡単な説明】
【0004】
図1】本開示の例示の実施例に従った例示の電子デバイスを示す。
【0005】
図2】本開示の例示の実施例に従って検証設計及びデバッグボードを用いてデバッグを実施するためのテストフローのフローチャートである。
【0006】
図3】本開示の例示の実施例に従った、検証設計及びデバッグボードの構成要素のブロック図である。
【0007】
図4】本開示の例示の実施例に従った、検証設計及びデバッグボードシステムの構成要素の構成図である。
【0008】
図5】本開示の例示の実施例に従った、テスト対象設計のための検証設計及びデバッグボードバスインタフェースの構成図である。
【発明を実施するための形態】
【0009】
図1は、本開示の好ましい例示の実施例に従った例示のコンピューティングデバイス100を示す。例えば、コンピューティングデバイス100は、ラップトップ、モバイルデバイス、パーソナルデジタルアシスタント、パーソナルコンピュータ、電子機器制御「ボックス」又はディスプレイ、電子的テストベンチ、又は任意の他のタイプの電子的システムなどの電子的システム129であるか、或いは電子的システム129に組み込まれる。コンピューティングデバイス100は、ライン電流、ソーラーセル、及び/又はバッテリー(又は容量性)ストレージから電力供給され得る。一例において、コンピューティングデバイス100は、アドホックネットワーク通信を向上させるためのコスト効率のよい解決策を提供する、プログラム可能なインタフェースベースの検証及びデバッグシステムを含む。
【0010】
幾つかの実施例において、コンピューティングデバイス100は、メガセル又はシステムオンチップ(SoC)を含み、メガセル又はSoCは、CPU112(中央処理装置)、ストレージ114(ランダムアクセスメモリ(RAM)など)、及び、VDB(検証設計及びデバッグボード)131にアクセスするように配されるVDBデバッガ110(ハードウェアにおいて少なくとも部分的に具現化される実行可能ソフトウェアなど)プログラムなどの制御論理を含む。CPU112は、例えば、CISCタイプ(Complex Instruction Set Computer)CPU、RISCタイプCPU(Reduced Instruction Set Computer)、MCUタイプ(Microcontroller Unit)、又はデジタルシグナルプロセッサ(DSP)であり得る。ストレージ114(これは、オンプロセッサキャッシュ、オフプロセッサキャッシュ、RAM、フラッシュメモリ、又はディスクストレージなどのメモリであり得る)は、CPU112により実行されると、コンピューティングデバイス100に関連付けられる任意の適切な機能を実施する一つ又は複数のソフトウェアアプリケーション130(エンべディドアプリケーションなど)をストアする。
【0011】
CPU112は、ストレージ114により提供されるメモリから頻繁にアクセスされる情報をストアする、メモリ及び論理を含む。コンピューティングデバイス100は、しばしば、ソフトウェアアプリケーション130の実行の間、出力を提供し、ユーザーからの入力を受信するUI(ユーザーインタフェース)116を用いてユーザーにより制御される。出力は、ディスプレイ118、インジケータ光、スピーカー、振動、及び他の方式を用いて提供される。入力は、オーディオ及び/又はビデオ入力(例えば、音声又は画像認識を用いて)、及びキーパッド、スイッチ、及び近接度検出器などの機械的デバイスを用いて受信される。CPU112及びVDBデバッガ110は、I/O(入力/出力)ポート128に結合され、I/Oポート128は、VDB131から入力を受信する(及び/又はVDB131へ出力を提供する)ように構成されるJTAG(joint test action group)インタフェースなどのインタフェースを提供する。I/Oポート128は、USB(ユニバーサルシリアルバス)、RS−232(Radio Sector of the Electronic Industries Alliance)、及びI2C(inter-integrated circuit)などのバスであり得る。コンピューティングデバイス100はまた、周辺機器及び/又はコンピューティングデバイスに結合され得、これらは、有形の、非一時的(non-transistory)媒体(フラッシュメモリなど)及び/又は有線又はワイヤレス媒体を含む。これらの及び他の入力及び出力デバイスが、ワイヤレス又は有線接続を用いて外部デバイスによりコンピューティングデバイス100に選択的に結合される。ストレージ114は、例えば、I/Oポート128を介して外部デバイスによりアクセスされ得る。
【0012】
VDBデバッガ110は、監視及び制御システムであり、テスト対象設計(DUT:design-under-test)の監視、制御、テスト、及びデバッグをサポートする論理及び機能性(少なくとも部分的にハードウェアにおいて具現化され、ストレージ114に少なくとも部分的にストアされるソフトウェアアプリケーション130により少なくとも部分的に制御される)を含む。例えば、VDBデバッガ110は、検証設計及びデバッグボード(VDB)142などのテストフィクスチャに含まれるVDB FPGA(フィールドプログラマブルゲートアレイ)142などのプログラム可能な論理(少なくとも部分的にハードウェアにおいて具現化される)インタフェースをダウンロード及び/又は制御するために有用である。従って、一例において、デバッガ110は、VDB142などのテストフィクスチャとは異なる自己完結コンピュータシステム(ラップトップパーソナルコンピュータなど)である。
【0013】
VDBデバッガ110及びVDB142の構成要素は、物理DUT及び/又はコネクタJ1を介するDUTのエミュレータの検証を可能にする。例えば、エミュレータのソケットをコネクタJ1につなぐことにより、エミュレータは、種々の状況(DUTの構成要素がソフトウェアアプリケーション130とどのように相互作用し得るかなど)下の意図される最終的な実施例(パッケージされた集積回路など)におけるオペレーションのDUTの性能を再現し得る。このようにして、DUTは、プレプロダクション(pre-production)又はポストプロダクション(post-production)オペレーションに類似する単一の環境においてデバッグされ得る。
【0014】
従来のテスト機器は、典型的に、比較的固定された方式でテスト対象設計と相互作用する、主としてハードウェア指向の環境を提供する。例えば、テストベクトル(テストピンがコードの単一のラインに現れるときでも、テストピンを設定するため又はテストピンの設定を検証するための情報など)がDUTメモリにロードされる。一例において、プログラムコードがテストベクトルを介してデバイスメモリにロードされた後、テストベクトルの実行に課される外部制御はない。テストベクトルの実行の後、テスト結果は大抵、テストに合格したか不合格であるかの指示を提供するシグネチャーに制限される。
【0015】
これに対し、VDBデバッガ110は、DUT内部回路にわたる制御、及びDUT内部回路内への可視性を提供する。例えば、VDBデバッガ110は、例えばDUT内でインテグレートされるプロセッサ(マイクロプロセッサ、DSP、及びマイクロコントローラなど)をデバッグするために、用いられるCCS(code composer studio)111などのデバッガソフトウェアを含む。CCS111は、デバッグコマンドを提供する。一例において、デバッグコマンドは高レベルコマンドであり、これらは、DUTをデバッグするためにJTAGコマンドに変換される。(以下に更に述べるような)テストマスターとして用いられるとき、CCS111は、可視性(DUTの内部レジスタ及びメモリのステータスなど)、及び、例えばJTAG(joint test action group)インタフェースを用いてアサートされた検証低レベルコマンドを抑制するデバッグ機能性(ステップ、実行、停止、及びブレークポイントなど)を提供する。そのため、DUT内のプロセッサが、コードを介して、停止されて1ステップずつ実行され得る一方で、検証低レベルコマンドを用いて起こる欠陥の原因及び位置を判定するための補助として内部レジスタの状態を調査し得る。
【0016】
従って、VDB142は、初期デバイステストのため、カスタマーデモンストレーションボードとしての(設計がシリコンに帰着(reduced)された後、設計検証及びアプリケーションテストを実行することなどによる)デバイス信頼度構築のため、現場欠陥テストのため、及びその他の同様の目的のために有効である。また、VDB FPGA142は、改訂された又は新たなテスト対象設計のための新たなインタフェース要件に対して調節する(及び/又は新たなインタフェース要件を提供する)ために再プログラムされ得、これは、再利用性を促進し、テスト機器及びフィクスチャのための設計時間を短縮する。
【0017】
図2は、本開示の例示の実施例に従って、検証設計及びデバッグボードを用いてデバッグを実施するためのテストフローのフローチャートである。概して説明すると、テストフロー200が、VDB FPGA142などのプログラム可能なインタフェースを介してテスト対象設計上にテストベクトルをロードするための例示のプロセスを含む。テストフローは、モノリシック集積回路としてシリコンにおいて具現化される(シリコンに帰着される)DUTに関連するように説明されるが、本開示は、(コネクタJ1を介してなど)VDB FPGA142に結合され得るDUTのエミュレータに適用し得る。
【0018】
更に特定して言えば、テストフローは、ノード202で開始し、テストのために検証設計及びデバッグボード131が初期化されるオペレーション210に進む。検証設計及びデバッグボードは、例えば、DUTの特定の入力に(VDBデバッガ110から受信されるなどの)テストベクトルを結合するようにVDB FPGA142をプログラムするためにネットリストを用いることによって、初期化される。特定の入力は、パッケージ(集積回路のパッケージにおけるピンなど)及び/又はコネクタ(コネクタJ1など)におけるピンに従って特定のピン(オーダーされた「ピンアウト」など)に割り当てられる。
【0019】
VDB FPGA142のプログラミングの後、VDB131上の信号が正しい動作状態に置かれる。例えば、リセット信号がデアサートされ得、選択された動作周波数のクロックがDUTのそれぞれの入力に結合され得、DUTにおける電子的ヒューズのステータスが確認され得る。初期化の後、テストフローはオペレーション220において継続する。
【0020】
オペレーション220において、デザインフォーテスト(DFT)モードが開始される。従来技術(従来技術では、例えば、JTAGベースのテストが開始され、プロセスの制御及び監視がテストの完了まで保留される)とは対照的に、検証設計及びデバッグボードがDFTモードに入るように配される一方で、監視プロセス(CCS111により制御され観測されるなど)に、DUTの個別のレジスタ及びメモリ位置の値を監視及び変更させ得、テストベクトルの特定の範囲(テストベクトルのステップ実行及び/又は選択されたブロックなど)を実行させ得、及び(所定の位置においてなど)テスト実行を停止させ得る。デザインフォーテストモードに入った後、テストフロー200はオペレーション230において継続する。
【0021】
オペレーション230において、DUTをテストするためのプログラムコードが、検証設計及びデバッグボード131にロードされる。更に特定して言えば、DUTの特定の部分をテストするために特定のプログラムコードがロードされ、テストされるべきDUTの任意の選択された部分に特定的な異なるプログラムコードをロードすることによりDUTの種々の部分がテストされ得る。そのため、例えば、プログラムコード部分が検証設計及びデバッグボード131に存在するように、DUTのためのテストシナリオを構成するためのプログラムコード(及びその他のこのようなプログラムコード)が検証設計及びデバッグボード131にロードされ得る。プログラムコードは、図3及びそれ以降に関連して下記で説明するように、メモリの一つにロードされ得る。
【0022】
テストフロー200におけるオペレーションの各々は、異なるオペレーション(オペレーション230又はオペレーション240など)が中断され得、種々の構成要素のステータスが監視プロセスにより検査され得るように、テストフロー200において監視プロセスにより中断され得る。そのため、例えば、実行されているテストの結果が、実施されているテストが停止されるか又はその他の方式で終了される前に、検査され得る。テストフロー200は、オペレーション240において継続する。
【0023】
オペレーション240において、プログラムコードが実行される。例えば、コマンド(デバッグコマンドなど)が、監視プロセス(CCS111など)から受信され、これは、検証設計及びデバッグボード131に、(受け取ったコマンドに応答して)選択されたテストベクトルをDUTのそれぞれのピンに適用するように指示する。テストベクトルがTDL(テストデザイン言語)ベースである例において、共用JTAGバスのマスタリングが監視プロセスに与えられ、監視プロセスからのテストシーケンスが、受け取ったコマンドに従ってDUTのJTAG特定ピンに適用される。
【0024】
例えば、ロー及びコラムを有するマトリックスとしてテストが表され得るTDLにテストが書き込まれ得る。TDLの各ローは、特定の時間期間(時間スライス又はテストクロックなど)に関連付けられ、その場合、各ローのスティミュラス(stimulus)がテストの特定の時間にDUTの設計ピン(及びそれから測定された応答)に順次適用される。一例において、各コラムが設計ピンに関連付けられ、TDLの各ローが、スティミュラス及び/又は値として適用される値を有し、これらは、設計ピンで受け取った応答に対して比較される。従って、TDLの特定のローに関連付けられるテストフローにおける或るポイントで、値が適用され得及び/又は測定され得る。
【0025】
種々の実施例において、テストフロー200のオペレーションは必ずしも順次実施される必要はない。例えば、DUTの第1の部分が、第1の部分をテストするためのコードを実行することによりテストされ得、一方、DUTの第2の部分が、第2の部分をテストするためのコードを実行することによりテストされ得、この場合、第1の部分をテストするためのコードは、第2の部分をテストするためのコードが実行される第2の時間期間に少なくとも部分的に重なる第1の時間期間の間実行される。従って、非同期事象に対する応答が、第1及び第2の部分をテストするためのコードが(CCS111から受信した個別のコマンドに応答してなど)開始される相対的な時間を変えることによりテストされ得る。
【0026】
オペレーション250において、分析のためにテスト結果がアクセスされる(ダンプされる)。テスト結果は、I/Oトレースを監視すること、テストシグネチャーを比較すること、オンDUT JTAGレジスタを読むこと、メモリ及び/又はレジスタコンテンツを読むこと、メモリにストアされたビルトインテスト(BIT)デバイスの結果を読むことにより、及びその他の同様なオペレーションにより、アクセスされ得る。
【0027】
図3は、本開示の例示の実施例に従った、検証設計及びデバッグボードの構成要素のブロック図である。検証設計及びデバッグボード300が、VDBデバッガ110などのVDBコントローラと通信するために一つ又は複数のインタフェースを含むVDB131などの検証設計及びデバッグボードである。例えば、VDBデバッガ110が、独自のインタフェース(I/F)(VDB I/F302など)を介して又は規格ベースのインタフェース(JTAGインタフェース304など)を介して、VDB300と通信するように配される。
【0028】
検証設計及びデバッグボード300は、VDB300、及びコネクタJ1を介してVDB300に結合されるDUTを給電するために、一つ又は複数の電源を含む。例えば、VDB300は、プログラム可能な電源312PPS1〜PPS10及び固定電源314FPS1〜FPS7などの電源310を含む。プログラム可能な電源PPS1〜PPS10は、VDB FGPA336をプログラムするため及びDUTの選択された部分を給電するために電圧を提供するようにVDBデバッガ110によりプログラムされ得る。固定電源FPS1〜FPS7が、それぞれ、0.9V、1V、1.2V、1.8V、2.5V、3.3V、及び5Vなど、半導体設計に適した電圧を提供するように配される。電力供給出力(及びDUTからのアナログ信号出力)が測定ユニット316を用いて測定され得る。測定ユニット316は、(固定又はプラグラム可能な)電源又はDUTピン(コネクタJ1を介してなど)からアナログデジタルコンバータ(ADC1)の入力へ信号を(VDBデバッガ111からのコマンドに応答してなど)選択的に結合するように配される電子的スイッチマトリックスS1を含む。
【0029】
検証設計及びデバッグボード300は更に、VDB300、及びコネクタJ1を介してVDB300に結合されるDUTを給電するために、一つ又は複数のクロック生成器320を含む。例えば、VDB300は、プログラム可能なクロック生成器322CLK1〜CLK15及び固定クロック生成器324Y1〜Y7などのクロック生成器320を含む。プラグラム可能なクロック生成器CLK1〜CLK15は、DUTの選択された部分をクロックするための選択された周波数(及び/又は位相)を提供するようにVDBデバッガ110によりプログラムされ得る。
【0030】
検証設計及びデバッグボード300は更に、DUT DC330などの一つ又は複数のドーターカード(DC)、メモリ(MEM)DC346、周辺(PERIPH)DC360、及びトレースバックDC370を含む。VDB300は、コネクタを用いてドーターカードを受け取るように配され、コネクタの各々は、電力及び信号をドーターカードに提供し、ドーターカードから信号を受け取るように配される。各ドーターカードの機能性は、部分的に又は完全に、VDB300上に直接的に実装され得る。しかし、ドーターカードの利用は、例えば、置換されるドーターカードのための構成要素(メモリなど)の新たな世代が利用可能となるにつれてドーターカード全体が置き換えられ得るので、VDB300能力のアップグレードを促進する。
【0031】
テスト対象設計ドーターカード(DUT DC)330は、DUTをホストするため(及び/又はDUTのためのエミュレータソケットをホストするため)の機能性を含む。例えば、DUT DC330は、DUT又はエミュレーションソケット(及び/又はプラグ)を含む集積回路を受け取るように配されるDUTコネクタJ1を含む。コネクタJ1はまた、信号をDUTからDUT DC330の回路要素に結合する(電気的に結合するなど)ように配される。そのため、VDBデバッガ110は、VDB131及びDUT DC330を介してDUTと通信するように配される。DUT DC330はまた、JTAGインタフェース334、USBバージョン2.0インタフェース338、及びイーサネット(物理層)インタフェース340などの、直接通信インタフェースを含む。直接通信インタフェースは、DUTのテスト及び評価のための種々の外部周辺デバイスとの直接通信を可能にする。
【0032】
DUT DCはまたVDB FPGA336を含む。VDBデバッガ110は、DUTをテストするために用いられるべき選択されたテストベクトルを適用するように配される、合成された「ハードウェアテストベンチ」をプログラムするように配される。合成されたハードウェアテストベンチプログラムは、VDB FPGA336(をプログラミングするために用いられるなど)に移植(port)される。VDB FPGA336は、DUTの「ピンアウト」(入力/出力信号の機能性及び順序付けを含む)に従ってプログラムされる。そのため、VDB FPGA336は、DUT(製造されるモノリシック半導体、設計をエミュレートするエミュレーションデバイス、及びコネクタJ1に結合するために適したインタフェースを有する電子的システムなど)をテストするとき、選択されたテストベクトルをDUTの対応するピン(設計ピン)に(順次になど)適用するように配される。
【0033】
選択されたテストベクトルが、VDB FPGA336を介して(例えば、駆動/ストローブピンバス456及び/又はJTAGバス458を用いて)DUTメモリにロードされると、選択されたテストベクトルの実行の制御は、VDB300に結合されるVDBデバッガ110などの監視プロセスに向けられる。VDBデバッガ110は、例えば、被試験デバイスにおける種々のレジスタ又はメモリコンテンツの全プロセッサビューを有する。VDBデバッガ110は、実行を停止すること、プログラムコードを介してステップ実行すること、及びブレークポイントを付加することが可能であり、この能力は、デバッグサイクルを短縮及び加速化することを助ける。従って、合成可能なハードウェアテストベンチをVDB FPGA336にダウンロードすることは、従来のATE解決策に対して拡張された可視性及び制御性を提供する。
【0034】
検証設計及びデバッグボード300は、DUTをテストするためのDUT DC330の構成要素による使用のためのメモリを提供する。例えば、DUT DC330はメモリ332を含み、メモリ332は、DUTコネクタJ1に密に結合され、DUTから読み出すこと又はDUTに書き込むことに対して迅速にアクセスされ得る。32ビットワイドスタティックRAM(SRAM342)及びダブルデータレートRAMバージョン2(DDR2)344などの補助的メモリは、ワイドデータバスを用いてDUTに選択的に結合されるメモリの大きなバンクを提供する。補助的メモリは、ビデオ又はオーディオストリームなどのテストスティミュラス及び/又はテスト結果をストア、供給、及び捕捉するために有用である。一つ又は複数のクロック生成器Y7が、DUTの選択された部分をテストするために選択された周波数(及び/又は位相)を提供するようになど、DUT DC330の構成要素のオペレーションを制御するようにクロック信号を生成するために提供される。
【0035】
検証設計及びデバッグボード300はまた、付加的なメモリを提供するため及び/又は付加的なメモリをVDB300に結合するために、一つ又は複数の拡張されたメモリカード(MEM DC)360を含む。例えば、VDB300は、非同期メモリ348及び同期メモリ352を含む。非同期メモリは、フラッシュメモリ及び/又はスタティックRAM(SRAM)などのメモリを含み得る非同期メモリ構成要素350を含む。同期メモリは、SRAM354、DDR356、及びモバイルDDR(MDDR)358などのメモリを含み得る同期メモリ構成要素352を含む。非同期メモリ構成要素350及び同期メモリ構成要素352などの既存のメモリ構成要素を拡張又は置換するために、デュアルインラインパッケージ(DIP)ソケットJ2が有用である。
【0036】
検証設計及びデバッグボード300はまた、付加的な機能性を提供するため及び/又は付加的な機能性をVDB300に結合するために、一つ又は複数の周辺ドーターカード(PERIPH DC)360を含む。例えば、VDB300は、外部JTAG対応デバイスからのテストベクトルを結合するためのJTAGインタフェースを提供するJTAGインタフェース(JTAG)362などのテストインタフェースを含む。VDB FPGA336にダウンロードされたハードウェアテストベンチは、外部JTAG対応デバイスにより開始されるテストフローにおいてJTAG関連プログラミングを実行するように配され得る。(PC410上でホストされるなどの)VDBデバッガ110は、外部JTAG対応デバイスにより開始されるテストフロープログラミングを制御するように配される。周辺ドーターカード(PERIPH DC)360は、J3〜J9などのコネクタを用いてQuickturn及びPalladiumテスト機器などの回路内エミュレーション外部周辺機器のためのその他のテストインタフェースを提供する。(表面実装されるなどの)集積回路を、VDB FPGA336、コネクタJ1、VDBデバッガ110、及びその他のテスターに結合するために、I2C(inter-integrated circuit)インタフェース366が有用である。
【0037】
検証設計及びデバッグボード300は更に、トレースバック機能性及び/又はVDB300へのインタフェースのために、一つ又は複数のトレースバックドーターカード(トレースバックDC)370を含む。例えば、トレースバックDC370はトレースバックメモリ372を含み、トレースバックメモリ372は、トリガー前に存在する環境を記録するための情報を捕捉するように及び/又は生じる事象を捕捉するように配される。トレースバックメモリは、円形のキューとして、及び比較的大量の情報を継続的に記録するように配され得、その場合、円形のキューのサイズが、どのくらい量のトレースバック情報が捕捉されたかを判定するように古い情報が上書きされる。或る事象が起こると(JTAGコントローラ(VDBデバッガ110など)に応答して受け取ったコマンドなど)、その事象の周りのデータが上書きされないように、(事象後記録の選択された部分を除いて)データの記録が止められる。その事象の周りの捕捉されたデータは、その事象の周りの環境(デバイス状態など)をデバッグするために有用である。
【0038】
FPGA384は、トレースバック機能性の制御を実装するようにプログラムされ得る。一例において、発振器Y7が、トレースバック制御回路要素を駆動するためのクロックを提供するように、及びトレースバックメモリ372に書き込むため及びトレースバックメモリ372から読み出すための信号を提供するように配される。DUTへのインタフェース(I/F to DUT)370が、FPGA384に応答して動作するように、及び、例えば、DUTからトレースバックメモリ372に情報を結合するように配される。
【0039】
トレースバックDC370は、トレースバック機能性を提供するための種々のインタフェースを含む。DUT DC370は、JTAGインタフェース374、USBバージョン2.0インタフェース382、及びイーサネット(物理層)インタフェース380などの通信インタフェース(直列通信インタフェースなど)を含む。DUT DC370は、Hewlett−Packardインタフェース(HPI)、パーソナルコンピュータインタフェース(PCI)、及びVLYNQ(テキサス・インスツルメンツ(商標)独自のインタフェース)インタフェース378などの、通信インタフェース(直列及び/又は並列通信インタフェースなど)を含む。直接通信インタフェースは、内部バス、例えば、DUTのテスト及び評価のために用いられる外部周辺デバイスのバスに延在する。ビデオインタフェース386及び「その他の」インタフェース388が、ビデオ又はオーディオストリームなどのスティミュラス及び/又はテスト結果を受信するために有用である。
【0040】
図4は、本開示の例示の実施例に従った、検証設計及びデバッグボードシステムの構成要素の構成図である。検証設計及びデバッグボードシステム400が、DUT460をテストするために配置される、パーソナルコンピュータ(PC)410及びTDLファイル412を含む。PC410は、TDLファイル412の選択されたコンテンツをDUT460の設計ピンに適用するためにダウンロード可能なテストベンチをつくるように配される、コンピューティングデバイス100などのコンピューティングデバイス(パーソナルコンピューティングデバイスなど)である。PC410は、テストベンチ及び関連するテストベクトルを、JTAGバス414などのインタフェースを用いて検証設計及びデバッグボード420(これは、VDB300などの検証設計及びデバッグボードである)にダウンロードするように配される。
【0041】
VDBコントローラ430が、ダウンロード可能なテストベンチ及び関連するテストベクトルの画像を(JTAGバス414を介して)受け取るように配される。選択されたTDLファイルにストアされた、ダウンロード可能なテストベンチ及び関連するテストベクトルの受け取った画像は、(書き込みバス432を介して)メモリ440のコンテンツ(TDL画像444など)としてストアされる。メモリ440のコンテンツは、読み出しバス442を介してFPGA450により読み出されるように配される。FPGA450は(例えば、VDBコントローラ430の制御下で)、ダウンロード可能なテストベンチの受け取った画像を読み、ダウンロードされたテストベンチ454としてインスタンス化する(instantiate)ように配される。ダウンロード可能なテストベンチがダウンロードされたテストベンチ454としてインスタンス化される(プログラミングされるなど)場合、発振器Y7及びクロック生成器452が、ダウンロードされたテストベンチ454を駆動及びクロックするために一つ又は複数のクロックを提供するように配される。
【0042】
FPGA450においてインスタンス化されたダウンロードされたテストベンチ454は、駆動/ストローブピンバス456及びJTAGバス458を介してテスト対象設計(DUT)460と通信するように配される。一例において、駆動/ストローブピンバス456は、別のバスマスターと共用されない。JTAGバス458が、JTAGマルチプレクサ(MUX)462の第1の入力に結合される。ダウンロードされたテストベンチ454がテストマスターモード(例えばDUT460に対して)にあるとき、JTAGマルチプレクサ462は、JTAGバス458を、共用テストバス466を介してDUT460のJTAGバス設計ピンに結合するように配される。共用テストバス466は、テストコントローラバス(駆動/ストローブピンバス456とは対照的に)であり、例えば、テスト、又はDUT上のJTAGスキャンチェーンからの読み出しを開始するために有用である。一例において、共用テストバスは、駆動/ストローブピンバス456が結合されるDUT上のピンのセットとは異なる、DUTのピンの異なるセットに結合される。
【0043】
ダウンロードされたテストベンチ454は、TDL画像444からテストベクトルにアクセスするように、及び、例えばデザインフォーテストモードに入る際、テストの間TDL画像の時間スライスを設計ピンに順次適用するように配される。例えば、テストベクトルの各スライス(各「ロー」又は「ライン」など)が、クロック生成器452から受信したクロックに従ってプログラムカウンタ446をインクリメントすることによって順次読み出され得る。プログラムカウンタの値は、TDL画像444のメモリコンテンツをアドレス指定する目的でアドレスバス448上でアサートされるアドレスを形成するために有用である。
【0044】
PC470は、JTAGバス464を介してテスト対象設計(DUT)460と通信するように配される。JTAGバス458が、JTAGマルチプレクサ(MUX)462の第2の入力に結合される。PC470がテストマスターモード(DUT460に対してなど)にあるとき、JTAGマルチプレクサ462は、JTAGバス464を、共用テストバス466を介してDUT460のJTAGバス設計ピンに結合するように配される。例えば、PC470上で実行するCCS111によるDUT460(及び共用テストバス466)の「マスターシップ(mastership)」は、CCS111に、TDL画像444からTDLを実施するように配されるテストフローを観察及び制御させ得る。
【0045】
従来の解決策とは対照的に、例えば、2つのテストマスターを代わる代わる用いて、TDL画像444のコードの実行フローのフル制御が許可される。種々の実施例において、テストマスターは、例えば、PC410及びPC470が同じ又は異なる物理(又は仮想)デバイスであり得るように、同じ又は異なるデバイスであり得る(又は同じ又は異なるデバイスから派生し得る)。例示の実施例において、TDL画像444のコードの実行フローの制御が、メモリ440にロードされたTDL画像444の実行フローにわたるフル制御を提供するためにVDB上の設計に対するPC470接続性のCCS111を確立することによって達成される。
【0046】
TDL画像444のコードの実行フローのフル制御が、ダウンロードされたテストベンチ454からPC470のCCS111にテストマスター制御を移動させることによって達成され得る。例えば、ダウンロードされたテストベンチ454は、DUT460におけるTDL画像444のコードのロード及び実行にわたって、テストマスター(共用テストバス466を介してDUT460のJTAGピンを制御することによるなど)として作用するように配される。こういった実行が、TDL画像444における或るポイント(PC410のCCS111により事前に設定された所定のブレークポイントなど)に達した後、ダウンロードされたテストベンチ454は、PC470のCCS111が新たなテストマスターとなるように、テストの制御をPC470のCCS111に移動させるように配される。ダウンロードされたテストベンチ454とPC470のCCS111との間のテストバスのマスターシップの移動を促進するように、アービタ(シリコン基板における論理ゲートとして具現化されるメカニズムなど)472が実装される。CCS111がテストバスのマスターシップの必要性をもはや有さないとき、ダウンロードされたテストベンチは、テストバスの現在のマスターとして作用することにより、テストすること(再開すること、又は新たにロードされたテストシーケンスを実行することを含む)を再開し得る。
【0047】
アービタ472は、ダウンロードされたテストベンチ454及びPC470のCCS111のいずれが共用バス466のマスターとなるべきかを選択し得る。アービタ472は、リセット状態に応答して、コントローラ(VDBコントローラ430又はVDBデバッガ110など)から受信したコマンド、又はJTAGバス464の評価コンテンツ、DUTトグルド出力、及び/又はJTAGバス458のコンテンツのいずれが、共用バス466のマスターとなるべきかを選択し得る。
【0048】
図5は、本開示の例示の実施例に従った、テスト対象設計のための検証設計及びデバッグボードバスインタフェースの構成図である。検証設計及びデバッグボードFPGA336(及び/又はFPGA450)が、それぞれ、バス512及び522を介して入力制御論理(少なくとも部分的にハードウェアにおいて具現化されるなど)530を駆動するための、ベクトルメモリ510及び出力イネーブルメモリ(OEN)520を含む。ベクトルメモリ510及びOENメモリ520はVDB FPGA336上に存在するように示されているが、ベクトルメモリ510及びOENメモリ520のすべて又は幾つかの部分は、VDB FPGA336から離れて存在し得る(一方で、例えば、その場合でもVDB300上に存在する)。
【0049】
ベクトルメモリ510が、DUT550設計ピンの各々上に駆動されるべき値の各々をストアするように配される。ベクトルメモリ510はまた、例えば、SETR(予期されるレートでのピンの設定された値など)、RUNP(予め設定された値を反復することにより実行「パックされる」など)、及びEND(停止実行など)などの種々のTDL構成の実行を制御するための情報をストアするように配される。上述したように、テストベクトルにアクセスするためのアドレスを生成するためにプログラムカウンタ446が有用である。一実施例において、プログラムカウンタは、関連するメモリからテストベクトルをフェッチ及びパックするように、及びテストベクトルを予期されるレート(SETR構成など)で設計ピンに適用するように配される状態機械を含む。状態機械によりRUNP構成が生じると、RUNPカウントが満了するまで、予めパックされた値が設計ピンに駆動される。END構成が生じると、例えば、状態機械をリセット(又は変更する)FPGA336又は450の外で事象が起こるまで、予めパックされた値が駆動される。
【0050】
OENメモリ522は、テストベクトル(又はテストベクトルのグループ)のためのDUT設計ピン(又はピンのグループ)の状態の方向情報(出力及び/又は入力など)をストアするように配される。メモリストレージは、例えば、ベクトル毎の方向情報の1ワード(32ビットなど)を用いる方向情報を関連付けることにより、又はTDLベースのテストベクトルのライン毎(ロー毎など)に1ワードを用いることにより、最適化され得る。
【0051】
オペレーションにおいて、ダウンロードされたテストベンチ454は、例えば、TDL画像444に応答して方向情報を生成するように配される。ベクトルメモリ510においてテストベクトルが実行されているとき、TDLの特定のラインを選択するためのアドレスも、TDLの選択されたラインのための関連する方向情報をリトリーブするために用いられる。TDLの選択されたラインのためのリトリーブされた関連する方向情報は、一つ又は複数のトライステートバッファ540(分かり易くするため全てのバッファは示されていない)の状態を制御するために用いられる。例えば、方向情報はバス532を介して適用され、これが、バス534の選択されたコンテンツ(ビット又はワードなど)が、選択されイネーブルされたトライステートバッファ540により、コネクタJ1を介してDUT550に結合されるバス542上に出力されるか否かを判定する。
【0052】
本発明の特許請求の範囲内で、説明した例示の実施例に変形が成され得、多くの他の実施例が可能である。
図1
図2
図3
図4
図5