(57)【要約】【課題】所定のマイコンチップに組み込まれる組み込みデバッグ回路であっても、複数のデバッグ機能を有効に利用できると共にプログラムの開発工程と対応したデバッグ環境を構築できるようにする。【解決手段】半導体集積回路装置は、ＣＰＵ１１０及び該ＣＰＵ１１０で実行されるプログラムの動作を検証するデバッグ基本回路部１６０を有する第１の半導体チップ１００と、第１の半導体チップ１００の主面上に保持され、ＣＰＵ１１０及びデバッグ基本回路部１６０と電気的に接続されたデバッグ拡張回路部２１０を有する第２の半導体チップ２００とを備えている。デバッグ基本回路部１６０は外部から入力される命令を解析するデバッグ命令解析部１７２を有している。第２の半導体チップ２００に形成されたデバッグ拡張回路部２１０は、少なくとも１つのデバッグ回路を含むデバッグ機能回路部２２０を有している。【選択図】　　　　図２
2004054825.tif 000002
【特許請求の範囲】
【請求項１】
メモリ部、入出力部、ＣＰＵコア及び該ＣＰＵコアで実行されるプログラムの動作を検証する第１のデバッグ回路部を有する第１の半導体チップと、
前記第１の半導体チップの主面上に保持され、前記ＣＰＵコア及び前記第１のデバッグ回路部と電気的に接続された第２のデバッグ回路部を有する第２の半導体チップとを備え、
前記第１のデバッグ回路部は、外部から入力されるデバッグ命令を解析する命令解析部と、解析した命令が前記ＣＰＵコアで実行する命令である場合は前記ＣＰＵコアに送信し、その実行結果を前記ＣＰＵコアから受信する第１送受信部と、前記第２のデバッグ回路部で実行する命令である場合は前記第２のデバッグ回路部に送信し、その実行結果を前記第２のデバッグ回路部から受信する第２送受信部とを有し、
前記第２のデバッグ回路部はデバッグ機能回路を含むことを特徴とする半導体集積回路装置。
【請求項２】
メモリ部、入出力部、第１のＣＰＵコア、該第１のＣＰＵコアで実行されるプログラムの動作を検証する第１のデバッグ回路部、第２のＣＰＵコア、該第２のＣＰＵコアで実行されるプログラムの動作を検証する第２のデバッグ回路部を有する第１の半導体チップと、
前記第１の半導体チップの主面上に保持され、前記第１のＣＰＵコア及び前記第１のデバッグ回路部と電気的に接続された第３のデバッグ回路部を有する第２の半導体チップと、
前記第１の半導体チップの主面上に保持され、前記第２のＣＰＵコア及び前記第２のデバッグ回路部と電気的に接続された第４のデバッグ回路部を有する第３の半導体チップと、
外部から入力されるデバッグ命令を、前記第１のデバッグ回路部又は前記第２のデバッグ回路部に切り換える命令切替部とを備え、
前記第１のデバッグ回路部は、前記命令切替部を通して入力されるデバッグ命令を解析する命令解析部と、解析した命令が前記第１のＣＰＵコアで実行する命令である場合は前記第１のＣＰＵコアに送信し、その実行結果を前記第１のＣＰＵコアから受信する第１送受信部と、前記第３のデバッグ回路部で実行する命令である場合は前記第３のデバッグ回路部に送信し、その実行結果を前記第３のデバッグ回路部から受信する第２送受信部とを有し、
前記第２のデバッグ回路部は、前記命令切替部を通して入力されるデバッグ命令を解析する命令解析部と、解析した命令が前記第２のＣＰＵコアで実行する命令である場合は前記第２のＣＰＵコアに送信し、その実行結果を前記第２のＣＰＵコアから受信する第３送受信部と、前記第４のデバッグ回路部で実行する命令である場合は前記第４のデバッグ回路部に送信し、その実行結果を前記第４のデバッグ回路部から受信する第４送受信部とを有し、
前記第３のデバッグ回路部及び第４のデバッグ回路部は、それぞれデバッグ機能回路を含むことを特徴とする半導体集積回路装置。
【請求項３】
前記デバッグ機能回路は、ウオッチポイント回路、トレース回路、タイマ回路、トリガ回路及びキャッシュ情報回路のうちの少なくとも１つを含み、且つ同一の機能回路同士でその規模及び構成が互いに異なる複数の回路から選択されて構成されていることを特徴とする請求項１又は２に記載の半導体集積回路装置。
【請求項４】
前記デバッグ機能回路は、書き換え可能なハードウェア回路であることを特徴とする請求項１〜３のうちのいずれか１項に記載の半導体集積回路装置。
【請求項５】
メモリ部、入出力部、ＣＰＵコア及び該ＣＰＵコアで実行されるプログラムの動作を検証する第１のデバッグ回路部を有する第１の半導体チップと、前記第１の半導体チップの主面上に保持され、前記ＣＰＵコア及び前記第１のデバッグ回路部と電気的に接続された第２のデバッグ回路部を有する第２の半導体チップとを有する半導体集積回路装置における前記第１のデバッグ回路部及び前記第２のデバッグ回路部に命令を発行するデバッガ装置であって、
前記第２のデバッグ回路部が有するデバッグ機能を特定するデバッグ搭載機能管理部と、
特定されたデバッグ機能に基づいて、前記デバッガ装置を初期化するデバッガ本体再構築部とを備えていることを特徴とするデバッガ装置。
【請求項６】
前記半導体集積回路装置における前記第２の半導体チップは、書き換え可能なハードウェア回路を有しており、
前記ハードウェア回路の情報を管理するハードウェア情報管理部と、
前記ハードウェア回路に含まれる１つ以上のデバッグ機能を搭載可能か否かを判定するデバッグ機能構築判定部と、
前記デバッグ機能構築判定部において搭載可能と判定されたデバッグ機能を前記ハードウェア回路に構築するデバッグ機能構築部とをさらに備えていることを特徴とする請求項５に記載のデバッガ装置。
【請求項７】
前記デバッグ機能構築部は、あらかじめ回路データとして作成された複数のハードウェア回路のうちのいずれか１つを選択することを特徴とする請求項６に記載のデバッガ装置。
【請求項８】
前記ハードウェア回路に設定されているデバッグ情報を保存するデバッグ設定情報管理部をさらに備え、
前記デバッグ設定情報管理部は、前記ハードウェア回路に設定されているデバッグ情報を解除した後、保存した前記デバッグ情報を前記ハードウェア回路に再度設定することを特徴とする請求項７に記載のデバッガ装置。
【請求項９】
前記デバッグ機能構築部は、複数のデバッグ機能を保持するデバッグ機能情報管理部を有し、
前記ハードウェア情報管理部は、複数のハードウェア回路情報を保持するハードウェア情報管理部を有していることを特徴とする請求項６〜８のうちのいずれか１項に記載のデバッガ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マイクロコンピュータ又はマイクロプロセッサ等を含み、ＣＰＵで実行されるプログラムの動作を検証するデバッグ回路を内蔵した半導体集積回路装置、及びそのプログラムのデバッグを行なうデバッガ装置に関する。
【０００２】
【従来の技術】
従来、家庭用電化製品等に組み込まれるマイクロコンピュータを始めとするプロセッサにより実行されるソフトウェアプログラム（以下、単にプログラムと呼ぶ。）の開発及び動作検証を行なうには、インサーキットエミュレータ（ＩＣＥ）、命令レベルソフトウェアシミュレータ又はモニタ等を用いて行なわれている。ＩＣＥは、マイクロコンピュータ又はマイクロプロセッサに特有のデバッグツールである。また、命令レベルソフトウェアシミュレータは、開発ターゲットであるマイクロコンピュータ又はマイクロプロセッサ上のプログラムを、例えばホストコンピュータ上で実行（シミュレーション）することにより、該ホストコンピュータにマイクロコンピュータ又はマイクロプロセッサと同一の実行状態を模擬的に作りだす手法である。また、モニタは、マイクロコンピュータ又はマイクロプロセッサが完成した後、マイクロコンピュータ又はマイクロプロセッサ上で実行しているプログラムの監視（モニタリング）を行なうために、あらかじめプログラムの内部に実行制御又は監視を行なうモニタリングプログラムを組み込んでおき、ホストコンピュータからモニタリングプログラムを操作することにより、マイクロコンピュータ又はマイクロプロセッサ上のプログラムのデバッグを行なう手法である。
【０００３】
ところで、従来のＩＣＥは、開発用の評価ボードを用意し、この評価ボードに搭載するプロセッサに代えて、専用のハードウェアを取り付けることによりターゲットプログラムの開発及びデバッグを行なっている。しかしながら、最近では、家庭用電化製品の小型化や、最終製品と同じ形態のプログラム動作環境でデバッグすることが多くなり、ＩＣＥのような専用のハードウェアを取り付けることが困難となってきている。また、ＩＣＥはデバッグ専用のツールであるため、最終製品と動作条件が異なる場合があり、ＩＣＥで動作時には発生しないプログラムの動作障害が、最終製品では発生するということも多くなってきている。
【０００４】
これらの問題を解決するため、最近では、実製品と同一の動作環境でプログラムの開発及び動作の検証を行なえるように、プロセッサ上にあらかじめ所定のデバッグ回路を組み込んでおき、組み込まれたデバッグ回路を用いてデバッグを行なうオンチップデバッグ環境が開発されている。
【０００５】
従って、オンチップデバッグ環境は、あらかじめ組込まれたデバッグ回路を用いることにより、開発時に限らず、製品の完成後にプログラムの動作障害が発生した場合でも、実際の製品上でプログラムの動作解析を行なうことができる。
【０００６】
【発明が解決しようとする課題】
しかしながら、前記従来のオンチップデバッグ環境において、デバッグ機能はその種類が多く、ターゲットとするプロセッサが決まると、該プロセッサに組み込まれるデバッグ機能は限られてしまう。従って、プログラム開発者が望むデバッグ機能が組み込まれていない場合には、他の代替手段でデバッグを行なわなければならないという問題がある。
【０００７】
また、プログラム開発における初期段階と最終段階とでは、一般に必要なデバッグ機能が異なるため、デバッグ機能が限定されていると、プログラム開発者の要望に十分に対応できないという問題もある。
【０００８】
そこで、すべてのデバッグ機能をプロセッサに組み込むと、組み込まれたデバッグ回路の回路規模が大きくなり、その結果、プロセッサを含む半導体チップの小型化の妨げとなる。
【０００９】
本発明は、前記従来の問題を解決し、所定のマイクロコンピュータチップ又はマイクロプロセッサチップに組み込まれる組み込みデバッグ回路であっても、複数のデバッグ機能を有効に利用できると共に、プログラムの開発工程と対応したデバッグ環境を構築できるようにすることを目的とする。
【００１０】
【課題を解決するための手段】
前記の目的を達成するため、本発明は、半導体集積回路装置を、ＣＰＵコア及び第１のデバッグ回路を含む第１の半導体チップと、該第１の半導体チップの上に保持され、少なくとも１つのデバッグ機能を含む第２のデバッグ回路を有する第２の半導体チップとにより構成する。
【００１１】
具体的に、本発明に係る第１の半導体集積回路装置は、メモリ部、入出力部、ＣＰＵコア及び該ＣＰＵコアで実行されるプログラムの動作を検証する第１のデバッグ回路部を有する第１の半導体チップと、第１の半導体チップの主面上に保持され、ＣＰＵコア及び第１のデバッグ回路部と電気的に接続された第２のデバッグ回路部を有する第２の半導体チップとを備え、第１のデバッグ回路部は、外部から入力されるデバッグ命令を解析する命令解析部と、解析した命令がＣＰＵコアで実行する命令である場合はＣＰＵコアに送信し、その実行結果をＣＰＵコアから受信する第１送受信部と、第２のデバッグ回路部で実行する命令である場合は第２のデバッグ回路部に送信し、その実行結果を第２のデバッグ回路部から受信する第２送受信部とを有し、第２のデバッグ回路部はデバッグ機能回路を含む。
【００１２】
第１の半導体集積回路装置によると、メモリ部、入出力部、ＣＰＵコア及び該ＣＰＵコアで実行されるプログラムの動作を検証する第１のデバッグ回路部を有する第１の半導体チップと、第１の半導体チップの主面上に保持され、ＣＰＵコア及び第１のデバッグ回路部と電気的に接続された第２のデバッグ回路部を有する第２の半導体チップとを備えている。このため、第１の半導体チップの上に保持された第１の半導体チップとは別体の第２の半導体チップの第２のデバッグ回路に複数のデバッグ機能を持たせることができるようになる。その結果、第２の半導体チップにデバッグに必要なすべてのデバッグ機能を組み込んだとしても、第１の半導体チップの回路規模が大きくなることがない。従って、同一のマイクロコンピュータ又はマイクロプロセッサに組み込まれるデバッグ回路であっても、複数のデバッグ機能をより有効に利用できるようになり、且つプログラムの開発工程と対応したデバッグ環境を構築できるようになる。
【００１３】
本発明に係る第２の半導体集積回路装置は、メモリ部、入出力部、第１のＣＰＵコア、該第１のＣＰＵコアで実行されるプログラムの動作を検証する第１のデバッグ回路部、第２のＣＰＵコア、該第２のＣＰＵコアで実行されるプログラムの動作を検証する第２のデバッグ回路部を有する第１の半導体チップと、第１の半導体チップの主面上に保持され、第１のＣＰＵコア及び第１のデバッグ回路部と電気的に接続された第３のデバッグ回路部を有する第２の半導体チップと、第１の半導体チップの主面上に保持され、第２のＣＰＵコア及び第２のデバッグ回路部と電気的に接続された第４のデバッグ回路部を有する第３の半導体チップと、外部から入力されるデバッグ命令を、第１のデバッグ回路部又は第２のデバッグ回路部に切り換える命令切替部とを備え、第１のデバッグ回路部は、命令切替部を通して入力されるデバッグ命令を解析する命令解析部と、解析した命令が第１のＣＰＵコアで実行する命令である場合は第１のＣＰＵコアに送信し、その実行結果を第１のＣＰＵコアから受信する第１送受信部と、第３のデバッグ回路部で実行する命令である場合は第３のデバッグ回路部に送信し、その実行結果を第３のデバッグ回路部から受信する第２送受信部とを有し、第２のデバッグ回路部は、命令切替部を通して入力されるデバッグ命令を解析する命令解析部と、解析した命令が第２のＣＰＵコアで実行する命令である場合は第２のＣＰＵコアに送信し、その実行結果を第２のＣＰＵコアから受信する第３送受信部と、第４のデバッグ回路部で実行する命令である場合は第４のデバッグ回路部に送信し、その実行結果を第４のデバッグ回路部から受信する第４送受信部とを有し、第３のデバッグ回路部及び第４のデバッグ回路部は、それぞれデバッグ機能回路を含む。
【００１４】
第２の半導体集積回路装置によると、第１の半導体集積回路装置と同様の効果を得られる上に、第１の半導体チップに複数のＣＰＵコアが設けられている場合であっても、第１の半導体チップの上にＣＰＵコアごとに保持される第２の半導体チップ及び第３の半導体チップを備えているため、ＣＰＵコアごとにプログラムのデバッグ機能を選択して組み込むことができる。
【００１５】
第１又は第２の半導体集積回路装置において、デバッグ機能回路が、ウオッチポイント回路、トレース回路、タイマ回路、トリガ回路及びキャッシュ情報回路のうちの少なくとも１つを含み、且つ同一の機能回路同士でその規模及び構成が互いに異なる複数の回路から選択されて構成されていることが好ましい。
【００１６】
また、第１又は第２の半導体集積回路装置において、デバッグ機能回路が、書き換え可能なハードウェア回路であることが好ましい。
【００１７】
このようにすると、第２の半導体チップの第２のデバッグ回路に組み込まれたデバッグ機能をプログラムの開発状況に合わせて選択的に構築できるため、プログラムのデバッグをさらに効率良く行なうことができる。
【００１８】
本発明に係るデバッガ装置は、メモリ部、入出力部、ＣＰＵコア及び該ＣＰＵコアで実行されるプログラムの動作を検証する第１のデバッグ回路部を有する第１の半導体チップと、第１の半導体チップの主面上に保持され、ＣＰＵコア及び第１のデバッグ回路部と電気的に接続された第２のデバッグ回路部を有する第２の半導体チップとを有する半導体集積回路装置における第１のデバッグ回路部及び第２のデバッグ回路部に命令を発行するデバッガ装置を対象とし、第２のデバッグ回路部が有するデバッグ機能を特定するデバッグ搭載機能管理部と、特定されたデバッグ機能に基づいてデバッガ装置を初期化するデバッガ本体再構築部とを備えている。
【００１９】
本発明のデバッガ装置は、本発明の半導体集積回路装置をデバッグ対象とするプログラムのデバッガ装置であって、第２の半導体チップの第２のデバッグ回路部が有するデバッグ機能を特定するデバッグ搭載機能管理部と、特定されたデバッグ機能に基づいてデバッガ装置を初期化するデバッガ本体再構築部とを備えている。このため、第２のデバッグ回路部に組み込まれたデバッグ機能が従来のように固定されておらず半導体チップごとに異なる場合であっても、本発明のデバッガ装置は、第２の半導体チップの第２のデバッグ回路部に組み込まれたデバッグ機能により確実にデバッグ操作を実行することができる。
【００２０】
本発明のデバッガ装置は、半導体集積回路装置の第２の半導体チップが、書き換え可能なハードウェア回路を有しており、ハードウェア回路の情報を管理するハードウェア情報管理部と、ハードウェア回路に含まれる１つ以上のデバッグ機能を搭載可能か否かを判定するデバッグ機能構築判定部と、デバッグ機能構築判定部において搭載可能と判定されたデバッグ機能をハードウェア回路に構築するデバッグ機能構築部とをさらに備えていることが好ましい。
【００２１】
このようにすると、第２の半導体チップの第２のデバッグ回路に組み込まれたデバッグ機能をプログラムの開発状況に合わせて選択的に構築できるため、プログラムのデバッグをさらに効率良く行なうことができる。
【００２２】
この場合に、デバッグ機能構築部が、あらかじめ回路データとして作成された複数のハードウェア回路のうちのいずれか１つを選択することが好ましい。
【００２３】
このようにすると、ハードウェア回路を第２のデバッグ回路部に構築する時間が短縮されるため、デバッガ装置の立上げ時間を短縮することができる。
【００２４】
さらにこの場合に、本発明のデバッガ装置が、ハードウェア回路に設定されているデバッグ情報を保存するデバッグ設定情報管理部をさらに備え、デバッグ設定情報管理部が、ハードウェア回路に設定されているデバッグ情報を解除した後、保存したデバッグ情報をハードウェア回路に再度設定することが好ましい。
【００２５】
このようにすると、プログラムデバッグ中に使用できるデバッグ機能の構成ををデバッガ装置から変更できるため、さらに効率良くプログラムのデバッグを行うことができる。
【００２６】
また、このとき、デバッグ機能構築部は、複数のデバッグ機能を保持するデバッグ機能情報管理部を有し、ハードウェア情報管理部は、複数のハードウェア回路情報を保持するハードウェア情報管理部を有していることが好ましい。
【００２７】
このようにすると、複数のＣＰＵコアを有する半導体集積回路装置であっても、各ＣＰＵコアごとに適したデバッグ環境を構築することができる。
【００２８】
【発明の実施の形態】
（第１の実施形態）
本発明の第１の実施形態について図面を参照しながら説明する。
【００２９】
図１は本発明の第１の実施形態に係る半導体集積回路装置のブロック構成を示している。
【００３０】
図１に示すように、マイクロコンピュータチップである第１の半導体チップ１００には、例えば、ＣＰＵ１１０、該ＣＰＵ１１０で実行されるプログラムを格納する読み出し専用メモリであるＲＯＭ部１２０、書き換え可能なメモリであるＲＡＭ部１３０、並びに入出力回路等を含む第１周辺回路部１４０及び第２周辺回路部１５０がそれぞれ共通信号線であるバス１０５と接続されて配置されている。
【００３１】
また、ＣＰＵ１１０で実行されるプログラムの動作を検証するデバッグ基本回路部１６０が、ＣＰＵ１１０、及びデバッグ用のソフトウェアであるデバッガを搭載したホストコンピュータ（図示せず）とそれぞれ信号線により接続されて配置されている。但し、第１の半導体チップ１００の構成は一例であって、これに限られない。
【００３２】
第１の実施形態の特徴として、第１の半導体チップ１００の主面上には、１つ以上のデバッグ機能を有するデバッグ拡張回路部２１０が形成された第２の半導体チップ２００が、ＣＰＵ１１０及びデバッグ基本回路部１６０を覆うように、例えばチップオンチップ方式により保持されている。
【００３３】
図２（ａ）に第１の半導体チップ１００におけるＣＰＵ１１０及びデバッグ基本回路部１６０と第２の半導体チップ２００とを含む部分を拡大して示す。また、図２（ｂ）に図２（ａ）の断面構成を示す。
【００３４】
図２（ａ）及び図２（ｂ）に示すように、第１の半導体チップ１００において、ＣＰＵ１１０とデバッグ基本回路部１６０とは、該デバッグ基本回路部１６０からの命令をＣＰＵ１１０に通知するＣＰＵ命令通知信号線１６１と、ＣＰＵ１１０からのプログラムの実行情報及び命令の実行結果を受けるＣＰＵ実行結果受信信号線１６２とによって接続されている。
【００３５】
また、デバッグ基本回路部１６０は、デバッガ命令通知信号線１６３によりホストコンピュータ（図示せず）と接続されており、接続されたホストコンピュータから命令を受けると共にその実行結果をホストコンピュータに通知する。
【００３６】
デバッグ基本回路部１６０とデバッグ拡張回路部２１０とは、デバッグ拡張回路部設定情報通知信号線１６４及びデバッグ拡張回路部結果受信信号線１６５によって接続されている。デバッグ基本回路部１６０は、ホストコンピュータから受信した命令がデバッグ拡張回路部２１０に対する命令である場合には、受信した命令をデバッグ拡張回路部設定情報通知信号線１６４を通してデバッグ拡張回路部２１０に送信し、その実行結果をデバッグ拡張回路部結果受信信号線１６５を通して受信する。
【００３７】
デバッグ拡張回路部２１０とＣＰＵ１１０とは、アドレス情報信号線１６６及びオペランド情報信号線１６７によって接続されている。デバッグ拡張回路部２１０は、必要な実行アドレス情報をＣＰＵ１１０からアドレス情報信号線１６６を通して受信する。また、デバッグ拡張回路部２１０は、命令に含まれるデータ又はアドレス情報からなる実行オペランド情報をＣＰＵ１１０からオペランド情報信号線１６７を通して受信する。
【００３８】
なお、ＣＰＵ命令通知信号線１６１、ＣＰＵ実行結果受信信号線１６２、デバッグ拡張回路部設定情報通知信号線１６４、デバッグ拡張回路部結果受信信号線１６５、アドレス情報信号線１６６、及びオペランド情報信号線１６７は、例えば８ビット又は１６ビットデータを転送可能なパラレル信号線により構成されている。
【００３９】
図３は本発明の第１の実施形態に係るデバッグ基本回路部１６０の詳細な構成の一例を示している。
【００４０】
図３に示すように、デバッグ基本回路部１６０は、通信部１７１、デバッグ命令解析部１７２、ＣＰＵ実行命令送信部１７３、ＣＰＵ実行結果受信部１７４、デバッグ拡張回路部設定情報送信部１７５、及びデバッグ拡張回路部結果受信部１７６により構成されている。
【００４１】
通信部１７１はホストコンピュータとの通信を制御し、デバッグ命令解析部１７２は通信部１７１が受信した命令を解析し、解析した命令の内容に応じてＣＰＵ実行命令送信部１７３又はデバッグ拡張回路部設定情報送信部１７５に命令を送信する。
【００４２】
ＣＰＵ実行命令送信部１７３は、デバッグ命令解析部１７２からの命令をＣＰＵ命令通知信号線１６１を通してＣＰＵ１１０に送信する。また、ＣＰＵ実行結果受信部１７４は、ＣＰＵ１１０における命令の実行結果と、ＲＯＭ部１２０、ＲＡＭ部１３０及び各種レジスタの内容とをＣＰＵ結果受信信号線１６２を通して受信する。
【００４３】
デバッグ拡張回路部設定情報送信部１７５は、デバッグ命令解析部１７２からの命令（デバッグ設定情報）をデバッグ拡張回路部設定情報通知信号線１６４を通してデバッグ拡張回路部２１０に送信する。また、デバッグ拡張回路部結果受信部１７６は、デバッグ拡張回路部２１０に設定された命令の実行結果をデバッグ拡張回路部結果受信信号線１６５を通して受信する。
【００４４】
図４は本発明の第１の実施形態に係るデバッグ拡張回路部２１０の詳細な構成の一例を示している。
【００４５】
図４に示すように、デバッグ拡張回路部２１０は、互いに異なる機能を持った複数のデバッグ回路を含むデバッグ機能回路部２２０を有している。ここでは、複数のデバッグ回路のうち、例えば、ウオッチポイント回路２２１、トレース回路２２２、タイマ回路２２３、トリガ回路２２４、及びキャッシュ情報回路２２５を含む構成としている。
【００４６】
良く知られているように、ウオッチポイント回路２２１は、命令により設定されたプログラム中の停止位置（ブレークポイント）や、イベント（事象）の発生を監視して通知する。トレース回路２２２は、ＣＰＵ１１０におけるプログラムの実行内容及び実行結果を保存する。タイマ回路２２３は、ＣＰＵ１１０におけるプログラムの実行時間情報を管理する。トリガ回路２２４は、図示はしていないが外部からのトリガ入力や外部へのトリガ出力を監視する。キャッシュ情報回路２２５は、ＣＰＵ１１０にキャッシュメモリが搭載されている場合に有効であり、ＣＰＵ１１０のキャッシュメモリの使用状況及びヒット率を監視する。
【００４７】
デバッグ機能回路部２２０に対する命令及びデバッグに関する設定情報は、デバッグ拡張回路部設定情報通知信号線１６４を通して設定情報受信部２３１に通知される。
【００４８】
設定情報設定部２３２は、設定情報受信部２３１が受信した命令及び設定情報を解析し、解析した設定情報をウオッチポイント回路２２１、トレース回路２２２、タイマ回路２２３、トリガ回路２２４及びキャッシュ情報回路２２５にそれぞれ設定情報通知信号線２２６を通して通知する。
【００４９】
状態管理部２３３は、結果通知信号線２２７を通してデバッグ機能回路部２２０の実行状態を監視する。
【００５０】
結果送信部２３４は、デバッグ機能回路部２２０の実行結果をデバッグ拡張回路部結果受信信号線１６５を通してデバッグ基本回路部１６０に通知する。
【００５１】
第１の実施形態の特徴として、デバッグ機能回路部２２０に組み込まれている各デバッグ回路が持つ個々の機能がホストコンピュータから識別できるようにデバッグ搭載回路識別部２３５を有しており、ここでは、ウオッチポイント回路２２１、トレース回路２２２、タイマ回路２２３、トリガ回路２２４及びキャッシュ情報回路２２５を識別できる識別情報を保持している。
【００５２】
また、デバッグ拡張回路部２１０は、アドレス情報受信部２３６とオペランド情報受信部２３７とを有している。アドレス情報受信部２３６は、アドレス情報信号線１６６から必要なアドレス情報を受け、アドレス情報通知信号線２２８を通してデバッグ機能回路部２２０の各デバッグ回路に通知する。オペランド情報受信部２３７は、オペランド情報信号線１６７から必要なオペランド情報を受け、オペランド情報通知信号線２２９を通してデバッグ機能回路部２２０の各デバッグ回路に通知する。
【００５３】
ここで、デバッグ拡張回路部２１０に組み込まれているウオッチポイント回路２２１、トレース回路２２２、タイマ回路２２３、トリガ回路２２４及びキャッシュ情報回路２２９は、それぞれの機能内容に応じて複数用意されたなかから選択されて構成されている。すなわち、プログラムの開発者がターゲットプログラムのデバッグに必要とされる機能を半導体集積回路装置（ＬＳＩ）の開発時に選択する。
【００５４】
また、各回路２２１〜２２５は、そのいずれもがアドレス情報受信部２３６とアドレス情報通知信号線２２８を介して接続されており、また、そのいずれもがオペランド情報受信部２３７とオペランド情報通知信号線２２９を介して接続されているが、各回路２２１〜２２５のうち、デバッグの状況によっては、アドレス情報受信部２３６又はオペランド情報受信部２３７と接続されない構成であってもよい。
【００５５】
図５（ａ）〜図５（ｅ）は第１の実施形態に係る半導体集積回路装置に選択可能な機能ごとのデバッグ回路の一例を示している。ここでは、各回路Ａ、Ｂ、Ｃの順に回路規模が小さくなることを模式的に表わしている。
【００５６】
図５（ａ）は第２の半導体チップ２００のデバッグ拡張回路部２１０に組み込み可能なウオッチポイント回路２２１の一例を示している。これらの回路Ａ〜Ｃは、設定できるウオッチポイントの件数又はウオッチポイントの種類により回路の規模及び構成がそれぞれ異なっている。
【００５７】
図５（ｂ）はデバッグ拡張回路部２１０に組み込み可能なトレース回路２２２の一例を示し、各回路Ａ〜Ｃは、設定できるトレースの件数又はトレースの種類により回路の規模及び構成がそれぞれ異なっている。
【００５８】
同様に、図５（ｃ）はデバッグ拡張回路部２１０に組み込み可能なタイマ回路２２３の一例を示し、各回路Ａ〜Ｃは、設定できるタイマの件数又はタイマの種類により回路の規模及び構成がそれぞれ異なっている。図５（ｄ）はデバッグ拡張回路部２１０に組み込み可能なトリガ回路２２４の一例を示し、各回路Ａ〜Ｃは、設定できるトリガの件数又はトリガの種類により回路の規模及び構成がそれぞれ異なっている。図５（ｅ）はデバッグ拡張回路部２１０に組み込み可能なキャッシュ情報回路２２５の一例を示し、各回路Ａ〜Ｃは、設定できるキャッシュ情報の種類により回路の規模及び構成がそれぞれ異なっている。
【００５９】
図６は図５（ａ）〜図５（ｅ）に基づいて作成した、デバッグ機能回路２２０に組み込み可能なデバッグ回路の組み合わせの一覧を示している。前述したように、プログラム開発者は、ＬＳＩの開発時にデバッグ機能回路２２０に組み込みたい組み合わせのなかから、単一機能を持つデバッグ回路を適当に組み合わせて選択する。選択された各デバッグ回路は、デバッグ拡張回路部２１０のデバッグ搭載回路識別部２３５に登録される。
【００６０】
このように、プログラムの動作検証に用いるデバッグ回路は、その種類が多く且つ単一機能である。本発はこの点に着目してなされたものであり、図５（ａ）〜図５（ｅ）に示したように、単一で且つ互いに独立した機能を有する複数種類のデバッグ回路で、さらに、これら単一機能のデバッグ回路ごとに互いの回路規模や構成が異なる複数のデバッグ回路を用意しておき、これらのなかから、開発するプログラムのデバッグに最適なデバッグ回路を少なくとも１つ選択することにより、デバッグの効率を向上させることができる。
【００６１】
その上、デバッグ機能回路２２０は、ＣＰＵ１１０が搭載された第１の半導体チップ１００の上に保持された別体の第２の半導体チップ２００に形成されるため、デバッグ工程ごとに必要なすべてのデバッグ回路を組み込んだとしても、第１の半導体チップ１００の回路規模を増大させるおそれがない。
【００６２】
また、デバッグ基本回路部１６０には送信専用のデバッグ拡張回路部設定情報送信部１７５を設け、且つデバッグ拡張回路部２１０には受信専用の設定情報受信部２３１を設けている。このため、デバッグ拡張回路部２１０におけるデバッグ機能回路部２２０を構成するウオッチポイント回路２２１等の各デバッグ回路と接続される信号線が１組で済むので、信号線の本数を低減することができる。その結果、第１の半導体チップ１００の上に第２の半導体チップ２００を貼り合せる工程において、信号線の本数が低減したことにより両チップ間の電気的な導通を図ることが容易となるため、両チップの貼り合わせの精度が高くなるので、半導体集積回路装置における動作の信頼性が向上する。
【００６３】
なお、第１の実施形態においては、デバッグ拡張回路部２１０のデバッグ機能回路部２２０に組み込まれたデバッグ機能は、ウォッチポイント回路２２１、トレース回路２２２、タイマ回路２２３、トリガ回路２２４及びキャッシュ情報回路２２５が搭載されているが、図６に示した組み合わせの一覧のなかから選べば良い。
【００６４】
以下、本発明の第１の実施形態に係る半導体集積回路装置におけるプログラムの動作を検証するデバッガ装置について説明する。
【００６５】
図７は本発明の第１の実施形態に係るデバッガ装置のブロック構成を示している。図７に示すように、デバッガ装置は、例えばパーソナルコンピュータからなり、出力装置であるディスプレイ３０１と入力装置であるキーボード３０２とを備えたホストコンピュータ３００には、図１に示したデバッグ対象である半導体集積回路装置に搭載されたＣＰＵ１１０上で実行されるプログラムの動作検証（デバッグ）を行なうソフトウェアであるデバッガ３１０が搭載されている。
【００６６】
デバッガ３１０は、デバッグ対象のプログラムのデバッグ情報をディスプレイ３０１に出力するデバッガ表示部３２０と、設定されたデバッグ命令、ＣＰＵ１１０上で実行されるプログラムの実行制御、並びにプログラム情報の取得及び設定を管理するデバッガ本体部３３０と、キーボード３０２等からデバッガ３１０に入力された命令をデバッガ命令通知通信線１６３を通して、デバッグ対象の第１の半導体チップ１００に組み込まれたデバッガ基本回路部１２０に送信し、その実行結果を受信するデバッガ通信部３４０とから構成されている。
【００６７】
デバッガ本体部３３０は、デバッグ対象の第２の半導体チップ２００が有するデバッグ拡張回路部２１０に組み込まれたデバッグ機能情報を保持するデバッグ搭載機能管理部３３１と、該デバッグ搭載機能管理部３３１に保持されたデバッグ機能情報に基づき、開発対象のデバッグ拡張回路部２１０に組み込まれているデバッグ機能を利用できるように、デバッガ本体部３１０を初期化するデバッガ本体再構築部３３２とから構成されている。
【００６８】
第１の実施形態に係るデバッガ装置によると、たとえ、デバッグ拡張回路部２１０に組み込まれているデバッグ機能回路２２０が、デバッグ対象である半導体集積回路装置ごとに変更されたとしても、所望のデバッグ機能を選択することができる。
【００６９】
また、デバッグ拡張回路部２１０が形成された第２の半導体チップ２００は、第１の半導体チップ１００に形成されているＣＰＵ１１０及びデバッグ基本回路部１６０の上側にこれらを跨ぐように配置されているため、ＣＰＵ１１０及びデバッグ基本回路部１６０とデバッグ拡張回路部２１０との間の電気配線長をいずれも短くできる。その結果、デバッグ機能回路２２０の応答性が極めて早くなり、デバッガ３１０が安定して動作する。
【００７０】
以下、本発明の第１の実施形態に係るデバッガ装置の初期化動作について説明する。
【００７１】
図８は第１の実施形態に係るデバッガ装置における初期化フローの一例を示している。ここでは、図２、図３、図４、図７及び図８を参照しながらデバッガ装置の初期化動作を説明する。
【００７２】
まず、デバッガ３１０を起動すると、第１の工程ＳＴ１において、デバッグ搭載機能管理部３３１は、第２の半導体チップ２００におけるデバッグ拡張回路部２１０のデバッグ搭載回路識別部２３５に保持されているデバッグ回路の識別情報を取得するデバッグ機能取得命令を第２の半導体チップ２００に発行する。
【００７３】
次に、第２の工程ＳＴ２において、発行されたデバッグ機能取得命令は、デバッガ命令通知信号線１６３を通して第１の半導体チップ１００におけるデバッグ基本回路部１６０の通信部１７１で受信され、デバッグ命令解析部１７２で解析される。解析された命令はデバッグ拡張回路部２１０に対する命令であるため、デバッグ拡張回路部設定情報送信部１７５からデバッグ拡張回路部設定情報通知信号線１６４を通して第２の半導体チップ２００のデバッグ拡張回路部２１０に送信される。続いて、デバッグ拡張回路部２１０に含まれる設定情報受信部２３１は、デバッグ拡張回路部設定情報送信部１７５から送信された命令を受信し、デバッグ搭載回路識別部２３５が保持する識別情報を読み出す。続いて、読み出された識別情報は、結果送信部２３４からデバッグ拡張回路部結果受信信号線１６５を通して第１の半導体チップ１００のデバッグ基本回路部１６０に送信される。続いて、デバッグ基本回路部１６０に含まれるデバッグ拡張回路部結果受信部１７６は、デバッグ拡張回路部２１０からの実行結果である識別情報を受け取り、通信部１７１からデバッガ命令通知信号線１６３を通して、デバッガ本体部３３０のデバッグ搭載機能管理部３３１に識別情報を送信する。
【００７４】
次に、第３の工程ＳＴ３において、デバッガ本体部３３０のデバッガ本体再構築部３３２は、受け取った識別情報に基づいて、デバッガ装置が使用できるデバッグ機能を初期化する。
【００７５】
このように、第１の実施形態によると、デバッグ対象のプログラムを搭載した半導体集積回路装置を構成する第２の半導体チップ２００には、デバッグ拡張回路部２１０が形成されており、該デバッグ拡張回路部２１０に選択して組み込まれた１つ以上のデバッグ回路を識別する識別情報を保持している。
【００７６】
従って、第１の実施形態に係るデバッガ装置は、デバッガ３１０の起動時に、デバッグ対象の半導体集積回路装置からデバッグ機能を識別する識別情報を取得し、取得した識別情報に基づいてデバッガ本体部３３０の初期化を行なうため、組み込まれているデバッグ機能回路２２０が変更になったとしても、デバッグ対象の半導体集積回路装置に応じたデバッグ環境を容易に且つ確実に構築することができる。
【００７７】
（第２の実施形態）
以下、本発明の第２の実施形態について図面を参照しながら説明する。
【００７８】
図９（ａ）は本発明の第２の実施形態に係る半導体集積回路装置におけるＣＰＵ及びデバッグ基本回路部と第２の半導体チップとを含む部分の平面構成を示し、図９（ｂ）はその断面構成を示している。図９（ａ）及び（ｂ）において、図２（ａ）及び（ｂ）に示す構成要素と同一の構成要素には同一の符号を付すことにより説明を省略する。
【００７９】
第１の実施形態との相違点は、第２の半導体チップ２００が、書き換え可能なハードウェア回路であるフィールドプログラマブルゲートアレイ（ＦＰＧＡ）４１０により構成されている点である。
【００８０】
そのため、ホストコンピュータ上のデバッガからＦＰＧＡ４１０に対して回路情報を転送できるように、第１の半導体チップ１００に組み込まれたデバッグ基本回路部１６０とＦＰＧＡ４１０との間にＦＰＧＡ回路設定信号線１６８が設けられている。
【００８１】
図１０は本発明の第２の実施形態に係るデバッグ基本回路部１６０の詳細な構成の一例を示している。図１０において、図３に示す構成要素と同一の構成要素には同一の符号を付すことにより説明を省略する。
【００８２】
図１０に示すように、デバッグ基本回路部１６０には、ＦＰＧＡ４１０にデバッグ機能回路を構築するためのＦＰＧＡ回路構成部１７７を設けている。
【００８３】
ＦＰＧＡ回路構成部１７７は、ホストコンピュータ上のデバッガからデバッガ命令通知信号線１６３を通してＦＰＧＡ４１０に書込み要求が送信されたときに、デバッガから送信されるＦＰＧＡの回路データに基づいてＦＰＧＡ回路設定信号線１６８を通してＦＰＧＡ４１０上にデバッグ機能回路を構築する。
【００８４】
図１１（ａ）〜図１１（ｅ）は第２の実施形態に係る半導体集積回路装置に選択可能なデバッグ回路の一例を示している。ここでは、各回路ａ、ｂ、ｃの順に回路規模が小さくなることを模式的に表わしている。
【００８５】
図１１（ａ）は第２の半導体チップ２００のＦＰＧＡ４１０に構築可能なウオッチポイント回路の一例を示している。各回路ａ〜ｃは、設定できるウオッチポイントの件数又はウオッチポイントの種類により回路の規模及び構成がそれぞれ異なっている。
【００８６】
同様に、図１１（ｂ）はＦＰＧＡ４１０に構築可能なトレース回路の一例を示し、各回路ａ〜ｃは、設定できるトレースの件数又はトレースの種類により回路の規模及び構成がそれぞれ異なっている。図１１（ｃ）はＦＰＧＡ４１０に構築可能なタイマ回路の一例を示し、各回路ａ〜ｃは、設定できるタイマの件数又はタイマの種類により回路の規模及び構成がそれぞれ異なっている。図１１（ｄ）はＦＰＧＡ４１０に構築可能なトリガ回路の一例を示し、各回路ａ〜ｃは、設定できるトリガの件数又はトリガの種類により回路の規模及び構成がそれぞれ異なっている。図１１（ｅ）はＦＰＧＡ４１０に構築可能なキャッシュ情報回路の一例を示し、各回路ａ〜ｃは、設定できるキャッシュ情報の種類により回路の規模及び構成がそれぞれ異なっている。
【００８７】
これらの各デバッグ回路は、デバッグ工程に応じて選択することができるようにホストコンピュータにあらかじめ登録される。
【００８８】
第２の実施形態においては、ホストコンピュータ３００に搭載されたデバッガ３１０の起動時に、選択されたデバッグ回路をＦＰＧＡ４１０に構築できるように回路データを作成し、作成した回路データをデバッガ命令通知信号線１６３を通して転送し、ＦＰＧＡ４１０に選択されたデバッグ機能回路を構築する。
【００８９】
以下、本発明の第２の実施形態に係る半導体集積回路装置におけるプログラムの動作を検証するデバッガ装置について説明する。
【００９０】
図１２は本発明の第２の実施形態に係るデバッガ装置のブロック構成を示している。図１２において、図７に示す構成要素と同一の構成要素には同一の符号を付すことにより説明を省略する。
【００９１】
図１２に示すように、第２の実施形態に係るデバッガ装置は、そのデバッガ３１０に、例えば図１１（ａ）〜図１１（ｅ）に示すようなそれぞれ単一機能を有する複数のデバッグ回路のなかから所望のデバッグ回路を選択するデバッグ機能入力部３２１を有している。
【００９２】
デバッガ本体部３３０は、第１の実施形態の構成に加えて、デバッグ対象のプログラムに関するデバッグ情報を保持するデバッグ設定情報管理部３３３と、デバッグ機能入力部３２１により選択されたデバッグ回路が、ターゲットのＦＰＧＡ４１０に構築可能か否かを判定するデバッグ機能構築判定部３３４と、該デバッグ機能構築判定部３３４において構築可能と判定されたデバッグ回路をＦＰＧＡ４１０が使用できる回路データとして作成し、半導体集積回路装置に送信して構築するデバッグ機能構築部３３５と、ＦＰＧＡ４１０が有するＦＰＧＡ情報を取得して保持するＦＰＧＡ情報管理部３３６とを有している。
【００９３】
このように第２の実施形態に係るデバッガ３１０によると、プログラム開発者はデバッガ３１０の起動時にデバッグ工程に応じた最適なデバッグ環境を選択することができるため、プログラムの開発効率が大きく向上する。
【００９４】
また、デバッガ３１０は、所望のデバッグ回路が選択された後、選択されたデバッグ回路が実際にＦＰＧＡ４１０に構築できるか否かを判定してプログラム開発者に通知するため、所望のデバッグ機能をディスプレイ３０１により視覚的に確認しながら選択することができる。
【００９５】
その上、デバッガ３１０は、そのデバッガ本体部３３０にＦＰＧＡ情報管理部３３６を設けているため、第２の半導体チップ２００に形成されているＦＰＧＡ４１０のハードウェア構成が変更されたとしても、デバッガ３１０を変更することなく、最適なデバッグ環境を構築することができる。
【００９６】
以下、本発明の第２の実施形態に係るデバッガ装置の初期化動作について説明する。
【００９７】
図１３は第２の実施形態に係るデバッガ装置における初期化フローの一例を示している。ここでは、図９〜図１３を参照しながらデバッガ装置の初期化動作を説明する。
【００９８】
まず、デバッガ３１０を起動すると、第１の工程ＳＴ１１において、デバッグ搭載機能管理部３３１は、第２の半導体チップ２００におけるＦＰＧＡ（ハードウェア）情報を、例えば第２の半導体チップ２００から該第２の半導体チップが有するＩＤ情報として取得し、ＦＰＧＡ情報管理部３３６に保存する。ここで、ＦＰＧＡ情報は、デバッガ装置自体が判定しても良い。
【００９９】
次に、第２の工程ＳＴ１２において、デバッガ表示部３２０は、あらかじめ登録されているデバッグ回路の一覧をディスプレイ３０１に表示して、プログラム開発者にデバッグ回路の選択を促す。プログラム開発者は、ＦＰＧＡ４１０に組み込みたいデバッグ回路を選択する。選択されたデバッグ回路はデバッグ機能入力部３２１に入力される。
【０１００】
次に、第３の工程ＳＴ１３において、選択されたデバッグ回路がＦＰＧＡ４１０に構築できるか否かを、既に取得したＦＰＧＡ情報に基づいて、デバッグ機能構築判定部３３４で判定し、その判定結果をデバッガ表示部３２０を経由して表示し、プログラム開発者に通知する。このとき、選択されたデバッグ回路がＦＰＧＡ４１０に構築できないと判定された場合には、プログラム開発者に他のデバッグ回路の選択を促す。
【０１０１】
次に、選択されたデバッグ回路がＦＰＧＡ４１０に構築できると判定された場合には、第４の工程ＳＴ１４において、デバッグ機能構築部３３５が、ＦＰＧＡ４１０に選択されたデバッグ回路を構築するために必要な回路データを合成して作成する。
【０１０２】
次に、第５の工程ＳＴ１５において、作成した回路データをデバッガ命令通知信号線１６３を通して、半導体集積回路装置のデバッグ基本回路部１６０に送信する。デバッグ基本回路部１６０が受信した回路データは、ＦＰＧＡ回路構築部１７７に送られ、ＦＰＧＡ回路設定信号線１６８を通してＦＰＧＡ４１０に送信され、ＦＰＧＡ４１０には選択されたデバッグ回路が構築される。
【０１０３】
次に、第６の工程ＳＴ１６において、構築したデバッグ回路及びデバッガ３１０の初期化をそれぞれ行なう。初期化が完了すると、プログラム開発者はデバッガ３１０を操作して、ＣＰＵ１１０上で実行されるプログラムのデバッグを開始することができる。
【０１０４】
図１４は第４の工程ＳＴ１４において合成される回路データに基づいて構築される回路の一例を示している。図１４において、図４に示す構成要素と同一の構成要素には同一の符号を付すことにより説明を省略する。
【０１０５】
図１４に示すように、第２の実施形態に係るＦＰＧＡ４１０のデバッグ機能回路２２０は、例えば図１１（ａ）〜図１１（ｅ）のデバッグ回路の一覧から各デバッグ回路のうち、いずれもが最小の回路規模を持つウオッチポイント回路ｃ、トレース回路ｃ、タイマ回路ｃ、トリガ回路ｃ、及びキャッシュ情報回路ｃが選択されることにより構築されている。
【０１０６】
なお、ＦＰＧＡ４１０には、第１の半導体チップ１００におけるデバッグ基本回路部１６０のＦＰＧＡ回路構築部１７７からの回路データを受ける回路構築部２３８が設けられている。
【０１０７】
このように、第２の実施形態によると、デバッグ対象である半導体集積回路装置を構成する第１の半導体チップ１００と、その上に保持され、組み込みデバッグ回路の実質的なデバッグ機能を含むＦＰＧＡ４１０からなる第２の半導体チップ２００とから構成しておき、このＦＰＧＡ４１０に、デバッガ３１０から回路データをダウンロードすることにより、ＦＰＧＡ４１０にデバッグ機能回路２２０を形成することができる。このため、第１の実施形態と同等のデバッグ環境を構築できる上に、プログラムの開発工程に合わせて最適なデバッグ環境を選択して実現することができる。
【０１０８】
なお、第１の実施形態に係るデバッグ拡張回路部２１０上に形成されているデバッグ搭載回路識別部２３５は、第２の実施形態においては、デバッガ３１０でＦＰＧＡ４１０の回路データを合成する際に、構築可能なデバッグ回路を認識できるため省略することができる。
【０１０９】
また、第２の実施形態においては、プログラム開発者が選択したデバッグ回路を、選択された後に合成して作成する構成を採っているが、これに代えて、あらかじめ合成した回路データをデバッガ３１０に用意しておき、プログラム開発者が選択したデバッグ回路と一致する場合には、一致した回路データをＦＰＧＡ４１０にダウンロードするようにしてもよい。このようにすると、回路データを作成する必要がなくなるため、デバッガ３１０の初期化動作が短縮されるので、デバッガ３１０の起動が早くなる。
【０１１０】
以下、デバッグの途中であっても、ＦＰＧＡ回路に構築したデバッグ回路をそのデバッグ機能を代えて再構築する方法を説明する。
【０１１１】
すなわち、第２の実施形態に係るデバッガ装置、及び半導体集積回路装置におけるデバッグ機能回路２２０はＦＰＧＡ４１０にデバッグ機能回路２２０が構築された後であっても、該デバッグ機能回路２２０のデバッグ機能を変更することができる。
【０１１２】
図１５はデバッガ３１０によるプログラムの動作検証中にデバッグ回路を変更する場合の動作フローの一例を示している。
【０１１３】
図９〜図１２及び図１５を用いて、ＦＰＧＡ４１０のデバッグ機能回路２２０の回路構成を変更する場合の処理を説明する。
【０１１４】
まず、図１５に示すように、第１の工程２１において、プログラム開発者は、デバッガ３１０に対して、ＦＰＧＡ４１０に構築されているデバッグ機能回路２２０のデバッグ機能変更要求を入力する。続いて、デバッグ機能変更要求を入力されたデバッガ３１０は、ＦＰＧＡ４１０における設定情報設定部２３２に設定されている各デバッグ回路２２１〜２２５の設定情報を、デバッガ本体部３３０のデバッグ設定情報管理部３３３にアップロードして保存する。
【０１１５】
次に、第２の工程２２において、設定情報の保存が完了すると、デバッグ設定情報管理部３３３は、ＦＰＧＡ４１０上に設定されているデバッグ回路２２１〜２２５の設定情報を解除（消去）する。
【０１１６】
次に、第３の工程２３において、デバッガ表示部３２０は、登録されているデバッグ回路の一覧をディスプレイ３０１に表示して、プログラム開発者にデバッグ回路の選択を促す。プログラム開発者は、ＦＰＧＡ４１０に新たに組み込みたいデバッグ回路を選択する。選択されたデバッグ回路はデバッグ機能入力部３２１に入力される。
【０１１７】
次に、第４の工程２４において、選択されたデバッグ回路がＦＰＧＡ４１０に構築できないと判定された場合には、プログラム開発者に他のデバッグ回路の選択を促すように警告を発する。
【０１１８】
次に、選択されたデバッグ回路がＦＰＧＡ４１０に構築できると判定された場合には、第５の工程ＳＴ２５において、デバッグ機能構築部３３５が、ＦＰＧＡ４１０に選択されたデバッグ回路を構築するために必要な回路データを合成して作成する。
【０１１９】
次に、第６の工程ＳＴ２６において、作成した回路データをデバッガ命令通知信号線１６３を通して、半導体集積回路装置のデバッグ基本回路部１６０に送信する。デバッグ基本回路部１６０が受信した回路データは、ＦＰＧＡ回路構築部１７７に送られ、ＦＰＧＡ回路設定信号線１６８を通してＦＰＧＡ４１０の回路構築部２３８に送信され、ＦＰＧＡ４１０には選択されたデバッグ回路が構築される。
【０１２０】
次に、第７の工程ＳＴ２７において、構築したデバッグ回路及びデバッガ３１０の初期化をそれぞれ行なう。
【０１２１】
次に、第８の工程ＳＴ２８において、初期化が完了した後に、デバッガ本体部３３０のデバッグ設定情報管理部３３３に保存していたデバッグ回路の設定情報のうち、再設定が有効な設定情報をダウンロードして、ＦＰＧＡ４１０のデバッグ回路に再設定する。
【０１２２】
次に、第９の工程ＳＴ２９において、プログラム開発者は、ＣＰＵ１１０で実行されるプログラムのデバッグを、選択し直されたデバッグ機能回路２２０を用いて再開することができる。
【０１２３】
以上説明したように、デバッグ途中であっても、デバッグ状態に応じて最適なデバッグ回路を更新することができるため、効率良くデバッグを行なうことができる。
【０１２４】
なお、第２の実施形態においては、デバッグ回路の更新前のデバッグ設定情報を更新後のデバッグ回路に再設定する構成としているが、必ずしも再設定を行なう必要はない。
【０１２５】
（第３の実施形態）
以下、本発明の第３の実施形態について図面を参照しながら説明する。
【０１２６】
図１６（ａ）は本発明の第３の実施形態に係る半導体集積回路装置における各ＣＰＵ及び各デバッグ基本回路部、第２の半導体チップ並びに第３の半導体チップを含む部分の平面構成を示し、図１６（ｂ）はその断面構成を示している。図１６（ａ）及び（ｂ）において、図９（ａ）及び（ｂ）に示す構成要素と同一の構成要素には同一の符号を付すことにより説明を省略する。
【０１２７】
第２の実施形態との相違点は、半導体集積回路装置を構成する第１の半導体チップ１００に、第１のＣＰＵ１１０Ａと第２のＣＰＵ１１０Ｂとが形成されており、さらに、第１のＦＰＧＡ４１０Ａからなる第２の半導体チップ２００Ａと、第２のＦＰＧＡ４１０Ｂからなる第３の半導体チップ２００Ｂとが、第１のＣＰＵ１１０Ａと第２のＣＰＵ１１０Ｂとの上にそれぞれ貼り合わされている点である。
【０１２８】
第１のＣＰＵ１１０Ａは、第１の半導体チップ１００に形成された第１のデバッグ基本回路部１６０Ａ及び第１のＦＰＧＡ４１０Ａに対して第２の実施形態と同様の信号線により接続されている。また、第２のＣＰＵ１１０Ｂは、第１の半導体チップ１００に形成された第２のデバッグ基本回路部１６０Ｂ及び第２のＦＰＧＡ４１０Ｂに対して第２の実施形態と同様の信号線により接続されている。
【０１２９】
第３の実施形態においては、第１の半導体チップ１００に、例えばセレクタからなる通信切替部４２０が、第１のデバッグ基本回路部１６０Ａ及び第２のデバッグ基本回路部１６０Ｂとデバッガ命令通知信号線１６３との間に設けられている。ここで、第１のデバッグ基本回路部１６０Ａと通信切替部４２０とは第１の命令通知信号線４２１により接続され、第２のデバッグ基本回路部１６０Ｂと通信切替部４２０とは第２の命令通知信号線４２２により接続されている。
【０１３０】
また、第１の半導体チップ１００には、デバッグ優先度決定部４３０が設けられており、通信切替部４２０はデバッグ優先度決定部４３０に保持された識別情報に基づいて、第１のデバッグ基本回路部１６０Ａ及び第２のデバッグ基本回路部１６０Ｂのうちの登録されているＣＰＵをデバッガ命令通知信号線１６３と接続する。
【０１３１】
以下、本発明の第３の実施形態に係る半導体集積回路装置におけるプログラムの動作を検証するデバッガ装置について説明する。
【０１３２】
図１７は本発明の第３の実施形態に係るデバッガ装置のブロック構成を示している。図１７において、図１２に示す構成要素と同一の構成要素には同一の符号を付すことにより説明を省略する。
【０１３３】
図１７に示すように、第３の実施形態に係るデバッガ装置は、デバッグ設定情報管理部３３３に、第１の設定情報管理部３３３ａと第２の設定情報管理部３３３ｂとを設けており、第１のＣＰＵ１１０Ａ及び第２のＣＰＵ１１０Ｂのそれぞれに対応してデバッグ設定情報を保持することができる。
【０１３４】
さらに、デバッグ機能構築部３３５にも、第１のデバッグ機能情報管理部３３５ａ及び第２のデバッグ機能情報管理部３３５ｂが２つのＣＰＵと対応して設けられており、ＦＰＧＡ情報管理部３３６にも、第１のＦＰＧＡ管理部３３６ａ及び第２のＦＰＧＡ管理部３３６ｂが２つのＣＰＵと対応して設けられている。
【０１３５】
第３の実施形態においては、ホストコンピュータ３００上でデバッガ３１０が起動されると、第１の半導体チップ１００に設けられたデバッグ優先度決定部４３０において決定されるデバッグ対象のＣＰＵと接続される。
【０１３６】
ここでは一例として、第１のＣＰＵ１１０Ａを表わす識別子がデバッグ優先度決定部４３０に登録されているとする。
【０１３７】
第２の実施形態で説明したように、デバッガ３１０を起動した後、プログラム開発者がデバッグ機能を選択し、初期化されてデバッグ操作を行なうことができるようになる。このとき、選択されたデバッグ回路は、デバッグ機能構築部３３５における第１のデバッグ機能情報管理部３３５ａに保持される。また、第１のＦＰＧＡ４１０Ａのハードウェア情報は、ＦＰＧＡ情報管理部３３６における第１のＦＰＧＡ情報管理部３３６ａに取得されて保持される。
【０１３８】
ここで、第１のＣＰＵ１１０Ａに代えて第２のＣＰＵ１１０Ｂをデバッグする場合には、デバッグ優先度決定部４３０に登録されているデータを第２のＣＰＵ１１０Ｂを表わす識別子に変更することにより、第２のＣＰＵ１１０Ｂで実行されるプログラムのデバッグを行なうことができるようになる。このとき、第１のＣＰＵ１１０Ａにおいて実行中のプログラムをデバッグするために設定されたデバッグ設定情報は、第１の設定情報管理部３３３ａにアップロードして保存される。なお、このときのデバッグ設定情報はその一部又は全部を解除してもよい。
【０１３９】
第２のＣＰＵ１１０Ｂが実行するプログラムをデバッグするために選択されたデバッグ回路は、第２のデバッグ機能情報管理部３３５ｂに保持される。また、第２のＦＰＧＡ情報管理部３３６ｂには、第２のＦＰＧＡ４１０Ｂのハードウェア情報がアップロードされて保持される。
【０１４０】
再度、第２のＣＰＵ１１０Ｂに代えて第１のＣＰＵ１１０Ａをデバッグ対象とするような場合には、第１のデバッグ機能情報管理部３３５ａと第１のＦＰＧＡ情報管理部３３６ａの情報に従って、デバッガ３１０を再構築する。また、第１の設定情報管理部３３３ａに保持されていたデバッグ設定情報がダウンロードされて復元され、プログラム開発者は、第１のＣＰＵ１１０Ａ上で実行されるプログラムのデバッグを行なえるようになる。
【０１４１】
このように、第３の実施形態によると、第１の半導体チップ１００に２つのＣＰＵ１１０Ａ、１１０Ｂが設けられている場合であっても、各ＣＰＵに最適なデバッグ環境を構築することができる。
【０１４２】
また、第１のＣＰＵ１１０Ａをデバッグする際の通信線と第２のＣＰＵ１１０Ｂをデバッグする際の通信線とを１本のデバッガ命令通知信号線１６３で兼用することにより、半導体集積回路装置、例えばシステムＬＳＩの端子数を減らすことができるため、該システムＬＳＩの製造コストを削減することができる。
【０１４３】
さらに、起動しているデバッガ３１０は、複数のＣＰＵのうちの１つをデバッグする構成であるため、デバッグ対象のＣＰＵを変更しても、デバッグ操作が変わることがない。
【０１４４】
なお、第３の実施形態においては、第１の半導体チップ１００に２つのＣＰＵが搭載された例を説明したが、これに限られず、３つ以上のＣＰＵが搭載された半導体集積回路装置であっても、デバッガ３１０に各ＣＰＵごとのデータを保持できる領域を確保すれば、第３の実施形態と同様に、各ＣＰＵ上のプログラムをデバッグすることができる。
【０１４５】
また、第３の実施形態においては、第１のデバッグ機能情報管理部３３５ａと第２のデバッグ機能情報管理部３３５ｂとは、デバッグ機能構築部３３５の一機能としているが、これらデバッグ機能情報管理部３３５ａ、３３５ｂは、デバッグ本体部３３０の一機能とする構成としてもよい。
【０１４６】
また、第３の実施形態においては、デバッグ設定情報管理部３３３における第１の設定情報管理部３３３ａ及び第２の設定情報管理部３３３ｂにアップロードにより取得したデバッグ設定情報を、デバッグ機能回路２２０に再設定する構成としているが、設定されていたデバッグ設定情報は必ずしも再設定する必要はない。
【０１４７】
また、第３の実施形態においては、第２の半導体チップ２００Ａ及び第３の半導体チップ２００Ｂに組み込むデバッグ機能回路２２０を書き換え可能なハードウェア回路であるＦＰＧＡに構築したが、第１の実施形態と同様に、それぞれ不揮発性のメモリに構築しても良い。
【０１４８】
【発明の効果】
本発明に係る半導体集積回路装置によると、第１の半導体チップの上に保持された第２の半導体チップに形成されたデバッグ回路に複数のデバッグ機能を持たせることができるため、第２の半導体チップにデバッグに必要なすべてのデバッグ機能を組み込んだとしても、第１の半導体チップの回路規模が大きくなることがない。従って、同一のマイクロコンピュータ又はマイクロプロセッサに組み込まれるデバッグ回路であっても、複数のデバッグ機能をより有効に利用できるようになり、且つプログラムの開発工程と対応したデバッグ環境を構築できるようになる。
【０１４９】
本発明に係るデバッガ装置によると、本発明の半導体集積回路装置に組み込まれたデバッグ機能が従来のように固定されておらず、半導体チップごとに異なる場合であっても、第２の半導体チップのデバッグ回路部に組み込まれたデバッグ機能により確実にデバッグ操作を実行することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係る半導体集積回路装置を示すブロック図である。
【図２】（ａ）は本発明の第１の実施形態に係る半導体集積回路装置の第１の半導体チップにおけるＣＰＵ及びデバッグ基本回路部と第２の半導体チップとを含む部分の模式的な拡大平面図であり、（ｂ）は（ａ）の模式的な断面図である。
【図３】本発明の第１の実施形態に係る半導体集積回路装置におけるデバッグ基本回路部の一例を示すブロック回路図である。
【図４】本発明の第１の実施形態に係る半導体集積回路装置におけるデバッグ拡張回路部の一例を示すブロック回路図である。
【図５】（ａ）〜（ｅ）は第１の実施形態に係る半導体集積回路装置に選択可能な機能ごとのデバッグ回路の一例を示している。
【図６】図５（ａ）〜（ｅ）に基づいて作成した、デバッグ機能回路に組み込み可能なデバッグ回路の組み合わせの一覧である。
【図７】本発明の第１の実施形態に係るデバッガ装置を示すブロック図である。
【図８】本発明の第１の実施形態に係るデバッガ装置における初期化動作を示すフローチャート図である。
【図９】（ａ）は本発明の第２の実施形態に係る半導体集積回路装置の第１の半導体チップにおけるＣＰＵ及びデバッグ基本回路部と第２の半導体チップとを含む部分の模式的な拡大平面図であり、（ｂ）は（ａ）の模式的な断面図である。
【図１０】本発明の第２の実施形態に係る半導体集積回路装置におけるデバッグ基本回路部の一例を示すブロック回路図である。
【図１１】（ａ）〜（ｅ）は第２の実施形態に係る半導体集積回路装置に選択可能な機能ごとのデバッグ回路の一例を示している。
【図１２】本発明の第２の実施形態に係るデバッガ装置を示すブロック図である。
【図１３】本発明の第２の実施形態に係るデバッガ装置における初期化動作を示すフローチャート図である。
【図１４】本発明の第２の実施形態に係る半導体集積回路装置におけるＦＰＧＡ回路の一例を示すブロック回路図である。
【図１５】本発明の第２の実施形態に係るデバッガ装置によるプログラムの動作検証中にデバッグ回路を変更する場合のフローチャート図である。
【図１６】（ａ）は本発明の第３の実施形態に係る半導体集積回路装置の第１の半導体チップにおける各ＣＰＵ及び各デバッグ基本回路部、第２の半導体チップ並びに第３の半導体チップを含む部分の模式的な拡大平面図であり、（ｂ）は（ａ）の模式的な断面図である。
【図１７】本発明の第３の実施形態に係るデバッガ装置を示すブロック図である。
【符号の説明】
１００　　第１の半導体チップ
１０５　　バス
１１０　　ＣＰＵ（ＣＰＵコア）
１１０Ａ　第１のＣＰＵ
１１０Ｂ　第２のＣＰＵ
１２０　　ＲＯＭ部
１３０　　ＲＡＭ部
１４０　　第１周辺回路部
１５０　　第２周辺回路部
１６０　　デバッグ基本回路部（第１のデバッグ回路部）
１６０Ａ　第１のデバッグ基本回路部
１６０Ｂ　第２のデバッグ基本回路部
１６１　　ＣＰＵ命令通知信号線
１６２　　ＣＰＵ実行結果受信信号線
１６３　　デバッガ命令通知信号線
１６４　　デバッグ拡張回路部設定情報通知信号線
１６５　　デバッグ拡張回路部結果受信信号線
１６６　　アドレス情報信号線
１６７　　オペランド情報信号線
１６８　　ＦＰＧＡ回路設定信号線
１７１　　通信部
１７２　　デバッグ命令解析部（命令解析部）
１７３　　ＣＰＵ実行命令送信部（第１送受信部）
１７４　　ＣＰＵ実行結果受信部（第１送受信部）
１７５　　デバッグ拡張回路部設定情報送信部（第２送受信部）
１７６　　デバッグ拡張回路部結果受信部（第２送受信部）
１７７　　ＦＰＧＡ回路構築部
２００　　第２の半導体チップ
２００Ａ　第２の半導体チップ
２２０Ｂ　第３の半導体チップ
２１０　　デバッグ拡張回路部（第２のデバッグ回路部）
２２０　　デバッグ機能回路部
２２１　　ウオッチポイント回路
２２２　　トレース回路
２２３　　タイマ回路
２２４　　トリガ回路
２２５　　キャッシュ情報回路
２２１　　ウオッチポイント回路ｃ
２２２　　トレース回路ｃ
２２３　　タイマ回路ｃ
２２４　　トリガ回路ｃ
２２５　　キャッシュ情報回路ｃ
２２６　　設定情報通知信号線
２２７　　結果通知信号線
２３１　　設定情報受信部
２３２　　設定情報設定部
２３３　　状態管理部
２３４　　結果送信部
２３５　　デバッグ搭載回路識別部
２３６　　アドレス情報受信部
２３７　　オペランド情報受信部
２３８　　回路構築部
３００　　ホストコンピュータ
３０１　　ディスプレイ
３０２　　キーボード
３１０　　デバッガ
３２０　　デバッガ表示部
３３０　　デバッガ本体部
３３１　　デバッグ搭載機能管理部
３３２　　デバッガ本体再構築部
３３３　　デバッグ設定情報管理部
３３３ａ　第１の設定情報管理部
３３３ｂ　第２の設定情報管理部
３３４　　デバッグ機能構築判定部
３３５　　デバッグ機能構築部
３３５ａ　第１のデバッグ機能情報管理部
３３５ｂ　第２のデバッグ機能情報管理部
３３６　　ＦＰＧＡ情報管理部（ハードウェア情報管理部）
３３６ａ　第１のＦＰＧＡ情報管理部
３３６ｂ　第２のＦＰＧＡ情報管理部
３４０　　デバッガ通信部
４１０　　ＦＰＧＡ（書き換え可能ハードウェア回路）
４１０Ａ　第１のＦＰＧＡ
４１０Ｂ　第２のＦＰＧＡ
４２０　　通信切替部（命令切替部）
４２１　　第１の命令通知信号線
４２２　　第２の命令通知信号線
４３０　　デバッグ優先度決定部
【図１】
2004054825.tif 000003
【図２】
2004054825.tif 000004
【図３】
2004054825.tif 000005
【図４】
2004054825.tif 000006
【図５】
2004054825.tif 000007
【図６】
2004054825.tif 000008
【図７】
2004054825.tif 000009
【図８】
2004054825.tif 000010
【図９】
2004054825.tif 000011
【図１０】
2004054825.tif 000012
【図１１】
2004054825.tif 000013
【図１２】
2004054825.tif 000014
【図１３】
2004054825.tif 000015
【図１４】
2004054825.tif 000016
【図１５】
2004054825.tif 000017
【図１６】
2004054825.tif 000018
【図１７】
2004054825.tif 000019