JP2004054825A - 半導体集積回路装置及びそのデバッガ装置 - Google Patents

半導体集積回路装置及びそのデバッガ装置 Download PDF

Info

Publication number
JP2004054825A
JP2004054825A JP2002214963A JP2002214963A JP2004054825A JP 2004054825 A JP2004054825 A JP 2004054825A JP 2002214963 A JP2002214963 A JP 2002214963A JP 2002214963 A JP2002214963 A JP 2002214963A JP 2004054825 A JP2004054825 A JP 2004054825A
Authority
JP
Japan
Prior art keywords
debug
circuit
unit
instruction
semiconductor chip
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2002214963A
Other languages
English (en)
Inventor
Motohide Nishihata
西畑 素秀
Tsutomu Mikami
三上 勉
Atsushi Ubukata
生形 篤
Koichiro Miyawaki
宮脇 光一郎
Takio Yamashita
山下 太紀夫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2002214963A priority Critical patent/JP2004054825A/ja
Priority to US10/621,654 priority patent/US6903453B2/en
Publication of JP2004054825A publication Critical patent/JP2004054825A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/25Testing of logic operation, e.g. by logic analysers

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Microcomputers (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

【課題】所定のマイコンチップに組み込まれる組み込みデバッグ回路であっても、複数のデバッグ機能を有効に利用できると共にプログラムの開発工程と対応したデバッグ環境を構築できるようにする。
【解決手段】半導体集積回路装置は、CPU110及び該CPU110で実行されるプログラムの動作を検証するデバッグ基本回路部160を有する第1の半導体チップ100と、第1の半導体チップ100の主面上に保持され、CPU110及びデバッグ基本回路部160と電気的に接続されたデバッグ拡張回路部210を有する第2の半導体チップ200とを備えている。デバッグ基本回路部160は外部から入力される命令を解析するデバッグ命令解析部172を有している。第2の半導体チップ200に形成されたデバッグ拡張回路部210は、少なくとも1つのデバッグ回路を含むデバッグ機能回路部220を有している。
【選択図】    図2

Description

【0001】
【発明の属する技術分野】
本発明は、マイクロコンピュータ又はマイクロプロセッサ等を含み、CPUで実行されるプログラムの動作を検証するデバッグ回路を内蔵した半導体集積回路装置、及びそのプログラムのデバッグを行なうデバッガ装置に関する。
【0002】
【従来の技術】
従来、家庭用電化製品等に組み込まれるマイクロコンピュータを始めとするプロセッサにより実行されるソフトウェアプログラム(以下、単にプログラムと呼ぶ。)の開発及び動作検証を行なうには、インサーキットエミュレータ(ICE)、命令レベルソフトウェアシミュレータ又はモニタ等を用いて行なわれている。ICEは、マイクロコンピュータ又はマイクロプロセッサに特有のデバッグツールである。また、命令レベルソフトウェアシミュレータは、開発ターゲットであるマイクロコンピュータ又はマイクロプロセッサ上のプログラムを、例えばホストコンピュータ上で実行(シミュレーション)することにより、該ホストコンピュータにマイクロコンピュータ又はマイクロプロセッサと同一の実行状態を模擬的に作りだす手法である。また、モニタは、マイクロコンピュータ又はマイクロプロセッサが完成した後、マイクロコンピュータ又はマイクロプロセッサ上で実行しているプログラムの監視(モニタリング)を行なうために、あらかじめプログラムの内部に実行制御又は監視を行なうモニタリングプログラムを組み込んでおき、ホストコンピュータからモニタリングプログラムを操作することにより、マイクロコンピュータ又はマイクロプロセッサ上のプログラムのデバッグを行なう手法である。
【0003】
ところで、従来のICEは、開発用の評価ボードを用意し、この評価ボードに搭載するプロセッサに代えて、専用のハードウェアを取り付けることによりターゲットプログラムの開発及びデバッグを行なっている。しかしながら、最近では、家庭用電化製品の小型化や、最終製品と同じ形態のプログラム動作環境でデバッグすることが多くなり、ICEのような専用のハードウェアを取り付けることが困難となってきている。また、ICEはデバッグ専用のツールであるため、最終製品と動作条件が異なる場合があり、ICEで動作時には発生しないプログラムの動作障害が、最終製品では発生するということも多くなってきている。
【0004】
これらの問題を解決するため、最近では、実製品と同一の動作環境でプログラムの開発及び動作の検証を行なえるように、プロセッサ上にあらかじめ所定のデバッグ回路を組み込んでおき、組み込まれたデバッグ回路を用いてデバッグを行なうオンチップデバッグ環境が開発されている。
【0005】
従って、オンチップデバッグ環境は、あらかじめ組込まれたデバッグ回路を用いることにより、開発時に限らず、製品の完成後にプログラムの動作障害が発生した場合でも、実際の製品上でプログラムの動作解析を行なうことができる。
【0006】
【発明が解決しようとする課題】
しかしながら、前記従来のオンチップデバッグ環境において、デバッグ機能はその種類が多く、ターゲットとするプロセッサが決まると、該プロセッサに組み込まれるデバッグ機能は限られてしまう。従って、プログラム開発者が望むデバッグ機能が組み込まれていない場合には、他の代替手段でデバッグを行なわなければならないという問題がある。
【0007】
また、プログラム開発における初期段階と最終段階とでは、一般に必要なデバッグ機能が異なるため、デバッグ機能が限定されていると、プログラム開発者の要望に十分に対応できないという問題もある。
【0008】
そこで、すべてのデバッグ機能をプロセッサに組み込むと、組み込まれたデバッグ回路の回路規模が大きくなり、その結果、プロセッサを含む半導体チップの小型化の妨げとなる。
【0009】
本発明は、前記従来の問題を解決し、所定のマイクロコンピュータチップ又はマイクロプロセッサチップに組み込まれる組み込みデバッグ回路であっても、複数のデバッグ機能を有効に利用できると共に、プログラムの開発工程と対応したデバッグ環境を構築できるようにすることを目的とする。
【0010】
【課題を解決するための手段】
前記の目的を達成するため、本発明は、半導体集積回路装置を、CPUコア及び第1のデバッグ回路を含む第1の半導体チップと、該第1の半導体チップの上に保持され、少なくとも1つのデバッグ機能を含む第2のデバッグ回路を有する第2の半導体チップとにより構成する。
【0011】
具体的に、本発明に係る第1の半導体集積回路装置は、メモリ部、入出力部、CPUコア及び該CPUコアで実行されるプログラムの動作を検証する第1のデバッグ回路部を有する第1の半導体チップと、第1の半導体チップの主面上に保持され、CPUコア及び第1のデバッグ回路部と電気的に接続された第2のデバッグ回路部を有する第2の半導体チップとを備え、第1のデバッグ回路部は、外部から入力されるデバッグ命令を解析する命令解析部と、解析した命令がCPUコアで実行する命令である場合はCPUコアに送信し、その実行結果をCPUコアから受信する第1送受信部と、第2のデバッグ回路部で実行する命令である場合は第2のデバッグ回路部に送信し、その実行結果を第2のデバッグ回路部から受信する第2送受信部とを有し、第2のデバッグ回路部はデバッグ機能回路を含む。
【0012】
第1の半導体集積回路装置によると、メモリ部、入出力部、CPUコア及び該CPUコアで実行されるプログラムの動作を検証する第1のデバッグ回路部を有する第1の半導体チップと、第1の半導体チップの主面上に保持され、CPUコア及び第1のデバッグ回路部と電気的に接続された第2のデバッグ回路部を有する第2の半導体チップとを備えている。このため、第1の半導体チップの上に保持された第1の半導体チップとは別体の第2の半導体チップの第2のデバッグ回路に複数のデバッグ機能を持たせることができるようになる。その結果、第2の半導体チップにデバッグに必要なすべてのデバッグ機能を組み込んだとしても、第1の半導体チップの回路規模が大きくなることがない。従って、同一のマイクロコンピュータ又はマイクロプロセッサに組み込まれるデバッグ回路であっても、複数のデバッグ機能をより有効に利用できるようになり、且つプログラムの開発工程と対応したデバッグ環境を構築できるようになる。
【0013】
本発明に係る第2の半導体集積回路装置は、メモリ部、入出力部、第1のCPUコア、該第1のCPUコアで実行されるプログラムの動作を検証する第1のデバッグ回路部、第2のCPUコア、該第2のCPUコアで実行されるプログラムの動作を検証する第2のデバッグ回路部を有する第1の半導体チップと、第1の半導体チップの主面上に保持され、第1のCPUコア及び第1のデバッグ回路部と電気的に接続された第3のデバッグ回路部を有する第2の半導体チップと、第1の半導体チップの主面上に保持され、第2のCPUコア及び第2のデバッグ回路部と電気的に接続された第4のデバッグ回路部を有する第3の半導体チップと、外部から入力されるデバッグ命令を、第1のデバッグ回路部又は第2のデバッグ回路部に切り換える命令切替部とを備え、第1のデバッグ回路部は、命令切替部を通して入力されるデバッグ命令を解析する命令解析部と、解析した命令が第1のCPUコアで実行する命令である場合は第1のCPUコアに送信し、その実行結果を第1のCPUコアから受信する第1送受信部と、第3のデバッグ回路部で実行する命令である場合は第3のデバッグ回路部に送信し、その実行結果を第3のデバッグ回路部から受信する第2送受信部とを有し、第2のデバッグ回路部は、命令切替部を通して入力されるデバッグ命令を解析する命令解析部と、解析した命令が第2のCPUコアで実行する命令である場合は第2のCPUコアに送信し、その実行結果を第2のCPUコアから受信する第3送受信部と、第4のデバッグ回路部で実行する命令である場合は第4のデバッグ回路部に送信し、その実行結果を第4のデバッグ回路部から受信する第4送受信部とを有し、第3のデバッグ回路部及び第4のデバッグ回路部は、それぞれデバッグ機能回路を含む。
【0014】
第2の半導体集積回路装置によると、第1の半導体集積回路装置と同様の効果を得られる上に、第1の半導体チップに複数のCPUコアが設けられている場合であっても、第1の半導体チップの上にCPUコアごとに保持される第2の半導体チップ及び第3の半導体チップを備えているため、CPUコアごとにプログラムのデバッグ機能を選択して組み込むことができる。
【0015】
第1又は第2の半導体集積回路装置において、デバッグ機能回路が、ウオッチポイント回路、トレース回路、タイマ回路、トリガ回路及びキャッシュ情報回路のうちの少なくとも1つを含み、且つ同一の機能回路同士でその規模及び構成が互いに異なる複数の回路から選択されて構成されていることが好ましい。
【0016】
また、第1又は第2の半導体集積回路装置において、デバッグ機能回路が、書き換え可能なハードウェア回路であることが好ましい。
【0017】
このようにすると、第2の半導体チップの第2のデバッグ回路に組み込まれたデバッグ機能をプログラムの開発状況に合わせて選択的に構築できるため、プログラムのデバッグをさらに効率良く行なうことができる。
【0018】
本発明に係るデバッガ装置は、メモリ部、入出力部、CPUコア及び該CPUコアで実行されるプログラムの動作を検証する第1のデバッグ回路部を有する第1の半導体チップと、第1の半導体チップの主面上に保持され、CPUコア及び第1のデバッグ回路部と電気的に接続された第2のデバッグ回路部を有する第2の半導体チップとを有する半導体集積回路装置における第1のデバッグ回路部及び第2のデバッグ回路部に命令を発行するデバッガ装置を対象とし、第2のデバッグ回路部が有するデバッグ機能を特定するデバッグ搭載機能管理部と、特定されたデバッグ機能に基づいてデバッガ装置を初期化するデバッガ本体再構築部とを備えている。
【0019】
本発明のデバッガ装置は、本発明の半導体集積回路装置をデバッグ対象とするプログラムのデバッガ装置であって、第2の半導体チップの第2のデバッグ回路部が有するデバッグ機能を特定するデバッグ搭載機能管理部と、特定されたデバッグ機能に基づいてデバッガ装置を初期化するデバッガ本体再構築部とを備えている。このため、第2のデバッグ回路部に組み込まれたデバッグ機能が従来のように固定されておらず半導体チップごとに異なる場合であっても、本発明のデバッガ装置は、第2の半導体チップの第2のデバッグ回路部に組み込まれたデバッグ機能により確実にデバッグ操作を実行することができる。
【0020】
本発明のデバッガ装置は、半導体集積回路装置の第2の半導体チップが、書き換え可能なハードウェア回路を有しており、ハードウェア回路の情報を管理するハードウェア情報管理部と、ハードウェア回路に含まれる1つ以上のデバッグ機能を搭載可能か否かを判定するデバッグ機能構築判定部と、デバッグ機能構築判定部において搭載可能と判定されたデバッグ機能をハードウェア回路に構築するデバッグ機能構築部とをさらに備えていることが好ましい。
【0021】
このようにすると、第2の半導体チップの第2のデバッグ回路に組み込まれたデバッグ機能をプログラムの開発状況に合わせて選択的に構築できるため、プログラムのデバッグをさらに効率良く行なうことができる。
【0022】
この場合に、デバッグ機能構築部が、あらかじめ回路データとして作成された複数のハードウェア回路のうちのいずれか1つを選択することが好ましい。
【0023】
このようにすると、ハードウェア回路を第2のデバッグ回路部に構築する時間が短縮されるため、デバッガ装置の立上げ時間を短縮することができる。
【0024】
さらにこの場合に、本発明のデバッガ装置が、ハードウェア回路に設定されているデバッグ情報を保存するデバッグ設定情報管理部をさらに備え、デバッグ設定情報管理部が、ハードウェア回路に設定されているデバッグ情報を解除した後、保存したデバッグ情報をハードウェア回路に再度設定することが好ましい。
【0025】
このようにすると、プログラムデバッグ中に使用できるデバッグ機能の構成ををデバッガ装置から変更できるため、さらに効率良くプログラムのデバッグを行うことができる。
【0026】
また、このとき、デバッグ機能構築部は、複数のデバッグ機能を保持するデバッグ機能情報管理部を有し、ハードウェア情報管理部は、複数のハードウェア回路情報を保持するハードウェア情報管理部を有していることが好ましい。
【0027】
このようにすると、複数のCPUコアを有する半導体集積回路装置であっても、各CPUコアごとに適したデバッグ環境を構築することができる。
【0028】
【発明の実施の形態】
(第1の実施形態)
本発明の第1の実施形態について図面を参照しながら説明する。
【0029】
図1は本発明の第1の実施形態に係る半導体集積回路装置のブロック構成を示している。
【0030】
図1に示すように、マイクロコンピュータチップである第1の半導体チップ100には、例えば、CPU110、該CPU110で実行されるプログラムを格納する読み出し専用メモリであるROM部120、書き換え可能なメモリであるRAM部130、並びに入出力回路等を含む第1周辺回路部140及び第2周辺回路部150がそれぞれ共通信号線であるバス105と接続されて配置されている。
【0031】
また、CPU110で実行されるプログラムの動作を検証するデバッグ基本回路部160が、CPU110、及びデバッグ用のソフトウェアであるデバッガを搭載したホストコンピュータ(図示せず)とそれぞれ信号線により接続されて配置されている。但し、第1の半導体チップ100の構成は一例であって、これに限られない。
【0032】
第1の実施形態の特徴として、第1の半導体チップ100の主面上には、1つ以上のデバッグ機能を有するデバッグ拡張回路部210が形成された第2の半導体チップ200が、CPU110及びデバッグ基本回路部160を覆うように、例えばチップオンチップ方式により保持されている。
【0033】
図2(a)に第1の半導体チップ100におけるCPU110及びデバッグ基本回路部160と第2の半導体チップ200とを含む部分を拡大して示す。また、図2(b)に図2(a)の断面構成を示す。
【0034】
図2(a)及び図2(b)に示すように、第1の半導体チップ100において、CPU110とデバッグ基本回路部160とは、該デバッグ基本回路部160からの命令をCPU110に通知するCPU命令通知信号線161と、CPU110からのプログラムの実行情報及び命令の実行結果を受けるCPU実行結果受信信号線162とによって接続されている。
【0035】
また、デバッグ基本回路部160は、デバッガ命令通知信号線163によりホストコンピュータ(図示せず)と接続されており、接続されたホストコンピュータから命令を受けると共にその実行結果をホストコンピュータに通知する。
【0036】
デバッグ基本回路部160とデバッグ拡張回路部210とは、デバッグ拡張回路部設定情報通知信号線164及びデバッグ拡張回路部結果受信信号線165によって接続されている。デバッグ基本回路部160は、ホストコンピュータから受信した命令がデバッグ拡張回路部210に対する命令である場合には、受信した命令をデバッグ拡張回路部設定情報通知信号線164を通してデバッグ拡張回路部210に送信し、その実行結果をデバッグ拡張回路部結果受信信号線165を通して受信する。
【0037】
デバッグ拡張回路部210とCPU110とは、アドレス情報信号線166及びオペランド情報信号線167によって接続されている。デバッグ拡張回路部210は、必要な実行アドレス情報をCPU110からアドレス情報信号線166を通して受信する。また、デバッグ拡張回路部210は、命令に含まれるデータ又はアドレス情報からなる実行オペランド情報をCPU110からオペランド情報信号線167を通して受信する。
【0038】
なお、CPU命令通知信号線161、CPU実行結果受信信号線162、デバッグ拡張回路部設定情報通知信号線164、デバッグ拡張回路部結果受信信号線165、アドレス情報信号線166、及びオペランド情報信号線167は、例えば8ビット又は16ビットデータを転送可能なパラレル信号線により構成されている。
【0039】
図3は本発明の第1の実施形態に係るデバッグ基本回路部160の詳細な構成の一例を示している。
【0040】
図3に示すように、デバッグ基本回路部160は、通信部171、デバッグ命令解析部172、CPU実行命令送信部173、CPU実行結果受信部174、デバッグ拡張回路部設定情報送信部175、及びデバッグ拡張回路部結果受信部176により構成されている。
【0041】
通信部171はホストコンピュータとの通信を制御し、デバッグ命令解析部172は通信部171が受信した命令を解析し、解析した命令の内容に応じてCPU実行命令送信部173又はデバッグ拡張回路部設定情報送信部175に命令を送信する。
【0042】
CPU実行命令送信部173は、デバッグ命令解析部172からの命令をCPU命令通知信号線161を通してCPU110に送信する。また、CPU実行結果受信部174は、CPU110における命令の実行結果と、ROM部120、RAM部130及び各種レジスタの内容とをCPU結果受信信号線162を通して受信する。
【0043】
デバッグ拡張回路部設定情報送信部175は、デバッグ命令解析部172からの命令(デバッグ設定情報)をデバッグ拡張回路部設定情報通知信号線164を通してデバッグ拡張回路部210に送信する。また、デバッグ拡張回路部結果受信部176は、デバッグ拡張回路部210に設定された命令の実行結果をデバッグ拡張回路部結果受信信号線165を通して受信する。
【0044】
図4は本発明の第1の実施形態に係るデバッグ拡張回路部210の詳細な構成の一例を示している。
【0045】
図4に示すように、デバッグ拡張回路部210は、互いに異なる機能を持った複数のデバッグ回路を含むデバッグ機能回路部220を有している。ここでは、複数のデバッグ回路のうち、例えば、ウオッチポイント回路221、トレース回路222、タイマ回路223、トリガ回路224、及びキャッシュ情報回路225を含む構成としている。
【0046】
良く知られているように、ウオッチポイント回路221は、命令により設定されたプログラム中の停止位置(ブレークポイント)や、イベント(事象)の発生を監視して通知する。トレース回路222は、CPU110におけるプログラムの実行内容及び実行結果を保存する。タイマ回路223は、CPU110におけるプログラムの実行時間情報を管理する。トリガ回路224は、図示はしていないが外部からのトリガ入力や外部へのトリガ出力を監視する。キャッシュ情報回路225は、CPU110にキャッシュメモリが搭載されている場合に有効であり、CPU110のキャッシュメモリの使用状況及びヒット率を監視する。
【0047】
デバッグ機能回路部220に対する命令及びデバッグに関する設定情報は、デバッグ拡張回路部設定情報通知信号線164を通して設定情報受信部231に通知される。
【0048】
設定情報設定部232は、設定情報受信部231が受信した命令及び設定情報を解析し、解析した設定情報をウオッチポイント回路221、トレース回路222、タイマ回路223、トリガ回路224及びキャッシュ情報回路225にそれぞれ設定情報通知信号線226を通して通知する。
【0049】
状態管理部233は、結果通知信号線227を通してデバッグ機能回路部220の実行状態を監視する。
【0050】
結果送信部234は、デバッグ機能回路部220の実行結果をデバッグ拡張回路部結果受信信号線165を通してデバッグ基本回路部160に通知する。
【0051】
第1の実施形態の特徴として、デバッグ機能回路部220に組み込まれている各デバッグ回路が持つ個々の機能がホストコンピュータから識別できるようにデバッグ搭載回路識別部235を有しており、ここでは、ウオッチポイント回路221、トレース回路222、タイマ回路223、トリガ回路224及びキャッシュ情報回路225を識別できる識別情報を保持している。
【0052】
また、デバッグ拡張回路部210は、アドレス情報受信部236とオペランド情報受信部237とを有している。アドレス情報受信部236は、アドレス情報信号線166から必要なアドレス情報を受け、アドレス情報通知信号線228を通してデバッグ機能回路部220の各デバッグ回路に通知する。オペランド情報受信部237は、オペランド情報信号線167から必要なオペランド情報を受け、オペランド情報通知信号線229を通してデバッグ機能回路部220の各デバッグ回路に通知する。
【0053】
ここで、デバッグ拡張回路部210に組み込まれているウオッチポイント回路221、トレース回路222、タイマ回路223、トリガ回路224及びキャッシュ情報回路229は、それぞれの機能内容に応じて複数用意されたなかから選択されて構成されている。すなわち、プログラムの開発者がターゲットプログラムのデバッグに必要とされる機能を半導体集積回路装置(LSI)の開発時に選択する。
【0054】
また、各回路221〜225は、そのいずれもがアドレス情報受信部236とアドレス情報通知信号線228を介して接続されており、また、そのいずれもがオペランド情報受信部237とオペランド情報通知信号線229を介して接続されているが、各回路221〜225のうち、デバッグの状況によっては、アドレス情報受信部236又はオペランド情報受信部237と接続されない構成であってもよい。
【0055】
図5(a)〜図5(e)は第1の実施形態に係る半導体集積回路装置に選択可能な機能ごとのデバッグ回路の一例を示している。ここでは、各回路A、B、Cの順に回路規模が小さくなることを模式的に表わしている。
【0056】
図5(a)は第2の半導体チップ200のデバッグ拡張回路部210に組み込み可能なウオッチポイント回路221の一例を示している。これらの回路A〜Cは、設定できるウオッチポイントの件数又はウオッチポイントの種類により回路の規模及び構成がそれぞれ異なっている。
【0057】
図5(b)はデバッグ拡張回路部210に組み込み可能なトレース回路222の一例を示し、各回路A〜Cは、設定できるトレースの件数又はトレースの種類により回路の規模及び構成がそれぞれ異なっている。
【0058】
同様に、図5(c)はデバッグ拡張回路部210に組み込み可能なタイマ回路223の一例を示し、各回路A〜Cは、設定できるタイマの件数又はタイマの種類により回路の規模及び構成がそれぞれ異なっている。図5(d)はデバッグ拡張回路部210に組み込み可能なトリガ回路224の一例を示し、各回路A〜Cは、設定できるトリガの件数又はトリガの種類により回路の規模及び構成がそれぞれ異なっている。図5(e)はデバッグ拡張回路部210に組み込み可能なキャッシュ情報回路225の一例を示し、各回路A〜Cは、設定できるキャッシュ情報の種類により回路の規模及び構成がそれぞれ異なっている。
【0059】
図6は図5(a)〜図5(e)に基づいて作成した、デバッグ機能回路220に組み込み可能なデバッグ回路の組み合わせの一覧を示している。前述したように、プログラム開発者は、LSIの開発時にデバッグ機能回路220に組み込みたい組み合わせのなかから、単一機能を持つデバッグ回路を適当に組み合わせて選択する。選択された各デバッグ回路は、デバッグ拡張回路部210のデバッグ搭載回路識別部235に登録される。
【0060】
このように、プログラムの動作検証に用いるデバッグ回路は、その種類が多く且つ単一機能である。本発はこの点に着目してなされたものであり、図5(a)〜図5(e)に示したように、単一で且つ互いに独立した機能を有する複数種類のデバッグ回路で、さらに、これら単一機能のデバッグ回路ごとに互いの回路規模や構成が異なる複数のデバッグ回路を用意しておき、これらのなかから、開発するプログラムのデバッグに最適なデバッグ回路を少なくとも1つ選択することにより、デバッグの効率を向上させることができる。
【0061】
その上、デバッグ機能回路220は、CPU110が搭載された第1の半導体チップ100の上に保持された別体の第2の半導体チップ200に形成されるため、デバッグ工程ごとに必要なすべてのデバッグ回路を組み込んだとしても、第1の半導体チップ100の回路規模を増大させるおそれがない。
【0062】
また、デバッグ基本回路部160には送信専用のデバッグ拡張回路部設定情報送信部175を設け、且つデバッグ拡張回路部210には受信専用の設定情報受信部231を設けている。このため、デバッグ拡張回路部210におけるデバッグ機能回路部220を構成するウオッチポイント回路221等の各デバッグ回路と接続される信号線が1組で済むので、信号線の本数を低減することができる。その結果、第1の半導体チップ100の上に第2の半導体チップ200を貼り合せる工程において、信号線の本数が低減したことにより両チップ間の電気的な導通を図ることが容易となるため、両チップの貼り合わせの精度が高くなるので、半導体集積回路装置における動作の信頼性が向上する。
【0063】
なお、第1の実施形態においては、デバッグ拡張回路部210のデバッグ機能回路部220に組み込まれたデバッグ機能は、ウォッチポイント回路221、トレース回路222、タイマ回路223、トリガ回路224及びキャッシュ情報回路225が搭載されているが、図6に示した組み合わせの一覧のなかから選べば良い。
【0064】
以下、本発明の第1の実施形態に係る半導体集積回路装置におけるプログラムの動作を検証するデバッガ装置について説明する。
【0065】
図7は本発明の第1の実施形態に係るデバッガ装置のブロック構成を示している。図7に示すように、デバッガ装置は、例えばパーソナルコンピュータからなり、出力装置であるディスプレイ301と入力装置であるキーボード302とを備えたホストコンピュータ300には、図1に示したデバッグ対象である半導体集積回路装置に搭載されたCPU110上で実行されるプログラムの動作検証(デバッグ)を行なうソフトウェアであるデバッガ310が搭載されている。
【0066】
デバッガ310は、デバッグ対象のプログラムのデバッグ情報をディスプレイ301に出力するデバッガ表示部320と、設定されたデバッグ命令、CPU110上で実行されるプログラムの実行制御、並びにプログラム情報の取得及び設定を管理するデバッガ本体部330と、キーボード302等からデバッガ310に入力された命令をデバッガ命令通知通信線163を通して、デバッグ対象の第1の半導体チップ100に組み込まれたデバッガ基本回路部120に送信し、その実行結果を受信するデバッガ通信部340とから構成されている。
【0067】
デバッガ本体部330は、デバッグ対象の第2の半導体チップ200が有するデバッグ拡張回路部210に組み込まれたデバッグ機能情報を保持するデバッグ搭載機能管理部331と、該デバッグ搭載機能管理部331に保持されたデバッグ機能情報に基づき、開発対象のデバッグ拡張回路部210に組み込まれているデバッグ機能を利用できるように、デバッガ本体部310を初期化するデバッガ本体再構築部332とから構成されている。
【0068】
第1の実施形態に係るデバッガ装置によると、たとえ、デバッグ拡張回路部210に組み込まれているデバッグ機能回路220が、デバッグ対象である半導体集積回路装置ごとに変更されたとしても、所望のデバッグ機能を選択することができる。
【0069】
また、デバッグ拡張回路部210が形成された第2の半導体チップ200は、第1の半導体チップ100に形成されているCPU110及びデバッグ基本回路部160の上側にこれらを跨ぐように配置されているため、CPU110及びデバッグ基本回路部160とデバッグ拡張回路部210との間の電気配線長をいずれも短くできる。その結果、デバッグ機能回路220の応答性が極めて早くなり、デバッガ310が安定して動作する。
【0070】
以下、本発明の第1の実施形態に係るデバッガ装置の初期化動作について説明する。
【0071】
図8は第1の実施形態に係るデバッガ装置における初期化フローの一例を示している。ここでは、図2、図3、図4、図7及び図8を参照しながらデバッガ装置の初期化動作を説明する。
【0072】
まず、デバッガ310を起動すると、第1の工程ST1において、デバッグ搭載機能管理部331は、第2の半導体チップ200におけるデバッグ拡張回路部210のデバッグ搭載回路識別部235に保持されているデバッグ回路の識別情報を取得するデバッグ機能取得命令を第2の半導体チップ200に発行する。
【0073】
次に、第2の工程ST2において、発行されたデバッグ機能取得命令は、デバッガ命令通知信号線163を通して第1の半導体チップ100におけるデバッグ基本回路部160の通信部171で受信され、デバッグ命令解析部172で解析される。解析された命令はデバッグ拡張回路部210に対する命令であるため、デバッグ拡張回路部設定情報送信部175からデバッグ拡張回路部設定情報通知信号線164を通して第2の半導体チップ200のデバッグ拡張回路部210に送信される。続いて、デバッグ拡張回路部210に含まれる設定情報受信部231は、デバッグ拡張回路部設定情報送信部175から送信された命令を受信し、デバッグ搭載回路識別部235が保持する識別情報を読み出す。続いて、読み出された識別情報は、結果送信部234からデバッグ拡張回路部結果受信信号線165を通して第1の半導体チップ100のデバッグ基本回路部160に送信される。続いて、デバッグ基本回路部160に含まれるデバッグ拡張回路部結果受信部176は、デバッグ拡張回路部210からの実行結果である識別情報を受け取り、通信部171からデバッガ命令通知信号線163を通して、デバッガ本体部330のデバッグ搭載機能管理部331に識別情報を送信する。
【0074】
次に、第3の工程ST3において、デバッガ本体部330のデバッガ本体再構築部332は、受け取った識別情報に基づいて、デバッガ装置が使用できるデバッグ機能を初期化する。
【0075】
このように、第1の実施形態によると、デバッグ対象のプログラムを搭載した半導体集積回路装置を構成する第2の半導体チップ200には、デバッグ拡張回路部210が形成されており、該デバッグ拡張回路部210に選択して組み込まれた1つ以上のデバッグ回路を識別する識別情報を保持している。
【0076】
従って、第1の実施形態に係るデバッガ装置は、デバッガ310の起動時に、デバッグ対象の半導体集積回路装置からデバッグ機能を識別する識別情報を取得し、取得した識別情報に基づいてデバッガ本体部330の初期化を行なうため、組み込まれているデバッグ機能回路220が変更になったとしても、デバッグ対象の半導体集積回路装置に応じたデバッグ環境を容易に且つ確実に構築することができる。
【0077】
(第2の実施形態)
以下、本発明の第2の実施形態について図面を参照しながら説明する。
【0078】
図9(a)は本発明の第2の実施形態に係る半導体集積回路装置におけるCPU及びデバッグ基本回路部と第2の半導体チップとを含む部分の平面構成を示し、図9(b)はその断面構成を示している。図9(a)及び(b)において、図2(a)及び(b)に示す構成要素と同一の構成要素には同一の符号を付すことにより説明を省略する。
【0079】
第1の実施形態との相違点は、第2の半導体チップ200が、書き換え可能なハードウェア回路であるフィールドプログラマブルゲートアレイ(FPGA)410により構成されている点である。
【0080】
そのため、ホストコンピュータ上のデバッガからFPGA410に対して回路情報を転送できるように、第1の半導体チップ100に組み込まれたデバッグ基本回路部160とFPGA410との間にFPGA回路設定信号線168が設けられている。
【0081】
図10は本発明の第2の実施形態に係るデバッグ基本回路部160の詳細な構成の一例を示している。図10において、図3に示す構成要素と同一の構成要素には同一の符号を付すことにより説明を省略する。
【0082】
図10に示すように、デバッグ基本回路部160には、FPGA410にデバッグ機能回路を構築するためのFPGA回路構成部177を設けている。
【0083】
FPGA回路構成部177は、ホストコンピュータ上のデバッガからデバッガ命令通知信号線163を通してFPGA410に書込み要求が送信されたときに、デバッガから送信されるFPGAの回路データに基づいてFPGA回路設定信号線168を通してFPGA410上にデバッグ機能回路を構築する。
【0084】
図11(a)〜図11(e)は第2の実施形態に係る半導体集積回路装置に選択可能なデバッグ回路の一例を示している。ここでは、各回路a、b、cの順に回路規模が小さくなることを模式的に表わしている。
【0085】
図11(a)は第2の半導体チップ200のFPGA410に構築可能なウオッチポイント回路の一例を示している。各回路a〜cは、設定できるウオッチポイントの件数又はウオッチポイントの種類により回路の規模及び構成がそれぞれ異なっている。
【0086】
同様に、図11(b)はFPGA410に構築可能なトレース回路の一例を示し、各回路a〜cは、設定できるトレースの件数又はトレースの種類により回路の規模及び構成がそれぞれ異なっている。図11(c)はFPGA410に構築可能なタイマ回路の一例を示し、各回路a〜cは、設定できるタイマの件数又はタイマの種類により回路の規模及び構成がそれぞれ異なっている。図11(d)はFPGA410に構築可能なトリガ回路の一例を示し、各回路a〜cは、設定できるトリガの件数又はトリガの種類により回路の規模及び構成がそれぞれ異なっている。図11(e)はFPGA410に構築可能なキャッシュ情報回路の一例を示し、各回路a〜cは、設定できるキャッシュ情報の種類により回路の規模及び構成がそれぞれ異なっている。
【0087】
これらの各デバッグ回路は、デバッグ工程に応じて選択することができるようにホストコンピュータにあらかじめ登録される。
【0088】
第2の実施形態においては、ホストコンピュータ300に搭載されたデバッガ310の起動時に、選択されたデバッグ回路をFPGA410に構築できるように回路データを作成し、作成した回路データをデバッガ命令通知信号線163を通して転送し、FPGA410に選択されたデバッグ機能回路を構築する。
【0089】
以下、本発明の第2の実施形態に係る半導体集積回路装置におけるプログラムの動作を検証するデバッガ装置について説明する。
【0090】
図12は本発明の第2の実施形態に係るデバッガ装置のブロック構成を示している。図12において、図7に示す構成要素と同一の構成要素には同一の符号を付すことにより説明を省略する。
【0091】
図12に示すように、第2の実施形態に係るデバッガ装置は、そのデバッガ310に、例えば図11(a)〜図11(e)に示すようなそれぞれ単一機能を有する複数のデバッグ回路のなかから所望のデバッグ回路を選択するデバッグ機能入力部321を有している。
【0092】
デバッガ本体部330は、第1の実施形態の構成に加えて、デバッグ対象のプログラムに関するデバッグ情報を保持するデバッグ設定情報管理部333と、デバッグ機能入力部321により選択されたデバッグ回路が、ターゲットのFPGA410に構築可能か否かを判定するデバッグ機能構築判定部334と、該デバッグ機能構築判定部334において構築可能と判定されたデバッグ回路をFPGA410が使用できる回路データとして作成し、半導体集積回路装置に送信して構築するデバッグ機能構築部335と、FPGA410が有するFPGA情報を取得して保持するFPGA情報管理部336とを有している。
【0093】
このように第2の実施形態に係るデバッガ310によると、プログラム開発者はデバッガ310の起動時にデバッグ工程に応じた最適なデバッグ環境を選択することができるため、プログラムの開発効率が大きく向上する。
【0094】
また、デバッガ310は、所望のデバッグ回路が選択された後、選択されたデバッグ回路が実際にFPGA410に構築できるか否かを判定してプログラム開発者に通知するため、所望のデバッグ機能をディスプレイ301により視覚的に確認しながら選択することができる。
【0095】
その上、デバッガ310は、そのデバッガ本体部330にFPGA情報管理部336を設けているため、第2の半導体チップ200に形成されているFPGA410のハードウェア構成が変更されたとしても、デバッガ310を変更することなく、最適なデバッグ環境を構築することができる。
【0096】
以下、本発明の第2の実施形態に係るデバッガ装置の初期化動作について説明する。
【0097】
図13は第2の実施形態に係るデバッガ装置における初期化フローの一例を示している。ここでは、図9〜図13を参照しながらデバッガ装置の初期化動作を説明する。
【0098】
まず、デバッガ310を起動すると、第1の工程ST11において、デバッグ搭載機能管理部331は、第2の半導体チップ200におけるFPGA(ハードウェア)情報を、例えば第2の半導体チップ200から該第2の半導体チップが有するID情報として取得し、FPGA情報管理部336に保存する。ここで、FPGA情報は、デバッガ装置自体が判定しても良い。
【0099】
次に、第2の工程ST12において、デバッガ表示部320は、あらかじめ登録されているデバッグ回路の一覧をディスプレイ301に表示して、プログラム開発者にデバッグ回路の選択を促す。プログラム開発者は、FPGA410に組み込みたいデバッグ回路を選択する。選択されたデバッグ回路はデバッグ機能入力部321に入力される。
【0100】
次に、第3の工程ST13において、選択されたデバッグ回路がFPGA410に構築できるか否かを、既に取得したFPGA情報に基づいて、デバッグ機能構築判定部334で判定し、その判定結果をデバッガ表示部320を経由して表示し、プログラム開発者に通知する。このとき、選択されたデバッグ回路がFPGA410に構築できないと判定された場合には、プログラム開発者に他のデバッグ回路の選択を促す。
【0101】
次に、選択されたデバッグ回路がFPGA410に構築できると判定された場合には、第4の工程ST14において、デバッグ機能構築部335が、FPGA410に選択されたデバッグ回路を構築するために必要な回路データを合成して作成する。
【0102】
次に、第5の工程ST15において、作成した回路データをデバッガ命令通知信号線163を通して、半導体集積回路装置のデバッグ基本回路部160に送信する。デバッグ基本回路部160が受信した回路データは、FPGA回路構築部177に送られ、FPGA回路設定信号線168を通してFPGA410に送信され、FPGA410には選択されたデバッグ回路が構築される。
【0103】
次に、第6の工程ST16において、構築したデバッグ回路及びデバッガ310の初期化をそれぞれ行なう。初期化が完了すると、プログラム開発者はデバッガ310を操作して、CPU110上で実行されるプログラムのデバッグを開始することができる。
【0104】
図14は第4の工程ST14において合成される回路データに基づいて構築される回路の一例を示している。図14において、図4に示す構成要素と同一の構成要素には同一の符号を付すことにより説明を省略する。
【0105】
図14に示すように、第2の実施形態に係るFPGA410のデバッグ機能回路220は、例えば図11(a)〜図11(e)のデバッグ回路の一覧から各デバッグ回路のうち、いずれもが最小の回路規模を持つウオッチポイント回路c、トレース回路c、タイマ回路c、トリガ回路c、及びキャッシュ情報回路cが選択されることにより構築されている。
【0106】
なお、FPGA410には、第1の半導体チップ100におけるデバッグ基本回路部160のFPGA回路構築部177からの回路データを受ける回路構築部238が設けられている。
【0107】
このように、第2の実施形態によると、デバッグ対象である半導体集積回路装置を構成する第1の半導体チップ100と、その上に保持され、組み込みデバッグ回路の実質的なデバッグ機能を含むFPGA410からなる第2の半導体チップ200とから構成しておき、このFPGA410に、デバッガ310から回路データをダウンロードすることにより、FPGA410にデバッグ機能回路220を形成することができる。このため、第1の実施形態と同等のデバッグ環境を構築できる上に、プログラムの開発工程に合わせて最適なデバッグ環境を選択して実現することができる。
【0108】
なお、第1の実施形態に係るデバッグ拡張回路部210上に形成されているデバッグ搭載回路識別部235は、第2の実施形態においては、デバッガ310でFPGA410の回路データを合成する際に、構築可能なデバッグ回路を認識できるため省略することができる。
【0109】
また、第2の実施形態においては、プログラム開発者が選択したデバッグ回路を、選択された後に合成して作成する構成を採っているが、これに代えて、あらかじめ合成した回路データをデバッガ310に用意しておき、プログラム開発者が選択したデバッグ回路と一致する場合には、一致した回路データをFPGA410にダウンロードするようにしてもよい。このようにすると、回路データを作成する必要がなくなるため、デバッガ310の初期化動作が短縮されるので、デバッガ310の起動が早くなる。
【0110】
以下、デバッグの途中であっても、FPGA回路に構築したデバッグ回路をそのデバッグ機能を代えて再構築する方法を説明する。
【0111】
すなわち、第2の実施形態に係るデバッガ装置、及び半導体集積回路装置におけるデバッグ機能回路220はFPGA410にデバッグ機能回路220が構築された後であっても、該デバッグ機能回路220のデバッグ機能を変更することができる。
【0112】
図15はデバッガ310によるプログラムの動作検証中にデバッグ回路を変更する場合の動作フローの一例を示している。
【0113】
図9〜図12及び図15を用いて、FPGA410のデバッグ機能回路220の回路構成を変更する場合の処理を説明する。
【0114】
まず、図15に示すように、第1の工程21において、プログラム開発者は、デバッガ310に対して、FPGA410に構築されているデバッグ機能回路220のデバッグ機能変更要求を入力する。続いて、デバッグ機能変更要求を入力されたデバッガ310は、FPGA410における設定情報設定部232に設定されている各デバッグ回路221〜225の設定情報を、デバッガ本体部330のデバッグ設定情報管理部333にアップロードして保存する。
【0115】
次に、第2の工程22において、設定情報の保存が完了すると、デバッグ設定情報管理部333は、FPGA410上に設定されているデバッグ回路221〜225の設定情報を解除(消去)する。
【0116】
次に、第3の工程23において、デバッガ表示部320は、登録されているデバッグ回路の一覧をディスプレイ301に表示して、プログラム開発者にデバッグ回路の選択を促す。プログラム開発者は、FPGA410に新たに組み込みたいデバッグ回路を選択する。選択されたデバッグ回路はデバッグ機能入力部321に入力される。
【0117】
次に、第4の工程24において、選択されたデバッグ回路がFPGA410に構築できないと判定された場合には、プログラム開発者に他のデバッグ回路の選択を促すように警告を発する。
【0118】
次に、選択されたデバッグ回路がFPGA410に構築できると判定された場合には、第5の工程ST25において、デバッグ機能構築部335が、FPGA410に選択されたデバッグ回路を構築するために必要な回路データを合成して作成する。
【0119】
次に、第6の工程ST26において、作成した回路データをデバッガ命令通知信号線163を通して、半導体集積回路装置のデバッグ基本回路部160に送信する。デバッグ基本回路部160が受信した回路データは、FPGA回路構築部177に送られ、FPGA回路設定信号線168を通してFPGA410の回路構築部238に送信され、FPGA410には選択されたデバッグ回路が構築される。
【0120】
次に、第7の工程ST27において、構築したデバッグ回路及びデバッガ310の初期化をそれぞれ行なう。
【0121】
次に、第8の工程ST28において、初期化が完了した後に、デバッガ本体部330のデバッグ設定情報管理部333に保存していたデバッグ回路の設定情報のうち、再設定が有効な設定情報をダウンロードして、FPGA410のデバッグ回路に再設定する。
【0122】
次に、第9の工程ST29において、プログラム開発者は、CPU110で実行されるプログラムのデバッグを、選択し直されたデバッグ機能回路220を用いて再開することができる。
【0123】
以上説明したように、デバッグ途中であっても、デバッグ状態に応じて最適なデバッグ回路を更新することができるため、効率良くデバッグを行なうことができる。
【0124】
なお、第2の実施形態においては、デバッグ回路の更新前のデバッグ設定情報を更新後のデバッグ回路に再設定する構成としているが、必ずしも再設定を行なう必要はない。
【0125】
(第3の実施形態)
以下、本発明の第3の実施形態について図面を参照しながら説明する。
【0126】
図16(a)は本発明の第3の実施形態に係る半導体集積回路装置における各CPU及び各デバッグ基本回路部、第2の半導体チップ並びに第3の半導体チップを含む部分の平面構成を示し、図16(b)はその断面構成を示している。図16(a)及び(b)において、図9(a)及び(b)に示す構成要素と同一の構成要素には同一の符号を付すことにより説明を省略する。
【0127】
第2の実施形態との相違点は、半導体集積回路装置を構成する第1の半導体チップ100に、第1のCPU110Aと第2のCPU110Bとが形成されており、さらに、第1のFPGA410Aからなる第2の半導体チップ200Aと、第2のFPGA410Bからなる第3の半導体チップ200Bとが、第1のCPU110Aと第2のCPU110Bとの上にそれぞれ貼り合わされている点である。
【0128】
第1のCPU110Aは、第1の半導体チップ100に形成された第1のデバッグ基本回路部160A及び第1のFPGA410Aに対して第2の実施形態と同様の信号線により接続されている。また、第2のCPU110Bは、第1の半導体チップ100に形成された第2のデバッグ基本回路部160B及び第2のFPGA410Bに対して第2の実施形態と同様の信号線により接続されている。
【0129】
第3の実施形態においては、第1の半導体チップ100に、例えばセレクタからなる通信切替部420が、第1のデバッグ基本回路部160A及び第2のデバッグ基本回路部160Bとデバッガ命令通知信号線163との間に設けられている。ここで、第1のデバッグ基本回路部160Aと通信切替部420とは第1の命令通知信号線421により接続され、第2のデバッグ基本回路部160Bと通信切替部420とは第2の命令通知信号線422により接続されている。
【0130】
また、第1の半導体チップ100には、デバッグ優先度決定部430が設けられており、通信切替部420はデバッグ優先度決定部430に保持された識別情報に基づいて、第1のデバッグ基本回路部160A及び第2のデバッグ基本回路部160Bのうちの登録されているCPUをデバッガ命令通知信号線163と接続する。
【0131】
以下、本発明の第3の実施形態に係る半導体集積回路装置におけるプログラムの動作を検証するデバッガ装置について説明する。
【0132】
図17は本発明の第3の実施形態に係るデバッガ装置のブロック構成を示している。図17において、図12に示す構成要素と同一の構成要素には同一の符号を付すことにより説明を省略する。
【0133】
図17に示すように、第3の実施形態に係るデバッガ装置は、デバッグ設定情報管理部333に、第1の設定情報管理部333aと第2の設定情報管理部333bとを設けており、第1のCPU110A及び第2のCPU110Bのそれぞれに対応してデバッグ設定情報を保持することができる。
【0134】
さらに、デバッグ機能構築部335にも、第1のデバッグ機能情報管理部335a及び第2のデバッグ機能情報管理部335bが2つのCPUと対応して設けられており、FPGA情報管理部336にも、第1のFPGA管理部336a及び第2のFPGA管理部336bが2つのCPUと対応して設けられている。
【0135】
第3の実施形態においては、ホストコンピュータ300上でデバッガ310が起動されると、第1の半導体チップ100に設けられたデバッグ優先度決定部430において決定されるデバッグ対象のCPUと接続される。
【0136】
ここでは一例として、第1のCPU110Aを表わす識別子がデバッグ優先度決定部430に登録されているとする。
【0137】
第2の実施形態で説明したように、デバッガ310を起動した後、プログラム開発者がデバッグ機能を選択し、初期化されてデバッグ操作を行なうことができるようになる。このとき、選択されたデバッグ回路は、デバッグ機能構築部335における第1のデバッグ機能情報管理部335aに保持される。また、第1のFPGA410Aのハードウェア情報は、FPGA情報管理部336における第1のFPGA情報管理部336aに取得されて保持される。
【0138】
ここで、第1のCPU110Aに代えて第2のCPU110Bをデバッグする場合には、デバッグ優先度決定部430に登録されているデータを第2のCPU110Bを表わす識別子に変更することにより、第2のCPU110Bで実行されるプログラムのデバッグを行なうことができるようになる。このとき、第1のCPU110Aにおいて実行中のプログラムをデバッグするために設定されたデバッグ設定情報は、第1の設定情報管理部333aにアップロードして保存される。なお、このときのデバッグ設定情報はその一部又は全部を解除してもよい。
【0139】
第2のCPU110Bが実行するプログラムをデバッグするために選択されたデバッグ回路は、第2のデバッグ機能情報管理部335bに保持される。また、第2のFPGA情報管理部336bには、第2のFPGA410Bのハードウェア情報がアップロードされて保持される。
【0140】
再度、第2のCPU110Bに代えて第1のCPU110Aをデバッグ対象とするような場合には、第1のデバッグ機能情報管理部335aと第1のFPGA情報管理部336aの情報に従って、デバッガ310を再構築する。また、第1の設定情報管理部333aに保持されていたデバッグ設定情報がダウンロードされて復元され、プログラム開発者は、第1のCPU110A上で実行されるプログラムのデバッグを行なえるようになる。
【0141】
このように、第3の実施形態によると、第1の半導体チップ100に2つのCPU110A、110Bが設けられている場合であっても、各CPUに最適なデバッグ環境を構築することができる。
【0142】
また、第1のCPU110Aをデバッグする際の通信線と第2のCPU110Bをデバッグする際の通信線とを1本のデバッガ命令通知信号線163で兼用することにより、半導体集積回路装置、例えばシステムLSIの端子数を減らすことができるため、該システムLSIの製造コストを削減することができる。
【0143】
さらに、起動しているデバッガ310は、複数のCPUのうちの1つをデバッグする構成であるため、デバッグ対象のCPUを変更しても、デバッグ操作が変わることがない。
【0144】
なお、第3の実施形態においては、第1の半導体チップ100に2つのCPUが搭載された例を説明したが、これに限られず、3つ以上のCPUが搭載された半導体集積回路装置であっても、デバッガ310に各CPUごとのデータを保持できる領域を確保すれば、第3の実施形態と同様に、各CPU上のプログラムをデバッグすることができる。
【0145】
また、第3の実施形態においては、第1のデバッグ機能情報管理部335aと第2のデバッグ機能情報管理部335bとは、デバッグ機能構築部335の一機能としているが、これらデバッグ機能情報管理部335a、335bは、デバッグ本体部330の一機能とする構成としてもよい。
【0146】
また、第3の実施形態においては、デバッグ設定情報管理部333における第1の設定情報管理部333a及び第2の設定情報管理部333bにアップロードにより取得したデバッグ設定情報を、デバッグ機能回路220に再設定する構成としているが、設定されていたデバッグ設定情報は必ずしも再設定する必要はない。
【0147】
また、第3の実施形態においては、第2の半導体チップ200A及び第3の半導体チップ200Bに組み込むデバッグ機能回路220を書き換え可能なハードウェア回路であるFPGAに構築したが、第1の実施形態と同様に、それぞれ不揮発性のメモリに構築しても良い。
【0148】
【発明の効果】
本発明に係る半導体集積回路装置によると、第1の半導体チップの上に保持された第2の半導体チップに形成されたデバッグ回路に複数のデバッグ機能を持たせることができるため、第2の半導体チップにデバッグに必要なすべてのデバッグ機能を組み込んだとしても、第1の半導体チップの回路規模が大きくなることがない。従って、同一のマイクロコンピュータ又はマイクロプロセッサに組み込まれるデバッグ回路であっても、複数のデバッグ機能をより有効に利用できるようになり、且つプログラムの開発工程と対応したデバッグ環境を構築できるようになる。
【0149】
本発明に係るデバッガ装置によると、本発明の半導体集積回路装置に組み込まれたデバッグ機能が従来のように固定されておらず、半導体チップごとに異なる場合であっても、第2の半導体チップのデバッグ回路部に組み込まれたデバッグ機能により確実にデバッグ操作を実行することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係る半導体集積回路装置を示すブロック図である。
【図2】(a)は本発明の第1の実施形態に係る半導体集積回路装置の第1の半導体チップにおけるCPU及びデバッグ基本回路部と第2の半導体チップとを含む部分の模式的な拡大平面図であり、(b)は(a)の模式的な断面図である。
【図3】本発明の第1の実施形態に係る半導体集積回路装置におけるデバッグ基本回路部の一例を示すブロック回路図である。
【図4】本発明の第1の実施形態に係る半導体集積回路装置におけるデバッグ拡張回路部の一例を示すブロック回路図である。
【図5】(a)〜(e)は第1の実施形態に係る半導体集積回路装置に選択可能な機能ごとのデバッグ回路の一例を示している。
【図6】図5(a)〜(e)に基づいて作成した、デバッグ機能回路に組み込み可能なデバッグ回路の組み合わせの一覧である。
【図7】本発明の第1の実施形態に係るデバッガ装置を示すブロック図である。
【図8】本発明の第1の実施形態に係るデバッガ装置における初期化動作を示すフローチャート図である。
【図9】(a)は本発明の第2の実施形態に係る半導体集積回路装置の第1の半導体チップにおけるCPU及びデバッグ基本回路部と第2の半導体チップとを含む部分の模式的な拡大平面図であり、(b)は(a)の模式的な断面図である。
【図10】本発明の第2の実施形態に係る半導体集積回路装置におけるデバッグ基本回路部の一例を示すブロック回路図である。
【図11】(a)〜(e)は第2の実施形態に係る半導体集積回路装置に選択可能な機能ごとのデバッグ回路の一例を示している。
【図12】本発明の第2の実施形態に係るデバッガ装置を示すブロック図である。
【図13】本発明の第2の実施形態に係るデバッガ装置における初期化動作を示すフローチャート図である。
【図14】本発明の第2の実施形態に係る半導体集積回路装置におけるFPGA回路の一例を示すブロック回路図である。
【図15】本発明の第2の実施形態に係るデバッガ装置によるプログラムの動作検証中にデバッグ回路を変更する場合のフローチャート図である。
【図16】(a)は本発明の第3の実施形態に係る半導体集積回路装置の第1の半導体チップにおける各CPU及び各デバッグ基本回路部、第2の半導体チップ並びに第3の半導体チップを含む部分の模式的な拡大平面図であり、(b)は(a)の模式的な断面図である。
【図17】本発明の第3の実施形態に係るデバッガ装置を示すブロック図である。
【符号の説明】
100  第1の半導体チップ
105  バス
110  CPU(CPUコア)
110A 第1のCPU
110B 第2のCPU
120  ROM部
130  RAM部
140  第1周辺回路部
150  第2周辺回路部
160  デバッグ基本回路部(第1のデバッグ回路部)
160A 第1のデバッグ基本回路部
160B 第2のデバッグ基本回路部
161  CPU命令通知信号線
162  CPU実行結果受信信号線
163  デバッガ命令通知信号線
164  デバッグ拡張回路部設定情報通知信号線
165  デバッグ拡張回路部結果受信信号線
166  アドレス情報信号線
167  オペランド情報信号線
168  FPGA回路設定信号線
171  通信部
172  デバッグ命令解析部(命令解析部)
173  CPU実行命令送信部(第1送受信部)
174  CPU実行結果受信部(第1送受信部)
175  デバッグ拡張回路部設定情報送信部(第2送受信部)
176  デバッグ拡張回路部結果受信部(第2送受信部)
177  FPGA回路構築部
200  第2の半導体チップ
200A 第2の半導体チップ
220B 第3の半導体チップ
210  デバッグ拡張回路部(第2のデバッグ回路部)
220  デバッグ機能回路部
221  ウオッチポイント回路
222  トレース回路
223  タイマ回路
224  トリガ回路
225  キャッシュ情報回路
221  ウオッチポイント回路c
222  トレース回路c
223  タイマ回路c
224  トリガ回路c
225  キャッシュ情報回路c
226  設定情報通知信号線
227  結果通知信号線
231  設定情報受信部
232  設定情報設定部
233  状態管理部
234  結果送信部
235  デバッグ搭載回路識別部
236  アドレス情報受信部
237  オペランド情報受信部
238  回路構築部
300  ホストコンピュータ
301  ディスプレイ
302  キーボード
310  デバッガ
320  デバッガ表示部
330  デバッガ本体部
331  デバッグ搭載機能管理部
332  デバッガ本体再構築部
333  デバッグ設定情報管理部
333a 第1の設定情報管理部
333b 第2の設定情報管理部
334  デバッグ機能構築判定部
335  デバッグ機能構築部
335a 第1のデバッグ機能情報管理部
335b 第2のデバッグ機能情報管理部
336  FPGA情報管理部(ハードウェア情報管理部)
336a 第1のFPGA情報管理部
336b 第2のFPGA情報管理部
340  デバッガ通信部
410  FPGA(書き換え可能ハードウェア回路)
410A 第1のFPGA
410B 第2のFPGA
420  通信切替部(命令切替部)
421  第1の命令通知信号線
422  第2の命令通知信号線
430  デバッグ優先度決定部

Claims (9)

  1. メモリ部、入出力部、CPUコア及び該CPUコアで実行されるプログラムの動作を検証する第1のデバッグ回路部を有する第1の半導体チップと、
    前記第1の半導体チップの主面上に保持され、前記CPUコア及び前記第1のデバッグ回路部と電気的に接続された第2のデバッグ回路部を有する第2の半導体チップとを備え、
    前記第1のデバッグ回路部は、外部から入力されるデバッグ命令を解析する命令解析部と、解析した命令が前記CPUコアで実行する命令である場合は前記CPUコアに送信し、その実行結果を前記CPUコアから受信する第1送受信部と、前記第2のデバッグ回路部で実行する命令である場合は前記第2のデバッグ回路部に送信し、その実行結果を前記第2のデバッグ回路部から受信する第2送受信部とを有し、
    前記第2のデバッグ回路部はデバッグ機能回路を含むことを特徴とする半導体集積回路装置。
  2. メモリ部、入出力部、第1のCPUコア、該第1のCPUコアで実行されるプログラムの動作を検証する第1のデバッグ回路部、第2のCPUコア、該第2のCPUコアで実行されるプログラムの動作を検証する第2のデバッグ回路部を有する第1の半導体チップと、
    前記第1の半導体チップの主面上に保持され、前記第1のCPUコア及び前記第1のデバッグ回路部と電気的に接続された第3のデバッグ回路部を有する第2の半導体チップと、
    前記第1の半導体チップの主面上に保持され、前記第2のCPUコア及び前記第2のデバッグ回路部と電気的に接続された第4のデバッグ回路部を有する第3の半導体チップと、
    外部から入力されるデバッグ命令を、前記第1のデバッグ回路部又は前記第2のデバッグ回路部に切り換える命令切替部とを備え、
    前記第1のデバッグ回路部は、前記命令切替部を通して入力されるデバッグ命令を解析する命令解析部と、解析した命令が前記第1のCPUコアで実行する命令である場合は前記第1のCPUコアに送信し、その実行結果を前記第1のCPUコアから受信する第1送受信部と、前記第3のデバッグ回路部で実行する命令である場合は前記第3のデバッグ回路部に送信し、その実行結果を前記第3のデバッグ回路部から受信する第2送受信部とを有し、
    前記第2のデバッグ回路部は、前記命令切替部を通して入力されるデバッグ命令を解析する命令解析部と、解析した命令が前記第2のCPUコアで実行する命令である場合は前記第2のCPUコアに送信し、その実行結果を前記第2のCPUコアから受信する第3送受信部と、前記第4のデバッグ回路部で実行する命令である場合は前記第4のデバッグ回路部に送信し、その実行結果を前記第4のデバッグ回路部から受信する第4送受信部とを有し、
    前記第3のデバッグ回路部及び第4のデバッグ回路部は、それぞれデバッグ機能回路を含むことを特徴とする半導体集積回路装置。
  3. 前記デバッグ機能回路は、ウオッチポイント回路、トレース回路、タイマ回路、トリガ回路及びキャッシュ情報回路のうちの少なくとも1つを含み、且つ同一の機能回路同士でその規模及び構成が互いに異なる複数の回路から選択されて構成されていることを特徴とする請求項1又は2に記載の半導体集積回路装置。
  4. 前記デバッグ機能回路は、書き換え可能なハードウェア回路であることを特徴とする請求項1〜3のうちのいずれか1項に記載の半導体集積回路装置。
  5. メモリ部、入出力部、CPUコア及び該CPUコアで実行されるプログラムの動作を検証する第1のデバッグ回路部を有する第1の半導体チップと、前記第1の半導体チップの主面上に保持され、前記CPUコア及び前記第1のデバッグ回路部と電気的に接続された第2のデバッグ回路部を有する第2の半導体チップとを有する半導体集積回路装置における前記第1のデバッグ回路部及び前記第2のデバッグ回路部に命令を発行するデバッガ装置であって、
    前記第2のデバッグ回路部が有するデバッグ機能を特定するデバッグ搭載機能管理部と、
    特定されたデバッグ機能に基づいて、前記デバッガ装置を初期化するデバッガ本体再構築部とを備えていることを特徴とするデバッガ装置。
  6. 前記半導体集積回路装置における前記第2の半導体チップは、書き換え可能なハードウェア回路を有しており、
    前記ハードウェア回路の情報を管理するハードウェア情報管理部と、
    前記ハードウェア回路に含まれる1つ以上のデバッグ機能を搭載可能か否かを判定するデバッグ機能構築判定部と、
    前記デバッグ機能構築判定部において搭載可能と判定されたデバッグ機能を前記ハードウェア回路に構築するデバッグ機能構築部とをさらに備えていることを特徴とする請求項5に記載のデバッガ装置。
  7. 前記デバッグ機能構築部は、あらかじめ回路データとして作成された複数のハードウェア回路のうちのいずれか1つを選択することを特徴とする請求項6に記載のデバッガ装置。
  8. 前記ハードウェア回路に設定されているデバッグ情報を保存するデバッグ設定情報管理部をさらに備え、
    前記デバッグ設定情報管理部は、前記ハードウェア回路に設定されているデバッグ情報を解除した後、保存した前記デバッグ情報を前記ハードウェア回路に再度設定することを特徴とする請求項7に記載のデバッガ装置。
  9. 前記デバッグ機能構築部は、複数のデバッグ機能を保持するデバッグ機能情報管理部を有し、
    前記ハードウェア情報管理部は、複数のハードウェア回路情報を保持するハードウェア情報管理部を有していることを特徴とする請求項6〜8のうちのいずれか1項に記載のデバッガ装置。
JP2002214963A 2002-07-24 2002-07-24 半導体集積回路装置及びそのデバッガ装置 Pending JP2004054825A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002214963A JP2004054825A (ja) 2002-07-24 2002-07-24 半導体集積回路装置及びそのデバッガ装置
US10/621,654 US6903453B2 (en) 2002-07-24 2003-07-18 Semiconductor integrated circuit device and debugger device for the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002214963A JP2004054825A (ja) 2002-07-24 2002-07-24 半導体集積回路装置及びそのデバッガ装置

Publications (1)

Publication Number Publication Date
JP2004054825A true JP2004054825A (ja) 2004-02-19

Family

ID=30767904

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002214963A Pending JP2004054825A (ja) 2002-07-24 2002-07-24 半導体集積回路装置及びそのデバッガ装置

Country Status (2)

Country Link
US (1) US6903453B2 (ja)
JP (1) JP2004054825A (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005300485A (ja) * 2004-04-16 2005-10-27 Renesas Technology Corp 半導体装置
JP2009059005A (ja) * 2007-08-29 2009-03-19 Panasonic Corp デバッグシステム、デバッグ装置および方法
JP6526374B2 (ja) * 2013-04-25 2019-06-05 株式会社堀場エステック 流体制御装置
US9785508B2 (en) 2014-09-10 2017-10-10 Nxp Usa, Inc. Method and apparatus for configuring I/O cells of a signal processing IC device into a safe state

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6697931B1 (en) * 1996-10-31 2004-02-24 Stmicroelectronics Limited System and method for communicating information to and from a single chip computer system through an external communication port with translation circuitry
US6356960B1 (en) * 1997-10-29 2002-03-12 Sgs-Thomson Microelectronics Limited Microprocessor having an on-chip CPU fetching a debugging routine from a memory in an external debugging device in response to a control signal received through a debugging port
GB9805486D0 (en) * 1998-03-13 1998-05-13 Sgs Thomson Microelectronics Adapter
JP2002202900A (ja) * 2000-12-28 2002-07-19 Seiko Epson Corp デバッグ装置

Also Published As

Publication number Publication date
US6903453B2 (en) 2005-06-07
US20040019826A1 (en) 2004-01-29

Similar Documents

Publication Publication Date Title
US6668339B1 (en) Microprocessor having a debug interruption function
JP4987182B2 (ja) コンピュータシステム
JP4472615B2 (ja) プログラマブルデバイスのモデリング方法および装置
JP4865943B2 (ja) コンピュータシステム
TWI361978B (en) Method for debugging a computer system
JP2001154876A (ja) マイクロコンピュータデバッグアーキテクチャ及び方法
US20070129860A1 (en) Vehicle Service Equipment Interface Drivers
CN106681877B (zh) 芯片调试系统及方法与系统芯片
WO2006008721A2 (en) Emulation and debug interfaces for testing an integrated circuit with an asynchronous microcontroller
US20080126862A1 (en) System and Method for Testing Software Code for Use on a Target Processor
JP2010072843A (ja) 検証用デバイス及び検証装置並びに検証システム
US7313729B2 (en) Low-cost debugging system with a ROM or RAM emulator
JP4600601B1 (ja) デバッグ支援装置、デバッグ支援方法及びデバッグ支援プログラム
JP2004054825A (ja) 半導体集積回路装置及びそのデバッガ装置
JP2005070950A (ja) プログラム処理装置
JP4024026B2 (ja) 半導体装置および評価装置
JP2001209556A (ja) 検証支援システム
CN115495136A (zh) 一种基于国产飞腾平台的bmc快速在线升级方法
US20020184001A1 (en) System for integrating an emulator and a processor
McDougall Simple AMP: bare-metal system running on both Cortex-A9 processors
JP2002288002A (ja) エミュレータ装置及びエミュレーション方法
JP3110418B2 (ja) インサーキットエミュレータおよび制御方法
JP3685288B2 (ja) マイクロプロセッサのエミュレーション方法およびエミュレータ装置
JP2004038464A (ja) デバッグ機能内蔵マイクロコンピュータ
JP2007241616A (ja) チップセットのエミュレーション装置および方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050701

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081224

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091027