(57)【要約】【課題】  ブレーク要求受付け時における周辺回路の状態を容易且つ正確に確認する。【解決手段】  エバチップ１４内の周辺モジュール２３に設けられた動作設定レジスタ２９に停止制御を許可する指令データが記憶されている場合、周辺モジュール２３の停止制御回路３０は、ＣＰＵ２２がブレーク割り込み要求に対するモニタプログラムの処理を終了するまでの期間、機能回路２６の動作の進行を停止する。また、回路基板１２からのリセット信号ＲＳＴ１によっては、動作設定レジスタ２９、停止制御回路３０、インターフェース回路２７はリセットされず、ＣＰＵ２２は、モニタプログラムを起動することなく、直接ユーザプログラムの実行を開始する。【選択図】  図１
2004280789.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと該ＣＰＵにより制御される周辺回路とが設けられたワンチップマイクロコンピュータの動作をエミュレートするための半導体集積回路装置において、
第１のリセット信号が与えられた場合には、前記ＣＰＵからのリセットベクタアドレスに応じたベクタアドレスを出力し、第２のリセット信号が与えられた場合には、前記ＣＰＵからのリセットベクタアドレスに替えて所定のベクタアドレスを出力するベクタアドレス切替回路と、
前記ＣＰＵと外部回路との間でエミュレーションに関する情報を入出力するインターフェース回路とを備え、
前記ＣＰＵは、前記第１および第２のリセット信号によりリセットされ、
前記インターフェース回路は、前記第２のリセット信号によりリセットされるように構成されていることを特徴とする半導体集積回路装置。
【請求項２】
前記周辺回路は、その本来的な機能を実現するための機能回路に加え、前記ＣＰＵがその命令実行中に発生したブレーク要求を受け付けたことに応じて、当該ブレーク要求に対する処理が終了するまでの期間、前記機能回路の動作の進行を停止するように制御する停止制御回路と、この停止制御回路の動作停止機能を有効化しまたは無効化するための設定情報を記憶する設定情報記憶回路とを備えており、
前記周辺回路の機能回路は、前記第１および第２のリセット信号によりリセットされ、
前記停止制御回路と前記設定情報記憶回路は、前記第２のリセット信号によりリセットされるように構成されていることを特徴とする請求項１記載の半導体集積回路装置。
【請求項３】
ユーザプログラムを格納するためのエミュレーションメモリとモニタプログラムを格納するためのモニタプログラムメモリとを備えていることを特徴とする請求項１または２記載の半導体集積回路装置。
【請求項４】
前記ＣＰＵは、通常動作モードと当該通常動作モードに比べて消費電力が小さい低消費電力動作モードでの動作が可能であって、
前記ＣＰＵが低消費電力動作モードにある期間に外部からブレーク要求信号が入力された場合、低消費電力動作モードから通常動作モードに復帰させるウェイクアップ信号が入力されるのを待って、前記ＣＰＵをブレーク状態に移行させるブレーク要求制御回路を備えていることを特徴とする請求項１ないし３の何れかに記載の半導体集積回路装置。
【請求項５】
前記ブレーク要求制御回路は、前記ＣＰＵが通常動作モードにある期間に前記ブレーク要求信号が入力された場合、そのブレーク要求信号を直ちに前記ＣＰＵに対して出力し、前記ＣＰＵが低消費電力動作モードにある期間に前記ブレーク要求信号が入力された場合、前記ウェイクアップ信号が入力された時に前記ブレーク要求信号を前記ＣＰＵに対して出力するように構成されていることを特徴とする請求項４記載の半導体集積回路装置。
【請求項６】
前記第２のリセット信号によりリセットされるブレーク要求制御レジスタを備え、
前記ブレーク要求制御回路は、前記ＣＰＵが低消費電力動作モードにある期間に外部からブレーク要求信号が入力された場合、前記ブレーク要求制御レジスタの値に応じて、前記ウェイクアップ信号が入力されるのを待ってまたは直ちに前記ＣＰＵをブレーク状態に移行させるように構成されていることを特徴とする請求項４または５記載の半導体集積回路装置。
【請求項７】
前記ＣＰＵが通常動作モードから低消費電力動作モードに移行した後、所定の設定時間が経過した時にウェイクアップ信号を発生させるウェイクアップ信号生成回路を備えていることを特徴とする請求項４ないし６の何れかに記載の半導体集積回路装置。
【請求項８】
前記ウェイクアップ信号生成回路は、
前記ＣＰＵが低消費電力動作モードにある期間カウント動作を行うカウンタと、
前記設定時間に対応した設定カウント値を記憶する記憶回路と、
前記カウンタの値と前記記憶回路の設定カウント値とを比較し、前記カウンタの値が前記設定カウント値に達した時に前記ウェイクアップ信号を出力する比較回路とから構成されていることを特徴とする請求項７記載の半導体集積回路装置。
【請求項９】
ＣＰＵと該ＣＰＵにより制御される周辺回路とからなるワンチップマイクロコンピュータが搭載される回路基板に前記ワンチップマイクロコンピュータの代わりに電気的に接続された状態で前記ワンチップマイクロコンピュータの動作をエミュレートするための半導体集積回路装置を備えてなるマイクロコンピュータ開発支援装置において、
前記半導体集積回路装置によるエミュレーション条件の設定やエミュレーション結果のデータ処理などを行うためのホストを備え、
前記半導体集積回路装置は、
前記ＣＰＵと該ＣＰＵにより制御される周辺回路と、
前記回路基板から第１のリセット信号が与えられた場合には、前記ＣＰＵからのリセットベクタアドレスに応じたユーザプログラムのベクタアドレスを出力し、前記ホストから第２のリセット信号が与えられた場合には、前記ＣＰＵからのリセットベクタアドレスに替えてモニタプログラムのベクタアドレスを出力するベクタアドレス切替回路と、
前記ＣＰＵと外部回路との間でエミュレーションに関する情報を入出力するインターフェース回路とを備え、
前記ＣＰＵは、前記第１および第２のリセット信号によりリセットされ、
前記インターフェース回路は、前記第２のリセット信号によりリセットされるように構成されていることを特徴とするマイクロコンピュータ開発支援装置。
【請求項１０】
前記半導体集積回路装置に内蔵された周辺回路は、その本来的な機能を実現するための機能回路に加え、前記半導体集積回路装置に内蔵されたＣＰＵがその命令実行中に発生したブレーク要求を受け付けたことに応じて、当該ブレーク要求に対する処理が終了するまでの期間、前記機能回路の動作の進行を停止するように制御する停止制御回路と、この停止制御回路の動作停止機能を有効化しまたは無効化するための設定情報を記憶する設定情報記憶回路とを備えており、
前記周辺回路の機能回路は、前記第１および第２のリセット信号によりリセットされ、
前記停止制御回路と設定情報記憶回路は、前記第２のリセット信号によりリセットされるように構成されていることを特徴とする請求項９記載のマイクロコンピュータ開発支援装置。
【請求項１１】
前記半導体集積回路装置は、前記ユーザプログラムを格納するためのエミュレーションメモリと前記モニタプログラムを格納するためのモニタプログラムメモリとを備えていることを特徴とする請求項９または１０記載のマイクロコンピュータ開発支援装置。
【請求項１２】
前記ＣＰＵは、通常動作モードと当該通常動作モードに比べて消費電力が小さい低消費電力動作モードでの動作が可能であって、
前記半導体集積回路装置は、前記ＣＰＵが低消費電力動作モードにある期間に外部からブレーク要求信号が入力された場合、低消費電力動作モードから通常動作モードに復帰させるウェイクアップ信号が入力されるのを待って、前記ＣＰＵをブレーク状態に移行させるブレーク要求制御回路を備えていることを特徴とする請求項９ないし１１の何れかに記載のマイクロコンピュータ開発支援装置。
【請求項１３】
前記ブレーク要求制御回路は、前記ＣＰＵが通常動作モードにある期間に前記ブレーク要求信号が入力された場合、そのブレーク要求信号を直ちに前記ＣＰＵに対して出力し、前記ＣＰＵが低消費電力動作モードにある期間に前記ブレーク要求信号が入力された場合、前記ウェイクアップ信号が入力された時に前記ブレーク要求信号を前記ＣＰＵに対して出力するように構成されていることを特徴とする請求項１２記載のマイクロコンピュータ開発支援装置。
【請求項１４】
前記第２のリセット信号によりリセットされるブレーク要求制御レジスタを備え、
前記ブレーク要求制御回路は、前記ＣＰＵが低消費電力動作モードにある期間に外部からブレーク要求信号が入力された場合、前記ブレーク要求制御レジスタの値に応じて、前記ウェイクアップ信号が入力されるのを待ってまたは直ちに前記ＣＰＵをブレーク状態に移行させるように構成されていることを特徴とする請求項１２または１３記載のマイクロコンピュータ開発支援装置。
【請求項１５】
前記ＣＰＵが通常動作モードから低消費電力動作モードに移行した後、所定の設定時間が経過した時にウェイクアップ信号を発生させるウェイクアップ信号生成回路を備えていることを特徴とする請求項１２ないし１４の何れかに記載のマイクロコンピュータ開発支援装置。
【請求項１６】
前記ウェイクアップ信号生成回路は、
前記ＣＰＵが低消費電力動作モードにある期間カウント動作を行うカウンタと、
前記設定時間に対応した設定カウント値を記憶する記憶回路と、
前記カウンタの値と前記記憶回路の設定カウント値とを比較し、前記カウンタの値が前記設定カウント値に達した時に前記ウェイクアップ信号を出力する比較回路とから構成されていることを特徴とする請求項１５記載のマイクロコンピュータ開発支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワンチップマイクロコンピュータの動作をエミュレートするための半導体集積回路装置および当該半導体集積回路装置を備えてなるマイクロコンピュータ開発支援装置に関する。
【背景技術】
【０００２】
特許文献１に示されるエミュレータは、パワーオンリセットまたは強制リセット後において、ファームウェアを起動させることなくユーザプログラムを起動させて、エミュレータと応用システムに搭載されているＣＰＵとのリアルタイム性を損なわずにデバッグを行うものである。複数のＣＰＵにより構成されたマルチＣＰＵ方式の応用システムにおいて、ＣＰＵと同じ時間でプログラムが起動し、エバリュエーションチップのリセット直後におけるデバッグが行える点に特徴を有している。
【０００３】
特許文献２に示されるインサーキットエミュレータは、ストップモードで発生した割り込み処理の終了後、再実行命令の入力に応じて、スタック領域に待避された戻り番地をダミーの戻り番地に書き換え、そのダミーの戻り番地の領域にストップモードに入れる命令、および次番地の領域にメインルーチンの戻り番地に無条件分岐する命令を書き込むことにより、ユーザプログラムを停止した前のストップモードの状態に戻すものである。
【特許文献１】特開平８−３０４７８号公報
【特許文献２】特許第３４１００２３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
図７は、ＩＣＥ（マイクロコンピュータ開発支援装置）に組み込まれたエバチップの従来構成を示している。このエバチップ１は、ターゲットチップ（図示せず）と同様に、ＣＰＵ２および種々の周辺モジュール３を備えている。また、ＣＰＵ２とＩＣＥ本体（図示せず）との間のインターフェースを行うために、インターフェース回路４を備えている。周辺モジュール３は、データレジスタ、ステータスレジスタ、動作設定レジスタなどのレジスタ３ａ、３ｂ、…を有しており、インターフェース回路４も、データレジスタ、ステータスレジスタ、動作設定レジスタなどのレジスタ４ａ、４ｂ、…を有している。
【０００５】
この従来構成において、ＩＣＥを操作することにより発生するリセット信号とターゲットシステムで発生するリセット信号とは同一のリセット信号ＲＳＴとされている。そして、このリセット信号ＲＳＴは、ＣＰＵ２、周辺モジュール３およびインターフェース回路４に与えられている。
【０００６】
ここで、例えばターゲットシステムでリセット信号が発生した場合、ＣＰＵ２や周辺モジュール３とともにインターフェース回路４もリセットされてしまう。その結果、リセットされるごとに、インターフェース回路４を再設定（初期化）するためにモニタプログラムを起動し直す必要が生じ、実際のターゲットシステムにおいてリセット信号が生じたときの動作タイミングと、上記エバチップ１を用いてエミュレートする場合にリセット信号が生じたときの動作タイミングとが異なったものとなってしまう。
【０００７】
本発明は上記事情に鑑みてなされたもので、その目的は、リセット信号発生直後の動作を正確にエミュレートすることができる半導体集積回路装置および当該半導体集積回路装置を備えてなるマイクロコンピュータ開発支援装置を提供することにある。
【課題を解決するための手段】
【０００８】
請求項１、９に記載した手段によれば、第１のリセット信号が与えられた場合には、ＣＰＵは、そのリセットベクタアドレスに応じたベクタアドレスから（ユーザプログラムの）実行を開始し、第２のリセット信号が与えられた場合には、そのリセットベクタアドレスとは別のベクタアドレスから（モニタプログラムの）実行を開始する。この場合、インターフェース回路は、第１のリセット信号によりリセットされない。従って、例えばターゲットシステムである回路基板から第１のリセット信号が与えられた場合に、インターフェース回路を再設定（初期化）する必要がなく、モニタプログラムを起動することなく（既に起動されているモニタプログラムの管理下において）直接ユーザプログラムの実行を開始することができる。
【０００９】
これにより、実際のターゲットシステムにおいてリセットが生じたときの動作タイミングと、半導体集積回路装置を用いてエミュレートする場合においてリセットが生じたときの動作タイミングとが一致し、リセット信号発生直後の動作を正確に評価することができるようになる。また、第２のリセット信号を与えれば、半導体集積回路装置全体をリセットすることができる。
【００１０】
請求項２、１０に記載した手段によれば、半導体集積回路装置内の周辺回路に設けられた設定情報記憶回路に動作停止機能を有効化する設定情報が記憶されている場合、ＣＰＵがその命令実行中に発生したブレーク要求を受け付けると、それに応じて、当該周辺回路は、当該ブレーク要求に対する処理が終了するまでの期間、機能回路の動作の進行を停止する。従って、半導体集積回路装置がブレーク要求に対するモニタ処理を実行している期間、周辺回路内部のレジスタにはブレーク要求受け付け時の値がそのまま保持されている。評価作業者は、この半導体集積回路装置が実行するモニタ処理を利用して、ブレーク要求受け付け時の周辺回路の動作状態を正確に認識することができる。
【００１１】
ブレーク状態が解除されてＣＰＵがブレーク要求前の動作状態（一般的にはユーザプログラムの実行状態）に復帰すると、周辺回路は停止していた動作の進行を再開する。その結果、ＣＰＵによるユーザプログラムの実行と周辺回路の動作とが同期して、ブレーク要求受付け前の状態と連続性を有して再進行する。従って、本手段を用いることにより、ワンチップマイクロコンピュータの動作をブレークをかけながら継続的且つ正確にエミュレートすることができる。また、周辺回路の停止制御回路と設定情報記憶回路は、第１のリセット信号によりリセットされないため、第１のリセット信号に応じてこれらを再設定（初期化）する目的でモニタプログラムを起動する必要がない。
【００１２】
請求項３、１１に記載した手段によれば、ユーザプログラムを格納するためのエミュレーションメモリとモニタプログラムを格納するためのモニタプログラムメモリとを半導体集積回路装置の外部に設ける必要がない。
【００１３】
請求項４、１２に記載した手段によれば、ＣＰＵが低消費電力動作モードにある期間に外部からブレーク要求信号が入力された場合、そのブレーク要求信号が保留され、その後低消費電力動作モードから通常動作モードに復帰させるウェイクアップ信号が入力されたことを条件としてＣＰＵがブレーク状態に移行する（この制御を、ブレーク保留制御と称す）。
【００１４】
一般に、ＣＰＵは、ウェイクアップ信号を入力するとウェイクアップ要因フラグをセットし、ユーザプログラムでは、そのウェイクアップ要因フラグを参照してウェイクアップ要因を判別するようになっている。ブレーク要求信号が入力された時に直ちにブレーク状態に移行すると、ウェイクアップ要因フラグがセットされていないため、ブレーク点からの再実行時（ブレーク復帰時）に上記ユーザプログラムは想定外の状態と判断することになる。これに対し、本手段によれば、ウェイクアップ要因フラグがセットされた後にブレーク状態に移行するので、従来から用いられているユーザプログラムを用いても、ブレーク復帰時に正常に動作を継続できる。
【００１５】
請求項５、１３に記載した手段によれば、ＣＰＵが通常動作モードにある期間にブレーク要求信号が入力されると、そのブレーク要求信号は直ちにＣＰＵに与えられ、ＣＰＵはブレーク状態に移行する。一方、ＣＰＵが低消費電力動作モードにある期間にブレーク要求信号が入力されると、そのブレーク要求信号はウェイクアップ信号が入力された時にＣＰＵに与えられ、ＣＰＵはブレーク状態に移行する。
【００１６】
請求項６、１４に記載した手段によれば、ブレーク要求制御レジスタの値に従って、上記ブレーク保留制御の実行を許可しまたは禁止することができる。例えば、ブレーク要求信号を入力してからＣＰＵがブレーク状態に移行するまでの時間が、後述のタイムアウト時間との関係上許容されないような用途では、予めブレーク要求制御レジスタに「禁止」をセットしておけばよい。
【００１７】
請求項７、１５に記載した手段によれば、ＣＰＵが低消費電力動作モードにある期間、通信や端子入力などにより発生する通常のウェイクアップ信号の他に、ウェイクアップ信号生成回路による内部のウェイクアップ信号が発生する。従って、低消費電力動作モードにおいてブレーク要求信号が入力された場合、ＣＰＵは、通常のウェイクアップ信号が入力されるまで待つことなく、上記内部のウェイクアップ信号によりブレーク状態に移行することができる。低消費電力動作モードに移行してから上記内部のウェイクアップ信号が発生するまでの設定時間は、例えばマイクロコンピュータ開発支援装置のホスト側で管理するブレーク要求に対するタイムアウト時間よりも短く設定すればよい。
【００１８】
請求項８、１６に記載した手段によれば、ウェイクアップ信号生成回路は、低消費電力動作モードにある期間カウント動作を行うカウンタの値と、記憶回路に記憶された設定カウント値とを比較し、カウンタの値が設定カウント値に達した時にウェイクアップ信号を出力する。プログラムにおいて記憶回路（例えばレジスタ）の設定カウント値を書き換える命令を加えることにより、上記設定時間を容易に変更することができる。
【発明を実施するための最良の形態】
【００１９】
（第１の実施形態）
以下、本発明の第１の実施形態について図１ないし図３を参照しながら説明する。
図１は、評価システム全体の電気的構成を示す機能ブロック図である。ターゲットシステムとなる回路基板１２は、評価対象のワンチップマイクロコンピュータ（以下、マイコンと称す）が搭載される基板であり、例えば車両のＥＣＵ(Electric Control Unit) に収容されて用いられるものである。マイクロコンピュータ開発支援装置であるＩＣＥ１１(In Circuit Emulator) は、このマイコンの動作をエミュレートするために用いられる。
【００２０】
回路基板１２において評価対象のマイコンが搭載される部分には、当該マイコンに代えてソケット（図示せず）が搭載されている。そのソケットには、ＩＣＥ本体から延びるエミュレーションケーブルの先端に配置されたＰＯＤ１３（プローブ）が接続されるようになっている。後述するエバチップ１４は、これらエミュレーションケーブルおよびＰＯＤ１３を介して回路基板１２に電気的に接続されるようになっている。
【００２１】
ＩＣＥ１１は、マイコンの動作をエミュレートするエバチップ１４（半導体集積回路装置に相当）、メモリ部１５、およびＩＣＥコントローラ１６を介して繋がるパソコン１７（ホストに相当）から構成されている。メモリ部１５は、エバチップ１４との間でデータを高速にやり取りするためのインターフェース回路１８を備えており、このインターフェース回路１８にはエミュレーションメモリ１９、モニタプログラムメモリ２０、トレースメモリ２１が接続されている。
【００２２】
エミュレーションメモリ１９は、パソコン１７からダウンロードしたユーザプログラムを格納するためのメモリ（ＲＡＭ）である。モニタプログラムメモリ２０は、エバチップ１４が実行するモニタプログラム（評価用プログラム、エミュレーションプログラム）が格納されるものであり、ＲＯＭまたはＲＡＭにより構成されている。ＲＡＭとして構成されている場合、モニタプログラムは、エミュレーションを実行するのに先立ってパソコン１７からダウンロードされるようになっている。
【００２３】
トレースメモリ２１は、トレースモードでのエミュレーションを実行するときに、その実行した命令が実行順に書き込まれて記憶されるようになっている。また、エバチップ１４に内蔵されているプログラムカウンタや、割り込み要求フラグ、命令実行許可フラグなどの内蔵レジスタに関する情報なども記憶されるようになっている。
【００２４】
エバチップ１４は、最終的に回路基板１２に搭載されるマイコンと同様にＣＰＵ２２、各種の周辺モジュール２３（図１には１つのみを示している）、周波数逓倍回路２４およびＲＡＭ２５を備えている。周辺モジュール２３（周辺回路に相当）は、タイマ、カウンタ、入出力ポート、シリアル通信部、Ａ／Ｄ変換器、Ｄ／Ａ変換器などを構成する機能回路２６を備え、データレジスタや動作設定レジスタなどの種々のレジスタ２６ａ、２６ｂ、２６ｃ、…は、図示しないアドレスバスとデータバスによりＣＰＵ２２と接続されている。周波数逓倍回路２４は、エバチップ１４の外から入力される基本クロックを逓倍して生成したクロックＣＫをＣＰＵ２２、周辺モジュール２３、後述するインターフェース回路２７などに供給するようになっている。
【００２５】
さらに、エバチップ１４には、メモリ部１５とＣＰＵ２２との間でデータを高速にやり取りするためのインターフェース回路２７が設けられている。このインターフェース回路２７は、入出力に係る動作モード等を設定するためのレジスタ２７ａ、２７ｂ、…を備えている。また、ＣＰＵ２２がリセットされた場合に、ＣＰＵ２２から出力されたリセットベクタの切り替えを制御するベクタアドレス切替回路２８を備えている。
【００２６】
上記周辺モジュール２３のうち、タイマ、非同期シリアル通信部など、動作を一時的に停止させても内部エラーが発生しないようなものには、動作設定レジスタ２９と停止制御回路３０とが設けられている。停止制御回路３０は、ＣＰＵ２２からブレーク処理信号ＢＫが入力されている期間、当該周辺モジュール２３内の機能回路２６の動作の進行を停止させるように機能する。例えばタイマであれば、ブレーク処理信号ＢＫが入力されている期間タイマの計時動作が停止して、ブレーク処理信号ＢＫの入力直前のタイマ値が保持される。ブレーク処理信号ＢＫは、ＣＰＵ２２がユーザプログラムの実行中にブレーク割り込み要求（ブレーク要求信号）を受け付けた時に出力され、そのブレーク割り込み処理が終了するまでの期間出力され続ける。
【００２７】
動作設定レジスタ２９は、この停止制御回路３０の機能を許可（有効化）するか禁止（無効化）するかの指令データを記憶するものである。この指令データは、ＣＰＵ２２によって書き込まれる。停止制御回路３０は、この動作設定レジスタ２９の指令データが「許可」である場合に限り上記停止制御を実行するようになっている。
【００２８】
エバチップ１４に対しては、２系統のリセット信号ＲＳＴ１、ＲＳＴ２が入力されるようになっている。第１のリセット信号ＲＳＴ１は、回路基板１２からＰＯＤ１３およびエミュレーションケーブルを介して入力されるターゲットリセットの信号で、第２のリセット信号ＲＳＴ２は、ＩＣＥ１１本体でユーザのリセット操作等によって入力されるＩＣＥリセットの信号である。
【００２９】
ＣＰＵ２２および周辺モジュール２３の機能回路２６（レジスタ２６ａ、２６ｂ、２６ｃ、…を含む）のリセット端子には、リセット信号ＲＳＴ１とＲＳＴ２がＯＲゲート３１を介して与えられており、これらＣＰＵ２２および周辺モジュール２３の機能回路２６は、リセット信号ＲＳＴ１とＲＳＴ２の何れによってもリセットされるようになっている。一方、周辺モジュール２３の動作設定レジスタ２９と停止制御回路３０およびインターフェース回路１８、２７（レジスタ２７ａ、２７ｂ、…を含む）は、リセット信号ＲＳＴ２によってのみリセットされるようになっている。
【００３０】
次に、本実施形態の本実施例の作用について図２および図３も参照しながら説明する。
ユーザは、パソコン１７上でＩＣＥ用のソフトウェアを起動し、モニタプログラムをＩＣＥ１１のモニタプログラムメモリ２０にダウンロードする。続いて、ターゲットシステム用に開発した評価対象であるユーザプログラムをエミュレーションメモリ１９にダウンロードする。この状態でＩＣＥ１１本体をリセット操作するとリセット信号ＲＳＴ２が発生し、エバチップ１４全体およびインターフェース回路１８がリセットされる。
【００３１】
図２（ａ）に示すように、エバチップ１４内部に設けた遅延回路（図示せず）により所定の発振安定待ち時間が経過すると、ＣＰＵ２２が起動し、リセットベクタをアドレスバスを通してベクタアドレス切替回路２８に出力する。ベクタアドレス切替回路２８にはリセット信号ＲＳＴ１とＲＳＴ２とが入力されており、当該リセットの種類（ターゲットリセット、ＩＣＥリセット）によってベクタアドレスを切り替える。ここでは、リセット信号ＲＳＴ２によるＩＣＥリセットであるため、ベクタアドレス切替回路２８は、ＣＰＵ２２からの（ユーザプログラムの）ベクタアドレスに替えてモニタプログラムの先頭アドレスを指示するベクタアドレスを出力する。その結果、ＣＰＵ２２は、モニタプログラムの実行を開始する。
【００３２】
図２（ｂ）は、ＣＰＵ２２の処理内容を示すフローチャートである。ＣＰＵ２２は、起動したモニタプログラムに従って、インターフェース回路２７内のレジスタ２７ａ、２７ｂ、…に対し、所定の動作設定データを書き込む（ステップＳ１）。続いて、周辺モジュール２３の動作設定レジスタ２９に、停止制御回路３０の機能を許可するための指令データを書き込む（ステップＳ２）。以上の初期設定が完了すると、ユーザプログラムの実行を開始する（ステップＳ３）。なお、通常のユーザプログラムは、その実行開始直後において、ＣＰＵ２２、機能回路２６（レジスタ２６ａ、２６ｂ、２６ｃ、…）、ＲＡＭ２５などの初期設定を行うようになっている。
【００３３】
その後、ユーザ（評価作業者）は、ブレーク条件を設定しながらターゲットシステムのデバッグを行っていく。ブレーク条件として、ブレークアドレスの他、命令フェッチサイクル／データアクセスサイクル、リードサイクル／ライトサイクル、バイトアクセス／ワードアクセスなどの条件を設定することができる。
【００３４】
命令実行中に設定したブレーク条件が成立すると、ＣＰＵ２２にブレーク割り込み要求が発生する。ＣＰＵ２２は、その割り込み要求を受け付けると、上記モニタプログラムの実行に移行する。この状態で、ユーザは、パソコン１７を操作しながらそのモニタ画面上でＣＰＵ２２内のレジスタ、ＲＡＭ２５、レジスタ２６ａ、２６ｂ、２６ｃ、…の値などを確認することが可能となる。確認終了後、パソコン１７から「ＧＯ」コマンドを入力すると、ＣＰＵ２２は割り込み処理からリターンして再びユーザプログラムの実行を開始する。
【００３５】
図３は、周辺モジュール２３の一例としてタイマを想定した場合におけるＣＰＵ２２と当該タイマの動作を示すタイミングチャート（ａ）と、従来構成（図７参照）のエバチップ１に係るタイミングチャート（ｂ）である。図３（ａ）において、ＣＰＵ２２がブレーク割り込み要求を受け付けた後リターンするまでの期間（つまりモニタプログラムの実行中）、ＣＰＵ２２はＨレベルのブレーク処理信号ＢＫを出力する。
【００３６】
上述したように周辺モジュール２３の動作設定レジスタ２９には「許可」指令データが書き込まれているので、停止制御回路３０は、ブレーク処理信号ＢＫがＨレベルになるとタイマの計時動作を停止させる。このとき、タイマ値はブレーク処理信号ＢＫがＨレベルになる直前の値のまま保持される。そして、ブレーク処理信号ＢＫがＬレベルに戻ると、停止制御回路３０はタイマの計時動作を再開させ、タイマ値はそれまで保持されていた値から再び変化を開始する。なお、動作設定レジスタ２９に、停止制御回路３０の機能を禁止するための指令データが記憶されている場合には、ブレーク処理信号ＢＫが入力されていても機能回路２６の動作の進行は停止せず、図３（ｂ）に示すようにタイマ値は増加する。
【００３７】
こうしたデバッグ作業において、回路基板１２からリセット信号ＲＳＴ１を与えると、ＣＰＵ２２と周辺モジュール２３の機能回路２６（上述の例で言えばタイマ回路）がリセットされる。この場合、ベクタアドレス切替回路２８は、ＣＰＵ２２から出力されるベクタアドレス、すなわちユーザプログラムの先頭アドレスを指示するベクタアドレスをそのまま出力する。その結果、ＣＰＵ２２は、モニタプログラムではなくユーザプログラムの実行を開始する。このリセット信号ＲＳＴ１が与えられたときのユーザプログラムの実行開始タイミングは、実際のターゲットシステムにおけるリセット後のユーザプログラムの実行開始タイミングと等しくなる。
【００３８】
このように、ターゲットリセットの後、モニタプログラムを介さずに直接ユーザプログラムの実行を開始できるのは、当該リセットによっては動作設定レジスタ２９、停止制御回路３０およびインターフェース回路１８、２７がリセットされないためである。なお、ＩＣＥ１１の電源オンの場合またはＩＣＥ１１のシステムリセットの場合には、エバチップ１４の全体がリセットされ、上述したようにモニタプログラムが起動される。
【００３９】
以上説明したように、本実施形態によれば、エバチップ１４には２系統のリセット信号ＲＳＴ１、ＲＳＴ２が入力され、ＣＰＵ２２は、リセット信号ＲＳＴ１が与えられた場合にはユーザプログラムの実行を開始し、リセット信号ＲＳＴ２が与えられた場合にはモニタプログラムの実行を開始する。また、周辺モジュール２３の動作設定レジスタ２９と停止制御回路３０とは、リセット信号ＲＳＴ１によりリセットされない。従って、ターゲットシステムである回路基板１２からリセット信号ＲＳＴ１が与えられた場合には、モニタプログラムを起動することなく、（既に起動されているモニタプログラムの管理下において）直接ユーザプログラムの実行を開始することができる。
【００４０】
その結果、実際のターゲットシステムにおいてリセット信号が生じたときの動作タイミングと、エバチップ１４を用いてエミュレートする場合においてリセット信号ＲＳＴ１が生じたときの動作タイミングとが一致し、リセット直後の動作を正確に評価することができるようになる。
【００４１】
また、エバチップ１４内の周辺モジュール２３に設けられた動作設定レジスタ２９に停止制御を許可する指令データが記憶されている場合、ＣＰＵ２２がブレーク割り込み要求を受け付けると、周辺モジュール２３の停止制御回路３０は、当該ブレーク割り込み要求に対するモニタプログラムの処理が終了するまでの期間、機能回路２６の動作の進行を停止する。従って、ユーザは、このエバチップ１４が実行するモニタ機能を利用して、ブレーク割り込み要求の受け付け時における周辺モジュール２３の動作状態を正確に把握することができる。
【００４２】
さらに、ブレーク状態が解除されてＣＰＵ２２がブレーク要求前のユーザプログラムの実行状態に復帰すると、機能回路２６は、停止していた動作の進行を再開する。その結果、ＣＰＵ２２によるユーザプログラムの実行と周辺モジュール２３の動作とが同期して、ブレーク要求受付け前の状態と連続性を有して再進行する。従って、ＩＣＥ１１を用いることにより、マイコンの動作をブレークをかけながら継続的且つ正確にエミュレートすることができる。
【００４３】
（第２の実施形態）
次に、第１の実施形態に対しブレーク要求処理回路を追加した第２の実施形態について図４ないし図６を参照しながら説明する。
図４は、図１に示すエバチップ１４内に追加して設けられるブレーク要求処理回路の電気的構成図である。ＣＰＵ２２は、周波数逓倍回路２４からクロックＣＫの供給を受けて動作する通常動作モードの他に、クロックＣＫの供給が停止した状態で待機する低消費電力動作モード（スリープモード）を有している。この低消費電力動作モードでは、メインクロックＣＫが停止し、周辺モジュール２３の動作も停止する。
【００４４】
ＣＰＵ２２は、割り込み等により低消費電力動作モードに移行し、通信やインプットキャプチャなどのウェイクアップ要因が生じたことにより通常動作モードに復帰（ウェイクアップ）するようになっている。ＣＰＵ２２内には、発生した各ウェイクアップ要因を記憶するためのウェイクアップ要因フラグからなるウェイクアップレジスタが設けられており、プログラム中で当該ウェイクアップレジスタを参照することにより、ウェイクアップ要因を判別でき、ウェイクアップ要因に応じた処理を行うことができる。
【００４５】
ブレーク要求制御回路３２は、通常動作モードにある期間にＩＣＥコントローラ１６からブレーク要求信号が入力された場合、ブレーク要求制御レジスタ３３の値にかかわらず、そのブレーク要求信号を直ちにＣＰＵ２２に対して出力するようになっている。
一方、ブレーク要求制御回路３２は、低消費電力動作モードにある期間にＩＣＥコントローラ１６からブレーク要求信号が入力された場合、ブレーク要求制御レジスタ３３に「１」（許可）が書き込まれていると、その後何れかのウェイクアップ信号が入力された時にブレーク要求信号をＣＰＵ２２に対して出力するようになっている。
【００４６】
逆に、ブレーク要求制御レジスタ３３に「０」（禁止）が書き込まれていると、こうしたブレーク保留制御は行わず、そのブレーク要求信号を直ちにＣＰＵ２２に対して出力するようになっている。なお、ブレーク要求制御回路３２は、リセット信号ＲＳＴ２によりリセットされるようになっている。
【００４７】
ウェイクアップ信号生成回路３８は、カウンタ３４、時間設定レジスタ３６および比較回路３７により構成されている。カウンタ３４は、通常動作モードにある期間はカウント値を０としたままカウントを停止し、低消費電力動作モードにある期間は、サブクロック発生回路３５で生成されるサブクロックをアップカウントするようになっている。このサブクロック発生回路３５は、低消費電力動作モードにおいても発振を継続するＣＲ発振回路により構成されている。
【００４８】
時間設定レジスタ３６（記憶回路に相当）は、後述する設定時間Ｔ１に対応した設定カウント値Ｎ１を記憶するもので、比較回路３７は、カウンタ３４のカウント値Ｎが設定カウント値Ｎ１以上となった時にウェイクアップ信号を出力するようになっている。
通信やインプットキャプチャなどのウェイクアップ信号および比較回路３７からのウェイクアップ信号は、ＯＲ回路３９に入力されており、このＯＲ回路３９から出力される統合されたウェイクアップ信号がＣＰＵ２２に与えられるようになっている。なお、ウェイクアップ信号生成回路３８は、ＩＣＥがブレークコマンドの入力に対するタイムアウトを管理していないような場合には、設ける必要がない。
【００４９】
次に、本実施形態の作用、効果を説明する。
まず、図５に示すタイミングチャートを参照しながら、ブレーク要求制御回路３２の動作を説明する。図５（ａ）は、ブレーク要求制御レジスタ３３に「１」（ブレーク保留制御の許可）が書き込まれている場合のタイミングチャートで、（ｂ）はブレーク要求制御レジスタ３３に「０」（ブレーク保留制御の禁止）が書き込まれている場合のタイミングチャートである。
【００５０】
（ａ）ブレーク保留制御が許可されている場合
ＣＰＵ２２がユーザプログラムを実行している状態（実行状態Ａ）で低消費電力動作モードに移行した後、ＩＣＥコントローラ１６からブレーク要求信号が入力されると、ブレーク要求制御回路３２は、何れかのウェイクアップ要因が発生するまでブレーク要求信号を保留する。そして、ウェイクアップ信号が発生すると、そのブレーク要求信号をＣＰＵ２２に対して出力し、ＣＰＵ２２はブレーク状態に移行する。
【００５１】
その後、ユーザ（評価作業者）がパソコン１７から「ＧＯ」コマンドを入力すると、ＣＰＵ２２はウェイクアップレジスタを参照してウェイクアップ要因を特定し、そのウェイクアップ要因に応じた処理を実行する（実行状態Ｂ）。この状態からリターンすると、ＣＰＵ２２は、上記実行状態Ａにおいて中断された処理からユーザプログラムの実行を再開する（実行状態Ｃ）。
【００５２】
（ｂ）ブレーク保留制御が禁止されている場合
低消費電力動作モードに移行した後、ＩＣＥコントローラ１６からブレーク要求信号が入力されると、ブレーク要求制御回路３２は、直ちにブレーク要求信号をＣＰＵ２２に対して出力し、ＣＰＵ２２はブレーク状態に移行する。その後、ユーザ（評価作業者）がパソコン１７から「ＧＯ」コマンドを入力すると、ＣＰＵ２２はウェイクアップレジスタを参照する。しかし、ウェイクアップ要因は発生していないため、ユーザプログラムのエラー処理に移行する。ただし、何れのウェイクアップ要因も発生していない場合をエラーとしないようにユーザプログラムが作られている場合には、（ａ）と同様に実行状態Ｃに戻すこともできる。
【００５３】
このように、低消費電力動作モードにおけるブレーク保留制御を許可すると、ＣＰＵ２２は何れかのウェイクアップ要因が発生するのを待ってブレーク状態に移行するので、「ＧＯ」コマンドが入力された場合のウェイクアップ処理において、何れかのウェイクアップレジスタの何れかのビット（ウェイクアップ要因フラグ）がセットされた状態となる。このため、ユーザは、ウェイクアップ処理に移行したにもかかわらず、何れのウェイクアップ要因フラグもセットされていない例外的な場合（マイコンの単独動作では通常あり得ない）を考慮することなく、プログラムを作成することができる。ただし、このような例外的な場合についても処理可能なようにユーザプログラムを作成した場合には、ブレーク要求制御レジスタ３３に「０」を書き込むことにより、ブレークコマンドの入力直後にＣＰＵ２２をブレーク状態に移行させることができる。
【００５４】
続いて、図６に示すタイミングチャートを参照しながら、ウェイクアップ信号生成回路３８の動作を説明する。図６（ａ）は、本実施形態のタイミングチャートで、（ｂ）はウェイクアップ信号生成回路３８が設けられていない場合のタイミングチャートである。
上述したブレーク保留制御を許可した場合、低消費電力動作モード中にブレーク要求信号の入力があっても、何れかのウェイクアップ要因が発生するまで、ＣＰＵ２２はブレーク状態に遷移することができない。しかし、マイクロコンピュータ開発支援装置（ＩＣＥ）の中には、ブレークコマンドの入力からブレークの受け付けまでの時間を管理しているものがあり、図６（ｂ）に示すようにタイムアウト時間Ｔｏを超えるとタイムアウトエラーが生じる。
【００５５】
そこで、本実施形態では、通常動作モードから低消費電力動作モードに移行してから設定時間Ｔ１（＜Ｔｏ）が経過した時に強制的にウェイクアップ信号を発生させ、ＣＰＵ２２をブレーク状態に遷移させている。具体的には、低消費電力動作モードに移行すると、カウンタ３４がサブクロックを０からアップカウントし、そのカウント値Ｎが設定時間Ｔ１に対応した設定カウント値Ｎ１（図６（ａ）では１５に設定されている）に達した時に、比較回路３７がウェイクアップ信号を出力する。
【００５６】
その結果、上記設定時間Ｔ１をタイムアウト時間Ｔｏよりも小さく設定しておくことにより、通信やインプットキャプチャなどの通常のウェイクアップ要因が発生しない場合でも、ＩＣＥのタイムアウト時間Ｔｏ内に確実に内部的なウェイクアップ要因が発生し、ブレーク要求信号に応じてブレーク状態に遷移させることができる。なお、低消費電力動作モードに移行した後、ブレーク要求信号が入力されることがないまま上記内部的なウェイクアップ要因が発生した場合およびブレーク要求信号は入力されたが通信や端子入力などにより発生する通常のウェイクアップ信号が発生しないまま上記内部的なウェイクアップ要因が発生した場合には、一旦ユーザプログラムの実行状態に戻った後、内部的なウェイクアップ要因でウェイクアップしたことをウェイクアップ要因フラグにより判断し、再度低消費電力動作モードに移行させればよい。
【００５７】
（その他の実施形態）
本発明は上記し且つ図面に示す各実施形態に限定されるものではなく、例えば以下のように変形または拡張が可能である。
設定情報記憶回路は、動作設定レジスタ２９のみならず、メモリや外部からエバチップ１４に印加する信号を記憶するハードウェア回路などにより構成してもよい。
【００５８】
停止制御回路が機能回路２６の動作の進行を停止させる手段としては、例えばタイマの場合、クロックＣＫとタイマ（カウンタ）との間にゲート回路を設け、停止制御回路からの許可／停止信号によりゲート回路を開閉する構成が考えられる。
インターフェース回路２７とベクタアドレス切替回路２８とは独立した構成としてもよい。
エミュレーションメモリ１９とモニタプログラムメモリ２０をＲＡＭまたはフラッシュメモリにより構成してエバチップ１４内に設けてもよい。
【００５９】
第２の実施形態において、低消費電力動作モード中にブレーク要求信号の入力があった時に、カウンタ３４がカウントを開始するように構成してもよい。また、ブレーク要求制御レジスタ３３は適宜設ければよい。さらに、ブレーク要求制御レジスタ３３の値（０／１）とブレーク保留制御の禁止／許可との対応関係は、上述したものとは逆の関係つまり「０」が許可、「１」が禁止であってもよい。
【図面の簡単な説明】
【００６０】
【図１】本発明の第１の実施形態を示すＩＣＥ全体の電気的構成図
【図２】（ａ）はＩＣＥのリセット後の動作を示すフローチャート、（ｂ）はＣＰＵの処理内容を示すフローチャート
【図３】ＣＰＵとタイマの動作を示すタイミングチャート
【図４】本発明の第２の実施形態を示すブレーク要求処理回路の電気的構成図
【図５】低消費電力動作モード中にブレーク要求信号が入力された場合のタイミングチャート
【図６】図５相当図
【図７】従来技術を示すエバチップの概略的な電気的構成図
【符号の説明】
【００６１】
１１はＩＣＥ（マイクロコンピュータ開発支援装置）、１４はエバチップ（半導体集積回路装置）、１７はパソコン（ホスト）、２２はＣＰＵ、２３は周辺モジュール（周辺回路）、２６は機能回路、２７はインターフェース回路、２８はベクタアドレス切替回路、２９は動作設定レジスタ（設定情報記憶回路）、３０は停止制御回路、３２はブレーク要求制御回路、３３はブレーク要求制御レジスタ、３４はカウンタ、３６は時間設定レジスタ（記憶回路）、３７は比較回路、３８はウェイクアップ信号生成回路である。
【図１】
2004280789.tif 000003
【図２】
2004280789.tif 000004
【図３】
2004280789.tif 000005
【図４】
2004280789.tif 000006
【図５】
2004280789.tif 000007
【図６】
2004280789.tif 000008
【図７】
2004280789.tif 000009