(57)【要約】【課題】  特定の周辺回路の動作状態を的確に把握し、ハードウエア及びソフトウエアの不具合の切り出しとその不具合に対する解析とを容易に行う。【解決手段】  デバッグ開始を示すデバッグモード通知信号２１１に基づいて、クロック制御部２６２にて特定の周辺回路（ＤＭＡ制御部２３３、タイマ制御部２４２）の動作を停止させ、特定の周辺回路の動作が停止した状態で、特定の周辺回路へのデバッグを実行する。【選択図】      図２
2006171810.tif 000002
【特許請求の範囲】
【請求項１】
特定の周辺回路へのデバッグを実行するデバッグ制御システムであって、
デバッグ開始を示す信号に基づいて前記特定の周辺回路の動作を停止させる手段と、
前記特定の周辺回路の動作が停止した状態で、前記特定の周辺回路へのデバッグを実行する実行手段とを有することを特徴とするデバッグ制御システム。
【請求項２】
前記停止させる手段は、前記特定の周辺回路へ供給する所定のクロックを停止することにより前記特定の周辺回路の動作を停止させることを特徴とする請求項１記載のデバッグ制御システム。
【請求項３】
前記特定の周辺回路の動作が停止した状態で、前記所定のクロックを１クロック分生成する生成手段と、
前記生成手段で生成された１クロック分のクロックで前記特定の周辺回路を動作させ、逐次デバッグを実行する逐次デバッグ実行手段とを有することを特徴とする請求項１記載のデバッグ制御システム。
【請求項４】
複数の周辺回路から前記特定の周辺回路を選択する選択手段を更に有することを特徴とする請求項３記載のデバッグ制御システム。
【請求項５】
特定の周辺回路へのデバッグを実行するデバッグ制御システムの制御方法であって、
デバッグ開始を示す信号に基づいて前記特定の周辺回路の動作を停止させる工程と、
前記特定の周辺回路の動作が停止した状態で、前記特定の周辺回路へのデバッグを実行する実行工程とを有することを特徴とするデバッグ制御システムの制御方法。
【請求項６】
請求項５記載のデバッグ制御システムの制御方法の各手順をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特定の周辺回路へのデバッグを実行するデバッグ制御システムに関する。
【背景技術】
【０００２】
一般に、ＣＰＵ内蔵のシステムＬＳＩを実機デバッグする場合、システムＬＳＩの外部にＩＣＥ（In-Circuit Emulator）を接続し、ＩＣＥからオンチップのＣＰＵを制御することでユーザプログラムのブレーク処理やステップ実行を行っている。これは、予めユーザプログラムを停止させたいポイントにブレークポイントを設定しておき、実際にリアルタイムに実行したプログラムがそのポイントに到達した時点でＣＰＵが強制的にデバッグモードへ移行し、その後のプログラムの実行を一時的に停止することによって実現されるものである（例えば、特許文献１参照）。
【０００３】
このデバッグモードへの移行方法は、例えばＣＰＵが予めデバッグモードへ移行するためのデバッグ回路を有することで実施するハードウエア・ブレークや実行するプログラムの一部をトラップ命令に置き換えてソフトウエア割り込みを利用してモニタプログラムへ移行することで実施するソフトウエア・ブレークがある。しかしながら、何れの場合も、ＩＣＥによるデバッグモードではプログラムの実行のみを一時的に停止した状態であり、オンチップバスを含めたＣＰＵ以外の周辺回路はリアルタイムに動作している。この様子を図１を用いて説明する。
【０００４】
図１は、一般的なデバッグ制御システムの構成の一例を示す図である。図１に示すように、デバッグ制御システム１００は、オンチップバス１２０に接続されたＣＰＵ１１０と、特定の周辺回路であるＤＭＡコントローラ１３０、タイマコントローラ１４０、及び外部メモリデバイス１０２にアクセスするためのＭＥＭコントローラ１５０から構成されている。
【０００５】
ここで、ＤＭＡコントローラ１３０は、スレーブＩ／Ｆ１３１、マスタＩ／Ｆ１３２、ＤＭＡ制御部１３３の各モジュールで構成されている。また、タイマコントローラ１４０はスレーブＩ／Ｆ１４１、タイマ制御部１４２の各モジュールで構成されている。また、ＭＥＭコントローラ１５０はスレーブＩ／Ｆ１５１、ＭＥＭ制御部１５２の各モジュールで構成されている。
【０００６】
図１に示すように、ＣＰＵ１１０は外部のＩＣＥ１０１と専用のバスで接続され、設計者がＩＣＥ１０１から直接制御することが可能である。ここで、ＣＰＵ１１０がデバッグモードに移行した状態とは、ＣＰＵ１１０のユーザプログラムの実行が一時的に停止した状態であり、それ以外のオンチップバス１２０を含むＤＭＡコントローラ１３０、タイマコントローラ１４０、及びＭＥＭコントローラ１５０は全てリアルタイムに動作している状態である。
【０００７】
従って、これらの周辺回路はＣＰＵ１１０がデバッグモードに移行した状態であっても、予めプログラミングされた各動作が完了するまで、或いは設計者がＩＣＥ１０１により動作停止命令を発行するまで動作し続けている。
【０００８】
デバッグモードに移行後、ＣＰＵ１１０の制御は全て設計者によってＩＣＥ１０１から実行される。例えば、ステップ実行は、デバッグモードに移行後、プログラムの逐次実行の結果を設計者がその都度確認することにより各命令の実行を確実に処理するために実施され、ＩＣＥ１０１がＣＰＵ１１０に対して１命令分のプログラムの実行を許可することで順次実行される。
【０００９】
また、ＣＰＵ１１０がデバッグモードに移行している間は、設計者はＩＣＥ１０１からＣＰＵ１１０を制御することで現在実行しているプログラムとは独立に任意のメモリ領域やＩ／Ｏ領域にアクセスし、その内容を確認したり、値を書き換えたりすることが可能であり、これによりユーザプログラム及びハードウエアの不具合の解析を行うことが可能である。
【００１０】
例えば、図１において、設計者が外部メモリデバイス１０２の任意の領域をダンプ表示する場合には、ＩＣＥ１０１からＣＰＵ１１０を制御してオンチップバス１２０とＭＥＭコントローラ１５０とを経由して外部メモリデバイス１０２の任意の領域に順次アクセスすることによってそのデータを読み出し、読み出したデータをＩＣＥ１０１へ転送することで実施される。
【００１１】
また、設計者がタイマコントローラ１４０のカウンタ値や状態レジスタの値を知りたい場合には、ＩＣＥ１０１からＣＰＵ１１０を制御してオンチップバス１２０を経由してタイマコントローラ１４０のカウンタや状態レジスタにアクセスすることによってそのデータを読み出し、読み出したデータをＩＣＥ１０１へ転送することでその値を確認することが可能である。
【００１２】
但し、上述した通り周辺回路はリアルタイムに動作しているため、これらの値はＣＰＵ１１０がデバッグモードに移行した時点の値ではなく、ＣＰＵ１１０が周辺回路にアクセスした時点でのカウンタ値や制御部の状態を示す値となる。
【特許文献１】特開2002-055849号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
以上のように、従来技術では、デバッグモードにおいてＣＰＵの動作を停止させることは可能であるが、それ以外の周辺回路の動作を停止させることはできなかった。そのため、これらの周辺回路ではＣＰＵが停止してプログラムのステップ実行を実施しているにも関わらずリアルタイムに実行が行われ、実際の動作に即した状態を観測することができないといった問題があった。
【００１４】
また、一方で、ＬＳＩの高機能化と高集積化が進み、設計のシミュレーション段階では全く予期できなかった事象が実機デバッグ段階で発生するようになってきている。これは、ＬＳＩの高機能化と高集積化によりＣＰＵ以外の多くの周辺回路が同時にＬＳＩに内蔵されるようになり、これらの機能検証を全てシミュレーション段階で実施することが困難になってきたためである。
【００１５】
特に、実機システムにおいて、周辺回路が同時に動作する際の競合動作により発生する不具合に関しては、シミュレーションでは再現することもできず、これがソフトウエアによる不具合であるか、ハードウエアによる不具合であるかを判断することが非常に困難であった。
【００１６】
また、これらの解析を一層困難にしている理由の一つに、デバッグモード中であってもユーザプログラムと周辺回路が同期していないため、不具合の原因を特定できないことが挙げられる。
【００１７】
例えば、特定のデータ領域の値が正しくない場合、予めプログラムされた状態でＤＭＡ制御部が動作していれば、たとえプログラムのステップ実行を実施してもＤＭＡ制御部はリアルタイムに動作するため、ユーザプログラムが意図しない状態でデータを書き換えたのか、ＤＭＡ制御部が正しく動作しないためにデータを書き換えたのか、或いはそれ以外の周辺回路が意図しない状態でデータを書き換えたのかを実機システムにおいて判断することは非常に困難であった。
【００１８】
本発明は、上述の課題を解決するためになされたもので、特定の周辺回路の動作状態を的確に把握し、ハードウエア及びソフトウエアの不具合の切り出しとその不具合に対する解析とを容易に行うことを目的とする。
【課題を解決するための手段】
【００１９】
本発明は、特定の周辺回路へのデバッグを実行するデバッグ制御システムであって、デバッグ開始を示す信号に基づいて前記特定の周辺回路の動作を停止させる手段と、前記特定の周辺回路の動作が停止した状態で、前記特定の周辺回路へのデバッグを実行する実行手段とを有することを特徴とする。
【００２０】
また、本発明は、特定の周辺回路へのデバッグを実行するデバッグ制御システムの制御方法であって、デバッグ開始を示す信号に基づいて前記特定の周辺回路の動作を停止させる工程と、前記特定の周辺回路の動作が停止した状態で、前記特定の周辺回路へのデバッグを実行する実行工程とを有することを特徴とする。
【発明の効果】
【００２１】
本発明によれば、特定の周辺回路の動作状態を的確に把握し、ハードウエア及びソフトウエアの不具合の切り出しとその不具合に対する解析とを容易に行うことが可能となる。
【発明を実施するための最良の形態】
【００２２】
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。尚、本実施形態では、ＩＣＥ（In-Circuit Emulator）をオンチップのＣＰＵに接続してプログラムのブレーク処理やステップ実行等を行うデバッグ環境において、プログラムのブレーク処理と同時に、ＣＰＵ以外の特定の周辺回路へ供給するクロックを停止し、その周辺回路の動作も停止させた後、特定の周辺回路へのクロック供給をＩＣＥから制御することにより、特定の周辺回路をクロック単位で逐次実行させることを可能とするデバッグ制御システムについて説明する。
【実施例１】
【００２３】
図２は、実施例１におけるデバッグ制御システムの構成の一例を示す図である。図２に示すように、デバッグ制御システム２００は、オンチップバス２２０に接続されたＣＰＵ２１０と、特定の周辺回路であるＤＭＡコントローラ２３０、タイマコントローラ２４０、外部メモリデバイス２０２にアクセスするためのＭＥＭコントローラ２５０、クロックコントローラ２６０、及びクロック生成回路２７０から構成されている。
【００２４】
ここで、ＤＭＡコントローラ２３０は、スレーブＩ／Ｆ２３１、マスタＩ／Ｆ２３２、ＤＭＡ制御部２３３の各モジュールで構成されている。また、タイマコントローラ２４０はスレーブＩ／Ｆ２４１、タイマ制御部２４２の各モジュールで構成されている。また、ＭＥＭコントローラ２５０はスレーブＩ／Ｆ２５１、ＭＥＭ制御部２５２の各モジュールで構成されている。また、クロックコントローラ２６０はスレーブＩ／Ｆ２６１、クロック制御部２６２の各モジュールで構成されている。
【００２５】
尚、図２に示す周辺回路は本発明を説明するための一例であり、当然のことながらこの限りではない。
【００２６】
図２に示すように、ＣＰＵ２１０は外部のＩＣＥ２０１と専用のバスで接続され、設計者がＩＣＥ２０１から直接制御することが可能である。クロックコントローラ２６０は、ＣＰＵ２１０から出力されるデバッグモード通知信号２１１と接続され、この信号によりクロック制御部２６２がクロックイネーブル信号２６３を生成して出力する。
【００２７】
一方、クロック生成回路２７０には、外部のクロック（ＸＳＹＳＣＬＫ）２７１が入力されており、このＸＳＹＳＣＬＫ２７１から生成された基準クロックが、常時動作している各モジュール（スレーブＩ／Ｆ２３１、２４１、２５１、２６１、マスタＩ／Ｆ２３２、ＭＥＭ制御部２５２、クロック制御部２６２）とＣＰＵ２１０に供給される（図示せず）。また、クロックイネーブル信号２６３でマスクされたクロック（ＰＣＬＫ）２７２が、このクロック２７２に従って逐次実行動作を行う各モジュール（ＤＭＡ制御部２３３、タイマ制御部２４２）に供給される。
【００２８】
次に、以上の構成を有する実施例１におけるデバッグ制御システム２００の詳細な動作について説明する。
【００２９】
まず初めに、ＣＰＵ２１０がデバッグモードへ移行する手順は、従来例と同様にハードウエア・ブレーク及びソフトウエア・ブレークにより実行される。このデバッグモードに移行するとＣＰＵ２１０はデバッグモード通知信号２１１をアサートする。このデバッグモード通知信号２１１のアサートにより、クロックコントローラ２６０のクロック制御部２６２がクロックイネーブル信号２６３をディアサートする。
【００３０】
図３は、クロックイネーブル信号２６３を生成する回路の一例を示す図である。図３に示すように、入力されたデバッグモード通知信号２１１がインバータ３０１で反転され、クロックイネーブル信号２６３として出力される。
【００３１】
このクロックイネーブル信号２６３がディアサートされると、クロック生成回路２７０はＰＣＬＫ２７２をローレベルで固定してＤＭＡ制御部２３３とタイマ制御部２４２へのクロック供給を停止する。
【００３２】
図４は、クロック生成回路２７０の構成の一例とタイミングチャートを示す図である。上述したように、ＤＭＡ制御部２３３及びタイマ制御部２４２はクロック同期回路であるため、ＰＣＬＫ２７２の供給が停止されると、即座にその動作を停止する。
【００３３】
尚、図２に示すように、オンチップバス２２０と直接通信を行うスレーブＩ／Ｆ２３１、２４１とマスタＩ／Ｆ２３２は通常動作部であり、ＰＣＬＫ２７２とは別のクロックが供給され、ＣＰＵ２１０がデバッグモードに移行しても停止しない。
【００３４】
また、スレーブＩ／Ｆ２３１、２４１とマスタＩ／Ｆ２３２は、ＤＭＡ制御部２３３、タイマ制御部２４２と独立しており、ＤＭＡ制御部２３３、タイマ制御部２４２へのＰＣＬＫ２７２が停止した状態でも影響を受けないでＣＰＵ２１０からアクセス、或いはオンチップバス２２０にアクセスすることが可能である。
【００３５】
このため、ＣＰＵ２１０がデバッグモードに移行してＤＭＡ制御部２３３とタイマ制御部２４２が停止してもＣＰＵ２１０は、通常通りオンチップバス２２０を経由してこれらの周辺回路の制御レジスタや状態レジスタにアクセスすることが可能である。
【００３６】
この状態で、設計者がＩＣＥ２０１からＣＰＵ２１０を制御し、デバッグモードに移行した時点での周辺回路の正確な値や状態を知ることが可能であり、デバッグのために現在実行しているプログラムとは独立に任意のメモリ領域やＩ／Ｏ領域にアクセスしても周辺回路の動作は停止しているため、その後再度周辺回路にアクセスしてもデバッグモードへ移行した時点での状態を継続して観測することが可能である。例えば、設計者は、ＩＣＥ２０１からＣＰＵ２１０を制御してタイマ制御部２４２のカウンタにアクセスすることでデバッグモードに移行した時点での正確な時間を確認することが可能であり、外部メモリデバイス２０２の任意の領域をダンプ表示した後に、再度タイマ制御部２４２のカウンタにアクセスしてもデバッグモードに移行した時点での正確な時間を確認することが可能である。
【００３７】
また、ユーザプログラムの不具合を解析する場合も、デバッグモードに移行した状態でユーザプログラムのステップ実行を行うことによりＣＰＵ２１０の動作のみ実行することが可能となり、周辺回路の影響を受けることなく解析を継続することが可能である。具体的には、予めプログラムされたＤＭＡ制御部２３３が動作している状態でデバッグモードに移行した場合、デバッグモードへの移行と同時にＤＭＡ制御部２３３の動作は一時停止する。この状態で、ユーザプログラムのステップ実行を行うとオンチップバス２２０上でマスタ動作するモジュールはＣＰＵ２１０のみであるため、ユーザプログラムのステップ実行により特定のデータ領域の値が正しくないことが判明しても、その原因はユーザプログラムによって引き起こされたことを特定することは容易である。
【００３８】
以上説明した実施例１によれば、ハードウエア及びソフトウエアの不具合の切り出しを容易に行うことが可能となる。
【００３９】
また、近年の低消費電力化に伴い多用されているモジュール毎のゲーテッドクロックの仕組みを利用することで、実施デバッグにおいて容易に各モジュールへのクロック供給を停止させるように構成することが可能となる。
【実施例２】
【００４０】
次に、図面を参照しながら本発明に係る実施例２について詳細に説明する。実施例２では、クロックコントローラにクロックの供給を停止させた後、周辺回路を逐次実行させるためのパルス生成回路を有するものである。
【００４１】
図５は、実施例２におけるデバッグ制御システムの構成の一例を示す図である。図５に示すように、実施例２は図２を用いて説明した実施例１と、クロックコントローラ５６０が異なるものである。
【００４２】
図５に示すクロックコントローラ５６０において、スレーブＩ／Ｆ５６１は図２に示した実施例１のスレーブＩ／Ｆ２６１と同じであるが、クロック制御部５６２は図６を用いて説明するように構成が異なるものである。ここでは、実施例２におけるクロック制御部５６２の構成について説明する。
【００４３】
図６は、実施例２におけるクロック制御部５６２の構成の一例を示す図である。図６において、６０１はパルス生成回路であり、後述するセット信号に従って１パルス分の波形を生成し、クリア信号を出力する。６０２はステップ実行レジスタであり、ＣＰＵ２１０から任意の値がセットされるとパルス生成回路６０１にセット信号を出力し、クリア信号でレジスタの値をクリアする。６０３はＯＲ回路であり、デバッグモード通知信号２１１がアサートされると、クロックイネーブル信号５６３をディアサートすると共に、パルス生成回路６０１からのパルス波形をクロックイネーブル信号５６３として出力する。
【００４４】
次に、以上の構成を有する実施例２におけるデバッグ制御システム５００の詳細な動作について説明する。
【００４５】
まず初めに、ＣＰＵ２１０がデバッグモードへ移行する手順は、従来例と同様であり、その後、周辺回路へのクロック供給を停止するまでの手順は実施例１と同様である。
【００４６】
そして、ＣＰＵ２１０がデバッグモードに移行した状態で、設計者がＩＣＥ２０１からＣＰＵ２１０を制御してオンチップバス２２０を介してクロック制御部５６２のステップ実行レジスタ６０２に任意の値をセットする。このステップ実行レジスタ６０２の値は、パルス生成回路６０１にセット信号として与えられ、パルス生成回路６０１は１パルス分の波形を生成する。また同時に、パルス生成回路６０１はステップ実行レジスタ６０２に対してクリア信号を出力してステップ実行レジスタ６０２の値を自動的にクリアする。
【００４７】
次に、パルス生成回路６０１で生成されたパルス波形は、ＯＲ回路６０３からクロックイネーブル信号５６３としてクロック生成回路２７０に出力される。
【００４８】
図７は、クロック生成回路２７０の構成の一例とタイミングチャートを示す図である。図７に示す（Ｂ）のように、クロック生成回路１７０はクロックイネーブル信号５６３のパルス出力期間のみ、ＤＭＡ制御部２３３及びタイマ制御部２４２へのＰＣＬＫ２７２の供給を行う。
【００４９】
尚、上述したように、ＤＭＡ制御部２３３及びタイマ制御部２４２はクロック同期回路であるため、ＰＣＬＫ２７２の供給があるとそのサイクル分だけ動作する。
【００５０】
ここで、上述したタイマ制御部２４２に注目してサイクル単位の逐次実行を行う場合について説明する。
【００５１】
設計者がＩＣＥ２０１からＣＰＵ２１０を制御してクロック制御部５６２のステップ実行レジスタ６０２に任意の値をセットすると、クロック生成回路２７０は１サイクル分のＰＣＬＫ２７２をタイマ制御部２４２に供給する。このＰＣＬＫ２７２が供給されると、タイマ制御部２４２はカウンタ値を一つだけカウントアップする。この場合も、デバッグモードへ移行したままの状態であるため、設計者はＩＣＥ２０１からＣＰＵ２１０を制御してタイマ制御部２４２にアクセスすることで、カウントアップした値を確認することが可能である。
【００５２】
また同様にして、設計者は必要なサイクル分だけタイマ制御部２４２を動作させることが可能であり、この動作期間中にタイマ制御部２４２が正しくカウントアップしない不具合やタイマ制御部２４２の特定のカウンタ値で割り込みが発生しない不具合等を実機システム上で容易に確認することが可能である。
【００５３】
図８に示す（Ａ）は、ステップ実行レジスタ６０２による逐次実行としてタイマコントローラ２４０のカウントアップ機能を実行させ、その状態で実際のカウンタ値をモニタし、カウントアップエラーが発生した場合を示すものである。また、図８に示す（Ｂ）は、タイマコントローラ２４０のカウンタ値が比較値レジスタの値と一致したときに割り込み信号を発生させる機能を実行させ、割り込み信号が発生しない場合を示すものである。
【００５４】
以上説明した実施例２によれば、設計者は周辺回路をサイクル単位で逐次実行することが可能であり、実機システムにおいて従来では解析不可能であったサイクル単位のハードウエアの不具合解析を容易に行うことが可能となる。
【実施例３】
【００５５】
次に、図面を参照しながら本発明に係る実施例２について詳細に説明する。実施例３では、実施例２で説明したクロック制御部５６２に更にクロック供給の停止を予め選択するクロック選択レジスタを有するものである。
【００５６】
図９は、実施例３におけるデバッグ制御システムの構成の一例を示す図である。図９に示すように、実施例３は図５を用いて説明した実施例２と、クロックコントローラ９６０及びクロック生成回路９７０が異なるものである。
【００５７】
図９に示すクロックコントローラ９６０において、スレーブＩ／Ｆ９６１は実施例１のスレーブＩ／Ｆ２６１、実施例２のスレーブＩ／Ｆ５６１と同じであるが、クロック制御部９６２は図１０を用いて説明するように構成が異なるものである。ここでは、実施例３におけるクロック制御部９６２の構成について説明する。
【００５８】
図１０は、実施例３におけるクロック制御部９６２の構成の一例を示す図である。実施例３では、図１０に示すように、実施例２の構成に更にクロック選択レジスタ１００１を有し、事前にこのクロック選択レジスタ１００１に所定の値をセットしておくことで対応するビットの周辺回路に対してのみクロックの供給を停止させるものである。
【００５９】
図１０に示す例では、クロック選択レジスタ１００１のビット［０］を「１」にセットしておき、デバッグモード通知信号２１１がアサートされると、クロックイネーブル信号ａ９６３がディアサートされる。また、クロック選択レジスタ１００１のビット［１］を「１」にセットしておき、デバッグモード通知信号２１１がアサートされると、クロックイネーブル信号ａ９６３がディアサートされる。
【００６０】
また、実施例３におけるクロック生成回路９７０は、図７に示した（Ａ）の構成を上述したクロック制御部９６２から出力されるクロックイネーブル信号ａ９６３、ｂ９６４に対応させて並列に２つ備え、ＰＣＬＫａ９７１、ｂ９７２を生成するものである。
【００６１】
次に、以上の構成を有する実施例３におけるデバッグ制御システム９００の詳細な動作について説明する。
【００６２】
まず初めに、ＣＰＵ２１０がデバッグモードへ移行する前に、デバッグモードにおいてクロックの供給を停止させたい周辺回路に対応するクロック選択レジスタ１００１の任意のビットをセットしておく。
【００６３】
尚、ここでは、クロック選択レジスタ１００１のビット［０］がＤＭＡ制御部２３３に対応し、ビット［１］がタイマ制御部２４２に対応するものとして、事前にビット［０］のみをセットしておく。
【００６４】
次に、ＣＰＵ２１０がデバッグモードへ移行する手順は、従来例と同様であり、その後、周辺回路へのクロック供給の停止及びステップ実行レジスタ６０２による周辺回路へのサイクル単位の逐次実行の手順は実施例２と同様である。
【００６５】
尚、事前にクロック選択レジスタ１００１によって選択されていない周辺回路へのクロック供給は停止されず、通常通りリアルタイムに動作する。これは以下の手順により実施される。
【００６６】
デバッグモードへ移行すると、ＣＰＵ２１０はデバッグモード通知信号２１１をアサートする。一方、クロック制御部９６２は、各周辺回路に対応するクロックイネーブル信号ａ９６３、ｂ９６４を生成している。そして、デバッグモード通知信号２１１がアサートされると、クロック選択レジスタ１００１の対応するビットがセットされている信号のみディアサートする。
【００６７】
ここでは、事前にクロック選択レジスタ１００１のビット［０］のみをセットしているので、ＤＭＡ制御部２３３用のクロックイネーブル信号ａ９６３のみがディアサートされる。タイマ制御部１４０用のクロックイネーブル信号ｂ９６４は、クロック選択レジスタ１００１のビット［１］がセットされていないため、アサートされたままである。
【００６８】
一方、クロック生成回路９７０は、ＤＭＡ制御部２３３用のクロックイネーブル信号ａ９６３とタイマ制御部２４２用のクロックイネーブル信号ｂ９６４からそれぞれクロック９７１（ＰＣＬＫａ）とクロック９７２（ＰＣＬＫｂ）を生成している。ここでクロックイネーブル信号ａ９６３がディアサートされると、クロック９７１（ＰＣＬＫａ）をローレベルで固定してＤＭＡ制御部２３３へのクロック供給を停止する。
【００６９】
尚、上述したように、ＤＭＡ制御部２３３はクロック同期回路であるため、ＰＣＬＫａ９７１の供給が停止されると、即座にその動作を停止する。
【００７０】
また、クロック９７２（ＰＣＬＫｂ）は、クロックイネーブル信号ｂ９６４がアサートされたままであるため、通常通り動作しており、タイマ制御部２４２へのクロック供給は停止しない。
【００７１】
このような状態で、設計者がユーザプログラムのステップ実行を行うことでＤＭＡ制御部２３３の影響を受けることなく、解析を継続することが可能となる。
【００７２】
以上説明した実施例３によれば、設計者はデバッグモードへの移行時にデバッグに必要な最低限のモジュールのみを動作させることが可能となり、実機デバッグにおける作業の効率を向上させることができる。
【００７３】
更に、任意の周辺回路を同時に動作させることで、その競合動作による不具合の解析も可能である。
【００７４】
上述した実施例では、ＣＰＵからのデバッグモード通知信号に基づいてクロック制御部及びクロック生成回路が周辺回路へ供給するＰＣＬＫを停止させているが、ＩＣＥからの所定の信号により停止させるように構成しても良い。
【００７５】
尚、本発明は複数の機器（例えば、ホストコンピュータ，インターフェース機器，リーダ，プリンタなど）から構成されるシステムに適用しても、１つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用しても良い。
【００７６】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【００７７】
この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【００７８】
このプログラムコードを供給するための記録媒体としては、例えばフロッピー（登録商標）ディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００７９】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００８０】
更に、記録媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００８１】
【図１】一般的なデバッグ制御システムの構成の一例を示す図である。
【図２】実施例１におけるデバッグ制御システムの構成の一例を示す図である。
【図３】クロックイネーブル信号２６３を生成する回路の一例を示す図である。
【図４】クロック生成回路２７０の構成の一例とタイミングチャートを示す図である。
【図５】実施例２におけるデバッグ制御システムの構成の一例を示す図である。
【図６】実施例２におけるクロック制御部５６２の構成の一例を示す図である。
【図７】クロック生成回路２７０の構成の一例とタイミングチャートを示す図である。
【図８】ステップ実行レジスタ６０２による逐次実行で発生する不具合の例を説明するための図である。
【図９】実施例３におけるデバッグ制御システムの構成の一例を示す図である。
【図１０】実施例３におけるクロック制御部９６２の構成の一例を示す図である。
【符号の説明】
【００８２】
１００  デバッグ制御システム
１０１  ＩＣＥ
１０２  外部メモリ
１１０  ＣＰＵ
１２０  オンチップバス
１３０  ＤＭＡコントローラ
１３１  スレーブＩ／Ｆ
１３２  マスタＩ／Ｆ
１３３  ＤＭＡ制御部
１４０  タイマコントローラ
１４１  スレーブＩ／Ｆ
１４２  タイマ制御部
１５０  ＭＥＭコントローラ
１５１  スレーブＩ／Ｆ
１５２  ＭＥＭ制御部
２００  デバッグ制御システム
２０１  ＩＣＥ
２０２  外部メモリ
２１０  ＣＰＵ
２１１  デバッグモード通知信号
２２０  オンチップバス
２３０  ＤＭＡコントローラ
２３１  スレーブＩ／Ｆ
２３２  マスタＩ／Ｆ
２３３  ＤＭＡ制御部
２４０  タイマコントローラ
２４１  スレーブＩ／Ｆ
２４２  タイマ制御部
２５０  ＭＥＭコントローラ
２５１  スレーブＩ／Ｆ
２５２  ＭＥＭ制御部
２６０  クロックコントローラ
２６１  スレーブＩ／Ｆ
２６２  クロック制御部
２６３  クロックイネーブル信号
２７０  クロック生成回路
２７１  外部クロック（XSYSCLK）
２７２  ＰＣＬＫ
【図１】
2006171810.tif 000003
【図２】
2006171810.tif 000004
【図３】
2006171810.tif 000005
【図４】
2006171810.tif 000006
【図５】
2006171810.tif 000007
【図６】
2006171810.tif 000008
【図７】
2006171810.tif 000009
【図８】
2006171810.tif 000010
【図９】
2006171810.tif 000011
【図１０】
2006171810.tif 000012