(57)【特許請求の範囲】
【請求項１】
ＦＩＦＯメモリを内蔵したワンチップ・マイクロコンピュータの機能をエミュレートするインサーキットエミュレータにおけるＦＩＦＯメモリの読出方法であって、
プログラム実行中のＦＩＦＯメモリ読出に際しては、読出アドレスを指示するリードポインタを更新させるが、プログラム非実行中のＦＩＦＯメモリ読出に際しては、リードポインタを更新させないようにしたことを特徴とするインサーキットエミュレータにおけるＦＩＦＯメモリ読出方法。
【請求項２】
エミュレートするワンチップ・マイクロコンピュータは、外部からの入力データを読み出す受信用ＦＩＦＯメモリと、外部への出力データを書き込む送信用ＦＩＦＯメモリとを別々に備え、
プログラム実行中の受信用ＦＩＦＯメモリ読出に際しては、ＦＩＦＯＲＡＭへ読出信号を出力すると共に、ＦＩＦＯＲＡＭの読出アドレスを記憶するアドレス制御回路へリードポインタ更新信号を出力してリードポインタを更新させ、
プログラム非実行中の受信用ＦＩＦＯメモリ読出に際しては、ＦＩＦＯＲＡＭへ読出信号を出力するが、アドレス制御回路へリードポインタ更新信号を出力しないことで、リードポインタを更新させないようにしたことを特徴とする請求項１に記載のインサーキットエミュレータにおけるＦＩＦＯメモリ読出方法。
【請求項３】
エミュレートするワンチップ・マイクロコンピュータは、外部からの入力データを読み出す受信用ＦＩＦＯメモリと、外部への出力データを書き込む送信用ＦＩＦＯメモリとを別々に備えると共に、コアＣＰＵはプログラムデータをメモリから読み出すときにプログラム読出指示信号を出力するものであり、
プログラム実行中の受信用ＦＩＦＯメモリ読出に際しては、コアＣＰＵよりプログラム読出指示信号を出力してから予め定めた通常読出期間内にＦＩＦＯメモリの読出信号を出力することにより、ＦＩＦＯＲＡＭおよびアドレス制御回路の両方へ読出信号を入力させて、ＦＩＦＯＲＡＭからの読出およびアドレス制御回路のリードポインタ更新を行わせ、
プログラム非実行中の受信用ＦＩＦＯメモリ読出に際しては、コアＣＰＵよりプログラム読出指示信号を出力してから通常読出期間を経過した後にＦＩＦＯメモリの読出信号を出力することにより、ＦＩＦＯＲＡＭのみへ読出信号を入力させて、アドレス制御回路のリードポインタを更新することなくＦＩＦＯＲＡＭからの読出を行うようにしたことを特徴とする請求項１に記載のインサーキットエミュレータにおけるＦＩＦＯメモリ読出方法。
【請求項４】
ＦＩＦＯメモリを内蔵したワンチップ・マイクロコンピュータの機能をエミュレートするインサーキットエミュレータであって、
プログラム実行中のＦＩＦＯメモリ読出に際しては、読出アドレスを指示するリードポインタを更新させるが、プログラム非実行中のＦＩＦＯメモリ読出に際しては、リードポインタを更新させないようにＦＩＦＯメモリのアクセス制御を行うメモリアクセス制御手段を設けたことを特徴とするＦＩＦＯメモリ内蔵ワンチップ・マイクロコンピュータ用インサーキットエミュレータ。
【請求項５】
エミュレートするワンチップ・マイクロコンピュータと同様に、外部からの入力データを読み出す受信用ＦＩＦＯメモリと、外部への出力データを書き込む送信用ＦＩＦＯメモリとを別々に備え、
前記受信用ＦＩＦＯメモリと送信用ＦＩＦＯメモリへのアクセス制御を行うメモリアクセス制御手段が、プログラム実行中の受信用ＦＩＦＯメモリ読出に際しては、ＦＩＦＯＲＡＭへ読出信号を出力すると共に、ＦＩＦＯＲＡＭの読出アドレスを記憶するアドレス制御回路へリードポインタ更新信号を出力してリードポインタを更新させ、プログラム非実行中の受信用ＦＩＦＯメモリ読出に際しては、ＦＩＦＯＲＡＭへ読出信号を出力するが、アドレス制御回路へリードポインタ更新信号を出力しないことで、リードポインタを更新させないようにしたことを特徴とする請求項４に記載のＦＩＦＯメモリ内蔵ワンチップ・マイクロコンピュータ用インサーキットエミュレータ。
【請求項６】
エミュレートするワンチップ・マイクロコンピュータと同様に、外部からの入力データを読み出す受信用ＦＩＦＯメモリと、外部への出力データを書き込む送信用ＦＩＦＯメモリとを別々に備えると共に、コアＣＰＵがプログラムデータをメモリから読み出すときにプログラム読出指示信号を出力するものとし、
前記受信用ＦＩＦＯメモリと送信用ＦＩＦＯメモリへのアクセス制御を行うメモリアクセス制御手段は、
コアＣＰＵよりプログラム読出指示信号を出力してから予め定めた通常読出期間を計時する通常読出期間計時手段と、
前記通常読出期間計時手段により計時される通常読出期間内に受信用ＦＩＦＯメモリの読出信号を受けると、受信用ＦＩＦＯメモリのＦＩＦＯＲＡＭおよびアドレス制御回路の両方へ読出信号を入力させ、通常読出期間外に受信用ＦＩＦＯメモリの読出信号を受けると、ＦＩＦＯＲＡＭのみへ読出信号を入力させる読出信号出力選択手段と、
を備え、
プログラム実行中のコアＣＰＵによる受信用ＦＩＦＯメモリ読出に際しては、通常読出期間内にメモリアクセス制御手段へ読出信号を出力することで、ＦＩＦＯＲＡＭからの読出およびアドレス制御回路のリードポインタ更新を行わせ、プログラム非実行中の受信用ＦＩＦＯメモリ読出に際しては、通常読出期間外にメモリアクセス制御手段へ読出信号を出力することで、アドレス制御回路のリードポインタを更新することなくＦＩＦＯＲＡＭからの読出を行わせるようにしたことを特徴とする請求項４に記載のＦＩＦＯメモリ内蔵ワンチップ・マイクロコンピュータ用インサーキットエミュレータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＦＩＦＯメモリを内蔵したワンチップ・マイクロコンピュータの機能をエミュレートするインサーキットエミュレータにおけるＦＩＦＯメモリの読出方法およびＦＩＦＯメモリを内蔵したワンチップ・マイクロコンピュータの機能をエミュレートするインサーキットエミュレータに関する。
【背景技術】
【０００２】
マイクロプロセッサを複数用いた分散処理システムにおいて、処理部間の通信を行う場合、通信データの欠落を防ぐため通信処理にプロセッサの処理能力を十分に割り当てる必要があった。すなわち、受信したデータは次のデータが来る前に取り出してメモリ上のバッファに格納し、送信するデータは途切れないように次々とメモリ上のバッファから読み出して送信しなければ通信データが欠落してしまうため、プロセッサとしては優先度の高い処理が必要であった。
【０００３】
そこで、通信回路とプロセッサの間をハードウェアで構成したＦＩＦＯメモリ（先入れ先出し型のメモリであり、例えば、アドレスで指定される情報格納領域を複数備えるＦＩＦＯＲＡＭと、読出アドレスおよび書込アドレスを制御するアドレス制御回路から構成）を介して接続する技術が提案されている（例えば、特許文献１および特許文献２を参照）。これら特許文献１，２に記載されているように、ＦＩＦＯメモリは、ＲＡＭ、リードポインタ、ライトポインタなどで構成され、外部からデータが書き込まれるときは、ライトポインタの示すＲＡＭにデータが格納され、ライトポインタは次に書き込まれるべきデータのために更新され、同様に、外部からデータが読み出されるときは、リードポインタの示すＲＡＭからデータが読み出され、リードポインタは次に読み出されるべきデータのために更新されるので、ＦＩＦＯメモリが送信バッファあるいは受信バッファとして機能することから、データの送受信を高い優先度で処理する必要が無くなり、プロセッサ能力を有効活用することができる。
【０００４】
【特許文献１】特開平２−１７０２５８号公報
【特許文献２】特開平８−９５７５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１および特許文献２に記載の発明においては、ＦＩＦＯメモリを内蔵するワンチップ・マイクロコンピュータ（以下、ワンチップＣＰＵという）を構成した場合、そのワンチップＣＰＵを使用した処理部のプログラムを開発する際に、インサーキットエミュレータ（以下、ＩＣＥという）を使用すると、デバッグ等でのＦＩＦＯメモリ読出によってＦＩＦＯメモリのリードポインタが更新されてしまうという不都合が生じる。
【０００６】
ここで、ＩＣＥとはＣＰＵをエミュレートする装置であり、ワンチップＣＰＵと同じプログラムを実行することができるだけでなく、プログラムの実行を任意に休止させたり、休止させる箇所を指定したりすることができる、ワンチップＣＰＵのプログラムを開発する際に必要な装置である。また、ＩＣＥは、プログラムの実行を休止した状態で、ＰＣ（パーソナルコンピュータ）を介して開発者からの指示によりメモリなどワンチップＣＰＵに集積した機能からデータを読み出して、ＰＣに表示させることができる。
【０００７】
このように、旧来のＩＣＥにおけるデバッガ機能は、ＦＩＦＯメモリを想定していないので、デバッグ中に通常の読出動作でＦＩＦＯメモリを読み出してしまうと、問題が生じることとなる。すなわち、プログラムの実行を休止させた状態で、開発者がデバッグ機能によりＦＩＦＯメモリをリードすると、この読出動作によってＦＩＦＯメモリのリードポインタが更新され、リードポインタが次の情報格納領域を指すようになるため、この状態でプログラムの実行を再開すると、プログラムの休止中にＦＩＦＯメモリをリードした分だけＦＩＦＯメモリの内容が欠落することになってしまう。
【０００８】
プログラム実行の休止は、人間の操作による場合だけでなく、ＩＣＥの機能として、プログラムの実行中にわずかな時間だけ休止し、その間にＦＩＦＯメモリをリードした後プログラムの実行を再開することで、プログラムを実行しながらあたかもリアルタイムにメモリ等の内容を表示させる場合にも生ずる。
【０００９】
そこで、本発明は、ＦＩＦＯメモリを内蔵するワンチップ・マイクロコンピュータのプログラムを開発するとき等にインサーキットエミュレータを使用しても、ＦＩＦＯメモリの読出動作が障害とならないようなインサーキットエミュレータにおけるＦＩＦＯメモリ読出方法の提供と、このＦＩＦＯメモリ読出方法を採用したＦＩＦＯメモリ内蔵ワンチップ・マイクロコンピュータ用インサーキットエミュレータの提供を目的とする。
【課題を解決するための手段】
【００１０】
上記の課題を解決するために、請求項１に係る発明は、ＦＩＦＯメモリを内蔵したワンチップ・マイクロコンピュータの機能をエミュレートするインサーキットエミュレータにおけるＦＩＦＯメモリの読出方法であって、プログラム実行中のＦＩＦＯメモリ読出に際しては、読出アドレスを指示するリードポインタを更新させるが、プログラム非実行中のＦＩＦＯメモリ読出に際しては、リードポインタを更新させないようにしたことを特徴とする。
【００１１】
また、請求項２に係る発明は、前記請求項１に記載のインサーキットエミュレータにおけるＦＩＦＯメモリ読出方法において、エミュレートするワンチップ・マイクロコンピュータは、外部からの入力データを読み出す受信用ＦＩＦＯメモリと、外部への出力データを書き込む送信用ＦＩＦＯメモリとを別々に備え、プログラム実行中の受信用ＦＩＦＯメモリ読出に際しては、ＦＩＦＯＲＡＭへ読出信号を出力すると共に、ＦＩＦＯＲＡＭの読出アドレスを記憶するアドレス制御回路へリードポインタ更新信号を出力してリードポインタを更新させ、プログラム非実行中の受信用ＦＩＦＯメモリ読出に際しては、ＦＩＦＯＲＡＭへ読出信号を出力するが、アドレス制御回路へリードポインタ更新信号を出力しないことで、リードポインタを更新させないようにしたことを特徴とする。
【００１２】
また、請求項３に係る発明は、前記請求項１に記載のインサーキットエミュレータにおけるＦＩＦＯメモリ読出方法において、エミュレートするワンチップ・マイクロコンピュータは、外部からの入力データを読み出す受信用ＦＩＦＯメモリと、外部への出力データを書き込む送信用ＦＩＦＯメモリとを別々に備えると共に、コアＣＰＵはプログラムデータをメモリから読み出すときにプログラム読出指示信号を出力するものであり、プログラム実行中の受信用ＦＩＦＯメモリ読出に際しては、コアＣＰＵよりプログラム読出指示信号を出力してから予め定めた通常読出期間内にＦＩＦＯメモリの読出信号を出力することにより、ＦＩＦＯＲＡＭおよびアドレス制御回路の両方へ読出信号を入力させて、ＦＩＦＯＲＡＭからの読出およびアドレス制御回路のリードポインタ更新を行わせ、プログラム非実行中の受信用ＦＩＦＯメモリ読出に際しては、コアＣＰＵよりプログラム読出指示信号を出力してから通常読出期間を経過した後にＦＩＦＯメモリの読出信号を出力することにより、ＦＩＦＯＲＡＭのみへ読出信号を入力させて、アドレス制御回路のリードポインタを更新することなくＦＩＦＯＲＡＭからの読出を行うようにしたことを特徴とする。
【００１３】
上記の課題を解決するために、請求項４に係る発明は、ＦＩＦＯメモリを内蔵したワンチップ・マイクロコンピュータの機能をエミュレートするインサーキットエミュレータであって、プログラム実行中のＦＩＦＯメモリ読出に際しては、読出アドレスを指示するリードポインタを更新させるが、プログラム非実行中のＦＩＦＯメモリ読出に際しては、リードポインタを更新させないようにＦＩＦＯメモリのアクセス制御を行うメモリアクセス制御手段を設けたことを特徴とする。
【００１４】
また、請求項５に係る発明は、前記請求項４に記載のＦＩＦＯメモリ内蔵ワンチップ・マイクロコンピュータ用インサーキットエミュレータにおいて、エミュレートするワンチップ・マイクロコンピュータと同様に、外部からの入力データを読み出す受信用ＦＩＦＯメモリと、外部への出力データを書き込む送信用ＦＩＦＯメモリとを別々に備え、前記受信用ＦＩＦＯメモリと送信用ＦＩＦＯメモリへのアクセス制御を行うメモリアクセス制御手段が、プログラム実行中の受信用ＦＩＦＯメモリ読出に際しては、ＦＩＦＯＲＡＭへ読出信号を出力すると共に、ＦＩＦＯＲＡＭの読出アドレスを記憶するアドレス制御回路へリードポインタ更新信号を出力してリードポインタを更新させ、プログラム非実行中の受信用ＦＩＦＯメモリ読出に際しては、ＦＩＦＯＲＡＭへ読出信号を出力するが、アドレス制御回路へリードポインタ更新信号を出力しないことで、リードポインタを更新させないようにしたことを特徴とする。
【００１５】
また、請求項６に係る発明は、前記請求項４に記載のＦＩＦＯメモリ内蔵ワンチップ・マイクロコンピュータ用インサーキットエミュレータにおいて、エミュレートするワンチップ・マイクロコンピュータと同様に、外部からの入力データを読み出す受信用ＦＩＦＯメモリと、外部への出力データを書き込む送信用ＦＩＦＯメモリとを別々に備えると共に、コアＣＰＵがプログラムデータをメモリから読み出すときにプログラム読出指示信号を出力するものとし、前記受信用ＦＩＦＯメモリと送信用ＦＩＦＯメモリへのアクセス制御を行うメモリアクセス制御手段は、コアＣＰＵよりプログラム読出指示信号を出力してから予め定めた通常読出期間を計時する通常読出期間計時手段と、前記通常読出期間計時手段により計時される通常読出期間内に受信用ＦＩＦＯメモリの読出信号を受けると、受信用ＦＩＦＯメモリのＦＩＦＯＲＡＭおよびアドレス制御回路の両方へ読出信号を入力させ、通常読出期間外に受信用ＦＩＦＯメモリの読出信号を受けると、ＦＩＦＯＲＡＭのみへ読出信号を入力させる読出信号出力選択手段と、を備え、プログラム実行中のコアＣＰＵによる受信用ＦＩＦＯメモリ読出に際しては、通常読出期間内にメモリアクセス制御手段へ読出信号を出力することで、ＦＩＦＯＲＡＭからの読出およびアドレス制御回路のリードポインタ更新を行わせ、プログラム非実行中の受信用ＦＩＦＯメモリ読出に際しては、通常読出期間外にメモリアクセス制御手段へ読出信号を出力することで、アドレス制御回路のリードポインタを更新することなくＦＩＦＯＲＡＭからの読出を行わせるようにしたことを特徴とする。
【発明の効果】
【００１６】
請求項１に係るインサーキットエミュレータにおけるＦＩＦＯメモリ読出方法によれば、プログラム実行中のＦＩＦＯメモリ読出に際しては、読出アドレスを指示するリードポインタを更新させるが、プログラム非実行中のＦＩＦＯメモリ読出に際しては、リードポインタを更新させないようにしたので、プログラム非実行中にＦＩＦＯメモリを読み出しても、プログラム中断時におけるＦＩＦＯメモリのリードポインタが更新されることはなく、プログラムの実行を再開してもＦＩＦＯメモリの内容が欠落するような障害を回避できる。
【００１７】
請求項２に係るインサーキットエミュレータにおけるＦＩＦＯメモリ読出方法によれば、エミュレートするワンチップ・マイクロコンピュータは、外部からの入力データを読み出す受信用ＦＩＦＯメモリと、外部への出力データを書き込む送信用ＦＩＦＯメモリとを別々に備え、プログラム実行中の受信用ＦＩＦＯメモリ読出に際しては、ＦＩＦＯＲＡＭへ読出信号を出力すると共に、ＦＩＦＯＲＡＭの読出アドレスを記憶するアドレス制御回路へリードポインタ更新信号を出力してリードポインタを更新させ、プログラム非実行中の受信用ＦＩＦＯメモリ読出に際しては、ＦＩＦＯＲＡＭへ読出信号を出力するが、アドレス制御回路へリードポインタ更新信号を出力しないことで、リードポインタを更新させないようにしたので、ＦＩＦＯＲＡＭへの読出信号とアドレス制御回路へのリードポインタ更新信号を個別に出力するという簡単な手法で、ＦＩＦＯメモリにおけるリードポインタ更新制御を実現できる。
【００１８】
請求項３に係るインサーキットエミュレータにおけるＦＩＦＯメモリ読出方法によれば、エミュレートするワンチップ・マイクロコンピュータは、外部からの入力データを読み出す受信用ＦＩＦＯメモリと、外部への出力データを書き込む送信用ＦＩＦＯメモリとを別々に備えると共に、コアＣＰＵはプログラムデータをメモリから読み出すときにプログラム読出指示信号を出力するものであり、プログラム実行中の受信用ＦＩＦＯメモリ読出に際しては、コアＣＰＵよりプログラム読出指示信号を出力してから予め定めた通常読出期間内にＦＩＦＯメモリの読出信号を出力することにより、ＦＩＦＯＲＡＭおよびアドレス制御回路の両方へ読出信号を入力させて、ＦＩＦＯＲＡＭからの読出およびアドレス制御回路のリードポインタ更新を行わせ、プログラム非実行中の受信用ＦＩＦＯメモリ読出に際しては、コアＣＰＵよりプログラム読出指示信号を出力してから通常読出期間を経過した後にＦＩＦＯメモリの読出信号を出力することにより、ＦＩＦＯＲＡＭのみへ読出信号を入力させて、アドレス制御回路のリードポインタを更新することなくＦＩＦＯＲＡＭからの読出を行うようにしたので、ＦＩＦＯメモリのリードポインタ更新制御が必要なプログラム実行中におけるＦＩＦＯメモリの読出と、ＦＩＦＯメモリのリードポインタ更新制御が不要なプログラム実行中でないときのＦＩＦＯメモリの読出とを、通常読出期間内か通常読出期間外かで判別するという簡単な手法で、ＦＩＦＯメモリにおけるリードポインタ更新制御を実現できる。
【００１９】
請求項４に係るＦＩＦＯメモリ内蔵ワンチップ・マイクロコンピュータ用インサーキットエミュレータによれば、プログラム実行中のＦＩＦＯメモリ読出に際しては、読出アドレスを指示するリードポインタを更新させるが、プログラム非実行中のＦＩＦＯメモリ読出に際しては、リードポインタを更新させないようにＦＩＦＯメモリのアクセス制御を行うメモリアクセス制御手段を設けたので、メモリアクセス制御手段がプログラム非実行中にＦＩＦＯメモリを読み出しても、プログラム中断時におけるＦＩＦＯメモリのリードポインタを更新することはなく、プログラムの実行を再開してもＦＩＦＯメモリの内容が欠落するような障害を回避できる。
【００２０】
請求項５に係るＦＩＦＯメモリ内蔵ワンチップ・マイクロコンピュータ用インサーキットエミュレータによれば、エミュレートするワンチップ・マイクロコンピュータと同様に、外部からの入力データを読み出す受信用ＦＩＦＯメモリと、外部への出力データを書き込む送信用ＦＩＦＯメモリとを別々に備え、前記受信用ＦＩＦＯメモリと送信用ＦＩＦＯメモリへのアクセス制御を行うメモリアクセス制御手段が、プログラム実行中の受信用ＦＩＦＯメモリ読出に際しては、ＦＩＦＯＲＡＭへ読出信号を出力すると共に、ＦＩＦＯＲＡＭの読出アドレスを記憶するアドレス制御回路へリードポインタ更新信号を出力してリードポインタを更新させ、プログラム非実行中の受信用ＦＩＦＯメモリ読出に際しては、ＦＩＦＯＲＡＭへ読出信号を出力するが、アドレス制御回路へリードポインタ更新信号を出力しないことで、リードポインタを更新させないようにしたので、メモリアクセス制御手段がＦＩＦＯＲＡＭへの読出信号とアドレス制御回路へのリードポインタ更新信号を個別に出力するという簡単な構成で、ＦＩＦＯメモリにおけるリードポインタ更新制御を実現できる。
【００２１】
請求項６に係るＦＩＦＯメモリ内蔵ワンチップ・マイクロコンピュータ用インサーキットエミュレータによれば、エミュレートするワンチップ・マイクロコンピュータと同様に、外部からの入力データを読み出す受信用ＦＩＦＯメモリと、外部への出力データを書き込む送信用ＦＩＦＯメモリとを別々に備えると共に、コアＣＰＵがプログラムデータをメモリから読み出すときにプログラム読出指示信号を出力するものとし、前記受信用ＦＩＦＯメモリと送信用ＦＩＦＯメモリへのアクセス制御を行うメモリアクセス制御手段は、コアＣＰＵよりプログラム読出指示信号を出力してから予め定めた通常読出期間を計時する通常読出期間計時手段と、前記通常読出期間計時手段により計時される通常読出期間内に受信用ＦＩＦＯメモリの読出信号を受けると、受信用ＦＩＦＯメモリのＦＩＦＯＲＡＭおよびアドレス制御回路の両方へ読出信号を入力させ、通常読出期間外に受信用ＦＩＦＯメモリの読出信号を受けると、ＦＩＦＯＲＡＭのみへ読出信号を入力させる読出信号出力選択手段と、を備え、プログラム実行中のコアＣＰＵによる受信用ＦＩＦＯメモリ読出に際しては、通常読出期間内にメモリアクセス制御手段へ読出信号を出力することで、ＦＩＦＯＲＡＭからの読出およびアドレス制御回路のリードポインタ更新を行わせ、プログラム非実行中の受信用ＦＩＦＯメモリ読出に際しては、通常読出期間外にメモリアクセス制御手段へ読出信号を出力することで、アドレス制御回路のリードポインタを更新することなくＦＩＦＯＲＡＭからの読出を行わせるようにしたので、メモリアクセス制御手段における読出信号出力制御手段が、ＦＩＦＯメモリのリードポインタ更新制御が必要なプログラム実行中におけるＦＩＦＯＲＡＭおよびアドレス制御回路への読出信号出力と、ＦＩＦＯメモリのリードポインタ更新制御が不要なプログラム実行中でないときのＦＩＦＯＲＡＭのみへの読出信号出力とを、通常読出期間計時手段により計時される通常読出期間内か通常読出期間外かで判別するという簡単な構成で、ＦＩＦＯメモリにおけるリードポインタ更新制御を実現できる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の望ましい実施形態を添付図面に基づいて詳細に説明する。
【００２３】
図１に示すのは、本発明に係るＦＩＦＯメモリ内蔵ワンチップ・マイクロコンピュータ用インサーキットエミュレータの第１実施形態の概略構成を示すもので、少なくともコアＣＰＵ，ＲＯＭ，ＲＡＭ，Ｉ／Ｏをワンチップ内に集約した構造のワンチップ・マイクロコンピュータ（以下、単にワンチップＣＰＵという）のインサーキットエミュレータ（以下、単にＩＣＥという）として機能させるコアＣＰＵ用ＩＣＥ１００およびワンチップＣＰＵ用ＩＣＥＰＯＤ２００をターゲット基板３００に接続し、制御用コンピュータＰＣからの指示により動作し、種々の情報が制御用コンピュータＰＣに表示される。
【００２４】
なお、ＩＣＥはエミュレート対象のワンチップＣＰＵと同様の回路構成を持つ装置であるが、本構成例においては、コアＣＰＵに該当する構成をコアＣＰＵ用ＩＣＥ１００とし、その他の周辺回路を設けたワンチップＣＰＵ用ＩＣＥＰＯＤ２００とは別の装置として構成してある。これは、通常のワンチップＣＰＵが多品種になるため、その一つ一つに対応したＩＣＥを製造販売するよりも、コアＣＰＵ用のＩＣＥを共通に使用し、異なる機能を有した各々のワンチップＣＰＵについては、各々の機能に応じたＩＣＥＰＯＤを製造販売した方が経済的な場合が多いからである。無論、コアＣＰＵ用ＩＣＥ１００とワンチップＣＰＵ用ＩＣＥＰＯＤを一体化して、ターゲット基板３００および制御用コンピュータＰＣに接続する構成であっても構わない。
【００２５】
ワンチップＣＰＵ用ＩＣＥＰＯＤ２００は、コアＣＰＵ用ＩＣＥ１００を接続するコアＣＰＵ用ソケット２１０を有しており、コアＣＰＵ用ＩＣＥ１００と種々の信号を授受する。なお、図１に示す構成図においては、後述するＦＩＦＯメモリのアクセスに関連する信号として、クロック信号ＣＬＫ、読出信号ＲＤ、書込信号ＷＲ、プログラム読出指示信号Ｍ１、アドレス信号、データ信号のみを示し、他の信号は省略した。また、図１に示す構成図においては、ワンチップＣＰＵ用ＩＣＥＰＯＤ２００にＦＩＦＯメモリのアクセスに関連する構成のみ示し、その他の構成は省略してある。
【００２６】
エミュレート対象のワンチップＣＰＵが制御するターゲット基板３００には、ワンチップＣＰＵが装着されるワンチップＣＰＵ用ソケット３１０が実装されており、ここにワンチップＣＰＵ用ＩＣＥＰＯＤ２００からのプローブが接続される。ワンチップＣＰＵ用ＩＣＥＰＯＤ２００の代わりに、開発したプログラムが書き込まれたワンチップＣＰＵをワンチップＣＰＵ用ソケット３１０に装着すれば、ターゲット基板３００は独立して動作することになる。
【００２７】
ワンチップＣＰＵ用ＩＣＥＰＯＤ２００の内部には、上記ターゲット基板３００とシリアル通信を行うためのシリアル通信ポート２２０を備え、このシリアル通信ポート２２０を介して行うシリアル通信における受信バッファとして用いる第１ＦＩＦＯメモリ２３０と、送信バッファとして用いる第２ＦＩＦＯメモリ２４０を設け、これら第１，第２ＦＩＦＯメモリ２３０，２４０へのアクセスは、アドレスデコード回路２５０によって行う。
【００２８】
外部であるターゲット基板３００から通信データを受信したシリアル通信ポート２２０は、そのデータをライト信号ＳＷＲとともに第１ＦＩＦＯメモリ２３０に出力する。第１ＦＩＦＯメモリ２３０では、アドレス制御回路２３１が次にライトすべきＦＩＦＯＲＡＭ２３２の書込アドレスをライトポインタとして保持しているので、シリアル通信ポート２２０から入力されたデータは、ライト信号ＳＷＲの入力タイミングによりライトポインタの示す位置（ＦＩＦＯＲＡＭ２３２中の書込アドレスに対応した情報格納領域）にライトされる。このライト信号ＳＷＲは、同時にアドレス制御回路２３１にも入力されているので、アドレス制御回路２３１は、この次にライトすべきデータのためにライトポインタを更新する。
【００２９】
また、外部であるターゲット基板３００から読出信号を受信したシリアル通信ポート２２０は、リード信号ＳＲＤを第２ＦＩＦＯメモリ２４０に出力する。第２ＦＩＦＯメモリ２４０では、アドレス制御回路２４１が次にリードすべきＦＩＦＯＲＡＭ２４２の読出アドレスをリードポインタとして保持しているので、シリアル通信ポート２３０からリード信号ＳＲＤの入力タイミングによりリードポインタの示す位置（ＦＩＦＯＲＡＭ２４２中の読出アドレスに対応した情報格納領域）からリードされ、シリアル通信ポート２２０からターゲット基板３００へ送信される。このリード信号ＳＲＤは、同時にアドレス制御回路２４１にも入力されているので、アドレス制御回路２４１は、この次にリードすべきデータのためにリードポインタを更新する。
【００３０】
一方、プログラム実行中のコアＣＰＵ用ＩＣＥ１００から外部であるターゲット基板３００へのデータ送信を行う場合には、送信用のデータをワンチップＣＰＵ用ＩＣＥＰＯＤ２００へ出力すると共に、第２ＦＩＦＯメモリ２４０が配置されているアドレスを指定するアドレス信号と書込信号ＷＲを送信する。アドレス信号と書込信号ＷＲはアドレスデコード回路２５０によりデコードされ、ライト信号ＦＷＲが第２ＦＩＦＯメモリ２４０に入力される。第２ＦＩＦＯメモリ２４０では、アドレス制御回路２４１が次にライトすべきＦＩＦＯＲＡＭ２４２の書込アドレスをライトポインタとして保持しているので、データバスを介して入力されたデータは、ライト信号ＦＷＲの入力タイミングによりライトポインタの示す位置（ＦＩＦＯＲＡＭ２４２中の書込アドレスに対応した情報格納領域）にライトされる。このライト信号ＦＷＲは、同時にアドレス制御回路２４１にも入力されているので、アドレス制御回路２４１は、この次にライトすべきデータのためにライトポインタを更新する。
【００３１】
また、コアＣＰＵ用ＩＣＥ１００が第１ＦＩＦＯメモリ２３０をリードするときは、第１ＦＩＦＯメモリ２３０のＦＩＦＯＲＡＭ２３２が配置されているアドレスを指定するアドレス信号と読出信号ＲＤをワンチップＣＰＵ用ＩＣＥＰＯＤ２００へ出力する。アドレス信号と読出信号ＲＤはアドレスデコード回路２５０を経てデコードされ、リード信号ＦＲＤがデータ出力タイミングで第１ＦＩＦＯメモリ２３０へ入力される。第１ＦＩＦＯメモリ２３０のアドレス制御回路２３１は、次にリードすべきＲＡＭのアドレスをリードポインタとして保持しているので、そのリードポインタの示す位置（ＦＩＦＯＲＡＭ２３２中の読出アドレスに対応した情報格納領域）の内容を、アドレスデコード回路２５０からリード信号ＦＲＤが入力されたタイミングでデータバスにデータを出力する。
【００３２】
しかして、従来のＦＩＦＯメモリの読出方法においては、リード信号ＦＲＤをＦＩＦＯメモリ２３２とアドレス制御回路２３１へ入力させるものであったことから、第２ＦＩＦＯメモリ２３０からのデータ読出を行うと、必ずアドレス制御回路２３１が記憶するリードポインタも更新されてしまうものであったが、本構成例のワンチップ用ＩＣＥＰＯＤ２００においては、第１ＦＩＦＯメモリ２３０の読出に際しては、アドレスデコード回路２５０からＦＲＤ信号がＦＩＦＯＲＡＭ２３２のみへ出力され、アドレス制御回路２３１へリードポインタの更新を指示するリードポインタ更新信号ＦＵＰは別途出力構成とした。
【００３３】
すなわち、本実施形態に係るＩＣＥにおいては、第１ＦＩＦＯメモリ２３０の読出に際しては、アドレス制御回路２３１へリードポインタ更新信号ＦＵＰを出力するか否かによって、アドレス制御回路２３１におけるリードポインタの更新制御を任意に行うことができるのである。
【００３４】
なお、第２ＦＩＦＯメモリ２３０のアドレス制御回路２３１へ出力するリードポインタ更新信号の生成手法や出力タイミングは特に限定されるものではなく、ワンチップＣＰＵのコアＣＰＵから新たな信号（読出領域更新指示信号）を読出信号ＲＤと同時に出力させるようにしても良いが、本構成例においては、既存のコアＣＰＵとの親和性を図るため、第１ＦＩＦＯメモリ２３０のアドレス制御回路２３１が配置されているアドレスを指定するアドレス信号と書込信号ＷＲを出力するものとし、アドレスデコード回路２５０より第１ＦＩＦＯメモリ２３０のアドレス制御回路２３１へ出力されるライト信号をリードポインタ更新信号ＦＵＰとして用いるものとした。
【００３５】
すなわち、通常のプログラム実行中において第１ＦＩＦＯメモリ２３０の読出を行う場合、コアＣＰＵは、第１ＦＩＦＯメモリ２３０からデータをリードした後は、リードポインタ更新動作として、第１ＦＩＦＯメモリ２３０にデータをライトする制御を行うものとする。この場合のデータは、実際に第１ＦＩＦＯメモリ２３０にライトされるわけではないので、どんなデータであってもよい。
【００３６】
これに対し、ＩＣＥの機能としてプログラムの実行を休止させて第１ＦＩＦＯメモリ２３０をリードする場合、読出信号ＲＤを出力しても、アドレスデコード回路２５０から第１ＦＩＦＯメモリ２５０のＦＩＦＯＲＡＭ２３２にリード信号ＦＲＤが入力されるだけで、アドレス制御回路２３１のリードポインタは更新されないので、プログラムの実行を再開したとき、アドレス制御回路２３１のリードポインタはプログラムが休止する前の状態に保持されており、第１ＦＩＦＯメモリ２３０から読み出すデータが欠落してしまうことがない。
【００３７】
上述したように、第１実施形態に係るＦＩＦＯメモリ内蔵ワンチップ・マイクロコンピュータ用インサーキットエミュレータにおいては、アドレスデコード回路２５０をメモリアクセス制御手段として用いることで、プログラム実行中の受信用ＦＩＦＯメモリ読出に際しては、ＦＩＦＯＲＡＭへ読出信号を出力すると共に、ＦＩＦＯＲＡＭの読出アドレスを記憶するアドレス制御回路へリードポインタ更新信号を出力してリードポインタを更新させ、プログラム非実行中の受信用ＦＩＦＯメモリ読出に際しては、ＦＩＦＯＲＡＭへ読出信号を出力するが、アドレス制御回路へリードポインタ更新信号を出力しないことで、リードポインタを更新させないようにすることができる。
【００３８】
次に、本発明に係るＦＩＦＯメモリ内蔵ワンチップ・マイクロコンピュータ用インサーキットエミュレータの第２実施形態を説明する。図２は、その概略構成を示すもので、ワンチップＣＰＵ用ＩＣＥＰＯＤ２００′においては、コアＣＰＵから第１，第２ＦＩＦＯメモリ２３０，２４０への読出・書込制御は、メモリアクセス制御手段２６０を介して行うものとした。なお、前述した第１実施形態と同一の構成には、同一符号を付して説明を省略する。
【００３９】
メモリアクセス制御手段２６０は、コアＣＰＵのプログラム休止状態を自動で判別し、プログラム動作中にのみ、第１ＦＩＦＯメモリ２３０のアドレス制御回路２３１に対するリードポインタの更新を認める機能を有するもので、前述した第１実施形態のように、リードポインタ更新のための制御を別途行う必要がない。
【００４０】
図３は、メモリアクセス制御手段２６０の概略構成を示すもので、アドレス信号や読出信号ＲＤ、書込信号ＷＲがアドレスデコード回路２６１へ入力され、リード信号ＦＲＤが第１ＦＩＦＯメモリ２３０へ、ライト信号ＦＷＲが第２ＦＩＦＯメモリ２４０へ出力されることとなる。
【００４１】
読出信号ＲＤは２入力の第１アンド回路２６２ａにも入力され、この第１アンド回路２６２ａの他方の入力には、ＣＰＵコアがプログラムデータの読込を指示するときに出力するプログラム読出信号Ｍ１が入力される。すなわち、図４のタイミングチャートに示すように、読出信号ＲＤとプログラム読出信号Ｍ１が共にＯＮ（例えば、ＬレベルからＨレベルへ反転）すると第１アンド回路２６２ａが開き、カウンタ２６３をリセットし、４つの出力ポートＱ０〜Ｑ３をＯＦＦ（例えば、ＨレベルからＬレベルに反転）する。
【００４２】
このカウンタ２６３は、コアＣＰＵが第１ＦＩＦＯメモリ２３０をリードするために必要十分な時間として予め定めた通常読出期間を確保できるクロック数（例えば８クロック）がセット（例えば、十進数「８」を４ビットで表した“１０００”をＱ３〜Ｑ０に割り当てたときのＱ３出力にセット）されており、クロック信号ＣＬＫのパルス入力毎にカウントアップしてゆき、カウントアップするとＱ３出力がＯＮ（例えば、ＬレベルからＨレベルに反転）する。
【００４３】
なお、カウンタ２６３におけるＱ３出力は、ノット回路２６４で反転されて第２アンド回路２６２ｂおよびカウンタ２６３のイネーブル端子ＥＮへ入力される。すなわち、イネーブル端子ＥＮへの入力信号がＨレベルの間（Ｑ３出力がＬレベルの間）は入力されるクロック信号ＣＬＫをカウントするが、カウンタ２６３がカウントアップしてＱ３出力がＨレベルに反転すると、イネーブル端子ＥＮへの入力がＬレベルとなるので、クロック信号ＣＬＫのカウントも終了する。
【００４４】
カウンタ２６３におけるクロック信号ＣＬＫのカウント開始タイミングやカウント判定条件は特に限定されるものではないが、例えば、図４に示すように、プログラム読出信号Ｍ１または読出信号ＲＤがＯＦＦになって、リセット信号ＲＳＴがＬレベルになってからクロック信号ＣＬＫのカウントを開始し、クロック信号ＣＬＫにおけるパルスの立ち上がりエッジ検出でパルスカウントを行うものとする。すなわち、図４に示すように、８個目のパルスの立ち上がりエッジでＱ３出力がＨに判定することとなり、カウンタ２６３がリセットされてから通常読出期間が経過するのに必要十分な時間を確保できる。
【００４５】
上述したカウンタ２６３のＱ３出力がノット回路２６４で反転されて入力される２入力の第２アンド回路２６２ｂの他方の入力には、アドレスデコード回路２６１より出力されるリード信号ＦＲＤが入力されている。すなわち、Ｑ３出力がＬレベルである通常読出期間中にリード信号ＦＲＤが出力されると、第２アンド回路２６２ｂがＯＮとなってリードポインタ更新信号ＦＵＰが出力されるが、通常読出期間経過後にリード信号ＦＲＤが出力されても、第２アンド回路２６２ｂはＯＦＦを保持するためにリードポインタ更新信号ＦＵＰは出力されない（図４を参照）。
【００４６】
このように、本実施形態におけるメモリアクセス制御手段２６０は、第１アンド回路２６２ａ，カウンタ２６３，ノット回路２６４が協働することで「コアＣＰＵよりプログラム読出指示信号を出力してから予め定めた通常読出期間を計時する通常読出期間計時手段」としての機能を実現し、アドレスデコード回路２６１からのＦＲＤ信号とカウンタ２６３からの反転Ｑ３出力信号を２入力とする第２アンド回路２６２ｂが「通常読出期間計時手段により計時される通常読出期間内に受信用ＦＩＦＯメモリの読出信号を受けると、受信用ＦＩＦＯメモリのＦＩＦＯＲＡＭおよびアドレス制御回路の両方へ読出信号を入力させ、通常読出期間外に受信用ＦＩＦＯメモリの読出信号を受けると、ＦＩＦＯＲＡＭのみへ読出信号を入力させる読出信号出力選択手段」として機能するので、プログラム実行中におけるコアＣＰＵによる第１ＦＩＦＯメモリ２３０の読出に際しては、通常読出期間内にメモリアクセス制御手段２６０へ読出信号ＲＤを出力することで、ＦＩＦＯＲＡＭ２３２からの読出およびアドレス制御回路２３１のリードポインタ更新を行わせ、プログラム非実行中における第１ＦＩＦＯメモリ２３０の読出に際しては、通常読出期間外（プログラム読出信号Ｍ１および読出信号ＲＤ出力に伴う通常読出期間の経過後、またはプログラム読出信号Ｍ１および読出信号ＲＤ出力による通常読出期間の設定前）にメモリアクセス制御手段２６０へ読出信号ＲＤを出力することで、アドレス制御回路２３１のリードポインタを更新することなくＦＩＦＯＲＡＭ２３２からの読出を行わせることができる。
【００４７】
以上、本発明に係るインサーキットエミュレータにおけるＦＩＦＯメモリ読出方法を具現化したＦＩＦＯメモリ内蔵ワンチップ・マイクロコンピュータ用インサーキットエミュレータの実施形態を添付図面に基づいて詳述したが、本発明は、これらに限定されるものではなく、特許請求の範囲に記載の構成を変更しない限り、種々の等価技術を採用して実現することが可能である。
【図面の簡単な説明】
【００４８】
【図１】本発明の第１実施形態に係るＦＩＦＯメモリ内蔵ワンチップ・マイクロコンピュータ用インサーキットエミュレータの概略構成図である。
【図２】本発明の第２実施形態に係るＦＩＦＯメモリ内蔵ワンチップ・マイクロコンピュータ用インサーキットエミュレータの概略構成図である。
【図３】第２実施形態に係るＩＣＥにおけるメモリアクセス制御手段の概略構成図である。
【図４】メモリアクセス制御手段によるＦＩＦＯメモリの読出動作を示すタイミングチャートである。
【符号の説明】
【００４９】
１００    コアＣＰＵ用ＩＣＥ
２００    ワンチップＣＰＵ用ＩＣＥＰＯＤ
２１０    コアＣＰＵ用ソケット
２２０    シリアル通信ポート
２３０    第１ＦＩＦＯメモリ
２３１    アドレス制御回路
２３２    ＦＩＦＯＲＡＭ
２４０    第２ＦＩＦＯメモリ
２４１    アドレス制御回路
２４２    ＦＩＦＯメモリ
２５０    アドレスデコード回路
３００    ターゲット基板
３１０    ワンチップＣＰＵ用ソケット
ＰＣ      制御用コンピュータ
【図１】
0005036448.tif 000002
【図２】
0005036448.tif 000003
【図３】
0005036448.tif 000004
【図４】
0005036448.tif 000005