JP2009276985A - 半導体集積回路装置 - Google Patents

半導体集積回路装置 Download PDF

Info

Publication number
JP2009276985A
JP2009276985A JP2008127127A JP2008127127A JP2009276985A JP 2009276985 A JP2009276985 A JP 2009276985A JP 2008127127 A JP2008127127 A JP 2008127127A JP 2008127127 A JP2008127127 A JP 2008127127A JP 2009276985 A JP2009276985 A JP 2009276985A
Authority
JP
Japan
Prior art keywords
circuit
bus
debug
programmable logic
internal
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
JP2008127127A
Other languages
English (en)
Inventor
Kei Marume
佳 丸目
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2008127127A priority Critical patent/JP2009276985A/ja
Publication of JP2009276985A publication Critical patent/JP2009276985A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】ソフトウェアの開発や保守におけるデバッグ作業を効率的に行うことのできる半導体集積回路装置を提供する。
【解決手段】半導体集積回路装置1の内部回路10で実行されるソフトウェアのデバッグを行うデバッグ回路2は、インターフェイス部24から入力される機能構成情報によりプログラマブルロジック部21の機能が構成され、デバッグポート22を介して、デバッグに必要な内部回路10の信号端および内部バスがプログラマブルロジック部21へ接続され、プログラマブルロジック部21から出力されてトレースメモリ23に格納されたデータを、インターフェイス部24から外部へ出力する。
【選択図】図1

Description

本発明は、半導体集積回路装置に関する。
近年、LSIには複数のプロセッサやさまざまな専用回路(例えば、音声・映像処理回路、描画回路など)が搭載され、それらが内部バスに接続される構造をとるなど、内部構造が複雑な構成となっている。その結果、LSI開発段階におけるハードウェアバグの修正に時間を要するようになってきた。また、LSIの動作を制御するソフトウェアの開発や保守作業の難しさも増大している。
そこで、従来、LSIにオンチップデバッグ回路を搭載し、ハードウェアバグやソフトウェアバグのデバッグ作業の効率向上を図ることが行われている。
そのようなオンチップデバッグ回路により、ハードウェアバグの修正を行なう手法として、LSIにFPGA(Field Programmable Logic Array)を搭載し、デバッグの進行に応じて、このFPGAへのマッピング内容をソフトウェアデバッグ手段からハードウェアデバッグ手段に変更し、最終的には、ハードウェアのバグを修正したハードウェアデバッグ回路とする、デバッグシステムが提案されている(例えば、特許文献1参照。)。
この提案されたデバッグシステムでは、ハードウェアバグの修正をFPGAで行なえるため、ハードウェアバグの修正に要する時間が短縮される。このような手法は、LSIで実行されるソフトウェアが、予め組み込まれた専用ソフトウェアなど、LSIの開発段階でのみデバッグが行われるソフトウェアである場合には、有用である。
これに対して、LSIの出荷後にユーザ側でソフトウェア開発が行われる場合、そのソフトウェア開発や保守作業を支援するオンチップデバッグ回路が必要となる。
そのようなソフトウェアバグの解析を行うためのオンチップデバッグ回路として、従来、CPUに付帯されるプロセッサデバッグ回路や、内部バスの動作を記録して外部に出力するバスモニタ回路などが用いられている。
プロセッサデバッグ回路は、近年のCPUには標準的に付帯されているものであり、外部からの制御により、プログラムの実行・停止やメモリの読み書きを制御し、実行した命令の履歴を外部へ出力する。
また、バスモニタ回路は、CPUや専用回路からデータが転送される内部バスの動作を記録し、その転送記録を外部に出力する。
このようなソフトウェアデバッグ用の回路をLSIに内蔵する場合、予め、発生する不具合を想定し、その解析に必要な機能が総て実装されていることが望まれる。しかしながら、チップサイズの制約等もあり、従来のオンチップデバッグ回路では、実装できる機能に限界があった。
その結果、例えば、プログラムの実行履歴を取得したい場合、プロセッサデバッグ回路の使用で決められた範囲の条件のデータしか得られないため、特定の条件の実行履歴を見たい場合、その条件より緩い条件で取得した大量のデータの中から目的の箇所を捜し当てるという作業が必要であった。
すなわち、従来のオンチップデバッグ回路を搭載したLSIでは、ソフトウェアの開発や保守におけるデバッグ作業を効率良く行えない、という問題があった。
特開2002−175197号公報 (第3ページ、図3)
そこで、本発明の目的は、ソフトウェアの開発や保守におけるデバッグ作業を効率的に行うことのできる半導体集積回路装置を提供することにある。
本発明の一態様によれば、プログラムされたソフトウェアにより動作が制御される内部回路と、前記内部回路が接続される内部バスと、前記ソフトウェアのデバッグを行うデバッグ回路とを備える半導体集積回路装置であって、前記デバッグ回路が、機能の再構成が可能なプログラマブルロジック手段と、デバッグ時に前記プログラマブルロジック手段との接続が必要となる前記内部回路の信号端および前記内部バスが接続されるデバッグポートと、前記プログラマブルロジック手段から出力されるデータを格納するトレースメモリと、前記プログラマブルロジック手段に対する機能構成情報の入力および前記トレースメモリからのデータの出力を外部との間で行うインターフェイス手段とを有することを特徴とする半導体集積回路装置が提供される。
本発明によれば、ソフトウェアの開発や保守におけるデバッグ作業を効率的に行うことができる。
以下、本発明の実施例を図面を参照して説明する。
図1は、本発明の実施例に係る半導体集積回路装置の構成の例を示すブロック図である。
本実施例の半導体集積回路装置1は、プログラムされたソフトウェアにより動作が制御される内部回路10と、内部回路10内の様々な機能ブロックが接続される内部バスと、
内部回路10で実行されるソフトウェアのデバッグを行うデバッグ回路2とを備える。
内部回路10としては、例えば、複数のプロセッサCPU1およびCPU2、バスマスタ機能を有する専用回路HW1、バススレーブとして動作する専用回路HW2およびHW3、バスを経由せずに専用線で専用回路HW3と通信を行う専用回路HW4、外部メモリ100を制御するメモリ制御回路Memory Controllerなどが含まれているものとする。また、専用回路HW1と内部バスとの間には、マルチプレクサMUXが挿入されているものとする。このマルチプレクサMUXは、デバッグの際、専用回路HW1からの出力に代わってデバッグ回路2からの出力を内部バスへ送出したいときに、使用される。通常、マルチプレクサMUXは、専用回路HW1からの出力を内部バスへ送出する。
ここで、専用回路の例としては、音声・映像処理回路、描画回路などがある。また、バスマスタは、内部バスに対して自ら転送を発生させる回路であり、バススレーブは、バスからの転送要求に対して応答する受動的な回路である。
デバッグ回路2は、機能の再構成が可能なプログラマブルロジック部21と、デバッグ時にプログラマブルロジック部21との接続が必要となる内部回路10の信号端および内部バスが接続されるデバッグポート22と、プログラマブルロジック部21から出力されるデータを格納するトレースメモリ23と、外部からのプログラマブルロジック部21への機能構成情報の入力、およびトレースメモリ23から外部へのデータの出力を行うインターフェイス部24と、を有する。
プログラマブルロジック部21は、外部から入力される機能構成情報に従って、その内部の機能構成を変化させることができる。その代表的な例は、FPGA(Field Programmable Gate Array)やCPLD(Complex Programmable Logic Device)である。
デバッグポート22へは、デバッグ時にモニタが必要になると予想される内部回路10の信号端と、デバッグ時にプログラマブルロジック部21から出力される制御信号の供給先となる内部回路10の信号端、および内部バスが接続される。
プログラマブルロジック部21とデバッグポート22との間の接続も、プログラマブルロジック部21へ入力される機能構成情報に従って、その構成が変更される。
トレースメモリ23は、プログラマブルロジック部21に接続され、デバッグ時にプログラマブルロジック部21から出力されるデータを格納する。トレースメモリ23に格納されたデータは、インターフェイス部24を介して外部へ出力される。
インターフェイス部24としては、JTAGインターフェイスなど、標準的な外部デバッグ装置が接続できるインターフェイスを用いるようにする。
このような本実施例の半導体集積回路装置1では、ソフトウェア開発時のデバッグを行う際、半導体集積回路装置1の出荷後であっても、プログラマブルロジック部21の機能構成を変化させることによって、デバッグの目的に適したデバッグ回路をオンチップ状態で構築することができる。また、半導体集積回路装置1の不具合発生時などの保守作業においても、その不具合解析に適したデバッグ回路をオンチップ状態で構築することができる。
以下、プログラマブルロジック部21における機能再構成の例を、構成例1〜5として、図2〜図6に示す。なお、図2〜図6では、図1で示した各ブロックのうち、それぞれのデバッグ機能に関係する部分のみを記載している。
(構成例1)
図2は、プログラマブルロジック部21の機能構成の第1の例を示すブロック図である。この例では、プログラマブルロジック部21は、内部バスに対する自由度の高いバスモニタとして機能する。
図2に示すプログラマブルロジック部21は、機能構成情報の入力により、内部バスへのアクセスをトレースする条件が設定されたトレース条件設定部211と、内部回路10のCPU1、CPU2および専用回路HW1からそれぞれ出力される外部メモリへのR/W(リード/ライト)信号がデバッグポート22を介して入力されるトレース制御部212と、内部バスに接続されたデバッグポート22とトレースメモリ23との間を結ぶデータ転送部213と、を形成する。
トレース制御部212は、入力された各R/W信号の間でトレース条件設定部211に設定された条件が成立したとき、データ転送部213に対して、デバッグポート22を介して入力される内部バスのデータをトレースメモリ23へ転送するよう指示する。
この指示を受けて、データ転送部213は、内部バスのデータをトレースメモリ23へ転送する。転送された内部バスのデータは、トレースメモリ23に格納され、その後、外部へ出力される。
この構成例では、その時々のデバッグで必要とされるトレース条件をトレース条件設定部211に設定することにより、その目的に応じたバスモニタ機能を実現することができる。
その例を列挙すると、
(1)専用回路HW1が外部メモリ100のある領域にアクセスしたときに、そのアドレスとデータをトレースメモリ23に格納し、外部へ出力する。
(2)専用回路HW1が外部メモリ100にアクセスしている間に、CPU1がメモリ100にアクセスリクエストを出したとき、その情報をトレースメモリ23に格納し、外部へ出力する。
(3)CPU1とCPU2と専用回路HW1が外部メモリ100の同じ領域に書き込みを行ったとき、そのアドレスとデータをトレースメモリ23に格納し、外部へ出力する。
などがある。
上述のバスモニタ機能により、バスマスタである専用回路HW1の不具合、例えば、専用回路HW1が内部バスを長時間独占してCPU1とCPU2の処理が遅延する、外部メモリ100上のCPU1の作業領域に専用回路HW1が誤って書き込みを行ってCPU1上のプログラムが誤動作する、などの現象の解析が容易になる。
(構成例2)
図3は、プログラマブルロジック部21の機能構成の第2の例を示すブロック図である。この例では、プログラマブルロジック部21は、内部バスを介さずに行われる、内部回路10内のローカル通信のモニタを行う。
図3に示すプログラマブルロジック部21は、機能構成情報の入力により、通信モニタ部214を形成する。このとき、通信モニタ部214には、モニタ対象の通信が使用する通信プロトコルに合わせたモニタ論理が構成される。
図3では、内部回路10の専用回路HW3と専用回路HW4との間の通信をモニタする例を示す。その場合、専用回路HW3と専用回路HW4との間の通信線を分岐させ、デバッグポート22を介して通信モニタ部214へ入力する。通信モニタ部214は、取得した通信ログをトレースメモリに格納する。
このローカル通信モニタ機能により、内部回路10内のローカル通信で通信異常が発生したときの解析が容易になる。
上述の構成例1および構成例2では、内部回路10の動作をモニタする例を示したが、次に、デバッグのために内部回路10の動作を制御できるようにプログラマブルロジック部21の機能を構成する例を構成例3〜構成例5として示す。
(構成例3)
図4は、プログラマブルロジック部21の機能構成の第3の例を示すブロック図である。この例では、プログラマブルロジック部21は、内部バスに対して予め設定された条件のアクセスが発生したときに、バスマスタの動作を停止させる制御信号を生成する。
図4に示すプログラマブルロジック部21は、機能構成情報の入力により、内部バスに対するアクセス発生条件が設定されたアクセス条件設定部215と、内部回路10のCPU1、CPU2および専用回路HW1からそれぞれ出力される内部バスへのバスアクセス信号がデバッグポート22を介して入力され、内部バスに対するアクセス状況を監視するバスアクセス監視部216と、専用回路HW1のバスマスタ機能動作を制御するHW1制御信号をデバッグポート22を介して出力する内部回路制御部217と、を形成する。
バスアクセス監視部216は、入力された各バスアクセス信号の間でアクセス条件設定部215に設定された条件が成立したとき、内部回路制御部217に対して、HW1制御信号を出力するよう指示する。
この指示を受けて内部回路制御部217からHW1制御信号が出力されると、専用回路HW1は、バスマスタ機能動作を停止する。
このとき、CPU1に付帯されるプロセッサデバッグ回路CPU1Debugを経由して、専用回路HW1のステータスを読み出すことが可能である。
このようなバスマスタ停止機能を利用することにより、従来に比べて、より瞬時に内部回路10の動作を停止させることができる。その結果、内部バスに対して予め設定された条件のアクセスが発生した時刻近くでの内部回路10の状態を観測することができる。
(構成例4)
図5は、プログラマブルロジック部21の機能構成の第4の例を示すブロック図である。この例では、プログラマブルロジック部21は、内部バスに対して予め設定された条件のアクセスが発生したときに、CPU1に対して割り込みをかけるCPU1割り込み信号を生成する。
本構成例においても構成例3と同様、プログラマブルロジック部21は、機能構成情報の入力により、アクセス条件設定部215と、バスアクセス監視部216と、内部回路制御部217Aと、を形成する。
内部回路制御部217Aは、入力された各バスアクセス信号の間でアクセス条件設定部215に設定された条件が成立したことをバスアクセス監視部216が検出したときに、CPU1割り込み信号を生成し、デバッグポート22を介してCPU1へ出力する。
このCPU1割り込み信号によりCPU1に割り込みがかかったときに、その割り込みルーチンでデバッグプログラムを実行するようにする。これにより、内部バスに対して予め設定された条件のアクセスが発生したとき、その時刻近くの内部回路の状態を観察することができる。
(構成例5)
図6は、プログラマブルロジック部21の機能構成の第5の例を示すブロック図である。この例では、プログラマブルロジック部21は、専用回路HW1に代わってバスマスタとして機能し、予め設定された条件の模擬テストデータを内部バスへ送出する。
図6に示すプログラマブルロジック部21は、機能構成情報の入力により、内部バスへのデータ送出条件が設定された模擬条件設定部218と、専用回路HW1に代わって内部バスへ送出する模擬データをデバッグポート22を介して出力するバスインターフェイス模擬部219と、を形成する。
プログラマブルロジック部21を専用回路HW1に代わるバスマスタとして機能させるときには、バスインターフェイス模擬部219からデバッグポート22を介して出力されている切り替え信号を用いて、専用回路HW1と内部バスとの間に挿入されているマルチプレクサMUXの入力選択の切り替えを行い、内部バスに対するデータの出力元を専用回路HW1からバスインターフェイス模擬部219へ切り替える。
このようにして、プログラマブルロジック部21を専用回路HW1に代わるバスマスタとして機能させることにより、例えば、内部バスに対するアクセス時間を外部から自由に変えることができる。その結果、半導体集積回路装置1の外部から、内部バスが混雑する状況を意図的に生成することができる。これにより、内部バスの転送速度や転送性能に起因する不具合の解析の効率を向上させることができる。
このような本実施例によれば、半導体集積回路で実行するソフトウェアの開発や保守におけるデバッグ作業を行うときに、発生した不具合現象に応じて、デバッグ回路に備えられたプログラマブルロジックで形成する機能を変更し、その不具合の解析に適したデバッグ回路を構成することができる。
これにより、ソフトウェアの開発や保守におけるデバッグ作業を効率的に行うことができる。
本発明の実施例に係る半導体集積回路装置の構成の例を示すブロック図。 本発明の実施例のプログラマブルロジック部の機能構成の第1の例を示すブロック図。 本発明の実施例のプログラマブルロジック部の機能構成の第2の例を示すブロック図。 本発明の実施例のプログラマブルロジック部の機能構成の第3の例を示すブロック図。 本発明の実施例のプログラマブルロジック部の機能構成の第4の例を示すブロック図。 本発明の実施例のプログラマブルロジック部の機能構成の第5の例を示すブロック図。
符号の説明
1 半導体集積回路装置
2 デバッグ回路
10 内部回路
21 プログラマブルロジック部
22 デバッグポート
23 トレースメモリ
24 インターフェイス部
211 トレース条件設定部
212 トレース制御部
213 データ転送部
214 通信モニタ部
215 アクセス条件設定部
216 バスアクセス監視部
217、217A 内部回路制御部
218 模擬条件設定部
219 バスインターフェイス模擬部

Claims (5)

  1. プログラムされたソフトウェアにより動作が制御される内部回路と、前記内部回路が接続されるバスと、前記ソフトウェアのデバッグを行うデバッグ回路とを備える半導体集積回路装置であって、
    前記デバッグ回路が、
    機能の再構成が可能なプログラマブルロジック手段と、
    デバッグ時に前記プログラマブルロジック手段との接続が必要となる前記内部回路の信号端および前記バスが接続されるデバッグポートと、
    前記プログラマブルロジック手段から出力されるデータを格納するトレースメモリと、
    前記プログラマブルロジック手段に対する機能構成情報の入力および前記トレースメモリからのデータの出力を外部との間で行うインターフェイス手段と
    を有することを特徴とする半導体集積回路装置。
  2. 前記デバッグ回路は、
    前記プログラマブルロジック手段が、
    前記インターフェイス手段から入力された前記機能構成情報により、
    前記バスへのアクセスをトレースする条件が設定されたトレース条件設定回路と、
    前記バスに接続された前記デバッグポートと前記トレースメモリとの間を結ぶデータ転送回路とを形成し、
    前記トレース条件設定回路に設定された条件が成立したときに、前記バスのデータを前記データ転送回路を介して前記トレースメモリに格納し、
    前記インターフェイス手段が、
    前記トレースメモリに格納されたデータを外部へ出力する
    ことを特徴とする請求項1に記載の半導体集積回路装置。
  3. 前記デバッグ回路は、
    前記プログラマブルロジック手段が、
    前記インターフェイス手段から入力された前記機能構成情報により、
    前記内部回路内で行われるローカル通信をモニタする通信モニタ回路を形成して、モニタ対象の信号端が接続された前記デバッグポートへ入力されたデータを前記トレースメモリに格納し、
    前記インターフェイス手段が、
    前記トレースメモリに格納されたデータを外部へ出力する
    ことを特徴とする請求項1に記載の半導体集積回路装置。
  4. 前記デバッグ回路は、
    前記プログラマブルロジック手段が、
    前記インターフェイス手段から入力された前記機能構成情報により、
    前記バスへのアクセス条件を監視するバスアクセス監視回路と、
    前記バスアクセス監視回路の出力に応じて前記内部回路の動作を制御する制御信号を生成する制御信号生成回路とを形成し、
    前記制御信号を前記デバッグポートを介して制御対象の内部回路の信号端へ出力し、前記バスアクセス監視回路が所定のアクセス条件を検出したときに、前記制御対象の内部回路の動作を停止させる
    ことを特徴とする請求項1に記載の半導体集積回路装置。
  5. 前記デバッグ回路は、
    前記プログラマブルロジック手段が、
    前記インターフェイス手段から入力された前記機能構成情報により、
    前記内部回路で発生するバス転送要求を模擬するバスインターフェイス模擬回路と、
    前記バスインターフェイス模擬回路に対してバス転送要求発生の模擬条件を設定する模擬条件設定回路とを形成し、
    前記内部回路に代わって、前記バスインターフェイス模擬回路で生成したデータを前記デバッグポートを介して前記バスへ送出する
    ことを特徴とする請求項1に記載の半導体集積回路装置。
JP2008127127A 2008-05-14 2008-05-14 半導体集積回路装置 Pending JP2009276985A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008127127A JP2009276985A (ja) 2008-05-14 2008-05-14 半導体集積回路装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008127127A JP2009276985A (ja) 2008-05-14 2008-05-14 半導体集積回路装置

Publications (1)

Publication Number Publication Date
JP2009276985A true JP2009276985A (ja) 2009-11-26

Family

ID=41442364

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008127127A Pending JP2009276985A (ja) 2008-05-14 2008-05-14 半導体集積回路装置

Country Status (1)

Country Link
JP (1) JP2009276985A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011227608A (ja) * 2010-04-16 2011-11-10 Mitsubishi Electric Corp 電子部品及びデバッグ方法
JP2021026648A (ja) * 2019-08-08 2021-02-22 日本信号株式会社 動作トレース装置
JP7532344B2 (ja) 2019-04-10 2024-08-13 ローム株式会社 半導体装置及びデバッグシステム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011227608A (ja) * 2010-04-16 2011-11-10 Mitsubishi Electric Corp 電子部品及びデバッグ方法
JP7532344B2 (ja) 2019-04-10 2024-08-13 ローム株式会社 半導体装置及びデバッグシステム
JP2021026648A (ja) * 2019-08-08 2021-02-22 日本信号株式会社 動作トレース装置

Similar Documents

Publication Publication Date Title
US6598178B1 (en) Peripheral breakpoint signaler
US9037911B2 (en) Debug state machines and methods of their operation
JP4987182B2 (ja) コンピュータシステム
JP5022262B2 (ja) デバッグ中にツールを使用可能な試験システム及び方法
US9053232B2 (en) Method and apparatus for supporting a unified debug environment
JP2008517370A (ja) データ処理システムと処理装置のキャッシュコヒーレンスを監視する方法
US20140108865A1 (en) Fault support in an emulation environment
JP2010500807A (ja) 電子装置及び通信制御方法
JP2006507586A (ja) 埋め込みシステムの解析装置及び方法
US20070006042A1 (en) Software debug support for cache flush with access to external data location(s) through debug port
JP5163120B2 (ja) デバッグシステム、デバッグ方法、およびプログラム
JP2009276985A (ja) 半導体集積回路装置
JP7381752B2 (ja) ロックステップで動作するプロセッサのモニタリング
US20060179380A1 (en) On-chip electronic hardware debug support units having execution halting capabilities
WO2011125280A1 (ja) デバッグ支援装置、デバッグ支援方法及びデバッグ支援プログラム
US7457999B2 (en) Debug port system for control and observation
JP2009193305A (ja) マルチコアlsi
GB2541215A (en) Debug adapter
JP2001249823A (ja) マイクロコンピュータ開発支援装置
JP2010244376A (ja) ソフトウェア開発装置、及び、ソフトウェア開発装置を用いたデバッグ方法
TWI530782B (zh) 伺服器
JP4344147B2 (ja) コンピュータの拡張機能検査装置
TWI802792B (zh) 偵錯裝置及其操作方法
JP2008152665A (ja) 半導体集積回路の動作解析方法
EP4398109A1 (en) Techniques for debug, survivability, and infield testing of a system-on-a-chip or a system-on-a-package