(57)【特許請求の範囲】
【請求項１】
少なくともデバッグ支援機能プログラムを格納した記憶回路と、
前記プログラムに従って処理動作を行う制御回路と、
少なくとも一つの機能ブロックを有し、前記制御回路との信号の送受が可能とされ、入力信号に応じて所定の論理動作を行う周辺回路と、を備えた半導体集積回路において、
前記制御回路は、
プログラムカウンタと、
少なくとも一つの演算器と、
少なくとも一つのレジスタと、
前記プログラムカウンタ、前記演算器、前記レジスタ、および前記記憶回路の少なくとも一つの値を任意に選択して出力する第１の選択手段と、を有し、
前記周辺回路は、前記機能ブロックの出力を含む前記周辺回路内の複数の内部信号の中からいずれかを任意に選択して出力する第２の選択手段を有し、
前記第１および第２の選択手段の各出力のいずれかを任意に選択して外部に出力する第３の選択手段と、
前記制御回路が前記プログラムの処理を行った動作状態に応じて、前記第１、第２および第３の選択手段の選択動作を切替制御可能な選択制御手段と、を備えることを特徴とする半導体集積回路。
【請求項２】
前記制御回路は複数設けられ、
前記第２の選択手段は、前記複数の制御回路それぞれが処理動作中に生成した制御信号に基づいて選択動作を行い、
前記第３の選択手段は、前記複数の制御回路それぞれが処理動作中に生成した制御信号と外部から供給された制御信号とに基づいて、前記第１の選択手段の出力と前記第２の選択手段の出力とのいずれかを任意に選択して外部に出力することを特徴とする請求項１に記載の半導体集積回路。
【請求項３】
前記第１、第２および第３の選択手段の少なくとも一つは、選択した信号をシリアル・パラレル変換、パラレル・シリアル変換または所定の時間間隔で間引いて出力することを特徴とする請求項１または２に記載の半導体集積回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マイクロプロセッサなどの制御回路とその周辺回路とをワンチップ化した半導体集積回路の動作確認およびファームウェアのデバッグを簡易化する技術に関する。
【０００２】
【従来の技術】
最近のマイクロプロセッサ（以下、ＭＰＵと呼ぶ）は、機能が非常に複雑であり、その動作解析をするのは容易ではない。このため、最近のＭＰＵには、デバッガと呼ばれる動作解析支援用のソフトウェアや、図７に示すようにデバッガと協調動作するデバッグ支援回路５２が予め組み込まれていることが多い。デバッガやデバッグ支援回路５２は、プログラムのトレースやステップ実行、ブレークポイントの設定などを容易に行うことができ、システム外部装置５３からＭＰＵ５１の挙動を詳細に検証することができる。
【０００３】
【発明が解決しようとする課題】
一方、図８に示すように、ＭＰＵ５１と周辺回路５４を内部に含むシステムの動作解析を行う場合、そのシステムがリアルタイム性が強い場合には、ステップ実行やブレークポイントを用いたデバッグだけでは、システム外部装置５３および周辺回路５４とのタイミングの整合性を維持するのが困難なため、システムの挙動を十分に再現するのが難しい。
【０００４】
すなわち、システム内部のＭＰＵ５１単体のデバッグについては、従来のデバッガ等のデバッグ支援回路５２を用いて動作確認をすることができるが、ＭＰＵ５１とその周辺回路５４との信号のやり取りについて、詳細にデバッグすることはできない。
【０００５】
また、ＬＳＩの内部に複数のＭＰＵコアが内蔵されているシステムＬＳＩでは、ＬＳＩの内部信号を直接モニタするのが難しい上に、周辺回路５４とのタイミング制約があるために、上述した単独のＭＰＵの動作確認用のデバッガを用いた動作確認作業が困難である。
【０００６】
さらに、図９に示すように、ＬＳＩの内部信号をモニタするために、モニタ専用の端子を新たに設けると、その分、ＬＳＩのピン数が増えることになり、ＬＳＩのピン数の制約から、モニタすべき信号の種類を制限しなければならなくなる。すなわち、ピン数の制約から、デバッグ対象が制限されるおそれがある。
【０００７】
本発明は、このような点に鑑みてなされたものであり、その目的は、効率よくデバッグを行うことができる半導体集積回路を提供することにある。
【０００８】
【課題を解決するための手段】
上述した課題を解決するために、本発明は、少なくともデバッグ支援機能プログラムを格納した記憶回路と、前記プログラムに従って処理動作を行う制御回路と、少なくとも一つの機能ブロックを有し、前記制御回路との信号の送受が可能とされ、入力信号に応じて所定の論理動作を行う周辺回路と、を備えた半導体集積回路において、前記制御回路は、プログラムカウンタと、少なくとも一つの演算器と、少なくとも一つのレジスタと、前記プログラムカウンタ、前記演算器、前記レジスタ、および前記記憶回路の少なくとも一つの値を任意に選択して出力する第１の選択手段と、を有し、前記周辺回路は、前記機能ブロックの出力を含む前記周辺回路内の複数の内部信号の中からいずれかを任意に選択して出力する第２の選択手段を有し、前記第１および第２の選択手段の各出力のいずれかを任意に選択して外部に出力する第３の選択手段と、前記制御回路が前記プログラムの処理を行った動作状態に応じて、前記第１、第２および第３の選択手段の選択動作を切替制御可能な選択制御手段と、を備える。
【０００９】
本発明では、制御回路の内部の信号と周辺回路の内部の信号とのいずれかを任意に選択して出力できるため、半導体集積回路の内部状態をリアルタイムに解析できる。また、本発明では、選択制御手段の制御により、第１〜第３の選択手段の選択を任意に切り替えることができる。また、外部からの信号により選択制御手段を制御すれば、外部から第１〜第３の選択手段の選択を制御することができる。また、本発明では、制御回路が前記プログラムの処理動作中に生成した制御信号に基づいて、第２および第３の選択手段の選択を切り替えるため、制御回路の動作状態に最適な信号をモニタすることができ、リアルタイムの解析が可能になる。
【００１２】
本発明では、制御回路が複数存在する場合でも、各制御回路の内部状態を解析することができる。
【００１３】
本発明では、選択した信号をシリアル・パラレル変換、あるいは間引いて出力することにより、モニタすべき信号のデータレートを下げることができ、モニタすべき信号の取りこぼしが起きなくなる。また、選択した信号をパラレル・シリアル変換して出力することにより、モニタすべき信号のデータレートを上げることができ、また、モニタ端子の数を減らすことができる。
【００１４】
【発明の実施の形態】
以下、本発明に係る半導体集積回路について、図面を参照しながら具体的に説明する。以下では、半導体集積回路の一例として、ＭＰＵコアとその周辺回路とをワンチップにまとめたシステムＬＳＩについて説明する。
【００１５】
（第１の実施形態）
図１は本発明に係る半導体集積回路の第１の実施形態であるシステムＬＳＩの内部構成を示すブロック図である。図１のシステムＬＳＩは、ＭＰＵコア（制御回路）１と、ＭＰＵコア１を動作させるためのプログラムを格納した内蔵ＲＡＭ(Random Access Memory、記憶回路)２と、ＭＰＵコア１と信号の送受を行う周辺回路３と、複数のモニタ信号の中からいずれかを選択するモニタ信号制御回路４とを備えている。
【００１６】
システムＬＳＩには、システムＬＳＩ周辺装置５が接続されており、両者は互いに信号の送受を行う。内蔵ＲＡＭ２には、ＭＰＵコア１を動作させるためのプログラムの他に、デバッグ支援機能プログラムが内蔵されている。
【００１７】
ＭＰＵコア１の内部には、通常のＭＰＵと同様に、プログラムカウンタ（ＰＣ）１１と、アキュムレータ（Ａｃｃ、演算器）１２と、各種レジスタ（Regs）１３と、デバッグ支援回路１４とが設けられている。アキュムレータ１２やレジスタ１３は通常複数設けられ、レジスタ１３には、汎用レジスタ、命令レジスタおよびフラグレジスタなどがある。
【００１８】
周辺回路３の内部には、少なくとも一つの機能ブロック２１が含まれており、各機能ブロック２１は互いに信号の送受を行うとともに、ＭＰＵコア１とも信号の送受を行う。各機能ブロック２１は、ゲート回路やフリップフロップ等の論理回路や組み合わせ回路で構成されている。
【００１９】
本実施形態のシステムＬＳＩは、信号選択回路（第１の選択手段）３１を内蔵したデバッグ支援回路１４をＭＰＵコア１の内部に設けた点と、周辺回路３の内部に信号選択回路（第２の選択手段）３２を設けた点と、最終的なモニタ信号を選択する信号選択回路（第３の選択手段）３３を設けた点と、各信号選択回路３１〜３３の選択動作を制御するモニタ信号制御回路４を設けた点とに特徴がある。
【００２０】
デバッグ支援回路１４内の信号選択回路３１は、モニタ信号制御回路（選択制御手段）４からの制御信号に基づいて、プログラムカウンタ１１、アキュムレータ１２、各種レジスタ１３、および内蔵ＲＡＭ２の値のうち、いずれかを選択して出力する。
【００２１】
周辺回路３内の信号選択回路３２は、モニタ信号制御回路４からの制御信号に基づいて、各機能ブロック２１の出力のうち、いずれかを選択して出力する。
【００２２】
信号選択回路３３は、モニタ信号制御回路４からの制御信号に基づいて、ＭＰＵコア１および周辺回路３内の各信号選択回路３１，３２の出力のうち、いずれかを選択して出力する。信号選択回路３３で選択された信号は、システムＬＳＩのモニタ端子に供給される。
【００２３】
ここで、信号選択回路３１〜３３が選択する対象は必ずしも一つでなくてもよい。例えば、モニタ端子が複数設けられている場合には、選択した複数の対象をそれぞれ異なるモニタ端子に供給することができる。
【００２４】
また、モニタ端子は、必ずしもモニタ専用の端子である必要はなく、システムＬＳＩの通常動作時に入力端子や出力端子として機能する端子を一時的に流用してもよい。
【００２５】
ＭＰＵコア１内のデバッグ支援回路１４は、内蔵ＲＡＭ２に格納されたデバッグ支援機能プログラムに基づいてデバッグ処理を行う。モニタ信号制御回路４は、外部から供給されたモニタ制御信号に基づいて、信号選択回路３１〜３３の選択を行う。これにより、ＭＰＵコア１や周辺回路３の内部状態を任意のタイミングで切り替えてモニタすることができる。
【００２６】
このように、第１の実施形態は、ＭＰＵコア１の内部信号のいずれかを選択する信号選択回路３１と、周辺回路３の内部信号のいずれかを選択する信号選択回路３２と、これら信号選択回路３１，３２のいずれかの出力を選択する信号選択回路３３とを有し、各信号選択回路３１〜３３の選択動作を必要に応じて任意に切り替えできるようにしたため、システムＬＳＩの内部動作をリアルタイムに詳細に解析することができる。また、モニタ用の端子が限られている場合でも、複数のモニタ信号を簡易に切り替えて出力できるため、デバッグの効率を向上できる。
【００２７】
（第２の実施形態）
第２の実施形態は、ＭＰＵコア１の動作状態を加味してモニタすべき信号を選択するものである。
【００２８】
図２は本発明に係る半導体集積回路の第２の実施形態であるシステムＬＳＩの内部構成を示すブロック図である。図２では、図１と共通する構成部分には同一符号を付しており、以下では相違点を中心に説明する。
【００２９】
図２のシステムＬＳＩは、基本的な構成は図１のシステムＬＳＩと同じであるが、信号選択回路３１〜３３にＭＰＵコア１からの制御信号が供給される点で図１のシステムＬＳＩと異なっている。
【００３０】
ＭＰＵコア１からの制御信号は、ＭＰＵコア１が現在どういう動作状態にあるかを示す信号である。信号選択回路３１〜３３は、モニタ信号制御回路４からの制御信号とＭＰＵコア１からの制御信号とに基づいて、モニタ信号を選択する。具体的には、ＭＰＵコア１の動作状態に応じて、最適なモニタ信号を選択する。
【００３１】
このように、第２の実施形態は、モニタ信号制御回路４からの制御信号だけでなく、ＭＰＵコア１からの制御信号も考慮に入れてモニタ信号を選択するため、ＭＰＵコア１の動作状態に応じてモニタ信号を切り替えることができる。すなわち、常に必要な信号をモニタすることができるため、デバッグの効率がよくなる。
【００３２】
なお、モニタ信号制御回路４からの制御信号を用いずに、ＭＰＵコア１からの制御信号のみに従ってモニタ信号を選択してもよい。この場合、外部からモニタ信号を入力しなくてもデバッグを行うことができる。
【００３３】
（第３の実施形態）
第３の実施形態は、複数のＭＰＵコア１を有するシステムＬＳＩのデバッグを行うものである。
【００３４】
図３は本発明に係る半導体集積回路の第３の実施形態であるシステムＬＳＩの内部構成を示すブロック図である。図３では、図２と共通する構成部分には同一符号を付しており、以下では相違点を中心に説明する。
【００３５】
図３のシステムＬＳＩは、複数のＭＰＵコア１と、各ＭＰＵコア１を動作させるためのプログラムを格納した複数の内蔵ＲＡＭ２とを有する。
【００３６】
各ＭＰＵコア１はそれぞれ信号選択回路３１を有する。信号選択回路３３は、各ＭＰＵコア１の信号選択回路３１の出力と、周辺回路３内の信号選択回路３２の出力との中からいずれかを選択する。
【００３７】
図３の信号選択回路３１，３２，３３は、図２と同様に、モニタ信号制御回路４からの制御信号と、ＭＰＵコア１からの制御信号とに基づいて、選択動作を行う。したがって、ＭＰＵコア１の動作状況に応じて、リアルタイムにモニタ信号を切り替えることができる。
【００３８】
このように、第３の実施形態では、システムＬＳＩ内部に複数のＭＰＵコア１が設けられている場合に、各ＭＰＵコア１ごとに信号選択回路３１を設け、これら信号選択回路３１のいずれかを任意に選択できるようにしたため、各ＭＰＵコア１の動作状態をリアルタイムにモニタすることができる。
【００３９】
また、信号選択回路３２，３３は、各ＭＰＵコア１の動作状態に応じてモニタ信号の選択を行うため、デバッグする上で最適な信号をモニタすることができ、デバッグの効率を上げることができる。
【００４０】
（第４の実施形態）
第４の実施形態は、モニタ信号をシリアル／パラレル変換して、複数の端子から出力するものである。
【００４１】
図４は本発明に係る半導体集積回路の第４の実施形態であるシステムＬＳＩの内部構成を示すブロック図である。図４では、図３と共通する構成部分には同一符号を付しており、以下では相違点を中心に説明する。
【００４２】
図４のシステムＬＳＩは、信号選択回路３３の出力信号をシリアル／パラレル変換するシリアル／パラレル変換器３４を備えている他は、図４と共通する。このシリアル／パラレル変換器３４の出力は、複数のモニタ端子に供給される。
【００４３】
モニタ信号をシリアル／パラレル変換して複数のモニタ端子に供給することにより、モニタ信号の周波数（データレート）を実質的に引き下げることができ、モニタ信号が急激に変化しても、取りこぼしなくモニタすることができる。
【００４４】
なお、シリアル／パラレル変換器３４の代わりに、信号間引き回路を設けてもよい。信号間引き回路は、モニタ信号を所定間隔で取り込むことにより、モニタ端子の数を増やすことなく、モニタ信号の周波数（データレート）を実質的に引き下げる。
【００４５】
信号間引き回路は、モニタ信号の一部だけを取り込むことになるため、情報が一部欠落してしまうが、モニタ信号の概略的な変化は把握することができる。したがって、長周期で信号レベルが変化する信号をモニタしたい場合に有効である。
【００４６】
なお、信号選択回路３１，３２の少なくとも一方の出力信号をシリアル／パラレル変換するシリアル／パラレル変換器か、信号間引き回路を設けてもよい。
【００４７】
（第５の実施形態）
第５の実施形態は、第４の実施形態とは逆に、モニタすべき複数の信号をパラレル／シリアル変換してから、モニタ端子に供給するものである。
【００４８】
図５は本発明に係る半導体集積回路の第５の実施形態であるシステムＬＳＩの内部構成を示すブロック図である。図５では、図４と共通する構成部分には同一符号を付しており、以下では相違点を中心に説明する。
【００４９】
図５の信号選択回路３３は、少なくとも２種類のモニタ信号を出力する。これらモニタ信号は、パラレル／シリアル変換器３５に入力されて一本のモニタ信号に変換されてから、モニタ端子に供給される。
【００５０】
図６はパラレル／シリアル変換器３５から出力されるモニタ信号のデータ形式を示す図である。パラレル／シリアル変換器３５は、図６（ａ）に示すモニタ信号ａ１〜ａ４と図６（ｂ）に示すモニタ信号ｂ１〜ｂ４とを時分割多重して、図６（ｃ）に示すような信号を出力する。図示のように、時分割多重することにより、モニタ信号の周波数（データレート）が高くなるため、単位時間あたりの情報量を増やすことができる。すなわち、最終的なモニタ信号のバンド幅を高くすることができ、短時間でデバッグを行うことができる。
【００５１】
また、パラレル／シリアル変換することにより、モニタ端子の数を減らすことができ、半導体集積回路のピン数の増加を抑制できる。
【００５２】
なお、信号選択回路３１，３２の少なくとも一方の出力信号をパラレル／シリアル変換するパラレル／シリアル変換器を設けてもよい。
【００５３】
（第６の実施形態）
上述した各実施形態において、信号選択回路から出力された最終的なモニタ信号は、システムＬＳＩに設けられたモニタ専用の端子に供給されてもよいし、あるいは、通常動作時に入力端子や出力端子として用いられる端子に供給されてもよい。
【００５４】
モニタ専用の端子を設けると、システムＬＳＩ内部での信号の切替処理が不要になるため、システムＬＳＩの内部構成を簡略化できる。また、通常動作時に入力端子や出力端子として用いられる端子と共用する場合には、システムＬＳＩの端子数を増やすことなく、種々の信号をモニタすることができる。すなわち、システムＬＳＩの端子を有効利用できる。
【００５５】
上述した各実施形態では、ＭＰＵコア１の内部のプログラムカウンタ１１、アキュムレータ１２、および各種レジスタ１３の値を信号選択回路で選択する例を説明したが、ＭＰＵコア１の内部状態を解析する具体的な回路ブロックは特に問わない。同様に、周辺回路３の内部状態を解析する具体的な回路ブロックも特に問わない。
【００５６】
【発明の効果】
以上詳細に説明したように、本発明によれば、マイクロプロセッサ等の制御回路の内部信号の中から任意に選択した信号と周辺回路の内部信号の中から任意に選択した信号との中からいずれかの信号を任意に選択して出力できるようにしたため、モニタ信号をリアルタイムに切り替えて出力でき、デバッグ効率を上げることができる。
【００５７】
また、制御回路からの制御信号に基づいてモニタ信号の切り替えを行うようにすれば、制御回路の動作状態に応じてモニタ信号を切り替えることができ、モニタする信号の数が少なくても、効率よくデバッグを行うことができる。
【図面の簡単な説明】
【図１】本発明に係る半導体集積回路の第１の実施形態であるシステムＬＳＩの内部構成を示すブロック図。
【図２】本発明に係る半導体集積回路の第２の実施形態であるシステムＬＳＩの内部構成を示すブロック図。
【図３】本発明に係る半導体集積回路の第３の実施形態であるシステムＬＳＩの内部構成を示すブロック図。
【図４】本発明に係る半導体集積回路の第４の実施形態であるシステムＬＳＩの内部構成を示すブロック図。
【図５】本発明に係る半導体集積回路の第５の実施形態であるシステムＬＳＩの内部構成を示すブロック図。
【図６】パラレル／シリアル変換器から出力されるモニタ信号のデータ形式を示す図。
【図７】従来のデバッグ手法を説明する図。
【図８】ＭＰＵと周辺回路を有する従来のシステムのブロック図。
【図９】モニタ専用の端子を有する従来のシステムのブロック図。
【符号の説明】
１  ＭＰＵコア
２  内蔵ＲＡＭ
３  周辺回路
４  モニタ信号制御回路
５  システムＬＳＩ周辺回路
１１  プログラムカウンタ
１２  アキュムレータ
１３  各種レジスタ
１４  デバッグ支援回路
３１〜３３  信号選択回路
【図１】
0004212224.tif 000002
【図２】
0004212224.tif 000003
【図３】
0004212224.tif 000004
【図４】
0004212224.tif 000005
【図５】
0004212224.tif 000006
【図６】
0004212224.tif 000007
【図７】
0004212224.tif 000008
【図８】
0004212224.tif 000009
【図９】
0004212224.tif 000010