(57)【要約】【課題】ターゲットシステムへのエミュレーションメモリの搭載を不要にできるオンチップデバッグ方式のエミュレーションプローブボード、デバッグシステムを提供すること。【解決手段】ターゲットシステムの開発支援のためのエミュレーションプローブボードであって、エミュレーションプローブボードを前記ターゲットシステムの第１の搭載手段に接続するためのプローブと、前記ターゲットシステムで使用されるメモリをエミュレーションするためのエミュレーションメモリを搭載するためのメモリ搭載手段と、前記メモリ搭載手段に搭載されるエミュレーションメモリにアクセスするマイクロコンピュータを搭載するためのマイクロコンピュータ搭載手段とを含む。【選択図】　　　　図２
2004030652.tif 000002
【特許請求の範囲】
【請求項１】
ターゲットシステムの開発支援のためのエミュレーションプローブボードであって、
エミュレーションプローブボードを前記ターゲットシステムの第１の搭載手段に接続するためのプローブと、
前記ターゲットシステムで使用されるメモリをエミュレーションするためのエミュレーションメモリを搭載するためのメモリ搭載手段と、
前記メモリ搭載手段に搭載されるエミュレーションメモリにアクセスするマイクロコンピュータを搭載するためのマイクロコンピュータ搭載手段と、
を含むことを特徴とするエミュレーションプローブボード。
【請求項２】
請求項１において、
前記プローブと、前記マイクロコンピュータ搭載手段と、第１のコネクタとが少なくとも設けられるプローブ側ボードと、
前記メモリ搭載手段と、前記第１のコネクタに接続される少なくとも１つの第２のコネクタとが少なくとも設けられるメモリ側ボードとに分離されていることを特徴とするエミュレーションプローブボード。
【請求項３】
請求項２において、
前記プローブ側ボードの前記プローブの端子の形態がカスタマイズ可能であると共に、前記メモリ側ボードの前記第２のコネクタの端子の形態が標準化されていることを特徴とするエミュレーションプローブボード。
【請求項４】
請求項２又は３において、
前記プローブ側ボードの前記第１のコネクタにダイレクトに接続するための第３のコネクタと、前記プローブ側ボードの前記第１のコネクタにケーブルを介して接続するための第４のコネクタとが、前記第２のコネクタとして前記メモリ側ボードに設けられていることを特徴とするエミュレーションプローブボード。
【請求項５】
請求項２乃至４のいずれかにおいて、
前記エミュレーションメモリが、前記ターゲットシステムに組み込まれるマイクロコンピュータの内部メモリをエミュレーションするための内部メモリ用エミュレーションメモリと、前記ターゲットシステムに組み込まれるマイクロコンピュータの外部メモリをエミュレーションするための外部メモリ用エミュレーションメモリとを含み、
前記内部メモリ用エミュレーションメモリを搭載するための手段が、前記プローブ側ボードに設けられていることを特徴とするエミュレーションプローブボード。
【請求項６】
請求項５において、
前記マイクロコンピュータ搭載手段に搭載されたマイクロコンピュータと前記内部メモリ用エミュレーションメモリとを接続し前記内部メモリ用エミュレーションメモリを制御するための制御信号が伝達される第１の接続線と、前記第１の接続線と前記第１のコネクタとを接続し前記制御信号が伝達される第２の接続線と、前記第２の接続線による接続を切断するための第１の切断手段とが設けられていることを特徴とするエミュレーションプローブボード。
【請求項７】
請求項５又は６において、
前記内部メモリ用エミュレーションメモリが第１、第２の内部メモリ用エミュレーションメモリを含み、
前記第１の内部メモリ用エミュレーションメモリを搭載するための手段が前記プローブ側ボードの第１の面に設けられ、前記第２の内部メモリ用エミュレーションメモリを搭載するための手段が前記プローブ側ボードの第２の面に設けられていることを特徴とするエミュレーションプローブボード。
【請求項８】
請求項１乃至７のいずれかにおいて、
前記マイクロコンピュータ搭載手段に搭載されたマイクロコンピュータによりアクセスされた前記エミュレーションメモリに基づく前記ターゲットシステムをデバッグするためのデバッグ情報を、デバッグツールとの間で通信するための手段を含むことを特徴とするエミュレーションプローブボード。
【請求項９】
請求項８記載のエミュレーションプローブボードと、
前記エミュレーションプローブボードに搭載される前記マイクロコンピュータと、
前記エミュレーションプローブボードに搭載される前記エミュレーションメモリと、
前記エミュレーションボードとの間でデバッグ情報が通信されるデバッグツールとを含むことを特徴とするデバッグシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ターゲットシステムの開発支援のためのエミュレーションプローブボード（基板）、これを用いたデバッグシステムに関する。
【０００２】
【背景技術及び発明が解決しようとする課題】
近年、家庭用のゲーム装置、カーナビゲーションシステム、プリンタ、携帯情報端末、携帯電話などの電子機器に組み込まれ、高度な情報処理を実現できるマイクロコンピュータに対する需要が高まっている。そして、このような組み込み型のマイクロコンピュータは、通常、ターゲットシステムと呼ばれるユーザボードに実装される。そして、このターゲットシステムの開発を支援するためにＩＣＥ（Ｉｎ−Ｃｉｒｃｕｉｔ　Ｅｍｕｌａｔｏｒ）と呼ばれる開発支援ツールが広く用いられている。
【０００３】
さて、このようなＩＣＥとしては、従来、図１（Ａ）に示すようなＣＰＵ置き換え型と呼ばれるＩＣＥが主流を占めていた。
【０００４】
このＣＰＵ置き換え型ＩＣＥでは、評価（デバッグ）時にターゲットシステム３００のソケットからマイクロコンピュータ３０２を取り外す。次に、そのソケットに、ＩＣＥ本体（デバッグツール）３０４から伸びるフラットケーブル３０８の先端に設けられたプローブ３０６を接続する。そして、このＩＣＥ本体３０４に、取り外したマイクロコンピュータ３０２の動作をエミュレートさせる。また、このＩＣＥ本体３０４に、デバッグのために必要な種々の処理を行わせる。
【０００５】
しかしながら、このＣＰＵ置き換え型ＩＣＥには、フラットケーブル３０８の存在等に起因して、高いクロック周波数でのエミュレーションが難しいという欠点がある（例えば３３ＭＨＺ程度が限界）。このため、プローブ３０６をターゲットシステム３００に接続してエミュレーションを行う評価時と、マイクロコンピュータ３０２をターゲットシステム３００に搭載して動作させる製品（実動作）時とで、システムの動作環境（信号のタイミング、負荷条件）が変化してしまう。従って、評価時には動作していたターゲットシステム３００が、製品時には動作しなくなるという問題が生じる。
【０００６】
またこのＣＰＵ置き換え型ＩＣＥには、マイクロコンピュータ３０２が異なれば、たとえそれが派生品であっても、新たにＩＣＥ本体３０４を設計し直さなければならないという問題点もあった。
【０００７】
一方、このようなＣＰＵ置き換え型ＩＣＥの欠点を解消するものとして、近年、オンチップデバッグ型と呼ばれるＩＣＥが脚光を浴びている。
【０００８】
このオンチップデバッグ型ＩＣＥでは、図１（Ｂ）に示すように、マイクロコンピュータ３１４にオンチップデバッグ回路３１８を内蔵させる。そして、このオンチップデバッグ回路３１８を用いて、ＩＣＥ本体３２４との間でデバッグ情報（ＣＰＵのステータス情報、プログラムカウンタ情報等）を高速にシリアル通信する。
【０００９】
このオンチップデバッグ型ＩＣＥによれば、マイクロコンピュータ３１４をターゲットシステム３１２に搭載した状態で、ターゲットシステム３１２の評価（デバッグ）作業を行える。従って、評価時と製品時とでターゲットシステム３１２の動作環境を同一にすることが可能となり、ＣＰＵ置き換え型ＩＣＥの欠点を解消できる。
【００１０】
しかしながら、従来のオンチップデバッグ型ＩＣＥには、エミュレーションメモリ３２０に関して、以下のような問題点があることが判明した。
【００１１】
エミュレーションメモリ３２０は、プログラムを適宜ダウンロードできない内部ＲＯＭ３１６や外部ＲＯＭ３２２の代行メモリとして、ターゲットシステム３１２の評価（プログラムデバッグ）時に必要になるメモリである。即ち評価時においては、ユーザは、ＲＡＭ等により構成されるエミュレーションメモリ３２０に、開発途中のプログラムを随時ダウンロードしながら、プログラム開発を行う。そして、プログラムが完成すると、完成後のプログラムやそれに使用するデータを、マスクＲＯＭ等で構成される内部ＲＯＭ３１６や外部ＲＯＭ３２２に記憶させる。このようにして、製品用のターゲットシステム３１２が完成する。
【００１２】
従って、エミュレーションメモリ３２０は、ターゲットシステム３１２の評価時には必要になるが、製品時には、内部ＲＯＭ３１６や外部ＲＯＭ３２２に記憶されるプログラムやデータが使用されるため、エミュレーションメモリ３２０は不要になる。
【００１３】
ところが、図１（Ｂ）に示すように従来のオンチップデバッグ型ＩＣＥでは、エミュレーションメモリ３２０は、ＩＣＥ本体３２４ではなくターゲットシステム３１２に搭載される。オンチップデバッグ型ＩＣＥでは、ターゲットシステム３１２とＩＣＥ本体３２４との間はシリアル通信となるため、エミュレーションメモリのアドレスやデータを通信することはできず、エミュレーションメモリ３２０をＩＣＥ本体３２４に内蔵できないからである。
【００１４】
そして、このようにエミュレーションメモリ３２０をターゲットシステム３１２に搭載すると、次のような問題点が生じる。
（１）ターゲットシステムへのエミュレーションメモリの実装や、エミュレーションメモリの制御回路の設計等を、ユーザ自身が行わなければなくなり、ユーザの手間が増える。これはターゲットシステムの開発期間の長期化等の問題を招く。特に、デバッグ方式が変更され、エミュレーションメモリへのアクセス方法等が変更された場合には、ターゲットシステムの配線パターンも変更しなければならなくなり、ユーザの負担が更に増える。
（２）製品用のターゲットシステムに、本来は不要であるはずのエミュレーションメモリを搭載しなければならなくなり、ターゲットシステムの高コスト化を招く。
（３）上記（２）の問題を回避するためには、ユーザは、エミュレーションメモリが搭載されている評価用のターゲットシステムとは別に、エミュレーションメモリが搭載されていない製品用のターゲットシステムを設計する必要がある。しかしながら、これは、ターゲットシステムの開発期間の長期化や製品コストの増加等の問題を招く。また、評価用のターゲットシステムと製品用のターゲットシステムとが別設計になるため、評価用のターゲットシステムは正常に動作していたのにもかかわらず、製品用のターゲットシステムは正常に動作しなくなる等の問題も生じる。
【００１５】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、オンチップデバッグ方式を採用しながらも、ターゲットシステムへのエミュレーションメモリの搭載を不要にし、ユーザの利便性を向上できるエミュレーションプローブボード及びこれを用いたデバッグシステムを提供することにある。
【００１６】
【課題を解決するための手段】
上記課題を解決するために本発明はオンチップデバッグ回路を有するマイクロコンピュータが組み込まれるターゲットシステムの開発支援のためのエミュレーションプローブボードであって、前記マイクロコンピュータを搭載するための搭載手段である前記ターゲットシステムの第１の搭載手段に接続するためのプローブと、前記マイクロコンピュータを搭載するための第２の搭載手段と、前記第２の搭載手段に搭載される前記マイクロコンピュータと外部との間で、前記オンチップデバッグ回路のためのデバッグ情報をシリアル通信するための第１のインターフェースと、前記ターゲットシステムで使用されるメモリをエミュレーションするためのエミュレーションメモリを搭載するための第３の搭載手段とを含むことを特徴とする。
【００１７】
本発明によれば、ターゲットシステム等の評価（デバッグ）時において、ターゲットシステムの第１の搭載手段（例えばソケット）にプローブが接続される。これにより、エミュレーションプローブボードに搭載されるマイクロコンピュータを用いて、ターゲットシステムを動作させることができるようになる。そして、この時、マイクロコンピュータが内蔵するオンチップデバッグ回路に使用されるデバッグ情報が、第１のインターフェースを用いて外部（例えばＩＣＥ本体、ホストシステム）との間でシリアル通信される。従って、ターゲットシステムにマイクロコンピュータが実質的に搭載されているとみなせる状態で、オンチップデバッグ方式による評価（デバッグ）作業を行うことができるようになる。
【００１８】
そして本発明によれば、エミュレーションメモリがエミュレーションプローブボードに搭載され、ターゲットシステムへのエミュレーションメモリの搭載が不要になる。従って、ユーザの負担を軽減できると共に、製品用のターゲットシステムとは別に、評価用のターゲットシステムを用意する必要性をなくせる。この結果、ターゲットシステムの開発期間の短縮化、低コスト化、信頼性の向上等を図れるようになる。
【００１９】
また本発明は、前記プローブと、前記マイクロコンピュータを搭載するための前記第２の搭載手段と、第１のコネクタとが少なくとも設けられるプローブ側ボードと、前記エミュレーションメモリを搭載するための前記第３の搭載手段と、前記第１のコネクタに接続される少なくとも１つの第２のコネクタとが少なくとも設けられるメモリ側ボードとに分離されていることを特徴とする。このようにすることで、マイクロコンピュータの機種が変更された場合等にも、プローブ側ボードのみを変更し、メモリ側ボードとして同一のものを使用できるようになる。なお、デバッグ情報を通信するための第１のインターフェースは、高速の通信を実現するために、マイクロコンピュータが搭載されるプローブ側ボードに設けることが望ましい。
【００２０】
また本発明は、前記プローブ側ボードの前記プローブの端子の形態がカスタマイズ可能であると共に、前記メモリ側ボードの前記第２のコネクタの端子の形態が標準化されていることを特徴とする。このようにすれば、マイクロコンピュータの機種が変更になり、プローブの端子の形態（端子数、端子配置、各端子へ割り当てられる信号等）が変更されても、メモリ側ボードとして同一のものを使用できる。従って、エミュレーションプローブボードの開発期間の短縮化、低コスト化を図れるようになる。
【００２１】
また本発明は、前記プローブ側ボードの前記第１のコネクタにダイレクトに接続するための第３のコネクタと、前記プローブ側ボードの前記第１のコネクタにケーブルを介して接続するための第４のコネクタとが、前記第２のコネクタとして前記メモリ側ボードに設けられていることを特徴とする。このようにすれば、スペースが無い等の理由により、エミュレーションプローブボードとの接続が困難なターゲットシステムに対しても、エミュレーションプローブボードを容易に接続できるようになる。
【００２２】
また本発明は、前記エミュレーションメモリが、前記マイクロコンピュータの内部メモリをエミュレーションするための内部メモリ用エミュレーションメモリと、前記マイクロコンピュータの外部メモリをエミュレーションするための外部メモリ用エミュレーションメモリとを含み、前記内部メモリ用エミュレーションメモリを搭載するための第４の搭載手段が、前記プローブ側ボードに設けられていることを特徴とする。このようにすれば、マイクロコンピュータによる内部メモリ用エミュレーションメモリへのアクセスを高速化できるようになる。これにより、例えば内部メモリ用エミュレーションメモリに命令（プログラム）を記憶させた場合に、マイクロコンピュータが、その命令のフェッチ及びデコードを１クロックサイクル内で完了できるようになる。これにより、製品時と同様の高いクロック周波数でマイクロコンピュータを動作させて、ターゲットシステムを評価できるようになる。
【００２３】
また本発明は、前記マイクロコンピュータと前記内部メモリ用エミュレーションメモリとを接続し前記内部メモリ用エミュレーションメモリを制御するための制御信号が伝達される第１の接続線と、前記第１の接続線と前記第１のコネクタとを接続し前記制御信号が伝達される第２の接続線と、前記第２の接続線による接続を切断するための第１の切断手段とが設けられていることを特徴とする。このようにすれば、第１の接続線に寄生する寄生容量を軽減でき、マイクロコンピュータによる内部メモリ用エミュレーションメモリへのアクセスを、更に高速化できるようになる。
【００２４】
また本発明は、前記内部メモリ用エミュレーションメモリが第１、第２の内部メモリ用エミュレーションメモリを含み、前記第１の内部メモリ用エミュレーションメモリを搭載するための第５の搭載手段が前記プローブ側ボードの第１の面に設けられ、前記第２の内部メモリ用エミュレーションメモリを搭載するための第６の搭載手段が前記プローブ側ボードの第２の面に設けられていることを特徴とする。このようにすれば、マイクロコンピュータ、第１の内部メモリ用エミュレーションメモリ間の配線パターン長と、マイクロコンピュータ、第２の内部メモリ用エミュレーションメモリ間の配線パターン長とを、同一或いはほぼ同一にすることが可能になる。これにより、内部メモリ用エミュレーションメモリへの高速アクセス時にも、内部メモリ用エミュレーションメモリを適正に動作させることが可能になる。
【００２５】
また本発明は、前記マイクロコンピュータと前記第１のインターフェースとを接続し前記デバッグ情報が伝達される第３の接続線と、前記第３の接続線と前記プローブとの間を接続する第４の接続線と、前記第４の接続線による接続を切断するための第２の切断手段とが設けられていることを特徴とする。このようにすることで、第３の接続線に寄生する寄生容量を軽減でき、第１のインターフェースを介したデバッグ情報の高速シリアル通信を実現できるようになる。
【００２６】
また本発明は、前記マイクロコンピュータからの第１の信号のうち前記エミュレーションメモリの動作に必要な信号を含む第２の信号が、前記マイクロコンピュータ、前記エミュレーションメモリ間で伝達されることを特徴とする。このようにすれば、第２の信号の形態（信号の数、信号の種類等）を標準化できるようになる。なお、エミュレーションプローブボードをプローブ側ボードとメモリ側ボードに分離する場合には、第２の信号は、プローブ側ボードの第１のコネクタ、メモリ側ボードの第２のコネクタを介して、プローブ側ボード（マイクロコンピュータ）、メモリ側ボード（エミュレーションメモリ）間で伝達されることになる。
【００２７】
また本発明は、前記第２の信号で動作可能なカスタムチップを搭載するため第７の搭載手段が設けられていることを特徴とする。このようにすれば、第２の信号を用いてマイクロコンピュータの制御下でカスタムチップを動作させることが可能になる。そしてユーザは、カスタムチップの評価終了後に、このカスタムチップの回路とマイクロコンピュータの回路を１チップ化し、ＡＳＩＣマイクロコンピュータを設計できるようになる。
【００２８】
また本発明は、前記カスタムチップと外部との間のインターフェースとなる第２のインターフェース、前記カスタムチップと前記ターゲットシステムとの間のインターフェースとなる第３のインターフェースの少なくとも一方が設けられていることを特徴とする。このようにすれば、カスタムチップを構成する回路のデータのダウンロードや、カスタムチップからの入出力信号を用いてターゲットシステムやターゲットシステムに搭載されるデバイスを動作させること等が可能になり、ユーザの利便性を向上できる。
【００２９】
また本発明は、前記エミュレーションメモリが、前記マイクロコンピュータの内部メモリをエミュレーションするための内部メモリ用エミュレーションメモリと、前記マイクロコンピュータの外部メモリをエミュレーションするための外部メモリ用エミュレーションメモリとを含み、前記マイクロコンピュータ、前記外部メモリ用エミュレーションメモリ間では所与のバッファを介して前記第２の信号が伝達され、前記マイクロコンピュータ、前記内部メモリ用エミュレーションメモリ間では前記バッファを介さずに前記第２の信号が伝達されることを特徴とする。このようにすることで、マイクロコンピュータによる内部メモリ用エミュレーションメモリへのアクセスを高速化できるようになる。
【００３０】
また本発明は、前記エミュレーションメモリが、前記マイクロコンピュータの内部メモリをエミュレーションするための内部メモリ用エミュレーションメモリと、前記マイクロコンピュータの外部メモリをエミュレーションするための外部メモリ用エミュレーションメモリとを含み、前記外部メモリ用エミュレーションメモリを制御するための第１の制御信号とは別系統の第２の制御信号が前記内部メモリ用エミュレーションメモリに与えられることを特徴とする。このようにすれば、外部メモリ用エミュレーションメモリを制御する第１の制御信号とは別系統の第２の制御信号で、内部メモリ用エミュレーションメモリを制御できるようになる。これにより、内部メモリ用エミュレーションメモリへの適正なアクセスを実現できるようになる。
【００３１】
また本発明は、前記第２の制御信号が含む第２のメモリリード信号が、前記第１の制御信号が含む第１のメモリリード信号よりも早いタイミングでアクティブになることを特徴とする。このようにすれば、例えば内部メモリ用エミュレーションメモリに記憶される命令をマイクロコンピュータが１クロックサイクルでフェッチしデコードしなければならない等の制約がある場合にも、このような制約に容易に対応できるようになる。
【００３２】
また本発明に係るデバッグシステムは、上記のいずれかのエミュレーションプローブボードと、前記エミュレーションプローブボードに搭載される前記マイクロコンピュータと、前記エミュレーションプローブボードに搭載される前記エミュレーションメモリと、前記第１のインターフェースを介してデバッグ情報が通信されるデバッグツールとを含むことを特徴とする。
【００３３】
本発明によれば、ユーザの利便性を向上できると共に、ターゲットシステムの開発期間の短縮化、低コスト化を図れるデバッグシステムをユーザに提供できるようになる。
【００３４】
【発明の実施の形態】
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。
【００３５】
１．基本構成
図２に、本実施形態のエミュレーションプローブボード（エミュレーションＰＯＤ（Ｐｒｏｂｅ　Ｏｆ　Ｄｅｖｉｃｅ））の基本構成と、このエミュレーションプローブボードを用いたデバッグシステムの全体構成を示す。
【００３６】
エミュレーションプローブボード１０には、プローブ２０、高速のシリアルインターフェース（Ｉ／Ｆ）２４が設けられる共に、マイクロコンピュータ２２、エミュレーションメモリ３０が搭載可能になっている。即ち、マイクロコンピュータ２２、エミュレーションメモリ３０の搭載手段（特に限定されないが、ソケット、端子（ピン）穴、或いは端子から引き出される配線等により実現される手段）が設けられている。
【００３７】
ここで、プローブ２０は、ターゲットシステム５０のソケット５２に接続するためのものである。なお、ソケット（広義には搭載手段）５２は、ターゲットシステム５０の製品時にマイクロコンピュータ２２を搭載するためのものである。即ち、ターゲットシステム５０の評価時においては、エミュレーションプローブボード１０のプローブ２０がソケット５２に接続され、製品時においては、マイクロコンピュータ２２がソケット５２に搭載されることになる。
【００３８】
マイクロコンピュータ２２は、ＣＰＵやその周辺回路を含むものであり、本実施形態ではマイクロコンピュータ２２がオンチップデバッグ回路を内蔵する。これにより、オンチップデバッグ型ＩＣＥを実現できるようになる。
【００３９】
エミュレーションメモリ３０は、ターゲットシステム５０で使用される内部ＲＯＭ（広義には内部メモリ）や外部ＲＯＭ（広義には外部メモリ）をエミュレーション（代行）するためのものである。このエミュレーションメモリ３０としては、高速ＲＡＭ、通常のＲＡＭ、フラッシュメモリなどを用いることができる。
【００４０】
シリアルインターフェース（Ｉ／Ｆ）２４は、マイクロコンピュータ２２とＩＣＥ本体５４（広義にはデバッグツール）との間で、マイクロコンピュータ２２が内蔵するオンチップデバッグ回路のためのデバッグ情報を高速シリアル通信するためのインターフェース（高速シリアル通信インターフェース）である。このようなインターフェースとしては、いわゆるＪＴＡＧやＢＤＭ（Ｂａｃｋｇｒｏｕｎｄ　Ｄｅｂｕｇ　Ｍｏｄｅｌ）規格のインターフェースを採用してもよいし、ＪＴＡＧやＢＤＭに似た独自のインターフェースを採用してもよい。
【００４１】
図２に示すように本実施形態によれば、図１（Ｂ）の従来例と異なり、ターゲットシステムへのエミュレーションメモリの搭載が不要になる。従って、ターゲットシステムへのエミュレーションメモリの実装や、エミュレーションメモリの制御回路の設計等の手間を、ユーザが負わなくて済むようになる。またデバッグ方式が変更等されても、ターゲットシステムの設計変更は不要になる。また、製品用のターゲットシステムに対して、本来は不要であるはずのエミュレーションメモリを搭載する必要性がなくなる。また、評価用のターゲットシステムと製品用のターゲットシステムとを別個に設計する必要性も無くすことができる。従って本実施形態によれば、ターゲットシステムの開発期間の短縮化、低コスト化を図れ、ユーザの利便性を向上できるようになる。
【００４２】
しかも、本実施形態によれば、マイクロコンピュータ２２及びエミュレーションメモリ３０は、ＩＣＥ本体５４ではなく、プローブ２０が設けられる小面積のエミュレーションプローブボード１０上に集約して搭載される。このため、プローブ２０、マイクロコンピュータ２２間の配線パターン長や、プローブ２０、エミュレーションメモリ３０間の配線パターン長や、マイクロコンピュータ２２、エミュレーションメモリ３０間の配線パターン長を十分に短くできる。従って、マイクロコンピュータ２２を高いクロック周波数で動作させても、ターゲットシステム５０は問題なく正常に動作するようになる。この結果、評価時の動作環境と、製品時（実動作時）の動作環境とを同一にすることができ、デバッグシステム５０の信頼性を向上できる。
【００４３】
また、エミュレーションメモリ３０を内部ＲＯＭのエミュレーションのために用いる場合には、マイクロコンピュータ２２は１クロックサイクル内でエミュレーションメモリ３０からの命令をフェッチしデコードしなければならない。本実施形態によれば、マイクロコンピュータ２２、エミュレーションメモリ３０間の配線パターン長を十分に短くできるため、マイクロコンピュータ２２によるエミュレーションメモリ３０への高速アクセスが可能になる。従って、１クロックサイクル内で命令のフェッチ及びデコードを完了できるようになり、内部ＲＯＭのエミュレーションを適正に実現できるようになる。
【００４４】
また本実施形態によれば、エミュレーションプローブボード１０上に、デバッグ情報を通信するためのシリアルインターフェース２４が設けられる。従って、マイクロコンピュータ２２が内蔵するオンチップデバッグ回路を有効利用して、効率的なデバッグ作業を実現できるようになる。
【００４５】
即ち、図１（Ａ）に示すＣＰＵ置き換え型ＩＣＥでは、ターゲットシステムへのエミュレーションメモリの搭載は不要であるものの、オンチップデバッグ回路を利用した効率的なデバッグ作業を実現できない。
【００４６】
一方、図１（Ｂ）に示す従来のオンチップデバッグ型ＩＣＥでは、オンチップデバッグ回路を利用した効率的なデバッグ作業を実現できるものの、ターゲットシステムへのエミュレーションメモリの搭載が必要になり、ユーザの利便性を阻害する。
【００４７】
これに対して、本実施形態によれば、オンチップデバッグ回路を利用した効率的なデバッグ作業を実現できるのにもかかわらず、ターゲットシステムへのエミュレーションメモリの搭載を不要にでき、図１（Ａ）、（Ｂ）の組み合わせでは実現できない特有の効果を奏する。
【００４８】
２．プローブ側ボードとメモリ側ボードへの分離
図３に示すように、エミュレーションプローブボード１０は、プローブ側ボード１２とメモリ側ボード１４とに分離可能になっていることが望ましい。
【００４９】
ここでプローブ側ボード１２には、プローブ２０、マイクロコンピュータ２２、シリアルインターフェース２４、コネクタ２６が設けられている。一方、メモリ側ボード１４には、コネクタ２８、エミュレーションメモリ３０が設けられている。そして、コネクタ２６と２８をダイレクトに接続することで、プローブ側ボード１２、メモリ側ボード１４間で信号が伝達されることになる。
【００５０】
なお図３では、エミュレーションメモリ３０が、ＩＲＯＭエミュレーションメモリ３２（内部メモリ用エミュレーションメモリ）と、ＥＲＯＭエミュレーションメモリ３４（外部メモリ用エミュレーションメモリ）を含む。ＩＲＯＭエミュレーションメモリ３２は、マイクロコンピュータの内部ＲＯＭ（広義には内部メモリ）をエミュレーションするためのメモリであり、このようなメモリとしては、高速ＳＲＡＭなどを用いることができる。またＥＲＯＭエミュレーションメモリ３４は、マイクロコンピュータの外部ＲＯＭ（広義には外部メモリ）をエミュレーションするためのメモリであり、このようなメモリとしては、標準的な速度のＲＡＭ（ＳＲＡＭ、ＤＲＡＭ）、フラッシュメモリなどを用いることができる。
【００５１】
図３に示すように、エミュレーションプローブボード１０をプローブ側ボード１２とメモリ側ボード１４に分離することで、以下のような利点を得ることができる。
【００５２】
即ち、一般的に、マイクロコンピュータ２２の端子（ピン）の形態（端子数、端子配置、各端子へ割り当てられる信号等）は、種々様々である。このため、プローブ２０の端子の形態も種々様々になる。従って、ターゲットシステムで使用されるマイクロコンピュータ２２の機種が変更されると、それに合わせてエミュレーションプローブボードも違う機種のものを提供しなければならなくなる。
【００５３】
この場合に、エミュレーションプローブボード１０をプローブ側ボード１２とメモリ側ボード１４とに分離可能にしておけば、図４に示すように、プローブ側ボード１２のプローブ２０の端子の形態についてはカスタマイズできるようになると共に、メモリ側ボード１４のコネクタ２８（コネクタ２６）の端子の形態については標準化できるようになる。このため、使用するマイクロコンピュータ２２の機種が変更され、プローブ２０の端子の形態が変わっても、メモリ側ボード１４として同一（或いはほぼ同一）のものを使用できるようになる。従って、マイクロコンピュータ２２の機種が変更されても、プローブ側ボード１２だけを新たに作り直せばよく、メモリ側ボード１４については新たに作り直す必要性がなくなる。この結果、エミュレーションプローブボードの低コスト化、設計作業の効率化等を図れるようになる。
【００５４】
３．フラットケーブル用コネクタの併設
本実施形態のエミュレーションプローブボードにはマイクロコンピュータやエミュレーションメモリが搭載されるため、ＩＣＥにおける通常のプローブ（プローブボード）よりも、ボード面積が大きくなる。このため、ターゲットシステムの種類によっては、エミュレーションプローブボードの接続が困難になる場合が生じる。
【００５５】
そこで、このような問題を解決するために、図５に示すように、メモリ側ボード１４上に、ダイレクト接続用のコネクタ２８の他に、フラットケーブル２７用のコネクタ２９を併設することが望ましい。即ち、コネクタ２６とフラットケーブル２７を介して接続されるコネクタ２９をメモリ側ボード１４に設けるようにする。
【００５６】
このようにすることで、スペースが無い等の理由によりエミュレーションプローブボードを接続するのが困難なターゲットシステムであっても、エミュレーションプローブボードを容易に接続できるようになり、ユーザの利便性を向上できる。
【００５７】
また、本実施形態では、コネクタ２８を利用して、プローブ側ボード１２とメモリ側ボード１４とをダイレクトに接続することもできる。従って、フラットケーブル２７による信号遅延を望まないユーザの要望にも応えることができる。このように、図５の手法を用いれば、幅広い層のユーザの要望に応えることができるようになる。
【００５８】
４．プローブ側ボードへのＩＲＯＭエミュレーションメモリの搭載
前述のように、エミュレーションメモリとしては、内部ＲＯＭを代行するＩＲＯＭエミュレーションメモリと、外部ＲＯＭを代行するＥＲＯＭエミュレーションメモリとを考えることができる。そして、ＩＲＯＭエミュレーションメモリについては、ＩＲＯＭエミュレーションメモリから読み出された命令のフェッチ及びデコードを１クロックサイクル内で完了しなければならないため、ＩＲＯＭエミュレーションへのアクセスは、より高速であることが望まれる。特に、マイクロコンピュータのクロック周波数が高速である場合には、この要望は更に強いものとなる。
【００５９】
そこで、このような要望に応えるべく、図６に示すように、ＩＲＯＭエミュレーションメモリ３２についてはプローブ側ボード１２に設けるようにしてもよい。即ち、ＩＲＯＭエミュレーションメモリ３２の搭載手段をプローブ側ボード１２に設けるようにする。
【００６０】
このようにすることで、マイクロコンピュータ２２、ＩＲＯＭエミュレーションメモリ３２間の配線パターン長を短くすることができ、マイクロコンピュータ２２によるＩＲＯＭエミュレーションメモリ３２へのアクセスを高速化できるようになる。即ち、ＩＲＯＭエミュレーションメモリ３２をメモリ側ボード１４に設ける場合に比べて、メモリアクセスを格段に高速化できる。これにより、マイクロコンピュータ２２は、命令のフェッチ及びデコードを１クロックサイクル内で容易に完了できるようになる。この結果、評価時においても、製品時の場合と同様の高いクロック周波数でマイクロコンピュータ２２を動作させることができるようになり、評価時の動作環境と製品時の動作環境を同一にできるようになる。
【００６１】
さて、ＩＲＯＭエミュレーションメモリ３２へのアクセスの更なる高速化を図るためには、以下に説明するような２つの手法を採用することが更に望ましい。
【００６２】
例えば図７において、接続線６０、６１は、マイクロコンピュータ２２とＩＲＯＭエミュレーションメモリ３２との間の接続線であり、これらの接続線６０、６１により制御信号ＣＥ２、ＲＤ２がＩＲＯＭエミュレーションメモリ３２に伝達される。ここでＣＥ２、ＲＤ２は、各々、ＩＲＯＭエミュレーションメモリ３２用のチップイネーブル信号、メモリリード信号であり、これらは共に、ＩＲＯＭエミュレーションメモリ３２を制御するための信号である。
【００６３】
また、接続線６２、６３は、接続線６０、６１とコネクタ２６との間の接続線であり、これらの接続線６２、６３により制御信号ＣＥ２、ＲＤ２がコネクタ２６を介してメモリ側ボードに伝達される。即ち、本実施形態では図４にて説明したように、コネクタ２６、２８の端子の形態（端子数、端子配置、各端子へ割り当てられる信号等）が標準化される。従って、ＩＲＯＭエミュレーションメモリ３２がプローブ側ボードに搭載され、メモリ側ボードには搭載されない場合であっても、接続線６２、６３が存在することになる。メモリ側ボードにＩＲＯＭエミュレーションメモリ３２を設けた場合には、そのＩＲＯＭエミュレーションメモリ３２を動作させるために、接続線６２、６３が必要になるからである。
【００６４】
さて、ＩＲＯＭエミュレーションメモリ３２への高速アクセスを実現するためには、制御信号ＣＥ２、ＲＤ２の信号遅延を小さくする必要がある。そして、ＣＥ２、ＲＤ２の信号遅延は、ＣＥ２、ＲＤ２を出力するマイクロコンピュータ２２内のバッファ６８、６９の能力と、バッファ６８、６９の出力端子に寄生する寄生容量により決まる。
【００６５】
ところが、接続線６０、６１と接続線６２、６３が接続されると、バッファ６８、６９の出力端子に、接続線６０、６１の寄生容量のみならず接続線６２、６３の寄生容量も付加されることになるため、バッファ６８、６９の出力端子の寄生容量が大きくなってしまう。特に、接続線６２、６３は、コネクタ２６を介して、メモリ側ボードに接続されるため、接続線６２、６３の寄生容量は非常に大きい。
【００６６】
そこで図７では、接続線６０、６１と接続線６２、６３との間に、ジャンパ６４、６５（切断手段）を設けている。そして、ＩＲＯＭエミュレーションメモリ３２をプローブ側ボードに設ける場合には、ジャンパ６４、６５を切断状態にする。一方、ＩＲＯＭエミュレーションメモリ３２をメモリ側ボードに設ける場合には、ジャンパ６４、６５を導通状態にする。
【００６７】
このようにすれば、ＩＲＯＭエミュレーションメモリ３２がプローブ側ボードに設けられている場合には、接続線６０、６１と接続線６２、６３が切断されるため、バッファ６８、６９の出力端子の寄生容量は、接続線６０、６１の寄生容量だけになる。従って、制御信号ＣＥ２、ＲＤ２の信号遅延を最小化でき、ＩＲＯＭエミュレーションメモリ３２への高速アクセスを実現できる。
【００６８】
一方、ＩＲＯＭエミュレーションメモリ３２がメモリ側ボードに設けられている場合には、接続線６０、６１と接続線６２、６３は接続され、メモリ側ボードのＩＲＯＭエミュレーションメモリ３２に、制御信号ＣＥ２、ＲＤ２を適正に伝達できる。これは、ＩＲＯＭエミュレーションメモリ３２をプローブ側ボードに設けるかメモリ側ボードに設けるかに依らずに、コネクタ２６、２８を標準化できることを意味する。
【００６９】
なお、ジャンパ６４、６５が切断状態になった場合には、ジャンパ６６、６７を導通状態にする。このようにすることで、接続線６２、６３をＨレベルにプルアップすることができ、メモリ側ボードでのメモリの誤動作を防止できる。
【００７０】
また図８では、ＩＲＯＭエミュレーションメモリ３２が、下位８ビット（Ｄ０〜Ｄ７）用のＩＲＯＭエミュレーションメモリ３２−１と、上位８ビット（Ｄ８〜Ｄ１５）用のＩＲＯＭエミュレーションメモリ３２−２とに分かれている。高速アクセスを実現するためには、ＩＲＯＭエミュレーションメモリ３２として高速ＳＲＡＭを採用する必要があり、高速ＳＲＡＭの多くは８ビット製品だからである。
【００７１】
そして図８では、ＩＲＯＭエミュレーションメモリ３２−１については、プローブ側ボード１２の例えば表面に実装し、ＩＲＯＭエミュレーションメモリ３２−２については裏面（ＩＲＯＭエミュレーションメモリ３２−１が設けられている場所とほぼ同じ場所の裏面）に実装する。即ちＩＲＯＭエミュレーションメモリ３２−１の搭載手段をプローブ側ボード１２の表面に設けると共に、ＩＲＯＭエミュレーションメモリ３２−２の搭載手段を裏面に設ける。
【００７２】
即ち、ＩＲＯＭエミュレーションメモリ３２−１、３２−２を構成するＳＲＡＭは非常に高速であり、そのアクセスタイムは６ｎｓｅｃ程度となっている。従って、マイクロコンピュータ２２、ＩＲＯＭエミュレーションメモリ３２−１間の配線パターン長と、マイクロコンピュータ２２、ＩＲＯＭエミュレーションメモリ３２−２間の配線パターン長が異なり、これらの配線パターンに寄生する寄生容量が互いに異なると、信号遅延に差が生じてしまい、ＩＲＯＭエミュレーションメモリ３２−１、３２−２が誤動作するおそれがある。
【００７３】
そこで図８では、ＩＲＯＭエミュレーションメモリ３２−１、３２−２をサンドイッチ構造で両面実装し、マイクロコンピュータ２２、ＩＲＯＭエミュレーションメモリ３２−１間の配線パターン長と、マイクロコンピュータ２２、ＩＲＯＭエミュレーションメモリ３２−２間の配線パターン長とが同一（或いはほぼ同一）になるようにしている。これにより、これらの配線パターンに寄生する寄生容量も同一或いはほぼ同一にでき、ＩＲＯＭエミュレーションメモリ３２−１、３２−２として高速ＳＲＡＭを用いても、その誤動作を防止できるようになる。
【００７４】
５．高速シリアルインターフェース
図９に示すように本実施形態では、シリアルインターフェース２４を介してＩＣＥ本体（ホストシステムでもよい）との間で、ＤＳＴ２、ＤＳＴ１、ＤＳＴ０、ＤＰＣＯ、ＤＳＩＯ、ＤＣＬＫなどの信号（情報）がシリアル通信されている。
【００７５】
ここでＤＳＴ２〜０は、ＣＰＵ２２の命令実行のステータスを知らせるための３ビットの信号である。また、ＤＰＣＯは、分岐先のＰＣ（プログラムカウンタ）値を表す信号である。また、ＤＳＩＯは、デバッグのために実行する各種命令をＩＣＥ本体からマイクロコンピュータ２２に伝えたり、マイクロコンピュータ２２の応答をマイクロコンピュータ２２からＩＣＥ本体に伝えるための信号である。また、ＤＣＬＫはデバッグモード用のクロック信号である。
【００７６】
さて、マイクロコンピュータ２２がエミュレーションプローブボードに搭載されている場合には、図９に示すように、接続線７０〜７５及びシリアルインターフェース２４を介してマイクロコンピュータ２２とＩＣＥ本体との間でＤＳＴ２〜ＤＣＬＫが通信される。
【００７７】
また、マイクロコンピュータ２２がターゲットシステムに搭載された状態においても、ＤＳＴ２〜ＤＣＬＫをＩＣＥ本体との間で通信できることが望まれる。従って、図９に示すように、ターゲットシステム側にも、ＩＣＥ本体との間でＤＳＴ２〜ＤＣＬＫを通信するためのシリアルインターフェース２５を設けることが望ましい。従って、この場合には、ターゲットシステム側にも、マイクロコンピュータ２２、シリアルインターフェース２５間を接続する接続線７６〜８１が設けられることになる。この結果、エミュレーションプローブボード側の接続線７０〜７５は、接続線８８〜９３及びプローブ２０を介して、接続線７６〜８１に接続されることになる。
【００７８】
ところで、マイクロコンピュータ２２のクロック周波数が高い場合にも適正なデバッグ環境を実現するためには、ＤＳＴ２〜ＤＣＬＫの通信を、より高速化することが望まれる。このためには、接続線７０〜７５での信号遅延を最小限に抑える必要がある。そして、この信号遅延は、ＤＳＴ２〜ＤＣＬＫを出力するバッファ８２〜８７の能力と、接続線７０〜７５に寄生する寄生容量で決まる。
【００７９】
ところが、図９では接続線７０〜７５と接続線７６〜８１が接続される構造となっているため、接続線７０〜７５の寄生容量に接続線７６〜８１の寄生容量が付加されることになってしまう。このため、接続線７０〜７５での信号遅延が大きくなり、ＤＳＴ２〜ＤＣＬＫの通信の高速化の妨げとなる。
【００８０】
そこで図９では、接続線８８〜９３での接続を切断するためのジャンパ９４〜９９（切断手段）を設けている。
【００８１】
このようにすれば、ジャンパ９４〜９９を切断状態にすることで、接続線７０〜７５と接続線７６〜８１とが接続されないようになる。これにより、接続線７０〜７５の寄生容量に、接続線７６〜８１の寄生容量が付加されなくなり、バッファ８２〜８７の出力端子の寄生容量を大幅に軽減できる。これにより、ＤＳＴ２〜ＤＣＬＫの通信の高速化を図れ、マイクロコンピュータ２２が高いクロック周波数で動作している場合にも、適正なデバッグ環境を提供できるようになる。
【００８２】
６．第１の信号からの第２の信号の分離
さて、本実施形態では図１０に示すように、マイクロコンピュータ２２からの第１の信号のうち、エミュレーションメモリ３０の動作に必要な信号を含む第２の信号１０２が分離され、マイクロコンピュータ２２、エミュレーションメモリ３０間（プローブ側ボード１２、メモリ側ボード１４間）で伝達される。
【００８３】
即ち、マイクロコンピュータ２２から入出力される信号のほとんど全ては、第１の信号１００としてプローブ２０との間で伝達される。評価時においては図２に示すようにターゲットシステム５０のソケット５２にプローブ２０を接続し、エミュレーションプローブボード１０上のマイクロコンピュータ２２を用いて、ターゲットシステム５０を動作させなければならないからである。
【００８４】
しかしながら、マイクロコンピュータ２２からの第１の信号１００には種々様々な信号が含まれ、第１の信号の形態（信号数、信号の種類）はマイクロコンピュータ２２の機種に応じて異なったものになる。例えば第１の信号１００には、アドレス、データ、メモリの制御信号などの一般的な信号に加えて、タイマからの信号、入出力ポートからの信号、Ａ／Ｄ変換器からの信号などの種々の信号が含まれる。そして、例えばマイクロコンピュータ２２がＡ／Ｄ変換器を内蔵しない機種である場合には、第１の信号にはＡ／Ｄ変換器からの信号は含まれなくなる。このように第１の信号１００についてその信号の形態を標準化することは難しい。
【００８５】
そこで本実施形態では図１０に示すように、第１の信号１００から、エミュレーションメモリ３０の動作に必要な信号を含む第２の信号１０２を分離して、コネクタ２６、２８を介してメモリ側ボード１４に伝達している。即ち、アドレス、データ、メモリ等の制御のための制御信号など、エミュレーションメモリ３０の動作に必要な最低限の信号を第２の信号１０２に含ませてメモリ側ボード１４に伝達している。
【００８６】
このようにすれば、第２の信号１０２の形態（信号数、信号の種類）を、マイクロコンピュータ２２の機種に依存しない形態にすることができ、コネクタ２６、２８の端子の形態を標準化できるようになる。従って、図４にて説明したように、マイクロコンピュータ２２の機種が変更されても、メモリ側ボード１４として同一（或いはほぼ同一）のものを使用できるようになる。これにより、マイクロコンピュータ２２の機種が変更されても、プローブ側ボード１２だけを新たに作り直せばよく、エミュレーションプローブボードの低コスト化、設計期間の短縮化等を図れるようになる。
【００８７】
７．カスタムチップの搭載
さて、上述したように本実施形態では、エミュレーションメモリ３０の動作に必要な信号を含む第２の信号１０２を第１の信号１００から分離して、メモリ側ボード１４に伝達している。このような第２の信号１０２には、アドレス、データ、各種制御信号など、マイクロコンピュータ２２が入出力する基本的な信号が含まれることになる。従って、この第２の信号１０２を用いれば、エミュレーションメモリ３０以外にも、マイクロコンピュータ２２の制御下で動作可能な各種デバイスを動作させることができる。
【００８８】
そこで図１１（Ａ）では、第２の信号１０２で動作可能なカスタムチップ４０をメモリ側ボード１４に搭載している。即ち、カスタムチップ４０の搭載手段をメモリ側ボード１４に設けている。
【００８９】
即ち、近年、コアとなるマイクロコンピュータとユーザが自身で設計した回路とが組み込まれたＡＳＩＣマイクロコンピュータと呼ばれるものが脚光を浴びている。このようなＡＳＩＣマイクロコンピュータによれば、ユーザの用途に応じた最適なマイクロコンピュータをターゲットシステムに組み込むことが可能となり、ターゲットシステムの商品性の向上、コストの低下等を図れるようになる。
【００９０】
そして図１１（Ａ）のようにメモリ側ボード１４に、ユーザのカスタムチップ４０を搭載可能にすれば、ユーザは、自身が設計したカスタムチップ４０をマイクロコンピュータ２２の制御下で動作させて、その動作が正常か否かを評価できるようになる。そして、正常に動作することを確認したユーザは、図１１（Ｂ）に示すように、マイクロコンピュータ２２の回路１０５とカスタムチップ４０の回路１０６とから構成されるＡＳＩＣマイクロコンピュータ１０４をカスタム設計し、ユーザのターゲットシステムに組み込む。
【００９１】
図１１（Ａ）では、マイクロコンピュータ２２とカスタムチップ４０とが第２の信号１０２で接続されるため、マイクロコンピュータ２２とカスタムチップ４０とを連携させて動作させながら、その動作が正常か否かを評価できる。従って、この評価により正常動作が確認されたカスタムチップ４０の回路１０６を組み込んだＡＳＩＣマイクロコンピュータ１０４は、ユーザのターゲットシステムにおいても正常に動作することを期待できるようになる。これにより、ユーザは、短い開発期間でＡＳＩＣマイクロコンピュータ１０４をカスタム設計できるようになり、ターゲットシステムの開発期間の短縮化、コストの低下等を図れるようになる。
【００９２】
なおメモリ側ボード１４に搭載するカスタムチップ４０としては、ＦＰＧＡ（Ｆｉｅｌｄ　Ｐｒｏｇｒａｍｍａｂｌｅ　Ｇａｔｅ　Ａｒｒａｙ）などを採用できる。そして、カスタムチップ４０としてＦＰＧＡを用いる場合には、ＦＰＧＡ（カスタムチップ）４０にダウンロードするロジック回路のデータを記憶するコンフィグＲＯＭ４２についてもメモリ側ボード１４に搭載することが望ましい。このようなコンフィグＲＯＭ４２を搭載すれば、電源の立ち上げ時にＦＰＧＡ４０にロジック回路のデータをダウンロードする手間を省くことができる。
【００９３】
また図１１（Ａ）では、ＦＰＧＡ４０とＩＣＥ本体（或いはホストシステム）との間のインターフェース４４と、ＦＰＧＡ４０とターゲットシステムとの間のインターフェース４６がメモリ側ボード１４に設けられている。
【００９４】
ここで、インターフェース４４は、ＪＴＡＧなどに準拠した高速のシリアルインターフェースであり、ＦＰＧＡ４０にダウンロードするロジック回路のデータ等を通信するためのものである。このようなインターフェース４４を設ければ、ユーザは、自身が試したいロジック回路のデータを自由に書き換えることが可能になり、ユーザの利便性を向上できる。
【００９５】
また、インターフェース４６は、ＦＰＧＡ４０の入出力信号をターゲットシステムに伝達するためのものである。例えば、ターゲットシステムにＬＣＤが設けられており、ＦＰＧＡ４０の回路がこのＬＣＤの表示制御回路であった場合を考える。この場合には、ＬＣＤの表示制御信号がインターフェース４６を介してターゲットシステムに伝達されることになる。このようなインターフェース４６を設ければ、ＡＳＩＣマイクロコンピュータ１０４をターゲットシステムに組み込んだ場合のＡＳＩＣマイクロコンピュータ１０４と周辺のデバイスとの連係動作を、組み込み前に評価、検証できるようになる。これにより、ＡＳＩＣマイクロコンピュータ１０４の設計の効率化、設計期間の短縮化を図れるようになる。
【００９６】
８．ＩＲＯＭエミュレーションメモリへのアクセスの高速化
さて、前述したように、マイクロコンピュータの内部ＲＯＭをエミュレーションするＩＲＯＭエミュレーションメモリからの命令のフェッチ及びデコードは、１クロックサイクル内で完了しなければならない。このため、ＩＲＯＭエミュレーションメモリへのメモリアクセスを高速化する必要があるという課題がある。
【００９７】
そこで、このような課題を達成するために図１２では、マイクロコンピュータ２２、ＥＲＯＭエミュレーションメモリ３４間では、バッファ１０８、１０９を介してアドレス、データ（第２の信号）を伝達させる一方で、マイクロコンピュータ２２、ＩＲＯＭエミュレーションメモリ３２間では、バッファを介さずにダイレクトにアドレス、データを伝達させる。
【００９８】
このようにすることで、マイクロコンピュータ２２、ＩＲＯＭエミュレーションメモリ３２間の信号伝達では、バッファ１０８、１０９による信号遅延が生じなくなる。このため、ＩＲＯＭエミュレーションメモリ３２へのアクセスを高速化できるようになる。
【００９９】
なお、マイクロコンピュータ２２がＩＲＯＭエミュレーションメモリ３２にアクセスしている時には、制御信号ＣＮＴＢを用いてバッファ１０８、１０９を非導通状態にする。一方、マイクロコンピュータ２２がＥＲＯＭエミュレーションメモリ３４にアクセスしている時には、制御信号ＣＮＴＢを用いてバッファ１０８、１０９を導通状態にすると共に、制御信号ＣＮＴ２を用いてＩＲＯＭエミュレーションメモリ３２の動作を抑止する。
【０１００】
なお、図１２の手法は、図６に示すようにＩＲＯＭエミュレーションメモリ３２をプローブ側ボード１２に搭載した場合にも適用できる。
【０１０１】
９．マイクロコンピュータの構成
さて、マイクロコンピュータにおいては、通常、図１３（Ａ）に示すような量産用の製品チップ７００以外にも、図１３（Ｂ）に示すようなプログラムやシステム開発用の評価チップ７１０が作成される。そして、この評価チップ７１０では、外部メモリ７０６が接続される通常の外部アドレスバス７０２、外部データバス７０４以外にも、エミュレーションメモリ７１６に専用のアドレスバス７１２、データバス７１４が設けられる。
【０１０２】
しかしながら、このようにエミュレーションメモリ７１６に専用のアドレスバス７１２、データバス７１４を設けると、評価チップ７１０の端子（ピン）数は、製品チップ７００の端子数に比べて非常に多くなってしまう。このため、評価チップ７１０を実装できるパッケージの入手が困難になったり、製品チップ７００と評価チップ７１０との端子の整合性をとるのが煩雑になるという問題が生じる。また、評価チップ７１０では正常に動作していたプログラムが、製品チップ７００では動作しなくなるという問題も生じる。
【０１０３】
このような問題を解決するために、図１４のマイクロコンピュータ２２では、以下に説明するような工夫を施している。
【０１０４】
図１４のマイクロコンピュータ２２は、ＣＰＵ（広義にはプロセッサ）１１２、バス制御部（ＢＣＵ）１１４、内部ＲＯＭ（広義には内部メモリ）１１６、エミュレーション指示部１１８、メモリ制御部１２０を含む。また、マイクロコンピュータ２２の外部バス（外部バス端子）１２８には、ＥＲＯＭエミュレーションメモリ３４（製品時においては外部メモリ）や、ＩＲＯＭエミュレーションメモリ３２が接続可能になっている。なお、外部バス１２８に、ゲートアレイなどの他の外部デバイスを接続してもよい。
【０１０５】
ここで、ＣＰＵ１１２は、命令の実行処理を行うものであり、ＣＰＵ１１２のＣＰＵバス１２２はバス制御部１１４に接続される。またＣＰＵ１１２からのステータス信号ＳＴもバス制御部１１４に出力される。
【０１０６】
内部ＲＯＭ１１６は、プログラムやデータなどの情報を記憶するものであり、内部ＲＯＭ１１６の内部ＲＯＭバス１２６はバス制御部１１４に接続される。なお、評価時等においては、内部ＲＯＭ１１６をマイクロコンピュータ２２に内蔵させないようにしもよい。
【０１０７】
エミュレーション指示部１１８は、エミュレーションモードがオンの時に、エミュレーション指示信号ＥＭをアクティブにし、エミュレーションの指示をバス制御部１１４に対して行うものである。この場合、エミュレーションモードのオン、オフは、マイクロコンピュータ２２にモード選択端子を設け、このモード選択端子を制御することにより切り替えてもよいし、マイクロコンピュータ２２にモード選択レジスタを設け、このモード選択レジスタに記憶する情報を制御することにより切り替えてもよい。
【０１０８】
メモリ制御部１２０は、ＥＲＯＭエミュレーションメモリ３４、ＩＲＯＭエミュレーションメモリ３２、内部ＲＯＭ１１６を制御するための各種の制御信号（チップイネーブル信号、メモリリード信号等）ＣＮＴ１、ＣＮＴ２、ＣＮＴ３を出力する。特に、図１４では、同じ外部バス１２８に接続されるＥＲＯＭエミュレーションメモリ３４とＩＲＯＭエミュレーションメモリ３２に対して、互いに別系統の制御信号ＣＮＴ１、ＣＮＴ２を出力している点に特徴がある。
【０１０９】
バス制御部１１４は、ＣＰＵバス１２２、内部ＲＯＭバス１２６、外部バス１２８などの制御を行うためのものである。バス制御部１１４は、ＣＰＵ１１２からのアドレスやステータス信号ＳＴに基づいて、内部ＲＯＭ１１６の内部ＲＯＭバス１２６を、ＣＰＵバス１２２に接続したり、ＥＲＯＭエミュレーションメモリ３４、ＩＲＯＭエミュレーションメモリ３２が接続される外部バス１２８を、ＣＰＵバス１２２に接続したりする等のバス制御を行う。
【０１１０】
そして、バス制御部１１４は、エミュレーション指示部１１８からの信号ＥＭによりエミュレーションモード（内部ＲＯＭ１１６をＩＲＯＭエミュレーションメモリ３２でエミュレーションするモード）がオンであると指示された場合には、ＣＰＵ１１２の内部ＲＯＭ１１６へのアクセスを、外部バス１２８を介したＩＲＯＭエミュレーションメモリ３２へのアクセスに切り替える。即ち、ＣＰＵバス１２２を、内部ＲＯＭバス１２６ではなく、外部バス１２８に接続し、ＣＰＵバス１２２及び内部ＲＯＭバス１２６を介した内部ＲＯＭ１１６へのＣＰＵ１１２のアクセスを、ＣＰＵバス１２２及び外部バス１２８を介したＩＲＯＭエミュレーションメモリ３２へのアクセスに切り替える。
【０１１１】
このようにすることで、ＣＰＵ１１２は、内部ＲＯＭ１１６に格納されるプログラム（或いはデータ）ではなく、ＩＲＯＭエミュレーションメモリ３２に格納されるプログラムに基づいて動作するようになる。従って、ユーザは、プログラムが完成するまでは開発途中のプログラムをＩＲＯＭエミュレーションメモリ３２に随時ダウンロードしてプログラム開発を行うことができる。そして、開発が終了した後に完成したプログラムを内部ＲＯＭ１１６に記憶させて、最終的な製品チップとすることが可能になる。
【０１１２】
そして、図１４のマイクロコンピュータ２２では、製品時においては外部メモリへのアクセスに用いられる外部バス１２８を用いて（図１３（Ａ）参照）、ＩＲＯＭエミュレーションメモリ３２へアクセスしている。従って、図１３（Ｂ）に示すようなエミュレーションメモリ７１６に専用のアドレスバス７１２、データバス７１４を設ける必要がない。このため、製品チップと評価チップの端子（ピン）数を同一にできるようになる。従って、製品チップをそのまま評価チップとして使えるようになり、製品の低コスト化を図れるようになる。
【０１１３】
また図１４のマイクロコンピュータ２２によれば、評価チップ用の別パッケージを用意したり、製品チップと評価チップの端子の整合性をとる等の手間を省くことができる。
【０１１４】
また図１４のマイクロコンピュータ２２によれば、製品チップをそのまま評価チップとして使用できるため、実動作時と同じ環境、信号のタイミングでプログラム開発を行えるようになる。この結果、製品チップの信頼性を向上できると共に、開発期間の短縮化、製品コストの低減化を図れるようになる。
【０１１５】
なお、ＣＰＵ１１２の内部ＲＯＭ１１６へのアクセスを、ＩＲＯＭエミュレーションメモリ３２へのアクセスに切り替える場合、内部ＲＯＭ１１６へのアクセスは、内部ＲＯＭ１１６が割り当てられるメモリ空間のエリアへのアクセスであれば十分である。例えば評価時等において内部ＲＯＭ１１６をマイクロコンピュータ２２に内蔵させない場合を考える。この場合には、内部ＲＯＭ１１６は物理的には存在しないため、ＣＰＵ１１２が内部ＲＯＭ１１６へアクセスしても、そのアクセスは、内部ＲＯＭ１１６が割り当てられたメモリ空間のエリアへのアクセスにとどまることになる。
【０１１６】
さて、図１４のように、外部バス１２８を用いてＩＲＯＭエミュレーションメモリ３２にアクセスするようにすると、次のような問題が生じる。
【０１１７】
即ち、内部ＲＯＭ１１６に格納される命令（プログラム）のフェッチ及びデコードは、１クロックサイクル内で完了する必要がある。従って、エミュレーションモード時には、ＩＲＯＭエミュレーションメモリ３２の命令を１クロックサイクル内でフェッチ及びデコードしなければならなくなる。
【０１１８】
ところが、外部バス１２８は、図１３（Ｂ）と異なり、ＩＲＯＭエミュレーションメモリ３２に専用のバスではない。従って、外部メモリ（製品時）やＥＲＯＭエミュレーションメモリ３４（評価時）と全く同様にＩＲＯＭエミュレーションメモリ３２を制御しようとすると、１クロックサイクル内での命令のフェッチ及びデコードを実現できなくなる問題が生じる。特に、クロック周波数が高くなると、この問題は更に深刻になる。
【０１１９】
そこで図１４では、ＥＲＯＭエミュレーションメモリ３４を制御するための制御信号ＣＮＴ１とは別系統の制御信号ＣＮＴ２を用意し、このＣＮＴ２を用いてＩＲＯＭエミュレーションメモリ３２からの読み出し動作等を制御するようにしている。より具体的には、ＣＮＴ１に含まれるメモリリード信号よりも早いタイミングでＣＮＴ２に含まれるメモリリード信号がアクティブになるように信号を制御している。このようにすることで、外部バス１２８を用いてＩＲＯＭエミュレーションメモリ３２にアクセスするようにした場合にも、１クロックサイクル内で命令のフェッチ及びデコードを完了できるようになる。これにより、ＩＲＯＭエミュレーションメモリ３２を用いたプログラム開発を、実動作時のクロック周波数で行うことが容易になる。
【０１２０】
図１５に、マイクロコンピュータ２２の詳細な構成例を示す。
【０１２１】
ここではＣＰＵ１１２は、ハーバードアーキテクチャのバス構成を採用している。ＣＰＵ１１２の命令用アドレスバス１５０、データ用アドレスバス１５２は、マルチプレクサ１４０に入力される。マルチプレクサ１４０は、ＣＰＵ１１２からの命令／データ切り替え信号ＤＩＳ（ステータス信号の１つ）に基づいて、命令用アドレスバス１５０からのアドレスと、データ用アドレスバス１５２からのアドレスのいずれか選択して、外部アドレスバス１５４に出力する。
【０１２２】
ＣＰＵ１１２のデータ出力バス１５８は、入出力パッドセル１４８を介して外部データバス１５６に接続される。また、ＣＰＵ１１２のデータ入力バス１６０は、命令／データ切り替え部１４２、データバス１６２、入出力パッドセル１４８を介して、外部データバス１５６に接続される。
【０１２３】
ＣＰＵ１１２の命令フェッチ用バス１６４は、内部ＲＯＭ１１６に接続されると共に、命令／データ切り替え部１４２、データバス１６２、入出力パッドセル１４８を介して、外部データバス１５６に接続される。
【０１２４】
メモリ制御部２０は、第１のチップイネーブル信号ＣＥ１、第１のメモリリード信号ＲＤ１をＥＲＯＭエミュレーションメモリ３４に出力する。また、ＣＥ１、ＲＤ１とは別系統の第２のチップイネーブル信号ＣＥ２、第２のメモリリードＲＤ２をＩＲＯＭエミュレーションメモリ３２に出力する。また第３のチップイネーブル信号ＣＥ３、第３のメモリリード信号ＲＤ３を内部ＲＯＭ１１６に出力する。即ち、メモリ制御部１２０は、これらのＣＥ１、ＲＤ１、ＣＥ２、ＲＤ２、ＣＥ３、ＲＤ３を用いて、ＥＲＯＭエミュレーションメモリ３４、ＩＲＯＭエミュレーションメモリ３２、内部ＲＯＭ１１６からのリード動作等を制御することになる。
【０１２５】
モード選択端子ＭＴ、モード選択レジスタ１４４、ＯＲ回路１４６は、図１４のエミュレーション指示部１１８に相当するものである。即ち端子ＭＴがＨレベルになる、或いは、モード選択レジスタ１４４にＨレベルが記憶されると、エミュレーションモード指示信号ＥＭがＨレベルになり、エミュレーションモードのためのバス切り替え制御が行われるようになる。
【０１２６】
次に、図１５のマイクロコンピュータ２２の命令のフェッチ動作について簡単に説明する。
【０１２７】
命令フェッチの場合には、命令／データ切り替え信号ＤＩＳが命令を指示するようになり、マルチプレクサ１４０が命令用アドレスバス１５０を選択する。これにより、外部アドレスバス１５４及び内部ＲＯＭアドレスバス１５５には、命令用のアドレスが出力される。即ち、ＩＲＯＭエミュレーションメモリ３２、内部ＲＯＭ１１６には共に、命令用アドレスが入力されることになる。
【０１２８】
この時、モード選択レジスタ１４４にＬレベルが記憶され、且つ端子ＭＴもＬレベルに設定されていると、エミュレーションモードがオフになり、信号ＥＭがＬレベルになる。また命令フェッチであるため、ＣＰＵ１１２からの信号ＲＥＡＤ（ステータス信号の１つ）もアクティブになる。これにより、メモリ制御部１２０は、アドレスバス１５５からのアドレスをデコードし、内部ＲＯＭエリアのアドレスであれば、内部ＲＯＭ１１６への第３のチップイネーブル信号ＣＥ３、第３のメモリリード信号ＲＤ３をアクティブにする。これにより、内部ＲＯＭ１１６からの命令が、命令フェッチ用バス１６４を介してＣＰＵ１１２に読み出されるようになる。即ちＣＰＵ１１２は、内部ＲＯＭ１１６に記憶されている命令をフェッチして実行することになる。
【０１２９】
一方、モード選択レジスタ１４４にＨレベルが記憶される、或いは端子ＭＴがＨレベルに設定されると、エミュレーションモードがオンになり、信号ＥＭがＨレベルになる。すると、メモリ制御部１２０は、今度は、ＣＥ３、ＲＤ３ではなく、ＩＲＯＭエミュレーションメモリ３２への第２のチップイネーブル信号ＣＥ２、第２のメモリリード信号ＲＤ２をアクティブにする。また、命令フェッチであるため、信号ＤＩＳが命令を指示するようになると共に信号ＲＥＡＤがアクティブになり、命令／データ切り替え部１４２が、データ入力バス１６０ではなく、命令フェッチ用バス１６４を選択するようになる。以上により、ＩＲＯＭエミュレーションメモリ３２からの命令が、外部データバス１５６、入出力パッドセル１４８、データバス１６２、命令／データ切り替え部１４２、命令フェッチ用バス１６４を介して、ＣＰＵ１１２に読み出されるようになる。即ちＣＰＵ１１２は、内部ＲＯＭ１１６ではなくＩＲＯＭエミュレーションメモリ３２に記憶されている命令をフェッチして実行するようになる。
【０１３０】
なお、このようにＩＲＯＭエミュレーションメモリ３２の命令が読み出されている間は、内部ＲＯＭ１１６が内蔵するトライステートバッファ１１７の出力がトライステート状態になる。これにより、命令フェッチ用バス１６４でのデータの衝突が防止される。
【０１３１】
以上のように図１５のマイクロコンピュータ２２では、ＣＰＵ１１２の命令フェッチ時にエミュレーションモードがオフ（信号ＥＭがＬレベル）の場合には、通常通り、内部ＲＯＭ１１６からの命令が命令用フェッチバス１６４を介してＣＰＵ１１２にフェッチされて実行される。一方、ＣＰＵ１１２の命令フェッチ時にエミュレーションモードがオン（信号ＥＭがＨレベル）の場合には、内部ＲＯＭ１１６ではなくＩＲＯＭエミュレーションメモリ３２からの命令が外部データバス１５６を介してＣＰＵ１１２にフェッチされて実行されるようになる。
【０１３２】
従って、プログラムの完成前においてはユーザは、端子ＭＴ又はモード選択レジスタ１４４を用いてエミュレーションモードをオンにし、ＩＲＯＭエミュレーションメモリ３２に開発途中のプログラムを随時ダウンロードしながらプログラム開発を行う。そして、プログラムの開発が完了すると、ユーザは、完成後のプログラムを内部ＲＯＭ１１６に記憶させる（マスクパターンを作成する）。そして、端子ＭＴ又はモード選択レジスタ１４４を用いてエミュレーションモードをオフにする。これにより、内部ＲＯＭ１１６からの命令に基づいてＣＰＵ１１２が動作する製品チップが完成する。
【０１３３】
そして図１５のマイクロコンピュータ２２では、ＩＲＯＭエミュレーションメモリ３２に専用のアドレスバス、データバスは設けられない。従って、ＩＲＯＭエミュレーションメモリ３２からの命令（プログラム）でＣＰＵ１１２が動作する評価チップと、内部ＲＯＭ１１６からの命令でＣＰＵ１１２に動作する製品チップとが、端子数、パッドのレイアウト配置、信号線の引き回し等が異ならない同一チップとなる。このため、製品チップそのものを用いてプログラムを開発できるようになる。この結果、評価時と製品時（実動作時）とで動作環境、信号のタイミングが異なることに起因して、評価時には正常に動作していたが製品時には動作しなくなる等の問題を効果的に解決できるようになる。
【０１３４】
さて、以上のように外部アドレスバス１５４、外部データバス１５６を用いてＩＲＯＭエミュレーションメモリ３２にアクセスする手法を採用することで、製品チップと評価チップを同一チップにできる利点を得ることができる。しかしながら、その反面、この手法によると、ＩＲＯＭエミュレーションメモリ３２からの命令の読み出しが間に合わなくなるという問題が生じる。
【０１３５】
即ち、ＥＲＯＭエミュレーションメモリ３４（評価時）や外部メモリ（製品時）からの情報の読み出しについては、通常、時間的な余裕が十分にある。これに対して、ＣＰＵ１１２による命令のフェッチ及びデコードは１クロックサイクル内で完了する必要があるため、ＩＲＯＭエミュレーションメモリ３２からの命令の読み出しについては時間的な余裕がない。
【０１３６】
そこで図１５では、ＥＲＯＭエミュレーションメモリ３４用のＣＥ１、ＲＤ１とは別系統（或いは外部メモリ用のチップイネーブル信号、メモリリード信号とは別系統）のチップイネーブル信号ＣＥ２、メモリリード信号ＲＤ２をメモリ制御部１２０に出力させている。これにより、外部アドレスバス１５４、外部データバス１５６をＥＲＯＭエミュレーションメモリ３４とＩＲＯＭエミュレーションメモリ３２で共用しながらも、ＩＲＯＭエミュレーションメモリ３２からの命令のフェッチ及びデコードを、１クロックサイクル内で完了できるようになる。以上のことについて図１６の信号波形図を用いて詳細に説明する。
【０１３７】
図１６では、ＣＰＵ１１２が次のような命令を実行する。
・命令（１）　ｌｄ　　％ｒ２，０ｘ００
・命令（２）　ｌｄ　　％ｒ１，［％ｒ９］
・命令（３）　ａｄｄ　％ｒ４，％ｒ１
・命令（４）　ｓｕｂ　％ｒ５，％ｒ１
上記において、命令（１）は、ＣＰＵ１１２の汎用レジスタｒ２にデータ０ｘ００をロードするという命令である。命令（２）は、汎用レジスタｒ９に格納されているアドレスであるＥＲＯＭエミュレーションメモリ３４のアドレスからのデータを、汎用レジスタｒ１にロードする命令である。即ちＥＲＯＭエミュレーションメモリ３４からのデータを汎用レジスタｒ１にロードする命令である。命令（３）は、汎用レジスタｒ４のデータとｒ１のデータを加算する命令である。命令（４）は、汎用レジスタｒ５のデータからｒ１のデータを減算する命令である。
【０１３８】
これらの命令（１）、（２）、（３）、（４）は、図１６のＢ１に示すようにパイプライン処理により実行される。なおＢ１において、Ｆは命令のフェッチを、Ｄは命令のデコードを、Ｒはレジスタのリードを、Ａはアドレスの計算を、Ｅは命令の実行を、Ｗはレジスタへのライトを表す。
【０１３９】
図１６のＢ２に示すＢＣＬＫは、バスサイクルを決めるバスクロックであり、ここでは、ＢＣＬＫはＣＰＵ１１２の動作クロックにもなっている。
【０１４０】
図１６ではＢ３に示すように、まずＩＲＯＭエミュレーションメモリ３２からの命令の読み出しが行われ、次に、ＥＲＯＭエミュレーションメモリ３４からのデータの読み出しが行われ、次に、ＩＲＯＭエミュレーションメモリ３２からの命令の読み出しが行われる。
【０１４１】
即ち、図１６のＢ４、Ｂ５、Ｂ６に示すように、命令（１）、（２）、（３）をＩＲＯＭエミュレーションメモリ３２から読み出すためのアドレスが外部アドレスバス１５４に出力される。これらのアドレスは、ＣＰＵ１１２から命令用アドレスバス１５０、マルチプレクサ１４０を介して外部アドレスバス１５４に出力される。これにより、Ｂ７、Ｂ８、Ｂ９に示すように、各アドレスに対応する命令（命令データ）がＩＲＯＭエミュレーションメモリ３２から読み出され、外部データバス１５６に出力される。そして、これらの命令は、外部データバス１５６から入出力パッドセル１４８、データバス１６２、命令／データ切り替え部１４２、命令フェッチ用バス１６４を介して、ＣＰＵ１１２にフェッチされデコードされる。
【０１４２】
また、図１６のＢ１０では、ＥＲＯＭエミュレーションメモリ３４への読み出しアドレスが、ＣＰＵ１１２からデータ用アドレスバス１５２、マルチプレクサ１４０を介して外部アドレスバス１５４に出力される。このアドレスは、上記命令（２）により指定されるアドレス［％ｒ９］である。これにより、Ｂ１１に示すように、ＥＲＯＭエミュレーションメモリ３４からのデータが外部データバス１５６に出力され、入出力パッドセル１４８、データバス１６２、命令／データ切り替え部１４２、データ入力バス１６０を介してＣＰＵ１１２に読み出される。
【０１４３】
また、図１６のＢ１２では、命令（４）をＩＲＯＭエミュレーションメモリ３２から読み出すためのアドレスが外部アドレスバス１５４に出力される。これによりＢ１３に示すように、このアドレスに対応する命令がＩＲＯＭエミュレーションメモリ３２から外部データバス１５６に出力される。
【０１４４】
ＥＲＯＭエミュレーションメモリ３４からデータを読み出す場合には、図１６のＢ１４、Ｂ１５に示すように第１のチップイネーブル信号ＣＥ１、第１のメモリリード信号ＲＤ１をアクティブにする（Ｌレベルにする）。一方、ＩＲＯＭエミュレーションメモリ３２から命令を読み出す場合には、Ｂ１６〜Ｂ２１に示すように、第２のチップイネーブル信号ＣＥ２、第２のメモリリード信号ＲＤ２をアクティブにする。
【０１４５】
この時、Ｂ１５に示すように、ＲＤ１はＢＣＬＫの立ち下がりに同期してアクティブになる。一方、Ｂ１８〜Ｂ２１に示すように、ＲＤ２は、ＢＣＬＫの立ち上がりに同期してアクティブになる。より具体的には、ＢＣＬＫの立ち上がりから所与の遅延時間（遅延素子における遅延時間）ＴＤ経過後にアクティブになる。即ち、ＲＤ２は、ＲＤ１よりも早いタイミングでアクティブになるように制御される。
【０１４６】
このようにＲＤ２を早いタイミングアクティブにすることで、ＣＰＵ１１２による命令のフェッチ（Ｆ）及びデコード（Ｄ）を、１クロックサイクル内で完了できるようになる。
【０１４７】
即ち、ＥＲＯＭエミュレーションメモリ３４に使用するＲＤ１を用いてＩＲＯＭエミュレーションメモリ３２からの命令の読み出しを行うと、ＲＤ１はＢＣＬＫの立ち下がりに同期してアクティブになるため、ＣＰＵ１１２による命令のフェッチ及びデコードが１クロックサイクル内で完了できなくなる問題が生じる。特に、ＢＣＬＫのクロック周波数が高くなった場合には、この問題が生じる可能性は更に高まる。
【０１４８】
この場合、例えば、評価時、即ちＩＲＯＭエミュレーションメモリ３２からの命令の読み出し時においては、ＢＣＬＫのクロック周波数を低くするようにすれば、上記問題を解消できる。しかしながら、これでは、実動作時のクロック周波数とプログラム開発時のクロック周波数が異なることになってしまい、プログラム開発時には正常に動作していたプログラムが実動作時には正常に動作しなくなるという問題を招く。従って、製品チップと評価チップを同一チップにできるという利点が、実質的に失われてしまう。
【０１４９】
これに対して、図１６では、ＲＤ１と別系統のＲＤ２を用意し、Ｂ１８〜Ｂ２１に示すようにＲＤ２を早いタイミングでアクティブにしているため、ＩＲＯＭエミュレーションメモリ３２からの命令のフェッチ及びデコードを１クロックサイクル内で適正に完了できるようになる。従って、実動作時と同一のクロック周波数でプログラム開発をできるようになり、プログラム開発が終了し完成後のプログラムを内部ＲＯＭ１１６に記憶させた場合にも、問題なくプログラムが正常に動作するようになる。従って、外部アドレスバス１５４、外部データバス１５６の共用により製品チップと評価チップを同一チップにできるというマイクロコンピュータ２２の利点を、より生かせるようになる。
【０１５０】
なお、図１６のＢ２２では、ＥＲＯＭエミュレーションメモリ３４からのデータの読み出しにウェイトが挿入されているため、ＣＰＵ１１２のパイプライン処理がストールしている。即ち、外部アドレスバス１５４、外部データバス１５６には、読み出しや書き込みスピードが異なる種々のＥＲＯＭエミュレーションメモリ３４（ＲＡＭ、フラッシュメモリ等）が接続される可能性がある。従って、信号ＣＥ１、ＲＤ１がアクティブになる期間に対してはウェイトの挿入が可能になっており、読み出しや書き込みスピードが異なる種々のＥＲＯＭエミュレーションメモリ３４に対応できるようになっている。
【０１５１】
一方、信号ＣＥ２、ＲＤ２が出力されるＩＲＯＭエミュレーションメモリ３２については、上述したように１クロックサイクルで命令を読み出す必要がある。従って、ＣＥ２、ＲＤ２がアクティブになる期間に対しては、ＣＥ１、ＲＤ１とは異なり、ウェイトの挿入は行われないことになる。
【０１５２】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【０１５３】
例えば、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【０１５４】
また本発明では、図３に示すようにプローブ側ボードとメモリ側ボードとを分離可能な構成とすることが特に望ましいが、分離可能な構成にしないことも可能である。
【０１５５】
また、高速のシリアルインターフェースを介してデバッグツールとの間で通信されるデバッグ情報も、本実施形態で説明したものに限定されるものではない。
【０１５６】
またプローブ側ボードやメモリ側ボードに設けられるコネクタも、図５で説明したものが特に望ましいが、これに限定されるものではない。
【０１５７】
またプローブ側ボードに内部メモリ用エミュレーションメモリを設ける場合の実装手法や配線接続も本実施形態で説明したものが特に望ましいが、これに限定されるものではない。
【０１５８】
またメモリ側ボードに搭載されるカスタムチップとしてはＦＰＧＡが特に望ましいが、これに限定されるものではない。
【０１５９】
また、外部メモリ用エミュレーションメモリを制御するための第１の制御信号や、内部メモリ用エミュレーションメモリを制御するための第２の制御信号も、図１５、図１６で説明したような信号が特に望ましいが、これに限定されるものではない。
【図面の簡単な説明】
【図１】図１（Ａ）、（Ｂ）は、ＣＰＵ置き換え型ＩＣＥと、従来のオンチップデバッグ型ＩＣＥの問題点について説明するための図である。
【図２】本実施形態の基本構成について説明するための図である。
【図３】エミュレーションプローブボードをプローブ側ボードとメモリ側ボードとに分離可能にする手法について説明するための図である。
【図４】プローブ側ボードのプローブの端子の形態についてはカスタマイズ可能にすると共に、メモリ側ボードのコネクタの端子の形態を標準化する手法について説明するための図である。
【図５】フラットケーブルが接続可能なコネクタをメモリ側ボードに併設する手法について説明するための図である。
【図６】プローブ側ボードにＩＲＯＭエミュレーションメモリを設ける手法について説明するための図である。
【図７】ＩＲＯＭエミュレーションメモリの制御信号を伝達する接続線にジャンパを設ける手法について説明するための図である。
【図８】２つのＩＲＯＭエミュレーションメモリをサンドイッチ構造で両面実装する手法について説明するための図である。
【図９】シリアル通信されるデバッグ情報を伝達する接続線にジャンパを設ける手法について説明するための図である。
【図１０】マイクロコンピュータからの第１の信号のうち第２の信号を分離してメモリ側ボードに伝達する手法について説明するための図である。
【図１１】図１１（Ａ）、（Ｂ）は、メモリ側ボードにカスタムチップを搭載する手法について説明するための図である。
【図１２】アドレス、データをバッファを介さずにＩＲＯＭエミュレーションメモリに伝達する手法について説明するための図である。
【図１３】図１３（Ａ）、（Ｂ）は、製品チップと評価チップを別チップにする従来の手法について説明するための図である。
【図１４】マイクロコンピュータの構成例を示すブロック図である。
【図１５】マイクロコンピュータの更に詳細な構成例を示すブロック図である。
【図１６】マイクロコンピュータの動作を説明するための信号波形図である。
【符号の説明】
１０　エミュレーションプローブボード、１２　プローブ側ボード
１４　メモリ側ボード、２０　プローブ、２２　マイクロコンピュータ
２４　シリアルインターフェース、２６　コネクタ、２７　フラットケーブル
２８　コネクタ、２９　コネクタ、３０　エミュレーションメモリ
３２、３２−１、３２−２　　ＩＲＯＭエミュレーションメモリ
３４　ＥＲＯＭエミュレーションメモリ、４０　カスタムチップ（ＦＰＧＡ）
４２　コンフィグＲＯＭ、４４　インターフェース、４６　インターフェース
５０　ターゲットシステム、５２　ソケット、５４　ＩＣＥ本体
５６　ホストシステム、６０〜６３　接続線、６４〜６７　ジャンパ
６８、６９　バッファ、７０〜８１　接続線、８２〜８７　バッファ
８８〜９３　接続線、９４〜９９　ジャンパ、１００　第１の信号
１０２　第２の信号、１０４　ＡＳＩＣマイクロコンピュータ
１０５　マイクロコンピュータの回路、１０６　カスタムチップの回路
１０８、１０８　バッファ
【図１】
2004030652.tif 000003
【図２】
2004030652.tif 000004
【図３】
2004030652.tif 000005
【図４】
2004030652.tif 000006
【図５】
2004030652.tif 000007
【図６】
2004030652.tif 000008
【図７】
2004030652.tif 000009
【図８】
2004030652.tif 000010
【図９】
2004030652.tif 000011
【図１０】
2004030652.tif 000012
【図１１】
2004030652.tif 000013
【図１２】
2004030652.tif 000014
【図１３】
2004030652.tif 000015
【図１４】
2004030652.tif 000016
【図１５】
2004030652.tif 000017
【図１６】
2004030652.tif 000018
【手続補正書】
【提出日】平成15年10月20日(2003.10.20)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ターゲットシステムの開発支援のため、オンチップデバッグ回路を有するマイクロコンピュータが組み込まれるエミュレーションプローブボードであって、
エミュレーションプローブボードを前記ターゲットシステムの第１の搭載手段に接続するためのプローブと、
前記ターゲットシステムで使用されるメモリをエミュレーションするためのエミュレーションメモリを搭載するためのメモリ搭載手段と、
前記メモリ搭載手段に搭載されるエミュレーションメモリにアクセスする前記マイクロコンピュータを搭載するためのマイクロコンピュータ搭載手段と、
を含み、
前記プローブ、前記メモリ搭載手段及び前記マイクロコンピュータ搭載手段が同一基板に設けられていることを特徴とするエミュレーションプローブボード。
【請求項２】
請求項１において、
前記プローブと、前記マイクロコンピュータ搭載手段と、第１のコネクタとが少なくとも設けられるプローブ側ボードと、
前記メモリ搭載手段と、前記第１のコネクタに接続される少なくとも１つの第２のコネクタとが少なくとも設けられるメモリ側ボードとに分離されていることを特徴とするエミュレーションプローブボード。
【請求項３】
請求項２において、
前記プローブ側ボードの前記プローブの端子の形態がカスタマイズ可能であると共に、前記メモリ側ボードの前記第２のコネクタの端子の形態が標準化されていることを特徴とするエミュレーションプローブボード。
【請求項４】
請求項２又は３において、
前記プローブ側ボードの前記第１のコネクタにダイレクトに接続するための第３のコネクタと、前記プローブ側ボードの前記第１のコネクタにケーブルを介して接続するための第４のコネクタとが、前記第２のコネクタとして前記メモリ側ボードに設けられていることを特徴とするエミュレーションプローブボード。
【請求項５】
請求項２乃至４のいずれかにおいて、
前記エミュレーションメモリが、前記ターゲットシステムに組み込まれるマイクロコンピュータの内部メモリをエミュレーションするための内部メモリ用エミュレーションメモリと、前記ターゲットシステムに組み込まれるマイクロコンピュータの外部メモリをエミュレーションするための外部メモリ用エミュレーションメモリとを含み、
前記内部メモリ用エミュレーションメモリを搭載するための手段が、前記プローブ側ボードに設けられていることを特徴とするエミュレーションプローブボード。
【請求項６】
請求項５において、
前記マイクロコンピュータ搭載手段に搭載されたマイクロコンピュータと前記内部メモリ用エミュレーションメモリとを接続し前記内部メモリ用エミュレーションメモリを制御するための制御信号が伝達される第１の接続線と、前記第１の接続線と前記第１のコネクタとを接続し前記制御信号が伝達される第２の接続線と、前記第２の接続線による接続を切断するための第１の切断手段とが設けられていることを特徴とするエミュレーションプローブボード。
【請求項７】
請求項５又は６において、
前記内部メモリ用エミュレーションメモリが第１、第２の内部メモリ用エミュレーションメモリを含み、
前記第１の内部メモリ用エミュレーションメモリを搭載するための手段が前記プローブ側ボードの第１の面に設けられ、前記第２の内部メモリ用エミュレーションメモリを搭載するための手段が前記プローブ側ボードの第２の面に設けられていることを特徴とするエミュレーションプローブボード。
【請求項８】
請求項１乃至７のいずれかにおいて、
前記マイクロコンピュータ搭載手段に搭載されたマイクロコンピュータによりアクセスされた前記エミュレーションメモリに基づく前記ターゲットシステムをデバッグするためのデバッグ情報を、デバッグツールとの間で通信するための手段を含むことを特徴とするエミュレーションプローブボード。
【請求項９】
請求項８記載のエミュレーションプローブボードと、
前記エミュレーションプローブボードに搭載される前記マイクロコンピュータと、
前記エミュレーションプローブボードに搭載される前記エミュレーションメモリと、
前記エミュレーションボードとの間でデバッグ情報が通信されるデバッグツールとを含むことを特徴とするデバッグシステム。