JP2008507025A - 集積回路テスト用エミュレーション及びデバッグインターフェイス - Google Patents

集積回路テスト用エミュレーション及びデバッグインターフェイス Download PDF

Info

Publication number
JP2008507025A
JP2008507025A JP2007520966A JP2007520966A JP2008507025A JP 2008507025 A JP2008507025 A JP 2008507025A JP 2007520966 A JP2007520966 A JP 2007520966A JP 2007520966 A JP2007520966 A JP 2007520966A JP 2008507025 A JP2008507025 A JP 2008507025A
Authority
JP
Japan
Prior art keywords
emulation
interface
jtag
software
tool
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2007520966A
Other languages
English (en)
Inventor
ファブリツィオ、カンパナレ
イェンス、ムッタースバッハ
アンドレア、フォニ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips NV
Koninklijke Philips Electronics NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips NV, Koninklijke Philips Electronics NV filed Critical Koninklijke Philips NV
Publication of JP2008507025A publication Critical patent/JP2008507025A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

非同期マイクロコントローラ内蔵型のターゲット装置集積回路は標準的なJTAG−TAPインターフェイスが取り付けられる。ICに搭載されたTAPポートコントローラとエミュレーションインターフェイスは、コードメモリからフェッチされるあらゆる命令を横取りし、置き換えることが可能である。外部エミュレーションPCは、内蔵非同期マイクロコントローラにオンボードデータ及びコードメモリを読み、それらをJTAG−TAPインターフェイスへ書き込むように指示することによってオンボードデータ及びコードメモリを検査する能力を備えている。シングルステップレジスタとブレークポイントレジスタは外部エミュレーションPCによるデバッグ及びテストのため設けられる。

Description

本発明はコンピュータプログラムエミュレーションとデバッグに係わり、特に標準的なジョイントテストアクショングループ(JTAG)のテストアクセスポート(TAP)を用いて内蔵型非同期マイクロコントローラとデジタル的にインターフェイスをとる回路と方法に関する。
装置にプロセッサを組み込むコンピュータ回路設計は、困難なテスト、エミュレーション、及び、デバッグの問題を引き起こす。このような組み込みシステムは、典型的に、プログラマ、アセンブラ、又は、書き込み可能なプログラムメモリとインターフェイスをとる機能がない。したがって、テストエンジニアと開発エンジニアは、通常、設計通りにターゲットシステムへ直接アクセスできない。
インサーキットエミュレーション(ICE)はこのジレンマを解決するため導入された。ホストプログラム開発システムはアンビリカルケーブルの端に専用のプロセッサが取り付けられている。パーソナルコンピュータ(PC)はこの目的のためのアダプターポッドが取り付けられ得る。このようなケーブルは次にターゲット組み込みシステムのプロセッサソケットに差し込まれる。ICE開発システムの入力/出力(I/O)、メモリ、アセンブラ、コンパイラ、及び、グラフィカルユーザインターフェイスは、すべてがその時点でエンジニアが利用可能であるので、プログラムは実際のターゲットハードウェアでテストされ得る。ターゲットシステム内のI/O、プログラムメモリ、データメモリ、CPUレジスタ、及び、周辺機器のすべてがホスト開発システムによってアクセス可能であり、修正可能である。
ICEの重要なリソースは、したがって、ターゲットアクセス、特に、レジスタとメモリの内容を調べ、変更する能力である。ブレークポイントは、あるイベントが発生したときにプログラム実行を停止させることが可能であり、もう一つの重要なデバッグリソースである。定められた場所及び条件でプログラム実行を停止できることは、プログラムがどのようにしてその状態に達したか、及び、プログラムがターゲットシステムにどのような影響を与えたかについての完全な解析を可能にする。エミュレータは、エンジニアが同時に1命令ずつターゲットプログラムを実行することを可能にするシングルステップを実施するためブレークポイントも使用する。
ICE開発システムとそれらのサポート機器及びソフトウェアは高価である。それらはさらにターゲット組み込みシステム毎に使用されるプロセッサに高度に専用化され、アダプターと専用のソフトウェアがタイプ毎に購入されなければならない。その上、専用オンチップロジックが外部エミュレータとインターフェイスをとるため必要とされる。通常、それは、エミュレータ会社又は組み込みマイクロプロセッサの供給業者のいずれかによって供給されたIPである。このような余分なコストがIC開発経費予算に加わる。
エミュレータは、コンピュータ回路基板のプロセッサ、メモリ、又は、バスインターフェイスを制御しテストするために使用される。制御状態になると、エミュレータは、ターゲットハードウェアとソフトウェアをデバッグするため診断テストをロードし実行する。高密度基板上のテストアクセスはプロセッサエミュレータにとって問題ないが、実際のプロセッサはその置き換えを可能にするようにソケット化されなければならない。エミュレータは基板開発において広範囲に使用されたが、増大するプロセッサ速度は今やエミュレータを非実用的にした。
Figure 2008507025
ROMメモリエミュレータは、ブートROMを置き換えるためソケットにつながり、プロセッサのノーマルブートコードのための診断プログラムコードを挿入する。このようなソケットインターフェイスは双方向であり、テスト対象ユニット(UUT)はテスターと通信可能である。しかし、ROMエミュレータは、ROM領域を立ち上げるプロセッサを診断できない。もしROMが半田付けされているならば、製品設計回路修正を行う必要がある。
バスエミュレータは、バススロット又はエッジコネクタに接続され、リード/ライトバスサイクルによってUUTの種々の回路及び機能へのテストアクセスを行う。バスエミュレータは、VME及びPCIのようなプラグインバスカードをテストするために役立つ。
ジョイントテストアクショングループ(JTAG)インターフェイスは、当初は、小型コンポーネント上のテストアクセス問題を解決するために設計された。規定されたシリアルインターフェイスはテストアクセスポート(TAP)として知られている。テストアクセスポートは、各コンポーネントのI/Oピンに組み込まれたデイジーチェインシフトレジスタにアクセスするため5本のデータピン及びタイミングピンを使用する。これは、JTAGに準拠したコンポーネントのチェーンがエラーを見つけるためバウンダリスキャンされることを可能にする。
JTAGプロトコルは、ハードウェアとソフトウェアの開発者にオンボードでバッグ機能を提供するためマイクロプロセッサとデジタル信号プロセッサ(DSP)の製造業者によって拡張されている。このような支援は、外部エミュレータが直面する典型的な30MHzの速度の障壁を解決する。ベンダー固有のJTAGの拡張は、典型的に、2〜3本の付加的な信号線と、プロセッサコアを制御する強化された命令セットとを有する。デバッグインターフェイスを可能にする市販されているCPUには、Intel(登録商標)Pentium(登録商標)プロセッサ、Intel XScale(トレードマーク)マイクロアーキテクチャプロセッサ、Motorola(トレードマーク)、IBM(登録商標)PowerPC(トレードマーク)、AMD(登録商標)、MIPS(登録商標)、及び、ARM(登録商標)のプロセッサファミリーが含まれる。IEEEもまた、デバッグインターフェイスのためのIEEE ISTO−5001を発行している。
デバッグインターフェイスは、たとえば、Motorolaのバッググラウンドデバッグモード(BDM)、AMDのハードウェアデバッグツール(HDT)、及び、Motorola/IBMのコモンオンチッププロセッサ(COP)などの種々のトレードマーク名が与えられている。BDMインターフェイスはJTAGと類似しているが、信号線とプロトコルが異なる。
このようなインターフェイスは、当初、設計エンジニアのため開発されたが、機能的なテストソリューションも実施された。プロセッサのデバッグインターフェイスを使用するため設計されたテスト及び診断機器はUUT上に6〜10本のテストピンしか必要としない。このようなアクセスは、CPU116とソケットとの間にインターポーザーを取り付けることにより、CPUが半田付けされるときに非常に簡単なネイルベッドを用いることにより、又は、一部の基板製造業者によって提供されるJTAGブレークアウトヘッダを利用することにより殆どの基板設計において実現可能である。
バスアーキテクチャUUTは、ブリッジ、RAM、ビデオコントローラ、及び/又は、I/Oコントローラのような機能ブロックに分割される。各機能ブロックはメモリ又はI/Oレジスタの配列を含む。テストプログラムは、これらのレジスタに順次アクセスするためプロセッサ製造業者によって提供される拡張JTAGデバッグ機能を使用し、完全なテストを構築する。
低レベル機能には、プロセッサの開始/停止、メモリのリード/ライト、汎用レジスタのリード/ライト、I/Oのリード/ライト、ブレークポイント、シングルステップコード、及び、コードトレースが含まれる。これらの機能の組み合わせは、UUTへのテストコードのダウンロードと、テストコード実行の制御及び監視と、UUTメモリからのテスト結果の収集とを提供する。
たとえば、リード/ライト機能は、RAMをテスト可能であり、さらに中間バスを検証する。I/Oコントローラは、ネットワークインターフェイスコントローラの場合のように出力を入力へループバックすることにより、又は、基板のコネクタに取り付けられた外部装置を用いて信号を生成/測定することによりテストされる。一部のテストシステムは、実際の周辺装置を取り付ける必要性を回避するI/Oエミュレーションユニットを含む。
ターゲット装置CPUが同期型でないならば、費用と複雑さがより増す。専用化されたインターフェイスは非同期式にクロックされる内蔵型プロセッサを取り扱うために必要とされる。
このようなコストすべては、ターゲットシステム製造コストを非常に高くする。製造コストは非常に高く上昇することがあるので、製品が正当な利益を生み出すため必要とされる小売価格で成功する可能性は殆どない。
必要とされるのは、外部ベンダーのIP又はハードウェアに頼ることなく、エミュレーションとテストのコストを削減する非同期内蔵型プロセッサをデバッグする専用の組み込みアーキテクチャである。
簡潔には、本発明のターゲット装置集積回路の実施形態は、内蔵型非同期マイクロコントローラを備え、標準的なJTAG−TAPインターフェイスが取り付けられている。ICに搭載されたJTAG−TAPポートコントローラとエミュレーションインターフェイスは、コードメモリからフェッチされるすべての命令を横取りし、置き換えることが可能である。外部エミュレーションPCは、内蔵型非同期マイクロコントローラにオンボードデータ及びコードメモリを読み、それらをJTAG−TAPインターフェイスへ書き込むように指令することによって、オンボードデータ及びコードメモリを検査する能力を備えている。シングルステップレジスタとブレークポイントレジスタは外部エミュレーションPCによるデバッグとテストのため設けられている。
本発明の利点は、組み込み式のエミュレーション及びデバッグ能力を備えた回路が提供されることである。
本発明のさらなる利点は、ブレークポイントを待つ間に、装置性能が妨げられることなく、又は、エミュレーションコードがPCと相互作用する最高速度未満で実行される、自走モードでテストされるべきターゲット装置のための方法が提供されることである。
本発明のなおさらなる利点は、費用のかからない、工業規格JTAGシリアルインターフェイスを有するシステムが提供されることである。
本発明の上記の目的、構成要件及び利点と、さらなる目的、構成要件及び利点は、特に、添付図面と併せて理解されるとき、以下の本発明の特定の実施形態の詳細な説明を考慮して明らかになるであろう。
図1は本発明のエミュレーションシステムの実施形態を示し、本書では総称的な参照番号100によって参照される。エミュレーションシステム100は、標準化された5ピンのJTAGインターフェイス106によってターゲット装置104に接続された普通のパーソナルコンピュータ(PC)102を備えている。(1)TCK/クロックピンは、内部状態マシン動作を同期させる。(2)ATM/モード選択ピンは次の状態を決定するためTCKの立ち上がりエッジでサンプルされる。(3)TDI/データインピンは、TCKの立ち上がりエッジでサンプルされ、内部状態マシンが正しい状態にあるときにターゲット装置104のテスト又はプログラミングロジックへシフトインされる。(4)TDO/データアウトピンは、ターゲット装置104のテスト又はプログラミングロジックからシフトアウトされるデータを表し、内部状態マシンが正しい状態にあるときにTCKの立ち下がりエッジで有効である。そして、(5)TRST/リセットピンは、ローに駆動されたときに内部状態マシンをリセットする。
PC102に含まれ、PC102上で動作するソフトウェアツールは、エミュレーションハードウェアインターフェイスを介してターゲット装置のエミュレーション挙動を制御可能である。デバッグソフトウェアは、エミュレータソフトウェア環境とインターフェイスをとるため種々の機能を規定するので、ターゲット装置と相互作用可能である。たとえば、RAM(DATA,IDATA,XDATA)のリード/ライト、特殊機能レジスタ(SFR)のリード/ライト、プログラムコードのリード/ライト、初期化、再初期化、ターゲットハードウェアのリセット/ストップ、プログラムカウンタのリード/ライト、レジスタの取得/セット、STOP、シングルSTEP及びターゲット実行のRUN、及び、ブレークポイントのセット/クリアである。
ターゲット装置104は、シングルチップ集積回路(IC)であり、エミュレーションインターフェイス110に接続されたJTAGテストアクセスポート(TAP)コントローラ108を含む。コードメモリ112からのプログラムコードはエミュレーションインターフェイスからのデバッグコード及びレジスタ情報で置き換えられる。このようなデバッグコード及びその他の制御情報は、PC102からJTAG−TAP106及びTAPコントローラ108を介してダウンロードされる。データメモリ114は、プライベートバスを介して非同期マイクロコントローラ(CPU)116に接続される。たとえば、CPU116は、Intelタイプ80C51マイクロコンピュータでもよい。
エミュレーションインターフェイス110は、JTAGインターフェイス118、コンフィギュレーション(EMU_CFG)レジスタ120、エミュレーションデータレジスタ(EMU_DR)122、ブレークポイント(EMU_BP)レジスタ124、命令レジスタ(EMU_IR)126、プログラムカウンタ(EMU_PC)レジスタ128、エミュレーション(EM)コントローラ130、及び、エミュレーションコード又はコードメモリ112からの通常のプログラムコードの間で切り替えるバスマルチプレクサ132を含む。EMU_IR126は、EMU外部モードにあるとき、CPU116によって実行されるべき8ビット命令を収容する。EMU_PCレジスタ128は、ストップ又はブレークポイントが発生するとき、コードアドレスの現在の18ビット値を格納する。それは、プログラムカウンタアドレスへ強制的にジャンプすることによりシステムを復元するためエミュレータによって使用される。EMUブレークポイントレジスタ124は、マイクロコントローラ116が実行を中止し停止することをオペレータが望む2個の18ビット命令アドレスを格納する。
EMU_DR122は、メモリ112及び114内の8ビットデータのPC102による外部検査を提供する。EMU外部モードでは、非同期マイクロコントローラ116は、メモリ及び内部レジスタからEMU_DRレジスタ122へデータを移すように命令される。EMU_DRレジスタ122は次にJTAGインターフェイス118を介して読み出される。
表1はEMU_CFGレジスタ120で使用される9ビットを規定する。
Figure 2008507025
効果的なハードウェアアルゴリズムがJTAG−TAP標準インターフェイス106を介してPC102上で動く外部デバッグプログラムを用いてCPU116を制御するため組み込まれる。このアーキテクチャは、CPU116の性能を低下させることなく、エミュレーション機能強化システムのすべての利点を実現する。このアーキテクチャは面積当たりの最小コストと設計時間との間の均衡を表す。このようなアプローチは、命令アドレス空間とデータアドレス空間を分離する非同期マイクロプロセッサアプリケーション、たとえば、ハーバードアーキテクチャに十分に適している。このアプローチは、ターゲットマイクロプロセッサがメモリシステムバスマスタであるとき、フォンノイマンアーキテクチャの場合のように、データと命令が一つのアドレス空間を共有するシステムにも適用される。
図2はエミュレータインターフェイスモードプロセスを表し、本書では総称的な参照番号200によって参照される。エミュレーションはPC102によって制御され、EMU_CFGレジスタ120の種々のビットはPC102により書き込み可能かつ読み取り可能であり、プロセス200によって検査され部分的に修正される。表1は、以下でプロセス200を説明する際に使用されるプログラムビットシンボルを規定する。
プロセス200は、たとえば、CPU116によって、命令開始信号及びコードアドレスバスを介して、新しいプログラム命令要求で始まる。ステップ202は、EMU_ONフラグ(EMU_CFG.1)がセットされているかどうか、すなわち、エミュレーションモードがオンであるかどうかをチェックする。もしそうであるならば、ステップ204は、DIR & Start_instrフラグ(EMU_CFG.5)をチェックする。もし真であるならば、ステップ206はコードアドレス(code_add)をEMU_PCレジスタ128にコピーし、実際にはCPU116の無条件プログラムジャンプである。ステップ208はCPUの割込イネーブルビットを保存する。ステップ210は、CPU割込とウォッチドッグタイマー(WDT)をディスエーブル状態にする。ステップ212は、IR_Vを「0」にセットする。ステップ214は、IR_Vが真になるまでループする。ステップ216は、命令レジスタEMU_IRを実行のためCPU116へ送信し、次に、ステップ202へ戻る。
ステップ202によって、EMU_ONは偽であることが得られるならば、ステップ218は、コードメモリ112からの通常のプログラム命令が通常の実行のためマルチプレクサ132を介してCPU116へ向けられることを許可する。換言すると、エミュレーションモードのテストはCPU116のあらゆる命令サイクルで行われる。このことに関連したオーバーヘットは、エミュレーション命令を実行するための決定がハードウェアで実施できるので、伝搬時間の点からは非常に小さい。
ステップ204がDIR & Start_instrフラグは真ではないことを見つけるならば、ステップ220は、IEN.7を復元し、WDTをディスエーブル状態にする。ステップ222は、シングルステップ(STEP)が要求されているかどうか(EMU_CFG.3)を調べる。もしそうであるならば、ステップ224は、次の命令をCPU116へ送信する。ディレクションは偽にセットされ、ステップは偽にセットされ、たとえば、DIR=0(EMU_CFG.8)かつSTEP=0(EMU_CFG.3)である。制御はステップ202へ戻る。
ステップ222が偽であるならば、たとえば、STEP=0であるならば、ステップ228は、ブレークポイントが一致するかどうか、たとえば、第1のブレークポイントBP1(EMU_CFG.6)及び第2のブレークポイントBP2(EMU_CFG.7)を検査する。ブレークポイントが一致するならば、ステップ230はディレクションを真にセットし、ブレークポイント値を真にセットし、たとえば、DIR=1かつBPV=1である。制御はステップ202へ戻る。
ステップ228が偽であるならば、たとえば、ブレークポイントではないならば、ステップ232は、ストップ命令とスタート命令(EMU_CFG.9)を検査する。もし「YES」であるならば、ステップ236はディレクションを真にセットし、ストップ値は真にセットされ、たとえば、DIR=1かつSTOPV=1である。もし「NO」であるならば、1バイトがステップ234でCPU116へ送信される。制御はステップ202へ戻る。
本発明の実施形態では、リアルタイムでバッグが必要とされていないとき、エミュレーションのために設けられるICパッドの個数を削減することが可能であり、これらのパッドはあまり高価ではないシリアルインターフェイスを使用できることが認められる。標準的なJTAGテストアクセスポートは、テスト目的のため多数の最新IC装置に既に存在し、典型的に、シリコン面積、パッケージ、設計の点に関して既存の設計にさらなるコストを追加しない。PC102上で動くソフトウェアは、JTAGインターフェイスを介してエミュレーションインターフェイス内のレジスタを制御でき、レジスタビットはCPU116との様々な相互作用を制御するためハードウェアによって使用される。
初期化(INIT)、再初期化(RE−INIT)、及び、ターゲットリセット機能は、ハードウェアターゲットを初期化又は完成させることが必要であるときにPC102上のソフトウェアツールによって呼び出される。このようなルーチンは、PCとJTAGのインターフェイスの初期化、ならびに、エミュレーションインターフェイス110のコンフィギュレーションレジスタの初期化を含む。EMU_resetコマンドは、EMU_CFG.NRSTビットに「0」を書き込む。これはJTAGコントローラ108とエミュレーションインターフェイス110を除くチップ全体を強制的にリセットする。EMU_CFG.NRSTビットに「1」を再書き込みする前に、種々のその他のビットは、EMUリセット後にCPU116を制御するためセットされなければならない。たとえば、コードバスのEMU_HW制御をイネーブル状態にするため、EMU_CFG.EMU_ON=1であり、JTAGからのコード発行をセットするためEMU_CFG.DIR=1である。
RUN、STOP及びSTEPエミュレーション制御が組み込まれる。リセットフラグ(NRST)に再び「1」が書き込まれ、内部チップリセットシーケンスが完了すると直ぐにEMUフリーズモードに入り、CPU116は再び起動を開始しようとする。しかし、エミュレーションインターフェイス110は、EMU ONとDIRビットが「1」に一致することを見つけると、命令アドレスOx0000でCPU116をフリーズさせ、ちょうどフェッチフェーズの間に、EMUフリーズモードに入る。このフェーズでは、エミュレーションインターフェイス110のレジスタを再構成し、ブレークポイントアドレス又は外部命令を定めることが可能である。現在の命令が実行された後に、命令のディレクションを修正することも可能である。DIRビットはエミュレーションインターフェイス110によって現在の動作毎に読み取られ、次の新しい命令の先頭で再び処理される。
PC102上のエミュレーションソフトウェアがCPU116を動かし、EMU_CFG.IR_Vビットに「1」を書き込むときに、EMU外部モードに入る。このようにして、CPU116へ送られて実行される命令レジスタ126の内容を有効にする(EMU内部モード)。
CPU116によって要求された新しい命令毎にその先頭で、エミュレーションインターフェイス110は、EMU_CFGレジスタ120内のEMU−ONビット及びDIRビットをチェックする。DIRビットが1のままであるならば、エミュレーションインターフェイス110は、命令レジスタを無効にするためDR_Vビットを自動的にリセットし、EMUフリーズモードに入る。
このハンドシェイクメカニズムを用いて、外部エミュレータはその動作をターゲット装置104内のイベントと同期させる。ステップ212において、IR_Vビットが「0」になるまでIR_Vビットをポーリングして、エミュレーションPC102は、CPU116がフリーズされたときを知る。IR_Vに「1」をセットすると、CPU116はEMU_IRレジスタ126を介して現在の命令を取得する。
EMU外部モード中に割込状態に入ることを防止するため、エミュレーションインターフェイス110は、すべての割込を一時的にディスエーブル状態にし、関連した割込コントローラ内のグローバル割込イネーブルビットをリセットする。同様に、ウォッチドッグタイマーは、CPU116がエミュレーションモードである間、休止状態にされる。
グローバル割込イネーブルビットの元の値はEMU_CFG.IEビットに保存され、EMU内部モードに入るたびに割込コントローラ中に復元される。
EMU内部モードの間に、新しい命令の先頭でDIRビットが「0」であるならば、ターゲット装置104は、EMU CFG.STEPビットの値に応じて、EMU内部ステップモード又はEMU内部標準モードのいずれかに入る。
EMU内部ステップモードでは、1個の完全な命令だけが内部メモリからCPU116へ供給される。エミュレーションインターフェイス110は次にコードアドレスバス値をEMU−PUレジスタへコピーし、次のサイクルのためのDIRビットに「1」をセットし、グローバル割込イネーブルビットをEMU CFG.IEへコピーし、STEPビットを0にリセットする。
第2の場合であるEMU内部標準モードでは、実行は、STOPコマンドが受信されるまで、内部メモリから最高速度で進む。これは、EMU CFG.STOPに「1」を書き込むことによって行われるか、又は、ブレークポイントに達するまで行われる。エミュレーションインターフェイス110は次にコードアドレスバス値をEMU−PUレジスタへコピーし、次のサイクルのためのDIRビットに「1」をセットし、グローバル割り込みイネーブルビットをEMU_CFGへコピーし、EMU V.STOP V(ストップ値ビット)に「1」をセットするか、又は、EMU V.BP1 V/BP2 V(ブレークポイントビット)に「1」をセットする。
PC102上のエミュレーションソフトウェアツールは、好ましくは、CPU116を介してデータ/コードメモリ空間のすべてに間接的なリード/ライトアクセスだけを行う。エミュレーションインターフェイス110のコードメモリ112及びデータメモリ114への直接アクセスは、CPU116が非同期式であり、おそらくメモリの多重化アクセスがプロセス実行を低速化するので望ましくない。CPU116がエミュレーション状態にある間に、エミュレーションインターフェイスを介して任意のコードを実行することが可能である。あらゆる種類の内蔵メモリ(RAM、フラッシュ及びレジスタ)へのアクセスは、メモリ内容をJTAGによってアクセス可能なエミュレーションハードウェアレジスタへ移すためルーチンを動かすことにより、データシャトルを行うためにCPU116を使用する。
本発明の特定の実施形態が記載され説明されているが、これによって発明を制限することは意図されていない。修正及び変更はおそらく当業者に明らかになり、発明は特許請求の範囲によってのみ制限されることが意図されている。
本発明のエミュレーションシステムの実施形態の機能ブロック図である。 図1のシステムにおいて有用である本発明のエミュレーションインターフェイスモード方法の実施形態のフローチャートである。
符号の説明
100 エミュレーションシステム
104 ターゲット装置
108 TAPコントローラ
110 エミュレーションインターフェイス
112 コードメモリ
114 データメモリ
116 CPU
118 JTAGインターフェイス
120 コンフィギュレーションレジスタ
122 エミュレーションデータレジスタ
124 ブレークポイントレジスタ
126 命令レジスタ
128 プログラムカウンタ
130 エミュレーションコントローラ

Claims (12)

  1. ソフトウェアエミュレーションツール、ユーザインターフェイス、及び、JTAGコネクタを伴う外部コンピュータと、
    前記JTAGコネクタと接続するJTAGテストアクセスポート(TAP)、及び、前記ソフトウェアエミュレーションツールとの通信をサポートし集積回路ターゲット装置内に配置されたJTAG TAPコントローラと、
    プライベートコードメモリ及びデータメモリを有し、前記集積回路ターゲット装置に配置された非同期マイクロコントローラと、
    前記集積回路ターゲット装置に配置され、前記JTAG TAPコントローラと前記非同期マイクロコントローラとの間に接続されたエミュレーションインターフェイスと、
    前記エミュレーションインターフェイスに配置され、前記非同期マイクロコントローラから利用され前記非同期マイクロコントローラを制御するデータ、プログラム命令、プログラムカウンタ、ブレークポイント、及び、エミュレーションコンフィギュレーションに関するリード/ライトアクセスを前記ソフトウェアエミュレーションツールに提供するエミュレーションレジスタの組と
    を備えている、集積回路テスト用のエミュレーション及びデバッグシステム。
  2. 前記エミュレーションインターフェイスに配置され、前記エミュレーションレジスタの組に含まれる命令レジスタ又は前記コードメモリの何れかからのプログラム命令を選択するため前記ソフトウェアエミュレーションツールによって制御されるマルチプレクサをさらに備えている、請求項1に記載のシステム。
  3. 前記エミュレーションインターフェイスに配置され、新しいプログラム命令フェッチのそれぞれの先頭で命令が前記ソフトウェアエミュレーションツールによって供給された命令で置き換えられるように前記非同期マイクロコントローラと相互接続されたエミュレーションコントローラをさらに備えている、請求項1に記載のシステム。
  4. 前記エミュレーションコントローラと関連付けられ、前記エミュレーションインターフェイスに配置され、前記ソフトウェアエミュレーションツールによって供給されたプログラムの実行を停止状態にするため前記非同期マイクロコントローラの各エミュレーションサイクル中に検査されるブレークポイントレジスタをさらに備えている、請求項3に記載のシステム。
  5. 前記JTAG TAPが、
    前記JTAG−TAPコントローラ内の内部状態マシンの動作を同期させるTCK/クロックピンと、
    前記状態マシンの次の状態を判定するためTCKの立ち上がりエッジでサンプルされるTMS/モード選択ピンと、
    TCKの立ち上がりエッジでサンプルされ、前記内部状態マシンが正しい状態であるときにプログラミングロジックへシフトインされるTDI/データインピンと、
    シフトアウトされたデータを表し、TCKの立ち下がりエッジで有効であるTDO/データアウトピンと、
    前記内部状態マシンをリセットするTRST/リセットピンと
    を含む、請求項1に記載のシステム。
  6. ソフトウェアエミュレーションツールをホスティングする外部コンピュータと接続するJTAGテストアクセスポート(TAP)と、
    前記JTAG−TAPに接続され、前記ソフトウェアエミュレーションツールとの通信をサポートするJTAG TAPコントローラと、
    プライベートコードメモリ及びデータメモリを有する非同期マイクロコントローラと、
    前記JTAG TAPコントローラと前記非同期マイクロコントローラとの間に接続されたエミュレーションインターフェイスと、
    前記エミュレーションインターフェイスに配置され、前記非同期マイクロコントローラから利用され前記非同期マイクロコントローラを制御するデータ、プログラム命令、プログラムカウンタ、ブレークポイント、及び、エミュレーションコンフィギュレーションに関するリード/ライトアクセスを前記ソフトウェアエミュレーションツールに提供するエミュレーションレジスタの組と
    を単一の集積回路内に備えている、集積回路ターゲット装置。
  7. 前記エミュレーションインターフェイスに配置され、前記エミュレーションレジスタの組に含まれる命令レジスタ又は前記コードメモリの何れかからのプログラム命令を選択するため前記ソフトウェアエミュレーションツールによって制御されるマルチプレクサをさらに備えている、請求項6に記載の装置。
  8. 前記エミュレーションインターフェイスに配置され、新しいプログラム命令フェッチのそれぞれの先頭で命令が前記ソフトウェアエミュレーションツールによって供給された命令で置き換えられるように前記非同期マイクロコントローラと相互接続されたエミュレーションコントローラをさらに備えている、請求項6に記載の装置。
  9. 前記エミュレーションコントローラと関連付けられ、前記エミュレーションインターフェイスに配置され、前記ソフトウェアエミュレーションツールによって供給されたプログラムの実行を停止状態にするため前記非同期マイクロコントローラの各エミュレーションサイクル中に検査されるブレークポイントレジスタをさらに備えている、請求項8に記載の装置。
  10. 前記JTAG TAPが、
    前記JTAG−TAPコントローラ内の内部状態マシンの動作を同期させるTCK/クロックピンと、
    前記状態マシンの次の状態を判定するためTCKの立ち上がりエッジでサンプルされるTMS/モード選択ピンと、
    TCKの立ち上がりエッジでサンプルされ、前記内部状態マシンが正しい状態であるときにプログラミングロジックへシフトインされるTDI/データインピンと、
    シフトアウトされたデータを表し、TCKの立ち下がりエッジで有効であるTDO/データアウトピンと、
    前記内部状態マシンをリセットするTRST/リセットピンと
    を含む、請求項6に記載の装置。
  11. 外部ユーザコンピュータからターゲット装置をエミュレーションする方法であって、
    前記外部ユーザコンピュータ上で動くソフトウェアエミュレーションツールによってJTAGテストアクセスポートを介してエミュレーションインターフェイスに供給されたデータ、プログラム命令、プログラムカウンタ、ブレークポイント、及び、エミュレーションコンフィギュレーションをダウンロードするステップと、
    前記エミュレーションインターフェイスにも接続された非同期マイクロコントローラを用いて新しい命令をフェッチするステップと、
    エミュレーションモードがオフであるならば、前記非同期マイクロコントローラを用いて前記命令を実行し、その後にフェッチするステップへ戻るステップと、
    さもなければ、前記ソフトウェアエミュレーションツールによって供給され、前記エミュレーションインターフェイス内のエミュレーションレジスタに格納された命令を実行し、その後にフェッチするステップへ戻るステップと
    を備えている方法。
  12. 前記エミュレーションモードがオンであるならば、プログラムカウンタを前記エミュレーションインターフェイス内に格納されたブレークポイントとテストし、もし一致が見つかるならば、実行を停止するステップをさらに備えている、請求項11に記載の方法。
JP2007520966A 2004-07-16 2005-07-16 集積回路テスト用エミュレーション及びデバッグインターフェイス Withdrawn JP2008507025A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US58856204P 2004-07-16 2004-07-16
US63211204P 2004-11-30 2004-11-30
PCT/IB2005/052372 WO2006008721A2 (en) 2004-07-16 2005-07-16 Emulation and debug interfaces for testing an integrated circuit with an asynchronous microcontroller

Publications (1)

Publication Number Publication Date
JP2008507025A true JP2008507025A (ja) 2008-03-06

Family

ID=35462490

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007520966A Withdrawn JP2008507025A (ja) 2004-07-16 2005-07-16 集積回路テスト用エミュレーション及びデバッグインターフェイス

Country Status (3)

Country Link
EP (1) EP1782204A2 (ja)
JP (1) JP2008507025A (ja)
WO (1) WO2006008721A2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070214389A1 (en) * 2006-03-08 2007-09-13 Severson Matthew L JTAG power collapse debug
DE102008019861A1 (de) * 2008-04-17 2009-10-29 Göpel electronic GmbH Verfahren zum Steuern von Anschlusspins eines emulationsfähigen Bausteins und Anordnung zur Durchführung des Verfahrens
CN101814054B (zh) * 2010-03-23 2012-05-02 苏州国芯科技有限公司 一种用于调试微控制器的指令追踪控制器
CN104239176A (zh) * 2014-10-16 2014-12-24 成都傅立叶电子科技有限公司 基于互联网的多用户多目标远程jtag调试系统
CN105528270B (zh) * 2015-12-30 2018-03-30 东风商用车有限公司 一种jtag和bdm集成调试接口及其使用方法
CN111984521B (zh) * 2019-05-23 2022-11-29 核工业理化工程研究院 一种无需jtag介入的板级调试方法
CN111753475B (zh) * 2020-06-28 2022-06-28 福建工程学院 一种基于Cortex-M0+微控制器仿真MSI数字逻辑芯片的方法
CN112100954A (zh) 2020-08-31 2020-12-18 北京百度网讯科技有限公司 验证芯片的方法、装置和计算机存储介质
CN117632611B (zh) * 2023-12-05 2024-05-14 北京中天星控科技开发有限公司 一种微处理器芯片的通用测试装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020065646A1 (en) * 2000-09-11 2002-05-30 Waldie Arthur H. Embedded debug system using an auxiliary instruction queue

Also Published As

Publication number Publication date
WO2006008721A3 (en) 2006-12-21
EP1782204A2 (en) 2007-05-09
WO2006008721A2 (en) 2006-01-26

Similar Documents

Publication Publication Date Title
US7113902B2 (en) Data processing condition detector with table lookup
US6185732B1 (en) Software debug port for a microprocessor
US6145123A (en) Trace on/off with breakpoint register
JP4190114B2 (ja) マイクロコンピュータ
US6385742B1 (en) Microprocessor debugging mechanism employing scan interface
US6094730A (en) Hardware-assisted firmware tracing method and apparatus
JP4126105B2 (ja) デジタルプロセッサのテスト方法
US8180620B2 (en) Apparatus and method for performing hardware and software co-verification testing
US6922821B1 (en) System and a method for checking lock step consistency between an in circuit emulation and a microcontroller while debugging process is in progress
EP0636976B1 (en) Microcontroller provided with hardware for supporting debugging as based on boundary scan standard-type extensions
US6145122A (en) Development interface for a data processor
JP2008507025A (ja) 集積回路テスト用エミュレーション及びデバッグインターフェイス
EP0652516A1 (en) Integrated microprocessor
US20120151263A1 (en) Debug state machines and methods of their operation
US20070094644A1 (en) Programmable Extended Compression Mask for Dynamic Trace
GB2266606A (en) A microprocessor with an external command mode for diagnosis and debugging
EP1132816A2 (en) Automatic detection of connectivity between an emulator and a target device
US7127639B2 (en) Distinguishing between two classes of trace information
US7526422B1 (en) System and a method for checking lock-step consistency between an in circuit emulation and a microcontroller
JP2004178590A (ja) データ一致認定および完全または部分的重複によって、多数のサイズのメモリ・アクセスを検出するアドレス範囲比較器
CN100533401C (zh) 测试具有异步微控制器的集成电路的仿真和调试接口
KR20070035570A (ko) 에뮬레이션 및 디버그 시스템, 집적 회로 목표 장치 및에뮬레이션 방법
Rath Open on-chip debugger
Banik et al. System Firmware Debugging
CN207946806U (zh) 一种调试器和调试装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080714

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20080703

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20091102