JP3715456B2 - 物理的および/またはシミュレートされたハードウエアを含み、エンベットされたマイクロプロセッサ・システムをテストするシステムおよび方法 - Google Patents

物理的および/またはシミュレートされたハードウエアを含み、エンベットされたマイクロプロセッサ・システムをテストするシステムおよび方法 Download PDF

Info

Publication number
JP3715456B2
JP3715456B2 JP03913699A JP3913699A JP3715456B2 JP 3715456 B2 JP3715456 B2 JP 3715456B2 JP 03913699 A JP03913699 A JP 03913699A JP 3913699 A JP3913699 A JP 3913699A JP 3715456 B2 JP3715456 B2 JP 3715456B2
Authority
JP
Japan
Prior art keywords
target
hardware
processor
target processor
signal
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.)
Expired - Fee Related
Application number
JP03913699A
Other languages
English (en)
Other versions
JPH11296404A (ja
Inventor
アール. バックマスター マイケル
エス. バーガー アーノルド
Original Assignee
メトロワークス コーポレイション
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 メトロワークス コーポレイション filed Critical メトロワークス コーポレイション
Publication of JPH11296404A publication Critical patent/JPH11296404A/ja
Application granted granted Critical
Publication of JP3715456B2 publication Critical patent/JP3715456B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation

Landscapes

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

Description

【0001】
【発明の属する技術分野】
本発明は、一般的には、組み込み型システムにおけるソフトウェアとハードウェアをテストすることに関し、さらに具体的には、ハードウェアを全体的にまたは部分的にシミュレートすることが可能であるような、組み込み型システムにおけるソフトウェアとハードウェアをテストするためのシステムおよび方法に関する。
【0002】
【従来の技術】
コンピュータ・シミュレーションの使用は、回路設計などの多くの分野で普及している。集積回路の製造コストは極めて高価であり、集積回路に組み込まれるハードウェアは集積回路の実際の製造前にテストすることが望ましいとされている。その目的のために、集積回路メーカは、ハードウェアと、そのハードウェアに実行させることを目的としたソフトウェアとをテストするためにシミュレータを使用することがよく行われている。望ましいハードウェア設計は「ターゲット・ハードウェア」と呼ばれるのに対し、ターゲット・ハードウェア内の「ターゲット・プロセッサ」に実行させることを目的としたソフトウェアは「ターゲット・プログラム」と呼ばれている。
【0003】
ターゲット・ハードウェアの製造前にターゲット・ハードウェアをテストするために使用される手法には、いくつかの手法がある。そのアプローチの1つは、コンピュータ・ハードウェア・シミュレータを使用してハードウェアをシミュレートする方法である。ハードウェア・シミュレータとは、ターゲット・ハードウェアの応答をシミュレートするソフトウェア・プログラムであり、その全体がソフトウェアで実現されている。従って、ハードウェア・シミュレータでは、ターゲット・ハードウェアはターゲット・プロセッサも含めて、その全体がコンピュータ・ソフトウェアによってシミュートされている。
【0004】
アプローチのもう1つは、ターゲット・ハードウェアのハードウェア・エミュレータとのインタフェースとなるターゲット・プロセッサを使用する方法である。このハードウェア・エミュレータは、フィールドプログラマブル(書き換え可能)ゲートアレイ (field-programmable gate array)などのように、ターゲット・ハードウェアの機能を実行するようにプログラム可能である再構成可能ハードウェアを使用して実現されているのが代表的である。ターゲット・プログラムはハードウェア・エミュレータと共に使用されるメモリ・デバイスから実行されているのが代表的である。しかし、ターゲット・プロセッサはマイクロプロセッサ・エミュレータ内のマイクロプロセッサを使用して実現できる場合もあり、そのような場合には、ターゲット・プロセッサは、マイクロプロセッサ・エミュレータ内のメモリからのターゲット・プログラムを実行することが可能になっている。従って、ハードウェア・エミュレータによる方法では、ターゲット・ハードウェアはターゲット・プロセッサも含めて、その全体がハードウェアで実現されており、その場合には、ターゲット・プロセッサは実際のターゲット・ハードウェアではなく、エミュレートされたターゲット・ハードウェアとのインタフェースとなっている。
【0005】
さらに最近では、組み込み型システム (embedded system)をテストするためのシステムが開発されており、そこでは、ハードウェア・シミュレータはマイクロプロセッサ・エミュレータに結合されている。このシステムは米国特許出願第 08/566,401 号(発明者 Geoffrey J. Bunza) に記載されている。なお、これは引用により本明細書の一部を構成するものである。コミュニケーション・インタフェースはメモリ、エミュレータ内のマイクロプロセッサ、およびハードウェア・シミュレータの相互間のコミュニケーションを制御する。マイクロプロセッサはメモリからターゲット命令を受け取ると、そのターゲット命令を実行する。マイクロプロセッサがターゲット・ハードウェアとのやりとり (interaction)を必要とするときは、エミュレータはハードウェア・シミュレータと連絡して、シミュレートされたターゲット・ハードウェアがマイクロプロセッサとやりとりするようにする。Bunzaがとっているアプローチの利点は、ハードウェア・シミュレータがマイクロプロセッサをシミュレートする必要がないために、ハードウェア・シミュレーション・タスクが大幅に軽減されることである。さらに、ターゲット・コードは、ターゲット・ハードウェアとのやりとりが行われるまではほぼ通常のスピードで実行される。
【0006】
上述したアプローチの各々には、利点と欠点がある。ハードウェア・シミュレタは、特にターゲット・プログラムを実行する複雑なマイクロプロセッサをシミュレートするために使用されるときは極めて低速で、扱いづらくなっている。従って、完全なターゲット・プログラムをテストすることは、代表的なハードウェア・シミュレータが必要とする実行時間が非常に長いために実用的でない。ハードウェア・エミュレータとのインタフェースとなる実際のターゲット・プロセッサを使用すると、ターゲット・プログラムの実行は高速化されるが、ターゲット・ハードウェアの機能を実行するために必要とされるハードウェア・エミュレータのプログラミングの費用が高くなる可能性がある。Bunzaによるアプローチは上述した問題の多くを解決しているが、それが使用できるのはシミュレートされたターゲット・ハードウェアに限られている。このアプローチは、ハードウェア全体またはその一部がターゲット・システム内に物理的に存在する場合には、ターゲットのソフトウェアとハードウェアをテストするために使用することができない。従って、ターゲット・システムをテストできるのは、Bunzaのアプローチを使用する場合はターゲット・ハードウェアの製造が開始される前であり、従来のエミュレータを使用する場合はターゲット・ハードウェアの製造が完了した後である。しかし、ターゲット・ソフトウェアとハードウェアを、ターゲット・ハードウェアが部分的にしか製造されていないハードウェア製造過程でテスト可能にする、満足すべき手法はまだ知られていない。
【0007】
32ビット・マイクロプロセッサと複雑なオペレーティング・ソフトウェアの出現に伴って、組み込み型システムは非常に複雑化している。今日製造されているエレクロニック製品の大部分はストアド・ソフトウェア・プログラムを実行する、ある種のコンピュータ・ハードウェアを実装している。組み込み型システムの代表例としては、「ターゲット・プログラム」内の命令を実行し、特定用途向けIC (application specific integrated circuit - ASIC) またはカスタムIC (custom integrated circuit)といった「ターゲット・ハードウェア」とやりとりする「ターゲット・プロセッサ」がある。
【0008】
最新のエレクトロニクス設計の複雑さと密度が与えられているとき、望ましいことは、最初のシステム・プロトタイプが、ターゲット・ハードウェアとターゲット・プログラムも含めて、フォーム(形状)、フィット(適合性)および機能の面で最終製品と近似していることである。従って、ターゲット・ハードウェア・プロトタイプは最終的なASICおよびカスタムIC設計を含んでいるのが理想的である。しかるに、以下で述べる理由により、通常の場合、組み込み型システムのプロトタイプを上記のような方法で作ることは実用的でない。
【0009】
ソフトウェア・エンジニアが作業を開始するとき、最終的にターゲット・プログラムを実行するターゲット・ハードウェアは物理的な形で存在していない。上で説明したように、ターゲット・ハードウェアが物理的に実現される前にターゲット・ソフトウェアがソターゲット・ハードウェアとやりとりしながらターゲット・ソフトウェアをテストしていくことを可能にする、さまざまな方法が開発されている。しかし、同じく上で説明したように、これらの方法はいずれも完全に満足すべきものではない。その結果、ターゲット・システムの物理的ターゲット・ハードウェアとターゲット・ソフトウェアは、プロトタイプ・ターゲット・ハードウェアが製造されたとき初めて一緒にされるのが代表的になっている。物理的ターゲット・ハードウェアはその前に利用可能になっていないため、プロトタイプ・ターゲット・ハードウェアとソフトウェアの統合化時にロードされたターゲット・プログラムが働いていないことがよくある。よくあることは、この統合化問題は厳密にはソフトウェアの複雑さが原因で起こっている。そのために、ターゲット・プログラムに問題があることが原因でソフトウェア開発に著しい遅延が起こっている。統合化のその他の問題は、ターゲット・ハードウェアがターゲット・プログラムとやりとりすることが原因で起こっている。その結果、ASICとカスタムIC設計のコストが多大であることを考えると、ソフトウェア修正が相対的に低コストで容易なので、ソフトウェアをターゲット・ハードウェア・プロタイプに無理に適合させることがよく行われ、それにより予定されたソフトウェア開発期間が全体的に増大する。
【0010】
【発明が解決しようとする課題】
以上の理由から、組み込み型システムのターゲット・プログラムとターゲット・ハードウェアを、ターゲット・ハードウェアの一部だけがすでに製造され、組み込み型システムに物理的に存在している時点も含めて、ターゲット・ハードウェアの設計と製造期間全体にわたってテストすることを可能にするようなシステムが要求されている。
【0011】
【課題を解決するための手段】
本発明は、ターゲット・プロセッサと、そのターゲット・プロセッサによって実行されるターゲット・プログラムを格納しているメモリと、その一部だけが物理的に存在し、ターゲット・プログラムに結合されているようなターゲット・ハードウェアとを実装している組み込み型エレクトロニック・システムをテストするためのシステムと方法で実現されている。テスト・システムは、ターゲット・プロセッサに結合されたターゲット・モニタと、ターゲット・ハードウェアのうち組み込み型システムにまだ物理的に存在しない部分をシミュレートするように構成されたハードウェア・シミュレータと前記ターゲット・モニタとを結合しているコミュニケーション・インタフェースとを含んでいる。ターゲット・モニタは、ターゲット・プロセッサがターゲット・ハードウェアのシミュレート部分にアクセスする時点またはターゲット・ハードウェアのシミュレート部分がターゲット・プロセッサにアクセスする時点を検出する。シミュレートされたターゲット・ハードウェアへのアクセスを検出すると、ターゲット・モニタはターゲット・プロセッサがターゲット・プログラムを実行することを一時中止させる。その後、ターゲット・モニタはターゲット・プロセッサから出力され、シミュレートされたハードウェアに送られる出力信号を、対応する出力データに変換する。この出力データはコミュニケーション・インタフェース経由でハードウェア・シミュレータに転送され、そこでデータは、もしターゲット・ハードウェアが組み込み型システムに物理的に存在していれば、ターゲット・プロセッサからの対応する信号がそのターゲット・ハードウェアによって処理されるのと同じように処理される。シミュレートされたターゲット・ハードウェアがターゲット・プロセッサにアクセスすることを試みるか、あるいはターゲット・プロセッサによるアクセスに応答することを試みると、ハードウェア・シミュレータは、信号、すなわち、もしターゲット・ハードウェアが組み込み型システムに物理的に存在していれば、そのターゲット・ハードウェアによって生成されるであろう信号に対応する入力データを生成する。この入力データはコミュニケーション・インタフェースを通してターゲット・モニタに結合され、そこでデータはターゲット・プロセッサに印加される信号に変換される。この信号は、もしターゲット・ハードウェアが組み込み型システムに物理的に存在していれば、そのターゲット・ハードウェアによって生成される信号と同じものである。組み込み型システムに物理的に存在するターゲット・ハードウェアへの、ターゲット・プロセッサによるアクセスは、そのターゲット・ハードウェアのすべてが製造された後で組み込み型システムで行われるのと同じように行われる。
【0012】
好ましくは、ターゲット・モニタはシミュートされた物理ハードウェアへのアクセスを、次の2つのモードのどちらかで検出する。第1のモードでは、ターゲット・モニタは、シミュレートされたターゲット・ハードウェアのアドレス空間にあるアドレスがターゲット・プロセッサから出されるとそのことを検出する。第2のモードでは、ターゲット・モニタは、ターゲット・プロセッサによるアクセスに応じて通常行われるようにターゲット・ハードウェアがあらかじめ定めた時間内に、受信確認信号を返すことができないと、そのことを検出する。シミュレートされたターゲット・ハードウェアのアドレス空間内のアドレスへのアクセスは、好ましくは、マッピング・メモリとアドレス・コンパレータを使用して検出される。マッピング・メモリはシミュレートされたターゲット・ハードウェアのアドレス空間内のアドレスを記録しており、アドレス・コンパレータはターゲット・プロセッサのアドレス・バスに現れた各アドレスを、マッピング・メモリに記録されたアドレスと比較する。アドレスが一致していれば、ターゲット・モニタはターゲット・プログラムの実行を一時中止し、上述したようにハードウェア・シミュレータによりアクセス処理を実行させる。受信確認信号が返されなかったことは、制御信号モニタとタイマによって検出することが好ましい。制御信号モニタは、ターゲット・プロセッサが物理ターゲット・ハードウェアにアクセスすると、物理ターゲット・ハードウェアからの受信確認信号を受信するように構成された、ターゲット・プロセッサ上の端子をモニタしている。制御信号モニタは受信確認信号を受信すると、それに応答して検出信号を生成する。タイマはターゲット・プロセッサがターゲット・ハードウェアにアクセスすると、それに応答してタイミング期間の計時を開始する。タイミング期間を開始した後、あらかじめ定めた期間内に検出信号が受信されていなければ、タイマはターゲット・プログラムの実行を一時中止し、上述したようにアクセスをハードウェア・シミュレータによりアクセス処理を実行させる。
【0013】
【発明の実施の形態】
組み込み型エレクトロニック・システムをテストするためのシステムの一実施形態を図1に示す。組み込み型システム10はターゲット・プロセッサ12と、これに結合されたメモリ14とを備え、メモリ14はターゲット・プロセッサ12によって実行されるターゲット・プログラム16を少なくとも格納している。メモリ14は、ターゲット・プロセッサ12によって使用される他のプログラム命令および/またはデータを格納しておくことも可能である。また、メモリ14はリードオンリメモリ(read only memory - ROM)、ランダムアクセスメモリ(random access memory - RAM)、またはROMとRAMを組み合わせたものにすることができる。
【0014】
組み込み型システム10内のターゲット・プロセッサ12には物理ターゲット・ハードウェア20も結合されており、これはすでに実装されているターゲット・ハードウェアからなっている。ターゲット・ハードウェアのうち、まだ物理ターゲット・ハードウェアに含まれていない残余部分は以下で説明するようにシミュレートされている。
【0015】
組み込み型システム10をテストするためのシステム30は、ターゲット・モニタ32、コミュニケーション・インタフェース34、およびコミュニケーション・インタフェース34を通してターゲット・モニタ32に結合されているハードウェア・シミュレータ36を含んでいる。ハードウェア・シミュレータ36はターゲット・ハードウェアのうち物理ターゲット・ハードウェア20に含まれていない部分をシミュートする、従来型のデバイスである。例えば、ハードウェア・シミュレータは適切に構成されたハードウェア・シミュレーション・プログラムを実行するホスト・コンピュータで実現することが可能である。
【0016】
オペレーション時には、ターゲット・プロセッサ12はターゲット・プログラム16を実行することにより、ターゲット・プロセッサ12は物理ターゲット・ハードウェア20と、シミュレートされたターゲット・ハードウェアの両方にアクセスする。ターゲット・プロセッサ12は物理ターゲット・ハードウェア20に通常のようにアクセスするが、これは物理ターゲット・ハードウェア20が実際に組み込み型システム10に存在するからである。しかし、ターゲット・プロセッサ12は、シミュレートされたターゲット・ハードウェアがまだ実装されていないので、ターゲット・ハードウェアのシミュレートされた部分に通常のようにアクセスすることができない。
【0017】
ターゲット・プロセッサ12が物理ターゲット・ハードウェア20以外のターゲット・ハードウェアにアクセスすることを試みるとき、ターゲット・プロセッサ12はそのターゲット・ハードウェアにではなくテスト・システム30にアクセスする。より具体的には、ターゲット・モニタ32は以下で説明するように、ターゲット・プロセッサ12上の該当する端子をモニタし、物理ターゲット・ハードウェア20に含まれていないターゲット・ハードウェアにターゲット・プロセッサ12がいつアクセスしようと試みているかを判断する。次に、ターゲット・モニタ32はターゲット・プロセッサ12からの出力信号を対応する出力データに変換する。この出力データはコミュニケーション・インタフェース34を通してハードウェア・シミュレータ36に結合される。その後、ハードウェア・シミュレータ36は、ターゲット・ハードウェアがもし組み込み型システムに物理的に存在していれば、ターゲット・プロセッサ12からの出力信号を処理するのと同じように出力データを処理する。ある場合には、ターゲット・ハードウェアは信号をターゲット・プロセッサ12に返すことによって、ターゲット・プロセッサ12からの出力信号に応答するように構成されている。他の場合には、ターゲット・ハードウェアはターゲット・プロセッサ12とのやりとりを開始するようになっている。どちらの場合も、ハードウェア・シミュレータ36は入力データを生成し、この入力データはコミュニケーション・インタフェース34を通してターゲット・モニタ32に結合される。その後、ターゲット・モニタ32は入力データを対応する入力信号に変換し、この入力信号はターゲット・プロセッサ12の該当する端子に印加される。入力信号は、シミュレートされたターゲット・ハードウェアがもし組み込み型システム10に物理的に存在していれば、ターゲット・プロセッサ12に印加されるであろう入力信号と同じものである。
【0018】
ターゲット・プロセッサ12がシミュレートされたターゲット・ハードウェアに、上述したようにアクセスしている時間の間に、ターゲット・モニタ32は該当する制御信号をターゲット・プロセッサ12に印加して、ターゲット・プログラム16の実行を一時中止させる。従って、ターゲット・プログラム16の実行は、シミュレートされたターゲット・ハードウェアがもし物理ターゲット・ハードウェア20の一部であれば、ターゲット・プログラム16が実行されるのと同じ順序で続けられる。ターゲット・プロセッサ12がターゲット・プログラム16の実行を一時中止している時間の間に、ターゲット・プロセッサは種々の割り込みルーチンで割り込処理サービスを行うことができる。これは、ターゲット・プロセッサ12を延長待ち状態(extended waited state)に置いたままにし、ターゲット・プログラムの実行を一時中止することによって実現される。具体的には、バス・サイクルは終了され、例外ハンドラ、すなわち、カストマがターゲット・プログラムにリンクするような例外ハンドラへの即時ベクトル (immediate vector) がある。この例外ハンドラは基本的にポーリング・ループ内に置かれていて、ポーリング・ループによりハードウェア・シミュレータ36がシミュレートされたターゲット・ハードウェアへのアクセスの処理を完了するのを待機する。このポーリング・ループの間、ターゲット・プロセッサ12によるサービスを必要とする他の例外は、いずれもそのサービスを受けることができる。ハードウェア・シミュレータ36が応答すると、ポーリング・ループから抜け出て、シミュレートされたターゲット・ハードウェアへのアクセスを引き起こしたバス・サイクルが再生成され、例外ハンドラから抜け出ることになる。このプロセスはシミュレートされたターゲット・ハードウェア36への読み取りアクセスのときだけ行われるのが代表的である。その理由は、書き込みアクセスはバス・サイクルを正しく完了するためには、シミュレートされたターゲット・ハードウェアからデータを受信したかどうかに左右されないためである。従って、ターゲット・プロセッサ12はある程度のマルチタスキングにすることが可能である。
【0019】
ターゲット・プロセッサ12とメモリ14はスタンドアロン・コンポーネントであるかのように図1に示されているが、当然に理解されるように、これらは物理ターゲット・ハードウェア20を実装している組み込み型システムにプラグインされる従来型のエミュレータ(図示せず)にすることも可能である。
【0020】
物理ターゲット・ハードウェア20の一部ではないターゲット・ハードウェアに対して、ターゲット・プロセッサ12がいつアクセスしようと試みているかを判断するためにターゲット・モニタ32によって使用される手法には、さまざまなものがある。例えば、ターゲット・モニタ32はシミュレートされたターゲット・ハードウェアのアドレス空間内にあるアドレスを記録することができる。その後、ターゲット・モニタ32はターゲット・プロセッサ12のアドレス・バスをモニタすることができる。ターゲット・プロセッサ12がシミュレートされたハードウェアのアドレス空間内にあるアドレスを出力した場合には、ターゲット・モニタ32はターゲット・プロセッサ12のデータ・バスとアドレス・バスに現れた信号をキャプチャし、1つまたは2つ以上の制御信号をターゲット・プロセッサ12に印加して、シミュレートされたハードウェアへのアクセスが完了するまでターゲット・プログラムの実行を一時中止する。上記とは別に、シミュレートされたハードウェアがアクセスに対して受信確認または他の信号で応答するように構成されている場合には、ターゲット・モニタ32は、ターゲット・プロセッサ12に結合されている受信確認または他の信号がそこに現れる、信号ラインをモニタすることができる。受信確認または他の信号があらかじめ定めた時間内にターゲット・プロセッサ12に印加されない場合には、受信確認または他の信号を返す物理ターゲット・ハードウェア20が組み込み型システム10に存在しないことが明らかであるので、ターゲット・モニタ32はそのアクセスをシミュレートされたターゲット・ハードウェアへのアクセスとして扱うことができる。
【0021】
以下では、図1のテスト・システム30で使用されるターゲット・モニタ32とコミュニケーション・インタフェースの実施形態について、図2を参照して詳しく説明する。ターゲット・モニタ32は、(a) ターゲット・プロセッサ12(図1)のアドレス・バス、制御バスおよびデータ・バスに結合されているターゲット・インタフェース回路40、(b) ターゲット・プロセッサ12がシミュレートされたターゲット・ハードウェアにいつアクセスしようと試みているかを検出するアクセス検出器42、(c) ターゲット・プロセッサ12からの信号をキャプチャし、ターゲット・プロセッサ12に印加する信号を生成するバス・キャプチャ/ドライバ回路44、(d) ターゲット・モニタ32のオペレーションを制御する制御プロセッサ46、(e) プロセッサ46によって実行されるプログラムを格納しているROM 48、および(f) データをストアするためにプロセッサ46によって使用されるRAM50を含んでいる。プロセッサ46は、コミュニケーション・インタフェース34に結合されている通信ポート54も含んでいる。コミュニケーション・インタフェース34は従来のイーサネット (Ethernet) ドライバ66と、ハードウェア・シミュレータ36(図1)の従来型イーサネット・コネクタ(図示せず)に接続される従来型イーサネット・コネクタ68とを含んでいる。
【0022】
ターゲット・インタフェース回路40はターゲット・アドレス・バス・バッファ70、ターゲット制御バス・バッファ72およびターゲット・データ・バス・バッファ74を含んでいる。ターゲット・アドレス・バス・バッファ70はターゲット・プロセッサ12のアドレス・バスからアドレス信号を受信し、その信号を内部アドレス・バス80に結合する。同様に、ターゲット・データ・バス・バッファ74は、ターゲット・プロセッサ12のデータ・バスと内部データ・バス94の間を結合し、データ信号を転送する。ターゲット制御バス・バッファ72は、ターゲット・プロセッサ12の制御バスと内部制御バス82の間を結合し、少なくとも一部の制御信号を転送する。ターゲット・プロセッサ12から内部制御バス82に転送される制御信号の1つとして、ターゲット・クロック・ライン90に結合されているターゲット・クロック信号がある。
【0023】
システムはターゲット・クロック信号も受信し、その信号をターゲット・データ/制御バス・バッファ制御回路88に印加するターゲット・クロック制御回路86も含んでいる。ターゲット・データ/制御バス・バッファ制御回路88はターゲット制御バス・バッファ72とターゲット・データ・バス・バッファ74をターゲット・クロック信号と同期して選択的にイネーブルして、ターゲット・プロセッサ12からの制御信号およびデータ信号をキャプチャし、その制御信号およびデータ信号を適切な時間にターゲット・プロセッサ12に印加できるようにする。
【0024】
場合によっては、ターゲット・クロック制御回路86とターゲット・データ/制御バス・バッファ制御回路88はテスト目的のために、組み込み型システム10に組み込んでおくこともできる。その場合は、ターゲット・クロック制御回路86はターゲット・クロック信号をターゲット・プロセッサ12から切り離す(decouple)ことができるように設計することが可能である。ターゲット・クロック信号がターゲット・プロセッサ12から切り離されると、ターゲット・プロセッサ12はターゲット・プログラム16の実行を一時中止する。従って、ターゲット・クロック制御回路は、ハードウェア・シミュレータ36がシミュレートされたターゲット・ハードウェアへのアクセスを処理しているとき、ターゲット・プロセッサ12にターゲット・プログラム16の実行を一時中止させる1つの手段となっている。
【0025】
内部アドレス・バス80はアクセス検出器42と、バス・キャプチャおよびドライバ回路44内のターゲット・アドレス・バス・ラッチ100とに結合されている。以下で詳しく説明するように、ターゲット・アドレス・バス・ラッチ100はターゲット・アドレス・バス・バッファ70からのアドレス信号をキャプチャし、そのアドレス信号を制御プロセッサ46に結合する。また、以下で詳しく説明するように、アドレス検出器42は内部アドレス・バス80に現れたアドレス信号を検査し、ターゲット・プロセッサ12がシミュレートされたターゲット・ハードウェアにアクセスすることを試みているかどうかを判断する。
【0026】
内部制御バス82とターゲット・クロック・ライン90はアクセス検出器42に結合されているが、内部制御バス82の方はバス・キャプチャ/ドライバ回路44内のターゲット制御バス・ラッチ112にも結合されている。以下で説明するように、アクセス検出器42はターゲット・クロック信号のあらかじめ定めたサイクル数にわたって内部制御バス82に現れるある種の制御信号を調べ、物理ターゲット・ハードウェア20が組み込み型システム10にいつ存在しないかを判断し、ターゲット・ハードウェアへのアクセス試みに応答して受信確認信号を返す。このようにして、アクセス検出器42はターゲット・ハードウェアへのアクセスを試みていることがシミュレートされたターゲット・ハードウェアへのアクセスであると判断する。ターゲット制御バス・ラッチ112は、シミュレートされたターゲット・ハードウェアへのアクセスが読み取りアクセスであるか、書き込みアドレスであるかを指定しているR/W*信号のような、ターゲット・プロセッサの端子に現れた信号をキャプチャするために使用される。また、ターゲット制御バス・バッチ112は、ターゲット・プログラム16(図1)の実行を一時中止する制御信号のような、ターゲット・プロセッサ12に印加される1つまたは2つ以上の制御信号を出力するためにも使用される。例えば、ハードウェア・シミュレータ36がシミュレートされたターゲット・ハードウェアへのアクセスを処理している期間に、ターゲット制御バス・ラッチ112は、インアクティブREADY信号をIntel(登録商標)プロセッサに出力することも、インアクティブ・データ・ストローブ確認DSACK信号をターゲット・プロセッサ12で使用されているMotorola(登録商標)プロセッサに出力することもできる。
【0027】
内部データ・バス94はバス・キャプチャ/ドライバ回路44内のターゲット・データ・バス・ラッチ102に結合されている。ターゲット・データ・バス・ラッチ102はデータ信号を内部データ・バス94に出力し、内部データ・バス94からのデータ・バス信号をストアする。
【0028】
ターゲット・アドレス・バス・ラッチ100とターゲット・データ・バス・ラッチ102のほかに、バス・キャプチャ/ドライバ回路44はモニタ制御ラッチ110とアドレス・デコーダ114を含んでいる。アドレス・デコーダ114はラッチ100〜112の各々に対応する制御プロセッサ46からのアドレスをデコードする。制御プロセッサは、ラッチ100〜112の特定ラッチからの信号を、その特定ラッチに対応するアドレスを出力することによってストアし、あるいは受信する。これと同時に、制御プロセッサ46はアクセスされるラッチ100〜112にストアすべき信号を印加するか、あるいはアクセスされるラッチ100〜112からの信号をデータ・バス122から受信する。また、制御プロセッサ46は該当の制御信号を制御バス124経由でアドレス・デコーダに印加する。
【0029】
オペレーション時には、モニタ制御ラッチ110はラッチ100、102および112のオペレーションを制御するために使用される信号を制御プロセッサ46から受信する。以下で詳しく説明するように、ターゲット・プロセッサ12がシミュレートされたターゲット・ハードウェアにアクセスすることを試みているとアクセス検出器42が判断したとき、アクセス検出器は信号をモニタ制御ラッチ110に印加する。その後、モニタ制御ラッチ110はターゲット・プロセッサ12からのアドレス信号、制御信号およびデータ信号を、それぞれ他のラッチ100、102、および112にキャプチャさせる。また、モニタ制御ラッチ110は制御信号をバッファ制御回路88に、制御信号をアクセス検出器42に印加する。
【0030】
アクセス検出器42はマッピングRAM130とタイムアウト回路132を含んでいる。以下で詳しく説明するように、マッピングRAM130はシミュレートされたターゲット・ハードウェアへのアクセスを、シミュートされたターゲット・ハードウェアのアドレス空間内にある、ターゲット・プロセッサ12からのアドレスを検出することによって検出する。タイムアウト回路132はシミュレートされたターゲット・ハードウェアへのアクセスを、ターゲット・ハードウェアへのアクセスに対する応答としてあらかじめ定めた時間内に受信確認を返したターゲット・ハードウェアが組み込み型システム10に存在しないと判断することによって検出する。
【0031】
マッピングRAM130はアドレス・マルチプレクサ140を含んでおり、これは制御プロセッサ46のアドレス・バス120または内部アドレス・バス80のどちらかをマップRAM142に結合している。そのために、アドレス・マルチプレクサ140は制御プロセッサ46がアドレス・バス120を経由して、あるいはターゲット・プロセッサ12がそのアドレス・バス(図示せず)、ターゲット・アドレス・バス・バッファ70、および内部アドレス・バス80を経由してマップRAM130に対してアクセス可能にしている。マッピングRAM130はデータ・マルチプレクサ144も含んでおり、これはマップRAM142と、制御プロセッサ46のデータ・バス122またはORゲート150の一方の入力に印加されるデータ・ラインとの間でデータを転送させる。アドレス・マルチプレクサ140とデータ・マルチプレクサ142は制御プロセッサ46によって制御され、そのために制御プロセッサ46はアドレス・マルチプクサ140とデータ・マルチプレクサ142に印加される該当の制御信号をモニタ制御ラッチ110にストアしている。
【0032】
オペレーション時には、マップRAM142は、初期状態では、アドレス・マルチプレクサ140が制御プロセッサ46のアドレス・バス120を、データ・マルチプレクサ144が制御プロセッサ46のデータ・バス122をマップRAM 142に結合するようにプログラムされる。その後、制御プロセッサ46はターゲット・プロセッサ12のアドレス空間内の各アドレスにビットをストアする。各アドレスにストアされたビットは、そのアドレスが物理ターゲット・ハードウェア20のアドレス空間内にあればロジック「0」に、そのアドレスがシミュレートされたターゲット・ハードウェアのアドレス空間内にあれば各アドレスのストアされたビットはロジック「1」になっている。マップRAM142がプログラムされた後、アドレス・マルチプレクサ140は内部アドレス・バス80をマップRAM142に、マップRAM142からのデータ・ビットをORゲート150に結合する。ターゲット・プロセッサ12がターゲット・プログラム16を実行すると、ターゲット・プロセッサ12から出力されたアドレスはターゲット・アドレス・バス70、内部アドレス・バス80、およびアドレス・マルチプレクサ140を通してマップRAM142に結合される。ターゲット・プロセッサ46からの各アドレスはマップRAM142にアクセスし、これによりマップRAM 142はそのアドレスにストアされたデータ・ビットを出力する。このデータ・ビットはアドレスが物理ターゲット・ハードウェアのアドレス空間にあることを示すロジック「0」になっているか、あるいはアドレスがシミュレートされたターゲット・ハードウェアのアドレス空間にあることを示すロジック「1」になっている。ターゲット・プロセッサ12から出力されたアドレスがシミュレートされたターゲット・ハードウェアのアドレス空間にあれば、ORゲート150はロジック「1」を出力する。
【0033】
タイムアウト・カウンタ132はターゲット・クロック・カウンタ160とカウンタ制御回路162を含んでいる。ターゲット・クロック・カウンタ160はカウンタ制御回路162からプリロードされた初期カウントから最終カウントまでインクリメントしていく。また、カウンタ制御回路162はターゲット・クロック・カウンタ160を選択的にイネーブルにする。ターゲット・クロック・カウンタ160は最終カウントまで到達すると、ロジック「1」を出力し、これによりORゲート150はロジック「1」を出力する。カウンタ制御回路162はモニタ制御ラッチ110が該当の制御信号を出力したときそれに応答して初期カウントをストアする。その後、カウンタ制御回路162は制御プロセッサ46のデータ・バス122からの初期カウントをストアする。次に、カウンタ制御回路162は初期カウントをターゲット・クロック・カウンタ160にプリロードし、ターゲット・クロック・カウンタ160はターゲット・バス制御バッファ72からのターゲット・クロック信号に応答してインクリメントしていく。しかし、カウンタ制御回路162は、ターゲット・プロセッサ12がターゲット・ハードウェア(物理ハードウェア20またはシミュレートされたハードウェアのどちらか)にアクセスすることを試みたことを示す専用の制御信号をカウンタ制御回路162に印加した後だけターゲット・クロック・カウンタ160をインクリメントさせる。ターゲット・プロセッサ12が物理ターゲット・ハードウェア20にアクセスしていれば、物理ターゲット・ハードウェア20は受信確認信号を返し、これはターゲット制御バス・バッファ72からカウンタ制御回路162に印加される。この受信確認信号を受けると、カウンタ制御回路162はターゲット・クロック・カウンタ160をディスエーブルし、ターゲット・クロック・カウンタ160が最終カウントに到達しないようにする。従って、ターゲット・クロック・カウンタ160はロジック「1」を出力しないことになる。しかし、ターゲット・ハードウェア12がアクセスしているアドレスに物理ターゲット・ハードウェアが存在しなければ、どの物理ターゲット・ハードウェアからも受信確認信号が返されない。その結果、ターゲット・クロック・カウンタ160は最終カウントまでインクリメントするので、ターゲット・クロック・カウンタはロジック「1」を出力する。これを受けて、ORゲート150はロジック「1」を出力する。従って、ORゲート150は、ターゲット・プロセッサ12がシミュレートされたターゲット・ハードウェアにアクセスすることを試みているとマッピングRAM130またはタイムアウト・カウンタ132が検出すると、ロジック「1」を出力することになる。
【0034】
ORゲート150の出力はデコード/コントローラ通知回路170に印加され、この回路からは該当の制御信号がモニタ制御ラッチ110に印加される。これを受けて、モニタ制御ラッチ110はターゲット・プロセッサ12からのアドレス信号、データ信号、および制御信号をバス・ラッチ100、102、および112にキャプチャさせる。アドレス信号、データ信号、および制御信号はラッチ100、102、および112から制御プロセッサ46に結合され、そこでこれらの信号は対応する出力データに変換される。この出力データは、コミュニケーション・インタフェース34を通してハードウェア・シミュレータ36に結合され、そこでこのデータは、もし物理ターゲット・ハードウェアが実際に組み込み型システム10に存在していれば、物理ターゲット・ハードウェアが制御プロセッサからのアドレス信号、データ信号、および制御信号を処理するのと同じように処理される。
【0035】
シミュレートされたターゲット・ハードウェアがアクセスに応答して受信確認信号を返した場合、あるいはシミュレートされたターゲット・ハードウェアとターゲット・プロセッサ12とのやりとりがシミュレートされたターゲット・ハードウェアによって開始された場合には、ハードウェア・シミュレータ36はコミュニケーション・インタフェース34を通して入力データを制御プロセッサ46に送信する。その後、ハードウェア・シミュレータ36はその入力データを対応するデータ信号と制御信号に変換し、これらの信号をそれぞれデータと制御バス・ラッチ102、112にストアする。最後に、ラッチ102と112はこれらの信号をそれぞれターゲット・データと制御バス・バッファ74、72を通してターゲット・プロセッサ12に印加する。従って、ターゲット・プロセッサ12は、シミュレートされたターゲット・ハードウェアが物理的に組み込み型システム10に存在していれば受信するものと同じ信号を受信することになる。
【0036】
ターゲット・プロセッサ12とシミュレートされたターゲット・ハードウェアとのやりとりがターゲット・プロセッサ12によって開始された場合には、そのやりとりは上述したように、アクセス検出器42によって検出される。しかし、ターゲット・プロセッサ12とシミュレートされたターゲット・ハードウェアとのやりとりがシミュレートされたターゲット・ハードウェアによって検出された場合は、アクセス検出器42はターゲット・プロセッサ12によって開始されたアクセスだけを検出できるので、アクセス検出器42はそのやりとりを検出することができない。組み込み型システム設計で通常行われているように、ターゲット・ハードウェアとターゲット・プロセッサとのやりとりは、ターゲット・ハードウェアが割り込み信号をターゲット・プロセッサに印加することによって開始される。これを受けて、ターゲット・プロセッサはターゲット・プログラムの一部である割り込みルーチンを実行する。
【0037】
シミュレートされたターゲット・ハードウェアとターゲット・プロセッサとのやりとりがシミュレートされたターゲット・ハードウェアによって開始された場合には、ハードウェア・シミュータ36は割り込みを指示する入力信号を制御プロセッサ46に送信する。これを受けて、制御プロセッサ46はその入力信号を割り込み信号に変換し、その割り込み信号をターゲット制御バス・ラッチ112にストアする。ターゲット制御バス・ラッチ112は割り込み信号をターゲット制御バス・バッファ72を通してターゲット・プロセッサ12の割り込み端子に印加する。これを受けて、ターゲット・プロセッサ12はターゲット・プログラム16の一部としてフラッシュROM48にストアされた割り込みルーチンを実行する。ターゲット・プロセッサ12は、次の方法、すなわち、シミュレートされたターゲット・ハードウェアの代わりに物理ターゲット・ハードウェア20が割り込み信号を生成させるのと同じ方法で割り込みルーチンを実行する。従って、ターゲット・プロセッサ12は、ターゲット・ハードウェアが物理ターゲット・ハードウェア20であるか、シミュレートされたターゲット・ハードウェアであるかに関係なく、ターゲット・ハードウェアによって開始されたやりとりに対し同じように応答する。
【0038】
図3は、フラッシュROM48に格納されていて制御プロセッサ46によって実行されるソフトウェアのフローチャートである。このプログラムにはステップ180で入り、そこで制御プロセッサ46はハードウェア・シミュレータ36とのコミュニケーションをセットアップする。プログラムが制御プロセッサ46によって実行されると、プログラムはステップ184に進み、そこで制御プロセッサ46はモニタ制御ラッチ110を通して結合されたヒット・デコード/コントローラ通知回路170の出力を検査する。上述したように、ターゲット・プロセッサ12がシミュレートされたターゲット・ハードウェアのアドレス空間内のアドレスを出力したか、あるいは物理ターゲット・ハードウェア20があらかじめ定めた時間内に受信確認信号を返すことに失敗していれば、ヒット・デコード/コントローラ通知回路170はシミュレータされたターゲット・ハードウェアへのアクセスであることを示す信号を出力する。そのような場合には、プログラムは184からステップ188にブランチし、そこでターゲット・プロセッサ12のバスに現れた信号が上述したようにキャプチャされる。キャプチャされた信号をターゲット・プロセッサ12から受信すると、制御プロセッサ46はステップ190で、その信号を対応する出力データに変換する。その後、制御プロセッサ46はステップ192で、そのデータをハードウェア・シミュレータ36(図1)に送信する。
【0039】
上述したように、その後、ハードウェア・シミュレータ36は、ターゲット・プロセッサ12から出力された実際の信号がハードウェア・シミュレータ36でシミュレートされている物理ターゲット・ハードウェアによって処理されるのと同じようにデータを処理する。データがハードウェア・シミュレータ36によって処理されている時間の間、プログラムはステップ196でループに入ったままになっている。ハードウェア・シミュレータ36は出力データの処理を完了すると、ステップ200で入力データを制御プロセッサ46に送信する。これを受けて、制御プロセッサ46はステップ202で入力データを、受信確認信号などの対応する信号にフォーマットし、その信号はステップ204でターゲット・プロセッサ12に送信される。その後、プログラムはステップ184に戻り、ターゲット・プロセッサ12によるシミュレートされたターゲット・ハードウェアへの別のアクセスを待つことになる。
【0040】
これまでの説明は、ターゲット・プロセッサ12とシミュレートされたターゲット・ハードウェアとのやりとりがターゲット・プロセッサ12によって開始されたときの、制御プロセッサ46のオペレーションを説明したものである。しかし、上述したように、組み込み型システムでは、ターゲット・プロセッサ12とターゲット・ハードウェアとのやりとりはターゲット・ハードウェアによって開始されることも可能である。従って、ターゲット・プロセッサ12がシミュレートされたターゲット・ハードウェアにアクセスすることを試みていることを制御プロセッサ46が検出しなければ、制御プロセッサ46はステップ210にブランチする。ステップ210で、制御プロセッサ46はターゲット・ハードウェア・シミュレータ36からの、割り込み信号に対応する入力データを検出する。この割り込み信号は、シミュレートされるターゲット・ハードウェアがもし物理的に組み込み型システムに存在しなければ、ターゲット・プロセッサ12に印加されるものと同じ信号である。割り込みに対応する、ターゲット・ハードウェア・シミュレータ36からの入力データが210で検出された場合には、その入力データはステップ212で制御プロセッサ46に印加される。この入力データはターゲット・ハードウェアが物理的に組み込み型システム10に存在していれば、割り込み信号に加えて、そのターゲット・ハードウェアからターゲット・プロセッサ12に印加される信号に対応している場合がある。どちらの場合も、制御プロセッサ46はステップ214で、そのデータを対応する信号にフォーマットする。最後に、この信号はステップ218で、バス・キャプチャ/ドライバ回路44を通してターゲット・プロセッサ12に送信される。
【0041】
以上の説明から理解されるように、テスト・システム30はターゲット・ハードウェアの一部だけが製造され、物理的に組み込み型システムに存在する場合であっても、組み込み型システムを分析し、テストすることができる。その結果、ターゲット・ソフトウェアとターゲット・ハードウェアとのやりとりはターゲット・ハードウェアのすべてが物理的に実現される前にテストすることができ、ターゲット・ハードウェアはそれが開発され、物理的に組み込み型システムに置かれているものとしてテストすることができる。また、以上の説明から理解されるように、本発明の特定実施形態を説明してきたが、本発明の精神と範囲を逸脱しない限り種々態様に変更することが可能である。従って、本発明は請求の範囲に記載されている事項によってのみ限定されるものである。
【0042】
【発明の効果】
以上説明したように本発明によれば、システムはターゲット・ハードウェアの一部だけが製造され、物理的に組み込み型システムに存在する場合であっても、組み込み型システムを分析し、テストすることができる。その結果、ターゲット・ソフトウェアとターゲット・ハードウェアとのやりとりはターゲット・ハードウェアのすべてが物理的に実現される前にテストすることができ、ターゲット・ハードウェアはそれが開発され、物理的に組み込み型システムに置かれているものとしてテストすることができる。
【図面の簡単な説明】
【図1】ターゲット・プロセッサと、物理および/またはシミュレートされたハードウェアを実装する組み込み型システムをテストするためのシステムおよび方法の一実施形態を示すブロック図である。
【図2】図1のテスト・システムの一実施形態を示す詳細ブロック図である。
【図3】本発明の一実施形態による方法を実行するために、図2のテスト・システム内の制御プロセッサによって実行されるソフトウェアのフローチャートである。
【符号の説明】
10 組み込み型システム
12 ターゲット・プロセッサ
14 メモリ
16 ターゲット・プログラム
20 物理ターゲット・ハードウェア
30 テスト・システム
32 ターゲット・モニタ
34 コミュニケーション・インタフェース
36 ハードウェア・シミュレータ
40 ターゲット・インタフェース回路
42 アクセス検出器
44 バス・キャプチャ/ドライバ回路
46 制御プロセッサ
48 ROM
50 RAM
66 イーサネット・ドライバ
68 イーサネット・コネクタ
70 ターゲット・アドレス・バス制御バッファ
72 ターゲット制御バス・バッファ
74 ターゲット・データ・バス・バッファ
80 内部アドレス・バス
82 内部制御バス
86 ターゲット・クロック制御回路
88 ターゲット・データ/制御バス・バッファ制御回路
90 ターゲット・クロック・ライン
94 内部データ・バス
100 ターゲット・アドレス・バス・ラッチ
102 ターゲット・データ・バス・ラッチ
110 モニタ制御ラッチ
112 ターゲット制御バス
114 アドレス・デコーダ
120 アドレス・バス
122 データ・バス
130 マッピングRAM
132 タイムアウト回路
140 アドレス・マルチプレクサ
142 マップRAM
144 データ・マルチプレクサ
148 データ・ライン
150 ORゲート
160 ターゲット・クロック・カウント

Claims (26)

  1. ターゲット・プログラムを実行するターゲット・プロセッサであって、その一部が物理的であり、その一部をシミュレートすることが可能であるターゲット・ハードウェアに結合されたターゲット・プロセッサを実装する組み込み型エレクトロニック・システムをテストするためのシステムであって、該システムは、
    ターゲット・ハードウェアのシミュレートされた部分をシミュレートするように構成されたハードウェア・シミュレータと、
    ターゲット・プロセッサに結合されたターゲット・モニタであって、該ターゲット・モニタはターゲット・プロセッサがターゲット・ハードウェアのシミュレートされた部分との連絡をいつ試みようとしたかを判断し、その判断に応じてターゲット・プログラムの実行を一時中止するように動作し、該ターゲット・モニタは、さらに、ターゲット・プロセッサから出力され、シミュレートされた部分に送られる出力信号を対応する出力データに変換し、ハードウェア・シミュレータからの入力データをターゲット・プロセッサに印加される、対応する入力信号に変換するように動作するターゲット・モニタと、
    ターゲット・モニタをハードウェア・シミュレータに結合するコミュニケーション・インタフェースであって、該コミュニケーション・インタフェースはターゲット・モニタからの出力データをハードウェア・シミュレータに転送するように動作すると共に、ハードウェア・シミュレータからの入力データをターゲット・モニタに転送するように動作するコミュニケーション・インタフェースとを具え
    ターゲット・モニタは、
    シミュレートされたハードウェアのアドレス空間内のアドレスを記録するマッピング・メモリと、
    マッピング・メモリと、ターゲット・プロセッサのアドレス・バスとに結合されたアドレス・コンパレータであって、該アドレス・コンパレータはアドレス・バス上に現れたアドレスを、マッピング・メモリに記録されたアドレスと比較し、アドレス・バス上のアドレスとマッピング・メモリに記録されたアドレスとが一致していると、ターゲット・プログラムの実行を一時中止するアドレス・コンパレータと
    を含むことを特徴とするシステム。
  2. 請求項1に記載のシステムにおいて、ターゲット・プロセッサを収容しているマイクロプロセッサ・エミュレータと、ターゲット・プログラムを収めているメモリ・デバイスとをさらに具えたことを特徴とするシステム。
  3. ターゲット・プログラムを実行するターゲット・プロセッサであって、その一部が物理的であり、その一部をシミュレートすることが可能であるターゲット・ハードウェアに結合されたターゲット・プロセッサを実装する組み込み型エレクトロニック・システムをテストするためのシステムであって、該システムは、
    ターゲット・ハードウェアのシミュレートされた部分をシミュレートするように構成されたハードウェア・シミュレータと、
    ターゲット・プロセッサに結合されたターゲット・モニタであって、該ターゲット・モニタはターゲット・プロセッサがターゲット・ハードウェアのシミュレートされた部分との連絡をいつ試みようとしたかを判断し、その判断に応じてターゲット・プログラムの実行を一時中止するように動作し、該ターゲット・モニタは、さらに、ターゲット・プロセッサから出力され、シミュレートされた部分に送られる出力信号を対応する出力データに変換し、ハードウェア・シミュレータからの入力データをターゲット・プロセッサに印加される、対応する入力信号に変換するように動作するターゲット・モニタと、
    ターゲット・モニタをハードウェア・シミュレータに結合するコミュニケーション・インタフェースであって、該コミュニケーション・インタフェースはターゲット・モニタからの出力データをハードウェア・シミュレータに転送するように動作すると共に、ハードウェア・シミュレータからの入力データをターゲット・モニタに転送するように動作するコミュニケーション・インタフェースとを具え、
    ターゲット・モニタは、
    ターゲット・プロセッサが物理的ハードウェアにアクセスしたとき物理的ハードウェアから制御信号を受信するように構成された、ターゲット・プロセッサ上の端子をモニタリングする制御信号モニタであって、該制御信号モニタは制御信号の受信に応答して検出信号を生成するようにした制御信号モニタと、
    ターゲット・プロセッサと制御信号モニタに結合されたタイマであって、該タイマは、ターゲット・プロセッサがターゲット・ハードウェアにアクセスしたことに応答してタイミング期間の計時を開始し、該タイミング期間が開始された後で、該タイミング期間の開始後のあらかじめ定めた期間内に検出信号が受信されていなければ、ターゲット・プログラムの実行を一時中止するタイマと
    を含むことを特徴とするシステム。
  4. ターゲット・プログラムを実行するターゲット・プロセッサであって、その一部が物理的であり、その一部をシミュレートすることが可能であるターゲット・ハードウェアに結合されたターゲット・プロセッサを実装する組み込み型エレクトロニック・システムをテストするためのシステムであって、該システムは、
    ターゲット・ハードウェアのシミュレートされた部分をシミュレートするように構成されたハードウェア・シミュレータと、
    ターゲット・プロセッサに結合されたターゲット・モニタであって、該ターゲット・モニタはターゲット・プロセッサがターゲット・ハードウェアのシミュレートされた部分との連絡をいつ試みようとしたかを判断し、その判断に応じてターゲット・プログラムの実行を一時中止するように動作し、該ターゲット・モニタは、さらに、ターゲット・プロセッサから出力され、シミュレートされた部分に送られる出力信号を対応する出力データに変換し、ハードウェア・シミュレータからの入力データをターゲット・プロセッサに印加される、対応する入力信号に変換するように動作するターゲット・モニタと、
    ターゲット・モニタをハードウェア・シミュレータに結合するコミュニケーション・インタフェースであって、該コミュニケーション・インタフェースはターゲット・モニタからの出力データをハードウェア・シミュレータに転送するように動作すると共に、ハードウェア・シミュレータからの入力データをターゲット・モニタに転送するように動作するコミュニケーション・インタフェースとを具え、
    ターゲット・モニタは、
    ターゲット・プロセッサが物理的ハードウェアにアクセスしたとき物理的ハードウェアから制御信号を受信するように構成された、ターゲット・プロセッサ上の端子をモニタリングする制御信号モニタであって、該制御信号モニタは制御信号の受信に応答して検出信号を生成するようにした制御信号モニタと、
    ターゲット・プロセッサと制御信号モニタに結合されたタイマであって、該タイマは、ターゲット・プロセッサがターゲット・ハードウェアにアクセスしたことに応答してタイミング期間の計時を開始し、該タイミング期間が開始された後で、該タイミング期間の開始後のあらかじめ定めた期間内に検出信号が受信されていなければ、ターゲット・プログラムの実行を一時中止するタイマと
    を含み、
    制御信号は、ターゲット・プロセッサが物理的ハードウェアにアクセスしたことに応答して、物理的ハードウェアによって生成されるように構成された受信確認信号を含むことを特徴とするシステム。
  5. ターゲット・プログラムを実行するターゲット・プロセッサであって、その一部が物理的であり、その一部をシミュレートすることが可能であるターゲット・ハードウェアに結合されたターゲット・プロセッサを実装する組み込み型エレクトロニック・システムをテストするためのシステムであって、該システムは、
    ターゲット・ハードウェアのシミュレートされた部分をシミュレートするように構成されたハードウェア・シミュレータと、
    ターゲット・プロセッサに結合されたターゲット・モニタであって、該ターゲット・モニタはターゲット・プロセッサがターゲット・ハードウェアのシミュレートされた部分と の連絡をいつ試みようとしたかを判断し、その判断に応じてターゲット・プログラムの実行を一時中止するように動作し、該ターゲット・モニタは、さらに、ターゲット・プロセッサから出力され、シミュレートされた部分に送られる出力信号を対応する出力データに変換し、ハードウェア・シミュレータからの入力データをターゲット・プロセッサに印加される、対応する入力信号に変換するように動作するターゲット・モニタと、
    ターゲット・モニタをハードウェア・シミュレータに結合するコミュニケーション・インタフェースであって、該コミュニケーション・インタフェースはターゲット・モニタからの出力データをハードウェア・シミュレータに転送するように動作すると共に、ハードウェア・シミュレータからの入力データをターゲット・モニタに転送するように動作するコミュニケーション・インタフェースとを具え、
    ターゲット・モニタは、
    ターゲット・モニタを制御する制御プロセッサから入力信号を受信し、該入力信号をターゲット・プロセッサに印加するように動作するターゲット・プロセッサ・ドライバ回路と、
    ターゲット・プロセッサからの出力信号を制御プロセッサに印加するように動作するターゲット・プロセッサ・バス・キャプチャ回路とを含むことを特徴とするシステム。
  6. ターゲット・プログラムを実行するターゲット・プロセッサであって、その一部が物理的であり、その一部をシミュレートすることが可能であるターゲット・ハードウェアに結合されたターゲット・プロセッサを実装する組み込み型エレクトロニック・システムをテストするためのシステムであって、該システムは、
    ターゲット・ハードウェアのシミュレートされた部分をシミュレートするように構成されたハードウェア・シミュレータと、
    ターゲット・プロセッサに結合されたターゲット・モニタであって、該ターゲット・モニタはターゲット・プロセッサがターゲット・ハードウェアのシミュレートされた部分との連絡をいつ試みようとしたかを判断し、その判断に応じてターゲット・プログラムの実行を一時中止するように動作し、該ターゲット・モニタは、さらに、ターゲット・プロセッサから出力され、シミュレートされた部分に送られる出力信号を対応する出力データに変換し、ハードウェア・シミュレータからの入力データをターゲット・プロセッサに印加される、対応する入力信号に変換するように動作するターゲット・モニタと、
    ターゲット・モニタをハードウェア・シミュレータに結合するコミュニケーション・インタフェースであって、該コミュニケーション・インタフェースはターゲット・モニタからの出力データをハードウェア・シミュレータに転送するように動作すると共に、ハードウェア・シミュレータからの入力データをターゲット・モニタに転送するように動作するコミュニケーション・インタフェースとを具え、
    コミュニケーション・インタフェースは、ターゲット・モニタをハードウェア・シミュレータに結合しているイーサネットのリンクを含むことを特徴とするシステム。
  7. 請求項1に記載のシステムにおいて、ハードウェア・シミュレータはターゲット・ハードウェアのシミュレート部分をシミュレートするハードウェア・シミュレーション・プログラムでプログラムされたホスト・コンピュータを含むことを特徴とするシステム。
  8. 請求項1に記載のシステムにおいて、ターゲット・プロセッサを収容しているマクロプロセッサ・エミュレータと、ターゲット・プログラムを収めているメモリ・デバイスとをさらに含み、マイクロプロセッサ・エミュレータは該エミュレータのユーザ・インタフェースとして動作するホスト・コンピュータに結合されていることを特徴とするシステム。
  9. ターゲット・プログラムを実行するように構成されたターゲット・プロセッサであって、該ターゲット・プロセッサはその一部が物理的であって、その一部をシミュレートすることが可能であるターゲット・ハードウェアに結合されるターゲット・プロセッサを実装する組み込み型エレクトロニック・システムをテストするためのシステムであって、該システムは、
    シミュレートされたハードウェアのアクセス空間内のアドレスを記録するマッピング・メモリと、
    該マッピング・メモリと、ターゲット・プロセッサのアドレス・バスとに結合されたアドレス・コンパレータであって、該アドレス・コンパレータはアドレス・バス上に現れたアドレスを、マッピング・メモリに記録されたアドレスと比較し、アドレス・バス上のアドレスとマッピング・メモリに記録されたアドレスとが一致していると、ターゲット・プログラムの実行を一時中止するようにしたアドレス・コンパレータと、
    アドレス・バス上のアドレスとマッピング・メモリに記録されたアドレスとが一致していることをアドレス・コンパレータが検出すると、それに応答してターゲット・プログラムからの出力信号をストアするように動作するターゲット・プロセッサ・バス・キャプチャ回路と、
    該バス・キャプチャ回路にストアされた出力信号を対応する出力データに変換するように動作する信号コンバータと、
    該信号コンバータをハードウェア・シミュレータに結合するコミュニケーション・インタフェースであって、該コミュニケーション・インタフェースは、信号コンバータからの出力データをハードウェア・シミュレータに転送するコミュニケーション・インタフェースと
    を具えたことを特徴とするシステム。
  10. 請求項に記載のシステムにおいて、
    ハードウェア・シミュレータに結合された第2信号コンバータであって、該第2信号コンバータはハードウェア・シミュレータからの入力データを対応する入力信号に変換する第2信号コンバータと、
    該第2信号コンバータに結合されたターゲット・プロセッサ・バス・ドライバ回路であって、該ターゲット・プロセッサ・バス・ドライバは入力信号をターゲット・プロセッサに印加するように動作するターゲット・プロセッサ・バス・ドライバ回路と
    をさらに含むことを特徴とするシステム。
  11. 請求項に記載のシステムにおいて、ターゲット・プロセッサを収容しているマイクロプロセッサ・エミュレータと、ターゲット・プログラムを収めているメモリ・デバイスとをさらに具えたことを特徴とするシステム。
  12. 請求項に記載のシステムにおいて、コミュニケーション・インタフェースは、信号コンバータをハードウェア・シミュレータに結合しているイーサネットのリンクを含むことを特徴とするシステム。
  13. 請求項に記載のシステムにおいて、前記ハードウェア・シミュレータはターゲット・ハードウェアのシミュレート部分をシミュレートするハードウェア・シミュレーション・プログラムでプログラムされたホスト・コンピュータを含むことを特徴とするシステム。
  14. 請求項1に記載のシステムにおいて、ターゲット・プロセッサと、該ターゲット・プログラムを収めているメモリ・デバイスとを収容しているマイクロプロセッサ・エミュレータをさらに含み、該マイクロプロセッサ・エミュレータは該エミュレータのユーザ・インタフェースとして動作するホスト・コンピュータに結合されていることを特徴とするシステム。
  15. ターゲット・プログラムを実行するように構成されたターゲット・プロセッサであって、該ターゲット・プロセッサはその一部が物理的であって、その一部をシミュレートすることが可能であるターゲット・ハードウェアに結合されるターゲット・プロセッサを実装する組み込み型エレクトロニック・システムをテストするためのシステムであって、該システムは、
    ターゲット・プロセッサが物理的ハードウェアにアクセスしたとき物理的ハードウェアから制御信号を受信するように構成された、ターゲット・プロセッサ上の端子をモニタリングする制御信号モニタであって、該制御信号モニタは制御信号の受信に応答して検出信号を生成する制御信号モニタと、
    ターゲット・プロセッサと制御信号モニタに結合されたタイマであって、該タイマは、ターゲット・プロセッサがハードウェア・アクセスしたことに応答してタイミング期間の計時を開始し、該タイミング期間が開始された後で、該タイミング期間の開始後のあらかじめ定めた期間内に検出信号が受信されていなければ、ターゲット・プログラムの実行を一時中止するタイマと、
    タイミング期間が開始された後で、該タイミング期間の開始後のあらかじめ定めた期間内に検出信号が受信されていなければ、ターゲット・プロセッサからの出力信号をストアするように動作するターゲット・プロセッサ・バス・キャプチャ回路と、
    該バス・キャプチャ回路にストアされた出力信号を、対応する出力データに変換するように動作する信号コンバータと、
    該信号コンバータをハードウェア・シミュレータに結合しているコミュニケーション・インタフェースであって、該コミュニケーション・インタフェースは信号コンバータからの出力データをハードウェア・シミュレータに転送するコミュニケーション・インタフェースと
    を具えたことを特徴とするシステム。
  16. 請求項1に記載のシステムにおいて、
    ハードウェア・シミュレータに結合された第2信号コンバータであって、該第2信号コンバータはハードウェア・シミュレータからの入力データを対応する入力信号に変換する第2信号コンバータと、
    該第2信号コンバータに結合されたターゲット・プロセッサ・バス・ドライバ回路であって、該ターゲット・プロセッサ・バス・ドライバは入力信号をターゲット・プロセッサに印加するように動作するターゲット・プロセッサ・バス・ドライバ回路と
    をさらに含むことを特徴とするシステム。
  17. 請求項1に記載のシステムにおいて、ターゲット・プロセッサを収容しているマイクロプロセッサ・エミュレータと、ターゲット・プログラムを収めているメモリ・デバイスとをさらに具えたことを特徴とするシステム。
  18. 請求項1に記載のシステムにおいて、前記コミュニケーション・インタフェースは、信号コンバータをハードウェア・シミュレータに結合しているイーサネットのリンクを含むことを特徴とするシステム。
  19. 請求項1に記載のシステムにおいて、ハードウェア・シミュレータはターゲット・ハードウェアのシミュレート部分をシミュレートするハードウェア・シミュレーション・プログラムでプログラムされたホスト・コンピュータを含むことを特徴とするシステム。
  20. 請求項19に記載のシステムにおいて、ターゲット・プロセッサを収容しているマクロプロセッサ・エミュレータと、ターゲット・プログラムを収めているメモリ・デバイスとをさらに含み、マイクロプロセッサ・エミュレータは該エミュレータのユーザ・インタフェースとして動作するホスト・コンピュータに結合されていることを特徴とするシステム。
  21. ターゲット・プログラムを実行するターゲット・プロセッサであって、その一部が物理的であって、その一部をシミュレートすることが可能であるターゲット・ハードウェアに結合されたターゲット・プロセッサを実装する組み込み型エレクトロニック・システムをテストするための方法であって、該方法は、
    ターゲット・プロセッサの複数の外部からアクセス可能な端子に現れた信号を、ターゲット・プロセッサがターゲット・プログラムを実行するときモニタリングし、
    ターゲット・プロセッサがターゲット・ハードウェアのシミュレートされた部分にいつアクセスすることを試みているかを、モニタリングされた信号に基づいて判断し、
    ターゲット・プロセッサがターゲット・ハードウェアのシミュレートされた部分にアクセスすることを試みていると判断したことに応答して、ターゲット・プログラムの実行を一時中止し、
    ターゲット・プロセッサがターゲット・ハードウェアのシミュレートされた部分にアクセスすることを試みていると判断したことに応答して、複数の外部からアクセス可能な端子に現れた出力信号をハードウェア・シミュレータで処理し、
    ターゲット・プロセッサがターゲット・ハードウェアのシミュレートされた部分にいつアクセスすることを試みているかを判断するステップは、
    シミュレートされたハードウェアのアドレス空間内にあるアドレスを記録し、
    ターゲット・プロセッサのアドレス・バス上のアドレスを記録されたアドレスと比較し、
    アドレス・バス上のアドレスと記録されたアドレスとが一致することを検出する
    ステップを含むことを特徴とする方法。
  22. 請求項2に記載の方法において、ターゲット・プロセッサがターゲット・ハードウェアの物理的部分にいつアクセスすることを試みているかをモニタリングされた信号に基づいて判断し、ターゲット・プロセッサがターゲット・ハードウェアの物理的部分にアクセスすることを試みていると判断したことに応答して、ターゲット・プロセッサがターゲット・ハードウェアの物理的部分にアクセスすることを可能にすることを特徴とする方法。
  23. 請求項2に記載の方法において、さらに、
    出力信号を処理したことに応答してハードウェア・シミュレータから入力データを受信し、
    入力データを対応する入力信号に変換し、
    該入力信号を外部からアクセス可能な端子に印加する
    ことを特徴とする方法。
  24. ターゲット・プログラムを実行するターゲット・プロセッサであって、その一部が物理的であって、その一部をシミュレートすることが可能であるターゲット・ハードウェアに結合されたターゲット・プロセッサを実装する組み込み型エレクトロニック・システムをテストするための方法であって、該方法は、
    ターゲット・プロセッサの複数の外部からアクセス可能な端子に現れた信号を、ターゲット・プロセッサがターゲット・プログラムを実行するときモニタリングし、
    ターゲット・プロセッサがターゲット・ハードウェアのシミュレートされた部分にいつアクセスすることを試みているかを、モニタリングされた信号に基づいて判断し、
    ターゲット・プロセッサがターゲット・ハードウェアのシミュレートされた部分にアクセスすることを試みていると判断したことに応答して、ターゲット・プログラムの実行を一時中止し、
    ターゲット・プロセッサがターゲット・ハードウェアのシミュレートされた部分にアクセスすることを試みていると判断したことに応答して、複数の外部からアクセス可能な端子に現れた出力信号をハードウェア・シミュレータで処理し、
    ターゲット・プロセッサがターゲット・プロセッサのシミュレートされた部分にいつアクセスすることを試みているかを判断するステップは、
    ターゲット・プロセッサが物理的ハードウェアにアクセスしたとき物理的ハードウェアから制御信号を受信するように構成された、ターゲット・プロセッサ上の端子をモニタリングし、
    ターゲット・プロセッサがターゲット・ハードウェアにアクセスしたことに応答してタイミング期間の計時を開始し、
    タイミング期間の開始後のあらかじめ定めた期間内に制御信号が物理的ターゲット・ハードウェアから受信されたかどうかを検出する
    ステップを含むことを特徴とする方法。
  25. ターゲット・プログラムを実行するターゲット・プロセッサであって、その一部が物理的であって、その一部をシミュレートすることが可能であるターゲット・ハードウェアに結合されたターゲット・プロセッサを実装する組み込み型エレクトロニック・システムをテストするための方法であって、該方法は、
    ターゲット・プロセッサの複数の外部からアクセス可能な端子に現れた信号を、ターゲ ット・プロセッサがターゲット・プログラムを実行するときモニタリングし、
    ターゲット・プロセッサがターゲット・ハードウェアのシミュレートされた部分にいつアクセスすることを試みているかを、モニタリングされた信号に基づいて判断し、
    ターゲット・プロセッサがターゲット・ハードウェアのシミュレートされた部分にアクセスすることを試みていると判断したことに応答して、ターゲット・プログラムの実行を一時中止し、
    ターゲット・プロセッサがターゲット・ハードウェアのシミュレートされた部分にアクセスすることを試みていると判断したことに応答して、複数の外部からアクセス可能な端子に現れた出力信号をハードウェア・シミュレータで処理し、
    さらに、
    ターゲット・プロセッサがターゲット・プログラムの実行を一時中止している時間の間にターゲット・プロセッサに印加された割り込み信号を検出し、
    割り込み信号に応答して割り込みルーチンを実行する
    ことを特徴とする方法。
  26. ターゲット・プログラムを実行するターゲット・プロセッサであって、その一部が物理的であって、その一部をシミュレートすることが可能であるターゲット・ハードウェアに結合されたターゲット・プロセッサを実装する組み込み型エレクトロニック・システムをテストするための方法であって、該方法は、
    ターゲット・プロセッサの複数の外部からアクセス可能な端子に現れた信号を、ターゲット・プロセッサがターゲット・プログラムを実行するときモニタリングし、
    ターゲット・プロセッサがターゲット・ハードウェアのシミュレートされた部分にいつアクセスすることを試みているかを、モニタリングされた信号に基づいて判断し、
    ターゲット・プロセッサがターゲット・ハードウェアのシミュレートされた部分にアクセスすることを試みていると判断したことに応答して、ターゲット・プログラムの実行を一時中止し、
    ターゲット・プロセッサがターゲット・ハードウェアのシミュレートされた部分にアクセスすることを試みていると判断したことに応答して、複数の外部からアクセス可能な端子に現れた出力信号をハードウェア・シミュレータで処理し、
    さらに、
    割り込み信号に対応する、ハードウェア・シミュレータからのデータを検出し、
    割り込み信号に対応する、ハードウェア・シミュレータからのデータを検出したことに応答して、割り込み信号をターゲット・プロセッサに印加し、
    割り込み信号に応答して、ターゲット・プロセッサが割り込みルーチンを実行可能にする
    ことを特徴とする方法。
JP03913699A 1998-02-17 1999-02-17 物理的および/またはシミュレートされたハードウエアを含み、エンベットされたマイクロプロセッサ・システムをテストするシステムおよび方法 Expired - Fee Related JP3715456B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/024,324 1998-02-17
US09/024,324 US6298320B1 (en) 1998-02-17 1998-02-17 System and method for testing an embedded microprocessor system containing physical and/or simulated hardware

Publications (2)

Publication Number Publication Date
JPH11296404A JPH11296404A (ja) 1999-10-29
JP3715456B2 true JP3715456B2 (ja) 2005-11-09

Family

ID=21820005

Family Applications (1)

Application Number Title Priority Date Filing Date
JP03913699A Expired - Fee Related JP3715456B2 (ja) 1998-02-17 1999-02-17 物理的および/またはシミュレートされたハードウエアを含み、エンベットされたマイクロプロセッサ・システムをテストするシステムおよび方法

Country Status (3)

Country Link
US (2) US6298320B1 (ja)
EP (1) EP0936550A2 (ja)
JP (1) JP3715456B2 (ja)

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6298320B1 (en) * 1998-02-17 2001-10-02 Applied Microsystems Corporation System and method for testing an embedded microprocessor system containing physical and/or simulated hardware
US20060117274A1 (en) * 1998-08-31 2006-06-01 Tseng Ping-Sheng Behavior processor system and method
US9195784B2 (en) * 1998-08-31 2015-11-24 Cadence Design Systems, Inc. Common shared memory in a verification system
US6564178B1 (en) * 1999-04-13 2003-05-13 Hewlett-Packard Company Method and apparatus for evaluating processors for architectural compliance
US6810373B1 (en) * 1999-08-13 2004-10-26 Synopsis, Inc. Method and apparatus for modeling using a hardware-software co-verification environment
US6973417B1 (en) * 1999-11-05 2005-12-06 Metrowerks Corporation Method and system for simulating execution of a target program in a simulated target system
US6775793B2 (en) * 1999-12-21 2004-08-10 Texas Instruments Incorporated Data exchange system and method for processors
US7100152B1 (en) 2000-01-31 2006-08-29 Freescale Semiconductor, Inc. Software analysis system having an apparatus for selectively collecting analysis data from a target system executing software instrumented with tag statements and method for use thereof
US6658600B1 (en) * 2000-04-24 2003-12-02 Microsoft Corporation Target control abstraction for debugging embedded systems
US6724220B1 (en) 2000-10-26 2004-04-20 Cyress Semiconductor Corporation Programmable microcontroller architecture (mixed analog/digital)
US8160864B1 (en) 2000-10-26 2012-04-17 Cypress Semiconductor Corporation In-circuit emulator and pod synchronized boot
US7765095B1 (en) 2000-10-26 2010-07-27 Cypress Semiconductor Corporation Conditional branching in an in-circuit emulation system
US8176296B2 (en) 2000-10-26 2012-05-08 Cypress Semiconductor Corporation Programmable microcontroller architecture
US8103496B1 (en) 2000-10-26 2012-01-24 Cypress Semicondutor Corporation Breakpoint control in an in-circuit emulation system
US7076420B1 (en) * 2000-10-26 2006-07-11 Cypress Semiconductor Corp. Emulator chip/board architecture and interface
US8149048B1 (en) 2000-10-26 2012-04-03 Cypress Semiconductor Corporation Apparatus and method for programmable power management in a programmable analog circuit block
US7406674B1 (en) 2001-10-24 2008-07-29 Cypress Semiconductor Corporation Method and apparatus for generating microcontroller configuration information
US8078970B1 (en) 2001-11-09 2011-12-13 Cypress Semiconductor Corporation Graphical user interface with user-selectable list-box
US7526422B1 (en) 2001-11-13 2009-04-28 Cypress Semiconductor Corporation System and a method for checking lock-step consistency between an in circuit emulation and a microcontroller
US8042093B1 (en) 2001-11-15 2011-10-18 Cypress Semiconductor Corporation System providing automatic source code generation for personalization and parameterization of user modules
US8069405B1 (en) 2001-11-19 2011-11-29 Cypress Semiconductor Corporation User interface for efficiently browsing an electronic document using data-driven tabs
US7774190B1 (en) 2001-11-19 2010-08-10 Cypress Semiconductor Corporation Sleep and stall in an in-circuit emulation system
US7770113B1 (en) 2001-11-19 2010-08-03 Cypress Semiconductor Corporation System and method for dynamically generating a configuration datasheet
US6971004B1 (en) 2001-11-19 2005-11-29 Cypress Semiconductor Corp. System and method of dynamically reconfiguring a programmable integrated circuit
US7844437B1 (en) 2001-11-19 2010-11-30 Cypress Semiconductor Corporation System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit
US8103497B1 (en) 2002-03-28 2012-01-24 Cypress Semiconductor Corporation External interface for event architecture
US7308608B1 (en) 2002-05-01 2007-12-11 Cypress Semiconductor Corporation Reconfigurable testing system and method
FR2841668B1 (fr) * 2002-06-26 2006-08-11 Emulation And Verification Eng Procede et systeme d'emulation d'un circuit sous test associe a un environnement de test
US7761845B1 (en) 2002-09-09 2010-07-20 Cypress Semiconductor Corporation Method for parameterizing a user module
US7017097B1 (en) 2002-09-24 2006-03-21 Cypress Semiconductor Corp. Simultaneously driving a hardware device and a software model during a test
US7130785B2 (en) * 2002-11-25 2006-10-31 Hewlett-Packard Development Company, L.P. System and method for detecting accesses to non-existing hardware entities using architectural simulation
US7137109B2 (en) * 2002-12-17 2006-11-14 Hewlett-Packard Development Company, L.P. System and method for managing access to a controlled space in a simulator environment
US7181652B2 (en) * 2003-01-07 2007-02-20 Hewlett-Packard Development Company, L.P. System and method for detecting and isolating certain code in a simulated environment
DE10329147A1 (de) * 2003-06-27 2005-01-20 Siemens Ag Verknüpfung und Darstellung von Signalen einer Vorrichtung zur Hardware-Simulation und Elementen eines Listings eines Programms
US7295049B1 (en) 2004-03-25 2007-11-13 Cypress Semiconductor Corporation Method and circuit for rapid alignment of signals
KR100548199B1 (ko) * 2004-07-15 2006-02-02 삼성전자주식회사 아날로그/디지털 혼합 신호 반도체 디바이스 테스트 장치
US8069436B2 (en) 2004-08-13 2011-11-29 Cypress Semiconductor Corporation Providing hardware independence to automate code generation of processing device firmware
US8286125B2 (en) 2004-08-13 2012-10-09 Cypress Semiconductor Corporation Model for a hardware device-independent method of defining embedded firmware for programmable systems
US20060101495A1 (en) * 2004-11-05 2006-05-11 William Yoshida Device evaluation using media access control emulator
US8849642B2 (en) * 2004-12-14 2014-09-30 The Mathworks, Inc. Signal definitions or descriptions in graphical modeling environments
US7332976B1 (en) 2005-02-04 2008-02-19 Cypress Semiconductor Corporation Poly-phase frequency synthesis oscillator
US7400183B1 (en) 2005-05-05 2008-07-15 Cypress Semiconductor Corporation Voltage controlled oscillator delay cell and method
US8089461B2 (en) 2005-06-23 2012-01-03 Cypress Semiconductor Corporation Touch wake for electronic devices
US8085067B1 (en) 2005-12-21 2011-12-27 Cypress Semiconductor Corporation Differential-to-single ended signal converter circuit and method
WO2007098805A1 (en) 2006-02-28 2007-09-07 Mentor Graphics Corp. Monitoring physical parameters in an emulation environment
US8067948B2 (en) 2006-03-27 2011-11-29 Cypress Semiconductor Corporation Input/output multiplexer bus
US9564902B2 (en) 2007-04-17 2017-02-07 Cypress Semiconductor Corporation Dynamically configurable and re-configurable data path
US8516025B2 (en) 2007-04-17 2013-08-20 Cypress Semiconductor Corporation Clock driven dynamic datapath chaining
US8130025B2 (en) 2007-04-17 2012-03-06 Cypress Semiconductor Corporation Numerical band gap
US8092083B2 (en) 2007-04-17 2012-01-10 Cypress Semiconductor Corporation Temperature sensor with digital bandgap
US8026739B2 (en) 2007-04-17 2011-09-27 Cypress Semiconductor Corporation System level interconnect with programmable switching
US7737724B2 (en) 2007-04-17 2010-06-15 Cypress Semiconductor Corporation Universal digital block interconnection and channel routing
US8040266B2 (en) 2007-04-17 2011-10-18 Cypress Semiconductor Corporation Programmable sigma-delta analog-to-digital converter
US9720805B1 (en) 2007-04-25 2017-08-01 Cypress Semiconductor Corporation System and method for controlling a target device
US8266575B1 (en) 2007-04-25 2012-09-11 Cypress Semiconductor Corporation Systems and methods for dynamically reconfiguring a programmable system on a chip
US8065653B1 (en) 2007-04-25 2011-11-22 Cypress Semiconductor Corporation Configuration of programmable IC design elements
US8049569B1 (en) 2007-09-05 2011-11-01 Cypress Semiconductor Corporation Circuit and method for improving the accuracy of a crystal-less oscillator having dual-frequency modes
KR20090026230A (ko) * 2007-09-09 2009-03-12 김건 임베디드 시스템의 범용 고속 실시간 모니터링 장치
CN101458652B (zh) * 2007-12-14 2012-01-25 上海海尔集成电路有限公司 微控制器嵌入式在线仿真调试系统
US7983893B2 (en) 2008-01-08 2011-07-19 Mentor Graphics Corporation Fault support in an emulation environment
US8214195B2 (en) * 2008-03-21 2012-07-03 Mentor Graphics Corporation Testing in a hardware emulation environment
US20090248390A1 (en) * 2008-03-31 2009-10-01 Eric Durand Trace debugging in a hardware emulation environment
JP2009259089A (ja) * 2008-04-18 2009-11-05 Nec Corp プログラム実行経路追跡装置、プログラム実行経路追跡方法、及びプログラム
US9448964B2 (en) 2009-05-04 2016-09-20 Cypress Semiconductor Corporation Autonomous control in a programmable system
US20110083121A1 (en) * 2009-10-02 2011-04-07 Gm Global Technology Operations, Inc. Method and System for Automatic Test-Case Generation for Distributed Embedded Systems
KR20180073677A (ko) * 2015-11-13 2018-07-02 샌델 에이비아닉스 인코포레이티드 항공 전자 시스템, 아키텍처 및 방법
US10068041B2 (en) 2016-02-01 2018-09-04 King Fahd University Of Petroleum And Minerals Multi-core compact executable trace processor

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5790881A (en) * 1995-02-07 1998-08-04 Sigma Designs, Inc. Computer system including coprocessor devices simulating memory interfaces
US5884323A (en) * 1995-10-13 1999-03-16 3Com Corporation Extendible method and apparatus for synchronizing files on two different computer systems
US6298320B1 (en) * 1998-02-17 2001-10-02 Applied Microsystems Corporation System and method for testing an embedded microprocessor system containing physical and/or simulated hardware
US6799316B1 (en) * 2000-03-23 2004-09-28 International Business Machines Corporation Virtualizing hardware with system management interrupts
US6832181B1 (en) * 2000-11-03 2004-12-14 Hewlett-Packard Development Company, L.P. Method to distinguish between physical hardware and simulated hardware

Also Published As

Publication number Publication date
US20010041974A1 (en) 2001-11-15
EP0936550A2 (en) 1999-08-18
US6298320B1 (en) 2001-10-02
US7089170B2 (en) 2006-08-08
JPH11296404A (ja) 1999-10-29

Similar Documents

Publication Publication Date Title
JP3715456B2 (ja) 物理的および/またはシミュレートされたハードウエアを含み、エンベットされたマイクロプロセッサ・システムをテストするシステムおよび方法
US6189140B1 (en) Debug interface including logic generating handshake signals between a processor, an input/output port, and a trace logic
US6154856A (en) Debug interface including state machines for timing synchronization and communication
US5047926A (en) Development and debug tool for microcomputers
US5566303A (en) Microcomputer with multiple CPU'S on a single chip with provision for testing and emulation of sub CPU's
GB2350706A (en) Debugging semiconductor integrated circuit device with processor
CN100444127C (zh) 软件测试系统和软件测试方法
JPH10293701A (ja) トリガシーケンシングコントローラ
US6263305B1 (en) Software development supporting system and ROM emulation apparatus
EP0569128A2 (en) Extended high-speed testing of microprocessor-based devices
JPH10254738A (ja) エミュレータ装置及びエミュレーション方法
CN101169767B (zh) 访问控制设备及访问控制方法
JP2003271694A (ja) プロセッサを含む論理回路の検証用シミュレーション方法及び装置並びに論理回路検証用エラー検出プログラム
JPH08171504A (ja) エミュレ−ション装置
JPS62164140A (ja) デ−タ処理システムの試験方法
KR950001057B1 (ko) 마이크로 프로세서(micro processor)
JP3176479B2 (ja) Scsiシミュレータ
JP3265284B2 (ja) エミュレータ
JPH10269148A (ja) 回路構成要素診断装置
JP2575025B2 (ja) インサ−キット・エミュレ−タ
JP2998439B2 (ja) 回線制御装置
JP2734382B2 (ja) インサーキットエミュレータおよびそのデバッグ方法
JP2825078B2 (ja) マイクロコンピュータ評価システムおよびこのシステムを用いた評価方法
JP2591191B2 (ja) ピギーバック・チップ
JPH0411892B2 (ja)

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040924

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20041209

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20041209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041224

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050729

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050825

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080902

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090902

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090902

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100902

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110902

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees