(57)【要約】【課題】オンチップデバッグ機能を有する半導体装置において、デバッグ装置を取り外すだけでデバッグ終了後にデバッグ無効モードに復帰させること。【解決手段】ＭＣＵ１００は、外部のデバッグ装置３００と接続されるデバッグ端子１０２と、デバッグ装置３００によるデバッグ実行中に、デバッグ端子１０２における信号レベルの変化を監視する端子モニタ部１１０と、を備え、信号レベルの変化が所定時間以上ない場合に、デバッグを実行するための第１モードから通常動作を行うための第２モードへ遷移させる。【選択図】図１
2014119779.tif 000002
【特許請求の範囲】
【請求項１】
外部のデバッグ装置と接続されるデバッグ端子と、
前記デバッグ装置によるデバッグ実行中に、前記デバッグ端子における信号レベルの変化を監視する端子モニタ部と、を備え、
前記信号レベルの変化が所定時間以上ない場合に、デバッグを実行するための第１モードから通常動作を行うための第２モードへ遷移させる
半導体装置。
【請求項２】
前記デバッグ端子は、少なくとも１本以上の信号群により前記デバッグ装置と接続され、
前記端子モニタ部は、
前記信号群における少なくとも一部の信号レベルが特定のレベルで維持されている時間である信号維持時間を計測し、
前記信号維持時間が所定時間以上であるか否かを判定し、
当該信号維持時間が所定時間以上であると判定した場合に、前記信号レベルの変化が所定時間以上ないものとする、
請求項１に記載の半導体装置。
【請求項３】
前記第２モードにおいて前記デバッグ端子における信号レベルが前記特定のレベルから当該特定のレベル以外に変化した場合に、前記第１モードに遷移させ、外部から入力されるリセット信号をマスクし、
前記端子モニタ部は、前記デバッグ装置によるデバッグ実行の開始後に、前記デバッグ端子における信号レベルの変化の監視を開始し、
前記端子モニタ部において、前記信号維持時間が所定時間以上であると判定した場合、前記リセット信号のマスクを解除して前記第２モードへ遷移させる
請求項２に記載の半導体装置。
【請求項４】
前記端子モニタ部において、前記信号維持時間が所定時間以上であると判定した場合、前記半導体装置の内部をリセットした後に、前記第２モードへ遷移させる
請求項３に記載の半導体装置。
【請求項５】
前記端子モニタ部は、
前記信号群における少なくとも一部の信号レベルが前記特定のレベルであることを検出するレベル検出回路と、
前記信号維持時間を計測し、前記信号維持時間が所定時間以上であるか否かを判定するタイマ部とを備え、
前記タイマ部は、
前記所定時間を設定する設定手段と、
前記レベル検出回路により検出された信号レベルの維持時間を計測する計測器と、
前記計測された維持時間と前記設定された所定時間とを比較し、比較結果を出力する比較器と、
を有する
請求項３又は４に記載の半導体装置。
【請求項６】
前記デバッグ装置が接続された場合に前記第１モードに遷移させ、外部から入力されるリセット信号をマスクし、
前記信号レベルの変化が所定時間以上ない場合に、前記リセット信号のマスクを解除して前記第２モードへ遷移させる
請求項１に記載の半導体装置。
【請求項７】
前記デバッグ装置が接続された場合に前記第１モードに遷移させ、
前記信号レベルの変化が所定時間以上ない場合に、前記半導体装置の内部をリセットした後に、前記第２モードへ遷移させる
請求項１に記載の半導体装置。
【請求項８】
外部のデバッグ装置と接続されるデバッグ端子と、
前記デバッグ装置によるデバッグ実行中に、前記デバッグ端子における特定の信号レベルが維持されている時間である信号維持時間を計測する端子モニタ部と、
前記信号維持時間が所定時間以上維持されている場合に、デバッグを実行するための第１モードから通常動作を行うための第２モードへ遷移させるモード制御部と、
を備える半導体装置。
【請求項９】
前記モード制御部は、
前記第１モードである場合に、外部から入力されるリセット信号をマスクし、
前記信号維持時間が所定時間以上維持されている場合に、前記リセット信号のマスクを解除する
請求項８に記載の半導体装置。
【請求項１０】
前記モード制御部は、
前記第１モードである場合に前記リセット信号をマスクするためのリセットマスク信号を有効にし、前記信号維持時間が所定時間以上維持されている場合に当該リセットマスク信号を無効にするリセットマスク制御部と、
前記リセット信号と前記リセットマスク信号とを入力し、マスク後のリセット信号を出力するリセット制御部と、を有する
請求項９に記載の半導体装置。
【請求項１１】
前記端子モニタ部は、
前記信号維持時間が所定時間以上維持されているか否かを判定し、
前記判定結果に応じて端子モニタ信号を前記リセットマスク制御部へ出力し、
前記リセットマスク制御部は、
前記端子モニタ信号が、前記信号維持時間が所定時間以上維持されていることを示す場合に、前記リセットマスク信号を無効にする
請求項１０に記載の半導体装置。
【請求項１２】
前記リセットマスク制御部は、
前記デバッグ端子からの信号及びパワーオンリセット信号を入力し、当該デバッグ端子からの信号がデバッグ実行後に変化した場合にハイレベルの信号を出力するラッチ回路と、
前記端子モニタ信号と、前記ラッチ回路からの出力信号との論理積の結果を前記リセットマスク信号として前記リセット制御部へ出力する論理積回路と、
を有する請求項１１に記載の半導体装置。
【請求項１３】
前記モード制御部は、
前記第１モードに遷移した場合に前記リセット信号を無効にし、前記信号維持時間が所定時間以上維持されている場合に前記リセット信号を有効にして出力するリセット制御部と、を有する
請求項９に記載の半導体装置。
【請求項１４】
前記端子モニタ部は、
前記信号維持時間が所定時間以上維持されているか否かを判定し、
前記判定結果に応じて端子モニタ信号を前記リセット制御部へ出力し、
前記リセット制御部は、
前記端子モニタ信号が、前記信号維持時間が所定時間以上維持されていることを示す場合に、前記リセット信号を有効にして出力する
請求項１３に記載の半導体装置。
【請求項１５】
前記デバッグ端子は、少なくとも１本以上の信号群により前記デバッグ装置と接続され、
前記端子モニタ部は、
前記信号群における少なくとも一部の信号レベルが特定のレベルで維持されている時間である信号維持時間を計測し、
前記信号維持時間が所定時間以上であるか否かを判定し、
前記判定結果に応じて端子モニタ信号を前記モード制御部へ出力する
請求項８に記載の半導体装置。
【請求項１６】
外部のデバッグ装置と接続されるデバッグ端子を備える半導体装置のデバッグ制御方法であって、
前記半導体装置が、
前記デバッグ装置によるデバッグ実行中に、前記デバッグ端子における信号レベルの変化を監視し、
前記信号レベルの変化が所定時間以上ない場合に、デバッグを実行するための第１モードから通常動作を行うための第２モードへ遷移させる
半導体装置のデバッグ制御方法。
【請求項１７】
前記デバッグ端子は、少なくとも１本以上の信号群により前記デバッグ装置と接続され、
前記半導体装置が、
前記信号群における少なくとも一部の信号レベルが特定のレベルで維持されている時間である信号維持時間を計測し、
前記信号維持時間が所定時間以上であるか否かを判定し、
当該信号維持時間が所定時間以上であると判定した場合に、前記信号レベルの変化が所定時間以上ないものとする、
請求項１６に記載のデバッグ制御方法。
【請求項１８】
前記半導体装置が、
前記第２モードにおいて前記デバッグ端子における信号レベルが前記特定のレベルから当該特定のレベル以外に変化した場合に、前記第１モードに遷移させ、外部から入力されるリセット信号をマスクし、
前記デバッグ装置によるデバッグ実行の開始後に、前記デバッグ端子における信号レベルの変化の監視を開始し、
前記信号維持時間が所定時間以上であると判定した場合、前記リセット信号のマスクを解除して前記第２モードへ遷移させる
請求項１７に記載のデバッグ制御方法。
【請求項１９】
前記半導体装置が、
前記信号維持時間が所定時間以上であると判定した場合、前記半導体装置の内部をリセットした後に、前記第２モードへ遷移させる
請求項１８に記載のデバッグ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置及びそのデバッグ制御方法に関し、例えば、オンチップデバッグ機能を有する半導体装置及びそのデバッグ制御方法に関する。
【背景技術】
【０００２】
近年、半導体装置の一種であるマイクロコンピュータの機能の複雑化や性能の向上により、マイクロコンピュータ内にデバッグ用の機能を内蔵しているオンチップデバッグ機能を有するものが増加している。そのため、規模が小さくピンが少ないマイクロコンピュータにもデバッグ用の機能を内蔵したものが多く採用されている。例えば、１線式デバッグ方式のプロトコルが採用されるマイクロコンピュータがある。特に、マイクロコンピュータをシステム上に実装した後、システムのメンテナンスやフィールドテスト等のためにデバッグ装置（エミュレータ等）を接続して、前記デバッグやテストを行うケースも増えている。
【０００３】
ここで、車載機器においては、狭い空間に設置されるＥＣＵ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）に搭載した状態で評価及び調整することとなる。そのため、少ないインターフェース信号数でマイクロコンピュータと接続できる要求が高まっている。また、顧客設計の回路や機能を実装するに当たり、ＣＰＵとは切り離して動作するものもある。そのため、デバッグ後にデバッグ装置を外した時に電源投入後の動作を実現することが求められている。
【０００４】
特許文献１には、パワーオンリセットを利用してデバッグモードを決定するためのデバッグモード決定方法に関する技術が開示されている。デバッグモードとしては、ＭＣＵのデバッグを許可するデバッグ有効モードと、デバッグを許可しないデバッグ無効モードが用いられる。特許文献１にかかるＭＣＵ内のパワーオンリセット回路は、電源投入時及び／又は電源電圧が許容値より低下したことを検出した時に、リセット信号（以下、「パワーオンリセット信号」という。）を出力する。そして、特許文献１にかかるＭＣＵは、パワーオンリセット信号が発生している期間のデバッグ端子の入力信号レベルをラッチし、ラッチした信号レベルにより選択されるモードを判定する。モードが決まった後、デバッグ無効モードではＭＣＵのリセット解除後にユーザプログラムを実行する。一方、デバッグ有効モードではＭＣＵのリセット解除後にデバッグ専用プログラム（又は、モニタプログラム）を実行する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−９９０５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１にかかる技術において、デバッグ装置を取り外すだけでデバッグ終了後にデバッグ無効モードに復帰させることが困難であるという問題点がある。その理由は、特許文献１にかかる技術では、電源投入時における外部デバッグ装置の接続状態を判定できるが、デバッグ終了後には外部デバッグ装置を取り外されたとしても、デバッグ端子がロウレベル又はハイインピーダンス（断線状態）になり、未接続であることを検出できないからである。
【０００７】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
一実施の形態によれば、半導体装置は、デバッグ端子と接続される外部のデバッグ装置によるデバッグ実行中に、当該デバッグ端子における信号レベルの変化が所定時間以上ない場合に、デバッグを実行するための第１モードから通常動作を行うための第２モードへ遷移させるものである。
【発明の効果】
【０００９】
前記一実施の形態によれば、オンチップデバッグ機能を有する半導体装置において、簡易な操作でデバッグを実現できる。
【図面の簡単な説明】
【００１０】
【図１】本実施の形態１にかかるマイクロコンピュータの構成を示すブロック図である。
【図２】本実施の形態１にかかる端子モニタ部の構成を示すブロック図である。
【図３】本実施の形態１にかかるリセットマスク制御部の構成を示すブロック図である。
【図４】本実施の形態１にかかるマイクロコンピュータの動作の流れを示すフローチャートである。
【図５】本実施の形態１にかかるデバッグ制御の流れを示すフローチャートである。
【図６】本実施の形態１にかかるデバッグ制御におけるタイミングチャートである。
【図７】本実施の形態２にかかるマイクロコンピュータの構成を示すブロック図である。
【図８】本実施の形態２にかかるリセットマスク制御部の構成を示すブロック図である。
【発明を実施するための形態】
【００１１】
以下では、上述した課題を解決するための手段を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。
【００１２】
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、応用例、詳細説明、補足説明等の関係にある。また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
【００１３】
さらに、以下の実施の形態において、その構成要素（動作ステップ等も含む）は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数等（個数、数値、量、範囲等を含む）についても同様である。
【００１４】
＜実施の形態１＞
まず、上述した問題点について詳述する。特許文献１にかかるデバッグモード決定方法では、ＭＣＵ電源投入直後の外部デバッグ装置の接続状態を判断して、デバッグモードを決定している。そして、デバッグ中、デバッグ環境へ影響を与えないようにＣＰＵへのリセットがマスクされている。また、特許文献１におけるソフトウェアリセットは端子リセットができない。そのため、デバッグ無効モードへの復帰には、別途、端子リセットが必要となる。もし、このようにリセット状態にしてデバッグ有効モードを解除しなければ、ＣＰＵが暴走してしまうおそれがある。また、車載機器等では、デバッグ専用リセット端子を設けることについては、ノイズ源になる可能性があるために推奨されないことが多い。よって、このような環境では、電源ＯＦＦ／ＯＮによるパワーオンリセットをせざるを得ない。
【００１５】
そこで、車載機器等に搭載されたＭＣＵについて、デバッグを行い、その後デバッグ無効モードへ復帰させるには、特許文献１においては以下の操作が必要となる。まず、ＭＣＵが電源ＯＦＦの状態で、ＭＣＵに外部デバッグ装置を接続する。次に、ＭＣＵの電源を投入する。この時点で外部デバッグ装置が接続されているため、ＭＣＵはデバッグ有効モードへ遷移する。引き続き、ＭＣＵ上で外部デバッグ装置によりデバッグが実行される。
【００１６】
そして、デバッグの実行が終了した後、外部デバッグ装置を取り外す。但し、この時点では、ＭＣＵは、外部デバッグ装置の接続有無について判別ができない。その理由は、ＭＣＵと外部デバッグ装置が１線で接続（１線式デバッグ方式のプロトコル）されているため、デバッグ端子がロウレベル又はハイインピーダンス（断線状態）になり、未接続であることを検出できないからである。そのため、ＭＣＵのバッテリを外す等により電源のＯＦＦ／ＯＮを行う。これにより、その後ＭＣＵが起動した際に、外部デバッグ装置が接続されていないと判断され、デバッグ無効モードへ遷移することができる。
【００１７】
ここで、車載機器のようなＥＣＵに搭載されたＭＣＵは、バッテリを外す等の操作が容易にはできない。そのため、ＭＣＵの検査等のために外部デバッグ装置を接続し、デバッグ後に取り外すことによりデバッグ無効モードへ遷移させる、といった簡便なデバッグを行うことができない。そのため、電源のＯＦ／ＯＮが容易に行えない環境には、デバッグ専用のリセット端子を持たないようなＭＣＵを適用することが困難である。
【００１８】
そこで、本実施の形態１にかかる半導体装置は、外部のデバッグ装置と接続されるデバッグ端子と、前記デバッグ装置によるデバッグ実行中に、前記デバッグ端子における信号レベルの変化を監視する端子モニタ部と、を備えるものである。そして、当該半導体装置は、前記信号レベルの変化が所定時間以上ない場合に、デバッグを実行するための第１モードから通常動作を行うための第２モードへ遷移させるものである。このように、デバッグ端子における信号レベルの変化が所定時間以上ないことは、デバッグが実行されていないこと又はデバッグ装置が未接続であることを意味する。そのため、デバッグ装置が取り外されたことを検出でき、オンチップデバッグ機能を有する半導体装置において、簡易な操作でデバッグを実現できる。
【００１９】
また、前記デバッグ端子は、少なくとも１本以上の信号群により前記デバッグ装置と接続されることが望ましい。この場合、前記端子モニタ部は、前記信号群における少なくとも一部の信号レベルが特定のレベルで維持されている時間である信号維持時間を計測し、前記信号維持時間が所定時間以上であるか否かを判定する。そして、当該半導体装置は、当該信号維持時間が所定時間以上であると判定した場合に、前記信号レベルの変化が所定時間以上ないものとする。このように、デバッグ装置との間の信号レベルの維持時間を計測することで、アクセス時間相当を計測でき、より確実にデバッグ装置の取り外しを検出できる。
【００２０】
さらに、前記半導体装置は、前記第２モードにおいて前記デバッグ端子における信号レベルが前記特定のレベルから当該特定のレベル以外に変化した場合に、前記第１モードに遷移させ、外部から入力されるリセット信号をマスクする。そして、前記端子モニタ部は、前記デバッグ装置によるデバッグ実行の開始後に、前記デバッグ端子における信号レベルの変化の監視を開始する。その後、当該半導体装置は、前記端子モニタ部において、前記信号維持時間が所定時間以上であると判定した場合、前記リセット信号のマスクを解除して前記第２モードへ遷移させる。これにより、リセットタイミングを柔軟に制御できる。
【００２１】
また、前記端子モニタ部は、前記信号群における少なくとも一部の信号レベルが前記特定のレベルであることを検出するレベル検出回路と、前記信号維持時間を計測し、前記信号維持時間が所定時間以上であるか否かを判定するタイマ部とを備えることが望ましい。この場合、前記タイマ部は、前記所定時間を設定する設定手段と、前記レベル検出回路により検出された信号レベルの維持時間を計測する計測器と、前記計測された維持時間と前記設定された所定時間とを比較し、比較結果を出力する比較器と、を有する。これにより、アクセス状態の監視をより適切に行うことができる。
【００２２】
また、前記半導体装置は、前記デバッグ装置が接続された場合に前記第１モードに遷移させ、外部から入力されるリセット信号をマスクし、前記信号レベルの変化が所定時間以上ない場合に、前記リセット信号のマスクを解除して前記第２モードへ遷移させるものということができる。これにより、リセットタイミングを柔軟に制御できる。
【００２３】
ここで、本実施の形態１にかかる半導体装置は、次のように表現することもできる。すなわち、本実施の形態１にかかる半導体装置は、外部のデバッグ装置と接続されるデバッグ端子と、前記デバッグ装置によるデバッグ実行中に、前記デバッグ端子における特定の信号レベルが維持されている時間である信号維持時間を計測する端子モニタ部と、前記信号維持時間が所定時間以上維持されている場合に、デバッグを実行するための第１モードから通常動作を行うための第２モードへ遷移させるモード制御部と、を備えるものである。このように、信号維持時間が所定時間以上維持されていることは、デバッグが実行されていないこと又はデバッグ装置が未接続であることを意味する。そのため、デバッグ装置が取り外されたことを検出でき、オンチップデバッグ機能を有する半導体装置において、簡易な操作でデバッグを実現できる。
【００２４】
また、前記モード制御部は、前記第１モードである場合に、外部から入力されるリセット信号をマスクし、前記信号維持時間が所定時間以上維持されている場合に、前記リセット信号のマスクを解除することが望ましい。これにより、デバッグ中に外部からのリセット要求を排除し、安定的にデバッグを実行できる。
【００２５】
さらに、前記モード制御部は、前記第１モードである場合に前記リセット信号をマスクするためのリセットマスク信号を有効にし、前記信号維持時間が所定時間以上維持されている場合に当該リセットマスク信号を無効にするリセットマスク制御部と、前記リセット信号と前記リセットマスク信号とを入力し、マスク後のリセット信号を出力するリセット制御部と、を有するとよい。これにより、リセットマスク信号により外部のリセット信号を容易に制御できる。
【００２６】
さらにまた、前記端子モニタ部は、前記信号維持時間が所定時間以上維持されているか否かを判定し、前記判定結果に応じて端子モニタ信号を前記リセットマスク制御部へ出力するとよい。そして、前記リセットマスク制御部は、前記端子モニタ信号が、前記信号維持時間が所定時間以上維持されていることを示す場合に、前記リセットマスク信号を無効にするとよい。このように、端子モニタ信号によりリセットマスク信号をより適切に制御できる。
【００２７】
さらに、前記リセットマスク制御部は、前記デバッグ端子からの信号及びパワーオンリセット信号を入力し、当該デバッグ端子からの信号がデバッグ実行後に変化した場合にハイレベルの信号を出力するラッチ回路と、前記端子モニタ信号と、前記ラッチ回路からの出力信号との論理積の結果を前記リセットマスク信号として前記リセット制御部へ出力する論理積回路と、を有するとよい。これにより、リセットマスク信号の制御をより適切に行うことができる。
【００２８】
また、前記デバッグ端子は、少なくとも１本以上の信号群により前記デバッグ装置と接続され、前記端子モニタ部は、前記信号群における少なくとも一部の信号レベルが特定のレベルで維持されている時間である信号維持時間を計測し、前記信号維持時間が所定時間以上であるか否かを判定し、前記判定結果に応じて端子モニタ信号を前記モード制御部へ出力することが望ましい。このように、デバッグ装置との間の信号レベルの維持時間を計測することで、アクセス時間相当を計測でき、より確実にデバッグ装置の取り外しを検出できる。
【００２９】
また、本実施の形態１にかかる半導体装置のデバッグ制御方法は、次のように表現することができる。すなわち、外部のデバッグ装置と接続されるデバッグ端子を備える半導体装置のデバッグ制御方法である。このとき、前記半導体装置が、前記デバッグ装置によるデバッグ実行中に、前記デバッグ端子における信号レベルの変化を監視し、前記信号レベルの変化が所定時間以上ない場合に、デバッグを実行するための第１モードから通常動作を行うための第２モードへ遷移させる。このように、デバッグ端子における信号レベルの変化が所定時間以上ないことは、デバッグが実行されていないこと又はデバッグ装置が未接続であることを意味する。そのため、デバッグ装置が取り外されたことを検出でき、オンチップデバッグ機能を有する半導体装置において、簡易な操作でデバッグを実現できる。
【００３０】
また、前記デバッグ端子は、少なくとも１本以上の信号群により前記デバッグ装置と接続され、前記半導体装置が、前記信号群における少なくとも一部の信号レベルが特定のレベルで維持されている時間である信号維持時間を計測し、前記信号維持時間が所定時間以上であるか否かを判定し、当該信号維持時間が所定時間以上であると判定した場合に、前記信号レベルの変化が所定時間以上ないものとすることが望ましい。このように、デバッグ装置との間の信号レベルの維持時間を計測することで、アクセス時間相当を計測でき、より確実にデバッグ装置の取り外しを検出できる。
【００３１】
さらに、前記半導体装置が、前記第２モードにおいて前記デバッグ端子における信号レベルが前記特定のレベルから当該特定のレベル以外に変化した場合に、前記第１モードに遷移させ、外部から入力されるリセット信号をマスクし、前記デバッグ装置によるデバッグ実行の開始後に、前記デバッグ端子における信号レベルの変化の監視を開始し、前記信号維持時間が所定時間以上であると判定した場合、前記リセット信号のマスクを解除して前記第２モードへ遷移させるとよい。これにより、リセットタイミングを柔軟に制御できる。
【００３２】
以下では、本実施の形態１にかかる半導体装置の一実施例であるオンチップデバッグ機能付きマイクロコンピュータ（ＭＣＵ）について説明する。図１は、本実施の形態１にかかるＭＣＵ１００の構成を示すブロック図である。
【００３３】
まず、前提として、本実施の形態で対象とするシングルチップＭＣＵ用のデバッグシステムは、ＭＣＵ１００と、外部デバッグ装置３００と、ホストコンピュータ（不図示）上で動作するデバッガソフトウェア（不図示）とで構成されるものとする。ＭＣＵ１００は、半導体集積回路の基板上に実装される。また、システムの構成により、基板上に外部リセット制御回路２００が実装される。そして、ＭＣＵ１００は、リセット端子１０１を介して外部リセット制御回路２００と接続される。また、ＭＣＵ１００は、デバッグ端子１０２を介して外部デバッグ装置３００と接続される。そのため、ＭＣＵ１００は、外部デバッグ装置３００を介してホストコンピュータに接続されることとなる。
【００３４】
外部デバッグ装置３００は、前記基板上に実装されたＭＣＵ１００のデバッグ端子１０２にプルアップ回路３０１を接続する。外部デバッグ装置３００は、ＭＣＵ１００の外部で、デバッグプログラムの実行等により、ＭＣＵ１００に対する各種デバッグ処理を行う。外部リセット制御回路２００は、前記基板上に実装されたＭＣＵ１００のリセット端子１０１に接続する。外部リセット制御回路２００は、例えば、ＭＣＵ１００の外部のリセットＩＣや他のＥＣＵに相当するものです。
【００３５】
ＭＣＵ１００は、リセット端子１０１と、デバッグ端子１０２と、端子モニタ部１１０と、モード制御部１２０と、ＣＰＵ１３０と、パワーオンリセット部１４０と、Ｎチャネルオープンドレインバッファ１５０とを備える。リセット端子１０１は、外部リセット制御回路２００と接続される。デバッグ端子１０２は、外部デバッグ装置３００と接続される。デバッグ端子１０２は、少なくとも１本以上の信号群により前記デバッグ装置と接続される。
【００３６】
端子モニタ部１１０は、デバッグ端子１０２経由で外部デバッグ装置３００からのデバッグ信号２０５を入力し、デバッグ制御部１２２に端子モニタ信号２０６を出力する。また、端子モニタ部１１０は、デバッグ端子１０２を監視する。具体的には、端子モニタ部１１０は、外部デバッグ装置３００によるデバッグ実行中に、デバッグ端子１０２における信号レベルの変化を監視する。より詳細には、端子モニタ部１１０は、外部デバッグ装置３００によるデバッグ実行中に、デバッグ端子１０２における特定の信号レベルが維持されている時間である信号維持時間を計測する。そして、端子モニタ部１１０は、信号維持時間が所定時間以上であるか否かを判定する。つまり、端子モニタ部１１０は、信号レベルの変化が所定時間以上ないことを検出する。または、端子モニタ部１１０は、信号維持時間が所定時間以上であることを検出する。ここで、端子モニタ部１１０が、当該信号維持時間が所定時間以上であると判定した場合は、信号レベルの変化が所定時間以上ないこととを示すものといえる。端子モニタ部１１０は、判定結果に応じて端子モニタ信号２０６を後述するリセットマスク制御部１２３へ出力する。
【００３７】
また、端子モニタ部１１０は、少なくともタイマ部１１１を有する。タイマ部１１１は、デバッグ端子１０２のハイレベル期間を計測する。すなわち、タイマ部１１１は、特定の信号レベルが維持されている時間である信号維持時間を計測し、前記信号維持時間が所定時間以上であるか否かを判定する。
【００３８】
ここで、モード制御部１２０のデバッグモード制御機能は、ＭＣＵ１のデバッグを許可するモード（デバッグ有効モード）又はデバッグを許可しないモード（デバッグ無効モード）を決定し、決定したモードへＭＣＵ１００を遷移させる。ここで、デバッグ有効モードは、デバッグを実行するための第１モードの一例であり、デバッグ無効モードは、通常動作を行うための第２モードの一例である。
【００３９】
モード制御部１２０は、信号レベルの変化が所定時間以上ない場合に、ＭＣＵ１００のモードを、第１モードから第２モードへ遷移させる。すなわち、モード制御部１２０は、信号維持時間が所定時間以上維持されている場合に、ＭＣＵ１００のモードを、第１モードから第２モードへ遷移させる。
【００４０】
モード制御部１２０は、少なくともリセットマスク回路１２１と、デバッグ制御部１２２とを有する。デバッグ制御部１２２は、第１モードである場合にリセット信号２０１をマスクするためのリセットマスク信号２０２を有効にし、信号維持時間が所定時間以上維持されている場合にリセットマスク信号２０２を無効にする。リセットマスク回路１２１は、リセット信号２０１とリセットマスク信号２０２とを入力し、リセットマスク後のリセット信号２０３を出力するリセット制御部の一例である。リセットマスク回路１２１は、例えば、論理和回路で実現可能である。
【００４１】
ここで、デバッグ制御部１２２は、デバッグ中にＣＰＵ１３０の各種動作及び状態の監視及び制御を行う。デバッグ制御部１２２は、Ｎチャネルオープンドレインバッファ１５０を介してデバッグ端子１０２と接続されている。デバッグ制御部１２２は、少なくともリセットマスク制御部１２３を有する。リセットマスク制御部１２３は、端子モニタ部１１０からの端子モニタ信号２０６を入力し、端子モニタ信号２０６に基づいてリセットマスク信号２０２をリセットマスク回路１２１に出力する。具体的には、リセットマスク制御部１２３は、端子モニタ信号２０６が、信号維持時間が所定時間以上維持されていることを示す場合に、リセットマスク信号２０２を無効にする。
【００４２】
また、リセットマスク回路１２１は、デバッグ中にリセット信号２０１をマスクする。すなわち、リセットマスク回路１２１は、リセット端子１０１からのリセット信号２０１と、デバッグ制御部１２２からのリセットマスク信号２０２とを受け付け、論理和の結果をリセットマスク後のリセット信号２０３として出力する。
【００４３】
ＣＰＵ１３０は、ＭＣＵ１００を制御する。ＣＰＵ１３０は、パワーオンリセット部１４０からのパワーオンリセット信号２０４と、リセットマスク回路１２１からのリセットマスク後のリセット信号２０３とをそれぞれ入力する。パワーオンリセット部１４０は、ＭＣＵ１００の電源投入又は源電圧が許容値より低下したときに前記状態を検出して、ＭＣＵ１００をリセットする。パワーオンリセット部１４０は、電源電圧ＶＤＤを入力し、ＣＰＵ１３０及びデバッグ制御部１２２にパワーオンリセット信号２０４を出力する。
【００４４】
Ｎチャネルオープンドレインバッファ１５０は、デバッグ制御部１２２からハイレベルが出力された時、デバッグ端子１０２をハイ・インピーダンスにする。Ｎチャネルオープンドレインバッファ１５０は、デバッグ制御部１２２からハイレベル又はロウレベルのデバッグ信号２０７を入力し、デバッグ端子１０２をハイ・インピーダンスにするか、ロウレベルのデバッグ信号２０５を外部デバッグ装置３００に出力する。また、Ｎチャネルオープンドレインバッファ１５０は、デバッグ端子１０２からハイ・インピーダンスかロウレベルのデバッグ信号２０５を入力し、デバッグ制御部１２２へデバッグ信号２０７を出力する。
【００４５】
モード制御部１２０は、第２モードにおいてデバッグ端子１０２における信号レベルがハイレベルからロウレベルに変化した場合に、第１モードに遷移させ、外部から入力されるリセット信号２０１をマスクする。そして、端子モニタ部１１０は、外部リセット制御回路２００によるデバッグ実行の開始後に、デバッグ端子１０２における信号レベルの変化の監視を開始する。その後、モード制御部１２０は、端子モニタ部１１０において信号維持時間が所定時間以上であると判定した場合、リセット信号２０１のマスクを解除して第２モードへ遷移させる。
【００４６】
または、モード制御部１２０は、外部デバッグ装置３００が接続された場合に第１モードに遷移させ、外部から入力されるリセット信号２０１をマスクし、信号レベルの変化が所定時間以上ない場合に、リセット信号２０１のマスクを解除して第２モードへ遷移させるものということができる。
【００４７】
図２は、本実施の形態１にかかる端子モニタ部１１０の構成を示すブロック図である。端子モニタ部１１０は、レベル検出回路１１２と、タイマ部１１１とを備える。レベル検出回路１１２は、信号群における少なくとも一部の信号レベルが特定のレベルであることを検出する。すなわち、レベル検出回路１１２は、デバッグ端子１０２からデバッグ信号２０５を入力し、信号レベルを検出して、デバッグ端子１０２のハイレベル期間を計測する計測器１１４へ出力する。タイマ部１１１は、信号維持時間を計測し、信号維持時間が所定時間以上であるか否かを判定する。タイマ部１１１は、レジスタ１１３と、計測器１１４と、比較器１１５とを備える。ここで、タイマ部１１１は、計測される信号維持時間の閾値である所定時間をレジスタ１１３に設定する設定手段の機能を含むといえる。よって、レジスタ１１３には、リセットマスク信号２０２の任意の解除時間が設定される。計測器１１４は、レベル検出回路１１２により検出された信号レベルの信号維持時間を計測する。すなわち、計測器１１４は、レベル検出回路１１２からレベル検出信号を入力し、計測結果を比較器１１５へ出力する。比較器１１５は、計測された維持時間と設定された所定時間とを比較し、比較結果を端子モニタ信号２０６として出力する。すなわち、比較器１１５は、レジスタ１１３からリセットマスク信号２０２の解除時間と、計測器１１４で計測した時間とをそれぞれ入力し、比較結果をリセットマスク制御部１２３へ出力する。
【００４８】
図３は、本実施の形態１にかかるリセットマスク制御部１２３の構成を示すブロック図である。リセットマスク制御部１２３は、ラッチ回路１２４と、論理積回路１２５とを備える。ラッチ回路１２４は、デバッグ端子１０２からのデバッグ信号２０７及びパワーオンリセット信号２０４を入力し、デバッグ端子１０２からのデバッグ信号２０７がデバッグ実行後に変化した場合にハイレベルの信号を出力する。ここで、ラッチ回路１２４は、デバッグの開始後に、デバッグ信号２０７が一度でもロウレベルに変化した場合、パワーオンリセット信号２０４がオンになるまでの間、ハイレベルの信号を出力する。論理積回路１２５は、端子モニタ信号２０６と、ラッチ回路１２４からの出力信号との論理積の結果をリセットマスク信号２０２としてリセット制御部であるリセットマスク回路１２１へ出力する。ここで、端子モニタ信号２０６は、信号維持時間が所定時間以上維持されている場合にロウレベルとなる。そして、リセットマスク信号２０２は、ハイレベルのときにリセット信号２０１のマスクを有効にし、ロウレベルのときにリセット信号２０１のマスクを解除するものとする。
【００４９】
図４は、本実施の形態１にかかるＭＣＵ１００の動作の流れを示すフローチャートである。まず、ＭＣＵ１００を含むデバッグ対象となるシステムの電源が投入される（ステップＳ１０１）。次に、ＭＣＵ１００は、電源投入後にリセット端子１０１がロウレベルになる（ステップＳ１０２）。これにより、ＭＣＵ１００がリセット状態となる。続いて、ＭＣＵ１００は、リセット端子１０１がハイレベルになる（ステップＳ１０３）。これにより、ＭＣＵ１００は、リセットが解除されてデバッグ無効モードへ遷移する。
【００５０】
ここで、ＭＣＵ１００は、外部デバッグ装置３００が接続されているか否かを判定する（ステップＳ１０４）。このとき、端子モニタ部１１０は、デバッグ端子１０２からのデバッグ信号２０５のレベルにより、外部デバッグ装置３００が接続されているか否かを判定するようにしてもよい。外部デバッグ装置３００が接続されている場合、ステップＳ１０５へ進み、外部デバッグ装置３００が接続されていない場合、ステップＳ１０７へ進む。
【００５１】
ステップＳ１０４において、外部デバッグ装置３００が未接続の場合は、デバッグ信号２０５がハイレベルである（ステップＳ１０７）。このとき、ＭＣＵ１００は、デバッグ無効モードを継続する。そして、ＣＰＵ１３０は、デバッグ無効モードにおいて、ユーザプログラムを実行する（ステップＳ１０８）。その後、ＣＰＵ１３０は、リセットマスク後のリセット信号２０３によるリセットが発生したか否かを判定する（ステップＳ１０９）。リセットが発生した場合、ステップＳ１０４へ進む。
【００５２】
ステップＳ１０４において、外部デバッグ装置３００が接続されている場合は、デバッグ信号２０５がロウレベルである（ステップＳ１０５）。このとき、ＭＣＵ１００は、デバッグ有効モードへ遷移する。そして、ＭＣＵ１００は、デバッグ制御処理を実行する（ステップＳ１０６）。
【００５３】
図５は、本実施の形態１にかかるデバッグ制御の流れを示すフローチャートである。まず、端子モニタ部１１０は、レジスタ１１３にリセットマスク信号解除時間ＴＷ２を設定する（ステップＳ２０１）。リセットマスク信号解除時間ＴＷ２は、外部デバッグ装置３００との通信が終了したと判断するための閾値であり任意の時間である。
【００５４】
次に、ＭＣＵ１００は、デバッグ有効モード中のリセット端子１０１への入力であるリセット信号２０１をマスクする。つまり、デバッグ制御部１２２は、リセットマスク信号２０２を設定する、つまり有効にする（ステップＳ２０２）。そして、ＣＰＵ１３０は、デバッグ有効モードにおいてデバッグ制御部１２２内で実行するデバッグ専用プログラム（モニタプログラム）を実行する（ステップＳ２０３）。
【００５５】
ここで、タイマ部１１１は、タイマを開始する（ステップＳ２０４）。そして、端子モニタ部１１０は、デバッグ端子１０２を監視する（ステップＳ２０５）。つまり、レベル検出回路１１２は、デバッグ端子１０２からのデバッグ信号２０５の信号レベルがハイレベルであるか否かを示す信号を、計測器１１４へ出力する。計測器１１４は、デバッグ信号２０５の信号レベルがハイレベルである間、信号維持時間ＴＷ１を計測する。計測器１１４は、デバッグ信号２０５のレベルがハイレベルからロウレベルに変化した場合に、信号維持時間ＴＷ１の計測を終了する。そして、比較器１１５は、計測された信号維持時間ＴＷ１がレジスタ１１３に設定されたリセットマスク信号解除時間ＴＷ２以上であるか否かを判定する（ステップＳ２０６）。つまり、デバッグ信号２０５がハイレベルに変化してからロウレベルに変化するまでに経過した時間である信号維持時間ＴＷ１がリセットマスク信号解除時間ＴＷ２以上であるか否かを判定する。
【００５６】
ここで、上記タイマは、開始時刻からリセットマスク信号解除時間ＴＷ２まで経過した場合に、計測器１１４による計測を停止し、比較器１１５による比較を行わせる。そのため、信号維持時間ＴＷ１がリセットマスク信号解除時間ＴＷ２以上であれば、計測器１１４が信号維持時間ＴＷ１の計測を終了する前に、比較器１１５により信号維持時間ＴＷ１がリセットマスク信号解除時間ＴＷ２以上であると判定される。すなわち、端子モニタ部１１０は、外部デバッグ装置３００からＭＣＵ１００に対して、リセットマスク信号解除時間ＴＷ２だけハイレベル信号が継続した場合に、外部デバッグ装置３００との通信が終了したと判断する（ステップＳ２０６でＹＥＳ）。
【００５７】
言い換えると、端子モニタ部１１０は、デバッグ端子１０２のハイレベル期間である信号維持時間ＴＷ１がリセットマスク信号解除時間ＴＷ２の経過する以前にロウレベルを検出したか否かを判定する。そして、信号維持時間ＴＷ１がリセットマスク信号解除時間ＴＷ２以上であると判定した場合（ＴＷ１＞＝ＴＷ２）、ステップＳ２０８へ進む。一方、信号維持時間ＴＷ１がリセットマスク信号解除時間ＴＷ２未満であると判定した場合（ＴＷ１＜ＴＷ２）、ステップＳ２０７へ進む。
【００５８】
ここで、信号維持時間ＴＷ１がリセットマスク信号解除時間ＴＷ２未満であると判定した場合（ＴＷ１＜ＴＷ２）、端子モニタ部１１０は、デバッグ実行中と判断し、信号維持時間ＴＷ１及び上記タイマをクリアする（ステップＳ２０７）。そして、ステップＳ２０４へ進む。
【００５９】
また、デバッグ端子１０２は、Ｎチャネルオープンドレインバッファ１５０とプルアップ回路３０１を接続して使用するため、外部デバッグ装置３００との通信が終了した時にハイレベル状態を継続する。この場合、信号維持時間ＴＷ１がリセットマスク信号解除時間ＴＷ２以上であると判定する（ＴＷ１＞＝ＴＷ２）。そして、タイマ部１１１は、タイマを停止する（ステップＳ２０８）。続いて、デバッグ制御部１２２は、端子モニタ信号２０６に基づいてリセットマスク信号２１１を解除し（ステップＳ２０９）、リセット端子１０１からのリセット信号２０１をそのままＣＰＵ１３０へのリセット信号として出力する。すなわち、以後、外部リセット制御回路２００から有効なリセット信号２０１が入力された場合、ＭＣＵ１００は、内部をリセット可能になる。
【００６０】
その後、ＣＰＵ１３０は、リセットマスク後のリセット信号２０３によるリセットが発生したか否かを判定する（ステップＳ１０９）。リセットが発生した場合、ステップＳ１０４へ進む。
【００６１】
図６は、本実施の形態１にかかるデバッグ制御におけるタイミングチャートである。時刻Ｔ０において、ＭＣＵ１００の電源が投入される（ステップＳ１０１）。時刻Ｔ０〜Ｔ１の区間では、ＭＣＵ１００のリセット端子１０１の入力がロウレベルであり、ＭＣＵ１００はリセット状態である（ステップＳ１０２）。時刻Ｔ１において、ＭＣＵ１００のリセット端子１０１への入力がロウレベルからハイレベルに変化する（ステップＳ１０３）。これに伴い、リセットが解除され、ＭＣＵ１００はデバッグ無効モードへ遷移する。そして、時刻Ｔ１〜Ｔ２の区間は、ＭＣＵ１００がデバッグ無効モードを継続する。
【００６２】
時刻Ｔ２において、外部デバッグ装置３００がデバッグ端子１０２に接続されたものとする。このとき、デバッグ端子１０２がロウレベルとなり（ステップＳ１０５）、ＭＣＵ１００がデバッグ有効モードへ遷移する。尚、外部デバッグ装置３００が未接続の場合には、デバッグ端子１０２はハイレベルであるため、ＭＣＵ１００のデバッグ無効モードが継続することとなる。
【００６３】
時刻Ｔ２〜Ｔ５の区間は、ＭＣＵ１００がデバッグ有効モードを継続する。また、時刻Ｔ２〜Ｔ３の区間は、端子モニタ部１１０がリセットマスク信号解除時間ＴＷ２をレジスタ１１３に設定する（ステップＳ２０１）。そして、リセットマスク制御部１２３は、リセットマスク信号２０２をロウレベルからハイレベルにする（ステップＳ２０２）。これに伴い、リセット端子１０１からのリセット信号２０１がマスクされたリセットマスク後のリセット信号２０３が出力され、以後のＣＰＵ１３０へのリセットがマスクされる。つまり、リセットマスク信号２０２がハイレベルのため、リセット端子１０１にロウレベルが入力されても、リセットマスク回路１２１は常にリセットマスク後のリセット信号２０３をハイレベルとして出力し、ＭＣＵ１００は、リセット状態にならない。
【００６４】
ここで、ＣＰＵ１３０は、デバッグ専用プログラムを実行する（ステップＳ２０３）。その後、デバッグ専用プログラムによるＭＣＵ１００へのアクセス等によりデバッグ端子１０２がロウレベルとハイレベルとの変化を繰り返す。その間、タイマの開始（ステップＳ２０４）、デバッグ端子１０２のモニタ（ステップＳ２０５）、信号維持時間ＴＷ１とリセットマスク信号解除時間ＴＷ２の大小判定（ステップＳ２０６）が行われる。
【００６５】
つまり、端子モニタ部１１０は、デバッグ端子１０２のハイレベル又はロウレベルへの変化をモニタする。そして端子モニタ部１１０は、デバッグ端子１０２がロウレベルからハイレベルになると、デバッグ端子１０２のハイレベル期間である信号維持時間ＴＷ１について、計測器１１４による計測を開始する（ステップＳ２０５）。端子モニタ部１１０は、デバッグ端子１０２の信号維持時間ＴＷ１がリセットマスク信号解除時間ＴＷ２未満であると判定した場合（ＴＷ１＜ＴＷ２）に、ＭＣＵ１００がデバッグ中と判断する（ステップＳ２０６でＮＯ）。図６では、信号維持時間ＴＷ１ａ、ＴＷ１ｂ、ＴＷ１ｃ及びＴＷ１ｄがリセットマスク信号解除時間ＴＷ２より小さいため、都度、タイマがクリアされ（ステップＳ２０７）、ステップＳ２０４からＳ２０７が繰り返される。
【００６６】
その後、時刻Ｔ３において、端子モニタ部１１０が、デバッグ端子１０２の信号維持時間ＴＷ１ｅをタイマ部１１１の計測器１１４で計測を開始する。（ステップＳ２０４及びＳ２０５）。
【００６７】
時刻Ｔ４において、外部デバッグ装置３００がデバッグ端子１０２から取り外されたものとする。このとき、デバッグ端子１０２がハイインピーダンス（断線状態）になるため、時刻Ｔ３から信号レベルがハイレベルのまま維持される。そして、端子モニタ部１１０は、信号維持時間ＴＷ１ｅを計測し続ける。
【００６８】
時刻Ｔ５において、タイマ部１１１のタイマによりリセットマスク信号解除時間ＴＷ２が経過したものとする。よって、比較器１１５は、この時点での信号維持時間ＴＷ１ｅとリセットマスク信号解除時間ＴＷ２との比較を行う。そして、ここでは、ＴＷ１ｅとＴＷ２とが等しいと判定され（ステップＳ２０６でＹＥＳ）、タイマが停止され（ステップＳ２０８）、リセットマスク信号２０２が解除、つまりロウレベルへ変化する（ステップＳ２０９）。
【００６９】
そのため、時刻Ｔ６において、リセット端子１０１がハイレベルからロウレベルに変化したことにより、リセットマスク回路１２１は、リセットマスク後のリセット信号２０３をロウレベルにしてＣＰＵ１３０へ出力する。これにより、ＣＰＵ１３０がリセット状態になる。
【００７０】
このように、本実施の形態１では、ＭＣＵ１００のパワーオンリセットの制御ではなく、リセット端子１０１の制御で、デバッグ有効モードからデバッグ無効モードへの遷移を可能とするものである。そのため、デバッグ後に外部デバッグ装置３００をデバッグ端子１０２と未接続にしても、デバッグ有効モードからデバッグ無効モードへ復帰することができる効果がある。また、デバッグが終了したこと又は外部デバッグ装置３００が取り外されたことをデバッグ端子１０２の信号レベルの信号維持時間ＴＷ１がリセットマスク信号解除時間ＴＷ２以上であることを検出することで、外部デバッグ装置３００の取り外し以外に別途バッテリの取り外し操作等を行うことなく、デバッグ後のＭＣＵ１００をユーザプログラムの実行可能な状態へ遷移させることができる。
【００７１】
＜実施の形態２＞
本実施の形態２は、上述した実施の形態１の変形例である。本実施の形態２にかかる半導体装置は、端子モニタ部において、前記信号維持時間が所定時間以上であると判定した場合、前記半導体装置の内部をリセットした後に、前記第２モードへ遷移させるものである。または、本実施の形態２にかかる半導体装置は、デバッグ装置が接続された場合に前記第１モードに遷移させ、前記信号レベルの変化が所定時間以上ない場合に、前記半導体装置の内部をリセットした後に、前記第２モードへ遷移させるということもできる。さらには、前記半導体装置が、前記信号維持時間が所定時間以上であると判定した場合、前記半導体装置の内部をリセットした後に、前記第２モードへ遷移させるということもできる。このように、強制的に第２モードへ遷移させるため、デバッグの実行終了後に即時にユーザプログラムの実行開始が可能となる。
【００７２】
また、本実施の形態２にかかるモード制御部は、前記第１モードに遷移した場合に前記リセット信号を無効にし、前記信号維持時間が所定時間以上維持されている場合に前記リセット信号を有効にして出力するリセット制御部と、を有するものである。つまり、信号維持時間の監視によりデバッグの実行終了又はデバッグ装置の取り外しを検出した場合に、半導体装置をリセットするためのリセット信号を直接出力する。これにより、デバッグ終了に伴い、第２モードでのユーザプログラムの実行開始が可能となる。
【００７３】
さらに、前記端子モニタ部は、前記信号維持時間が所定時間以上維持されているか否かを判定し、前記判定結果に応じて端子モニタ信号を前記リセット制御部へ出力し、前記リセット制御部は、前記端子モニタ信号が、前記信号維持時間が所定時間以上維持されていることを示す場合に、前記リセット信号を有効にして出力することが望ましい。このように、端子モニタ信号によりリセット信号をより適切に制御できる。
【００７４】
図７は、本実施の形態２にかかるＭＣＵ１００ａの構成を示すブロック図である。ＭＣＵ１００ａは、上述した図１のＭＣＵ１００との違いとして、モード制御部１２０がモード制御部１２０ａに置き換わったものである。そして、モード制御部１２０ａから出力されるリセット信号２０８がＣＰＵだけでなく、ＭＣＵ１００ａ内の各種構成要素に対するリセット信号となる。そのため、図７ではＣＰＵを省略している。
【００７５】
モード制御部１２０ａは、リセット制御回路１２１ａと、デバッグ制御部１２２ａとを備える。デバッグ制御部１２２ａは、リセットマスク制御部１２３ａを備える。デバッグ制御部１２２ａは、端子モニタ部１１０からの端子モニタ信号２０６ａを受け付けず、リセットマスク信号２０２ａを出力する。
【００７６】
図８は、本実施の形態２にかかるリセットマスク制御部１２３ａの構成を示すブロック図である。リセットマスク制御部１２３ａは、図３のリセットマスク制御部１２３から論理積回路１２５を除いたものである。リセットマスク制御部１２３ａのラッチ回路１２４は、デバッグの開始後に、デバッグ信号２０７が一度でもロウレベルに変化した場合、パワーオンリセット信号２０４がオンになるまでの間、ハイレベルの信号を出力する。そして、リセットマスク制御部１２３ａは、ラッチ回路１２４からの出力信号をリセットマスク信号２０２ａとして、リセット制御回路１２１ａへ出力する。リセットマスク信号２０２ａは、ハイレベルのときにリセット信号２０１のマスクを有効にし、ロウレベルのときにリセット信号２０１のマスクを解除するものとする。
【００７７】
図７に戻り説明する。リセット制御回路１２１ａは、外部リセット制御回路２００からリセット端子１０１を介してリセット信号２０１を受け付ける。また、リセット制御回路１２１ａは、端子モニタ部１１０から端子モニタ信号２０６ａ、リセットマスク制御部１２３ａからリセットマスク信号２０２ａ及びパワーオンリセット部１４０からパワーオンリセット信号２０４を受け付ける。リセット制御回路１２１ａは、上述した各要因に基づき入力される信号に基づいてどのドメイン又はＭＣＵ１００ａ内の構成要素に対してリセット信号を発行するかを制御する。このとき、リセット制御回路１２１ａは、リセット端子１０１からのリセット信号２０１と同レベルのリセット信号を発行する。リセット制御回路１２１ａが発行するリセット信号としては、例えば、デバッグ制御部１２２ａ自体のリセットやＩＯ部のリセットも含まれる。
【００７８】
このように、本実施の形態２では、上述した実施の形態１と同様に端子モニタ部１１０において、デバッグ端子１０２における信号レベルの変化が所定時間以上ないことを検出する。この場合、端子モニタ部１１０は、その旨を端子モニタ信号２０６ａとしてリセット制御回路１２１ａへ出力する。そして、リセット制御回路１２１ａは、端子モニタ信号２０６ａに基づきリセットを有効にするリセット信号２０８を出力する。これにより、デバッグの実行の終了又は外部デバッグ装置３００の取り外しを検出したことに伴い、ＭＣＵ１００ａのリセットを行うことができる。そのため、外部デバッグ装置３００の取り外し後に、別途、外部からリセットを発行せずとも即時にユーザプログラム等の実行が可能となる。
【００７９】
＜その他の実施の形態＞
尚、上述した本実施の形態１及び２は、オンチップデバッグ機能付きマイクロコンピュータ及びその制御方法に関するものであり、特に、デバッグ装置とインターフェース信号線が少なくデバッグ専用のリセット端子を持たないマイクロコンピュータに適用が可能である。
【００８０】
また、本実施の形態１は、次のように表現することもできる。すなわち、半導体集積回路内にプログラムデバッグのための制御を行うデバッグ制御部を具備する半導体集積回路であり、例えば、オンチップデバッグ機能付きマイクロコンピュータである。当該半導体集積回路は、外部に接続された任意のデバッグ装置との１本以上の信号群で接続され、前記信号群の信号レベルまたは物理的に切り離す場合において、半導体集積回路外部から特定の端子経由で入力される信号の信号レベルを任意の時間測定できる端子モニタ部と、当該デバッグ制御部において前記端子モニタ部から出力されるモニタ信号により半導体集積回路から入力されるリセット信号をデバッグ中にマスクするリセットマスク制御部とを有する。そして、端子モニタ部は、当該デバッグ装置との接続状況を監視し、デバッグ装置からのアクセスが任意に設定した期間以上ない場合に、デバッグ制御部は、前記リセットマスク制御部のマスク状態を解除してデバッグ制御状態から半導体集積回路をリセットして半導体集積回路がデバッグ可能状態（デバッグ有効モード）から通常のプログラム実行状態（ユーザモード）に遷移するものである。これにより、車載ＥＣＵ等のシステムでバッテリを外すことなく電源ＯＦＦによるパワーオンリセットをすることができる効果がある。
【００８１】
さらに、上記端子モニタ部において、任意のリセットマスク信号解除時間を設定する手段と、前記デバッグ装置と接続された１本以上の信号群を任意の端子経由で入力して前記信号のレベルを検出するレベル検出回路と、前記検出した結果で出力されるレベル検出信号を比較器へ出力する計測器と、前記計測した結果と任意に設定したリセットマスク信号解除時間を比較器で比較し、前記比較結果をデバッグ制御部へ一定の時間毎に出力するタイマ部を有するとよい。
【００８２】
または、半導体集積回路内にプログラムデバッグのための制御を行うデバッグ制御部を具備する半導体集積回路の制御方法であり、例えば、オンチップデバッグ機能付きマイクロコンピュータの制御方法である。当該制御方法は、外部に接続された任意のデバッグ装置との１本以上の信号群で接続され、前記信号群の信号レベルまたは物理的に切り離す場合において、デバッグ装置が接続中でありデバッグ有効モードの時に任意のリセットマスク信号解除時間を設定して前記設定した時間内に任意の信号レベルが継続するかを判断するステップと、リセット端子をマスクするためにリセット信号をリセットマスク信号とリセットマスク回路でマスクしリセットマスク後のリセット信号によりＣＰＵ部をリセットするステップと、前記デバッグ装置と接続される任意の端子状態をレベル検出回路と計測器で信号レベルを計測して端子状態を監視するステップと、前記計測した結果と任意に設定したリセットマスク信号解除時間とを比較してリセットマスク信号解除時間より小さい場合には時間計測用の計測器を初期化して再度端子状態の監視を繰り返し、同じか大きい場合には信号レベルの計測を停止してリセット端子のリセットマスク信号を端子モニタ信号で解除してリセット端子からＣＰＵ部へのリセット信号を有効にするステップとを有する。
【００８３】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【００８４】
１００  ＭＣＵ
１００ａ  ＭＣＵ
１０１  リセット端子
１０２  デバッグ端子
１１０  端子モニタ部
１１１  タイマ部
１１２  レベル検出回路
１１３  レジスタ
１１４  計測器
１１５  比較器
１２０  モード制御部
１２０ａ  モード制御部
１２１  リセットマスク回路
１２１ａ  リセット制御回路
１２２  デバッグ制御部
１２２ａ  デバッグ制御部
１２３  リセットマスク制御部
１２３ａ  リセットマスク制御部
１２４  ラッチ回路
１２５  論理積回路
１３０  ＣＰＵ
１４０  パワーオンリセット部
１５０  Ｎチャネルオープンドレインバッファ
２００  外部リセット制御回路
２０１  リセット信号
２０２  リセットマスク信号
２０２ａ  リセットマスク信号
２０３  リセットマスク後のリセット信号
２０４  パワーオンリセット信号
２０５  デバッグ信号
２０６  端子モニタ信号
２０６ａ  端子モニタ信号
２０７  デバッグ信号
２０８  リセット信号
３００  外部デバッグ装置
３０１  プルアップ回路
ＶＤＤ  電源電圧
Ｔ０  時刻
Ｔ１  時刻
Ｔ２  時刻
Ｔ３  時刻
Ｔ４  時刻
Ｔ５  時刻
Ｔ６  時刻
ＴＷ１  信号維持時間
ＴＷ１ａ  信号維持時間
ＴＷ１ｂ  信号維持時間
ＴＷ１ｃ  信号維持時間
ＴＷ１ｄ  信号維持時間
ＴＷ２  リセットマスク信号解除時間
【図１】
2014119779.tif 000003
【図２】
2014119779.tif 000004
【図３】
2014119779.tif 000005
【図４】
2014119779.tif 000006
【図５】
2014119779.tif 000007
【図６】
2014119779.tif 000008
【図７】
2014119779.tif 000009
【図８】
2014119779.tif 000010