JP2004280789A - 半導体集積回路装置およびマイクロコンピュータ開発支援装置 - Google Patents
半導体集積回路装置およびマイクロコンピュータ開発支援装置 Download PDFInfo
- Publication number
- JP2004280789A JP2004280789A JP2004006828A JP2004006828A JP2004280789A JP 2004280789 A JP2004280789 A JP 2004280789A JP 2004006828 A JP2004006828 A JP 2004006828A JP 2004006828 A JP2004006828 A JP 2004006828A JP 2004280789 A JP2004280789 A JP 2004280789A
- Authority
- JP
- Japan
- Prior art keywords
- cpu
- circuit
- reset
- signal
- operation mode
- 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
Images
Landscapes
- Microcomputers (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
【課題】 ブレーク要求受付け時における周辺回路の状態を容易且つ正確に確認する。
【解決手段】 エバチップ14内の周辺モジュール23に設けられた動作設定レジスタ29に停止制御を許可する指令データが記憶されている場合、周辺モジュール23の停止制御回路30は、CPU22がブレーク割り込み要求に対するモニタプログラムの処理を終了するまでの期間、機能回路26の動作の進行を停止する。また、回路基板12からのリセット信号RST1によっては、動作設定レジスタ29、停止制御回路30、インターフェース回路27はリセットされず、CPU22は、モニタプログラムを起動することなく、直接ユーザプログラムの実行を開始する。
【選択図】 図1
【解決手段】 エバチップ14内の周辺モジュール23に設けられた動作設定レジスタ29に停止制御を許可する指令データが記憶されている場合、周辺モジュール23の停止制御回路30は、CPU22がブレーク割り込み要求に対するモニタプログラムの処理を終了するまでの期間、機能回路26の動作の進行を停止する。また、回路基板12からのリセット信号RST1によっては、動作設定レジスタ29、停止制御回路30、インターフェース回路27はリセットされず、CPU22は、モニタプログラムを起動することなく、直接ユーザプログラムの実行を開始する。
【選択図】 図1
Description
本発明は、ワンチップマイクロコンピュータの動作をエミュレートするための半導体集積回路装置および当該半導体集積回路装置を備えてなるマイクロコンピュータ開発支援装置に関する。
特許文献1に示されるエミュレータは、パワーオンリセットまたは強制リセット後において、ファームウェアを起動させることなくユーザプログラムを起動させて、エミュレータと応用システムに搭載されているCPUとのリアルタイム性を損なわずにデバッグを行うものである。複数のCPUにより構成されたマルチCPU方式の応用システムにおいて、CPUと同じ時間でプログラムが起動し、エバリュエーションチップのリセット直後におけるデバッグが行える点に特徴を有している。
特許文献2に示されるインサーキットエミュレータは、ストップモードで発生した割り込み処理の終了後、再実行命令の入力に応じて、スタック領域に待避された戻り番地をダミーの戻り番地に書き換え、そのダミーの戻り番地の領域にストップモードに入れる命令、および次番地の領域にメインルーチンの戻り番地に無条件分岐する命令を書き込むことにより、ユーザプログラムを停止した前のストップモードの状態に戻すものである。
特開平8−30478号公報
特許第3410023号公報
図7は、ICE(マイクロコンピュータ開発支援装置)に組み込まれたエバチップの従来構成を示している。このエバチップ1は、ターゲットチップ(図示せず)と同様に、CPU2および種々の周辺モジュール3を備えている。また、CPU2とICE本体(図示せず)との間のインターフェースを行うために、インターフェース回路4を備えている。周辺モジュール3は、データレジスタ、ステータスレジスタ、動作設定レジスタなどのレジスタ3a、3b、…を有しており、インターフェース回路4も、データレジスタ、ステータスレジスタ、動作設定レジスタなどのレジスタ4a、4b、…を有している。
この従来構成において、ICEを操作することにより発生するリセット信号とターゲットシステムで発生するリセット信号とは同一のリセット信号RSTとされている。そして、このリセット信号RSTは、CPU2、周辺モジュール3およびインターフェース回路4に与えられている。
ここで、例えばターゲットシステムでリセット信号が発生した場合、CPU2や周辺モジュール3とともにインターフェース回路4もリセットされてしまう。その結果、リセットされるごとに、インターフェース回路4を再設定(初期化)するためにモニタプログラムを起動し直す必要が生じ、実際のターゲットシステムにおいてリセット信号が生じたときの動作タイミングと、上記エバチップ1を用いてエミュレートする場合にリセット信号が生じたときの動作タイミングとが異なったものとなってしまう。
本発明は上記事情に鑑みてなされたもので、その目的は、リセット信号発生直後の動作を正確にエミュレートすることができる半導体集積回路装置および当該半導体集積回路装置を備えてなるマイクロコンピュータ開発支援装置を提供することにある。
請求項1、9に記載した手段によれば、第1のリセット信号が与えられた場合には、CPUは、そのリセットベクタアドレスに応じたベクタアドレスから(ユーザプログラムの)実行を開始し、第2のリセット信号が与えられた場合には、そのリセットベクタアドレスとは別のベクタアドレスから(モニタプログラムの)実行を開始する。この場合、インターフェース回路は、第1のリセット信号によりリセットされない。従って、例えばターゲットシステムである回路基板から第1のリセット信号が与えられた場合に、インターフェース回路を再設定(初期化)する必要がなく、モニタプログラムを起動することなく(既に起動されているモニタプログラムの管理下において)直接ユーザプログラムの実行を開始することができる。
これにより、実際のターゲットシステムにおいてリセットが生じたときの動作タイミングと、半導体集積回路装置を用いてエミュレートする場合においてリセットが生じたときの動作タイミングとが一致し、リセット信号発生直後の動作を正確に評価することができるようになる。また、第2のリセット信号を与えれば、半導体集積回路装置全体をリセットすることができる。
請求項2、10に記載した手段によれば、半導体集積回路装置内の周辺回路に設けられた設定情報記憶回路に動作停止機能を有効化する設定情報が記憶されている場合、CPUがその命令実行中に発生したブレーク要求を受け付けると、それに応じて、当該周辺回路は、当該ブレーク要求に対する処理が終了するまでの期間、機能回路の動作の進行を停止する。従って、半導体集積回路装置がブレーク要求に対するモニタ処理を実行している期間、周辺回路内部のレジスタにはブレーク要求受け付け時の値がそのまま保持されている。評価作業者は、この半導体集積回路装置が実行するモニタ処理を利用して、ブレーク要求受け付け時の周辺回路の動作状態を正確に認識することができる。
ブレーク状態が解除されてCPUがブレーク要求前の動作状態(一般的にはユーザプログラムの実行状態)に復帰すると、周辺回路は停止していた動作の進行を再開する。その結果、CPUによるユーザプログラムの実行と周辺回路の動作とが同期して、ブレーク要求受付け前の状態と連続性を有して再進行する。従って、本手段を用いることにより、ワンチップマイクロコンピュータの動作をブレークをかけながら継続的且つ正確にエミュレートすることができる。また、周辺回路の停止制御回路と設定情報記憶回路は、第1のリセット信号によりリセットされないため、第1のリセット信号に応じてこれらを再設定(初期化)する目的でモニタプログラムを起動する必要がない。
請求項3、11に記載した手段によれば、ユーザプログラムを格納するためのエミュレーションメモリとモニタプログラムを格納するためのモニタプログラムメモリとを半導体集積回路装置の外部に設ける必要がない。
請求項4、12に記載した手段によれば、CPUが低消費電力動作モードにある期間に外部からブレーク要求信号が入力された場合、そのブレーク要求信号が保留され、その後低消費電力動作モードから通常動作モードに復帰させるウェイクアップ信号が入力されたことを条件としてCPUがブレーク状態に移行する(この制御を、ブレーク保留制御と称す)。
一般に、CPUは、ウェイクアップ信号を入力するとウェイクアップ要因フラグをセットし、ユーザプログラムでは、そのウェイクアップ要因フラグを参照してウェイクアップ要因を判別するようになっている。ブレーク要求信号が入力された時に直ちにブレーク状態に移行すると、ウェイクアップ要因フラグがセットされていないため、ブレーク点からの再実行時(ブレーク復帰時)に上記ユーザプログラムは想定外の状態と判断することになる。これに対し、本手段によれば、ウェイクアップ要因フラグがセットされた後にブレーク状態に移行するので、従来から用いられているユーザプログラムを用いても、ブレーク復帰時に正常に動作を継続できる。
請求項5、13に記載した手段によれば、CPUが通常動作モードにある期間にブレーク要求信号が入力されると、そのブレーク要求信号は直ちにCPUに与えられ、CPUはブレーク状態に移行する。一方、CPUが低消費電力動作モードにある期間にブレーク要求信号が入力されると、そのブレーク要求信号はウェイクアップ信号が入力された時にCPUに与えられ、CPUはブレーク状態に移行する。
請求項6、14に記載した手段によれば、ブレーク要求制御レジスタの値に従って、上記ブレーク保留制御の実行を許可しまたは禁止することができる。例えば、ブレーク要求信号を入力してからCPUがブレーク状態に移行するまでの時間が、後述のタイムアウト時間との関係上許容されないような用途では、予めブレーク要求制御レジスタに「禁止」をセットしておけばよい。
請求項7、15に記載した手段によれば、CPUが低消費電力動作モードにある期間、通信や端子入力などにより発生する通常のウェイクアップ信号の他に、ウェイクアップ信号生成回路による内部のウェイクアップ信号が発生する。従って、低消費電力動作モードにおいてブレーク要求信号が入力された場合、CPUは、通常のウェイクアップ信号が入力されるまで待つことなく、上記内部のウェイクアップ信号によりブレーク状態に移行することができる。低消費電力動作モードに移行してから上記内部のウェイクアップ信号が発生するまでの設定時間は、例えばマイクロコンピュータ開発支援装置のホスト側で管理するブレーク要求に対するタイムアウト時間よりも短く設定すればよい。
請求項8、16に記載した手段によれば、ウェイクアップ信号生成回路は、低消費電力動作モードにある期間カウント動作を行うカウンタの値と、記憶回路に記憶された設定カウント値とを比較し、カウンタの値が設定カウント値に達した時にウェイクアップ信号を出力する。プログラムにおいて記憶回路(例えばレジスタ)の設定カウント値を書き換える命令を加えることにより、上記設定時間を容易に変更することができる。
(第1の実施形態)
以下、本発明の第1の実施形態について図1ないし図3を参照しながら説明する。
図1は、評価システム全体の電気的構成を示す機能ブロック図である。ターゲットシステムとなる回路基板12は、評価対象のワンチップマイクロコンピュータ(以下、マイコンと称す)が搭載される基板であり、例えば車両のECU(Electric Control Unit) に収容されて用いられるものである。マイクロコンピュータ開発支援装置であるICE11(In Circuit Emulator) は、このマイコンの動作をエミュレートするために用いられる。
以下、本発明の第1の実施形態について図1ないし図3を参照しながら説明する。
図1は、評価システム全体の電気的構成を示す機能ブロック図である。ターゲットシステムとなる回路基板12は、評価対象のワンチップマイクロコンピュータ(以下、マイコンと称す)が搭載される基板であり、例えば車両のECU(Electric Control Unit) に収容されて用いられるものである。マイクロコンピュータ開発支援装置であるICE11(In Circuit Emulator) は、このマイコンの動作をエミュレートするために用いられる。
回路基板12において評価対象のマイコンが搭載される部分には、当該マイコンに代えてソケット(図示せず)が搭載されている。そのソケットには、ICE本体から延びるエミュレーションケーブルの先端に配置されたPOD13(プローブ)が接続されるようになっている。後述するエバチップ14は、これらエミュレーションケーブルおよびPOD13を介して回路基板12に電気的に接続されるようになっている。
ICE11は、マイコンの動作をエミュレートするエバチップ14(半導体集積回路装置に相当)、メモリ部15、およびICEコントローラ16を介して繋がるパソコン17(ホストに相当)から構成されている。メモリ部15は、エバチップ14との間でデータを高速にやり取りするためのインターフェース回路18を備えており、このインターフェース回路18にはエミュレーションメモリ19、モニタプログラムメモリ20、トレースメモリ21が接続されている。
エミュレーションメモリ19は、パソコン17からダウンロードしたユーザプログラムを格納するためのメモリ(RAM)である。モニタプログラムメモリ20は、エバチップ14が実行するモニタプログラム(評価用プログラム、エミュレーションプログラム)が格納されるものであり、ROMまたはRAMにより構成されている。RAMとして構成されている場合、モニタプログラムは、エミュレーションを実行するのに先立ってパソコン17からダウンロードされるようになっている。
トレースメモリ21は、トレースモードでのエミュレーションを実行するときに、その実行した命令が実行順に書き込まれて記憶されるようになっている。また、エバチップ14に内蔵されているプログラムカウンタや、割り込み要求フラグ、命令実行許可フラグなどの内蔵レジスタに関する情報なども記憶されるようになっている。
エバチップ14は、最終的に回路基板12に搭載されるマイコンと同様にCPU22、各種の周辺モジュール23(図1には1つのみを示している)、周波数逓倍回路24およびRAM25を備えている。周辺モジュール23(周辺回路に相当)は、タイマ、カウンタ、入出力ポート、シリアル通信部、A/D変換器、D/A変換器などを構成する機能回路26を備え、データレジスタや動作設定レジスタなどの種々のレジスタ26a、26b、26c、…は、図示しないアドレスバスとデータバスによりCPU22と接続されている。周波数逓倍回路24は、エバチップ14の外から入力される基本クロックを逓倍して生成したクロックCKをCPU22、周辺モジュール23、後述するインターフェース回路27などに供給するようになっている。
さらに、エバチップ14には、メモリ部15とCPU22との間でデータを高速にやり取りするためのインターフェース回路27が設けられている。このインターフェース回路27は、入出力に係る動作モード等を設定するためのレジスタ27a、27b、…を備えている。また、CPU22がリセットされた場合に、CPU22から出力されたリセットベクタの切り替えを制御するベクタアドレス切替回路28を備えている。
上記周辺モジュール23のうち、タイマ、非同期シリアル通信部など、動作を一時的に停止させても内部エラーが発生しないようなものには、動作設定レジスタ29と停止制御回路30とが設けられている。停止制御回路30は、CPU22からブレーク処理信号BKが入力されている期間、当該周辺モジュール23内の機能回路26の動作の進行を停止させるように機能する。例えばタイマであれば、ブレーク処理信号BKが入力されている期間タイマの計時動作が停止して、ブレーク処理信号BKの入力直前のタイマ値が保持される。ブレーク処理信号BKは、CPU22がユーザプログラムの実行中にブレーク割り込み要求(ブレーク要求信号)を受け付けた時に出力され、そのブレーク割り込み処理が終了するまでの期間出力され続ける。
動作設定レジスタ29は、この停止制御回路30の機能を許可(有効化)するか禁止(無効化)するかの指令データを記憶するものである。この指令データは、CPU22によって書き込まれる。停止制御回路30は、この動作設定レジスタ29の指令データが「許可」である場合に限り上記停止制御を実行するようになっている。
エバチップ14に対しては、2系統のリセット信号RST1、RST2が入力されるようになっている。第1のリセット信号RST1は、回路基板12からPOD13およびエミュレーションケーブルを介して入力されるターゲットリセットの信号で、第2のリセット信号RST2は、ICE11本体でユーザのリセット操作等によって入力されるICEリセットの信号である。
CPU22および周辺モジュール23の機能回路26(レジスタ26a、26b、26c、…を含む)のリセット端子には、リセット信号RST1とRST2がORゲート31を介して与えられており、これらCPU22および周辺モジュール23の機能回路26は、リセット信号RST1とRST2の何れによってもリセットされるようになっている。一方、周辺モジュール23の動作設定レジスタ29と停止制御回路30およびインターフェース回路18、27(レジスタ27a、27b、…を含む)は、リセット信号RST2によってのみリセットされるようになっている。
次に、本実施形態の本実施例の作用について図2および図3も参照しながら説明する。
ユーザは、パソコン17上でICE用のソフトウェアを起動し、モニタプログラムをICE11のモニタプログラムメモリ20にダウンロードする。続いて、ターゲットシステム用に開発した評価対象であるユーザプログラムをエミュレーションメモリ19にダウンロードする。この状態でICE11本体をリセット操作するとリセット信号RST2が発生し、エバチップ14全体およびインターフェース回路18がリセットされる。
ユーザは、パソコン17上でICE用のソフトウェアを起動し、モニタプログラムをICE11のモニタプログラムメモリ20にダウンロードする。続いて、ターゲットシステム用に開発した評価対象であるユーザプログラムをエミュレーションメモリ19にダウンロードする。この状態でICE11本体をリセット操作するとリセット信号RST2が発生し、エバチップ14全体およびインターフェース回路18がリセットされる。
図2(a)に示すように、エバチップ14内部に設けた遅延回路(図示せず)により所定の発振安定待ち時間が経過すると、CPU22が起動し、リセットベクタをアドレスバスを通してベクタアドレス切替回路28に出力する。ベクタアドレス切替回路28にはリセット信号RST1とRST2とが入力されており、当該リセットの種類(ターゲットリセット、ICEリセット)によってベクタアドレスを切り替える。ここでは、リセット信号RST2によるICEリセットであるため、ベクタアドレス切替回路28は、CPU22からの(ユーザプログラムの)ベクタアドレスに替えてモニタプログラムの先頭アドレスを指示するベクタアドレスを出力する。その結果、CPU22は、モニタプログラムの実行を開始する。
図2(b)は、CPU22の処理内容を示すフローチャートである。CPU22は、起動したモニタプログラムに従って、インターフェース回路27内のレジスタ27a、27b、…に対し、所定の動作設定データを書き込む(ステップS1)。続いて、周辺モジュール23の動作設定レジスタ29に、停止制御回路30の機能を許可するための指令データを書き込む(ステップS2)。以上の初期設定が完了すると、ユーザプログラムの実行を開始する(ステップS3)。なお、通常のユーザプログラムは、その実行開始直後において、CPU22、機能回路26(レジスタ26a、26b、26c、…)、RAM25などの初期設定を行うようになっている。
その後、ユーザ(評価作業者)は、ブレーク条件を設定しながらターゲットシステムのデバッグを行っていく。ブレーク条件として、ブレークアドレスの他、命令フェッチサイクル/データアクセスサイクル、リードサイクル/ライトサイクル、バイトアクセス/ワードアクセスなどの条件を設定することができる。
命令実行中に設定したブレーク条件が成立すると、CPU22にブレーク割り込み要求が発生する。CPU22は、その割り込み要求を受け付けると、上記モニタプログラムの実行に移行する。この状態で、ユーザは、パソコン17を操作しながらそのモニタ画面上でCPU22内のレジスタ、RAM25、レジスタ26a、26b、26c、…の値などを確認することが可能となる。確認終了後、パソコン17から「GO」コマンドを入力すると、CPU22は割り込み処理からリターンして再びユーザプログラムの実行を開始する。
図3は、周辺モジュール23の一例としてタイマを想定した場合におけるCPU22と当該タイマの動作を示すタイミングチャート(a)と、従来構成(図7参照)のエバチップ1に係るタイミングチャート(b)である。図3(a)において、CPU22がブレーク割り込み要求を受け付けた後リターンするまでの期間(つまりモニタプログラムの実行中)、CPU22はHレベルのブレーク処理信号BKを出力する。
上述したように周辺モジュール23の動作設定レジスタ29には「許可」指令データが書き込まれているので、停止制御回路30は、ブレーク処理信号BKがHレベルになるとタイマの計時動作を停止させる。このとき、タイマ値はブレーク処理信号BKがHレベルになる直前の値のまま保持される。そして、ブレーク処理信号BKがLレベルに戻ると、停止制御回路30はタイマの計時動作を再開させ、タイマ値はそれまで保持されていた値から再び変化を開始する。なお、動作設定レジスタ29に、停止制御回路30の機能を禁止するための指令データが記憶されている場合には、ブレーク処理信号BKが入力されていても機能回路26の動作の進行は停止せず、図3(b)に示すようにタイマ値は増加する。
こうしたデバッグ作業において、回路基板12からリセット信号RST1を与えると、CPU22と周辺モジュール23の機能回路26(上述の例で言えばタイマ回路)がリセットされる。この場合、ベクタアドレス切替回路28は、CPU22から出力されるベクタアドレス、すなわちユーザプログラムの先頭アドレスを指示するベクタアドレスをそのまま出力する。その結果、CPU22は、モニタプログラムではなくユーザプログラムの実行を開始する。このリセット信号RST1が与えられたときのユーザプログラムの実行開始タイミングは、実際のターゲットシステムにおけるリセット後のユーザプログラムの実行開始タイミングと等しくなる。
このように、ターゲットリセットの後、モニタプログラムを介さずに直接ユーザプログラムの実行を開始できるのは、当該リセットによっては動作設定レジスタ29、停止制御回路30およびインターフェース回路18、27がリセットされないためである。なお、ICE11の電源オンの場合またはICE11のシステムリセットの場合には、エバチップ14の全体がリセットされ、上述したようにモニタプログラムが起動される。
以上説明したように、本実施形態によれば、エバチップ14には2系統のリセット信号RST1、RST2が入力され、CPU22は、リセット信号RST1が与えられた場合にはユーザプログラムの実行を開始し、リセット信号RST2が与えられた場合にはモニタプログラムの実行を開始する。また、周辺モジュール23の動作設定レジスタ29と停止制御回路30とは、リセット信号RST1によりリセットされない。従って、ターゲットシステムである回路基板12からリセット信号RST1が与えられた場合には、モニタプログラムを起動することなく、(既に起動されているモニタプログラムの管理下において)直接ユーザプログラムの実行を開始することができる。
その結果、実際のターゲットシステムにおいてリセット信号が生じたときの動作タイミングと、エバチップ14を用いてエミュレートする場合においてリセット信号RST1が生じたときの動作タイミングとが一致し、リセット直後の動作を正確に評価することができるようになる。
また、エバチップ14内の周辺モジュール23に設けられた動作設定レジスタ29に停止制御を許可する指令データが記憶されている場合、CPU22がブレーク割り込み要求を受け付けると、周辺モジュール23の停止制御回路30は、当該ブレーク割り込み要求に対するモニタプログラムの処理が終了するまでの期間、機能回路26の動作の進行を停止する。従って、ユーザは、このエバチップ14が実行するモニタ機能を利用して、ブレーク割り込み要求の受け付け時における周辺モジュール23の動作状態を正確に把握することができる。
さらに、ブレーク状態が解除されてCPU22がブレーク要求前のユーザプログラムの実行状態に復帰すると、機能回路26は、停止していた動作の進行を再開する。その結果、CPU22によるユーザプログラムの実行と周辺モジュール23の動作とが同期して、ブレーク要求受付け前の状態と連続性を有して再進行する。従って、ICE11を用いることにより、マイコンの動作をブレークをかけながら継続的且つ正確にエミュレートすることができる。
(第2の実施形態)
次に、第1の実施形態に対しブレーク要求処理回路を追加した第2の実施形態について図4ないし図6を参照しながら説明する。
図4は、図1に示すエバチップ14内に追加して設けられるブレーク要求処理回路の電気的構成図である。CPU22は、周波数逓倍回路24からクロックCKの供給を受けて動作する通常動作モードの他に、クロックCKの供給が停止した状態で待機する低消費電力動作モード(スリープモード)を有している。この低消費電力動作モードでは、メインクロックCKが停止し、周辺モジュール23の動作も停止する。
次に、第1の実施形態に対しブレーク要求処理回路を追加した第2の実施形態について図4ないし図6を参照しながら説明する。
図4は、図1に示すエバチップ14内に追加して設けられるブレーク要求処理回路の電気的構成図である。CPU22は、周波数逓倍回路24からクロックCKの供給を受けて動作する通常動作モードの他に、クロックCKの供給が停止した状態で待機する低消費電力動作モード(スリープモード)を有している。この低消費電力動作モードでは、メインクロックCKが停止し、周辺モジュール23の動作も停止する。
CPU22は、割り込み等により低消費電力動作モードに移行し、通信やインプットキャプチャなどのウェイクアップ要因が生じたことにより通常動作モードに復帰(ウェイクアップ)するようになっている。CPU22内には、発生した各ウェイクアップ要因を記憶するためのウェイクアップ要因フラグからなるウェイクアップレジスタが設けられており、プログラム中で当該ウェイクアップレジスタを参照することにより、ウェイクアップ要因を判別でき、ウェイクアップ要因に応じた処理を行うことができる。
ブレーク要求制御回路32は、通常動作モードにある期間にICEコントローラ16からブレーク要求信号が入力された場合、ブレーク要求制御レジスタ33の値にかかわらず、そのブレーク要求信号を直ちにCPU22に対して出力するようになっている。
一方、ブレーク要求制御回路32は、低消費電力動作モードにある期間にICEコントローラ16からブレーク要求信号が入力された場合、ブレーク要求制御レジスタ33に「1」(許可)が書き込まれていると、その後何れかのウェイクアップ信号が入力された時にブレーク要求信号をCPU22に対して出力するようになっている。
一方、ブレーク要求制御回路32は、低消費電力動作モードにある期間にICEコントローラ16からブレーク要求信号が入力された場合、ブレーク要求制御レジスタ33に「1」(許可)が書き込まれていると、その後何れかのウェイクアップ信号が入力された時にブレーク要求信号をCPU22に対して出力するようになっている。
逆に、ブレーク要求制御レジスタ33に「0」(禁止)が書き込まれていると、こうしたブレーク保留制御は行わず、そのブレーク要求信号を直ちにCPU22に対して出力するようになっている。なお、ブレーク要求制御回路32は、リセット信号RST2によりリセットされるようになっている。
ウェイクアップ信号生成回路38は、カウンタ34、時間設定レジスタ36および比較回路37により構成されている。カウンタ34は、通常動作モードにある期間はカウント値を0としたままカウントを停止し、低消費電力動作モードにある期間は、サブクロック発生回路35で生成されるサブクロックをアップカウントするようになっている。このサブクロック発生回路35は、低消費電力動作モードにおいても発振を継続するCR発振回路により構成されている。
時間設定レジスタ36(記憶回路に相当)は、後述する設定時間T1に対応した設定カウント値N1を記憶するもので、比較回路37は、カウンタ34のカウント値Nが設定カウント値N1以上となった時にウェイクアップ信号を出力するようになっている。
通信やインプットキャプチャなどのウェイクアップ信号および比較回路37からのウェイクアップ信号は、OR回路39に入力されており、このOR回路39から出力される統合されたウェイクアップ信号がCPU22に与えられるようになっている。なお、ウェイクアップ信号生成回路38は、ICEがブレークコマンドの入力に対するタイムアウトを管理していないような場合には、設ける必要がない。
通信やインプットキャプチャなどのウェイクアップ信号および比較回路37からのウェイクアップ信号は、OR回路39に入力されており、このOR回路39から出力される統合されたウェイクアップ信号がCPU22に与えられるようになっている。なお、ウェイクアップ信号生成回路38は、ICEがブレークコマンドの入力に対するタイムアウトを管理していないような場合には、設ける必要がない。
次に、本実施形態の作用、効果を説明する。
まず、図5に示すタイミングチャートを参照しながら、ブレーク要求制御回路32の動作を説明する。図5(a)は、ブレーク要求制御レジスタ33に「1」(ブレーク保留制御の許可)が書き込まれている場合のタイミングチャートで、(b)はブレーク要求制御レジスタ33に「0」(ブレーク保留制御の禁止)が書き込まれている場合のタイミングチャートである。
まず、図5に示すタイミングチャートを参照しながら、ブレーク要求制御回路32の動作を説明する。図5(a)は、ブレーク要求制御レジスタ33に「1」(ブレーク保留制御の許可)が書き込まれている場合のタイミングチャートで、(b)はブレーク要求制御レジスタ33に「0」(ブレーク保留制御の禁止)が書き込まれている場合のタイミングチャートである。
(a)ブレーク保留制御が許可されている場合
CPU22がユーザプログラムを実行している状態(実行状態A)で低消費電力動作モードに移行した後、ICEコントローラ16からブレーク要求信号が入力されると、ブレーク要求制御回路32は、何れかのウェイクアップ要因が発生するまでブレーク要求信号を保留する。そして、ウェイクアップ信号が発生すると、そのブレーク要求信号をCPU22に対して出力し、CPU22はブレーク状態に移行する。
CPU22がユーザプログラムを実行している状態(実行状態A)で低消費電力動作モードに移行した後、ICEコントローラ16からブレーク要求信号が入力されると、ブレーク要求制御回路32は、何れかのウェイクアップ要因が発生するまでブレーク要求信号を保留する。そして、ウェイクアップ信号が発生すると、そのブレーク要求信号をCPU22に対して出力し、CPU22はブレーク状態に移行する。
その後、ユーザ(評価作業者)がパソコン17から「GO」コマンドを入力すると、CPU22はウェイクアップレジスタを参照してウェイクアップ要因を特定し、そのウェイクアップ要因に応じた処理を実行する(実行状態B)。この状態からリターンすると、CPU22は、上記実行状態Aにおいて中断された処理からユーザプログラムの実行を再開する(実行状態C)。
(b)ブレーク保留制御が禁止されている場合
低消費電力動作モードに移行した後、ICEコントローラ16からブレーク要求信号が入力されると、ブレーク要求制御回路32は、直ちにブレーク要求信号をCPU22に対して出力し、CPU22はブレーク状態に移行する。その後、ユーザ(評価作業者)がパソコン17から「GO」コマンドを入力すると、CPU22はウェイクアップレジスタを参照する。しかし、ウェイクアップ要因は発生していないため、ユーザプログラムのエラー処理に移行する。ただし、何れのウェイクアップ要因も発生していない場合をエラーとしないようにユーザプログラムが作られている場合には、(a)と同様に実行状態Cに戻すこともできる。
低消費電力動作モードに移行した後、ICEコントローラ16からブレーク要求信号が入力されると、ブレーク要求制御回路32は、直ちにブレーク要求信号をCPU22に対して出力し、CPU22はブレーク状態に移行する。その後、ユーザ(評価作業者)がパソコン17から「GO」コマンドを入力すると、CPU22はウェイクアップレジスタを参照する。しかし、ウェイクアップ要因は発生していないため、ユーザプログラムのエラー処理に移行する。ただし、何れのウェイクアップ要因も発生していない場合をエラーとしないようにユーザプログラムが作られている場合には、(a)と同様に実行状態Cに戻すこともできる。
このように、低消費電力動作モードにおけるブレーク保留制御を許可すると、CPU22は何れかのウェイクアップ要因が発生するのを待ってブレーク状態に移行するので、「GO」コマンドが入力された場合のウェイクアップ処理において、何れかのウェイクアップレジスタの何れかのビット(ウェイクアップ要因フラグ)がセットされた状態となる。このため、ユーザは、ウェイクアップ処理に移行したにもかかわらず、何れのウェイクアップ要因フラグもセットされていない例外的な場合(マイコンの単独動作では通常あり得ない)を考慮することなく、プログラムを作成することができる。ただし、このような例外的な場合についても処理可能なようにユーザプログラムを作成した場合には、ブレーク要求制御レジスタ33に「0」を書き込むことにより、ブレークコマンドの入力直後にCPU22をブレーク状態に移行させることができる。
続いて、図6に示すタイミングチャートを参照しながら、ウェイクアップ信号生成回路38の動作を説明する。図6(a)は、本実施形態のタイミングチャートで、(b)はウェイクアップ信号生成回路38が設けられていない場合のタイミングチャートである。
上述したブレーク保留制御を許可した場合、低消費電力動作モード中にブレーク要求信号の入力があっても、何れかのウェイクアップ要因が発生するまで、CPU22はブレーク状態に遷移することができない。しかし、マイクロコンピュータ開発支援装置(ICE)の中には、ブレークコマンドの入力からブレークの受け付けまでの時間を管理しているものがあり、図6(b)に示すようにタイムアウト時間Toを超えるとタイムアウトエラーが生じる。
上述したブレーク保留制御を許可した場合、低消費電力動作モード中にブレーク要求信号の入力があっても、何れかのウェイクアップ要因が発生するまで、CPU22はブレーク状態に遷移することができない。しかし、マイクロコンピュータ開発支援装置(ICE)の中には、ブレークコマンドの入力からブレークの受け付けまでの時間を管理しているものがあり、図6(b)に示すようにタイムアウト時間Toを超えるとタイムアウトエラーが生じる。
そこで、本実施形態では、通常動作モードから低消費電力動作モードに移行してから設定時間T1(<To)が経過した時に強制的にウェイクアップ信号を発生させ、CPU22をブレーク状態に遷移させている。具体的には、低消費電力動作モードに移行すると、カウンタ34がサブクロックを0からアップカウントし、そのカウント値Nが設定時間T1に対応した設定カウント値N1(図6(a)では15に設定されている)に達した時に、比較回路37がウェイクアップ信号を出力する。
その結果、上記設定時間T1をタイムアウト時間Toよりも小さく設定しておくことにより、通信やインプットキャプチャなどの通常のウェイクアップ要因が発生しない場合でも、ICEのタイムアウト時間To内に確実に内部的なウェイクアップ要因が発生し、ブレーク要求信号に応じてブレーク状態に遷移させることができる。なお、低消費電力動作モードに移行した後、ブレーク要求信号が入力されることがないまま上記内部的なウェイクアップ要因が発生した場合およびブレーク要求信号は入力されたが通信や端子入力などにより発生する通常のウェイクアップ信号が発生しないまま上記内部的なウェイクアップ要因が発生した場合には、一旦ユーザプログラムの実行状態に戻った後、内部的なウェイクアップ要因でウェイクアップしたことをウェイクアップ要因フラグにより判断し、再度低消費電力動作モードに移行させればよい。
(その他の実施形態)
本発明は上記し且つ図面に示す各実施形態に限定されるものではなく、例えば以下のように変形または拡張が可能である。
設定情報記憶回路は、動作設定レジスタ29のみならず、メモリや外部からエバチップ14に印加する信号を記憶するハードウェア回路などにより構成してもよい。
本発明は上記し且つ図面に示す各実施形態に限定されるものではなく、例えば以下のように変形または拡張が可能である。
設定情報記憶回路は、動作設定レジスタ29のみならず、メモリや外部からエバチップ14に印加する信号を記憶するハードウェア回路などにより構成してもよい。
停止制御回路が機能回路26の動作の進行を停止させる手段としては、例えばタイマの場合、クロックCKとタイマ(カウンタ)との間にゲート回路を設け、停止制御回路からの許可/停止信号によりゲート回路を開閉する構成が考えられる。
インターフェース回路27とベクタアドレス切替回路28とは独立した構成としてもよい。
エミュレーションメモリ19とモニタプログラムメモリ20をRAMまたはフラッシュメモリにより構成してエバチップ14内に設けてもよい。
インターフェース回路27とベクタアドレス切替回路28とは独立した構成としてもよい。
エミュレーションメモリ19とモニタプログラムメモリ20をRAMまたはフラッシュメモリにより構成してエバチップ14内に設けてもよい。
第2の実施形態において、低消費電力動作モード中にブレーク要求信号の入力があった時に、カウンタ34がカウントを開始するように構成してもよい。また、ブレーク要求制御レジスタ33は適宜設ければよい。さらに、ブレーク要求制御レジスタ33の値(0/1)とブレーク保留制御の禁止/許可との対応関係は、上述したものとは逆の関係つまり「0」が許可、「1」が禁止であってもよい。
11はICE(マイクロコンピュータ開発支援装置)、14はエバチップ(半導体集積回路装置)、17はパソコン(ホスト)、22はCPU、23は周辺モジュール(周辺回路)、26は機能回路、27はインターフェース回路、28はベクタアドレス切替回路、29は動作設定レジスタ(設定情報記憶回路)、30は停止制御回路、32はブレーク要求制御回路、33はブレーク要求制御レジスタ、34はカウンタ、36は時間設定レジスタ(記憶回路)、37は比較回路、38はウェイクアップ信号生成回路である。
Claims (16)
- CPUと該CPUにより制御される周辺回路とが設けられたワンチップマイクロコンピュータの動作をエミュレートするための半導体集積回路装置において、
第1のリセット信号が与えられた場合には、前記CPUからのリセットベクタアドレスに応じたベクタアドレスを出力し、第2のリセット信号が与えられた場合には、前記CPUからのリセットベクタアドレスに替えて所定のベクタアドレスを出力するベクタアドレス切替回路と、
前記CPUと外部回路との間でエミュレーションに関する情報を入出力するインターフェース回路とを備え、
前記CPUは、前記第1および第2のリセット信号によりリセットされ、
前記インターフェース回路は、前記第2のリセット信号によりリセットされるように構成されていることを特徴とする半導体集積回路装置。 - 前記周辺回路は、その本来的な機能を実現するための機能回路に加え、前記CPUがその命令実行中に発生したブレーク要求を受け付けたことに応じて、当該ブレーク要求に対する処理が終了するまでの期間、前記機能回路の動作の進行を停止するように制御する停止制御回路と、この停止制御回路の動作停止機能を有効化しまたは無効化するための設定情報を記憶する設定情報記憶回路とを備えており、
前記周辺回路の機能回路は、前記第1および第2のリセット信号によりリセットされ、
前記停止制御回路と前記設定情報記憶回路は、前記第2のリセット信号によりリセットされるように構成されていることを特徴とする請求項1記載の半導体集積回路装置。 - ユーザプログラムを格納するためのエミュレーションメモリとモニタプログラムを格納するためのモニタプログラムメモリとを備えていることを特徴とする請求項1または2記載の半導体集積回路装置。
- 前記CPUは、通常動作モードと当該通常動作モードに比べて消費電力が小さい低消費電力動作モードでの動作が可能であって、
前記CPUが低消費電力動作モードにある期間に外部からブレーク要求信号が入力された場合、低消費電力動作モードから通常動作モードに復帰させるウェイクアップ信号が入力されるのを待って、前記CPUをブレーク状態に移行させるブレーク要求制御回路を備えていることを特徴とする請求項1ないし3の何れかに記載の半導体集積回路装置。 - 前記ブレーク要求制御回路は、前記CPUが通常動作モードにある期間に前記ブレーク要求信号が入力された場合、そのブレーク要求信号を直ちに前記CPUに対して出力し、前記CPUが低消費電力動作モードにある期間に前記ブレーク要求信号が入力された場合、前記ウェイクアップ信号が入力された時に前記ブレーク要求信号を前記CPUに対して出力するように構成されていることを特徴とする請求項4記載の半導体集積回路装置。
- 前記第2のリセット信号によりリセットされるブレーク要求制御レジスタを備え、
前記ブレーク要求制御回路は、前記CPUが低消費電力動作モードにある期間に外部からブレーク要求信号が入力された場合、前記ブレーク要求制御レジスタの値に応じて、前記ウェイクアップ信号が入力されるのを待ってまたは直ちに前記CPUをブレーク状態に移行させるように構成されていることを特徴とする請求項4または5記載の半導体集積回路装置。 - 前記CPUが通常動作モードから低消費電力動作モードに移行した後、所定の設定時間が経過した時にウェイクアップ信号を発生させるウェイクアップ信号生成回路を備えていることを特徴とする請求項4ないし6の何れかに記載の半導体集積回路装置。
- 前記ウェイクアップ信号生成回路は、
前記CPUが低消費電力動作モードにある期間カウント動作を行うカウンタと、
前記設定時間に対応した設定カウント値を記憶する記憶回路と、
前記カウンタの値と前記記憶回路の設定カウント値とを比較し、前記カウンタの値が前記設定カウント値に達した時に前記ウェイクアップ信号を出力する比較回路とから構成されていることを特徴とする請求項7記載の半導体集積回路装置。 - CPUと該CPUにより制御される周辺回路とからなるワンチップマイクロコンピュータが搭載される回路基板に前記ワンチップマイクロコンピュータの代わりに電気的に接続された状態で前記ワンチップマイクロコンピュータの動作をエミュレートするための半導体集積回路装置を備えてなるマイクロコンピュータ開発支援装置において、
前記半導体集積回路装置によるエミュレーション条件の設定やエミュレーション結果のデータ処理などを行うためのホストを備え、
前記半導体集積回路装置は、
前記CPUと該CPUにより制御される周辺回路と、
前記回路基板から第1のリセット信号が与えられた場合には、前記CPUからのリセットベクタアドレスに応じたユーザプログラムのベクタアドレスを出力し、前記ホストから第2のリセット信号が与えられた場合には、前記CPUからのリセットベクタアドレスに替えてモニタプログラムのベクタアドレスを出力するベクタアドレス切替回路と、
前記CPUと外部回路との間でエミュレーションに関する情報を入出力するインターフェース回路とを備え、
前記CPUは、前記第1および第2のリセット信号によりリセットされ、
前記インターフェース回路は、前記第2のリセット信号によりリセットされるように構成されていることを特徴とするマイクロコンピュータ開発支援装置。 - 前記半導体集積回路装置に内蔵された周辺回路は、その本来的な機能を実現するための機能回路に加え、前記半導体集積回路装置に内蔵されたCPUがその命令実行中に発生したブレーク要求を受け付けたことに応じて、当該ブレーク要求に対する処理が終了するまでの期間、前記機能回路の動作の進行を停止するように制御する停止制御回路と、この停止制御回路の動作停止機能を有効化しまたは無効化するための設定情報を記憶する設定情報記憶回路とを備えており、
前記周辺回路の機能回路は、前記第1および第2のリセット信号によりリセットされ、
前記停止制御回路と設定情報記憶回路は、前記第2のリセット信号によりリセットされるように構成されていることを特徴とする請求項9記載のマイクロコンピュータ開発支援装置。 - 前記半導体集積回路装置は、前記ユーザプログラムを格納するためのエミュレーションメモリと前記モニタプログラムを格納するためのモニタプログラムメモリとを備えていることを特徴とする請求項9または10記載のマイクロコンピュータ開発支援装置。
- 前記CPUは、通常動作モードと当該通常動作モードに比べて消費電力が小さい低消費電力動作モードでの動作が可能であって、
前記半導体集積回路装置は、前記CPUが低消費電力動作モードにある期間に外部からブレーク要求信号が入力された場合、低消費電力動作モードから通常動作モードに復帰させるウェイクアップ信号が入力されるのを待って、前記CPUをブレーク状態に移行させるブレーク要求制御回路を備えていることを特徴とする請求項9ないし11の何れかに記載のマイクロコンピュータ開発支援装置。 - 前記ブレーク要求制御回路は、前記CPUが通常動作モードにある期間に前記ブレーク要求信号が入力された場合、そのブレーク要求信号を直ちに前記CPUに対して出力し、前記CPUが低消費電力動作モードにある期間に前記ブレーク要求信号が入力された場合、前記ウェイクアップ信号が入力された時に前記ブレーク要求信号を前記CPUに対して出力するように構成されていることを特徴とする請求項12記載のマイクロコンピュータ開発支援装置。
- 前記第2のリセット信号によりリセットされるブレーク要求制御レジスタを備え、
前記ブレーク要求制御回路は、前記CPUが低消費電力動作モードにある期間に外部からブレーク要求信号が入力された場合、前記ブレーク要求制御レジスタの値に応じて、前記ウェイクアップ信号が入力されるのを待ってまたは直ちに前記CPUをブレーク状態に移行させるように構成されていることを特徴とする請求項12または13記載のマイクロコンピュータ開発支援装置。 - 前記CPUが通常動作モードから低消費電力動作モードに移行した後、所定の設定時間が経過した時にウェイクアップ信号を発生させるウェイクアップ信号生成回路を備えていることを特徴とする請求項12ないし14の何れかに記載のマイクロコンピュータ開発支援装置。
- 前記ウェイクアップ信号生成回路は、
前記CPUが低消費電力動作モードにある期間カウント動作を行うカウンタと、
前記設定時間に対応した設定カウント値を記憶する記憶回路と、
前記カウンタの値と前記記憶回路の設定カウント値とを比較し、前記カウンタの値が前記設定カウント値に達した時に前記ウェイクアップ信号を出力する比較回路とから構成されていることを特徴とする請求項15記載のマイクロコンピュータ開発支援装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004006828A JP2004280789A (ja) | 2003-02-28 | 2004-01-14 | 半導体集積回路装置およびマイクロコンピュータ開発支援装置 |
US10/786,136 US20040172233A1 (en) | 2003-02-28 | 2004-02-26 | Semiconductor integrated circuit device and microcomputer development assisting apparatus |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003053658 | 2003-02-28 | ||
JP2004006828A JP2004280789A (ja) | 2003-02-28 | 2004-01-14 | 半導体集積回路装置およびマイクロコンピュータ開発支援装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004280789A true JP2004280789A (ja) | 2004-10-07 |
Family
ID=33301904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004006828A Pending JP2004280789A (ja) | 2003-02-28 | 2004-01-14 | 半導体集積回路装置およびマイクロコンピュータ開発支援装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004280789A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007199955A (ja) * | 2006-01-25 | 2007-08-09 | Japan Aviation Electronics Industry Ltd | リアルタイムシステム及びプログラム停止方法 |
JP2009080632A (ja) * | 2007-09-26 | 2009-04-16 | Nec Electronics Corp | 半導体集積回路 |
JP2010134677A (ja) * | 2008-12-04 | 2010-06-17 | Renesas Electronics Corp | マイクロコンピュータ及び組み込みソフトウェア開発システム |
-
2004
- 2004-01-14 JP JP2004006828A patent/JP2004280789A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007199955A (ja) * | 2006-01-25 | 2007-08-09 | Japan Aviation Electronics Industry Ltd | リアルタイムシステム及びプログラム停止方法 |
JP2009080632A (ja) * | 2007-09-26 | 2009-04-16 | Nec Electronics Corp | 半導体集積回路 |
JP2010134677A (ja) * | 2008-12-04 | 2010-06-17 | Renesas Electronics Corp | マイクロコンピュータ及び組み込みソフトウェア開発システム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100505638B1 (ko) | 워킹 콘텍스트 저장 및 복구 장치 및 방법 | |
JP4515093B2 (ja) | Cpuのパワーダウン方法及びそのための装置 | |
TWI475368B (zh) | 電源控制系統及其方法 | |
US9367107B2 (en) | Method and system for controlling reset state change in a system-on-a-chip device | |
JP2004164647A (ja) | ハードウエアによるデータ処理システム内の状態の保存/回復 | |
JPWO2002061591A1 (ja) | データ処理システム及びデータプロセッサ | |
CN114661368B (zh) | 一种芯片及其启动方法 | |
US20040172233A1 (en) | Semiconductor integrated circuit device and microcomputer development assisting apparatus | |
JP4421390B2 (ja) | 半導体集積回路 | |
JP2008059300A (ja) | マイクロコンピュータ | |
US20100122072A1 (en) | Debugging system, debugging method, debugging control method, and debugging control program | |
JP6047033B2 (ja) | Lsiおよび情報処理システム | |
JP2007310714A (ja) | 集積回路装置、デバッグツール、デバッグシステム、マイクロコンピュータ及び電子機器 | |
TW201624192A (zh) | 電腦系統、可適性休眠控制模組及其控制方法 | |
JP2004280789A (ja) | 半導体集積回路装置およびマイクロコンピュータ開発支援装置 | |
JP4024026B2 (ja) | 半導体装置および評価装置 | |
US6993674B2 (en) | System LSI architecture and method for controlling the clock of a data processing system through the use of instructions | |
US20080071517A1 (en) | Emulations system and emulation method | |
EP1372065B1 (en) | System large scale integrated circuit (LSI), method of designing the same, and program therefor | |
JP2643790B2 (ja) | エミュレータ | |
JP2005141522A (ja) | データ処理装置 | |
JP4383494B1 (ja) | データ処理システム及びデバッグ方法 | |
JP2004199630A (ja) | データ処理装置 | |
JP2000076093A (ja) | マイクロコンピュータのエミュレータ | |
CN114647613A (zh) | 处理系统、相关集成电路和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060731 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080325 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080519 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080708 |