(57)【特許請求の範囲】
【請求項１】
デジタルプロセッサのテスト方法であって、前記デジタルプロセッサはメモリ部と、外部からシリアル接続されるテスト入力信号端子及びテスト出力信号端子を有するテストポートと、前記テストポートにシリアルに接続され内部バスを介してデジタルプロセッサにパラレルに接続されたデータレジスタ及び状態レジスタと、を有し、該方法は、
所定のイベントが生じるまで前記デジタルプロセッサでアプリケーションプログラムを実行し、
前記デジタルプロセッサで実行されるトレースモニタプログラムに従い、前記所定のイベントに応答して前記メモリ部に画定したトレース領域に、前記内部バスを介してデバック対象である前記デジタルプロセッサ内部のデータアイテムを格納し、
前記内部バスを介して前記データアイテムを前記データレジスタに格納し、少なくとも１ビットからなる通知信号を前記状態レジスタへ格納し、
前記テストポートを介して前記テスト出力信号端子に前記状態レジスタの前記通知信号をシリアルに読み出し、
前記テストポートを介して前記テスト出力信号端子に前記データレジスタの値をシリアルに読み出し、
前記トレースモニタプログラムの実行終了後、前記デジタルプロセッサでアプリケーションプログラムの実行を継続して行う、
ステップを有するデジタルプロセッサのテスト方法。
【請求項２】
前記データレジスタが、前記デジタルプロセッサのトラップのためのブレイクポイントイベントを格納するレジスタを含み、前記テスト入力信号端子にブレイクポイントイベントを示すデータを受け取り、前記テストポートを介して前記レジスタにシリアルに設定するステップをさらに有する、請求項１に記載のデジタルプロセッサのテスト方法。
【請求項３】
前記デジタルプロセッサが、前記テストポートにシリアルに接続され、前記ブレイクポイントイベントのマスクデータを格納するマスクレジスタを含み、前記テスト入力信号端子に前記マスクデータを受け取り、前記テストポートを介して前記マスクレジスタにシリアルに設定するステップをさらに有する、請求項２に記載のデジタルプロセッサのテスト方法。
【請求項４】
前記通知信号は前記データレジスタに前記データアイテムが格納されたことを外部デバッガーへ通知する信号である、請求項１乃至３のいずれか一つに記載のデジタルプロセッサのテスト方法。
【請求項５】
前記所定のイベントが、前記デジタルプロセッサが実行するプログラムのアドレスが一定値になったことである請求項１乃至４のいずれか一つに記載のデジタルプロセッサのテスト方法。
【請求項６】
前記所定のイベントが、前記デジタルプロセッサがアクセスするデータが一定値になったことである請求項１乃至4のいずれか一つに記載のデジタルプロセッサのテスト方法。
【請求項７】
前記トレース領域に前記データアイテムを格納するステップを、前記トレース領域が満杯になるまで行う請求項１乃至６のいずれか一つに記載のデジタルプロセッサのテスト方法。
【請求項８】
（ア）アプリケーションプログラム及びトレースモニタプログラムを実行するデジタルプロセッサと、
（イ）メモリ部と、
（ウ）前記トレースモニタプログラムにより前記メモリの所定の領域に定義されるトレース領域であって、前記トレースモニタプログラムに従い、デバッグ対象である前記デジタルプロセッサ内部のデータアイテムが格納される、前記トレース領域と、
（エ）シリアル接続のためのテスト入力信号端子及びテスト出力信号端子を有するテストポートと、
（オ）前記テストポートにシリアルに接続され、内部バスを介して前記デジタルプロセッサにパラレルに接続されており、前記トレース領域に格納された前記データアイテムを格納するデータレジスタと、
（カ）前記テストポートにシリアルに接続され、内部バスを介して前記デジタルプロセッサにパラレルに接続されており、少なくとも１ビットからなる通知信号を格納する状態レジスタと、
を有する半導体装置。
【請求項９】
前記データレジスタが、前記データアイテムに加え前記デジタルプロセッサのトラップのためのブレイクポイントイベントを格納するレジスタを含む、請求項８に記載の半導体装置。
【請求項１０】
前記テストポートにシリアルに接続され、前記ブレイクポイントイベントのマスクデータを格納するマスクレジスタを含む、請求項９に記載の半導体装置。
【請求項１１】
前記通知信号は前記データレジスタに前記データアイテムが格納されたことを外部デバッガーへ通知する信号である、請求項８乃至１０のいずれか一つに記載の半導体装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は電子データ処理および、エミュレーション、およびテスト容易化装置およびシステム、およびそれらの製造および動作方法に関する。
【０００２】
【従来の技術】
最先端ウェーハリソグラフィおよび表面実装パッケージング技術ではシリコンおよび印刷回路板の両方の電子設計レベルにおいてますます複雑な機能が集積されつつある。より緻密な設計および配線ピッチの縮小の結果残念ながら物理的アクセスが低下してきている。完成品がテストおよびデバッグ中であっても制御容易性かつ観察容易性であるような、テスト容易化設計が必要とされている。製品を出荷する前の最終テスト中にいかなる製造上の欠陥も検出できることが好ましい。自動テスト装置により製品をテストできるように、論理設計フェーズにおいてテスト容易性を考慮しなければこの基本的な要求を複雑な設計について達成するのは困難である。
【０００３】
機能性および製造上の欠陥テストの他に、アプリケーションソフトウェアの開発にはシステムやサブシステムの設計フェーズにおいて同レベルのシミュレーション、観察容易性および制御容易性が必要である。設計のエミュレーションフェーズではＩＣ（集積回路）、もしくはＩＣのセット、がソフトウェアプログラムとリンクさせた時に最終装置もしくはアプリケーションにおいて正しく機能することを保証しなければならない。
【０００４】
自動車産業、電気通信、防衛システム、および生活支援システムにおけるＩＣの使用が増加するにつれ、徹底的なテストおよび広範なリアルタイムデバッグを行うことが需要になってきている。
【０００５】
例えば、ＩＣの設計の進展には内部可視性および制御の低下、故障検出率および状態トグル能力の低下、テスト開発および検証問題の増加、設計シミュレーションの一層の複雑化およびＣＡＤ（コンピュータ支援設計）ツールの間断ないコスト増加が伴う。ボードの設計では副作用としてレジスタの可視性および制御の低下、設計の検証におけるデバッグおよびシミュレーションの複雑化、１パッケージ内に多くの回路をパッケージして物理的アクセスが失われることによる従来のエミュレーションのロス、ボード上の配線の一層の複雑化、設計ツールのコスト増大、混合モードパッケージング、および製造容易性設計が含まれる。アプリケーションの開発では、状態の可視性低下、高速エミュレーションの困難性、スケーリングされた時間シミュレーション、デバッグの一層の複雑化、およびエミュレータのコスト増大等のいくつかの副作用がある。製造側の副作用としては可視性および制御の低下、テストベクトルおよびモデルの複雑化、テストの複雑化、混合モードパッケージング、７桁の範囲にも達する自動テスト装置の間断ないコスト増大、および厳しい公差が含まれる。
【０００６】
【発明が解決しようとする課題】
したがって、改良型エミュレーション、シミュレーションおよび試験容易性アーキテクチュアおよび物理的プロービングや特殊なテスト機能を要することなく可視性および制御が得られる方法を提供することが本発明の目的である。
【０００７】
改良型エミュレーション、シミュレーションおよび試験容易性アーキテクチュアおよびアプリケーション開発時間を短縮して新製品を市場へ出すまでの時間を短縮する方法を提供することが本発明のもう１つの目的である。
【０００８】
【課題を解決するための手段】
本発明に従って、メモリ部、テストポート、およびメッセージレジスタを有するデジタルプロセッサのテスト方法が提供される。本方法はメモリ部のエリアをトレース領域として画定し、トリガイベントが生じるまでデジタルプロセッサにおいてアプリケーションプログラムを実行し、デジタルプロセッサがアプリケーションプログラムの実行を継続している間にトリガに応答してトレース領域内の位置へデータアイテムを格納し、デジタルプロセッサがアプリケーションプログラムの実行を継続している間にテストポートを介してテストホストプロセッサへデータアイテムを転送するステップからなっている。
【０００９】
本発明の別の局面によりメモリ部、テストポート、およびメッセージレジスタを有するデジタルプロセッサのテスト方法が提供されそれは、（１）メモリ部のエリアをトレース領域として画定するステップと、（２）トリガイベントが生じるまでデジタルプロセッサにおいてアプリケーションプログラムを実行するステップと、（３）デジタルプロセッサがアプリケーションプログラムの実行を継続している間にトリガイベントに応答してトレース領域内の位置へデータアイテムを格納するステップであって、トレース領域が満杯になるまでステップ（２）および（３）を繰り返し、（４）デジタルプロセッサがアプリケーションプログラムの実行を継続している間にデータプロセッサの制御下で実行される命令によりトレース領域からメッセージ通過レジスタへデータアイテムを移すことによりテストポートを介してテストホストプロセッサへ少なくとも１つのデータアイテムを転送するステップとを含んでいる。
【００１０】
本発明のもう１つの局面ではトレース領域内に少なくとも１つのデータアイテムがある場合にテストポートを介してデジタルプロセッサからテストホストプロセッサへ通知信号が送られテストホストプロセッサがデジタルプロセッサからデータアイテムを受け入れる準備が完了していることを示すハンドシェーク信号がテストポートを介してテストホストプロセッサからデジタルプロセッサへ送られるのを待機する。
【００１１】
【発明の実施の形態】
さまざまな創意に富んだ電子アーキテクチュア、デバイス、システムおよび方法が同じ譲受人の１９９１年、１０月１０日に出願された特許出願第３４７，５９６号（米国特許第５，０７２，４１８号）および１９９４年、７月１２日に出願された特許出願第８４，７８７号（米国特許第５，３２９，４７１号）の詳細説明および図面に広範に記載されている。これらの同じ譲受人の出願は参照としてここに組み入れられている。明瞭な検討を行うために本出願および前記同じ譲受人の出願において対応する番号は対応する部品を表している。
【００１２】
同じ譲受人の出願に記載されさらにここにも記載されるプロセッサデバイス（ＣＰＵ）１１は図１に示す開発ツールに対して複雑なインターフェイスを行うようにされている。ハードウェアデザインツールにはシリアルライン１１０３を介してデバイス１１を保持する回路板１０４３とインターフェイスされる（テストホスト１１０１とも呼ばれる）拡張開発システム１１０１が含まれている。回路板１０４３はアプリケーションホストコンピュータ１０４４と作動できることが有利である。開発ツールにはアナログインターフェイスボードＡＩＢ１１１３に接続された評価モジュール１１１１も設けられている。
【００１３】
図１において、ソフトウェア開発システムＳＷＤＳはＣコンピュータ言語によるアプリケーションプログラムに対するソースコード１１２１のユーザエントリを提供する。ソースコードはＣコンパイラ１１２３によりアセンブリコード１１２５へコンパイルされる。アセンブラ１１２７およびリンカ１１２９によりアセンブルされリンクされた後で、得られるオブジェクトコードプログラムはボード１０４３へダウンロードされそこでデジタルプロセッサ１１により実行される。
【００１４】
プログラムはダウンロードされて実行されると、デバッグを必要とすることがある。実行される時にプログラムのさまざまなアスペクトをトレースすることはプログラムをデバッグする周知の技術である。しかしながら、デジタルプロセッサ１１の内部アドレスおよびデータバスへのアクセスの制限によりトレースが不可能となることがある。本発明の特徴はプロセッサ１１内のメモリエリアをトレース領域として指定することができ次にトリガイベントに応答してさまざまなデータアイテムをトレース領域内へ転送できることである。トレース領域の内容はアプリケーションプログラムの実行を継続できるようにシリアルライン１１０３を介してテストホストプロセッサ１１０１へ転送することができる。トレースデータはアプリケーションプログラムの動作を妨げることなくテストホスト１１０１において調べることができる。これによりある完了点に達するまで有利にプログラム実行を進めることができ、同時にトレース情報を集めてプログラム実行の進行を理解するためのデバッグ活動を支援することができる。
【００１５】
次にソフトウェア開発システム、テストホスト１１０１およびプロセッサ１１のインタラクションについて詳細に説明する。図１に戻って、Ｃコンパイラ１１２３は、例えば、標準ＡＮＳＩ  Ｃ言語を完全に実施する最適化コンパイラである。コンパイラ１１２３はＣで書かれたプログラムを受け入れてアセンブリ言語ソースコードを作り、次にそれはアセンブラ１１２７によりオブジェクトコードへ変換される。この高水準言語コンパイラ１１２３によりアセンブリ言語で書かれたタイムクリティカルルーチンをＣプログラム内から呼び出すことができる。逆に、アセンブリルーチンはＣ関数を呼び出すことができる。コンパイラの出力は適切に編集された後でアセンブリおよびリンクされてコードの性能をさらに最適化することができる。コンパイラ１１２３はＣソースコードへのアセンブリ言語コードの挿入を支援して、高水準およびアセンブリ言語の相対的割合が所与のアプリケーションのニーズに従って調整されるようにする。
【００１６】
コード１１２５はアセンブラ１１２７により再配置可能オブジェクトコードへアセンブルされる。リンカ１１２９は非再配置可能マシンコードもしくはリンクされたオブジェクトコードを作り出しそれは開発システムを介してデバイス１１へダウンロードされる。
【００１７】
アセンブラ１１２７およびリンカ１１２９によりアセンブリ言語ファイルを実行可能なオブジェクトコードへ変換するソフトウェア開発ツールが構成される。重要な特徴はマクロケーパビリティおよびライブラリ関数、条件付アセンブリ、再配置可能モジュール、完全エラー診断、および記号テーブルおよび相互参照である。次に特定のソフトウェア開発ニーズに向けられた４つのプログラムについて検討する。
【００１８】
（１）アセンブラ１１２７はアセンブリ言語ソースファイルを機械語オブジェクトファイルへ変換する。ソースファイルは命令、アセンブラディレクティブおよびマクロディレクティブを含んでいる。アセンブラディレクティブはソースリスティングフォーマット、データアライメントおよびセクション内容等のアセンブリプロセスのさまざまなアスペクトをコントロールするのに使用される。
【００１９】
（２）リンカ１１２９はオブジェクトファイルを１つの実行可能なオブジェクトモジュールと結合する。リンカは実行可能なモジュールを生成すると、再配置を実施して外部参照を取り除く。リンカはアセンブラにより生成された再配置可能なオブジェクトファイルを入力として受け入れる。それはアーカイブライブラリメンバも受け入れて前のリンカ実行により生成されたモジュールを出力する。リンカディレクティブによりファイルセクションや記号を組み合わせてすなわち結合して大域記号をアドレスおよび定義もしくは再定義することができる。
【００２０】
（３）アーカイブにより１群のファイルの集まりを１つのアーカイブファイルとすることができる。例えば、いくつかのマクロを適切に集めてマクロライブラリとすることができる。アセンブラはライブラリを探索しソースコード１１２５によりマクロとして呼び出されたメンバを使用する。またアーカイブは１群のオブジェクトファイルを適切に集めてリンキング中に外部参照を取り除くファイル等のオブジェクトライブラリとする。
【００２１】
（４）オブジェクトフォーマットコンバータによりオブジェクトファイルは、ＴＩ−ＴＡＧフォーマット等のいくつかのＥＰＲＯＭプログラマフォーマットの中の任意の１つへ変換される。次に変換されたファイルはＥＰＲＯＭプログラマへダウンロードされそのように確立されたＥＰＲＯＭコードがシステム１０４３内のデバイス１１ターゲットチップで実行されるようにされる。
【００２２】
本発明に従って、例えば、ユーザ定義トレースコードをＣもしくはアセンブリ言語で書き込むことができる。さまざまなトレースルーチンもアプリケーションプログラム内へ容易に組み込めるマクロとして取り込むこともできる。トレースコードはトリガイベントへ応答してプログラムカウンタアドレス、メモリアドレス、もしくはレジスタ内容等のデータアイテムを例えば内部メモリのトレース領域として指定されたエリアへ転送することができる。
【００２３】
シミュレータ１１３１はコスト効果的なソフトウェア開発のためのターゲットチップの動作および非リアルタイムプログラム検証をシミュレートするソフトウェアプログラムを実行する。シミュレータは全ターゲットチップ命令セットをシミュレートしてＤＭＡ、タイマおよびターゲットチップに含まれる場合のシリアルポートを含む重要な周辺特徴をシミュレートする。コマンドエントリはメニユー駆動キーストローク（メニューモード）もしくはバッチファイル（ラインモード）から受け入れられる。全スクリーンモードに対してヘルプメニューが与えられる。その標準インターフェイスはユーザカスタマイズすることができる。シミュレーションパラメータはファイルから迅速に格納／検索され個別セッションの準備を容易にする。逆アセンブリによりソースステートメントの編集および再アセンブリを行うことができる。メモリ内のデータは１６進３２ビット値として表示されソースコードと別々にもしくは同時にアセンブルされる。
【００２４】
シミュレータ１１３１実行モードには１）単一／多数命令カウント、２）単一／多数サイクルカウント、３）Ｕｎｔｉｌ  Ｃｏｎｄｉｔｉｏｎ  Ｉｓ  Ｍｅｔ、４）  Ｗｈｉｌｅ  Ｃｏｎｄｉｔｉｏｎ  Ｅｘｉｓｔ、５）Ｆｏｒ  ＳｅｔＬｏｏｐ  Ｃｏｕｔおよび６）Ｕｎｒｅｓｔｒｉｃｔｅｄ  Ｒｕｎ  ｗｉｔｈＨａｌｔ  ｂｙ  Ｋｅｙ  Ｉｎｐｕｔが含まれる。これらの式は容易に定義される。トレース実行の場合、ディスプレイ選択には１）指示された式の値、２）キャッシュレジスタ、および３）コードの容易な最適化のための命令パイプラインが含まれる。ブレークポイント条件にはＡｄｄｒｅｓｓ  Ｒｅａｄ，Ａｄｄｒｅｓｓ  Ｗｒｉｒｅ，Ａｄｄｒｅｓｓ  Ｒｅａｄ  ｏｒ  Ｗｒｉｔｅ，Ａｄｄｒｅｓｓ  Ｅｘｅｃｕｔｅ，およびＥｘｐｒｅｓｓｉｏｎ  Ｖａｌｉｄが含まれる。シミュレータ１１３１はキャッシュ利用法をシミュレートしサイクルカウンティングを行う。例えば、サイクルカウンティングではシングルステップモードもしくはすなわち実行モードのクロックサイクル数が表示される。外部メモリは正確なサイクルカウンティングを行うための待機状態により適切に構成される。
【００２５】
シミュレータ１１３１はアセンブラ１１２７およびリンカ１１２９により作られるオブジェクトコードを受け入れる。入力および出力ファイルにはプロセッサに接続されたＩ／ＯデバイスをシミュレートするＩ／Ｏ命令のポートアドレスが適切に関連している。プログラム実行を開始する前に、任意のブレークポイントが設定されトレースフォーマットが定義される。
【００２６】
シミュレータ１１３１によるプログラム実行中に、各命令がシミュレータ１１３１により解釈されると内部レジスタおよびシミュレートされたターゲットチップのメモリが修正される。ブレークポイントやエラーに出会ったり実行の停止時には実行が保留される。プログラム実行が保留されると、内部レジスタおよびプログラムメモリとデータメモリの両方を調べて修正することができる。トレースメモリも表示することができる。シミュレーションセッションのレコードをジャーナルファイル内に維持し再実行して別のシミュレーションセッション中に同じマシン状態を再び得ることができる。
【００２７】
シミュレータ１１３１によりハードウェアを要求することなくターゲットチップの状態を検証かつ監視することができる。シミュレーション速度はオペレーティングシステムおよびシミュレータ１１３１のために選定されたハードウェアに応じて数百もしくは数千命令／秒程度である。ｓｔａｔｅ−ａｃｃｕｒａｔｅシミュレーションは１−２命令／秒の低速とすることができる。高いリアルタイムファンクショナルクロックレートのエミュレーションはシミュレータ１１３１ではなく開発システム１１０１により実施される。
【００２８】
シミュレータ１１３１はデバイスだけでなくボード１０４３上のその周辺装置についても例えばファイルＩ／Ｏを介して完全なコンピュータシミュレーションを行う。
【００２９】
拡張開発システム１１０１によりシステム設計の全速、インサーキットエミュレーションおよび広く入手できるパーソナルコンピュータシステムのハードウェアおよびソフトウェアデバッグが提供される。開発ツールは使い易い最終製品に対するシステムコンセプトにより技術的支援を行いアプリケーションシステムの開発時間およびコストを著しく低減するのに必要なツールを設計者へ提供する。
【００３０】
本発明の利点は、内部バスを開発システムに直接利用できない場合でも、ソフトウェアシミュレートトレースと同様な情報を提供する開発システム１１０１においてユーザ定義トレーシングを実施できることである。
【００３１】
図２に拡張開発システム１１０１により提供されるエミュレーション環境をより詳細に示す。ＩＥＥＥ  ＪＴＡＧ標準に適合するコントローラカード１１４１がエミュレーションホストコンピュータ１１０１に含まれている。ＪＴＡＧはＩＥＥＥ文献１１４９．１，１１４９．３および１１４９．３に説明されている。コントローラカード１１４１はシリアルライン１１０３を介して図２のＰＣボード１０４３およびＤＳＰデバイス１１と連絡されている。システム１０４３はテキサスインスツルメンツスコープ（ＴＭ）試験容易性を有しテキサスインスツルメンツＭＰＳＤ（Ｍｏｄｕｌａｒ  Ｐｏｒｔ  Ｓｃａｎ  Ｄｅｓｉｎ）エミュレーションと噛み合わされて開発、製造および現地試験を含めた完全な解決策を提供する。発明の手法はデジタル信号プロセッサ（ＤＳＰ），グラフィック信号プロセッサ（ＧＳＰ），メモリ（ＭＥＭ），プログラマブルアレイ論理（ＰＡＬ），特定用途集積回路（ＡＳＩＣ），および汎用論理（ＧＰＬ）汎用マイクロコンピュータおよびマイクロプロセッサ、およびテストもしくはコード開発を必要とする任意のデバイスに応用できる。
【００３２】
図２のホストコンピュータ１１０１はプリンタ１１４７、ハードディスク１１４５、および電話線に接続されて現地試験や他の手順の遠隔メインフレームへアップロードされる電気通信モデム１１４３を含む周辺装置を有している。ホストコンピュータ１１０１のバス１１４８の周辺ケーパビリティはエミュレーションには利用できないが、シリアルライン１１０３に沿ったこれらの周辺装置へのアプリケーションシステム１０４３によるアクセスも提供する。したがってホストコンピュータ１１０１はエミュレーションホストとしてシステム１０４３を利用できるだけでなくＡＰ（ａｔｔａｃｈｅｄ  ｐｒｐｃｅｓｓｏｒ）自体および通信Ｉ／Ｏポートとして利用することができかつシステム１０４３が常時は利用できないが一時的に必要とする他の周辺ケーパビリティを利用することができる。
【００３３】
図３にデバイス独立エミュレータソフトウェアがウィンド駆動ユーザインターフェイスおよびテスト実行プログラムを有するコンピュータ１１０１のエミュレーションおよびシミュレーションソフトウェア構成を示す。
【００３４】
ボード１０４３上の各デバイスに対する特定デバイス構成ファイルが提供される。例えば、ＤＳＰ構成ファイル、ＧＳＰ（ｇｒａｐｈｉｃ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒ）構成、プログラマブルアレイ論理（ＰＡＬ）、ＡＳＩＣファイルおよびＧＰＬレジスタファイルがある。
【００３５】
図２および図３のエミュレーションハードウェアおよびソフトウェアによりボード１０４３上のターゲットチップに全速インサーキットエミュレーションを実施するのに必要な全機能を提供するユーザフレンドリな、パーソナルコンピュータもしくはワークステーションベース開発システムが提供される。例えば、ＤＳＰ１１は１９８７年３月１３日に出願され１９９０年３月２７日に発行され参照としてここに組み入れられている同じ譲受人の出願第０２５，４１７号（米国特許第４，９１２，６３６号）に開示されているテキサスインスツルメンツ３２０シリーズデジタル信号プロセッサ、もしくは参照としてここに組み入れられている米国特許第５，０７２，４１８号に開示されている３２０Ｃ５０デジタル信号プロセッサとするのが適切である。代表的なグラフィック信号プロセッサはテキサスインスツルメンツ３４０２０である。
【００３６】
図２のコントローラカード１１４１付きホストコンピュータ１１０１および図３のソフトウェアで構成されるエミュレータによりユーザはソフトウェアおよびハードウェアの開発を行うことができ、ソフトウェアおよびハードウェアをターゲットシステムと一体化することができる。エミュレーションインターフェイスによりターゲットチップの各メモリ位置およびレジスタに対するコントロールおよびアクセスが提供されデバイスアーキテクチュアはＡＰとして拡張される。
【００３７】
エミュレータコントローラカード１１４１により多ピンターゲットコネクタを介したユーザのターゲットシステム１０４３内のデバイス１１等の各ターゲットチップの全速実行および監視が行われる。１実施例では、ソフトウェアおよびハードウェアブレークポイント、ソフトウェアおよびハードウェアトレースおよびタイミング、およびシングルステップ実行が提供される。エミュレータは全デバイス１１レジスタをロードし、検査し、修正するケーパビリティを有している。プログラムデータおよびプログラムメモリはアップロードもしくはダウンロードすることができる。エミュレーションのためのホストコンピュータ１１０１のユーザインターフェイスは対応するターゲットチップに対するシミュレータ１１３１のユーザインターフェイスの窓をかけたユーザインターフェイスと同じとなるように設計された窓をかけたユーザインターフェイスである。エミュレータ１１０１はポータブルでありマルチ処理を行うように再接続することができる。エミュレータ１１０１は実行時間クロックサイクルのベンチマークをリアルタイムで提供する。
【００３８】
ターゲットシステムの全速実行および監視はマルチワイヤインターフェイスもしくは多ピンターゲットコネクタ内のスキャンパスを介して適切にコントロールされる。スキャンパスによりシステム１０４３内のターゲットチップがコントロールされ、全レジスタおよび関連する内部および外部メモリへのアクセスが提供される。
【００３９】
プログラム実行はターゲットシステム１０４３内のターゲットチップ（例えば、１１）で行われる。したがって、本実施例により提供されるインサーキットエミュレーションが無い場合に生じることがある、エミュレーション中のタイミング差は生じない。本実施例はチップ１１自体を利用する非侵入性システムとして有利にケーブル長および伝送問題を回避している。信号のローディング問題は回避され、人工的なメモリ制約は予防される。エミュレーション性能はエミュレートされるターゲットチップ自体の仕様と一致する。
【００４０】
ソフトウェアブレークポイントにより指定された命令アドレスにおいてプログラムの実行を停止することができる。ハードウェアブレークポイントもチップ上で有利に作動することができる。所与のブレークポイントに達すると、プログラムは実行を停止してユーザがメモリおよび状態レジスタを観察できるようにするか、もしくはブレークポイントはより複雑な状態に含まれ、それが満たされると適切な停止モードが実行される。この点において、ユーザは僅か１つのコマンドによりターゲットチップもしくはシステムの状態をディスプレイすることができる。
【００４１】
本発明の利点はユーザが定義可能なソフトウェアルーチンがブレークポイントイベントへ応答し、関連情報をトレース領域へ転送し、アプリケーションプログラムのオペレーションに僅かな影響しか及ぼすことなくアプリケーションプログラムの実行を継続できることである。
【００４２】
ソフトウェアトレースおよびハードウェアプログラムカウンタートレースによりユーザはブレークポイントに達した時にターゲットチップ１１の状態を調べることができる。この情報はファイル内のコマンド上に適切に保存されて将来解析される。ソフトウェアタイミングによりユーザはブレークポイント間のクロックサイクルを追跡してタイムクリティカルコードをベンチマークすることができる。
【００４３】
シングルステップ実行により一時に１命令ずつプログラムを進める能力がユーザに与えられる。各命令の後で、レジスタおよびＣＰＵの状態が表示される。これによりソフトウェアデバッグ中にフレキシビリティが増大し開発時間の短縮を助ける。
【００４４】
オブジェクトコードは指令によりインターフェイスを介して任意の有効なプログラムメモリ位置もしくはデータメモリ位置へダウンロードされる。実施例では、１Ｋバイトのオブジェクトプログラムをダウンロードするのに１００ミリ秒程度かかる。プログラムをシングルステッピングしながらレジスタを検査して修正することにより、ユーザはプログラムコードやパラメータを調べて修正することができる。
【００４５】
エミュレータ１１０１に対する窓かけされたユーザインターフェイスは適切にシミュレータ１１３１のそれと同一とされ、シミュレータベース開発からエミュレータベース開発へまっすぐに移行することができる。ユーザフレンドリな画面によりニーモニックなプログラムコードおよび等価１６進コードがディスプレイされる。拡張された精密レジスタ、ＣＰＵ状態およびメモリ位置に対する窓かけされたディスプレイが適切に提供される。
【００４６】
第１の画面オプションは画面の頂部にディスプレイされたコマンドライン、特殊ファンクションキーの機能、および市販のキーボードのＦ１キーを使用して個別にアクセスされる４つの状態ウィンドウを含む１次画面である。ウィンドウにはソースコードウィンドウ、補助ディスプレイウィンドウ、ＣＰＵ状態ウィンドウ、および拡張精密レジスタウィンドウが含まれる。ウィンドウの内容はユーザの検査および修正のためにアクセス可能とされる。
【００４７】
コマンドはＭＥＮＵモードもしくはＬＩＮＥモードで入力される。ＭＥＮＵモードでは、画面頂部のメニューによりユーザは１つのコマンドを入力しながら利用可能な各オプションを調べることができる。全コマンドが入力されるまでさらにメニューがディスプレイされる。ＬＩＮＥモードによりユーザは全コマンド式を入力することができる。
【００４８】
図２のエミュレータカード１１４１はＩＢＭ  ＰＣコンパチブルコンピュータをホストコンピュータ１１０１として使用する場合にそのスロットを適切に占有する。カード１１４１は取り外され必要に応じて別のＰＣ（機能性の等価なパーソナルコンピュータ）へ転送され、エミュレータ可搬性が得られる。シミュレーションについては、ＥＰＲＯＭ（ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ），ＳＲＡＭ（ｓｔａｔｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ），ＤＲＡＭ（ｄｙｎａｍｉｃ  ｒａｎｄｏｍａｃｃｅｓｓ  ｍｅｍｏｒｙ），オンチップメモリおよび周辺装置を含むことができるコントローラカード１１４１のメモリマップを、待機状態およびアクセス特権を含む、ターゲットシステム１０４３の実際の環境を反映するように設計者が構成することができる。このようにして、カード１１４１およびホストコンピュータ１１０１は特別な開発状況においてボード１０４３にはない周辺装置をシミュレートすることができる。
【００４９】
１実施例では、いくつかの各アプリケーションボード間で次々にライン１１０３を延長し、リアルタイムエミュレーションを維持し各ターゲットチップ上に情報を保存することによりマルチプロセッシングアプリケーションがエミュレートされる。
【００５０】
開発システム１１４１は１）エミュレーションモードおよび２）アルゴリズム開発および検証モードの２つのモードで作動する。アルゴリズム開発／検証モードでは、ターゲットチップ１１はターゲットシステムが完了する前にそのソフトウェアを全速でデバッグする。これを達成するために、コードがボード１０４３上のメモリへダウンロードされ不完全ターゲットシステムの替わりに使用されるアプリケーションボードのインターフェイスを介して全速で実行される。適切なアプリケーションボードはＤＳＰ１１、１次バス上の１６Ｋｘ３２ビットの全速（ゼロ待機状態）ＳＲＡＭ、延長バス上の８Ｋｘ３２ビット全速（ゼロ待機状態）ＳＲＡＭの選択可能な２バンク、および５１２Ｋｘ３２ビットＤＲＡＭが含まれている。十分なＳＲＡＭにより、ユーザはリアルタイムエミュレーションケーパビリティおよびさまざまなアルゴリズムに対するメモリ格納フレキシビリティを有する。ＳＲＡＭ内のゼロ待機状態ケーパビリティによりリアルタイムのメモリリードライトが可能となる。
【００５１】
アルゴリズム開発およびコード検証についてシステムはシングルステップを行ってブレークポイントに達するまで実行することができる。本発明に従って、アプリケーションプログラムはブレークポイントに達してトレース領域へ情報が転送された後でも実行し続けることができる。アルゴリズム検証ではアルゴリズムにデータを通してその機能が検証される。バースト実行、Ｉ／Ｏその他の機能を利用することができる。
【００５２】
ページモードＤＲＡＭによりバルク記憶性能が改善される。アプリケーションボードの１例では３種のＤＲＡＭサイクルが使用される。それらは１語リード、１語ライトおよびページモードでありそれぞれアクセス当たり４つ，２つ，および１つの待機状態を有している。デバイス１１が同じメモリページ（２５６語）で２つ以上のバック−ツウ−バックリードサイクルを実施する時にページモードリードサイクルが自動的に呼び出される。ページモードの利用によりアプリケーションボード１０４３上のアプリケーションボード１０４３ＤＲＡＭにアクセスする時の待機状態が減少する。
【００５３】
図２においてテストおよび開発支援システムのアプリケーションシステムリソースへのアクセスはコントローラカード１１４１上のシリアルスキャンバスマスタもしくはスキャンインターフェイスを介してなされ、それについては後記する。複雑なエミュレーションおよびシミュレーション機能がプリミティブにより組み立てられる。プリミティブはコントローラカード１１４１を介して利用できる（コマンドや命令のような）コントロールオペレーションを定義するビットのセットである。
【００５４】
デバイス１１の機能性には２つのシリアルインプリメンテーションの実施例の各々によりアクセスすることができる。第１のシリアルインプリメンテーションの実施例は図４にＭＰＳＤモジュール１２１３として示され米国特許第４，８６０，２９０号に開示され参照としてここに組み入れられているテキサスインスツルメンツ社製Ｍｏｄｕｌａｒ  Ｐｏｒｔ  Ｓｃａｎ  Ｄｅｓｉｇｎ（ＭＰＳＤ）である。“Ｓ”で示すシフトレジスタラッチ（ＳＲＬ）が各モジュールに対してシリアルスキャンパス上に一筋のビーズのようにデバイス１１中に分散されて“重要な”全てのレジスタへのアクセスを提供する。
【００５５】
第２の方法では図４のＳＣＯＰＥインターフェイス１１５０においてＭＰＳＤ技術と組み合わせたＳＣＯＰＥ（テキサスインスツルメンツＳｙｓｔｅｍ  Ｃｏｎｔｒｏｌｌａｂｉｌｉｔｙ，Ｏｂｓｅｒｖａｂｉｌｉｔｙ，およびＰａｒｔｉｔｉｏｎ  Ｅｎｖｉｒｏｎｍｅｎｔ）伝送媒体が使用される。
【００５６】
図４においてデバイス１１は前記したようにオンチップＪＴＡＧインターフェイス１１４９も有している。スキャンインターフェイスは図２の線１１０３に接続されておりテストクロックＴＣＫ，モードセレクトＴＭＳ，およびテストデータ入力ＴＤＩ（スキャンイン）用入力、およびテストデータ出力ＴＤＯ（スキャンアウト）を有している。特殊エミュレーションアダプタ１２０３がデバイス１１のスキャンインターフェイス１１４９とファンクション回路１２１３のＭＰＳＤモジュール間に接続されている。さきざまな形式のエミュレーションアダプタ１２０３がハードウェア状態機械回路、アセンブリ言語、もしくはマイクロコード状態機械実施例を含んでいる。
【００５７】
エミュレーションを支援するために使用する場合のいくつかのインプリメンテーションの特性を表１に示す。
【表１】
0004126105.tif 000002
ＳＣＯＰＥ／ＭＰＳＤインプリメンテーションはＭＰＳＤおよびＳＣＯＰＥの強度を個別に利用してハイブリッドエミュレーション技術を作り出す。
【００５８】
図５にＰＣボード１０４３上のデバイス１１のような各チップ上に設けられる改良型ＳＣＯＰＥハードウェアのブロック図を示す。４本のピンＴＤＩ，ＴＭＳ，ＴＣＫおよびＴＤＯがシステムに連絡されている。ＴＭＳおよびＴＣＫは命令レジスタ１１５３および命令復号回路１１５５に接続されるＴＡＰコントローラ１１５１に連絡されている。
【００５９】
テストアクセスポート（ＴＡＰ）コントローラ１１５１は次に命令レジスタ（ＩＲ）１１５３および第１のマルチプレクサ１１７３に接続されている。命令レジスタはＴＤＩ線からシリアルスキャン信号を受信してＭＵＸ１１７３へシリアルに出力することができる。ＭＵＸ１１７３はＴＡＰの制御下にあり命令レジスタもしくは他のＭＵＸ１１７１から出力信号をセレクトすることができる。
【００６０】
命令レジスタはバイパスレジスタ（ＢＲ）１１６７および１つ以上のバウンダリスキャンレジスタ（ＢＳＲ）１１６１もコントロールする。バイパスレジスタはＴＤＩ信号を受信してＭＵＸ１１７１へ出力する。ＭＵＸ１１７１は命令レジスタ１１５３の制御下にある。命令レジスタへロードされる命令に基づいて、ＭＵＸ１１７１はバイパスレジスタからのその入力もしくは１つ以上のＢＳＲ、あるいは内部デバイスレジスタスキャンからのその入力を出力する。各バウンダリスキャンレジスタはテストアクセスポートおよび命令レジスタを介してコントロールされる。
【００６１】
バウンダリスキャン構造は正規モードもしくはテストモードで作動する。正規モード中は、ＩＣ論理の端子へ入る入力データはバウンダリスキャンレジスタを介してＩＣ論理へ通されＢＳＲによりなんら変化することなく正規出力端子へ送られる。テストモード中は、正規の入力データは中断され、テスト入力データが捕捉され、シフトされ、バウンダリスキャンレジスタ内で更新される。バウンダリスキャンレジスタは２個のラッチを含み、第１のラッチはＴＤＩからのデータを受信してシフトし第２のラッチは出力データを保持する。第２のラッチは第１のラッチから第２のラッチへデータを転送するように選択的に作動する。
【００６２】
一般的に、図５において、シリアル情報はエミュレーションコンピュータ１１０１からＳＣＯＰＥコントローラカード１１４１を介してピンＴＤＩへダウンロードされバウンダリスキャンレジスタ１１６１、デバイス識別レジスタ１１６３および特定設計テストデータレジスタ１１６５を含むいくつかのシフトレジスタの中の任意のシフトレジスタへ入る。バイパスレジスタ１１６７も設けられている。これらのシフトレジスタやシリアルスキャンレジスタは命令復号回路１１５５の制御下でＭＵＸ１１７１を介してセレクトされる。ＭＵＸ１１７１からのセレクトされた出力はＭＵＸ１１７３へ送られタップコントローラ１１５１の制御下で命令レジスタ１１５３もしくはＭＵＸ１１７１がＭＵＸ１１７３によりセレクトされるようになされる。ＪＴＡＧクロックＴＣＫおよびＭＵＸ１１７３出力はフリップフロップ１１７５へ送られそれはシリアルリターン回路１１７７に接続されておりそれは適切にイネーブルされてオンチップＪＴＡＧ回路のあらゆる部分からのシリアル出力を出力シリアルピンＴＤＯを介してコンピュータＪＴＡＧカード１１４１へ戻すすなわち返送する。
【００６３】
ＪＴＡＧ  ＴＡＰ（Ｔｅｓｔ  Ａｃｃｅｓｓ  Ｐｏｒｔ）コントローラの状態はテキサスインスツルメンツテクニカルジャーナル第５巻、第４号、１９８８年、第４８−５９頁のＬ．Ｗｈｅｔｓｅｌの論文“標準テストバスおよびバウンダリスキャンアーキテクチュア”および米国特許第５，０８４，８７４号および第４，８７２，１６９号に記載されている。
【００６４】
ここで認識され利用されている基本概念に戻って、エミュレーションには各回路周りに作られたハードウェアサポートが含まれ回路がランする時に並列に解析を行いながら回路内でオペレーションを実行できるようにされる。エミュレーションによりエミュレーションコンピュータ１１０１が回路を監視して起動および停止する時に回路を全速でリアルタイムでランさせることができる。ユーザはターゲットシステムの環境でソフトウェアを定義して展開する。別の方法では、エミュレーションによりボード１０４３からの入力が読み取られデバイス１１が存在しなければ、適切なソフトウェアおよび動作信号を決定するために、ボードへの出力が発生される。最後に、エミュレーションワークにより生じる適切なソフトウェアがデバイス１１へ供給されると、デバイス１１はボード１０４３の残りの回路とコンパチブルな方法で作動する。ここに開示する改良型システムでは、デバイス１１は実際上シリアル通信ケーパビリティのあるボード上にあり、デバイス１１の動作は全てデバイス自体から直接監視される。デバイス１１は極めて高速であることを考えると、デバイス自体がそれ自体のエミュレーションを支援する。
【００６５】
前記した方法では、ケーブルはエミュレートされたデバイスの替わりにボード上に設けられるソケットに嵌まるピンプラグで終端する。ソケットによりノイズの問題が生じる。表面実装デバイスをエミュレートする場合には、ボードのスペースが限定されるためソケットは実際的ではない。デバイス１１はボード１０４３上にはんだ付けしてデバイス自体によりエミュレーションを仲介するのが有利である。
【００６６】
スキャンインターフェイス１１５０に使用する少数のピンにより従来の全ｐｉｎ−ｏｕｔターゲットコネクタが不要となりケーブルの信頼度、伝送効果およびタイミング差に伴う問題が解消される。このようにして、ボード１０４３をプローブしてエミュレータ１１０１に接続された重責ケーブルとの物理的もしくは電磁的干渉を生じることなくデバイス１１以外の論理回路の動作を改良型システム内の論理アナライザおよびオシロスコープにより検証することができる。さらに、デバイス１１の２０メガヘルツを越えるクロックレートは高すぎて従来のエミュレーション方式ではそれをエミュレートできなくなることがある。
【００６７】
ここで用語として使用するシミュレーションによりターゲットボード１０４３のソフトウェア表現が生成され図１のシミュレータ１１３１（もしくはコンピュータ１１０１でシミュレータプログラムをランさせることにより）全ボードのシミュレーションを展開できるようにされる。シミュレーションの別の局面において、デバイス１１を利用できるがターゲットボード１０４３の残りの回路が不完全である場合には、デバイス１１からコンピュータ１１０１へシリアルスキャンアップロードもしくはダウンロードを行い、次にコンピュータ１１０１からデバイス１１へシリアルスキャンダウンロードもしくはアップロードを行ってボード１０４３の消失回路を置換することによりシミュレータは計画された完成ボードを真似ることができる。この局面では、ここに記載された改善に従ってデバイス１１自体を全速でランさせることによりシミュレーションは加速される。コンピュータ１１０１がデバイス１１よりも低速でランされる場合であっても、デバイス１１により頻繁にアクセスされる周辺装置をシミュレートするのにシミュレーションは有効である。
【００６８】
ここで使用するテストという用語は４つの異なるエリアを有している。最初のエリア“Ｄｅｖｉｃｅ  Ｔｅｓｔ”はデバイスメーカが出荷する前のデバイス１１自体のテストである。
【００６９】
第２のテストエリアは“Ｄｅｖｉｃｅ  Ｖｅｒｉｆｉｃａｔｉｏｎ”−すなわちデバイスのあらゆる局面における完全な機能性の検証である。
【００７０】
第３のテストエリアは“Ｄｅｖｉｃｅ  Ｃｈａｒａｃｔｅｒｉｚａｔｉｏｎ”である。これによりデバイスのタイミングを決定して実際に作られたデバイスの作動方法を厳密に規定する。
【００７１】
第４のテストエリアは“Ｕｓｅｒ  Ｔｅｓｔ”である。ユーザテストでは、ボード全体をテストしてボード１０４３全体の状況におけるデバイス１１の機能性が調べられる。
【００７２】
各ＭＰＳＤモジュールが２つのスキャンパスを有している。一方のスキャンパスはＭＰＳＤデータパスと呼ばれそれは通常モジュール中を一筋のビーズのようにシリアルに配線されたおびただしいシフトレジスタラッチＳ（もしくはＳＲＬ）を有している。第２のスキャンパスはＭＰＳＤコントロールパスと呼ばれ一般的にシフトレジスタラッチの数は少なくどのＭＰＳＤデータパスをスキャンすべきかをセレクトする。これらのスキャンパスについては前記した米国特許第４，８６０，２９０号に記載されている。
【００７３】
図４および図６において、改良型エミュレーション構造は所望によりさまざまなクロックによりクロックされるいくつかの主エリアへデバイス１１を分割できることを認識する。これらの主エリアはクロックドメインもしくは単に“ドメイン”と呼ばれる。デバイス１１等のＤＳＰデバイスのドメインはＣＰＵコアドメイン１２１３、メモリおよび周辺装置（システム）ドメイン１２１５および解析ドメイン１２１７であることが適切である。別のチップについては、しばしば異なるクロックによりクロックされるチップ部分と矛盾しない方法でドメインを定義することができる。しかしながら、チップ設計、エミュレーションおよびテストをモジュール性とするために、通常モジュールは全体ドメインよりも小さいユニットとしなければならない。それによりモジュールをビルディングブロックとして使用する他のチップを設計する際のフレキシビリティが高くなり、モジュールへデータをスキャンするのに要する時間が短縮される（時間はモジュールサイズの非線形ベき関数である）。
【００７４】
したがって、各ドメインには通常２つ以上のモジュールが含まれることが理解できるであろう。図４において、エミュレータアダプタ１２０３はさまざまなクロックをさまざまなドメインへ送ったりスキャンインターフェイスと特定ドメイン間のビット毎の転送を監視することができる。さらに、アダプタ１２０３はさまざまなＭＰＳＤコントロール信号をさまざまなドメインのコントロールパスへ送る。
【００７５】
図６には、オンチップエミュレーションブロックも図示されておりＪＴＡＧコントロールはＭＰＳＤ（Ｍｏｄｕｌａｒ  Ｐｏｒｔ  Ｓｃａｎ  Ｄｅｓｉｇｎ）に従ってエミュレーション周りを取り囲んでいる。参照としてここに組み入れられている同じ譲受人の米国特許第４，７０１，９２１号にはモジュラスキャンテストの原理も開示されている。
【００７６】
図５のＪＴＡＧコントロールは図６のＪＴＡＧコントロールブロック１２０１として示されている。ＭＰＳＤに従ったエミュレーションコントロールはブロック１２０３として設けられている。テストコントロールブロック１２０５によりＪＴＡＧはＭＰＳＤへ連結される。シリアルスキャンライン１２０７によりシリアルビット流は図５のＢＳＲ１１６１を含むバウンダリスキャンエリア１２１１の１つ以上の選定エリアへ入力されデバイス１１のピンバウンダリスキャンされる。図６のＣＰＵコアドメイン１２１３、システムドメイン１２１５および解析ドメイン１２１７はチップのさまざまな部分の全てとインターフェイスする。
【００７７】
図７によりデバイス１１のドメインの全体像が得られる。ＣＰＵコアドメイン１２１３は参照として組み入れられた米国特許第５，０７２，４１８号の図１Ａおよび図１Ｂの回路を含んでいる。後記するように、解析回路がＣＰＵコアに接続されている。解析回路は停止制御用ハードウェアブレークポイントセンサ等の状態センサおよびリアルタイムレコード保持用トレーススタック回路を含んでいる。解析回路はシリアルスキャンアクセシブルであり解析ドメイン１２１７として示されている。メモリおよびシリアルおよびパラレルポートを含む全ての周辺装置がシステムドメイン１２１５として示されている。エミュレーションコントロール回路１２０３が図７のもう１つのドメインである。特殊なメッセージ通過回路１２１６もシステムもしくは解析ドメイン内に含まれておりプロセッサ１１のデータバスを図２のシリアルスキャンライン１１０３へインターフェイスすることによりテストホスト１１０１とプロセッサ１１間で容易に通信を行うことができる。これについて図１４を参照として詳細に説明する。プログラムメモリ６１およびデータメモリ２５も図示されている。これらのメモリ部は１個のメモリとすることができるが、好ましくは別々のメモリである。本発明に従って、トレース領域９９はユーザソフトウェアの制御の元でデータメモリ２５内に画定される。トレース領域９９のサイズはさまざまなデバッグタスクに対して変えることができる。
【００７８】
図８にデバイス１１のチップ上のさまざまなドメインの物理的な全体像を示す。デバイス１１の実際のピン１１６１における全ての論理状態をリードもしくはライトできるようにするバウンダリスキャンレジスタ１２１１を含むシリアルバウンダリスキャンアセンブリを介してＪＴＡＧコントロール１２０１がピンとインターフェイスする。ＪＴＡＧ  ＴＡコントローラ１１５１およびＪＴＡＧ命令レジスタＩＲ１１５３がチップ上に設けられている。テストコントロール１２０５およびＭＰＳＤコントロール１２０３が回路に集積されている。ＭＰＳＤコントロール１２０３はデバイス１１のコア１２１３、システム１２１５および解析１２１７ドメインとシリアルにインターフェイスする。４つの端子１２２１の他に外部インターフェイス用の双方向ピンＥＭＵ０およびＥＭＵ１が設けられている。ＪＴＡＧ試験容易性インターフェイス技術を付加ピンＥＭＵ０およびＥＭＵ１付きＭＰＳＤモジュラポートスキャンと組み合わせることによりエミュレーション、ソフトウェア開発、および製造および現地試験プロセスを統合するケーパビリティが協同的に開始される。
【００７９】
図７および図８において、実施例の開発システムケーパビリティはさまざまなテストケーパビリティを選定できるようにアプリケーション開発を支援するものである。開示された開発支援ハードウェアコンポーネントを全て使用することによりアプリケーションプログラムが実行を継続できるような並行性、チップブレークポイントおよびトレースを含む開発ケーパビリティが提供され、図２のエミュレーションコントローラ１１０１と図７のデバイス１１間のリアルタイムメッセージ通過はコストに敏感なアプリケーションでは含めたり省いたりすることができる。例えば、基本的なシステムは基本的なＭＰＳＤ（Ｍｏｄｕｌａｒ  Ｐｏｒｔ  Ｓｃａｎ  Ｄｅｓｉｎ）エミュレーションを支援するかあるいは極端な場合、エミュレーションは支援せずバウンダリスキャンを行うもしくは行わないテストしか支援しない。
【００８０】
エミュレーション、シミュレーション、およびチップ速度測定エリアにおける総合的な開発システムの利点はさまざまなテストおよび機能的特徴と相互関連している。実施例には３つのアーキテクチュアがあり、それは、ａ）機能的アーキテクチュア（例えば、ＣＰＵメモリおよびＩ／Ｏ）、ｂ）ＪＴＡＧおよびＭＰＳＤシリアルスキャンベース試験容易性回路を含むテストアーキテクチュア、およびｃ）メッセージ通過回路、シミュレーション機能、およびバウンダリスキャンテスト等のエミュレーション／支援アーキテクチュアである。３つのアーキテクチュアによりＣＰＵ、メモリおよびＩ／Ｏの機能的アーキテクチュアのテストに関連する複雑さが最小限に抑えられテストとの協同性が最大とされる。
【００８１】
図９は端子ＴＤＩおよびＴＤＯ間をスキャンするためにＪＴＡＧ命令レジスタＩＲ１１５３が選定されている図５のレジスタの全体像を示す線図である。ＩＲ１１５３は図５において復号されシリアルライン１１０３を介して図２のコントロールカード１１４１から要求されると他のシリアルシフトレジスタもしくはスキャンパスへアクセスする。これらのシフトレジスタはバイパスレジスタ１１６７、バウンダリスキャンレジスタ１１６１、図７のメッセージ周辺装置１２１６、エミュレーションコントロールレジスタ１２５１およびさまざまなドメイン内の１対のＭＰＳＤスキャンパス１２５２およびドメイン内のモジュールである。
【００８２】
図１０において、図９からのスキャン線１２５３はＳＣＩＮとして示されこの線は各々が内部ＭＵＸ選定により内部スキャンコントロールパスおよびスキャンデータパスへ分割されている３本のスキャンパス１２５２へ選択的に接続される。１組の外部ＭＵＸ１２６１，１２６３および１２６５がエミュレーションコントロール１２０３からのロック信号ＬＯＣＫ（ｌｏｃｋ  ｓｙｓｔｅｍ  ｄｏｍａｉｎ），ＬＯＣＫＡ（ｌｏｃｋ  ａｎａｌｙｓｉｓ  ｄｏｍａｉｎ），およびＬＯＣＫＣ（ｌｏｃｋ  ｃｏｒｅ  ｄｏｍａｉｎ）によりコントロールされ、存在する場合の、選定された１つのドメインを除く全ドメインをスキャンおよび実行の目的でバイパスする。ロックされたドメインには（後記する）ＭＰＳＤコードが供給されておりドメインがロックされる期間中凍結されたままである。いずれか１つのドメイン（例えば、解析ドメイン）をスキャンする場合、その対応するＭＵＸ１２６３がＡＳＣＩＮ線（ａｎａｌｙｓｉｓ  ｓｃａｎ  ｉｎ  ｄａｔａ）をデセレクトしＡＳＣＯＵＴ線（ａｎａｌｙｓｉｓｓｃａｎｏｕｔ）をセレクトする。このようにして、ＳＣＩＮ線へ入るシリアルスキャンビットはＡＳＣＩＮ線上の解析ドメイン１２１７へ入り、ＡＳＣＯＵＴ線を介して解析ドメインを去り、他の２つのドメインをバイパスする。他の２つのドメインは同様にセレクトされる。スキャン出力は図１０の底部においてＳＣＯＵＴ線を介してエグジットする。
【００８３】
図１１と図２および説明文は半導体チップおよびチップ上の電子プロセッサを含むデータ処理装置を有する電子システムを示すものである。前記したように、オフチップテストホストコンピュータ回路がＪＴＡＧ等のテストポートを介してデータ処理装置に接続されている。データ処理装置１１はさらにオフチップハードウェアブレークポイントアドレス回路、トレーススタック、パイプラインコントローラ状態感知回路および周期的トリガイベントや特定時間におけるトリガイベントの生成をリアルタイムでプロセッサへ知らせ、テストホストコンピュータにも知らせる、ためのカウンタ１７１５を含む他のオフチップ状態センサを有している。図１１の回路は１例にすぎず、当業者であればここに記載した原理に従ってさまざまな変更を行っていかなる論理的組合せの状態に対してもセンサ論理を提供していかなる複雑な組合せの状態もしくは一連の状態の発生をも感知できるようにすることができる。ブレークポイント信号は前記したように停止信号ＡＮＡＳＴＰもしくは感知された論理／機能状態に応答する停止信号以外の他の任意のコントロール信号とすることができる。
【００８４】
図１２において、図１１の解析回路の作動方法がＳＴＡＲＴ１７２１で開始されステップ１７２５へ進んで命令取得を感知する。ステップ１７２７においてサブルーチン呼び出しが感知され、ステップ１７２９においてＲｅｔｕｒｎが感知される。ステップ１７３１において、割込状態が感知される。ステップ１７３３においてブレークポイントプログラムアドレスが感知され、ステップ１７３５においてブレークポイントデータアドレスが感知される。ステップ１７３７において、トレーススタック満杯状態が感知される。次にステップ１７３９において例えば図１１のシフトレジスタ１７１１およびロック１７０３（１７０３．１−１７０３．８）を使用してどの状態が関連するかセレクトされる。セレクトされた状態のカウントがステップ１７４１において保持される。判断ステップ１７４３においてカウントが所定のカウントＮを越えるか確認され越える場合には、カウントＮに達したという信号がステップ１７４５において出力される。オペレーションはステップ１７４３もしくは１７４５からステップ１７４７へ進みそこからデバイス１１の動作速度よりも低い速度で外部処理装置へ出力が与えられる。ステップ１７４９において、この出力はホストコンピュータへ接続されそこでオペレーションはＳＴＡＲＴ１７２１へ戻って無限にステップが繰り返される。
【００８５】
図１３において、ブレークポイントセンサ１６９７の回路は図１１の解析回路へＢＰＰＡ（ｐｒｏｇｒａｍ  ａｄｄｒｅｓｓ  ｂｒｅａｋｐｏｉｎｔ）信号を与える。この回路はＢＰＤＡ（ｄａｔａ  ａｄｄｒｅｓｓ  ｂｒｅａｋｐｏｉｎｔ）信号を発生するブレークポイントセンサについても繰り返すことが適切である。
【００８６】
図１３において、プログラムアドレスバス１０１Ａがデジタルコンパレータ１８１１に接続されている。最上位ビットＭＳＢおよび最下位ビットＬＳＢを有する解析ドメイン内のもう１つのレジスタ１８１３へ基準値がスキャンロードされる。また、レジスタ１８１３はデジタルプロセッサ１１で実行されているコードの制御の元でデータバス１１１Ｄからロードすることもできる。アドレスバス１０１Ａ上に表明されるプログラムアドレスがレジスタ１８１３の内容と同じであれば、コンパレータ１８１１はＢＰＰＡ線上のブレークポイントアドレスの発生を示す出力を発生する。
【００８７】
ブレークポイント回路のさらに有利な特徴として、ブレークポイントはレジスタ１８１３の最上位ビットＭＳＢにより示されるような選定されたアドレス群内の任意のアドレスとすることができる。このような場合、スキャナブルマスクレジスタＬＳＢＥＮがスキャンロードされレジスタ１８１３のＬＳＢビットに対するコンパレータ１８１１の応答をディセーブルする。このマスク状態において最上位ビットだけがコンパレータ１８１１により比較され、特別なアドレス範囲内のプログラムアドレスの発生時にブレークポイントが与えられる。
【００８８】
ブレークポイントのためのスキャナブルレジスタ１８１３はデータバス１１１Ｄへ接続する必要がない。しかしながら、このレジスタ１８１３は図２のエミュレーション／シミュレーション／テストホストコンピュータ１１０１とターゲットデバイスのデータバス１１１Ｄ間のメッセージ通過アクセスのために再使用するのが有利である。メッセージ通過機能はブレークポイント感知を生じる必要がない場合に使用され、逆の場合もあり、レジスタ１８１３は色々な時にさまざまな機能を実施できるようにされる。
【００８９】
図１４はチップ上に配置されたメッセージ通過回路１２１６のブロック図を示す。メッセージ通過回路１２１６は解析ドメイン１２１７、コアドメインと相互接続されエミュレーションアダプタ１２０３およびスキャンコントロール１１４９と連絡されている。割込発生回路１９４３はまたメッセージ通過回路１２１６の残りをデバイス１１内の１６本の割込線とインターフェイスさせる。図９および図１４のシリアルスキャンパスはメッセージ通過回路１２１６を作動させるコマンドを入力し状態情報をスキャンアウトするためにシフトレジスタ１９２３ＣＭＤ／ＳＴＡＴＵＳへシリアルデータＳＣＡＮ  ＩＮを入力させる。シリアルパスは１６ＢＩＴ  ＤＡＴＡ  ＲＥＧＩＳＴＥＲとして示すもう１つのシリアルレジスタ１９２５へ続いておりそこでスキャンパスはＳＣＡＮ  ＯＵＴ線へエグジットする。シリアルレジスタ１９２５の機能は解析ドメイン内の図１３のレジスタ１８１３により実現することができ再使用原理によりメッセージ通過に必要なチップの実際の領域は一般的に最小限に抑えられる。
【００９０】
シリアルレジスタ１９２５は３本のパスの中の１本をセレクトしてレジスタ１９２５へロードするＭＵＸ１９３１の出力に接続されている。これらのパスの２本は図７のＴＩＢＵＳ周辺バスのデータおよびアドレスバスである。図１４においてデータ部は１９３５で示されアドレス部は１９３７で示されている。通信レジスタバス１９３９と呼ばれる第３のパスが通信レジスタ１９４１に接続されている。
【００９１】
メッセージ通過回路１２１６はシミュレート周辺アクセス、ＡＰ（ａｔｔａｃｈｅｄ  ｐｒｏｃｅｓｓｏｒ）としてのテストホストコンピュータ１１０１との通信Ｉ／Ｏ（入出力）、およびテストホストコンピュータ１１０１とデバイス１１間のデータ構造転送に有用である。
【００９２】
メッセージ通過回路１２１６の構造および動作をテストホスト交換の例に関連してさらに説明する。周辺アクセスもしくは他の外部への通信が開始されるとデバイス１１はＭＵＸ１９３１を介してレジスタ１９２５をパラレルロードする。テストホストコンピュータ１１０１はレジスタ１９２５へデータをスキャンダウンロードするかもしくは信号をハンドシェークすることができる。周辺バスへデータを運ぶために、レジスタ１９２５は通信レジスタ１９４１へロードされるようにＭＵＸ１９４５によりセレクトされる。次に通信レジスタ１９４１はＭＵＸ１９５５および出力バッファ１９４７を介してＴＩＢＵＳ周辺バスのデータバス部１９３５へデータを送る。
【００９３】
ＭＵＸ１９４５は逆データ転送を行うこともできそこではＴＩデータバス１９３５を介した外部への通信は入力１９５１においてＭＵＸ１９４５に達し通信レジスタ１９４１、通信レジスタバス１９３５およびＭＵＸ１９３１を介して１６ビットデータレジスタ１９２５へ連絡される。
【００９４】
ＭＵＸ１９５５は通信レジスタバス１９３９もしくはデータレジスタ１９２５に直接接続されたもう１つのバス１９６１をセレクトする。このようにして、レジスタ１９２５からパス１９６１、ＭＵＸ１９５５および出力バッファ１９４７を介してＴＩデータバスへより直接的にデータを通信することができる。
【００９５】
バッファ状態フラグがデバイス１１のハードウェア１９６５からリード／ライト信号Ｒ／Ｗと共にＣＭＤ／ＳＴＡＴＵＳレジスタ１９２３へ送られホストコンピュータ１１０１へスキャンアウトされる。ホストコンピュータはこれらのバッファ状態フラグを受信して、ＭＥ線上のその“偽装”返答を含めた、周辺装置をシミュレートする返答コマンド信号を返送する。
【００９６】
レジスタ１９２３からのコマンドビットのいくつかはコマンドデコーダＣＭＤＤＥＣ１９７１へ送られる。デコーダ１９７１はコマンドを復号してＭＵＸへのオペレーション出力線ＯＰＯ．．．ＯＰＮおよびメッセージ通過回路１２１６のレジスタを選択的に活性化させコマンドに従って回路を作動させる。したがって、プロセッサレベルの精巧さおよびフレキシビリティをメッセージ通過回路１２１６内で利用することができる。さらに別の局面において、ＭＵＸ１９４５は周辺バスＴＩＢＵＳのデータ部に接続された入力１９５１を有しさらにフレキシビリティが増す。レジスタ１９２５は割込発生ブロック１９４３に接続されデバイス１１の割込状態もホストコンピュータ１１０１からスキャンロードできるようにされる。
【００９７】
レジスタＵＩＤ１９８１がデータバス１９３５に接続されている。もう１つのレジスタＪＩＤ１９８３がデータレジスタ１９２５に接続されている。レジスタＵＩＤおよびＪＩＤの出力はタスク識別比較回路１９８５へ与えられる。識別が一致すると、出力信号ＴＳＫＯＫが出力される。したがって、メッセージ通過回路はそのワークを完了している場合情報を有利に利用できる任意の回路へその内部状態を知らせることができる。例えば、タスクＯＫ信号ＴＳＫＯＫを使用して図１１の１２ビットダウンカウンタ１７１５に保持されているＳＵＳＰＥＮＤを解除することができる。
【００９８】
本発明に従って、ＣＰＵ１１を停止させずにエミュレーションおよびシミュレーション機能を実施し、割込みをサービスして他の機能を実施するその能力を保存したいというニーズがある。このケーパビリティは通常コアを停止させて替わりに保存された位置へトラップを呼び出すトリガイベントを設定して実現される。ユーザはトレースモニタプログラムをユーザソフトウェアへリンクしてトラップをサービスする。トラップが生じると、モニタプログラムは内部もしくは外部メモリ内の図７のトレース領域９９へ１つ以上の関連データアイテムを転送する。トレースモニタはいくつかのデータアイテムをトレース領域へ格納して領域が満杯になったら全てテストホストへ転送するか、もしくはデータを捕捉次第テストホストへ転送することができる。
【００９９】
トレースモニタはＴＩＢＵＳアドレススペースに常駐するアドレスを有するメッセージ通過レジスタ１９２５等のＴＩＢＵＳ周辺装置を介してテストホストコンピュータ１１０１と通信する。トレースモニタはデータを転送できることをテストホストへ知らせ次にテストホストがデータを転送する。この通知信号は、例えば、状態レジスタ１９２３へ書き込まれる１ビットとすることができる。また、通知信号はデータレジスタ１９２５へ書き込まれる特定のデータパターンもしくはデータビットとすることができる。レジスタ１９２５へデータアイテムを書き込み通知信号を送出した後で、トレースモニタはアプリケーションプログラムへ戻りトレースモニタが僅かな時間しか使用しないようにする。テストホストがシリアル線１１０３を介してプロセッサ１１のテストポートからデータアイテムを受信すると、テストホスト１１０１はシリアル線１１０３を介してハンドシェーク信号を戻しプロセッサ１１がメッセージ通過レジスタ１９２５へ別のデータアイテムを書き込めることを示す。メッセージ通過回路１２１６は発生器１９４３へ割込みを設定することによりハンドシェーク信号が受信されていることをトレースモニタへ知らせることができる。割込みは、例えば、レジスタ１９２３に状態ビットを設定するかコマンドデコーダ１９７１でコマンドを復号して行うことができる。
【０１００】
図１５にプロセッサ１１が、例えば、シリアルバスとすることができる配線２１０３を介してホストプロセッサ２１０１に接続されたスタンドアロンプロセッサである別の実施例を示す。メッセージレジスタ１９２５が配線２１０３とインターフェイスしておりトレース領域９９に格納されたデータアイテムがＣＰＵ１２１３で実行されるソフトウェアの制御の元でホストプロセッサ２１０１に対して送受信できるようにＣＰＵ１２１３によりコントロールされる。ホストプロセッサ２１０１はホストプロセッサ１１０１について前記したテスト支援機能を実施する。トレース領域９９はＣＰＵ１２１３で実行されるソフトウェアによりダイナミックに画定される。トレース領域９９はメモリ２５から物理的に分離されておらず、メモリ２５内の画定された領域にすぎない。
【０１０１】
本発明に従って、ＣＰＵ１１を停止させずにエミュレーションおよびシミュレーション機能を実施し、割込みをサービスして他の機能を実施するその能力を保存したいというニーズがある。このケーパビリティは保存された位置へトラップを呼び出すトリガイベントを設定して実現される。ユーザはトレースモニタプログラムをユーザソフトウェアへリンクしてトラップをサービスする。トラップが生じると、モニタプログラムはトレース領域９９へ１つ以上の関連データアイテムを転送する。トレースモニタはいくつかのデータアイテムをトレース領域へ格納して領域が満杯になったら全てテストホスト２１０１へ転送するか、もしくはデータを捕捉次第テストホストへ転送することができる。
【０１０２】
本発明の利点はトレース領域９９内にさまざまなデータアイテムを格納するモニタプログラムをユーザが生成することができプログラムのデバッギングに役立つことである。さまざまなトリガイベントを利用してモニタプログラムがトレース領域９９にさまざまなデータアイテムを格納するようにすることができる。
【０１０３】
本発明のもう１つの利点はプロセッサ１１の一部であるイベント検出回路によりトリガを開始できることである。したがって、プロセッサ１１は外部モニタハードウェアを必要とせずにそれ自体をアクティブに解析することができる。
【０１０４】
本発明のもう１つの利点はトリガイベントが生じると、トレースモニタプログラムがアドレスバウンドチェック等の付加処理を実施し、プログラムカウンタを評価し、他のプロセッサ状態レジスタをチェックする等によりどのルーチンがデータアイテムを書き込んだかを確認できることである。
【０１０５】
本発明のもう１つの利点はトレースモニタプログラムのオペレーションを変えて内部レジスタ修正、トレース領域９９内のエラー状態セーブ、ＣＰＵ１２１３停止等のさまざまな最終結果を得ることである。
【０１０６】
ここで使用した“適用した”、“接続した”、“接続”という用語は、電気接続パスに付加素子がある場合を含めた、電気的接続を意味する。
【０１０７】
実施例について説明してきたが、明細書は制約的意味合いを有するものではない。当業者であれば明細書を読めば他のさまざまな実施例が自明であるものと思われる。したがって、発明の真の範囲および精神に含まれる実施例の修正は全て特許請求の範囲に入るものとする。
以上の説明に関して更に以下の項を開示する。
【０１０８】
（１）  デジタルプロセッサのテスト方法であって、前記デジタルプロセッサはメモリ部およびテストポートを有し、該方法は、前記メモリ部をトレース領域として画定するステップと、予め選定されたイベントが生じるまで前記デジタルプロセッサでアプリケーションプログラムを実行するステップと、前記予め選定されたイベントに応答して前記トレース領域内の位置に少なくとも１つのデータアイテムを格納して前記デジタルプロセッサは前記データアイテムが格納された後でも前記アプリケーションプログラムを実行し続けるようにするステップと、前記テストポートを介してテストホストプロセッサへ前記データアイテムを転送して前記デジタルプロセッサは前記データアイテムが転送された後でも前記アプリケーションプログラムを実行し続けるようにするステップとを含むデジタルプロセッサのテスト方法。
【０１０９】
（２）  第１項記載の方法であって、前記データアイテムを格納するステップはさらに前記データプロセッサの制御の元で実行される命令により前記データアイテムを前記トレース領域に格納するステップを含むデジタルプロセッサのテスト方法。
【０１１０】
（３）  第１項記載の方法であって、前記デジタルプロセッサはさらにメッセージ通過レジスタを具備し前記データアイテムを転送するステップはさらに前記データプロセッサの制御の元で実行される命令により前記データアイテムを前記トレース領域から前記メッセージ通過レジスタへ移すステップを含むデジタルプロセッサのテスト方法。
【０１１１】
（４）  第１項記載の方法であって、少なくとも１つのデータアイテムを格納するステップはさらに、前記トレース領域が満杯であるかを確認するステップと、前記トレース領域が満杯である場合に前記テストホストプロセッサへ通知メッセージを送るステップを含むデジタルプロセッサのテスト方法。
【０１１２】
（５）  第４項記載の方法であって、前記データアイテムを格納するステップは少なくとも１度繰り返されるデジタルプロセッサのテスト方法。
【０１１３】
（６）  第１項記載の方法であって、前記データアイテムはメモリアドレスであるデジタルプロセッサのテスト方法。
【０１１４】
（７）  第１項記載の方法であって、前記データアイテムはプログラムカウンタアドレスであるデジタルプロセッサのテスト方法。
【０１１５】
（８）  第１項記載の方法であって、前記データアイテムはレジスタ内容であるデジタルプロセッサのテスト方法。
【０１１６】
（９）  第１項記載の方法であって、前記予め選定されたイベントはアプリケーションプログラム実行不連続性であるデジタルプロセッサのテスト方法。
【０１１７】
（１０）  第１項記載の方法であって、前記予め選定されたイベントはアドレスブレークポイントであるデジタルプロセッサのテスト方法。
【０１１８】
（１１）  所定のイベントに応答してデジタルプロセッサ１１が実行するユーザが定義可能なプログラムの制御の元でデジタルプロセッサからテストホストプロセッサへトレースデータを転送するのにテストポート１１４９が使用されるデジタルプロセッサのテスト方法。プログラムメモリ６１にロードされたアプリケーションプログラムがデジタルプロセッサにより実行される間にトレースデータが集められる。トリガイベントに応答してデジタルプロセッサによりバックグラウンド式に実行されるユーザ定義可能なコードによりデータメモリ２５のトレース領域９９にトレースデータが一時的に格納される。解析ハードウェア１２１７のさまざまな部分をイネーブルするユーザ定義可能なコードによりトリガイベントもイネーブルされる。メッセージ通過レジスタ１２１６によりテストホストプロセッサへ通知信号を送ることによりテストポート１１４９を介してデジタルプロセッサからテストホストプロセッサへトレースデータが転送される。次にデジタルプロセッサはテストホストプロセッサからのハンドシェーク信号についてメッセージ通過レジスタを監視する。ハンドシェーク信号が受信されると、ユーザ定義可能なコードによりバックグラウンド式にメッセージ通過レジスタへトレースデータが書き込まれテストホストプロセッサへ転送される。
【図面の簡単な説明】
【図１】集積回路チップおよびソフトウェアを開発する従来の開発ツールの絵画図。
【図２】エミュレーション、シミュレーション、試験容易性およびデータ処理、Ｉ／Ｏ通信および周辺アクセスのためのＡＰ（ａｔｔａｃｈｅｄ  ｐｒｏｃｅｓｓｐｒ）の従来のシステム構成を示す部分絵画、部分ブロック図。
【図３】図２のホストコンピュータの従来のソフトウェア構成を示す線図。
【図４】テストおよびエミュレーション回路への従来の統合方法を示すブロック図。
【図５】従来のスキャン試験容易性インターフェイスを示す部分ブロック、部分模式図。
【図６】従来のチップ上のプロセッサチップドメイン、バウンダリスキャンおよびスキャンテスト／エミュレーション回路を示すブロック図。
【図７】さまざまなドメインへ割り当てられたチップの機能ブロック、および本発明によるトレース領域およびメッセージ通過回路を示す図６のプロセッサチップのブロック図。
【図８】図６および図７の従来のプロセッサチップの部分絵画、部分ブロック図。
【図９】図５の従来のスキャンパスの詳細ブロック図。
【図１０】図９の従来のスキャンパスの詳細ブロック図。
【図１１】従来の集積回路デバイスの動作をモニタする解析回路のブロック図。
【図１２】図１１の従来の解析回路の動作を示すプロセスフロー図。
【図１３】従来のハードウェアブレークポイント回路のブロック図。
【図１４】図７の従来のメッセージ通過回路のブロック図。
【図１５】プロセッサをスタンドアロンプロセッサとすることができる別の実施例を示す図。
【符号の説明】
１１  プロセッサデバイス
１０４３  回路板
１０４４  アプリケーションホストコンピュータ
１１０１  ホストコンピュータ
１１１１  評価モジュール
１１１３  アナログインターフェイスボード
１１２３  Ｃコンパイラ
１１２７  アセンブラ
１１２９  リンカ
１１３１  シミュレータ
１１４１  エミュレータコントローラカード
１１４３  電気通信モデム
１１４５  ハードディスク
１１４７  プリンタ
１１４９  ＪＴＡＧインターフェイス
１１５０  ＳＣＯＰＥインターフェイス
１１５１  ＴＡＰコントローラ
１１５３  命令レジスタ
１１６１，１２１１  バウンダリスキャンレジスタ
１１６５  特定設計テストデータレジスタ
１１６７  バイパスレジスタ
１１７１，１１７３  マルチプレクサ
１１７５  フリップフロップ
１１７７  シリアルリターン回路
１２０１  ＪＴＡＧコントロール
１２０３  エミュレータアダプタ
１２０５  テストコントロール
１２１６  メッセージ通過回路
１２１７  解析
１２２１  ＪＴＡＧ端子
１２５１  エミュレーションコントロールレジスタ
１２６１，１２６３，１２６５  外部ＭＵＸ
１６９７  ブレークポイントセンサ
１７１５  カウンタ
１８１１  デジタルコンパレータ
１８１３  スキャナブルレジスタ
１９２３，１９２５  シフトレジスタ
１９３１，１９４５，１９５５  ＭＵＸ
１９４１，１９８１  レジスタ
１９４３  割込み発生回路
１９４７  出力バッファ
１９６５  ハードウェア
１９７１  デコーダ
１９８５  タスク識別比較回路
２１０１  ホストプロセッサ
【図１】
0004126105.tif 000003
【図２】
0004126105.tif 000004
【図３】
0004126105.tif 000005
【図４】
0004126105.tif 000006
【図５】
0004126105.tif 000007
【図６】
0004126105.tif 000008
【図７】
0004126105.tif 000009
【図８】
0004126105.tif 000010
【図９】
0004126105.tif 000011
【図１０】
0004126105.tif 000012
【図１１】
0004126105.tif 000013
【図１２】
0004126105.tif 000014
【図１３】
0004126105.tif 000015
【図１４】
0004126105.tif 000016
【図１５】
0004126105.tif 000017