(57)【要約】【課題】  デバッグに必要な半導体集積回路の外部端子数を少なくし、デバッグ機能を含む半導体集積回路のチップサイズを小さくする。【解決手段】  電流計測部は、プロセッサを有する回路ブロックを含む複数の回路ブロックでそれぞれ消費される電源電流を計測し、電源電流値として出力する。選択部は、電源電流値の少なくともいずれかを選択情報に応じて選択する。トレースバッファは、選択部で選択される電源電流値をプロセッサの実行情報とともに順に保持し、保持している情報を順に出力する。デバッグに必要な回路ブロックの電源電流値を選択情報に応じて選択することで、プロセッサの実行履歴情報とともに保持される情報量を最小限にできる。これにより、トレースバッファから出力される情報のビット数を最小限にでき、電源電流値のトレースを含むデバッグに必要な半導体集積回路の外部端子数を少なくできる。【選択図】    図１
2011253413.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサを有する回路ブロックを含む複数の回路ブロックでそれぞれ消費される電源電流を計測し、電源電流値として出力する電流計測部と、
前記電源電流値の少なくともいずれかを選択情報に応じて選択する選択部と、
前記選択部で選択される前記電源電流値を前記プロセッサの実行履歴情報とともにトレース情報として順に保持し、保持しているトレース情報を順に出力するトレースバッファと
を備えていることを特徴とする半導体集積回路。
【請求項２】
前記選択部は、前記選択情報に応じて選択される電源電流値を加算し、加算した電源電流値の総和を前記トレースバッファに出力する加算器を含むこと
を特徴とする請求項１記載の半導体集積回路。
【請求項３】
前記選択情報を巡回的に生成するカウンタを備え、
前記選択部は、前記選択情報に応じて前記電源電流値を巡回的に選択し、前記トレースバッファに出力すること
を特徴とする請求項１記載の半導体集積回路。
【請求項４】
前記トレースバッファは、前記選択情報を、前記選択部により選択された電源電流値に対応する回路ブロックを示す識別情報として、選択された電源電流値とともに保持すること
を特徴とする請求項３記載の半導体集積回路。
【請求項５】
プロセッサを有する回路ブロックを含む複数の回路ブロックでそれぞれ消費される電源電流を計測し、電源電流値として出力し、
前記電源電流値の少なくともいずれかを選択情報に応じて選択し、
選択される前記電源電流値を前記プロセッサの実行履歴情報とともにトレース情報として順に保持し、保持しているトレース情報を順に出力すること
を特徴とする半導体集積回路の動作方法。
【請求項６】
前記選択情報に応じて選択される電源電流値を加算し、
加算した電源電流値の総和を前記トレースバッファに出力すること
を特徴とする請求項５記載の半導体集積回路の動作方法。
【請求項７】
前記選択情報を巡回的に生成し、
前記選択情報に応じて前記電源電流値を巡回的に選択し、前記トレースバッファに出力すること
を特徴とする請求項５記載の半導体集積回路の動作方法。
【請求項８】
前記選択情報を、選択した電源電流値に対応する回路ブロックを示す識別情報として、選択した電源電流値とともに保持すること
を特徴とする請求項７記載の半導体集積回路の動作方法。
【請求項９】
請求項１ないし請求項４のいずれか１項記載の半導体集積回路と、
外部から入力される前記選択情報を前記半導体集積回路に供給し、前記半導体集積回路の前記トレースバッファに保持された前記トレース情報を読み出し、前記回路ブロックの実行履歴情報として出力する外部デバッグ装置と、
を備えていることを特徴とするデバッグシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の回路ブロックを有するユーザシステムをデバッグするためのトレース機能を有する半導体集積回路、半導体集積回路の動作方法およびデバッグシステムに関する。
【背景技術】
【０００２】
例えば、ＣＰＵ（Central Processing Unit）等のプロセッサと周辺回路とを有するユーザシステムをデバッグするデバッグシステムにおいて、プロセッサや周辺回路の消費電流をモニタし、あるいは、プロセッサの外部端子に流れる電流をモニタすることが提案されている（例えば、特許文献１−３参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−２２２５６１号公報
【特許文献２】特開２００４−３４８５６８号公報
【特許文献３】特開平７−４４４１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
プロセッサや周辺回路に流れる複数の消費電流を計測するとき、計測により得られる電流値を示すデータ量は増え、電流値をトレースバッファ等に転送するために必要なビット数は増える。これにより、デバッグ用の外部端子数が増え、製品コストは上昇する。特に、デバッグ機能を有する半導体集積回路では、外部端子数の増加により、チップサイズが大きくなり、システムコストが上昇する。
【課題を解決するための手段】
【０００５】
本発明の一形態では、半導体集積回路は、プロセッサを有する回路ブロックを含む複数の回路ブロックでそれぞれ消費される電源電流を計測し、電源電流値として出力する電流計測部と、電源電流値の少なくともいずれかを選択情報に応じて選択する選択部と、選択部で選択される電源電流値をプロセッサの実行履歴情報とともにトレース情報として順に保持し、保持しているトレース情報を順に出力するトレースバッファとを含んでいる。
【発明の効果】
【０００６】
デバッグに必要な回路ブロックの電源電流値を選択的にトレースすることで、プロセッサの実行履歴情報とともに保持されるトレース情報量を最小限にでき、トレースバッファから出力されるトレース情報のビット数を最小限にできる。したがって、電源電流値のトレースを含むデバッグに必要な半導体集積回路の外部端子数を少なくできる。この結果、デバッグ機能を含む半導体集積回路のチップサイズを小さくでき、コストを削減できる。
【図面の簡単な説明】
【０００７】
【図１】一実施形態におけるデバッグシステムの例を示している。
【図２】別の実施形態におけるデバッグシステムの例を示している。
【図３】図２に示した選択加算部の例を示している。
【図４】別の実施形態におけるデバッグシステムの例を示している。
【図５】図４に示した選択部の例を示している。
【発明を実施するための形態】
【０００８】
以下、実施形態を、図面を用いて説明する。
【０００９】
図１は、一実施形態におけるデバッグシステムＤＢＧＳＹＳの例を示している。デバッグシステムＤＢＧＳＹＳは、デバッグ対象のユーザシステムＵＳＹＳに搭載される半導体集積回路ＬＳＩと、外部デバッグ装置ＥＸＤＢＧとを有している。半導体集積回路ＬＳＩは、デバッグ対象のユーザ回路である複数の回路ブロックＣＢＬＫ（ＣＢＬＫ１、ＣＢＬＫ２、ＣＢＬＫ３、...、ＣＢＬＫｎ）と、回路ブロックＣＢＬＫをデバッグするためのデバッグ回路ＤＢＧＣとを有している。
【００１０】
例えば、ユーザシステムＵＳＹＳは、携帯機器等のマイクロコンピュータ応用機器であり、基板に接続されたチップ状態の半導体集積回路ＬＳＩ、他の複数の半導体チップ、入力装置および出力装置等を有している。なお、回路ブロックＣＢＬＫおよびデバッグ回路ＤＢＧＣは、個別の半導体チップとして形成されてもよい。
【００１１】
ユーザシステムＵＳＹＳは、主電源電圧ＭＰＳを半導体集積回路ＬＳＩおよびユーザシステムＵＳＹＳ上の他の半導体チップに供給するための外部電源端子を有している。図１において、太い実線は電源線を示している。主電源電圧ＭＰＳは、デバッグ回路ＤＢＧＣの電源領域ＰＳＡＤＢＧに供給され、さらに、デバッグ回路ＤＢＧＣの電流計測部ＭＥＡＳを介して電源電圧ＰＳ（ＰＳ１、ＰＳ２、ＰＳ３、...、ＰＳｎ）として各回路ブロックＣＢＬＫ１−ｎに供給されている。
【００１２】
回路ブロックＣＢＬＫは、内部バスに接続されたプロセッサＣＰＵ（マイクロコンピュータ）、周辺回路およびメモリ等のいずれかである。ここで、周辺回路は、画像処理マクロ、画像データメモリ、アナログマクロ、Ｉ／Ｏマクロ等である。例えば、プロセッサＣＰＵは、内蔵メモリまたは内部バスに接続されたメモリに格納されたプログラムを実行することで動作し、ユーザシステムＵＳＹＳ全体の動作を制御する。なお、図１では、回路ブロックＣＢＬＫｎにプロセッサＣＰＵを形成しているが、複数の回路ブロックにプロセッサＣＰＵをそれぞれ形成してもよい。各回路ブロックＣＢＬＫ１−ｎは、互いに独立した電源電圧ＰＳ１−ｎがそれぞれ供給される電源領域ＰＳＡ（ＰＳＡ１、ＰＳＡ２、ＰＳＡ３、...ＰＳＡｎ）に形成されている。
【００１３】
デバッグ回路ＤＢＧＣおよび外部デバッグ装置ＥＸＤＢＧは、ユーザシステムＵＳＹＳを実際に動作させながら、プロセッサＣＰＵが実行するプログラムをデバッグするエミュレータとして機能する。エミュレータ機能の一部を実現するデバッグ回路ＤＢＧＣをプロセッサＣＰＵを含む半導体集積回路ＬＳＩに搭載することにより、ユーザシステムＵＳＹＳを実現するユーザプログラムをプロセッサＣＰＵにより実際に実行しながらデバッグを実施できる。すなわち、オン・チップ・デバッグを実施できる。
【００１４】
デバッグ回路ＤＢＧＣは、ユーザシステムＵＳＹＳの開発時に、デバッグインターフェースＤＢＧＩＦを介して外部デバッグ装置ＥＸＤＢＧからの制御を受けて有効になる。そして、デバッグ回路ＤＢＧＣは、ユーザシステムＵＳＹＳのデバッグを行うデバッグモードにおいて、プロセッサＣＰＵの動作状態をトレースし、プロセッサＣＰＵが実行するプログラムをデバッグするために動作する。
【００１５】
デバッグ回路ＤＢＧＣは、電源領域ＰＳＡ１−ｎとは独立した電源領域ＰＳＡＤＢＧに形成されている。デバッグ回路ＤＢＧＣは、電流計測部ＭＥＡＳ、選択部ＳＥＬＵおよびトレースバッファＴＢＵＦを有している。電流計測部ＭＥＡＳは、電源線ＰＳ１−ｎにそれぞれ接続された電流計ＡＭを有している。各電流計ＡＭは、対応する回路ブロックＣＢＬＫ１−ｎに流れる電源電流を計測し、計測した電源電流値ＰＳＣ（ＰＳＣ１、ＰＳＣ２、ＰＳＣ３、...、ＰＳＣｎ）を選択部ＳＥＬＵに出力する。電源電流値ＰＳＣ１−ｎは、回路ブロックＣＢＬＫ１−ｎがそれぞれ消費する消費電流を示す。
【００１６】
選択部ＳＥＬＵは、選択情報ＳＩＮＦに応じて電源電流値ＰＳＣ１−ｎのいずれかを選択し、トレースバッファＴＢＵＦに出力する。例えば、選択情報ＳＩＮＦは、外部デバッグ装置ＥＸＤＢＧにより生成される。なお、選択部ＳＥＬＵは、トレース情報ＴＲＣＩＮＦのビット数が設計仕様を超えない範囲で、複数の電源電流値ＰＳＣを選択し、トレースバッファＴＢＵＦに同時に出力してもよい。
【００１７】
少なくとも１つの電源電流値ＰＳＣを選択的にトレースバッファＴＢＵＦに供給することにより、プロセッサＣＰＵが実行するプログラムを効率よくデバッグできる。具体的には、一部の回路ブロックＣＢＬＫの電源電流が、プログラムの不具合により増加する現象を見つけやすくなる。換言すれば、電源電流の異常を検出することで、プログラムの不具合を見つけやすくできる。この際、回路ブロックＣＢＬＫ毎に電源電流をトレースできるため、プログラムの不具合個所を特定しやすくなる。
【００１８】
トレースバッファＴＢＵＦは、選択部ＳＥＬＵからの電源電流値ＰＳＣを、プロセッサＣＰＵの実行履歴情報ＣＰＵＴＲＣとともに順に保持し、トレース情報ＴＲＣＩＮＦとして外部デバッグ装置ＥＸＤＢＧに順に出力する。例えば、トレースバッファＴＢＵＦは、ＦＩＦＯ（First-In First-Out）メモリとして形成されている。実行履歴情報ＣＰＵＴＲＣは、分岐命令等の命令、アクセスデータおよびアクセスアドレス等の少なくともいずれかを含む。
【００１９】
外部デバッグ装置ＥＸＤＢＧは、デバッグプログラムＤＢＧＰＲＧに基づいて、デバッグ回路ＤＢＧＣの動作を制御する。外部デバッグ装置ＥＸＤＢＧは、一般的なＩＣＥ（In-Circuit Emulator）と同様に、入力装置ＩＮから入力された指示に基づいて、プロセッサＣＰＵが実行するプログラムの停止条件やトレース条件を設定する機能を有する。また、外部デバッグ装置ＥＸＤＢＧは、トレース情報ＴＲＣＩＮＦをディスプレイやプリンタ等の出力装置ＯＵＴに出力する機能を有する。なお、入力装置ＩＮや出力装置ＯＵＴを有するホストコンピュータを、外部デバッグ装置ＥＸＤＢＧに接続してもよい。
【００２０】
外部デバッグ装置ＥＸＤＢＧは、トレースバッファＴＢＵＦから供給されるプロセッサＣＰＵの実行履歴情報ＣＰＵＴＲＣおよび電源電流値ＰＳＣをトレース情報ＴＲＣＩＮＦとして順に保持する。さらに、外部デバッグ装置ＥＸＤＢＧは、入力装置から入力された指示に基づいて、選択情報ＳＩＮＦを生成し、デバッグ回路ＤＢＧＣに出力する。選択情報ＳＩＮＦは、選択する電源電流値ＰＳＣを切り替えるために、プロセッサＣＰＵの実行サイクル毎に生成されてもよい。このとき、電源電流値ＰＳＣ１−ｎを時分割でトレースできる。電源電流値ＰＳＣを巡回的に選択することで、トレース情報ＴＲＣＩＮＦのビット数を最小限にしながら、全ての回路ブロックＣＢＬＫ１−ｎの電源電流値ＰＳＣをトレースできる。
【００２１】
この実施形態では、デバッグ回路ＤＢＧＣは、プロセッサＣＰＵが出力する実行情報からプロセッサＣＰＵの実行状態を監視する。デバッグ回路ＤＢＧＣは、プロセッサＣＰＵがユーザプログラムを実行中にトレース対象の動作を検出すると、プロセッサＣＰＵ実行履歴情報と電源電流値ＰＳＣｉをトレースバッファＴＢＵＦに一時的に格納する。デバッグ回路ＤＢＧＣは、トレースバッファＴＢＵＦに格納したトレースデータを外部デバッグ装置ＥＸＤＢＧに順に出力する。
【００２２】
外部デバッグ装置ＥＸＤＢＧは、デバッグ回路ＤＢＧＣから出力されるトレース情報ＴＲＣＩＮＦを、内蔵するトレースメモリに蓄積する。そして、外部デバッグ装置ＥＸＤＢＧは、自身が実行するデバッグプログラムにより、トレースメモリ上のトレース情報ＴＲＣＩＮＦを読み出し、解析し、プロセッサＣＰＵの実行履歴とともに電源電流値ＰＳＣｉを出力装置ＯＵＴに出力する。
【００２３】
以上、この実施形態では、デバッグに必要な回路ブロックＣＢＬＫ１−ｎの電源電流値ＰＳＣ１−ｎの少なくともいずれかを選択してトレースすることで、プロセッサＣＰＵの実行履歴情報ＣＰＵＴＲＣとともに保持される情報量を最小限にできる。また、トレースバッファＴＢＵＦから出力されるトレース情報ＴＲＣＩＮＦのビット数を最小限にできる。したがって、回路ブロックＣＢＬＫ１−ｎの電源電流値ＰＳＣ１−ｎをトレースするときにも、半導体集積回路ＬＳＩに形成されるデバッグ用の外部端子数を少なくできる。この結果、デバッグ回路ＤＢＧＣを含む半導体集積回路ＬＳＩのチップサイズを小さくでき、コストを削減できる。
【００２４】
図２は、別の実施形態におけるデバッグシステムＤＢＧＳＹＳの例を示している。上述した実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態では、デバッグ回路ＤＢＧＣが図１と相違している。また、デバッグシステムＤＢＧＳＹＳは、外部デバッグ装置ＥＸＤＢＧに接続されたホストコンピュータＨＯＳＴを有している。半導体集積回路ＬＳＩおよびユーザシステムＵＳＹＳは、デバッグ回路ＤＢＧＣが異なることを除き、図１と同様である。すなわち、回路ブロックＣＢＬＫ１−ｎは、内部バスに接続されたプロセッサＣＰＵ（マイクロコンピュータ）と、画像処理マクロ、画像データメモリ、アナログマクロ、Ｉ／Ｏマクロ等の周辺回路と、プロセッサＣＰＵが実行するプログラムが格納されているメモリのいずれかである。デバッグ回路ＤＢＧＣ、外部デバッグ装置ＥＸＤＢＧおよびホストコンピュータＨＯＳＴは、プロセッサＣＰＵが実行するプログラムをデバッグするエミュレータとして機能する。
【００２５】
デバッグ回路ＤＢＧＣは、電流計測部ＭＥＡＳ（ＭＥＡＳ１、ＭＥＡＳ２、ＭＥＡＳ３、...、ＭＥＡＳｎ）、選択加算部ＳＡＤＤ、選択レジスタＳＥＬＲＥＧ、実行制御部ＥＸＥＣＮＴおよびトレースバッファＴＢＵＦを有している。電流計測部ＭＥＡＳ１−ｎは、図１に示した電流計ＡＭをそれぞれ有しており、図１に示した電流計測部ＭＥＡＳと同じ機能を有している。
【００２６】
選択加算部ＳＡＤＤは、各電流計測部ＭＥＡＳ１−ｎからの電源電流値ＰＳＣ１−ｎを受ける。選択加算部ＳＡＤＤは、選択レジスタＳＥＬＲＥＧからの選択情報ＳＥＬ（ＳＥＬ１、ＳＥＬ２、ＳＥＬ３、...、ＳＥＬｎ）に応じて電源電流値ＰＳＣ１−ｎの少なくとも１つを選択する。そして、選択加算部ＳＡＤＤは、選択した電源電流値ＰＳＣを加算し、加算結果を電源電流値ＩＳＵＭとしてトレースバッファＴＢＵＦに出力する。
【００２７】
選択レジスタＳＥＬＲＥＧは、外部デバッグ装置ＥＸＤＢＧからの書き込みにより設定され、選択情報ＳＥＬ１−ｎを保持する。実行制御部ＥＸＥＣＮＴは、外部デバッグ装置ＥＸＤＢＧからの制御を受けて、例えば、プロセッサＣＰＵの実行を制御するための信号をプロセッサＣＰＵに出力し、プロセッサＣＰＵに内蔵されるレジスタやメモリに保持されている情報を読み出す。ここで、プロセッサＣＰＵの実行を制御する信号は、プロセッサＣＰＵ内のレジスタを読み書きするための制御信号、データ信号およびプロセッサＣＰＵの動作を一時的にホールドするための制御信号等を含む。
【００２８】
トレースバッファＴＢＵＦは、電源電流値ＰＳＣの代わりに電源電流値ＩＳＵＭ（選択された電源電流値ＰＳＣの総和）を保持することを除き、図１に示したトレースバッファＴＢＵＦと同様である。トレースバッファＴＢＵＦは、保持している電源電流値ＩＳＵＭおよび実行履歴情報ＣＰＵＴＲＣを、トレース情報ＴＲＣＩＮＦとしてデバッグインターフェースＤＢＧＩＦを介して外部デバッグ装置ＥＸＤＢＧに順に出力する。特に限定されないが、電源電流値ＩＳＵＭは、プロセッサＣＰＵが実行する命令毎にトレースバッファＴＢＵＦに格納される。換言すれば、選択加算部ＳＡＤＤは、プロセッサＣＰＵの命令サイクル毎に電源電流値ＩＳＵＭを計算する。これにより、外部デバッグ装置ＥＸＤＢＧは、プロセッサＣＰＵの命令サイクル毎に、指定した回路ブロックＣＢＬＫの電源電流値ＰＳＣの総和を認識できる。
【００２９】
外部デバッグ装置ＥＸＤＢＧは、例えば、デバッグケーブルやユーザシステムＵＳＹＳの基板上に取り付けられるコネクタを含むデバッグインターフェースＤＢＧＩＦを介して半導体集積回路ＬＳＩのデバッグ用の外部端子ＥＸＴに接続される。なお、図２では、外部デバッグ装置ＥＸＤＢＧおよび半導体集積回路ＬＳＩは、双方向のデバッグインターフェースＤＢＧＩＦを介して接続されている。しかしながら、トレースバッファＴＢＵＦからの単方向のデバッグインターフェースと、実行制御部ＥＸＥＣＮＴおよび選択レジスタＳＥＬＲＥＧに接続される双方向のデバッグインターフェースとが、独立に形成されてもよい。
【００３０】
外部デバッグ装置ＥＸＤＢＧは、トレースメモリＴＲＣＭＥＭおよびデバッグ制御部ＤＢＧＣＮＴを有している。トレースメモリＴＲＣＭＥＭは、トレースバッファＴＢＵＦから供給される電源電流値ＩＳＵＭおよび実行履歴情報ＣＰＵＴＲＣをトレース情報ＴＲＣＩＮＦとして順に保持する。デバッグ制御部ＤＢＧＣＮＴは、ホストコンピュータＨＯＳＴが実行するデバッグプログラムＤＢＧＰＲＧに基づいて、デバッグ回路ＤＢＧＣの動作を制御し、トレースメモリＴＲＣＭＥＭに格納されているトレース情報ＴＲＣＩＮＦをホストコンピュータＨＯＳＴに出力する。
【００３１】
ホストコンピュータＨＯＳＴは、デバッグプログラムＤＢＧＰＲＧを実行することにより、例えば、入力装置ＩＮから入力された指示に基づいて外部デバッグ装置ＥＸＤＢＧを制御してデバッグ回路ＤＢＧＣを動作させる。また、ホストコンピュータＨＯＳＴは、トレースメモリＴＲＣＭＥＭに格納されたトレース情報ＴＲＣＩＮＦを読み出し、ディスプレイやプリンタ等の出力装置ＯＵＴに出力する。
【００３２】
例えば、デバッグ回路ＤＢＧＣは、ユーザシステムＵＳＹＳの開発時に、デバッグインターフェースＤＢＧＩＦを介して外部デバッグ装置ＥＸＤＢＧからの制御を受けて有効になる。ユーザシステムＵＳＹＳが製品として動作するとき、デバッグインターフェースＤＢＧＩＦは、オープン状態であり、例えば半導体集積回路ＬＳＩ上でプルダウンされる。これにより、デバッグ回路ＤＢＧＣは無効になり、動作が禁止される。電流計測部ＭＥＡＳ１−ｎは、デバッグ回路ＤＢＧＣが無効のときに、電源電流値ＰＳＣを計測する機能を停止するが、主電源電圧ＭＰＳは電流計測部ＭＥＡＳ１−ｎを介して電源電圧ＰＳ１−ｎとして回路ブロックＣＢＬＫ１−ｎに供給される。
【００３３】
図３は、図２に示した選択加算部ＳＡＤＤの例を示している。選択加算部ＳＡＤＤは、選択情報ＳＥＬ１−ｎに応じて動作するセレクタＩＳＥＬ（ＩＳＥＬ１、ＩＳＥＬ２、ＩＳＥＬ３、...、ＩＳＥＬｎ）および加算器ｎ−ＡＤＤを有している。各セレクタＩＳＥＬは、対応する選択情報ＳＥＬが論理１にアサートされているときに対応する電源電流値ＰＳＣを選択し、対応する選択情報ＳＥＬが論理０にネゲートされているときに”０”を示す値を選択し、選択した値を加算器ｎ−ＡＤＤに出力する。加算器ｎ−ＡＤＤは、全てのセレクタＩＳＥＬ１−ｎから出力される値を加算し、加算結果を電源電流値ＩＳＵＭとして出力する。
【００３４】
例えば、２つの選択情報ＳＥＬが論理１のとき、加算器ｎ−ＡＤＤは、２つの電流計測部ＭＥＡＳで計測された電源電流値ＰＳＣを加算する。５つの選択情報ＳＥＬが論理１のとき、加算器ｎ−ＡＤＤは、５つの電流計測部ＭＥＡＳで計測された電源電流値ＰＳＣを加算する。１つの選択情報ＳＥＬが論理１のとき、加算器ｎ−ＡＤＤは、１つの電流計測部ＭＥＡＳで測定された電源電流値ＰＳＣを電源電流値ＩＳＵＭとして出力する。このように、この実施形態では、任意の数の回路ブロックＣＢＬＫの電源電流の合計を、電源電流値ＩＳＵＭとして出力できる。
【００３５】
図２に示したデバッグシステムＤＢＧＳＹＳによるユーザシステムＵＳＹＳのデバッグでは、選択加算部ＳＡＤＤにより任意の数の回路ブロックＣＢＬＫに流れる電源電流の総和をプロセッサＣＰＵの命令サイクル毎にトレースできる。これにより、複数の回路ブロックＣＢＬＫの電源電流値ＰＳＣを、最小限のビット数のトレース情報ＴＲＣＩＮＦで外部デバッグ装置ＥＸＤＢＧに出力できる。トレース情報ＴＲＣＩＮＦを出力するためのビット数を少なくすることで、上述した実施形態と同様に、半導体集積回路ＬＳＩに形成されるデバッグ用の外部端子数を少なくでき、半導体集積回路ＬＳＩのチップサイズを小さくできる。
【００３６】
ユーザシステムＵＳＹＳのデバッグにおいて、プロセッサＣＰＵによるユーザプログラムの実行時の電源電流に注目するとき、プロセッサＣＰＵとユーザプログラムを格納しているメモリが電源電流のトレース対象として選択され、電源電流の総和がトレースされる。画像処理時の電源電流に注目するとき、画像処理マクロと画像データメモリが電源電流のトレース対象として選択され、電源電流の総和がトレースされる。全ての回路ブロックＣＢＬＫ１−ｎの電源電流に注目するとき、全ての回路ブロックＣＢＬＫ１−ｎがトレース対象として選択され、電源電流の総和がトレースされる。これにより、半導体集積回路ＬＳＩ内において、デバッグ回路ＤＢＧＣを除く電源電流値の総和を容易にトレースできる。
【００３７】
なお、電源電流値ＰＳＣが１０ビットで表されるとき、８個の回路ブロックＣＢＬＫの電源電流値ＰＳＣをトレースするために、一般的には８０ビットが必要である。これに対して、この実施形態では、加算器ｎ−ＡＤＤでの加算時の桁上がり（８個の電源電流値ＰＳＣで７ビット）を考慮しても、電源電流値ＰＳＣの総和を１７ビットで表すことができる。すなわち、電源電流値ＰＳＣのトレースに必要なビット数を８０ビットから２１．３％圧縮できる。
【００３８】
以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。さらに、複数の回路ブロックＣＢＬＫの電源電流値ＰＳＣを、電源電流値ＩＳＵＭとしてトレースできる。これにより、例えば、８個の回路ブロックＣＢＬＫの電源電流値ＰＳＣを同時にトレースするときにも、トレース情報ＴＲＣＩＮＦのビット数を最小限にできる。換言すれば、８個の回路ブロックＣＢＬＫの電源電流値ＰＳＣを、プロセッサＣＰＵの命令サイクル毎にトレースでき、デバッグの効率を向上できる。
【００３９】
図４は、別の実施形態におけるデバッグシステムＤＢＧＳＹＳの例を示している。上述した実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態では、図２に示したデバッグ回路ＤＢＧＣの選択加算部ＳＡＤＤおよび選択レジスタＳＥＬＲＥＧの代わりに選択部ＳＥＬＵおよびカウンタＣＯＵＮＴが形成されている。デバッグシステムＤＢＧＳＹＳのその他の構成は、トレースバッファＴＢＵＦが保持するトレース情報ＴＲＣＩＮＦが異なることを除き、図２と同様である。
【００４０】
選択部ＳＥＬＵは、カウンタＣＯＵＮＴにより生成される選択情報ＳＥＬ１−ｎに応じて、電源電流値ＰＳＣ１−ｎのいずれかを選択し、選択した電源電流値ＰＳＣを電源電流値ＰＳＣｉとしてトレースバッファＴＢＵＦに出力する。例えば、選択部ＳＥＬＵは、カウンタＣＯＵＮＴから選択情報ＳＥＬ１が出力されるとき、電源電流値ＰＳＣ１を選択し、カウンタＣＯＵＮＴから選択情報ＳＥＬｎが出力されるとき、電源電流値ＰＳＣｎを選択する。
【００４１】
例えば、カウンタＣＯＵＮＴは、初期化可能なアップカウンタであり、回路ブロックＣＢＬＫ１−ｎを示す値を０から順次カウントアップする。そして、カウンタＣＯＵＮＴは、カウント値がｎに達したら０にクリアされ、再度順次カウントアップする。カウンタＣＯＵＮＴのカウント値は、外部デバッグ装置ＥＸＤＢＧからの制御情報（初期化要求）により０に初期化される。あるいは、カウンタＣＯＵＮＴのカウント値は、デバッグ回路ＤＢＧＣに内蔵される設定レジスタに設定される最大カウント値（＝ｎ）を利用して、カウンタＣＯＵＮＴ内部で自動的に０に初期化される。
【００４２】
カウンタＣＯＵＮＴは、プロセッサＣＰＵの命令サイクル毎にカウント動作し、選択情報ＳＥＬ１−ｎを巡回的に生成する。例えば、カウント動作毎に、アサートされる選択情報ＳＥＬ１−ｎが１つずつシフトされ、残りのｎ−１個の選択情報ＳＥＬはネゲートされる。これにより、選択部ＳＥＬＵは、プロセッサＣＰＵの命令サイクル毎に、電源電流値ＰＳＣ１−ｎを巡回的に選択する。ｎ個の命令サイクルが実行されることで、選択される電源電流値ＰＳＣ１−ｎは一巡する。
【００４３】
トレースバッファＴＢＵＦは、電源電流値ＩＳＵＭの代わりに、電源電流値ＰＳＣｉおよび選択された電源電流値ＰＳＣｉに対応する回路ブロックＣＢＬＫを示す識別情報ＩＤを保持することを除き、図２に示したトレースバッファＴＢＵＦと同様である。トレースバッファＴＢＵＦは、電源電流値ＰＳＣを選択する選択情報ＳＥＬ（例えば、１からｎの数値）を識別情報ＩＤとして保持する。トレースバッファＴＢＵＦは、保持している識別情報ＩＤ、電源電流値ＰＳＣｉおよび実行履歴情報ＣＰＵＴＲＣを、トレース情報ＴＲＣＩＮＦとしてデバッグインターフェースＤＢＧＩＦを介して外部デバッグ装置ＥＸＤＢＧに順に出力する。例えば、ユーザシステムＵＳＹＳが８個の回路ブロックＣＢＬＫを有するとき、識別情報ＩＤは３ビットである。このため、電源電流値ＰＳＣが１０ビットで表されるとき、識別情報ＩＤおよび電源電流値ＰＳＣｉは１３ビットで表される。ユーザシステムＵＳＹＳが３２個の回路ブロックＣＢＬＫを有するときにも、識別情報ＩＤは５ビットでよい。このため、回路ブロックＣＢＬＫの数が多いときにも、トレース情報ＴＲＣＩＮＦのビット数が大幅に増えることを防止でき、デバッグに必要な半導体集積回路ＬＳＩの外部端子の数を最小限にできる。
【００４４】
図５は、図４に示した選択部ＳＥＬＵの例を示している。選択部ＳＥＬＵは、回路ブロックＣＢＬＫ１−ｎに対応するスイッチＳＷ（ＳＷ１、ＳＷ２、ＳＷ３、...、ＳＷｎ）を有している。各スイッチＳＷは、対応する選択情報ＳＥＬ（ＳＥＬ１−ｎのいずれか）がアサートされているときにオンし、受けている電源電流値ＰＳＣ（ＰＳＣ１−ｎのいずれか）を電源電流値ＰＳＣｉとして出力する。この実施形態では、デバッグ回路ＤＢＧＣの動作時に選択情報ＳＥＬ１−ｎの１つが巡回的にアサートされる。このため、電源電流値ＰＳＣ１−ｎの１つが電源電流値ＰＳＣｉとして巡回的に出力される。したがって、ｎ個の命令サイクルが実行されることで、全ての電源電流値ＰＳＣ１−ｎをトレースできる。なお、複数の命令サイクル毎に電源電流値ＰＳＣ１−ｎの１つを巡回的にトレースしてもよい。
【００４５】
なお、この実施形態では、８個の回路ブロックＣＢＬＫに必要な識別情報ＩＤは３ビットである。このため、電源電流値ＰＳＣが１０ビットで表されるとき、１３ビットで電源電流値ＰＳＣをトレースできる。これは、８個の回路ブロックＣＢＬＫの電源電流値ＰＳＣを全てトレースするときに必要な８０ビットの１６．３％である。
【００４６】
以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。特に、回路ブロックＣＢＬＫ１−ｎの電源電流が、プロセッサＣＰＵの命令サイクル単位ではほとんど変化しないときに、回路ブロックＣＢＬＫ１−ｎの電源電流値ＰＳＣ１−ｎを精度よくトレースできる。
【００４７】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずであり、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【００４８】
ＡＭ‥電流計；ＣＢＬＫ‥回路ブロック；ＣＯＵＮＴ‥カウンタ；ＣＰＵ‥プロセッサ；ＣＰＵＴＲＣ‥実行履歴情報；ＤＢＧＣ‥デバッグ回路；ＤＢＧＳＹＳ‥デバッグシステム；ＥＸＥＣＮＴ‥実行制御部；ＥＸＤＢＧ‥外部デバッグ装置；ＨＯＳＴ‥ホストコンピュータ；ＩＮ‥入力装置；ＩＳＥＬ‥セレクタ；ＩＳＵＭ‥電源電流値；ＬＳＩ‥半導体集積回路；ＭＥＡＳ‥電流計測部；ＭＰＳ‥主電源電圧；ｎ−ＡＤＤ‥加算器；ＯＵＴ‥出力装置；ＰＳ‥電源電圧；ＰＳＡ‥電源領域；ＰＳＡＤＢＧ‥電源領域；ＰＳＣ‥電源電流値；ＳＡＤＤ‥選択加算部；ＳＥＬ‥選択情報；ＳＥＬＲＥＧ‥選択レジスタ；ＳＥＬＵ‥選択部；ＳＩＮＦ‥選択情報；ＳＷ‥スイッチ；ＴＢＵＦ‥トレースバッファ；ＴＲＣＩＮＦ‥トレース情報；ＵＳＹＳ‥ユーザシステム
【図１】
2011253413.tif 000003
【図２】
2011253413.tif 000004
【図３】
2011253413.tif 000005
【図４】
2011253413.tif 000006
【図５】
2011253413.tif 000007