JPH09198272A - エミュレーション用プロセッサおよびエミュレータ - Google Patents
エミュレーション用プロセッサおよびエミュレータInfo
- Publication number
- JPH09198272A JPH09198272A JP8005036A JP503696A JPH09198272A JP H09198272 A JPH09198272 A JP H09198272A JP 8005036 A JP8005036 A JP 8005036A JP 503696 A JP503696 A JP 503696A JP H09198272 A JPH09198272 A JP H09198272A
- Authority
- JP
- Japan
- Prior art keywords
- cpu
- cpus
- emulation
- signal
- bus
- 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.)
- Pending
Links
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
(57)【要約】
【課題】 従来のエミュレータにおける拡張性は、CP
Uの周辺装置をいくつか選択可能にするかアドレス空間
の大きさのみ異なるCPUの互換性を維持しているに過
ぎずあくまでもCPUは同一機能のものについてしか互
換性がなかった。 【解決手段】 オブジェクトコード・セットの一部また
は全部、内部のステータス信号、インターフェースなど
が共通化されるとともに動作タイミングが同一である複
数の異なるCPUを内蔵させて、選択的に動作可能に構
成することによって複数のCPUのエミュレーションを
行うことができるエミュレーション用プロセッサを実現
した。 【効果】 1つのエミュレータにおいて、使用者の選択
に基づいて複数のCPUのエミュレーションが可能にな
り、マイクロコンピュータ応用システムの開発装置をい
ち早く提供でき、応用システムの開発効率を向上し、か
つ使用者が自由にCPUの選択でき、使い勝手が向上す
る。
Uの周辺装置をいくつか選択可能にするかアドレス空間
の大きさのみ異なるCPUの互換性を維持しているに過
ぎずあくまでもCPUは同一機能のものについてしか互
換性がなかった。 【解決手段】 オブジェクトコード・セットの一部また
は全部、内部のステータス信号、インターフェースなど
が共通化されるとともに動作タイミングが同一である複
数の異なるCPUを内蔵させて、選択的に動作可能に構
成することによって複数のCPUのエミュレーションを
行うことができるエミュレーション用プロセッサを実現
した。 【効果】 1つのエミュレータにおいて、使用者の選択
に基づいて複数のCPUのエミュレーションが可能にな
り、マイクロコンピュータ応用システムの開発装置をい
ち早く提供でき、応用システムの開発効率を向上し、か
つ使用者が自由にCPUの選択でき、使い勝手が向上す
る。
Description
【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、半導体集積回路装
置、マイクロコンピュータまたはマイクロコンピュータ
応用システムの開発装置を構成するエミュレータにかか
り、例えば、マイクロコンピュータのエミュレーション
用プロセッサおよびそのようなエミュレーション用プロ
セッサを搭載してなるエミュレータに利用して有効な技
術に関するものである。
置、マイクロコンピュータまたはマイクロコンピュータ
応用システムの開発装置を構成するエミュレータにかか
り、例えば、マイクロコンピュータのエミュレーション
用プロセッサおよびそのようなエミュレーション用プロ
セッサを搭載してなるエミュレータに利用して有効な技
術に関するものである。
【0002】
【従来の技術】シングルチップマイクロコンピュータを
用いた応用システムの開発を行うため、いわゆる、イン
サーキットエミュレータと呼ばれるマイクロコンピュー
タ開発装置が用いられる。マイクロコンピュータ開発装
置は、いわゆるパーソナルコンピュータなどのシステム
開発装置と、開発中の応用システム(ユーザシステム)
との間に接続され、その応用システムに装着されるべき
シングルチップマイクロコンピュータ(ターゲットマイ
クロコンピュータ)の機能を代行しつつ、デバッガとし
ての機能を有し、ソフトウェア或いは応用システムの開
発を支援するものである。このマイクロコンピュータ開
発装置には、上記シングルチップマイクロコンピュータ
に対応したエバリュエーションチップと呼ばれる評価用
のエミュレーション用プロセッサに、シングルチップマ
イクロコンピュータの機能を包含した機能と、マイクロ
コンピュータの内部状態を出力したりマイクロコンピュ
ータの動作を制御したりする専用の機能を設けることに
より、マイクロコンピュータ開発装置の開発が容易にさ
れる。マイクロコンピュータ開発装置乃至インサーキッ
トエミュレータについては、例えば、昭和59年11月
30日オーム社発行の「LSIハンドブック」P562
およびP563などによって、また、エミュレーション
用プロセッサについては、例えば、特開昭63−106
840号などによって、公知であるので詳細な説明は省
略する。
用いた応用システムの開発を行うため、いわゆる、イン
サーキットエミュレータと呼ばれるマイクロコンピュー
タ開発装置が用いられる。マイクロコンピュータ開発装
置は、いわゆるパーソナルコンピュータなどのシステム
開発装置と、開発中の応用システム(ユーザシステム)
との間に接続され、その応用システムに装着されるべき
シングルチップマイクロコンピュータ(ターゲットマイ
クロコンピュータ)の機能を代行しつつ、デバッガとし
ての機能を有し、ソフトウェア或いは応用システムの開
発を支援するものである。このマイクロコンピュータ開
発装置には、上記シングルチップマイクロコンピュータ
に対応したエバリュエーションチップと呼ばれる評価用
のエミュレーション用プロセッサに、シングルチップマ
イクロコンピュータの機能を包含した機能と、マイクロ
コンピュータの内部状態を出力したりマイクロコンピュ
ータの動作を制御したりする専用の機能を設けることに
より、マイクロコンピュータ開発装置の開発が容易にさ
れる。マイクロコンピュータ開発装置乃至インサーキッ
トエミュレータについては、例えば、昭和59年11月
30日オーム社発行の「LSIハンドブック」P562
およびP563などによって、また、エミュレーション
用プロセッサについては、例えば、特開昭63−106
840号などによって、公知であるので詳細な説明は省
略する。
【0003】エミュレーション用プロセッサ専用の機能
としては、中央処理装置(以下、CPUと称する)が所
定のアドレスをアクセスした場合に、CPUを停止し、
エミュレータ側に制御を移したりする(ブレーク)機能
や、かかるブレーク時に、エミュレーション専用のプロ
グラムを実行したり、また、ユーザのメモリをモニタし
たり、使用するメモリ等を変更したりする機能がある。
としては、中央処理装置(以下、CPUと称する)が所
定のアドレスをアクセスした場合に、CPUを停止し、
エミュレータ側に制御を移したりする(ブレーク)機能
や、かかるブレーク時に、エミュレーション専用のプロ
グラムを実行したり、また、ユーザのメモリをモニタし
たり、使用するメモリ等を変更したりする機能がある。
【0004】また、アドレスバスやデータバス、さらに
はCPUにステータス信号などを出力して、CPUの動
作状態を解析することを可能にする。
はCPUにステータス信号などを出力して、CPUの動
作状態を解析することを可能にする。
【0005】エミュレータに搭載するエミュレーション
用プロセッサにおいて、サポート可能なマイクロコンピ
ュータを選択できるようにすることによって、開発期間
や開発効率を向上させた例に、特開平3−27183
4、特開平6−150026などがある。かかる例で
は、エミュレーション用プロセッサやエミュレータの開
発効率を向上し、使用者にいち早く、エミュレータを提
供することができる。一方、CPUの互換性を維持しつ
つアドレス空間を拡張した例に、特開平4−33315
3号、特開平5−241826号などがある。
用プロセッサにおいて、サポート可能なマイクロコンピ
ュータを選択できるようにすることによって、開発期間
や開発効率を向上させた例に、特開平3−27183
4、特開平6−150026などがある。かかる例で
は、エミュレーション用プロセッサやエミュレータの開
発効率を向上し、使用者にいち早く、エミュレータを提
供することができる。一方、CPUの互換性を維持しつ
つアドレス空間を拡張した例に、特開平4−33315
3号、特開平5−241826号などがある。
【0006】マイクロコンピュータが組み込まれるシス
テムの高機能化や、マイクロコンピュータの高性能化に
よる複数チップのマイクロコンピュータによる制御から
1チップのマイクロコンピュータによる制御への移行な
どによって、マイクロコンピュータのメモリ容量は増大
している。これに伴って、マイクロコンピュータに要求
される内蔵メモリの容量の範囲も広がっている。例え
ば、32kBから128kBなどである。すなわち、応
用システムによっては、CPUの主要機能が同一で、接
続される周辺機器なども共通の使用となっていても、内
蔵メモリ容量の異なるものが最適とされることがある。
テムの高機能化や、マイクロコンピュータの高性能化に
よる複数チップのマイクロコンピュータによる制御から
1チップのマイクロコンピュータによる制御への移行な
どによって、マイクロコンピュータのメモリ容量は増大
している。これに伴って、マイクロコンピュータに要求
される内蔵メモリの容量の範囲も広がっている。例え
ば、32kBから128kBなどである。すなわち、応
用システムによっては、CPUの主要機能が同一で、接
続される周辺機器なども共通の使用となっていても、内
蔵メモリ容量の異なるものが最適とされることがある。
【0007】例えば前記特開平4−333153号、特
開平5−241826号などに記載されるように、アド
レス空間が64kB以下で十分であれば、比較的小さい
レジスタ構成でアドレッシングモード等も比較的少ない
CPUでよい。一方、アドレス空間が64kB以上であ
れば、比較的大きいレジスタ構成でアドレッシングモー
ドなども比較的多いCPUでなければならない。メモリ
容量が少なくてもよければ、CPUも比較的内蔵メモリ
容量が小さいものを用い、マイクロコンピュータの論理
的・物理的規模を縮小して、製造費用を縮小することが
可能である。
開平5−241826号などに記載されるように、アド
レス空間が64kB以下で十分であれば、比較的小さい
レジスタ構成でアドレッシングモード等も比較的少ない
CPUでよい。一方、アドレス空間が64kB以上であ
れば、比較的大きいレジスタ構成でアドレッシングモー
ドなども比較的多いCPUでなければならない。メモリ
容量が少なくてもよければ、CPUも比較的内蔵メモリ
容量が小さいものを用い、マイクロコンピュータの論理
的・物理的規模を縮小して、製造費用を縮小することが
可能である。
【0008】これらのマイクロコンピュータを1つのエ
ミュレータ、エミュレーション用プロセッサで評価でき
るようにすれば、前期同様に、開発効率の向上を実現
し、開発装置をいち早く、使用者に提供することができ
る。また、使用者も、プログラム開発の結果に基づい
て、メモリ容量を選択し、その結果に基づいて、エミュ
レータを変更することなく、CPUを選択することがで
き、都合がよい。
ミュレータ、エミュレーション用プロセッサで評価でき
るようにすれば、前期同様に、開発効率の向上を実現
し、開発装置をいち早く、使用者に提供することができ
る。また、使用者も、プログラム開発の結果に基づい
て、メモリ容量を選択し、その結果に基づいて、エミュ
レータを変更することなく、CPUを選択することがで
き、都合がよい。
【0009】
【発明が解決しようとする課題】前記従来のエミュレー
タにおける拡張性は、CPUの周辺装置をいくつか選択
可能にするかアドレス空間の大きさのみ異なるCPUの
互換性を維持しているに過ぎず、あくまでもCPUは同
一機能のものについてしか互換性がなかった。
タにおける拡張性は、CPUの周辺装置をいくつか選択
可能にするかアドレス空間の大きさのみ異なるCPUの
互換性を維持しているに過ぎず、あくまでもCPUは同
一機能のものについてしか互換性がなかった。
【0010】本発明の目的は、1つのエミュレータにお
いて、使用者の選択に基づいて、機能の異なる複数のC
PUのエミュレーションを可能にし、マイクロコンピュ
ータ応用システムの開発効率の向上を実現し、また、使
用者にシステム開発装置をいち早く提供することを可能
にし、かつ使い勝手を向上することにある。
いて、使用者の選択に基づいて、機能の異なる複数のC
PUのエミュレーションを可能にし、マイクロコンピュ
ータ応用システムの開発効率の向上を実現し、また、使
用者にシステム開発装置をいち早く提供することを可能
にし、かつ使い勝手を向上することにある。
【0011】本発明の前記ならびにほかの目的と新規な
特長は、本明細書の記述および添付図面から明らかにな
るであろう。
特長は、本明細書の記述および添付図面から明らかにな
るであろう。
【0012】
【課題を解決するための手段】本願において開示される
代表的なものの概要を簡単に説明すれば下記の通りであ
る。
代表的なものの概要を簡単に説明すれば下記の通りであ
る。
【0013】すなわち、オブジェクトコード・セットの
一部または全部、内部のステータス信号、インターフェ
ースなどが共通化されるとともに動作タイミングが同一
である複数の異なるCPUを内蔵させて、選択的に動作
可能に構成することによって複数のCPUのエミュレー
ションを行うことができるエミュレーション用プロセッ
サを実現する。
一部または全部、内部のステータス信号、インターフェ
ースなどが共通化されるとともに動作タイミングが同一
である複数の異なるCPUを内蔵させて、選択的に動作
可能に構成することによって複数のCPUのエミュレー
ションを行うことができるエミュレーション用プロセッ
サを実現する。
【0014】また、上記複数のCPUへの割込み制御も
共通化し、各々のCPUはそのうち1つをメインとし他
のCPUはそのサブセットになるように構成するとよ
い。さらに、バス制御を共通化すれば、エミュレーショ
ン対象のCPUを排他的に動作するCPUとみなすこと
ができ、ダイレクトメモリアクセスコントローラなどの
バスマスタを周辺モジュールとして内蔵する場合に、こ
れらのいわゆるバスアービトレーション制御と共通化す
ることができ、システム開発を容易にすることができる
とともに、制御論理を共通化することでチップサイズを
縮小できる。周辺モジュールやメモリとのインターフェ
ースも共通化するとよい。
共通化し、各々のCPUはそのうち1つをメインとし他
のCPUはそのサブセットになるように構成するとよ
い。さらに、バス制御を共通化すれば、エミュレーショ
ン対象のCPUを排他的に動作するCPUとみなすこと
ができ、ダイレクトメモリアクセスコントローラなどの
バスマスタを周辺モジュールとして内蔵する場合に、こ
れらのいわゆるバスアービトレーション制御と共通化す
ることができ、システム開発を容易にすることができる
とともに、制御論理を共通化することでチップサイズを
縮小できる。周辺モジュールやメモリとのインターフェ
ースも共通化するとよい。
【0015】さらに、上記複数のCPUは、制御フラグ
もしくはコントロールレジスタの制御ビットで選択可能
にし、制御ビットの設定後、リセットを行って、制御ビ
ットの情報が反映されるようにするとよい。また、リセ
ット後に動作するCPUを、外部から制御信号で指定で
きるようにするとよい。
もしくはコントロールレジスタの制御ビットで選択可能
にし、制御ビットの設定後、リセットを行って、制御ビ
ットの情報が反映されるようにするとよい。また、リセ
ット後に動作するCPUを、外部から制御信号で指定で
きるようにするとよい。
【0016】上記した手段によれば、相異なるCPUを
内蔵し、いずれか一つのCPUを選択してエミュレーシ
ョンできるため、マイクロコンピュータ応用システムの
開発装置を、いち早く提供でき、開発期間の短縮を図
り、かつ、使用者がCPUを自由に選択することがで
き、使い勝手が向上する。
内蔵し、いずれか一つのCPUを選択してエミュレーシ
ョンできるため、マイクロコンピュータ応用システムの
開発装置を、いち早く提供でき、開発期間の短縮を図
り、かつ、使用者がCPUを自由に選択することがで
き、使い勝手が向上する。
【0017】また、CPUのバス制御、割込制御、エミ
ュレーションインターフェース信号を共通化することに
よって、エミュレーション用プロセッサやエミュレータ
の開発効率を向上することができる。
ュレーションインターフェース信号を共通化することに
よって、エミュレーション用プロセッサやエミュレータ
の開発効率を向上することができる。
【0018】
【発明の実施の形態】図1に、本発明の適用されたエミ
ュレーション用プロセッサのブロック図を示す。特に制
限されないが、この実施例のエミュレーション用プロセ
ッサ10は単結晶シリコンのような1個の半導体基板上
において形成される。
ュレーション用プロセッサのブロック図を示す。特に制
限されないが、この実施例のエミュレーション用プロセ
ッサ10は単結晶シリコンのような1個の半導体基板上
において形成される。
【0019】この実施例のエミュレーション用プロセッ
サ10は、エミュレーション対象マイクロプロセッサC
PU1およびCPU2、ROM(リード・オンリ・メモ
リ)11、RAM(ランダム・アクセス・メモリ)1
2、データ転送を行うデータトランスファコントローラ
(DTC)13、バスの切替えやバス使用権の制御等を
行うバスコントローラ(BSC)14、CPUに対する
割込み制御を行う割込コントローラ15、CPU1,C
PU2に対する停止信号等チップ全体の制御を行うシス
テムコントローラ16、エミュレーション用プロセッサ
10がユーザシステムとの間で信号の送受信を行なうた
めのユーザインターフェース17およびエミュレータを
構成する他の装置との間で信号の送受信を行うエミュレ
ーションインターフェース18などを備えたエミュレー
ション制御回路19等の機能ブロック乃至はモジュール
から構成される。これらの機能ブロックは、内部バスI
AB,IDB;PAB,PDBによって相互に接続され
る。更に、図示しないが、クロック発振器(CPG)な
ども含まれている。
サ10は、エミュレーション対象マイクロプロセッサC
PU1およびCPU2、ROM(リード・オンリ・メモ
リ)11、RAM(ランダム・アクセス・メモリ)1
2、データ転送を行うデータトランスファコントローラ
(DTC)13、バスの切替えやバス使用権の制御等を
行うバスコントローラ(BSC)14、CPUに対する
割込み制御を行う割込コントローラ15、CPU1,C
PU2に対する停止信号等チップ全体の制御を行うシス
テムコントローラ16、エミュレーション用プロセッサ
10がユーザシステムとの間で信号の送受信を行なうた
めのユーザインターフェース17およびエミュレータを
構成する他の装置との間で信号の送受信を行うエミュレ
ーションインターフェース18などを備えたエミュレー
ション制御回路19等の機能ブロック乃至はモジュール
から構成される。これらの機能ブロックは、内部バスI
AB,IDB;PAB,PDBによって相互に接続され
る。更に、図示しないが、クロック発振器(CPG)な
ども含まれている。
【0020】ユーザインターフェース17は、ユーザシ
ステム上のバスと接続されるバッファBUFやタイマ、
シリアルコミュニケーションインターフェース(SC
I)、A/D変換器(A/D)、入出力ポートI/Oな
どを含む。ユーザシステムからの割込み要求は入出力ポ
ートI/Oを介して上記割込みコントローラ15に供給
される。
ステム上のバスと接続されるバッファBUFやタイマ、
シリアルコミュニケーションインターフェース(SC
I)、A/D変換器(A/D)、入出力ポートI/Oな
どを含む。ユーザシステムからの割込み要求は入出力ポ
ートI/Oを介して上記割込みコントローラ15に供給
される。
【0021】CPU1およびCPU2は、システムコン
トローラ16の出力するストップ信号に応じて、停止状
態/動作状態が指定される。また、エミュレーション制
御回路19から出力されるCPU選択信号に基づいて、
CPU1またはCPU2のいずれか一方は、必ず停止状
態とされる。即ち、CPU1には、CPUストップ信号
とCPU選択信号との論理和信号が、CPU2には、C
PUストップ信号とCPU選択信号の反転信号との論理
和信号が与えられる。この実施例では、特に制限されな
いが、CPU選択信号が“0”レベルのときにCPU2
が停止状態、CPU選択信号が“1”レベルのときCP
U1が停止状態に固定される。
トローラ16の出力するストップ信号に応じて、停止状
態/動作状態が指定される。また、エミュレーション制
御回路19から出力されるCPU選択信号に基づいて、
CPU1またはCPU2のいずれか一方は、必ず停止状
態とされる。即ち、CPU1には、CPUストップ信号
とCPU選択信号との論理和信号が、CPU2には、C
PUストップ信号とCPU選択信号の反転信号との論理
和信号が与えられる。この実施例では、特に制限されな
いが、CPU選択信号が“0”レベルのときにCPU2
が停止状態、CPU選択信号が“1”レベルのときCP
U1が停止状態に固定される。
【0022】動作状態にあるCPUが、SLEEP命令
などを実行して、低消費電力状態に遷移する場合はシス
テムコントローラ16の出力するストップ信号によって
両方のCPUが停止状態になる。低消費電力状態解除信
号が発生した場合、CPU選択信号で選択されているC
PUのストップ信号が解除されて、動作状態になる。エ
ミュレーションインターフェース18は、CPU1また
はCPU2から出力されるCPUステータス信号などが
選択的に入力されてバス動作の制御を行う。いずれのC
PUから出力された制御信号を入力するかの選択は、エ
ミュレーション制御回路19から出力されるCPU選択
信号に基づいて選択回路SEL1が行う。また、エミュ
レーションインターフェース18は、制御信号を選択的
にCPU1、CPU2に供給する。
などを実行して、低消費電力状態に遷移する場合はシス
テムコントローラ16の出力するストップ信号によって
両方のCPUが停止状態になる。低消費電力状態解除信
号が発生した場合、CPU選択信号で選択されているC
PUのストップ信号が解除されて、動作状態になる。エ
ミュレーションインターフェース18は、CPU1また
はCPU2から出力されるCPUステータス信号などが
選択的に入力されてバス動作の制御を行う。いずれのC
PUから出力された制御信号を入力するかの選択は、エ
ミュレーション制御回路19から出力されるCPU選択
信号に基づいて選択回路SEL1が行う。また、エミュ
レーションインターフェース18は、制御信号を選択的
にCPU1、CPU2に供給する。
【0023】バスコントローラ14は、CPU1、CP
U2から出力される制御信号(リード、ライト、サイズ
など)が選択的に入力されてバス動作の制御を行う。い
ずれのCPUから出力された制御信号を入力するかの選
択は、エミュレーション制御回路19から出力されるC
PU選択信号に基づいて、選択回路SEL2で行われ
る。また、バスコントローラ14は、制御信号(アクノ
リッジ信号、ウェイト信号など)を形成してCPU1、
CPU2に供給する。
U2から出力される制御信号(リード、ライト、サイズ
など)が選択的に入力されてバス動作の制御を行う。い
ずれのCPUから出力された制御信号を入力するかの選
択は、エミュレーション制御回路19から出力されるC
PU選択信号に基づいて、選択回路SEL2で行われ
る。また、バスコントローラ14は、制御信号(アクノ
リッジ信号、ウェイト信号など)を形成してCPU1、
CPU2に供給する。
【0024】CPU1のアドレス空間がCPU2のアド
レス空間より大きい場合、CPU2が出力しないアドレ
スの上位ビットは、例えば、0あるいは符号拡張とみな
すようにする。CPU1の有するアドレッシングモード
の中にCPU2のアドレス空間に相当するビット数のア
ドレス指定方法があれば、このときのアドレス拡張方法
に従うのがよい。例えば、CPU1のアドレス空間が1
6Mバイト、CPU2のアドレス空間が64kバイトで
ある場合、CPU1はCPU2のアドレス空間に相当す
るビット数(16ビット)の、いわゆる絶対アドレスモ
ードを持ち、この場合、24ビットのアドレスの上位8
ビットは符号拡張され、ビット15と同じ内容とされ
る。CPU2のアドレスの存在しない部分は符号拡張さ
れる。このようなアドレス拡張機能は、例えばバスコン
トローラ14に持たせるようにすると良い。
レス空間より大きい場合、CPU2が出力しないアドレ
スの上位ビットは、例えば、0あるいは符号拡張とみな
すようにする。CPU1の有するアドレッシングモード
の中にCPU2のアドレス空間に相当するビット数のア
ドレス指定方法があれば、このときのアドレス拡張方法
に従うのがよい。例えば、CPU1のアドレス空間が1
6Mバイト、CPU2のアドレス空間が64kバイトで
ある場合、CPU1はCPU2のアドレス空間に相当す
るビット数(16ビット)の、いわゆる絶対アドレスモ
ードを持ち、この場合、24ビットのアドレスの上位8
ビットは符号拡張され、ビット15と同じ内容とされ
る。CPU2のアドレスの存在しない部分は符号拡張さ
れる。このようなアドレス拡張機能は、例えばバスコン
トローラ14に持たせるようにすると良い。
【0025】割込みコントローラ15は、ユーザシステ
ムからの割込み信号の他、ユーザインタフェース17内
のDMAコントローラ、タイマ、シリアルコミュニケー
ションインタフェース(SCI)、A/D変換器(A/
D)、入出力ポート(I/O)等からの割込み信号が入
力され、制御信号(割込要求信号、ベクタ番号など)を
CPU1、CPU2に供給する。また、割込みコントロ
ーラ15は、CPU1、CPU2から出力される制御信
号(マスク信号、割込クリア信号など)が選択的に入力
されてそれに対応した制御を行う。いずれのCPUから
出力された制御信号を入力するかの選択は、エミュレー
ション制御回路19から出力されるCPU選択信号に基
づいて、選択回路SEL3で行う。
ムからの割込み信号の他、ユーザインタフェース17内
のDMAコントローラ、タイマ、シリアルコミュニケー
ションインタフェース(SCI)、A/D変換器(A/
D)、入出力ポート(I/O)等からの割込み信号が入
力され、制御信号(割込要求信号、ベクタ番号など)を
CPU1、CPU2に供給する。また、割込みコントロ
ーラ15は、CPU1、CPU2から出力される制御信
号(マスク信号、割込クリア信号など)が選択的に入力
されてそれに対応した制御を行う。いずれのCPUから
出力された制御信号を入力するかの選択は、エミュレー
ション制御回路19から出力されるCPU選択信号に基
づいて、選択回路SEL3で行う。
【0026】上記のようにシステムコントローラ16、
割込みコントローラ15、バスコントローラ14は、C
PU1およびCPU2に共通して用いられる。このため
に、CPU1とCPU2のインタフェースを共通化して
おくことが望ましい。すなわち2つのCPUに入出力さ
れる信号の種類を同じにし、かつタイミングも同一にな
るようにする。或いは、一方のCPUが他方のCPUの
サブセットになるようにしておいてもよい。ここで、サ
ブセットとは、一方のCPUが他方のCPUの有する機
能を全て有し、かつそれ以外の機能も備えているという
意味である。
割込みコントローラ15、バスコントローラ14は、C
PU1およびCPU2に共通して用いられる。このため
に、CPU1とCPU2のインタフェースを共通化して
おくことが望ましい。すなわち2つのCPUに入出力さ
れる信号の種類を同じにし、かつタイミングも同一にな
るようにする。或いは、一方のCPUが他方のCPUの
サブセットになるようにしておいてもよい。ここで、サ
ブセットとは、一方のCPUが他方のCPUの有する機
能を全て有し、かつそれ以外の機能も備えているという
意味である。
【0027】表1に、図1のエミュレーション用プロセ
ッサ10における各機能ブロックもしくはモジュール間
の信号の種類と各信号の機能の一例を示す。なお、この
表1においては、内部バスIABのビット数がCPU1
では24ビット、CPU2では16ビットとされるほか
は、CPU1とCPU2に共通である。表1において、
例えばCPUCKSTPは、図1のストップ信号に相当
する信号である。表1において最後にNが付いている信
号はロウアクティブ(“0”が有効レベル)の信号であ
ることを意味している。また、符号CPGはクロックパ
ルスジェネレータ、SYSCはシステムコントローラ、
BSCはバスコントローラ、ASEはエミュレーション
制御回路、INTは割込みコントローラ、PORTはユ
ーザインタフェースおよびエミュレーションインタフェ
ースのポートを指す。
ッサ10における各機能ブロックもしくはモジュール間
の信号の種類と各信号の機能の一例を示す。なお、この
表1においては、内部バスIABのビット数がCPU1
では24ビット、CPU2では16ビットとされるほか
は、CPU1とCPU2に共通である。表1において、
例えばCPUCKSTPは、図1のストップ信号に相当
する信号である。表1において最後にNが付いている信
号はロウアクティブ(“0”が有効レベル)の信号であ
ることを意味している。また、符号CPGはクロックパ
ルスジェネレータ、SYSCはシステムコントローラ、
BSCはバスコントローラ、ASEはエミュレーション
制御回路、INTは割込みコントローラ、PORTはユ
ーザインタフェースおよびエミュレーションインタフェ
ースのポートを指す。
【0028】
【表1】
【0029】また、例えばBCMD、BUSRDY、C
PUACKNなどのバス制御信号は、データトランスフ
ァコントローラ13など他のバスマスタとも共通化して
おくとよい。その場合、CPUACKNに相当するデー
タトランスファコントローラ13の応答信号はDTCA
CKNのようになる。このようにすることによって、シ
ステムコントローラ16、割込みコントローラ15、バ
スコントローラ14等は1個のCPU分の開発を行えば
よく、開発効率を向上することができる。エミュレーシ
ョン用プロセッサの開発期間を短縮することによって、
マイクロコンピュータの使用者にいち早くエミュレータ
を提供することができ、ユーザシステムの早期開発に寄
与することができる。
PUACKNなどのバス制御信号は、データトランスフ
ァコントローラ13など他のバスマスタとも共通化して
おくとよい。その場合、CPUACKNに相当するデー
タトランスファコントローラ13の応答信号はDTCA
CKNのようになる。このようにすることによって、シ
ステムコントローラ16、割込みコントローラ15、バ
スコントローラ14等は1個のCPU分の開発を行えば
よく、開発効率を向上することができる。エミュレーシ
ョン用プロセッサの開発期間を短縮することによって、
マイクロコンピュータの使用者にいち早くエミュレータ
を提供することができ、ユーザシステムの早期開発に寄
与することができる。
【0030】また、システムコントローラ16、割込み
コントローラ15、バスコントローラ14等の制御回路
が共用化され、1個のCPU分の論理しか内蔵しないこ
とによって、エミュレーション用プロセッサの論理的・
物理的規模を縮小して、製造費用を低減することも可能
になる。
コントローラ15、バスコントローラ14等の制御回路
が共用化され、1個のCPU分の論理しか内蔵しないこ
とによって、エミュレーション用プロセッサの論理的・
物理的規模を縮小して、製造費用を低減することも可能
になる。
【0031】一方、図1の実施例におけるいずれのCP
Uを動作状態とするかのCPU選択信号は、エミュレー
ション制御回路19内に設けられているコントロールレ
ジスタMCUCRの中の所定の制御ビットで指定される
ように構成されている。このコントロールレジスタMC
UCRは、リセット信号が入力される毎に変化が許容さ
れる。リセット信号が複数存在する場合には、一または
複数の所定のリセット信号入力時に変更が許容されるよ
うにすればよい。リセットには、パワーオンリセットと
マニュアルリセット、或いは、ブレークリセットとユー
ザリセットなどがある。なお、エミュレーション制御回
路19内のコントロールレジスタMCUCRには、ブレ
ーク制御、バス制御、モジュール選択制御などを制御す
るための制御ビットも設けてもよいし、他のコントロー
ルレジスタに設けても良い。
Uを動作状態とするかのCPU選択信号は、エミュレー
ション制御回路19内に設けられているコントロールレ
ジスタMCUCRの中の所定の制御ビットで指定される
ように構成されている。このコントロールレジスタMC
UCRは、リセット信号が入力される毎に変化が許容さ
れる。リセット信号が複数存在する場合には、一または
複数の所定のリセット信号入力時に変更が許容されるよ
うにすればよい。リセットには、パワーオンリセットと
マニュアルリセット、或いは、ブレークリセットとユー
ザリセットなどがある。なお、エミュレーション制御回
路19内のコントロールレジスタMCUCRには、ブレ
ーク制御、バス制御、モジュール選択制御などを制御す
るための制御ビットも設けてもよいし、他のコントロー
ルレジスタに設けても良い。
【0032】上記のようなモジュール選択レジスタへの
設定によって、エミュレーション対象となるマイクロコ
ンピュータの選択を行い、エミュレーション制御回路1
9で動作すべきエミュレーション用プロセッサCPU
1,CPU2を指定する制御信号を形成して供給した
り、バスコントローラ(BSC)14に含まれるモジュ
ールセレクト回路やそのほかの周辺モジュール部分に供
給する。例えば、タイマやSCIの使用可能なチャネル
数を指定したり、有効なIOポートの本数等を指定した
り、内蔵ROM12、RAM13の容量を指定したりす
る制御信号もエミュレーション制御回路19から供給す
る。非選択すなわち動作が禁止されるべきモジュール
は、モジュール選択信号が非活性状態に固定されるなど
によって、リード/ライトなどの動作が抑止されるよう
に構成される。
設定によって、エミュレーション対象となるマイクロコ
ンピュータの選択を行い、エミュレーション制御回路1
9で動作すべきエミュレーション用プロセッサCPU
1,CPU2を指定する制御信号を形成して供給した
り、バスコントローラ(BSC)14に含まれるモジュ
ールセレクト回路やそのほかの周辺モジュール部分に供
給する。例えば、タイマやSCIの使用可能なチャネル
数を指定したり、有効なIOポートの本数等を指定した
り、内蔵ROM12、RAM13の容量を指定したりす
る制御信号もエミュレーション制御回路19から供給す
る。非選択すなわち動作が禁止されるべきモジュール
は、モジュール選択信号が非活性状態に固定されるなど
によって、リード/ライトなどの動作が抑止されるよう
に構成される。
【0033】さらに、エミュレーション用プロセッサ
を、それに内蔵されている一部の機能の禁止や動作の変
更を指定できるように構成して、1個のエミュレーショ
ン用プロセッサによって、複数のマイクロコンピュータ
のエミュレーションを行わせるようにしてもよい。
を、それに内蔵されている一部の機能の禁止や動作の変
更を指定できるように構成して、1個のエミュレーショ
ン用プロセッサによって、複数のマイクロコンピュータ
のエミュレーションを行わせるようにしてもよい。
【0034】図2に、エミュレーション制御回路19内
に設けられるCPU選択信号生成回路の一例の概略ブロ
ック図を示す。
に設けられるCPU選択信号生成回路の一例の概略ブロ
ック図を示す。
【0035】CPU選択信号は、特に制限はされないも
のの、ブレークモードでのみリード/ライトできるエミ
ュレーション専用コントロールレジスタMCUCRの中
の所定のビットCPUSへの設定で指定される。
のの、ブレークモードでのみリード/ライトできるエミ
ュレーション専用コントロールレジスタMCUCRの中
の所定のビットCPUSへの設定で指定される。
【0036】エミュレーション専用コントロールレジス
タMCUCRは、エミュレーションプログラム実行状
態、いわゆるブレークモードにおいてのみリード/ライ
トが可能とされる。コントロールレジスタを構成するビ
ットはそれぞれ例えばD型フリップフロップで構成され
る。図2にはそのうちCPU選択用ビットCPUSを構
成するフリップフロップFF1が示されており、このフ
リップフロップFF1のデータ入力端子Dには、データ
バスの所定のビット信号が入力される。また、クロック
入力端子Cには、ブレークモードを示すBRKAK信号
と、コントロールレジスタ指定アドレスが与えられたこ
とを検出するアドレスデコーダからのデコード信号との
論理積をとるANDゲートG1と、該ANDゲートG1
の出力信号とライト信号との論理積をとるANDゲート
G2とで与えられる。即ち、ブレークモードでコントロ
ールレジスタ指定アドレスが与えられライト信号が有効
レベルであるときにデータバス上の所定のビットの状態
がCPU選択ビットCPUSにライトされる。
タMCUCRは、エミュレーションプログラム実行状
態、いわゆるブレークモードにおいてのみリード/ライ
トが可能とされる。コントロールレジスタを構成するビ
ットはそれぞれ例えばD型フリップフロップで構成され
る。図2にはそのうちCPU選択用ビットCPUSを構
成するフリップフロップFF1が示されており、このフ
リップフロップFF1のデータ入力端子Dには、データ
バスの所定のビット信号が入力される。また、クロック
入力端子Cには、ブレークモードを示すBRKAK信号
と、コントロールレジスタ指定アドレスが与えられたこ
とを検出するアドレスデコーダからのデコード信号との
論理積をとるANDゲートG1と、該ANDゲートG1
の出力信号とライト信号との論理積をとるANDゲート
G2とで与えられる。即ち、ブレークモードでコントロ
ールレジスタ指定アドレスが与えられライト信号が有効
レベルであるときにデータバス上の所定のビットの状態
がCPU選択ビットCPUSにライトされる。
【0037】更に、特に制限されないが、上記フリップ
フロップFF1の出力端子Qには、データバス上にCP
U選択ビットCPUSの内容を出力するためのバッファ
BF1が接続されており、このバッファBF1は上記A
NDゲートG1の出力信号とリード信号との論理積をと
るANDゲートG3の出力信号によって制御される。即
ち、ブレークモードでコントロールレジスタ指定アドレ
スが与えられリード信号が有効レベルであるときにデー
タバス上へCPU選択ビットCPUSの内容を出力す
る。
フロップFF1の出力端子Qには、データバス上にCP
U選択ビットCPUSの内容を出力するためのバッファ
BF1が接続されており、このバッファBF1は上記A
NDゲートG1の出力信号とリード信号との論理積をと
るANDゲートG3の出力信号によって制御される。即
ち、ブレークモードでコントロールレジスタ指定アドレ
スが与えられリード信号が有効レベルであるときにデー
タバス上へCPU選択ビットCPUSの内容を出力す
る。
【0038】一方、CPU選択ビットCPUSを構成す
るフリップフロップFF1の出力は、第2のフリップフ
ロップFF2を介してマイクロコンピュータの各部に与
えられる。フリップフロップFF2もいわゆるD型フリ
ップフロップで構成されており、リセット信号がクロッ
ク端子Cに入力されている。このため、CPU選択ビッ
トCPUSが書き替えられてフリップフロップFF1の
出力が変化しても、リセット信号が与えられるまではフ
リップフロップFF2の出力は変化しない。特に制限は
されないものの、フリップフロップFF2に与えられる
リセット信号は、ブレークリセット信号とするとよい。
特に制限されないが、上記フリップフロップFF2から
出力されるCPU選択信号を外部からモニタできるよう
にするため、出力バッファBF2と、モニタ端子MPと
が設けられている。
るフリップフロップFF1の出力は、第2のフリップフ
ロップFF2を介してマイクロコンピュータの各部に与
えられる。フリップフロップFF2もいわゆるD型フリ
ップフロップで構成されており、リセット信号がクロッ
ク端子Cに入力されている。このため、CPU選択ビッ
トCPUSが書き替えられてフリップフロップFF1の
出力が変化しても、リセット信号が与えられるまではフ
リップフロップFF2の出力は変化しない。特に制限は
されないものの、フリップフロップFF2に与えられる
リセット信号は、ブレークリセット信号とするとよい。
特に制限されないが、上記フリップフロップFF2から
出力されるCPU選択信号を外部からモニタできるよう
にするため、出力バッファBF2と、モニタ端子MPと
が設けられている。
【0039】以上、CPU選択をレジスタで指定するよ
うにした実施例を説明したが、レジスタで指定する代わ
りに外部端子入力で行ってもよい。図3にそのような実
施例を示す。この実施例は、CPU選択ビットCPUS
を構成するフリップフロップFF1のデータ端子Dへの
入力を、外部端子Pから入力バッファ回路(入力保護回
路Q3,Q4およびインバータQ1,Q2)を介して入
力される信号に変更したものである。また、入力回路に
はプルアップ抵抗Rが設けられており、外部端子Pを解
放状態にすると、CPU2が選択され、外部端子Pをグ
ランド(接地)端子などのリードLに接続すれば、CP
U1が選択されるように構成されている。かかる外部端
子Pは、半導体集積回路装置としてのエミュレーション
用プロセッサの専用の外部端子として設けられる必要は
なく、例えば、図3に示されているように隣り合うグラ
ンド端子などのリードと共有させるようにしてもよい。
また、外部端子の入力や、レジスタの出力や、或いはC
PU選択信号を、半導体集積回路装置の配線変更で形成
できるように構成して、“1”レベル/“0”レベルを
固定的に生成するようにしてもよい。
うにした実施例を説明したが、レジスタで指定する代わ
りに外部端子入力で行ってもよい。図3にそのような実
施例を示す。この実施例は、CPU選択ビットCPUS
を構成するフリップフロップFF1のデータ端子Dへの
入力を、外部端子Pから入力バッファ回路(入力保護回
路Q3,Q4およびインバータQ1,Q2)を介して入
力される信号に変更したものである。また、入力回路に
はプルアップ抵抗Rが設けられており、外部端子Pを解
放状態にすると、CPU2が選択され、外部端子Pをグ
ランド(接地)端子などのリードLに接続すれば、CP
U1が選択されるように構成されている。かかる外部端
子Pは、半導体集積回路装置としてのエミュレーション
用プロセッサの専用の外部端子として設けられる必要は
なく、例えば、図3に示されているように隣り合うグラ
ンド端子などのリードと共有させるようにしてもよい。
また、外部端子の入力や、レジスタの出力や、或いはC
PU選択信号を、半導体集積回路装置の配線変更で形成
できるように構成して、“1”レベル/“0”レベルを
固定的に生成するようにしてもよい。
【0040】このように固定的に指定するように構成し
た場合、エミュレーション用プロセッサやエミュレータ
を2つのCPUのエミュレーションに任意に選択して使
用することはできないが、実質的に1種類の半導体集積
回路を開発し、このボンディングの変更や配線変更によ
って、2種類のCPUに対応するエミュレーション用プ
ロセッサを得ることができるので、開発期間の短縮化の
効果を得ることができる。
た場合、エミュレーション用プロセッサやエミュレータ
を2つのCPUのエミュレーションに任意に選択して使
用することはできないが、実質的に1種類の半導体集積
回路を開発し、このボンディングの変更や配線変更によ
って、2種類のCPUに対応するエミュレーション用プ
ロセッサを得ることができるので、開発期間の短縮化の
効果を得ることができる。
【0041】また、いずれのCPUが選択されているか
を表示する手段を持たせるようにしてもよい。かかる表
示手段による表示内容は、コントロールレジスタMCU
CRの他のビットをリードすることによって得られるよ
うにしてもよいし、外部端子から出力されるようにして
もよい。
を表示する手段を持たせるようにしてもよい。かかる表
示手段による表示内容は、コントロールレジスタMCU
CRの他のビットをリードすることによって得られるよ
うにしてもよいし、外部端子から出力されるようにして
もよい。
【0042】表2〜表4に、エミュレーションインター
フェース18に設けられる制御信号入出力端子の機能の
一覧表を示す。表2〜表4において、最後に#が付され
ている信号は、ロウアクティブ(“0”が有効レベル)
の信号であることを意味している。
フェース18に設けられる制御信号入出力端子の機能の
一覧表を示す。表2〜表4において、最後に#が付され
ている信号は、ロウアクティブ(“0”が有効レベル)
の信号であることを意味している。
【0043】
【表2】
【0044】
【表3】
【0045】
【表4】
【0046】図4にエミュレータおよびおよびこれを含
むシステム開発装置の全体の概略構成を示す。
むシステム開発装置の全体の概略構成を示す。
【0047】エミュレーション用プロセッサ10から延
長されたインタフェースケーブル21先端のコネクタ2
2が、シングルチップマイクロコンピュータの代わりに
応用システム(ユーザシステム)30上のCPUソケッ
ト31に装着される。エミュレーション用プロセッサ1
0は、上記コネクタ22とインターフェースケーブル2
1を介し、上記ユーザインターフェース17(図1参
照)を用いて上記応用システム30と信号の入出力を行
う。
長されたインタフェースケーブル21先端のコネクタ2
2が、シングルチップマイクロコンピュータの代わりに
応用システム(ユーザシステム)30上のCPUソケッ
ト31に装着される。エミュレーション用プロセッサ1
0は、上記コネクタ22とインターフェースケーブル2
1を介し、上記ユーザインターフェース17(図1参
照)を用いて上記応用システム30と信号の入出力を行
う。
【0048】ユーザシステム30には、特に制限はされ
ないものの、ユーザバスが存在し、ユーザメモリが接続
されている。エミュレーション用プロセッサ10が出力
し、インターフェースケーブル21を介して供給される
ユーザストローブ信号に従って、ユーザメモリはリード
/ライトされる。ユーザシステム30で発生したリセッ
ト信号は、ユーザリセット信号URSとしてインターフ
ェースケーブル21を介してエミュレーション用プロセ
ッサ10に供給される。このユーザリセット信号URS
はエミュレータ側のリセット信号SRS,ERSととも
に、ORゲートG4を介してエミュレーション用プロセ
ッサのリセット端子RESに入力されるようになってい
る。
ないものの、ユーザバスが存在し、ユーザメモリが接続
されている。エミュレーション用プロセッサ10が出力
し、インターフェースケーブル21を介して供給される
ユーザストローブ信号に従って、ユーザメモリはリード
/ライトされる。ユーザシステム30で発生したリセッ
ト信号は、ユーザリセット信号URSとしてインターフ
ェースケーブル21を介してエミュレーション用プロセ
ッサ10に供給される。このユーザリセット信号URS
はエミュレータ側のリセット信号SRS,ERSととも
に、ORゲートG4を介してエミュレーション用プロセ
ッサのリセット端子RESに入力されるようになってい
る。
【0049】なお、エミュレータ側のリセット信号とし
ては、エミュレータの電源投入時などにエミュレータ全
体をリセットするシステムリセット信号SRSと、ホス
トコンピュータ40のコンソールからの指令によってエ
ミュレータ20にリセットをかけるためのエミュレーシ
ョンリセット信号ERSとがある。エミュレーションリ
セットは、エミュレータのコマンドとしてホストコンピ
ュータ40から入力された情報を基にユーザリセットを
与えるものである。エミュレータリセット信号ERSは
遅延回路DLYを経てウェイト信号ASEWAITとし
てエミュレーション用プロセッサ10に入力されてい
る。これによって、ウェイト信号ASEWAITがロウ
レベルのときにエミュレータのシステムリセット信号が
入ったときにのみ、図2の回路においてフリップフロッ
プFF1の内容をFF2に移してCPUの選択を行なう
ようにし、ウェイト信号ASEWAITがハイレベルの
ときにユーザリセット信号URSが入ってもCPUの選
択は行なわれないようにしている。
ては、エミュレータの電源投入時などにエミュレータ全
体をリセットするシステムリセット信号SRSと、ホス
トコンピュータ40のコンソールからの指令によってエ
ミュレータ20にリセットをかけるためのエミュレーシ
ョンリセット信号ERSとがある。エミュレーションリ
セットは、エミュレータのコマンドとしてホストコンピ
ュータ40から入力された情報を基にユーザリセットを
与えるものである。エミュレータリセット信号ERSは
遅延回路DLYを経てウェイト信号ASEWAITとし
てエミュレーション用プロセッサ10に入力されてい
る。これによって、ウェイト信号ASEWAITがロウ
レベルのときにエミュレータのシステムリセット信号が
入ったときにのみ、図2の回路においてフリップフロッ
プFF1の内容をFF2に移してCPUの選択を行なう
ようにし、ウェイト信号ASEWAITがハイレベルの
ときにユーザリセット信号URSが入ってもCPUの選
択は行なわれないようにしている。
【0050】一方、エミュレーション用プロセッサ10
は、上記エミュレーションインターフェース18を介し
てエミュレーションバス23に接続される。エミュレー
ションバス23には図示はされない状態信号・制御信号
などを含む。上記エミュレーションバス23を用いてエ
ミュレーション用プロセッサ10から、応用システムと
エミュレーション用プロセッサの内部状態に応じた状態
などが出力され、また、エミュレーション用プロセッサ
10に対し、エミュレーションのための各種制御信号が
入力される。エミュレーション用プロセッサ10の図示
しないエミュレートモード端子が電源レベルに固定さ
れ、エミュレーション用プロセッサ内部ではエミュレー
トモードが設定される。
は、上記エミュレーションインターフェース18を介し
てエミュレーションバス23に接続される。エミュレー
ションバス23には図示はされない状態信号・制御信号
などを含む。上記エミュレーションバス23を用いてエ
ミュレーション用プロセッサ10から、応用システムと
エミュレーション用プロセッサの内部状態に応じた状態
などが出力され、また、エミュレーション用プロセッサ
10に対し、エミュレーションのための各種制御信号が
入力される。エミュレーション用プロセッサ10の図示
しないエミュレートモード端子が電源レベルに固定さ
れ、エミュレーション用プロセッサ内部ではエミュレー
トモードが設定される。
【0051】さらに、上記エミュレーションバス23に
は、特に制限はされないものの、応用システム又はター
ゲットマイクロコンピュータ内蔵のメモリを代行するた
めのRAMからなるようなエミュレーションメモリ24
が接続されている。エミュレーションメモリ24には、
内蔵ROMの代行をなす高速メモリと、ユーザに解放す
る貸出しメモリとが存在する。ユーザのプログラム作成
時には、容量的に余裕を持った設計をすることが多く、
内蔵ROMなどの記憶容量に収まらない場合がある。こ
のような場合にも、ユーザはエミュレータの貸出しメモ
リを利用して、実質的にプログラムメモリを拡張して、
デバックを開始することができる。デバックの進行に伴
ってプログラムを最適化し、所定の容量に収めるように
することができる。貸出しメモリは、その特性上、必ず
しも高速性は必要ない。エミュレーションメモリ24の
うち低速メモリからは、エミュレーション用プロセッサ
10に対してデータの読込みを待たせるウェイト要求信
号ASEWAITが出力される。エミュレーションメモ
リ24にはエミュレーション用プログラムも格納され
る。
は、特に制限はされないものの、応用システム又はター
ゲットマイクロコンピュータ内蔵のメモリを代行するた
めのRAMからなるようなエミュレーションメモリ24
が接続されている。エミュレーションメモリ24には、
内蔵ROMの代行をなす高速メモリと、ユーザに解放す
る貸出しメモリとが存在する。ユーザのプログラム作成
時には、容量的に余裕を持った設計をすることが多く、
内蔵ROMなどの記憶容量に収まらない場合がある。こ
のような場合にも、ユーザはエミュレータの貸出しメモ
リを利用して、実質的にプログラムメモリを拡張して、
デバックを開始することができる。デバックの進行に伴
ってプログラムを最適化し、所定の容量に収めるように
することができる。貸出しメモリは、その特性上、必ず
しも高速性は必要ない。エミュレーションメモリ24の
うち低速メモリからは、エミュレーション用プロセッサ
10に対してデータの読込みを待たせるウェイト要求信
号ASEWAITが出力される。エミュレーションメモ
リ24にはエミュレーション用プログラムも格納され
る。
【0052】また、エミュレーション用プロセッサ10
の制御状態やエミュレーションバスの状態を監視して、
その状態が予め設定された状態に達したときに、上記エ
ミュレータ専用割込みを入力して、CPUによるユーザ
プログラムの実行を停止させ、エミュレーション用プロ
グラム実行状態に遷移させる(ブレーク)ためのブレー
ク制御回路25と、上記CPUのリード動作またはライ
ト動作を示す信号、命令リード動作を示す信号などに基
づき、エミュレーションバスに与えられるアドレスやデ
ータさらには制御情報を逐次蓄えるリアルタイムトレー
ス回路26などがエミュレーションバス23に接続され
ている。エミュレーションバス23によって、エミュレ
ーションメモリ24、ブレーク制御回路25、リアルタ
イムトレース回路26間が相互に接続されている。ブレ
ーク制御回路25は、ブレーク信号ASEBRKをエミ
ュレーション用プロセッサ10に供給する。
の制御状態やエミュレーションバスの状態を監視して、
その状態が予め設定された状態に達したときに、上記エ
ミュレータ専用割込みを入力して、CPUによるユーザ
プログラムの実行を停止させ、エミュレーション用プロ
グラム実行状態に遷移させる(ブレーク)ためのブレー
ク制御回路25と、上記CPUのリード動作またはライ
ト動作を示す信号、命令リード動作を示す信号などに基
づき、エミュレーションバスに与えられるアドレスやデ
ータさらには制御情報を逐次蓄えるリアルタイムトレー
ス回路26などがエミュレーションバス23に接続され
ている。エミュレーションバス23によって、エミュレ
ーションメモリ24、ブレーク制御回路25、リアルタ
イムトレース回路26間が相互に接続されている。ブレ
ーク制御回路25は、ブレーク信号ASEBRKをエミ
ュレーション用プロセッサ10に供給する。
【0053】一方、上記エミュレーションメモリ24、
ブレーク制御回路25、リアルタイムトレース回路26
は、コントロールバス27を介してコントロールプロセ
ッサ28に接続されてその制御を受けるようになってい
る。上記コントロールバス27には、エミュレーション
用プロセッサ制御回路に接続されるとともに、ホストイ
ンターフェース回路29を介して、特に制限はされない
もののホストコンピュータ40に接続される。
ブレーク制御回路25、リアルタイムトレース回路26
は、コントロールバス27を介してコントロールプロセ
ッサ28に接続されてその制御を受けるようになってい
る。上記コントロールバス27には、エミュレーション
用プロセッサ制御回路に接続されるとともに、ホストイ
ンターフェース回路29を介して、特に制限はされない
もののホストコンピュータ40に接続される。
【0054】ホストコンピュータ40から入力されたプ
ログラムをエミュレーションメモリ24に転送し、内蔵
ROM上に配置されるべきプログラムをエミュレーショ
ン用プロセッサ10がリードすると、エミュレーション
メモリ24上のプログラムがリードされる。また、ブレ
ーク条件や、リアルタイムトレース条件などもホストコ
ンピュータ40から与えることができる。
ログラムをエミュレーションメモリ24に転送し、内蔵
ROM上に配置されるべきプログラムをエミュレーショ
ン用プロセッサ10がリードすると、エミュレーション
メモリ24上のプログラムがリードされる。また、ブレ
ーク条件や、リアルタイムトレース条件などもホストコ
ンピュータ40から与えることができる。
【0055】図5に、エミュレータの動作手順の概略を
示す。電源投入後、まず、エミュレータ全体のリセット
処理が実行される(ステップS1)。次に、CPUを選
択するためコントロールレジスタMCUCRのCPU選
択用ビットCPUSを設定する処理を行う(ステップS
2)。いずれのCPUがエミュレーション用プロセッサ
として動作するかは、ホストコンピュータ40から入力
され、ホストインターフェース29、コントロールプロ
セッサ28、エミュレーションメモリ25を介して、モ
ジュール制御レジスタMCUCRに設定される。モジュ
ールの選択も行われる。
示す。電源投入後、まず、エミュレータ全体のリセット
処理が実行される(ステップS1)。次に、CPUを選
択するためコントロールレジスタMCUCRのCPU選
択用ビットCPUSを設定する処理を行う(ステップS
2)。いずれのCPUがエミュレーション用プロセッサ
として動作するかは、ホストコンピュータ40から入力
され、ホストインターフェース29、コントロールプロ
セッサ28、エミュレーションメモリ25を介して、モ
ジュール制御レジスタMCUCRに設定される。モジュ
ールの選択も行われる。
【0056】CPU選択用ビットはフリップフロップで
構成されているため電源投入直後は不定であるため、最
初のリセット後のレジスタ設定等のイニシャライズプロ
グラムは、CPU1およびCPU2のいずれもが実行可
能な命令(共通の命令)で構成されるようにする。アド
レスも、いずれのCPUもアクセス可能な範囲に配置す
るようにする。また、CPU2のアドレス上位ビットを
符号拡張する場合、アドレス範囲は例えば16進数表示
でCPU1のアドレス空間のH’000000〜H’0
07FFF、H’FF8000〜H’FFFFFFに対
応するようにする。エミュレータ専用コントロールレジ
スタの指定アドレスも上記範囲内に配置する。
構成されているため電源投入直後は不定であるため、最
初のリセット後のレジスタ設定等のイニシャライズプロ
グラムは、CPU1およびCPU2のいずれもが実行可
能な命令(共通の命令)で構成されるようにする。アド
レスも、いずれのCPUもアクセス可能な範囲に配置す
るようにする。また、CPU2のアドレス上位ビットを
符号拡張する場合、アドレス範囲は例えば16進数表示
でCPU1のアドレス空間のH’000000〜H’0
07FFF、H’FF8000〜H’FFFFFFに対
応するようにする。エミュレータ専用コントロールレジ
スタの指定アドレスも上記範囲内に配置する。
【0057】CPU選択後、貸出しメモリの設定や各種
制御レジスタの設定(ステップS3)が行われてから、
ユーザシステムをリセットさせるためのリセット処理
(ステップS4)を行なってから、エミュレーションプ
ログラムが実行される(ステップS5)。このエミュレ
ーションプログラム実行中にユーザプログラムを実行す
べき指令があると、エミュレーションプログラムの実行
を停止してユーザプログラム実行へ移行する(ステップ
S6−S7)。
制御レジスタの設定(ステップS3)が行われてから、
ユーザシステムをリセットさせるためのリセット処理
(ステップS4)を行なってから、エミュレーションプ
ログラムが実行される(ステップS5)。このエミュレ
ーションプログラム実行中にユーザプログラムを実行す
べき指令があると、エミュレーションプログラムの実行
を停止してユーザプログラム実行へ移行する(ステップ
S6−S7)。
【0058】ここで、上記エミュレータの動作開始前に
行われるエミュレーション対象のマイクロコンピュータ
の選択方法の一例を説明する。
行われるエミュレーション対象のマイクロコンピュータ
の選択方法の一例を説明する。
【0059】先ず、ホストコンピュータ40の表示装置
の画面上にコマンド入力待ちの状態を示す「:」が表示
される。この状態で、エミュレーション対象のマイクロ
コンピュータの選択を行うためにMODE;Cを入力し
実行キーを操作する。すると、エミュレータは、エミュ
レーション可能なマイクロコンピュータの選択メニュー
として、マイクロコンピュータの形式などを一覧表示す
る。ここで使用者は所望のマイクロコンピュータの番号
を入力する。例えば、CPU1を内蔵したマイクロコン
ピュータとして、1:MCU1A,2:MCU1B,
3:MCU1C,4:MCU1D,5:MCU1E,
6:MCU1Fのように、またCPU2を内蔵したマイ
クロコンピュータとして、7:MCU2A,8:MCU
2B,9:MCU2Cのようにそれぞれ表示されている
場合に、MCU1Aを指定するには「1」を入力する。
の画面上にコマンド入力待ちの状態を示す「:」が表示
される。この状態で、エミュレーション対象のマイクロ
コンピュータの選択を行うためにMODE;Cを入力し
実行キーを操作する。すると、エミュレータは、エミュ
レーション可能なマイクロコンピュータの選択メニュー
として、マイクロコンピュータの形式などを一覧表示す
る。ここで使用者は所望のマイクロコンピュータの番号
を入力する。例えば、CPU1を内蔵したマイクロコン
ピュータとして、1:MCU1A,2:MCU1B,
3:MCU1C,4:MCU1D,5:MCU1E,
6:MCU1Fのように、またCPU2を内蔵したマイ
クロコンピュータとして、7:MCU2A,8:MCU
2B,9:MCU2Cのようにそれぞれ表示されている
場合に、MCU1Aを指定するには「1」を入力する。
【0060】すると、エミュレータは入力された番号に
対応して、予め、内部に登録されている情報に基づい
て、CPUの選択、メモリ容量の選択、内蔵周辺機能の
選択、パッケージなどの解析を行い、エミュレーション
用プロセッサ内部のCPUにプログラムを与えて、MC
UCRなどの所定のレジスタに書き込みを行う。なお、
マイクロコンピュータの選択は、形式などをメニューと
して選択させるほか、CPUの種類、メモリ容量などを
表示させて、使用者に個別に選択させるようにしてもよ
い。
対応して、予め、内部に登録されている情報に基づい
て、CPUの選択、メモリ容量の選択、内蔵周辺機能の
選択、パッケージなどの解析を行い、エミュレーション
用プロセッサ内部のCPUにプログラムを与えて、MC
UCRなどの所定のレジスタに書き込みを行う。なお、
マイクロコンピュータの選択は、形式などをメニューと
して選択させるほか、CPUの種類、メモリ容量などを
表示させて、使用者に個別に選択させるようにしてもよ
い。
【0061】上記マイクロコンピュータの選択の他にも
例えば拡張モードやシングルチップモードのような動作
モード設定等、エミュレータ設定処理が行われ、ホスト
コンピュータ40から入力されるコマンドなどに基づ
き、ユーザプログラムの実行が要求されると、図5のス
テップS6でエミュレーション用プロセッサがそれを検
知してリターン命令を実行し、ユーザモードに遷移して
ユーザプログラムを実行する。この状態で、ユーザシス
テムからリセットが要求されれば、ユーザプログラムの
リセット処理を行う(ステップS8,S9)。このと
き、ウェイト信号ASEWAITがハイレベルにされて
いるため、エミュレーション専用レジスタMCUCRは
リセットされずその内容が保持される。つまりCPUの
選択は行われない。実行すべきユーザプログラムが終了
したり、ユーザが設定した条件が成立したりすると、ユ
ーザプログラムの実行は中断(ブレーク)され、エミュ
レーションプログラム実行へ移行する(ステップS10
−S5)。
例えば拡張モードやシングルチップモードのような動作
モード設定等、エミュレータ設定処理が行われ、ホスト
コンピュータ40から入力されるコマンドなどに基づ
き、ユーザプログラムの実行が要求されると、図5のス
テップS6でエミュレーション用プロセッサがそれを検
知してリターン命令を実行し、ユーザモードに遷移して
ユーザプログラムを実行する。この状態で、ユーザシス
テムからリセットが要求されれば、ユーザプログラムの
リセット処理を行う(ステップS8,S9)。このと
き、ウェイト信号ASEWAITがハイレベルにされて
いるため、エミュレーション専用レジスタMCUCRは
リセットされずその内容が保持される。つまりCPUの
選択は行われない。実行すべきユーザプログラムが終了
したり、ユーザが設定した条件が成立したりすると、ユ
ーザプログラムの実行は中断(ブレーク)され、エミュ
レーションプログラム実行へ移行する(ステップS10
−S5)。
【0062】CPUの選択は、エミュレーションプログ
ラム実行中のみ変更可能である。ただし、前述したよう
に、CPU選択ビットCPUSの出力はフリップフロッ
プFF2を介してマイクロコンピュータの各部に与えら
れるように構成されている(図2参照)ので、選択を変
更しても次のリセットが投入されるまでは有効にならな
い。CPUは、必ずリセット状態から起動されるので、
特殊な処理を行なわなくてよい。しかも、ターゲットと
なるマイクロコンピュータは、CPU1またはCPU2
のいずれか一方のみを内蔵するものであり、いずれかの
CPUを内蔵したマイクロコンピュータのエミュレーシ
ョンを行なうものであるから、動作中にCPUの変更を
行うことは意味がなく、上記のようにリセットによって
変更を許可するようにしても、使用者の使い勝手を損な
うことはない。
ラム実行中のみ変更可能である。ただし、前述したよう
に、CPU選択ビットCPUSの出力はフリップフロッ
プFF2を介してマイクロコンピュータの各部に与えら
れるように構成されている(図2参照)ので、選択を変
更しても次のリセットが投入されるまでは有効にならな
い。CPUは、必ずリセット状態から起動されるので、
特殊な処理を行なわなくてよい。しかも、ターゲットと
なるマイクロコンピュータは、CPU1またはCPU2
のいずれか一方のみを内蔵するものであり、いずれかの
CPUを内蔵したマイクロコンピュータのエミュレーシ
ョンを行なうものであるから、動作中にCPUの変更を
行うことは意味がなく、上記のようにリセットによって
変更を許可するようにしても、使用者の使い勝手を損な
うことはない。
【0063】図6〜図11にバスタイミングおよびCP
Uステータス信号タイミングの一例を示す。このうち図
6はアドレスバス、データバス動作タイミングを示す。
ASEφはエミュレータ内部の動作クロック、ASEA
23-0は24ビットのアドレスバス信号、ASED15-0は
16ビットのデータバス信号を表している。
Uステータス信号タイミングの一例を示す。このうち図
6はアドレスバス、データバス動作タイミングを示す。
ASEφはエミュレータ内部の動作クロック、ASEA
23-0は24ビットのアドレスバス信号、ASED15-0は
16ビットのデータバス信号を表している。
【0064】図7はリード動作時のタイミングを示す。
ASERD#はCPU1,CPU2または他のバスマス
タが内部のモジュールに対して読込みを行なうときにロ
ウレベルにされるバスステータス信号としてのリード信
号、エミュレーション用プロセッサ10から外部へ出力
される。リフレッシュサイクルと他のバスサイクルを並
行して実行する場合、ASERD#信号はバスサイクル
優先となる。したがって、エミュレータ側ではリフレッ
シュサイクルの実行を知ることができないようになって
いる。
ASERD#はCPU1,CPU2または他のバスマス
タが内部のモジュールに対して読込みを行なうときにロ
ウレベルにされるバスステータス信号としてのリード信
号、エミュレーション用プロセッサ10から外部へ出力
される。リフレッシュサイクルと他のバスサイクルを並
行して実行する場合、ASERD#信号はバスサイクル
優先となる。したがって、エミュレータ側ではリフレッ
シュサイクルの実行を知ることができないようになって
いる。
【0065】図8はライト動作時のタイミングを示す。
ASEWR#はCPU1,CPU2または他のバスマス
タが内部のモジュールに対して書込みを行なうときにロ
ウレベルにされるバスステータス信号としてのライト信
号、ASEEXWR#は外部空間書込み時にロウレベル
にされるライト信号であり、エミュレーション用プロセ
ッサ10から出力される。ワードサイズのライトを、バ
イトサイズの2回のライトに分けて実行する場合、AS
EWR#信号はワードサイズアクセスについて1回ロウ
レベルを出力する。
ASEWR#はCPU1,CPU2または他のバスマス
タが内部のモジュールに対して書込みを行なうときにロ
ウレベルにされるバスステータス信号としてのライト信
号、ASEEXWR#は外部空間書込み時にロウレベル
にされるライト信号であり、エミュレーション用プロセ
ッサ10から出力される。ワードサイズのライトを、バ
イトサイズの2回のライトに分けて実行する場合、AS
EWR#信号はワードサイズアクセスについて1回ロウ
レベルを出力する。
【0066】図9は命令取り込み時の動作タイミングを
示す。ASELIR#はオペコードフェッチ信号で、C
PUの命令フェッチサイクル時にロウレベルを出力する
CPUステータス信号である。ASELID1#はオペ
コード実行信号で、CPUの命令実行開始時にロウレベ
ルにされるCPUステータス信号である。
示す。ASELIR#はオペコードフェッチ信号で、C
PUの命令フェッチサイクル時にロウレベルを出力する
CPUステータス信号である。ASELID1#はオペ
コード実行信号で、CPUの命令実行開始時にロウレベ
ルにされるCPUステータス信号である。
【0067】図10は分岐命令実行時の動作タイミング
を示す。ASEBCCB#は分岐条件不成立時にロウレ
ベルにされるCPUステータス信号としての分岐条件不
成立信号である。CPUが条件分岐命令を実行すると、
分岐先の命令が必ずフェッチされ、条件判定の結果、分
岐条件が成立するとASEBCCB#はハイレベルのま
まとされプリフェッチされている次の命令は実行されず
に分岐先の命令が実行される。一方、条件判定の結果、
分岐条件が不成立になった場合、分岐先命令フェッチサ
イクルでASEBCCB#信号がロウレベルにされ、分
岐先の命令はフェッチされるのみで実行されず、既にプ
リフェッチされている次の命令が実行される。
を示す。ASEBCCB#は分岐条件不成立時にロウレ
ベルにされるCPUステータス信号としての分岐条件不
成立信号である。CPUが条件分岐命令を実行すると、
分岐先の命令が必ずフェッチされ、条件判定の結果、分
岐条件が成立するとASEBCCB#はハイレベルのま
まとされプリフェッチされている次の命令は実行されず
に分岐先の命令が実行される。一方、条件判定の結果、
分岐条件が不成立になった場合、分岐先命令フェッチサ
イクルでASEBCCB#信号がロウレベルにされ、分
岐先の命令はフェッチされるのみで実行されず、既にプ
リフェッチされている次の命令が実行される。
【0068】図11は割込み動作時のタイミングを示
す。ASELID1#は前述したようにCPUの命令実
行開始時にロウレベルにされるオペコード実行信号、A
SEIACK#は割込み要求に対する応答信号としての
割込みアクノリッジ信号である。ASEIACK#信号
はASELID#信号に半クロック遅れてロウレベル
(有効)に変化し、ASEIACK#信号がロウレベル
になった時のASELID#信号に対応する命令は実行
されないようになっている。
す。ASELID1#は前述したようにCPUの命令実
行開始時にロウレベルにされるオペコード実行信号、A
SEIACK#は割込み要求に対する応答信号としての
割込みアクノリッジ信号である。ASEIACK#信号
はASELID#信号に半クロック遅れてロウレベル
(有効)に変化し、ASEIACK#信号がロウレベル
になった時のASELID#信号に対応する命令は実行
されないようになっている。
【0069】上記のようなバスタイミングやCPUステ
ータス信号は、CPU1とCPU2は共通のタイミング
で実行される。すなわち、CPU1とCPU2の共通の
命令を実行する場合には、上記タイミングが同一にな
る。CPU2のアドレス空間がCPU1にくらべて小さ
い場合、エミュレータは、CPU2のエミュレーション
をする場合には上位アドレスを無視するようにする。ま
た、CPU1にのみ存在する命令をCPU2が実行した
場合には、未定義の命令実行として表示する。このとき
に、いずれのCPUが選択されているかを示す信号を参
照すればよい。
ータス信号は、CPU1とCPU2は共通のタイミング
で実行される。すなわち、CPU1とCPU2の共通の
命令を実行する場合には、上記タイミングが同一にな
る。CPU2のアドレス空間がCPU1にくらべて小さ
い場合、エミュレータは、CPU2のエミュレーション
をする場合には上位アドレスを無視するようにする。ま
た、CPU1にのみ存在する命令をCPU2が実行した
場合には、未定義の命令実行として表示する。このとき
に、いずれのCPUが選択されているかを示す信号を参
照すればよい。
【0070】図12に、エミュレータのトレースおよび
逆アセンブルリストの一例を示す。ABはアドレスバ
ス、DBはデータバスである。MAはメモリアクセス対
象を示し、EXTは外部アドレスである。R/Wはリー
ド/ライトを示し、Rはリードサイクルである。STは
ステータスを示し、PRGはプログラムフェッチであ
る。IRQ、NMI、RESは、図示されていないユー
ザインターフェースに含まれる割込みないしシステム制
御信号の状態である。
逆アセンブルリストの一例を示す。ABはアドレスバ
ス、DBはデータバスである。MAはメモリアクセス対
象を示し、EXTは外部アドレスである。R/Wはリー
ド/ライトを示し、Rはリードサイクルである。STは
ステータスを示し、PRGはプログラムフェッチであ
る。IRQ、NMI、RESは、図示されていないユー
ザインターフェースに含まれる割込みないしシステム制
御信号の状態である。
【0071】アドレスバス、データバスそのほかの内容
が順次トレースメモリに格納されていて、これをコント
ロールプロセッサ28の指示で、ホストコンピュータ4
0の表示画面上に図12に示すようなリストの形式で表
示したり、付属のプリンタから出力することができる。
が順次トレースメモリに格納されていて、これをコント
ロールプロセッサ28の指示で、ホストコンピュータ4
0の表示画面上に図12に示すようなリストの形式で表
示したり、付属のプリンタから出力することができる。
【0072】アドレスバスやデータバスのほか、リード
信号、ライト信号、CPUステータス信号もトレースさ
れている。図12のリストでは、アドレスバスやデータ
バスの内容はそのまま表示され、リード信号/ライト信
号はそれぞれ対応して、RまたはWの表示がなされる。
CPUステータス信号は、直接表示したり、出力したり
はせず、コントロールプロセッサの解析に提供される。
例えば、ASELIRで示される信号は、CPUがフェ
ッチした命令コードであるとされ、PRGの表示がなさ
れる。また、ASELIDで示される信号は、CPUが
実行した命令コードを示しており、これはアセンブラソ
ースとして表示される。例えば、7A07,00FF,
FF0Eに対して、ASELIRが出力され、7A07
に対してASELIDが出力される。これを解析して、
MOV.L #00FFFF0E,ER7として表示さ
れる。
信号、ライト信号、CPUステータス信号もトレースさ
れている。図12のリストでは、アドレスバスやデータ
バスの内容はそのまま表示され、リード信号/ライト信
号はそれぞれ対応して、RまたはWの表示がなされる。
CPUステータス信号は、直接表示したり、出力したり
はせず、コントロールプロセッサの解析に提供される。
例えば、ASELIRで示される信号は、CPUがフェ
ッチした命令コードであるとされ、PRGの表示がなさ
れる。また、ASELIDで示される信号は、CPUが
実行した命令コードを示しており、これはアセンブラソ
ースとして表示される。例えば、7A07,00FF,
FF0Eに対して、ASELIRが出力され、7A07
に対してASELIDが出力される。これを解析して、
MOV.L #00FFFF0E,ER7として表示さ
れる。
【0073】CPU2のトレースの表示や出力時には、
エミュレーション用プロセッサがアドレスの上位ビット
を符号拡張していても、トレース表示上にこれを用いて
しまうと使用者にはわかりにくいので、アドレスの上位
を表示しないようにする。または、上位ビットを0とし
て表示してもよい。
エミュレーション用プロセッサがアドレスの上位ビット
を符号拡張していても、トレース表示上にこれを用いて
しまうと使用者にはわかりにくいので、アドレスの上位
を表示しないようにする。または、上位ビットを0とし
て表示してもよい。
【0074】図13に、エミュレーション用プロセッサ
に内蔵されるCPUの他の構成例を示す。
に内蔵されるCPUの他の構成例を示す。
【0075】CPU1とCPU2は物理的に別のCPU
でなくともよく、CPU1の機能がCPU2の機能を包
含するような場合、CPU1のみを内蔵し、このうちC
PU1でのみ使用する機能には、禁止信号としてCPU
選択信号を与えるようにしたものである。即ち、CPU
1を選択していれば、CPUのすべての機能の動作を許
可し、CPU2を選択していれば、CPU2では使用で
きない機能を禁止するようにしたものである。例えば、
CPU2を選択した場合、汎用レジスタの上位に相当す
る部分のリード/ライトが禁止されるようにする。
でなくともよく、CPU1の機能がCPU2の機能を包
含するような場合、CPU1のみを内蔵し、このうちC
PU1でのみ使用する機能には、禁止信号としてCPU
選択信号を与えるようにしたものである。即ち、CPU
1を選択していれば、CPUのすべての機能の動作を許
可し、CPU2を選択していれば、CPU2では使用で
きない機能を禁止するようにしたものである。例えば、
CPU2を選択した場合、汎用レジスタの上位に相当す
る部分のリード/ライトが禁止されるようにする。
【0076】図13において、IRは読み込まれた命令
を保持する命令レジスタ、CONTは読み込まれた命令
に対応した制御信号を実行部に対して供給する制御部、
MABはアドレス出力レジスタ、VAGは割込み時に供
給されるベクタ番号を取り込むベクタ番号入力レジス
タ、MCRはモード制御レジスタ、R0〜R7は汎用レ
ジスタ、PCはプログラムカウンタ、ALUは演算論理
ユニット、DBRはデータ入力レジスタ、DBWはデー
タ出力レジスタである。図13において、斜線が付され
ている部分が、CPU2が選択された場合に回路動作が
禁止される部分であり、CPU選択信号が禁止信号とし
て与えられる。すなわちCPU選択信号が“0”とされ
ることによりCPU1が選択されている場合は、斜線部
の動作が許可される。CPU選択信号が“1”とされて
CPU2が選択されている場合は、斜線部の動作が禁止
される。
を保持する命令レジスタ、CONTは読み込まれた命令
に対応した制御信号を実行部に対して供給する制御部、
MABはアドレス出力レジスタ、VAGは割込み時に供
給されるベクタ番号を取り込むベクタ番号入力レジス
タ、MCRはモード制御レジスタ、R0〜R7は汎用レ
ジスタ、PCはプログラムカウンタ、ALUは演算論理
ユニット、DBRはデータ入力レジスタ、DBWはデー
タ出力レジスタである。図13において、斜線が付され
ている部分が、CPU2が選択された場合に回路動作が
禁止される部分であり、CPU選択信号が禁止信号とし
て与えられる。すなわちCPU選択信号が“0”とされ
ることによりCPU1が選択されている場合は、斜線部
の動作が許可される。CPU選択信号が“1”とされて
CPU2が選択されている場合は、斜線部の動作が禁止
される。
【0077】一例として、汎用レジスタの上位ビット
(ビット16〜31)の1ビット分の許可/禁止の仕方
を図14に示す。汎用レジスタの上位ビットは、クリア
端子付きのD型フリップフロップFF3で構成される。
このフリップフロップFF3のクリア端子CにCPU選
択信号が与えられる。これによって、CPU2を選択し
た場合は、CPU選択信号が“1”とされることによっ
てフリップフロップFF3は出力がロウレベルに固定さ
れる。その結果、汎用レジスタの上位ビット(ビット1
6〜31)は“0”に固定される。
(ビット16〜31)の1ビット分の許可/禁止の仕方
を図14に示す。汎用レジスタの上位ビットは、クリア
端子付きのD型フリップフロップFF3で構成される。
このフリップフロップFF3のクリア端子CにCPU選
択信号が与えられる。これによって、CPU2を選択し
た場合は、CPU選択信号が“1”とされることによっ
てフリップフロップFF3は出力がロウレベルに固定さ
れる。その結果、汎用レジスタの上位ビット(ビット1
6〜31)は“0”に固定される。
【0078】内蔵される2つのCPUのうち必ずしも一
方が他方を包含しない場合にも、両方の機能を包含する
CPUを構成し、一方のCPUを選択した場合に、その
CPUでは使用しない機能を禁止するように構成すれば
よい。かかるCPUを内蔵したエミュレーション用プロ
セッサを開発すれば、いわゆる論理合成によって、必要
でないCPU論理回路を削除して最適化されたCPU論
理回路を得ることができる。
方が他方を包含しない場合にも、両方の機能を包含する
CPUを構成し、一方のCPUを選択した場合に、その
CPUでは使用しない機能を禁止するように構成すれば
よい。かかるCPUを内蔵したエミュレーション用プロ
セッサを開発すれば、いわゆる論理合成によって、必要
でないCPU論理回路を削除して最適化されたCPU論
理回路を得ることができる。
【0079】一方、禁止機能を設けないようにすること
もできる。しかしながら、例えば、CPU2をエミュレ
ーションするときに、CPU1にのみ存在する機能を使
った場合、実際のマイクロコンピュータとエミュレーシ
ョン用プロセッサの動作が対応し、矛盾しないようにし
なければならない。例えば、CPU1のみに存在するア
ドレス24ビットのアドレッシングモードを使用した場
合、CPU2でも実行可能であり、実行結果、上位アド
レスが無視されるだけなどであれば問題はない。しかし
ながら、エミュレーション用プロセッサでは動作する
が、実際のマイクロコンピュータでは未定義の命令とし
て暴走したりしてしまってはプログラムのデバックを行
うエミュレータ本来の機能を実現できなくなってしまう
ので、避けるようにすべきである。少なくとも未定義の
命令として表示すべきである。例えば、図12の7A0
7,00FF,FF0Eに対してCPU2が選択されて
おり、CPU2では、MOV.L #00FFFF0
E,ER7が未定義命令であれば、MOV.L #00
FFFF0E,ER7とは表示せず、未定義命令として
表示するようにする。
もできる。しかしながら、例えば、CPU2をエミュレ
ーションするときに、CPU1にのみ存在する機能を使
った場合、実際のマイクロコンピュータとエミュレーシ
ョン用プロセッサの動作が対応し、矛盾しないようにし
なければならない。例えば、CPU1のみに存在するア
ドレス24ビットのアドレッシングモードを使用した場
合、CPU2でも実行可能であり、実行結果、上位アド
レスが無視されるだけなどであれば問題はない。しかし
ながら、エミュレーション用プロセッサでは動作する
が、実際のマイクロコンピュータでは未定義の命令とし
て暴走したりしてしまってはプログラムのデバックを行
うエミュレータ本来の機能を実現できなくなってしまう
ので、避けるようにすべきである。少なくとも未定義の
命令として表示すべきである。例えば、図12の7A0
7,00FF,FF0Eに対してCPU2が選択されて
おり、CPU2では、MOV.L #00FFFF0
E,ER7が未定義命令であれば、MOV.L #00
FFFF0E,ER7とは表示せず、未定義命令として
表示するようにする。
【0080】上記実施例をCPUを内蔵したセルベース
ICなどのエミュレータに適用すれば、最適なCPUを
随時選択することができ、使用者は最適なCPUを用い
たセルベースICを設計することができるようになり、
好適である。その結果、開発効率を向上し、設計できた
セルベースICの物理的規模、ひいては製造費用を低減
することが可能になる。
ICなどのエミュレータに適用すれば、最適なCPUを
随時選択することができ、使用者は最適なCPUを用い
たセルベースICを設計することができるようになり、
好適である。その結果、開発効率を向上し、設計できた
セルベースICの物理的規模、ひいては製造費用を低減
することが可能になる。
【0081】以上の実施例によれば以下の作用効果を得
ることができる。
ることができる。
【0082】(1)使用者は、一つのエミュレータで、
複数のCPUを選択的にエミュレーションすることがで
きる。
複数のCPUを選択的にエミュレーションすることがで
きる。
【0083】(2)一つのエミュレータで、複数のマイ
クロコンピュータのエミュレーションを行うことがで
き、2種類目以降のマイクロコンピュータの開発装置
を、いち早く提供でき、開発効率を向上することができ
る。
クロコンピュータのエミュレーションを行うことがで
き、2種類目以降のマイクロコンピュータの開発装置
を、いち早く提供でき、開発効率を向上することができ
る。
【0084】(3)アドレス空間の大きさが異なる2つ
のCPUのエミュレーションを一つのエミュレーション
用プロセッサで行なえるようにしたので、使用者のプロ
グラム開発に従って、プログラムサイズが大きくなった
り小さくなったりしても、直ちにCPUを変更して、エ
ミュレーションを行うことができ、また、容易に最適な
CPUに移行することができる。その結果、開発効率を
向上することができる。
のCPUのエミュレーションを一つのエミュレーション
用プロセッサで行なえるようにしたので、使用者のプロ
グラム開発に従って、プログラムサイズが大きくなった
り小さくなったりしても、直ちにCPUを変更して、エ
ミュレーションを行うことができ、また、容易に最適な
CPUに移行することができる。その結果、開発効率を
向上することができる。
【0085】(4)複数のCPUのバスタイミングや、
エミュレーション用のCPUステータス信号などの種類
とタイミングを共通化することによって、また、複数の
CPUのオブジェクトコードを共通化することによって
エミュレータの開発を容易にすることができる。
エミュレーション用のCPUステータス信号などの種類
とタイミングを共通化することによって、また、複数の
CPUのオブジェクトコードを共通化することによって
エミュレータの開発を容易にすることができる。
【0086】(5)複数のCPUに対して、共通のバス
コントローラや割込コントローラなどを設けることによ
って、エミュレーション用プロセッサの開発効率を向上
することができる。
コントローラや割込コントローラなどを設けることによ
って、エミュレーション用プロセッサの開発効率を向上
することができる。
【0087】(6)CPUの選択変更をリセット時にの
み可能にすることによって、CPUの選択制御を容易に
し、エミュレーション用プロセッサの開発効率を向上す
ることができる。
み可能にすることによって、CPUの選択制御を容易に
し、エミュレーション用プロセッサの開発効率を向上す
ることができる。
【0088】以上本発明者等によってなされた発明を実
施例に限定されるものではなく、その要旨を逸脱しない
範囲において種々変更可能である。例えば、CPUの数
は2つに制限されない。アドレス空間の相違のほか、ハ
ードウェアアクセラレータ(乗算器や除算器など)の有
効/無効を選択できるようにしてもよい。アドレス空間
の大きさ、命令セット、CPUステータス信号の種類や
バスタイミングなど、或いは、内蔵される機能ブロック
乃至モジュールの数・種類、ピン数などについては何等
限定されない。また、制御レジスタやエミュレーション
用プロセッサ専用ブロックの具体的構成、エミュレータ
の具体的構成などは上記実施例に限定されず、その他、
種々変更可能である。
施例に限定されるものではなく、その要旨を逸脱しない
範囲において種々変更可能である。例えば、CPUの数
は2つに制限されない。アドレス空間の相違のほか、ハ
ードウェアアクセラレータ(乗算器や除算器など)の有
効/無効を選択できるようにしてもよい。アドレス空間
の大きさ、命令セット、CPUステータス信号の種類や
バスタイミングなど、或いは、内蔵される機能ブロック
乃至モジュールの数・種類、ピン数などについては何等
限定されない。また、制御レジスタやエミュレーション
用プロセッサ専用ブロックの具体的構成、エミュレータ
の具体的構成などは上記実施例に限定されず、その他、
種々変更可能である。
【0089】以上の説明では主として本発明者によって
なされた発明をその背景となった利用分野であるエミュ
レーション用プロセッサ及びエミュレータに適用した場
合について説明したが、それに限定されるものではな
く、EPROM搭載型マイクロコンピュータなど、主に
開発用途で製造費用などより開発期間などが重要視され
るものに利用することができる。また、その他の半導体
集積回路装置にも適用可能であり、本発明は少なくと
も、複数のCPUを有したり、排他的に動作したりする
半導体集積回路装置に適用することができる。
なされた発明をその背景となった利用分野であるエミュ
レーション用プロセッサ及びエミュレータに適用した場
合について説明したが、それに限定されるものではな
く、EPROM搭載型マイクロコンピュータなど、主に
開発用途で製造費用などより開発期間などが重要視され
るものに利用することができる。また、その他の半導体
集積回路装置にも適用可能であり、本発明は少なくと
も、複数のCPUを有したり、排他的に動作したりする
半導体集積回路装置に適用することができる。
【0090】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
【0091】すなわち、1つのエミュレータにおいて、
使用者の選択に基づいて複数のCPUのエミュレーショ
ンが可能になり、マイクロコンピュータ応用システムの
開発装置をいち早く提供でき、応用システムの開発効率
を向上し、かつ使用者が自由にCPUの選択でき、使い
勝手が向上する。
使用者の選択に基づいて複数のCPUのエミュレーショ
ンが可能になり、マイクロコンピュータ応用システムの
開発装置をいち早く提供でき、応用システムの開発効率
を向上し、かつ使用者が自由にCPUの選択でき、使い
勝手が向上する。
【0092】また、CPUのバス制御、割込制御、エミ
ュレーションインターフェース信号を共通化することに
よって、エミュレーション用プロセッサやエミュレータ
の開発効率が向上する。
ュレーションインターフェース信号を共通化することに
よって、エミュレーション用プロセッサやエミュレータ
の開発効率が向上する。
【図1】本発明の実施例を示すエミュレーション用プロ
セッサのブロック図である。
セッサのブロック図である。
【図2】CPU選択信号生成回路の一例を示す概略ブロ
ック図である。
ック図である。
【図3】CPU選択信号生成回路の他の例を示す概略ブ
ロック図である。
ロック図である。
【図4】エミュレータおよびこれを使用したシステム開
発装置全体の概略構成を示すブロック図である。
発装置全体の概略構成を示すブロック図である。
【図5】エミュレータの動作手順の概略を示すフローチ
ャートである。
ャートである。
【図6】バスタイミングおよびCPUステータス信号の
タイミングの一例を示すタイムチャートである。
タイミングの一例を示すタイムチャートである。
【図7】バスタイミングおよびCPUステータス信号の
タイミングの一例を示すタイムチャートである。
タイミングの一例を示すタイムチャートである。
【図8】バスタイミングおよびCPUステータス信号の
タイミングの一例を示すタイムチャートである。
タイミングの一例を示すタイムチャートである。
【図9】バスタイミングおよびCPUステータス信号の
タイミングの一例を示すタイムチャートである。
タイミングの一例を示すタイムチャートである。
【図10】バスタイミングおよびCPUステータス信号
のタイミングの一例を示すタイムチャートである。
のタイミングの一例を示すタイムチャートである。
【図11】バスタイミングおよびCPUステータス信号
のタイミングの一例を示すタイムチャートである。
のタイミングの一例を示すタイムチャートである。
【図12】エミュレータのトレース及び逆アセンブルリ
ストの一例である。
ストの一例である。
【図13】エミュレーション用プロセッサに内蔵される
CPUの他の構成例を示すブロック図である。
CPUの他の構成例を示すブロック図である。
【図14】汎用レジスタの許可/禁止可能なビットの構
成例を示す回路図である。
成例を示す回路図である。
11 データトランスファコントローラ 12 リードオンリメモリ 13 ランダムアクセスメモリ 14 バスコントローラ 19 エミュレーション制御回路 22 コネクタ 30 ユーザシステム(マイクロコンピュータ応用シス
テム) 31 シングルチップマイクロコンピュータの実装領域 SEL1〜SEL3 選択回路 MCUCR コントロールレジスタ MP モニタ用外部端子 FF1〜FF3 フリップフロップ(ラッチ回路)
テム) 31 シングルチップマイクロコンピュータの実装領域 SEL1〜SEL3 選択回路 MCUCR コントロールレジスタ MP モニタ用外部端子 FF1〜FF3 フリップフロップ(ラッチ回路)
Claims (9)
- 【請求項1】 オブジェクトコード・セットの少なくと
も一部、内部のステータス信号、インターフェースが共
通化されるとともに動作タイミングが同一である複数の
異なるCPUと、これらのCPUを選択的に動作可能に
する選択回路とを備え、複数のCPUのエミュレーショ
ンが実行可能であることを特徴とするエミュレーション
用プロセッサ。 - 【請求項2】 上記複数のCPUへの割込み制御を選択
的に行う共通の割込み制御回路を備えてなることを特徴
とする請求項1に記載のエミュレーション用プロセッ
サ。 - 【請求項3】 バスマスタとなる周辺モジュールを内蔵
し、これらの周辺モジュールと上記複数のCPUとのバ
ス使用権を制御する共通のバス制御回路を備えてなるこ
とを特徴とする請求項1または2に記載のエミュレーシ
ョン用プロセッサ。 - 【請求項4】 上記複数のCPUのうち一つを選択指定
するための制御フラグもしくはコントロールレジスタを
備えるとともに、前記制御フラグもしくはコントロール
レジスタの所定の制御ビットにはリセット信号によって
該制御ビットの情報が反映されるラッチ回路が設けられ
てなることを特徴とする請求項1、2または3に記載の
エミュレーション用プロセッサ。 - 【請求項5】 上記複数のCPUのうちいずれを選択し
ているか外部へ出力する外部端子を備えてなることを特
徴とする請求項1、2、3または4に記載のエミュレー
ション用プロセッサ。 - 【請求項6】 上記複数のCPUのうち一つを外部から
選択指定するための外部端子を備えてなることを特徴と
する請求項1、2または3に記載のエミュレーション用
プロセッサ。 - 【請求項7】 上記複数のCPUは互いにアドレス空間
を異にする場合において、アドレス空間の小さなCPU
が出力しないアドレスの上位ビットは、上記バス制御回
路によって0あるいは符号拡張されるように構成されて
いることを特徴とする請求項3、4、5または6に記載
のエミュレーション用プロセッサ。 - 【請求項8】 選択信号によって一部の機能が禁止可能
にされたCPUを備え、上記一部の機能が禁止または許
可されることにより実質的に複数のCPUのエミュレー
ションが実行可能であることを特徴とするエミュレーシ
ョン用プロセッサ。 - 【請求項9】 請求項1〜8に記載のエミュレーション
用プロセッサと、該プロセッサ内のいずれかのCPUが
動作中のバス上の信号を逐次蓄えるトレース回路と、所
定の状態を検出して上記CPUによるプログラムの実行
を停止させるブレーク制御回路とを備えてなることを特
徴とするエミュレータ。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8005036A JPH09198272A (ja) | 1996-01-16 | 1996-01-16 | エミュレーション用プロセッサおよびエミュレータ |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8005036A JPH09198272A (ja) | 1996-01-16 | 1996-01-16 | エミュレーション用プロセッサおよびエミュレータ |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH09198272A true JPH09198272A (ja) | 1997-07-31 |
Family
ID=11600239
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP8005036A Pending JPH09198272A (ja) | 1996-01-16 | 1996-01-16 | エミュレーション用プロセッサおよびエミュレータ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH09198272A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6745320B1 (en) | 1999-04-30 | 2004-06-01 | Renesas Technology Corp. | Data processing apparatus |
| JP2022015197A (ja) * | 2020-07-08 | 2022-01-21 | 株式会社エルイーテック | デバッグ用インサーキットエミュレータ装置 |
-
1996
- 1996-01-16 JP JP8005036A patent/JPH09198272A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6745320B1 (en) | 1999-04-30 | 2004-06-01 | Renesas Technology Corp. | Data processing apparatus |
| JP2022015197A (ja) * | 2020-07-08 | 2022-01-21 | 株式会社エルイーテック | デバッグ用インサーキットエミュレータ装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5640542A (en) | On-chip in-circuit-emulator memory mapping and breakpoint register modules | |
| US6449709B1 (en) | Fast stack save and restore system and method | |
| US5325512A (en) | Circuit emulator | |
| JP4226085B2 (ja) | マイクロプロセッサ及びマルチプロセッサシステム | |
| US5675772A (en) | Device and method for reconfiguring a computer system with an incompatible CPU | |
| US5577230A (en) | Apparatus and method for computer processing using an enhanced Harvard architecture utilizing dual memory buses and the arbitration for data/instruction fetch | |
| US20010018721A1 (en) | Upgrade card for a computer system | |
| JPH06250871A (ja) | Cpuコア、該cpuコアを有するasic、及び該asicを備えたエミュレーションシステム | |
| JPH08202563A (ja) | コンピュータシステム | |
| US7100088B2 (en) | Computer system equipped with a BIOS debugging card | |
| JPH08171500A (ja) | コンピュータシステム | |
| JP2001202243A (ja) | データ処理装置 | |
| US6877063B1 (en) | Multiple memory aliasing for a configurable system-on-chip | |
| KR20010006839A (ko) | 마이크로 컴퓨터, 전자 기기 및 에뮬레이션 방법 | |
| JP2006313561A (ja) | データ処理装置 | |
| JPH09198272A (ja) | エミュレーション用プロセッサおよびエミュレータ | |
| JPH08255096A (ja) | マイクロプロセッサ及びデバッグシステム | |
| JP3323341B2 (ja) | エミュレーション用プロセッサおよびそれを搭載したエミュレータ | |
| US20040153810A1 (en) | Computer system equipped with a BIOS debugging card | |
| US6560698B1 (en) | Register change summary resource | |
| JP2001109708A (ja) | マイクロコンピュータ | |
| JP2002541582A (ja) | エミュレータシステム内のユーザメモリを更新する方法およびシステム | |
| JP3839068B2 (ja) | 半導体集積回路装置 | |
| JP3839835B2 (ja) | データ処理装置及びマイクロコンピュータ | |
| JPH05242008A (ja) | データ処理装置 |