JP2008071227A - 半導体集積回路 - Google Patents

半導体集積回路 Download PDF

Info

Publication number
JP2008071227A
JP2008071227A JP2006250486A JP2006250486A JP2008071227A JP 2008071227 A JP2008071227 A JP 2008071227A JP 2006250486 A JP2006250486 A JP 2006250486A JP 2006250486 A JP2006250486 A JP 2006250486A JP 2008071227 A JP2008071227 A JP 2008071227A
Authority
JP
Japan
Prior art keywords
monitor
signal
unit
program
integrated circuit
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
JP2006250486A
Other languages
English (en)
Inventor
Shigeyuki Ueno
繁幸 上野
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.)
NEC Electronics Corp
Original Assignee
NEC Electronics Corp
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 NEC Electronics Corp filed Critical NEC Electronics Corp
Priority to JP2006250486A priority Critical patent/JP2008071227A/ja
Priority to US11/898,537 priority patent/US20080072212A1/en
Publication of JP2008071227A publication Critical patent/JP2008071227A/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/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware

Landscapes

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

Abstract

【課題】 従来は、取得したモニタ信号に基づいてソフトウェアのデバッグとハードウェアの動作解析を効率的に行うことはできなかった
【解決手段】 プログラムの実行を行うCPU3と、半導体集積回路の内部信号をモニタ信号として取得するモニタ部4と、を備え、モニタ部4は、CPU3がプログラムの実行を開始するときCPU3から与えられるモニタ開始信号を受けて、LSI1の内部信号をモニタ信号として取得する動作を開始し、CPU3がプログラムの実行を停止するときCPU3から与えられるモニタ停止信号を受けて、LSI1の内部信号をモニタ信号として取得する動作を停止する。
【選択図】 図1

Description

本発明は、半導体集積回路に関する。
近年、LSI(Large Scale Integration)の高機能化の進展が著しい。これに伴って、ソフトウェアのデバッグとハードウェアの動作解析を効率的に行う手法が求められている。例えば、特許文献1では、MPU(マイクロプロセッサ)の内部信号とLSIの周辺回路の内部信号とを選択的に出力することでデバック効率を向上させている。
ところで、MPUがプログラムを実行することに伴って、LSIの内部信号(例えば、周辺回路の内部信号)は変化する。MPUがある命令を実行したとき、LSIの内部信号がどのように変化したのかということを調べるためには、実行した命令と、その時に取得した内部信号との対応関係を明らかにすることが必要となる。すなわち、実行した命令と、その取得した内部信号との対応づけがなされていないと、取得した内部信号から、その時に実行された命令がどれなのか、を調べることに労力が必要となる場合がある。
例えば、MPUが繰り返し同じ命令を実行する場合には、取得されるモニタ信号が何回目の命令に対応するのかを調べることが容易ではない場合がある。
特許文献1では、LSIの構成として、MPUによるプログラムの実行と、周辺回路からのモニタ信号の取得とが対応づけられていないため、上述したように、取得したモニタ信号に基づいて、ソフトウェアのデバッグとハードウェアの動作解析とを効率的に行うことはできなかった。
特開2002−24201
上述のように、取得したモニタ信号に基づいてソフトウェアのデバッグとハードウェアの動作解析を効率的に行うことはできなかった。
本発明にかかる半導体集積回路は、プログラムの実行を行う演算処理部と、半導体集積回路の内部信号をモニタ信号として取得するモニタ部と、を備え、前記モニタ部は、前記演算処理部が前記プログラムの実行を開始するとき前記演算処理部から与えられるモニタ開始信号を受けて、半導体集積回路の内部信号をモニタ信号として取得する動作を開始し、前記演算処理部が前記プログラムの実行を停止するとき記演算処理部から与えられるモニタ停止信号を受けて、半導体集積回路の内部信号をモニタ信号として取得する動作を停止する。
本発明にかかる半導体集積回路は、プログラムの実行を行う演算処理部と、半導体集積回路の内部信号をモニタ信号として取得するモニタ部と、を備え、前記モニタ部は、前記演算処理部が前記プログラムの実行を行っている状態を示すアクティブステータス信号を、前記演算処理部から与えられている間、半導体集積回路の内部信号をモニタ信号として取得し、前記演算処理部が前記プログラムの実行を行っていない状態を示すノンアクティブステータス信号を、前記演算処理部から与えられている間、半導体集積回路の内部信号をモニタ信号として取得しない。
モニタ部は、演算処理部がプログラムの実行をしている期間に対応して、半導体集積回路の内部信号をモニタ信号として取得する。従って、実行されるプログラムと取得されるモニタ信号とを対応づけることが容易にできる。例えば、不必要な信号を取得することを抑制することができ、効率的な解析を実現できる。
取得したモニタ信号に基づいてソフトウェアのデバッグとハードウェアの動作解析を効率的に行うことができる。
以下、図面を用いて、本発明の実施の形態について説明する。尚、図面は簡略的なものであって、本発明の技術的範囲を狭めるように解釈してはならない。また、同一の要素には同一の符号を付し、重複する説明は省略するものとする。
[第1の実施の形態]
図1に本実施の形態にかかる半導体集積回路1(LSI1)を含むデバックシステム100を示す。図1に示すように、デバックシステム100は、LSI1と外部計算装置2とを有する。外部計算装置2には、プログラムのバグの発見を支援するソフトウェア(デバッガー)がインストールされている。
システム開発担当者は、デバッガーを使用して、検査対象となるプログラム(テストプログラム)をLSI1にダウンロードさせる。また、デバッガーを使用して、LSI1に観察対象とするモニタ信号を設定したり、LSI1に保持されているモニタ信号を取得したりする。
図2に示すように、外部計算装置2には、表示装置20が接続されている。取得したモニタ信号に基づく波形(モニタ波形)は、表示装置20に表示される。システム開発担当者は、この表示装置20に表示されたモニタ波形を用いて、プログラムのバグの発見又はLSI1の動作解析を行う。
図1に戻り説明する。LSI1は、CPU(演算処理部)3、モニタ部4、周辺回路5、メモリ部6、システムバス7、通信バス8、通信ポート9を備える。
外部計算装置2は、LSI1の通信ポート9に接続される。外部計算装置2にインストールされたデバッガーにより、LSI1に検査用のプログラムがダウンロードされる。検査用のプログラムは、LSI1に含まれるメモリ部6に記憶される。
システム開発担当者は、デバッガーを用いて、LSI1の内部信号のうち、どの内部信号をモニタ信号として取得するのかを、あらかじめ後述するモニタ制御部14に設定する。ここでは、周辺回路5から与えられる内部信号はモニタ信号MS1として、システムバス7から与えられる内部信号はモニタ信号MS2として、CPU3から与えられる内部信号はモニタ信号MS3として設定される。なお、モニタ信号として取得するLSI1の内部信号の数は任意である。
CPU3は、デバッガーから与えられるプログラムの実行命令に基づいて、メモリ部6に記憶されたプログラムを実行する。また、CPU3は、デバッガーから与えられるプログラムの停止命令に基づいて、メモリ部6に記憶されたプログラムの実行を停止する。なお、メモリ部6に記憶されるプログラムは、デバッガーによって書き換えられることが可能である。従って、CPU3は、デバッガーによって書き換えられたプログラムを実行することもある。
CPU3は、プログラムカウンタ(PC)、アキュムレータ、各種レジスタを含む(尚、図1において、いずれも図示されていない)。そして、CPU3は、デバッグ制御部(DCU)10をさらに含む。
本実施形態においては、デバッグ制御部10は、CPU3がプログラムの実行をしているか、又は実行をしていないかを検出する。そして、デバッグ制御部10からモニタ部4に、CPU3によるプログラムの実行状態に応じた信号レベルの第1ステータス信号が与えられる。尚、ここでは、第1ステータス信号は、ハイレベル(HIGH)とローレベル(LOW)の2つの信号レベルを持つデジタル信号である。
モニタ部4は、モニタI/F11(第1インターフェイス部11)、トレースメモリ部12、通信I/F13(第2インターフェイス部13)、モニタ制御部14を含む。
モニタI/F11には、LSI1の内部信号が与えられる。ここで与えられるLSI1の内部信号は、周辺回路5から与えられる内部信号、システムバス7から与えられる内部信号、CPU3から与えられる内部信号である。また、モニタI/F11には、デバッグ制御部10から第1ステータス信号も与えられる。
モニタ制御部14は、デバッガーから設定された条件に従って、モニタI/F11に与えられる内部信号をモニタ信号としてトレースメモリ部12に書き込むかどうかを制御する。上述のとおり、モニタI/F11に与えられる内部信号のうち、どれをモニタ信号として取得するか(トレースメモリ部12に書き込むか)は、あらかじめデバッガーにより、モニタ制御部14に設定される。
また、モニタ制御部14は、モニタI/F11に与えられる第1ステータス信号に基づいてモニタ信号を取得するかどうか(モニタ信号をトレースメモリ部12に書き込むかどうか)も制御する。
尚、モニタI/F11は、通信I/F13に接続され、デバッガーと通信することができるように構成される。
通信I/F13は、モニタI/F11、トレースメモリ部12に接続される。また、通信I/F13は、通信バス8に接続される。すなわち、通信I/F13は、モニタ部4とデバッガーとの間の通信インターフェイスを構成する。具体的には、トレースメモリ部12に記憶されたモニタ信号は、通信I/F13を介して、通信バス8に読み出される。そして、通信バス8に出力されたモニタ信号は、通信ポート9を介して、外部計算装置2に読み出される。
システムバス7は、データの伝送路であって、CPU3、周辺回路5、メモリ部6を接続する。通信バス8は、データの伝送路であって、CPU3、通信ポート9、モニタ部4を接続する。
LSI1に含まれるCPU3及びモニタ部4は、共通の通信ポート9を介して、共通のデバッガーにより制御される。よって、効率的にプログラムのバグの発見又はLSI1の動作解析を行うことができる。
本実施形態においては、CPU3がプログラムの実行を開始するとき、CPU3のデバッグ制御部10により、第1ステータス信号の信号レベルが、ハイレベルからローレベルに変更される。そして、CPU3がプログラムを実行している期間、第1ステータス信号はローレベルに維持される。
また、CPU3がプログラムの実行を停止するとき、デバッグ制御部10により、第1ステータス信号の信号レベルが、ローレベルからハイレベルに変更される。そして、CPU3が再びプログラムの実行を開始するまで、第1ステータス信号はハイレベルに維持される。
上述のとおり、第1ステータス信号は、CPU3のデバッグ制御部10からモニタ部4に与えられる。そして、デバッグ制御部10によって、第1ステータス信号がハイレベルからローレベルに変更されるとき、モニタ部4は、モニタ信号(MS1〜MS3)の取得を開始する。
すなわち、デバッグ制御部10は、第1ステータス信号をハイレベルからローレベルに変化させることで、モニタ部4に、モニタ信号の取得を開始するタイミングを連絡する。換言すると、第1ステータス信号の信号レベルの立下りは、モニタ部4によるモニタ信号の取得を開始させる「モニタ開始信号」である。
「モニタ開始信号」は、デバッグ制御部10がCPU3によるプログラムの実行開始を検出したとき、デバッグ制御部10からモニタ部4に与えられる。従って、モニタ部4によるモニタ信号の取得の開始時点は、CPU3によるプログラムの実行の開始時点と実質的に等しく設定される。
なお、ここでいう「実質的に」とは、LSI1の内部基準クロックを基準として、多少のクロックずれがあっても良いことを意味する。
CPU3のデバッグ制御部10によって、第1ステータス信号がローレベルからハイレベルに変更されるとき、モニタ部4は、モニタ信号(MS1〜MS3)の取得を停止する。
すなわち、デバッグ制御部10は、第1ステータス信号をローレベルからハイレベルに変化させることで、モニタ部4に、モニタ信号の取得を停止するタイミングを連絡する。換言すると、第1ステータス信号の信号レベルの立ち上がりは、モニタ部4によるモニタ信号の取得を停止させる「モニタ停止信号」である。
「モニタ停止信号」は、デバッグ制御部10がCPU3によるプログラムの実行停止を検出したときに、デバッグ制御部10からモニタ部4に与えられる。従って、モニタ部4によるモニタ信号の取得の停止時点は、CPU3によるプログラムの実行の停止時点と実質的に等しく設定される。
なお、ここでいう「実質的に」とは、LSI1の内部基準クロックを基準として、多少のクロックずれがあっても良いことを意味する。
上述のように、デバッグ制御部10は、CPU3によるプログラムの実行開始に同期してモニタ開始信号をモニタ部4に与え、CPU3によるプログラムの実行停止に同期してモニタ停止信号をモニタ部4に与える。デバッグ制御部10からモニタ部4にモニタ開始信号が与えられ、その後、デバッグ制御部10からモニタ部4にモニタ停止信号が与えられるまでの間、デバッグ制御部10からモニタ部4には、ローレベルの第1ステータス信号が与えられる。
この点を換言すると、デバッグ制御部10は、CPU3がプログラムを実行している期間(プログラム実行期間)、ローレベルの第1ステータス信号(アクティブステータス信号)をモニタ部4に与える。また、デバッグ制御部10は、CPU3がプログラムを実行していない期間(プログラム非実行期間)、ハイレベルの第1ステータス信号(ノンアクティブステータス信号)をモニタ部4に与える。
モニタ部4は、デバッグ制御部10から、ローレベルの第1ステータス信号を与えられている間は、モニタ信号を取得する。他方、モニタ部4は、デバッグ制御部10から、ハイレベルの第1ステータス信号を与えられている間は、モニタ信号を取得しない。よって、デバッグ制御部10から与えられる第1ステータス信号の信号レベルに基づいて、モニタ部4によるモニタ信号の取得をするか又は取得をしないかが決定される。
このような構成によって、簡易に、CPU3は、モニタ部4に対して、CPU3がプログラムの実行を開始した時点と、CPU3がプログラムの実行を停止した時点とを知らせることができる。そして、モニタ部4は、CPU3によるプログラムの実行開始又は実行停止に同期して、LSI1の内部信号をモニタ信号として取得する動作を開始又は停止する。
また、このような構成によって、簡易に、CPU3は、モニタ部4に対して、CPU3がプログラムの実行をしている期間と、CPU3がプログラムの実行を停止している期間とを知らせることができる。そして、モニタ部4は、CPU3によるプログラムの実行期間又はプログラムの実行停止期間に対応して、LSI1の内部信号をモニタ信号として取得する又はモニタ信号として取得しない。
ここで図3のタイミングチャートを用いて、本実施形態にかかるLSI1の動作について説明する。なお、説明に際して、図4乃至図9もあわせて参照する。
時刻t1では、図4に示すように、「プログラムのダウンロード」と「モニタ設定」が行われる。すなわち、検査対象となるプログラム(テストプログラム)は、デバッガーからLSI1にダウンロードされる。また、デバッガーから与えられるコマンド(モニタ設定コマンド)によって、モニタ制御部14に、モニタ信号として取得される内部信号が設定される。なお、プログラムは、メモリ部6に格納される。また、このとき、第1ステータス信号はハイレベルである。
時刻t2では、図5に示すように、「プログラムの実行」が開始する。すなわち、デバッガーからCPU3にプログラムの実行を開始するコマンド(スタートコマンド)が与えられる。CPU3は、デバッガーからの指示に基づいて、メモリ部6に格納されたプログラムの実行を開始する。このとき、第1ステータス信号はハイレベルである。
時刻t3では、「第1ステータス信号」の信号レベルが変化する。すなわち、デバッグ制御部10は、CPU3がプログラムの実行を開始することを検出すると、第1ステータス信号をハイレベルからローレベルに変化させる。第1ステータス信号がハイレベルからローレベルに変更されることによって、信号レベルの立下りが発生する。
時刻t4では、図6に示すように、「モニタ信号の取得」が開始する。すなわち、モニタ制御部14は、上述のように、第1ステータス信号がハイレベルからローレベルに変化したこと(信号レベルの立下り)を検出すると、上述の「モニタ設定」により特定されたLSI1の内部信号をモニタ信号(MS1〜MS3)として取得することを開始する。モニタ信号として取得される内部信号は、トレースメモリ部12に書き込まれる(これを、図6では、模式的に矢印Writeで示す)。従って、モニタ信号を取得することは、トレースメモリ部12に書き込むことと等しい。
上述したように、本実施形態では、次のようにモニタ信号として取得する内部信号が設定されている。すなわち、図6に明示的に示すように、モニタ部4は、周辺回路5の内部信号をモニタ信号MS1として取得し、システムバス7の内部信号をモニタ信号MS2として取得し、CPU3の内部信号をモニタ信号MS3として取得する。モニタI/F11に入力されるモニタ信号MS1〜MS3は、矢印writeで示すように、トレースメモリ部12に書き込まれる。
尚、時刻t3は、時刻t2と実質的に同じタイミングである。すなわち、「プログラムの実行」が開始されるタイミングと実質的に同じタイミングで「第1ステータス信号」が変化する。また、時刻t4は、時刻t3と実質的に同じタイミングである。すなわち、「第1ステータス信号」の信号レベルの変化と実質的に同じタイミングで「モニタ信号の取得」が開始される。従って、「プログラムの実行」の開始時点と「モニタ信号の取得」の開始時点とは、実質的に同じタイミングである。
時刻t5では、図7に示すように、「プログラムの実行」が停止される。すなわち、デバッガーからCPU3にプログラムの実行を停止するコマンド(ストップコマンド)が与えられる。CPU3は、デバッガーからの指示に従って、プログラムの実行を停止する。
時刻t6では、「第1ステータス信号」の信号レベルが変化する。すなわち、デバッグ制御部10は、CPU3がプログラムの実行を停止することを検出すると、第1ステータス信号をローレベルからハイレベルに変化させる。
時刻t7では、「モニタ信号の取得」が停止する。すなわち、モニタ制御部14は、第1ステータス信号がローレベルからハイレベルに変化したこと(信号レベルの立ち上がり)を検出すると、LSI1の内部信号をモニタ信号として取得することを停止する。
尚、時刻t6は、時刻t5と実質的に同じタイミングである。また、時刻t7は、時刻t6と実質的に同じタイミングである。すなわち、「プログラムの実行」が停止されるタイミングと、「第1ステータス信号」の信号レベルが変化するタイミングは、実質的に同じタイミングである。また、「第1ステータス信号」の信号レベルが変化するタイミングと「プログラムの実行」が停止されるタイミングとは、実質的に同じタイミングである。従って、「プログラムの実行」が停止するタイミングと「モニタ信号の取得」が停止するタイミングとは、実質的に同じタイミングである。
時刻t8では、「モニタ信号の読み出し」が行われる。すなわち、デバッガーからモニタ部4及びCPU3に対して、これらに蓄積された信号を読み出すためのコマンド(リードコマンド)が与えられる。そして、モニタ部4のトレースメモリ部12に蓄積されたモニタ信号及びCPU3に含まれる各種レジスタに蓄積された信号は、外部計算装置2に読み込まれる。そして、デバッガーによる処理によって、外部計算装置2に接続される表示部20にモニタ信号の波形が表示される。
上述の説明から明らかなように、デバッグ制御部10は、CPU3がプログラムの実行を開始する時点で、第1ステータス信号をハイレベルからローレベルに変更する。すなわち、デバッグ制御部10は、第1ステータス信号の信号レベルを変化させることで、CPU3がプログラムの実行を開始したことをモニタ制御部14に連絡する。
モニタ部4のモニタ制御部14は、CPU3のデバッグ制御部10から与えられる第1ステータス信号の信号レベルの立下り(モニタ開始信号)に基づいて、CPU3がプログラムの実行を開始したことを検出する。そして、LSI1の内部信号をモニタ信号として取得する動作を開始する。
また、上述の説明から明らかなように、デバッグ制御部10は、CPU3がプログラムの実行を停止する時点で、第1ステータス信号をローレベルからハイレベルに変更する。すなわち、デバッグ制御部10は、第1ステータス信号の信号レベルを変化させることで、CPU3がプログラムの実行を停止したことをモニタ制御部14に連絡する。
モニタ部4のモニタ制御部14は、CPU3のデバッグ制御部10から与えられる第1ステータス信号の信号レベルの立ち上がり(モニタ停止信号)に基づいて、CPU3がプログラムの実行を停止したことを検出する。そして、LSI1の内部信号をモニタ信号として取得する動作を停止する。
また、上述の説明から明らかなように、デバッグ制御部10により、CPU3がプログラムの実行をしている期間に対応して、第1ステータス信号はローレベルに維持される。また、デバッグ制御部10により、CPU3がプログラムの実行を停止している期間に対応して、第1ステータス信号はハイレベルに維持される。これによって、第1ステータス信号の信号レベルがローレベル(第1の信号レベル)である期間には、モニタ部4はモニタ信号を取得し(モニタ信号を取得する動作を継続し)、第1ステータス信号の信号レベルがハイレベル(第2の信号レベル)である期間には、モニタ部4はモニタ信号を取得しない(モニタ信号を取得しない動作を継続する)。
CPU3は、検査用のプログラムを実行するときに、他のプログラム(例えば、デバック支援用のプログラム)も実行するときがある。従って、モニタ部4は、他のプログラムの実行に起因する内部信号も、モニタ信号として取得してしまうことが起こりうる。不必要な内部信号をモニタ信号として取得してしまうと、テストプログラムのデバッグやLSI1の動作解析を効率的に行うことが妨げられる。
本実施形態によれば、上述のように、モニタ部4は、CPU3がプログラムの実行をしている期間に対応して、LSI1の内部信号をモニタ信号として取得する。従って、プログラムの解析のために不必要なモニタ信号を取得することは抑制され、効率的なプログラムのデバッグ又はハードウェアの動作解析を実現することができる。
[第2の実施の形態]
図8に本実施の形態にかかる半導体集積回路50(LSI50)を含むデバックシステム200を示す。なお、冒頭に述べたように、重複する説明は省略するものとする。
第1の実施の形態と異なる点は、モニタ部4からCPU3に対して第2ステータス信号が与えられる点である。第2ステータス信号は、第1ステータス信号と同様に、ハイレベルとローレベルの2つの信号レベルを有するデジタル信号である。
モニタ制御部14は、取得したあるモニタ信号が設定済みのトリガ条件を満足したとき、第2ステータス信号の信号レベルを変化させることにより、デバッグ制御部10に対してブレーク信号を与える。そして、CPU3は、ブレーク信号を受けて、プログラムの実行を停止する。なお、トリガ条件は、CPU3がプログラムの実行を開始する前にあらかじめデバッガーによってモニタ制御部14に設定される。
以下、図9のタイミングチャートに基づいて、この異なる点について説明する。
時刻t1では、第1の実施の形態と同様に、「プログラムのダウンロード」と「モニタ設定」が行われる。本実施の形態においては、このほか、「トリガ条件の設定」が行われる。すなわち、デバッガーから所定のコマンドがモニタ制御部14に与えられ、トリガ条件がモニタ制御部14に設定される。例えば、あるモニタ信号がローレベルからハイレベルに変化したときの信号レベルの立ち上がりをトリガ条件として設定してもよい。なお、このとき、第2ステータス信号は、ローレベルである。
時刻t2では、第1の実施の形態と同様に、「プログラムの実行」が開始する。また、時刻t3では、第1の実施の形態と同様に、「ステータス信号」が変化する。時刻t4では、第1の実施の形態と同様に、「モニタ信号の取得」が開始する。第1の実施の形態と同様に、時刻t3は時刻t2と実質的に同じタイミングであり、時刻t4は時刻t3と実質的に同じタイミングである。従って、「プログラムの実行」が開始するタイミングと「モニタ信号の取得」が開始するタイミングは、実質的に同じタイミングである。また、いずれのときも、第2ステータス信号は、ローレベルである。
本実施形態においては、時刻t5で、「トリガ条件」が満足される。すなわち、モニタ制御部14は、取得したモニタ信号が、設定済みのトリガ条件を満足したことを検出する。
そして、本実施形態においては、時刻t6で、「第2ステータス信号」の信号レベルが変化する。すなわち、モニタ制御部14は、時刻t5で、取得されたモニタ信号がトリガ条件を満足したことを検出すると、第2ステータス信号の信号レベルをローレベルからハイレベルに変更する。モニタ制御部14は、第2ステータス信号の信号レベルをローレベルからハイレベルに変更することで、取得されたモニタ信号がトリガ条件を満足したことCPU3のデバッグ制御部10に連絡する。すなわち、第2ステータス信号の信号レベルの立ち上がり(信号レベルの変化)は、CPU3によるプログラムの実行を停止させる信号(ブレーク信号)である。図10に、モニタ制御部14からデバッグ制御部10に与えられるブレーク信号を模式的に示す。
時刻t7で、「プログラムの実行」が停止される。すなわち、デバッグ制御部10は、第2ステータス信号がローレベルからハイレベルに変化したこと(ブレーク信号を受けたこと)を検出すると、プログラムの実行を停止するようにCPU3を制御する。そして、CPU3は、プログラムの実行を停止する。
時刻t8では、第1の実施の形態と同様に、「第1ステータス信号」の信号レベルが変化する。すなわち、デバッグ制御部10は、CPU3がプログラムの実行を停止することを検出すると、第1ステータス信号をローレベルからハイレベルに変化させる。
時刻t9では、第1の実施の形態と同様に、「モニタ信号の取得」が停止する。すなわち、モニタ制御部14は、第1ステータス信号がローレベルからハイレベルに変化したこと(信号レベルの立ち上がり)を検出すると、LSI1の内部信号をモニタ信号として取得することを停止する。
なお、時刻t6は、時刻t5と実質的に同じタイミングである。すなわち、「トリガ条件」が満足されたタイミングと、「第2ステータス信号」の信号レベルが変化するタイミングとは、実質的に同じタイミングである。また、時刻t7は、時刻t6と実質的に同じタイミングである。従って、「第2ステータス信号」の信号レベルが変化したタイミングと、「プログラムの実行」が停止するタイミングは、実質的に同じタイミングである。
また、時刻t8は、時刻t7と実質的に同じタイミングである。すなわち、「第1ステータス信号」の信号レベルが変化するタイミングと、「プログラムの実行」が停止するタイミングとは実質的に同じタイミングである。同様に、時刻t9は、時刻t8と実質的に同じタイミングである。すなわち、「モニタ信号の取得」が停止するタイミングと、「第1ステータス信号」の信号レベルが変化するタイミングとは、実質的に同じタイミングである。従って、「プログラムの実行」が停止するタイミングと、「モニタ信号の取得」が停止するタイミングとは、実質的に同じタイミングである。
時刻t10では、第1の実施の形態と同様に、「信号の読み出し」が行われる。すなわち、デバッガーからモニタ部4及びCPU3に対して、これらに蓄積された信号を読み出すためのコマンド(リードコマンド)が与えられる。そして、モニタ部4のトレースメモリ部12に蓄積されたモニタ信号と、CPU3に含まれる各種レジスタに蓄積された信号とは、外部計算装置2に読み込まれる。そして、デバッガーによる処理によって、外部計算装置2に接続される表示部20にモニタ信号の波形が表示される。
上述した説明から明らかなように、モニタ制御部14は、取得するモニタ信号がトリガ条件を満足したとき、第2ステータス信号をローレベルからハイレベルに変更する。すなわち、モニタ制御部14は、第2ステータス信号の信号レベルを変化させることで、モニタ信号がトリガ条件を満足したことをデバッグ制御部10に連絡する。
CPU3のデバッグ制御部10は、モニタ部4のモニタ制御部14から与えられる第2ステータス信号の信号レベルの立ち上がりに基づいて、CPU3によるプログラムの実行を停止させる。上述のように、第2ステータス信号の信号レベルの立ち上がり(信号レベルの変化)は、CPU3によるプログラムの実行を停止させるためのブレーク信号である。
このように本実施の形態では、モニタ信号がトリガ条件を満足したタイミングに同期して、CPU3によるプログラムの実行が停止する。そして、第1の実施の形態と同様に、CPU3によるプログラムの実行の停止に同期して、モニタ部4によるLSI1の内部信号をモニタ信号として取得する動作が停止する。従って、取得するモニタ信号の変化に起因してプログラムの実行及びモニタ信号の取得を停止させることができる。これによって、特にハードウェアの動作解析を効率的に行うことができる。
本発明の技術的範囲は、上述の実施の形態に限定されない。すなわち、モニタ開始信号やモニタ停止信号は、2ビット以上のコマンド信号であっても良い。同様に、ブレーク信号も、2ビット以上のコマンド信号であってもよい。
また、言うまでもなく、上述の実施例にように1つのCPUでLSIを構成する必要はなく、複数のCPUを用いてLSIを構成してもよい。
第1の実施の形態にかかるLSI1の構成を説明するための図である。 デバッガーに関する概略的な説明図である。 LSI1の動作を説明するためのタイミングチャートである。 図3の時刻t1で行われる処理に関する概略的な説明図である。 図3の時刻t2で行われる処理に関する概略的な説明図である。 図3の時刻t4で行われる処理に関する概略的な説明図である。 図3の時刻t5で行われる処理に関する概略的な説明図である。 第2の実施の形態にかかるLSI50の構成を説明するための図である。 LSI50の動作を説明するためのタイミングチャートである。 図9の時刻t6で行われる処理に関する概略的な説明図である。
符号の説明
1 半導体集積回路
2 外部計算装置
3 CPU
4 モニタ部
5 周辺回路
6 メモリ部
7 システムバス
8 通信バス
9 通信ポート
10 デバッグ制御部
11 モニタI/F
12 トレースメモリ部
13 通信I/F
14 モニタ制御部
MS1-MS3 モニタ信号

Claims (14)

  1. プログラムの実行を行う演算処理部と、
    半導体集積回路の内部信号をモニタ信号として取得するモニタ部と、を備え、
    前記モニタ部は、
    前記演算処理部が前記プログラムの実行を開始するとき前記演算処理部から与えられるモニタ開始信号を受けて、半導体集積回路の内部信号をモニタ信号として取得する動作を開始し、
    前記演算処理部が前記プログラムの実行を停止するとき記演算処理部から与えられるモニタ停止信号を受けて、半導体集積回路の内部信号をモニタ信号として取得する動作を停止する、半導体集積回路。
  2. 前記モニタ部は、前記モニタ開始信号及び前記モニタ停止信号を、前記演算処理部から前記モニタ部に与えられる第1ステータス信号の信号レベルの変化によって検出することを特徴とする請求項1記載の半導体集積回路。
  3. 前記演算処理部は、前記モニタ部により取得される前記モニタ信号がトリガ条件を満足したとき前記モニタ部から与えられるブレーク信号を受けて、前記プログラムの実行を停止することを特徴とする請求項1記載の半導体集積回路。
  4. 前記演算処理部は、前記ブレーク信号を、前記モニタ部から前記演算処理部に与えられる第2ステータス信号の信号レベルの変化によって検出することを特徴とする請求項3記載の半導体集積回路
  5. 前記トリガ条件は、前記演算処理部が前記プログラムを実行する前に、あらかじめ前記モニタ部に設定されることを特徴とする請求項3記載の半導体集積回路。
  6. 前記モニタ部は、
    前記内部信号が与えられる第1インターフェイス部と、
    前記モニタ信号が書き込まれるトレースメモリ部と、
    前記内部信号を前記モニタ信号として前記トレースメモリ部に書き込むかどうかを制御するモニタ制御部と、
    を備えることを特徴とする請求項1記載の半導体集積回路。
  7. 前記モニタ部は、
    前記トレースメモリ部に蓄積された前記モニタ信号を出力するための第2インターフェイス部を、さらに備えることを特徴とする請求項6記載の半導体集積回路。
  8. 前記モニタ部は、
    前記内部信号が与えられる第1インターフェイス部と、
    前記モニタ信号が書き込まれるトレースメモリ部と、
    前記内部信号を前記モニタ信号として前記トレースメモリ部に書き込むかどうかを制御するとともに、取得される前記モニタ信号がトリガ条件を満足したとき、前記演算処理部に前記ブレーク信号を与えるモニタ制御部と、
    を備えることを特徴とする請求項3記載の半導体集積回路。
  9. 前記演算処理部は、
    当該演算処理部が前記プログラムの実行を開始するときに、前記モニタ開始信号を前記モニタ部に与え、当該演算処理部が前記プログラムの実行を停止するときに、前記モニタ停止信号を前記モニタ部に与えるデバッグ制御部を備えることを特徴とする請求項1記載の半導体集積回路。
  10. 前記モニタ部は、前記半導体集積回路の前記内部信号を前記モニタ信号として取得するとき、当該モニタ部に含まれるトレースメモリ部に前記モニタ信号を書き込むことを特徴とする請求項1の半導体集積回路。
  11. プログラムの実行を行う演算処理部と、
    半導体集積回路の内部信号をモニタ信号として取得するモニタ部と、を備え、
    前記モニタ部は、
    前記演算処理部が前記プログラムの実行を行っている状態を示すアクティブステータス信号を、前記演算処理部から与えられている間、半導体集積回路の内部信号をモニタ信号として取得し、
    前記演算処理部が前記プログラムの実行を行っていない状態を示すノンアクティブステータス信号を、前記演算処理部から与えられている間、半導体集積回路の内部信号をモニタ信号として取得しない、半導体集積回路。
  12. 前記アクティブステータス信号は、前記演算処理部から前記モニタ部に与えられる第1ステータス信号の第1の信号レベルであり、
    前記ノンアクティブステータス信号は、前記演算処理部から前記モニタ部に与えられる第1ステータス信号の第2の信号レベルであることを特徴とする請求項11記載の半導体集積回路。
  13. 前記演算処理部は、前記モニタ部により取得される前記モニタ信号がトリガ条件を満足したとき前記モニタ部から与えられるブレーク信号を受けて、前記プログラムの実行を停止することを特徴とする請求項11記載の半導体集積回路。
  14. 前記演算処理部は、前記ブレーク信号を、前記モニタ部から前記演算処理部に与えられる第2ステータス信号の信号レベルの変化によって検出することを特徴とする請求項13記載の半導体集積回路
JP2006250486A 2006-09-15 2006-09-15 半導体集積回路 Pending JP2008071227A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006250486A JP2008071227A (ja) 2006-09-15 2006-09-15 半導体集積回路
US11/898,537 US20080072212A1 (en) 2006-09-15 2007-09-13 Semiconductor integrated circuit including a monitor unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006250486A JP2008071227A (ja) 2006-09-15 2006-09-15 半導体集積回路

Publications (1)

Publication Number Publication Date
JP2008071227A true JP2008071227A (ja) 2008-03-27

Family

ID=39190157

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006250486A Pending JP2008071227A (ja) 2006-09-15 2006-09-15 半導体集積回路

Country Status (2)

Country Link
US (1) US20080072212A1 (ja)
JP (1) JP2008071227A (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000332205A (ja) * 1999-05-20 2000-11-30 Mitsubishi Electric Corp プロセッサ内蔵半導体集積回路装置
JP2000347899A (ja) * 1999-06-03 2000-12-15 Nec Corp マイクロコンピュータ
JP2002108647A (ja) * 2000-09-29 2002-04-12 Ricoh Co Ltd トレースメモリを内蔵した半導体装置及びプロセッサ開発支援装置
JP2003323315A (ja) * 2002-02-26 2003-11-14 Pacific Design Kk データ処理装置、プロセッサユニットおよびデバッグユニット
JP2006012064A (ja) * 2004-06-29 2006-01-12 Toshiba Corp トレース装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS622552A (ja) * 1985-06-27 1987-01-08 Matsushita Electric Ind Co Ltd 半導体検査装置および半導体検査方法
JPH0731615B2 (ja) * 1986-04-18 1995-04-10 日本電気株式会社 情報処理装置
US4780874A (en) * 1987-04-20 1988-10-25 Tandem Computers Incorporated Diagnostic apparatus for a data processing system
JPH0193837A (ja) * 1987-10-05 1989-04-12 Nec Corp デバッグ用マイクロプロセッサ
US5491793A (en) * 1992-07-31 1996-02-13 Fujitsu Limited Debug support in a processor chip
US7072818B1 (en) * 1999-11-30 2006-07-04 Synplicity, Inc. Method and system for debugging an electronic system
US7043668B1 (en) * 2001-06-29 2006-05-09 Mips Technologies, Inc. Optimized external trace formats
US20050097519A1 (en) * 2003-11-05 2005-05-05 Larson Lee A. Apparatus and method for dispositioning signal groups returned by a JTAG scan
US7533251B2 (en) * 2003-12-24 2009-05-12 Panasonic Corporation Semiconductor integrated circuit, development support system and execution history tracing method
US7404178B2 (en) * 2004-02-18 2008-07-22 Hewlett-Packard Development Company, L.P. ROM-embedded debugging of computer

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000332205A (ja) * 1999-05-20 2000-11-30 Mitsubishi Electric Corp プロセッサ内蔵半導体集積回路装置
JP2000347899A (ja) * 1999-06-03 2000-12-15 Nec Corp マイクロコンピュータ
JP2002108647A (ja) * 2000-09-29 2002-04-12 Ricoh Co Ltd トレースメモリを内蔵した半導体装置及びプロセッサ開発支援装置
JP2003323315A (ja) * 2002-02-26 2003-11-14 Pacific Design Kk データ処理装置、プロセッサユニットおよびデバッグユニット
JP2006012064A (ja) * 2004-06-29 2006-01-12 Toshiba Corp トレース装置

Also Published As

Publication number Publication date
US20080072212A1 (en) 2008-03-20

Similar Documents

Publication Publication Date Title
US8024614B2 (en) Debugger and debugging method for debugging a system-on-chip device including a microprocessor core
US9037911B2 (en) Debug state machines and methods of their operation
JP5270330B2 (ja) マルチコアマイコンシステムのシミュレーション方法及びシミュレーション装置
JP2008009721A (ja) 評価システム及びその評価方法
US20060161818A1 (en) On-chip hardware debug support units utilizing multiple asynchronous clocks
JP2006178646A (ja) 情報処理装置、情報処理方法、半導体装置、コンピュータプログラム
JP2007310714A (ja) 集積回路装置、デバッグツール、デバッグシステム、マイクロコンピュータ及び電子機器
CN108197063B (zh) Fpga的spi接口主动串行配置方法及装置
JP6667733B2 (ja) シミュレーション装置、シミュレーション方法およびシミュレーションプログラム
JP2008071227A (ja) 半導体集積回路
JP2016091277A (ja) トレースシステムおよびicチップ
US8914274B1 (en) Method and system for instruction set simulation with concurrent attachment of multiple debuggers
JP5850732B2 (ja) 半導体装置及びその制御方法
JP4976817B2 (ja) プログラム処理装置及びプログラム処理方法
CN111694697B (zh) 半导体装置及调试系统
JP2005190112A (ja) マイクロコンピュータ及びそのデバッグ方法
US20210173989A1 (en) Simulation signal viewing method and system for digital product
JP2017199180A (ja) 画像処理装置
JP2006038678A (ja) バーインテストシステム、バーインテスト方法
JP2004061114A (ja) 自己診断試験回路および方法
JP2007328775A (ja) シミュレーション装置、シミュレーション方法及びシミュレーションプログラム
JP2007264822A (ja) マイクロプロセッサシステム
JP2005227958A (ja) シミュレーション解析システム、アクセラレータ装置及びエミュレータ装置
JP2012242904A (ja) デバッグ装置およびデバッグ方法
JP2006171810A (ja) デバッグ制御システム及びその制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090612

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100323

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100519

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110201