(57)【要約】  本発明の実施の形態に係るデバッグ制御装置（１０）は、デバッグ対象回路（２０）の記憶装置（２１）へのアクセスを複数の領域に分けて監視し、複数の領域毎のアクセス発生状況を判別するためのメモリリストを生成するリスト生成部（１１）と、メモリリストを参照して、デバッグ対象回路（２０）から出力される観測信号を転送するための記憶装置（２１）の領域を選択する選択部（１２）と、選択部（１２）により選択された記憶装置（２１）の領域に、観測信号を転送する転送制御部（１３）とを備える。これにより、通常動作に使用するＲＡＭとデバッグ用のトレースデータを格納するＲＡＭを共有する構成において、メモリの使用配分を調査することなく、通常動作で使用しない領域にトレースデータを転送することが可能なデバッグ制御回路を提供する。
2013145055.tif 000002
【特許請求の範囲】
【請求項１】
デバッグ対象回路の記憶装置へのアクセスを複数の領域に分けて監視し、前記複数の領域毎のアクセス発生状況を判別するためのメモリリストを生成するリスト生成手段と、
前記メモリリストを参照して、前記デバッグ対象回路から出力される観測信号を転送するための前記記憶装置の領域を選択する選択手段と、
前記選択手段により選択された前記記憶装置の領域に、前記観測信号を転送する転送制御手段と、
を備えるデバッグ制御回路。
【請求項２】
前記観測信号を用いて観測開始タイミングを示す開始トリガや観測終了タイミングを示す終了トリガを検出するトリガ検出手段をさらに備える請求項１に記載のデバッグ制御回路。
【請求項３】
前記開始トリガを基準にインクリメントするタイミングと、前記観測信号を転送するタイミングとを比較し、比較結果に基づいて、前記転送制御手段の前記記憶装置への転送開始タイミングを変更するタイミング調整手段をさらに備える請求項２に記載のデバッグ制御回路。
【請求項４】
前記リスト生成手段は、前記終了トリガを検出するまでの期間で、前記メモリリストを生成し、
前記転送制御手段は、前記リスト生成手段が前記メモリリストを生成した後に、前記開始トリガを検出し、検出した前記開始トリガを基準に前記メモリリストを用いて前記選択手段により選択された領域へ前記観測信号を転送する請求項２又は３に記載のデバッグ制御回路。
【請求項５】
前記リスト生成手段が、前記メモリリストを生成する動作と、
前記転送制御手段が、前記開始トリガを検出し、前記メモリリストを用いて前記選択手段により選択された領域へ前記観測信号を転送する動作とを同時に行うことを特徴とする請求項２又は３に記載のデバッグ制御回路。
【請求項６】
前記トリガ検出手段に、外部から前記開始トリガや前記終了トリガを指定するためのトリガ検出条件を格納するパラメータ設定手段をさらに備える請求項２〜５のいずれか１項に記載のデバッグ制御回路。
【請求項７】
前記リスト生成手段は、
前記記憶装置へのアクセス発生状況を判定し、アクセスが発生した領域の領域番号を生成するアクセス判定回路と、
前記領域番号に基づいて作成される前記メモリリストと、
前記アクセス判定回路と前記選択手段の前記メモリリストへのアクセスを調停する調停回路と、
を備える請求項１〜６のいずれか１項に記載のデバッグ制御回路。
【請求項８】
前記リスト生成手段は、
前記記憶装置へのアクセス発生状況を判定し、アクセスが発生した領域の領域番号を生成するアクセス判定回路と、
前記アクセス判定回路からの領域番号と前記メモリリストからの領域番号を比較し、前記アクセス判定回路から出力される領域番号が前記メモリリストからの領域番号よりも大きい場合に、前記メモリリストを更新する前記リスト更新手段を備える請求項１〜６のいずれか１項に記載のデバッグ制御回路。
【請求項９】
前記リスト生成手段は、前記メモリリストにおいて、前記選択手段により選択される前記記憶装置の領域に前記観測信号の転送に使用された履歴がある場合に、エラー信号を出力するエラー判定回路をさらに備える請求項７又は８に記載のデバッグ制御回路。
【請求項１０】
前記デバッグ対象回路は複数の前記記憶装置を有し、
前記リスト作成手段は、前記アクセス判定回路を前記複数の記憶装置毎に備える請求項７〜９のいずれか１項に記載のデバッグ制御回路。
【請求項１１】
前記デバッグ対象回路は複数の前記記憶装置を有し、
前記リスト作成手段は、前記リスト更新手段を前記前記複数の記憶装置毎に備える請求項８に記載のデバッグ制御回路。
【請求項１２】
前記選択手段は、
前記記憶装置の第１の領域に対応する前記メモリリストを参照して、前記記憶装置の使用状態を判別して、判別結果を出力するカウンタ制御手段と、
前記判別結果に応じて、前記第１の領域が使用領域である場合に、前記第１の領域と異なる第２の領域に対応するアドレス信号を出力するダウンカウンタと、
前記判別結果に応じて、前記第１の領域が未使用領域である場合に、前記前記第１の領域に対応するアドレス値を前記選択手段に出力するアドレスロード手段と、
を備える請求項１〜１１のいずれか１項に記載のデバッグ制御回路。
【請求項１３】
前記選択手段は、
前記転送制御手段の前記観測信号の転送が、前記記憶装置の１領域分完了する毎にカウンタをデクリメントし、当該カウンタ値をアドレス信号として出力するダウンカウンタと、
前記メモリリストから読み出される領域番号と、前記アドレス信号に示される領域番号とを比較する一致判定回路と、
を備える請求項１〜１１のいずれか１項に記載のデバッグ制御回路。
【請求項１４】
記憶装置を備えるデバッグ対象回路と、
前記デバッグ対象回路の観測信号を前記記憶装置へ転送するデバッグ制御回路と、を備え、
前記デバッグ制御回路は、
前記デバッグ対象回路の前記記憶装置へのアクセスを複数の領域に分けて監視し、前記複数の領域毎のアクセス発生状況を判別するためのメモリリストを生成するリスト生成手段と、
前記メモリリストを参照して、前記デバッグ対象回路から出力される観測信号を転送するための前記記憶装置の領域を選択する選択手段と、
前記選択手段により選択された前記記憶装置の領域に、前記観測信号を転送する転送制御手段と、
を備えるデバッグ制御システム。
【請求項１５】
デバッグ対象回路の記憶装置へのアクセスを複数の領域に分けて監視し、前記複数の領域毎のアクセス発生状況を判別するためのメモリリストを生成し、
前記メモリリストを参照して、前記デバッグ対象回路から出力される観測信号を転送するための前記記憶装置の領域を選択し、
選択された前記記憶装置の領域に、前記観測信号を転送するデバッグ制御方法。
【請求項１６】
前記観測信号を用いて観測開始タイミングを示す開始トリガや観測終了タイミングを示す終了トリガを検出し、
前記終了トリガを検出するまでの期間で、前記メモリリストを生成し、
前記リスト生成手段が前記メモリリストを生成した後に、前記開始トリガを検出し、検出した前記開始トリガを基準に前記メモリリストを用いて前記選択手段により選択された領域へ前記観測信号を転送する請求項１５に記載のデバッグ制御方法。
【請求項１７】
前記開始トリガを基準にインクリメントするタイミングと、前記観測信号を転送するタイミングとを比較し、比較結果に基づいて、前記記憶装置への前記観測信号の転送開始タイミングを変更する請求項１５又は１６に記載のデバッグ制御方法。
【請求項１８】
前記メモリリストを生成する動作と、前記開始トリガを検出し、前記メモリリストを用いて前記選択手段により選択された領域へ前記観測信号を転送する動作とを同時に行うことを特徴とする請求項１５又は１６に記載のデバッグ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動作中のＬＳＩに対する入出力情報又はＬＳＩ内部信号をトレースするデバッグ制御技術に関する。
【背景技術】
【０００２】
ＬＳＩ回路の信号路は不可避的に伝播遅延等を伴うため、信号のタイミングのばらつきにより製造後の評価で動作異常（不具合）を生じる場合がある。また、製造前に十分な検証を行う期間がなく、製造後の評価で動作異常を生じる場合もある。不具合が生じた場合には、その原因を究明するためにＬＳＩの信号動作を観測し、デバッグする必要がある。【０００３】
従来のＬＳＩチップのデバッグ制御動作について図３２を参照しながら説明する。図３２に示すように、まず、信号選択部９０５がデバッグ対象回路９０２の観測信号を選択し、トリガ生成部９０３が選択信号から観測開始タイミング（トリガ）を検出する。次に、検出した観測開始タイミングを基準にアドレス生成部９０６がＲＡＭ（Random Access Memory）９０７へのアドレス（Ａｄｄｒｅｓｓ）とライトイネーブル信号（ＷＲＥＮ）を生成し、信号選択部９０５により選択された選択信号をトレース専用のＲＡＭ９０７に格納する。【０００４】
その後、ＲＡＭ９０７にトレースした信号をＣＰＵ（Central Processing Unit）等の外部制御装置９０１からＢＵＳ  ＩＦ９０４を介して読み出してデバックを行う。観測信号のトレース範囲を大きくするには、ＲＡＭの容量を増やすことで対応できる。しかし、ＲＡＭの容量を増やすとＬＳＩ自体の面積が増加し、製造コストが増加することになる。 【０００５】
このような課題を解消することを目的として、トレース用ＲＡＭを他のＲＡＭと共用させる技術が特許文献１に開示されている。図３３に、特許文献１に記載のトレースバック回路の構成を示す。特許文献１のトレースバック回路は、複数のメモリ領域（Ｍ１〜Ｍ４）に分割されたデータ記録用メモリＢ１２と、各メモリ領域にデータを所定のサンプリング周期で順次記録するサンプリング制御回路（Ｂ１３〜Ｂ１６）を備えている。【０００６】
配分表Ｂ１０には、装置状態情報（ＳＴ１〜ＳＴ４）に応じたデータ記録用メモリＢ１０の各メモリ領域の配分比（ＳＲ１〜ＳＲ４）が予め設定されている。メモリ管理回路Ｂ１１は、装置状態情報に基づき配分表Ｂ１０を参照して各メモリ領域への配分比を定め、サンプリング制御回路を介してメモリ領域への記録を管理する。図３４に示すように、配分表にはメモリ毎の配分比が装置状態情報毎に設定されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００３−２７４６９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１では、装置状態情報毎にメモリ領域の使用配分を把握して使用配分に応じた配分表を予め設定する必要があり、メモリの使用配分を十分に熟知してないと配分表を生成することができず、メモリの使用配分の調査等に時間がかかる。また、特許文献１では、メモリ領域ごとにサンプリング制御回路が割り当てられており、配分表に従った割り当て外の領域にデータを転送することができない。【０００９】
このため、配分を誤ると、メモリ領域に未使用領域がない場合は、その領域に割り当てられている信号をサンプリングすることができない、又は、サンプリングによって動作に必要なデータが上書きされる可能性があり、メモリ領域を十分に活用できないという問題が発生する。【００１０】
本発明は、上記の問題を背景としてなされたものであり、通常動作に使用するＲＡＭとデバッグ用のトレースデータを格納するＲＡＭを共有する構成において、メモリ配分の調査工数を削減し、通常動作で使用しない領域にトレースデータを転送することが可能なデバッグ制御回路、方法及びシステムを提供することである。
【課題を解決するための手段】
【００１１】
本発明の一態様に係るデバッグ制御回路は、デバッグ対象回路の記憶装置へのアクセスを複数の領域に分けて監視し、前記複数の領域毎のアクセス発生状況を判別するためのメモリリストを生成するリスト生成部と、前記メモリリストを参照して、前記デバッグ対象回路から出力される観測信号を転送するための前記記憶装置の領域を選択する選択部と、前記選択部により選択された前記記憶装置の領域に、前記観測信号を転送する転送制御部とを備える。【００１２】
本発明の他の態様に係るデバッグ制御システムは、記憶装置を備えるデバッグ対象回路と、前記デバッグ対象回路の観測信号を前記記憶装置へ転送するデバッグ制御回路と、を備え、前記デバッグ制御回路は、前記デバッグ対象回路の前記記憶装置へのアクセスを複数の領域に分けて監視し、前記複数の領域毎のアクセス発生状況を判別するためのメモリリストを生成するリスト生成部と、前記メモリリストを参照して、前記デバッグ対象回路から出力される観測信号を転送するための前記記憶装置の領域を選択する選択部と、前記選択部により選択された前記記憶装置の領域に、前記観測信号を転送する転送制御部と、を備える。【００１３】
本発明の他の態様に係るデバッグ制御方法は、デバッグ対象回路の記憶装置へのアクセスを複数の領域に分けて監視し、前記複数の領域毎のアクセス発生状況を判別するためのメモリリストを生成し、前記メモリリストを参照して、前記デバッグ対象回路から出力される観測信号を転送するための前記記憶装置の領域を選択し、選択された前記記憶装置の領域に、前記観測信号を転送する。
【発明の効果】
【００１４】
本発明によれば、通常動作に使用するＲＡＭとデバッグ用のトレースデータを格納するＲＡＭを共有する構成において、メモリ配分の調査工数を削減し、通常動作で使用しない領域にトレースデータを転送することが可能となる。
【図面の簡単な説明】
【００１５】
【図１】実施の形態に係るデバッグ制御回路の概要を説明するブロック図である。
【図２】実施の形態１に係るデバッグ制御回路の構成を示すブロック図である。
【図３】実施の形態１に係るデバッグ制御回路のリスト生成部の構成を示すブロック図である。
【図４】実施の形態１に係るデバッグ制御回路のリスト生成部のメモリリストの一例を示す図である。
【図５】実施の形態１に係るデバッグ制御回路のＢＡＮＫ選択部の構成を示すブロック図である。
【図６】実施の形態１に係るデバッグ制御方法のフローチャートである。
【図７】実施の形態１に係るデバッグ制御回路のタイミングチャートである。
【図８】実施の形態２に係るデバッグ制御回路のリスト生成部の構成を示すブロック図である。
【図９】実施の形態２に係るデバッグ制御回路のリスト生成部のメモリリストの一例を示す図である。
【図１０】実施の形態２に係るデバッグ制御回路のＢＡＮＫ選択部の構成を示すブロック図である。
【図１１】実施の形態２に係るデバッグ制御方法のフローチャートである。
【図１２】実施の形態２に係るデバッグ制御回路のタイミングチャートである。
【図１３】実施の形態３に係るデバッグ制御回路の構成を示すブロック図である。
【図１４】実施の形態３に係るデバッグ制御回路のリスト生成部の構成を示すブロック図である。
【図１５】実施の形態３に係るデバッグ制御回路のリスト生成部のメモリリストの一例を示す図である。
【図１６】実施の形態３に係るデバッグ制御回路の動作の概要を示す図である。
【図１７】実施の形態３に係るデバッグ制御方法のフローチャートである。
【図１８】実施の形態３に係るデバッグ制御回路のタイミングチャートである。
【図１９】実施の形態４に係るデバッグ制御回路のリスト生成部の構成を示すブロック図である。
【図２０】実施の形態５に係るデバッグ制御回路の構成を示すブロック図である。
【図２１】実施の形態５に係るデバッグ制御回路のリスト生成部の構成を示すブロック図である。
【図２２】実施の形態５に係るデバッグ制御回路のリスト生成部のメモリリストの一例を示す図である。
【図２３】実施の形態６に係るデバッグ制御回路のリスト生成部の構成を示すブロック図である。
【図２４】実施の形態６に係るデバッグ制御回路のリスト生成部のメモリリストの一例を示す図である。
【図２５】実施の形態７に係るデバッグ制御回路のリスト生成部の構成を示すブロック図である。
【図２６】実施の形態７に係るデバッグ制御回路のリスト生成部のメモリリストの一例を示す図である。
【図２７】実施の形態８に係るデバッグ制御回路のリスト生成部の構成を示すブロック図である。
【図２８】実施の形態８に係るデバッグ制御回路のリスト生成部のメモリリストの一例を示す図である。
【図２９】実施の形態９に係るデバッグ制御回路のリスト生成部のメモリリストの一例を示す図である。
【図３０】実施の形態１０に係るデバッグ制御回路の構成を示すブロック図である。
【図３１】実施の形態１０に係るデバッグ制御回路のアクセス調停部のタイミングチャートである。
【図３２】従来のデバッグ装置の構成を示す図である。
【図３３】特許文献１に記載のトレースバック回路の構成を示す図である。
【図３４】特許文献１に記載の配分表である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態について図面を参照しながら説明する。以下の説明は、本発明の実施の形態を説明するものであり、本発明が以下の実施形態に限定されるものではない。説明の明確化のため、以下の記載は、適宜、省略及び簡略化がなされている。又、当業者であれば、以下の実施形態の各要素を、本発明の範囲において容易に変更、追加、変換することが可能である。
【００１７】
本発明は、通常の動作用とトレースデータ格納用のメモリを共有したトレースメモリレスのデバッグ制御装置において、所定のメモリへのアクセスを複数の領域に分けて監視し、未使用領域にトレースデータを転送することを可能としたデバッグ制御技術に関する。
【００１８】
図１を参照して、実施の形態に係るデバッグ制御回路１０の概要について説明する。図１に示すように、デバッグ制御回路１０は、リスト生成部１１、選択部１２、転送制御部１３を備えている。デバッグ制御回路１０は、デバッグ対象回路２０の通常動作用の記憶装置２１にデバッグ対象回路２０からの観測信号をトレースする。
【００１９】
リスト生成部１１は、デバッグ対象回路２０の記憶装置２１へのアクセスを複数の領域に分けて監視し、複数の領域毎のアクセス発生状況を判別するためのメモリリストを生成する。選択部１２は、メモリリストを参照して、デバッグ対象回路２０から出力される観測信号を転送するための記憶装置２１の領域を選択する。転送制御部１３は、選択部１２により選択された記憶装置２１の領域に、観測信号をトレースデータとして転送する。
【００２０】
このように、通常動作で使用する記憶装置の領域中の未使用領域を自動的に調査することでテスト毎に異なるメモリ配分を調査する工数を削減しながら、通常動作で使用しない領域にトレースデータを転送することが可能となる。以下、実施の形態の具体的な例について説明する。
【００２１】
実施の形態１．
実施の形態１に係るデバッグ制御回路の構成について、図２を参照して説明する。図２は、実施の形態１に係るデバッグ制御回路１０１の構成を示すブロック図である。図２に示すように、デバッグ制御回路１０１は、パラメータ設定部１０４、信号選択部１０５、リスト生成部１０６、ＢＡＮＫ選択部１０７、トリガ検出部１０８、転送制御部１０９を備えている。
【００２２】
本発明に係るデバッグ制御回路１０１は、ＬＳＩの所定のデータ処理機能とは別にＬＳＩ内部又は外部に設けられ、動作中のＬＳＩに対する入出力情報又はＬＳＩ内部信号をトレースする機能を有するものである。ここでは、デバッグ制御回路１０１は、デバッグ対象回路１０３の観測信号をトレースして、デバッグ処理を行う。
【００２３】
トレースデータは、デバッグ対象回路１０３に設けられるＲＡＭ１１０に書き込まれる。なお、ＲＡＭ１１０は、外部制御装置１０２からのＲＡＭリード制御信号に基づいて、書き込み、読み出しが実行される、通常動作に用いられるものである。すなわち、ＲＡＭ１１０は、通常動作とトレースデータの格納に共用される。
【００２４】
パラメータ設定部１０４は、信号選択情報を格納する信号選択情報格納部１０４−１、トリガ条件を格納するトリガ条件格納部１０４−２を有する。パラメータ設定部１０４は、ＣＰＵ等の外部制御装置１０２、信号選択部１０５、トリガ検出部１０８に接続されている。
【００２５】
外部制御装置１０２からのレジスタ制御信号に応じて、パラメータ設定部１０４の信号選択情報格納部１０４−１、トリガ条件格納部１０４−２に信号選択情報、開始トリガ条件又は終了トリガ条件がそれぞれ格納される。パラメータ設定部１０４は、信号選択部１０５に対して信号選択情報を出力し、トリガ検出部１０８に対してトリガ条件を出力する。
【００２６】
信号選択部１０５は、デバッグ対象回路１０３から出力される観測信号の中からトレースするＲＡＭのｂｉｔ幅分の信号を選択する。信号選択部１０５は、パラメータ設定部１０４、デバッグ対象回路１０３、トリガ検出部１０８、転送制御部１０９に接続されている。信号選択部１０５は、デバッグ対象回路１０３から入力される観測信号をパラメータ設定部１０４からの信号選択情報に基づいて選択し、選択した信号を転送制御部１０９、トリガ検出部１０８に出力する。
【００２７】
リスト生成部１０６は、デバッグ対象回路１０３のＲＡＭ１１０へのアクセス信号を監視し、ＲＡＭ１１０の使用領域・未使用領域を区別するリストを生成する。リスト生成部１０６は、デバッグ対象回路１０３からのＲＡＭ１１０へのアクセス信号に基づきリストを作成する。
【００２８】
ここで、リスト生成部１０６について、図３を参照して詳細に説明する。図３は、実施の形態１に係るリスト生成部１０６の構成を示すブロック図である。図３に示すように、リスト生成部１０６は、アクセス判定回路１０６−１と調停回路１０６−２とメモリリスト１０６−３を備えている。なお、図３においては、説明のため、リスト生成部１０６を構成しないＢＡＮＫ選択部１０７についても図示している。
【００２９】
アクセス判定回路１０６−１は、デバッグ対象回路１０３のＲＡＭ１１０へのアクセス信号を監視する。アクセス判定回路１０６−１は、アクセス発生時に、デバッグ対象回路１０３から入力されるアクセス信号（アドレス）の下位ｂｉｔを省いたＢＡＮＫ番号と書き込み制御信号を調停回路１０６−２に出力する。
【００３０】
調停回路１０６−２は、アクセス判定回路１０６−１とＢＡＮＫ選択部１０７のメモリリスト１０６−３へのアクセスを調停する。すなわち、調停回路１０６−２は、アクセス判定回路１０６−１からのＢＡＮＫ番号及び書き込み制御信号をメモリリスト１０６−３に伝送するか、メモリリスト１０６−３から読み出したリードデータをＢＡＮＫ選択部１０７へ伝送するかを決定する。
【００３１】
メモリリスト１０６−３は、調停回路１０６−２を介して入力される、アクセス判定回路１０６−１からのＢＡＮＫ番号及び書き込み制御信号に基づいて作成される。また、メモリリスト１０６−３のリードデータは、調停回路１０６−２を介して入力される、ＢＡＮＫ選択部１０７からのアドレス信号のＢＡＮＫ番号に応じて読み出される。
【００３２】
図４に、実施の形態１に係るメモリリスト１０６−３の一例を示す。図４に示すように、メモリリスト１０６−３は、ＢＡＮＫ毎に１ｂｉｔの情報を有している。ＢＡＮＫアクセスが発生した場合、すなわち、当該ＢＡＮＫが使用されている場合は、該当箇所に１が書き込まれる。アクセスが発生しないＢＡＮＫは０である。図４に示す例では、ＢＡＮＫ数が１６の場合であるが、ＢＡＮＫ数は、メモリ容量、１ＢＡＮＫあたりのワード数により異なり、特に限定されない
【００３３】
図２に示すＢＡＮＫ選択部１０７は、生成されたメモリリスト１０６−３からリードデータを読み出し、ＲＡＭ１１０の未使用領域を検出する。図５に、ＢＡＮＫ選択部１０７の構成を示す。図５に示すように、ＢＡＮＫ選択部１０７は、カウンタ制御部１０７−１、ダウンカウンタ１０７−２、アドレスロード部１０７−３を備えている。
【００３４】
カウンタ制御部１０７−１は、メモリリスト１０６−３からのリードデータでＢＡＮＫの使用状態を判別し、判別結果からダウンカウンタ１０７−２の制御を行う。カウンタ制御部１０７−１は、ダウンカウンタ１０７−２、アドレスロード部１０７−３にデクリメントフラグ、ロード信号をそれぞれ出力する。また、カウンタ制御部１０７−１は、転送制御部１０９からの転送完了信号を受信し、転送制御部１０９へトレース完了信号を出力する。
【００３５】
ダウンカウンタ１０７−２は、カウンタ制御部１０７−１からのデクリメントフラグでカウンタをデクリメントする。ダウンカウンタ１０７−２は、カウンタ制御部１０７−１、アドレスロード部１０７−３及びリスト生成部１０６へアドレス信号を出力する。
【００３６】
アドレスロード部１０７−３は、ダウンカウンタ１０７−２のカウンタ値をカウンタ制御部１０７−１からのロード信号に応じてロードする。アドレスロード部１０７−３は、カウンタ制御部１０７−１からのロード信号及びダウンカウンタ１０７−２からのアドレス信号を受信し、転送制御部１０９へ先頭アドレス信号を出力する。
【００３７】
トリガ検出部１０８は、パラメータ設定部１０４のトリガ条件格納部１０４−２の値に従い、観測信号から観測開始タイミングとなるトリガを検出する。トリガ検出部１０８は、後述するパラメータ設定部１０４からの開始トリガ条件及び信号選択部１０５からの選択信号を受信し、開始トリガ状態である場合にトリガを転送制御部１０９へ出力する。
【００３８】
転送制御部１０９は、トリガ発生後に、デバッグ対象回路１０３のＲＡＭ１１０へトレースデータの書き込みを行う。転送制御部１０９は、トリガ検出部１０８から入力されるトリガに応じて、信号選択部１０５からの選択信号をＢＡＮＫ選択部１０７から入力される先頭アドレス信号に基づく転送アドレスに従い、未使用のＲＡＭ１１０へトレースデータとして書き込みを行う。
【００３９】
次に、本実施の形態の全体の動作について図６を参照して詳細に説明する。図６は、実施の形態１に係るデバッグ制御方法を説明するフローチャートである。図６に示すように、デバッグ制御回路１０１の動作には、事前ＢＡＮＫ検索（ステップＳ１−１）と観測信号トレース（ステップＳ１−２）の２つの大きなステップがある。
【００４０】
まず、第一のステップである事前ＢＡＮＫ検索（ステップＳ１−１）について説明する。最初に、パラメータ設定部１０４にＣＰＵ等の外部装置１０２から終了トリガ条件や、信号選択情報が入力され、デバッグ制御回路の動作設定が行われる（ステップＳ１０１）。終了トリガ条件とは、デバッグ信号観測完了となる条件である。信号選択情報とは、デバッグを行うために必要なトレースデータを選択するための設定である。入力された終了トリガ条件や信号選択情報は、トリガ条件格納部１０４―１、信号選択情報格納部１０４−２にそれぞれ格納される。
【００４１】
次に、デバッグ制御回路１０１を起動し（ステップＳ１０２）、その後、デバッグ対象回路１０３を起動する（ステップＳ１０３）。デバッグ対象回路１０３が起動されると、リスト生成部１０６のアクセス判定回路１０６−１は、ＲＡＭ１１０の使用ＢＡＮＫを検出することにより（ステップＳ１０４）、ＲＡＭ１１０へのアクセス発生を監視し、アクセス発生状態であるかを判断する（ステップＳ１０５）。
【００４２】
アクセスが発生した場合（ステップＳ１０５ＹＥＳ）は、リスト生成部１０６のメモリリスト１０６−３にアクセスが発生したＢＡＮＫの使用フラグを立てメモリリスト１０６−３を更新し（ステップＳ１０６）、その後、トリガ条件検出（ステップＳ１０７）に進む。アクセスが発生していない場合（ステップＳ１０５ＮＯ）は、ステップＳ１０６をとばしてトリガ条件検出（ステップＳ１０７）に進む。
【００４３】
トリガ条件検出（ステップＳ１０７）では、信号選択部１０５で選択した選択信号と終了トリガ条件を、トリガ検出部１０８で比較し、終了トリガ発生状態であるかを判断する（ステップＳ１０８）。終了トリガが発生していない場合（Ｓ１０８Ｎｏ）は、使用ＢＡＮＫ検出（ステップＳ１０４）に戻る。終了トリガが発生した場合（Ｓ１０８Ｙｅｓ）は、デバッグ対象回路１０３を停止し（ステップＳ１０９）、デバッグ制御回路１０１を停止する（ステップＳ１１０）。
【００４４】
ステップＳ１１０において、デバッグ制御回路１０１が停止すると第１のステップが終了し、次に第２のステップである観測信号トレース（ステップＳ１−２）に移行する。以下に観測信号トレース（ステップＳ１−２）動作について説明する。
【００４５】
まず、パラメータ設定部１０４にＣＰＵ等の外部装置１０２から開始トリガ条件や、信号選択情報が入力され、デバッグ制御回路の動作設定が行われる（ステップＳ１１１）。開始トリガ条件とは、デバッグ信号観測開始となる条件である。信号選択情報とは、デバッグを行うために必要なトレースデータを選択するための設定である。入力された開始トリガ条件や信号選択情報は、トリガ条件格納部１０４−１、信号選択情報格納部１０４−２にそれぞれ格納される。
【００４６】
その後、デバッグ制御回路１０１を起動し（ステップＳ１１２）、未使用ＢＡＮＫ検索（ステップＳ１１３）が行われる。未使用ＢＡＮＫ検索とは、事前ＢＡＮＫ検索（ステップＳ１−１）で作成したリスト生成部１０６のメモリリスト１０６−３の中から使用されていないＢＡＮＫを見つけることである。メモリ生成部１０６のメモリリスト１０６−３から、ＢＡＮＫ選択部１０７のダウンカウンタ１０７−２から入力されるアドレス信号のＢＡＮＫ番号に対応する値をリードする。
【００４７】
ダウンカウンタ１０７−３からのアドレス信号の初期のＢＡＮＫ番号はＢＡＮＫ番号の最大値である。ＢＡＮＫ番号に従いメモリリスト１０６−３から読み出した値が１、すなわち、当該ＢＡＮＫが使用領域である場合、次のサイクルでカウンタ制御ブロック１０７−１がデクリメントフラグをダウンカウンタ１０７−２に出力する。
【００４８】
ダウンカウンタ１０７−２は、デクリメントフラグに応じてＢＡＮＫ番号をデクリメントし、次のＢＡＮＫの使用状態が確認される。ダウンカウンタ１０７−２からのアドレス信号のＢＡＮＫ番号の値は、メモリリスト１０６−３から０が読み出されるまでデクリメントされる。読み出した値が０であれば、カウンタ制御部１０７−１がロード信号を出力し、当該ロード信号に応じてアドレスロード部１０７−３はダウンカウンタ１０７−２の値をロードし、先頭アドレスとして転送制御部１０８に出力する。
【００４９】
未使用バンク検索が完了すると、デバッグ対象回路１０３を起動する（ステップＳ１１４）。デバッグ対象回路１０３が起動されると、開始トリガ条件の検出が行われる（ステップＳ１１５）。ステップＳ１１５では、信号選択部１０５で選択した信号と開始トリガ条件を、トリガ検出部１０８で比較し、開始トリガ発生状態であるかを判断する（ステップＳ１１６）。
【００５０】
開始トリガが発生していない場合（ステップＳ１１６Ｎｏ）は、開始トリガ検出（ステップＳ１１５）に戻り、次の時間における開始トリガ検出を開始する。開始トリガが発生した場合（ステップＳ１１６Ｙｅｓ）は、信号トレースを行う（ステップＳ１１７）。
【００５１】
ここで、図７を用いて信号トレース（ステップＳ１１７）の動作を詳細に説明する。図７は、実施の形態１に係るデバッグ制御回路のタイミングチャートである。信号トレースは、未使用ＢＡＮＫ検索（ステップＳ１１３）で検出したＢＡＮＫのアドレスを先頭にトレースデータをＲＡＭ１１０に転送することと、次に転送するための使用するＢＡＮＫを検出するための未使用ＢＡＮＫ検索を並列に行う。図７は、未使用ＢＡＮＫ検索で検出したＢＡＮＫ番号が７で１ＢＡＮＫあたりのワード数が８の例を示しているが、これに限定されるものではない。
【００５２】
図７に示すように、トリガパルスが入力された際に、まずＲＡＭ１１０のＢＡＮＫ番号７に対応する領域が未使用（使用フラグ０）であるため、先頭アドレスのＢＡＮＫ番号は７となる。このとき、転送制御部１０９は、トレースデータＤ１を転送制御部１０９からＲＡＭ１１０のＢＡＮＫ番号７に対応する領域へ転送する（Ｔ１０１）。
【００５３】
Ｔ１０２−Ｔ１０５は未使用ＢＡＮＫ検索中となる。未使用ＢＡＮＫ検索中において、ＢＡＮＫ選択部１０７から出力したアドレス信号のＢＡＮＫが使用済（使用フラグ１）である場合（Ｔ１０２−１０４）、ダウンカウンタ１０７−３のＢＡＮＫ番号をデクリメントする動作と、転送制御部１０９からの転送アドレスをインクリメントし、トレースデータＤ２−Ｄ４を転送制御部１０９からＲＡＭ１１０へ転送する動作が同時に行われる。
【００５４】
未使用ＢＡＮＫ検索中のＴ１０５において、使用フラグが０となると、ＢＡＮＫ選択部１０７のアドレスロード部１０７−３にダウンカウンタ１０７−２から出力されるＢＡＮＫ番号３がロードされ、先頭アドレスとして出力される。このとき、未使用ＢＡＮＫ検索が中断される。このとき、同時に、転送制御部１０９の転送アドレスをインクリメントし、トレースデータＤ５を転送制御部１０９からＲＡＭ１１０へ転送する動作が行われる。
【００５５】
未使用ＢＡＮＫ検索中断中（Ｔ１０６−Ｔ１０８）では、転送制御部１０９の転送アドレスをインクリメントし、トレースデータＤ６−Ｄ８を転送制御部１０９からＲＡＭ１１０へ転送する動作が行われる。
【００５６】
その後、転送制御部１０９の転送が１ＢＡＮＫ分の転送を完了した場合（Ｔ１０８）は、転送制御部１０９から転送完了信号がＢＡＮＫ選択部１０７に入力され、これに続くＴ１０９−Ｔ１１１では再度未使用ＢＡＮＫ検索中となり、ＢＡＮＫ番号がデクリメントされる。ＢＡＮＫ選択部１０７から出力したＢＡＮＫ番号が０に到達し（Ｔ１１１）、かつＢＡＮＫ番号０が使用済み（使用フラグ１）である場合は、未使用ＢＡＮＫ検索を終了する。このとき、同時にトレースデータＤ１０−Ｄ１１を転送制御部１０９からＲＡＭ１１０へ転送する動作が行われる（Ｔ１０９−Ｔ１１１）。
【００５７】
また、ＢＡＮＫ番号３に対応する領域への転送制御部１０９の転送が、１ＢＡＮＫ分の転送を完了していない場合は、転送制御部１０９の転送アドレスをインクリメントし、トレースデータＤ１２−Ｄ１６を転送制御部１０９からＲＡＭ１１０へ転送する動作が行われる（Ｔ１１２−Ｔ１１６）。
【００５８】
図６に戻り、信号トレース（ステップＳ１１７）が終了すると、ＲＡＭ１１０の使用ＢＡＮＫのデータ容量に空きがあるかを判断する（ステップＳ１１８）。空きがある場合（Ｓ１１８Ｎｏ）は、信号トレース（ステップＳ１１７）に戻り、次の時間におけるトレースデータの書き込みを行う。ＲＡＭ１１０のデータ容量に空きがない（Ｆｕｌｌ）場合（Ｓ１１８Ｙｅｓ）は、トレース完了（ステップＳ１１９）となり、ＢＡＮＫ選択部１０７から転送制御部１０９へトレース完了信号が入力され、転送制御部１０９からＲＡＭ１１０への転送を終了する。
【００５９】
トレース完了後、デバッグ対象回路１０３を停止し（ステップＳ１２０）、その後、ＲＡＭ１１０へ格納したトレースデータをＣＰＵ等の外部制御装置１０２から読み出し（ステップＳ１２１）、デバッグ制御回路１０１を停止し（ステップＳ１２２）、処理を終了する。なお、観測信号からトレースデータを選択する必要がない場合は、信号選択部１０５はなくても構わない。
【００６０】
このように、本実施の形態によれば、通常の動作用とトレースデータ格納用のメモリを共有したトレースメモリレスのデバッグ制御装置において、観測信号をトレースしながら通常動作に使用するメモリの使用状況を調査して使用・未使用領域のリストを作成し、作成したメモリリストに基づいて、未使用の領域を選択してトレースデータを転送することができる。このため、メモリ配分を予め設定することなく、メモリを有効に活用することが可能となる。
【００６１】
実施の形態２．
実施の形態２に係るデバッグ制御回路について図面を参照して説明する。実施の形態２に係るデバッグ制御回路では、リスト生成部２０６とＢＡＮＫ選択部２０７の内部構成が実施の形態１と異なる。その他の構成については、実施の形態１において説明したものと同様であるため説明を省略する。
【００６２】
図８に、実施の形態２に係るリスト生成部２０６の構成を示す。図８に示すように、実施の形態２に係るリスト生成部２０６は、アクセス判定回路２０６−１、リスト更新部２０６−２、メモリリスト２０６−３を備えている。
【００６３】
アクセス判定回路２０６−１は、デバッグ対象回路１０３のＲＡＭ１１０へのアクセス信号を監視する。アクセス判定回路２０６−１は、アクセス発生時に、アクセス信号のアドレスからＢＡＮＫ番号に変換し、リスト更新部２０６−２に出力する。
【００６４】
リスト更新部２０６−２は、アクセス判定回路２０６−１からのＢＡＮＫ番号とメモリリスト２０６−３からのＢＡＮＫ番号を比較する。アクセス判定回路２０６−１からのＢＡＮＫ番号がメモリリスト２０６−３からのＢＡＮＫ番号よりも大きい場合は、メモリリスト２０６−３にアクセス判定回路２０６−１からのＢＡＮＫ番号を出力する。
【００６５】
メモリリスト２０６−３は、リスト更新部２０６−２からのＢＡＮＫ番号に基づいて更新され、最大ＢＡＮＫ番号を出力する。図９に、メモリリスト２０６−３の一例を示す。図９に示すように、メモリリスト２０６−３は、最大ＢＡＮＫ番号を有し、リスト更新部２０６−２からＢＡＮＫ番号が入力されると、ＢＡＮＫ番号を更新する。メモリリスト２０６−３から読みだされたリードデータは、リスト更新部２０６−２及び図示しないＢＡＮＫ選択部２０７に入力される。
【００６６】
図１０に実施の形態２に係るＢＡＮＫ選択部２０７を示す。図１０に示すように、実施の形態２に係るＢＡＮＫ選択部２０７は、ダウンカウンタ２０７−１、一致判定回路２０７−２を備えている。
【００６７】
ダウンカウンタ２０７−１は、転送制御部１０９から入力されるＢＡＮＫ転送完了信号に応じてカウンタをデクリメントし、デクリメントしたカウンタ値を先頭アドレスとして転送制御部１０９に返す。
【００６８】
一致判定回路２０７−２には、ダウンカウンタ２０７−１からのカウンタ値とメモリリスト２０６−３から読みだされたリードデータとが入力される。一致判定回路２０７−２は、ダウンカウンタ２０７−１のカウンタ値とリスト生成部２０６から入力されるリードデータのＢＡＮＫ番号の比較を行う。また、一致判定回路２０７−２は、トレースが完了した後に、トレース完了信号を転送制御部１０９に出力する。
【００６９】
次に、実施の形態２のデバッグ制御の動作について図１１を参照して説明する。図１１は、実施の形態２に係るデバッグ制御回路１０１の動作を示すフローチャートである。実施の形態２においても、実施の形態１と同様に事前ＢＡＮＫ検索（ステップＳ２−１）と観測信号トレース（ステップＳ２−２）の２つの大きなステップがある。
【００７０】
まず、第１のステップである事前ＢＡＮＫ検索（ステップＳ２−１）動作について説明する。パラメータ設定部１０４にＣＰＵ等の外部装置１０２から終了トリガ条件や、信号選択情報が入力され、デバッグ制御回路の動作の設定が行われる（ステップＳ２０１）。終了トリガ条件とは、デバッグ信号観測完了となる条件である。信号選択情報とは、デバッグを行うために必要なトレースデータを選択するための設定である。入力された終了トリガ条件、信号選択情報は、トリガ条件格納部１０４−１と信号選択情報格納部１０４−２にそれぞれ格納される。
【００７１】
次に、デバッグ制御回路１０１を起動し（ステップＳ２０２）、その後、デバッグ対象回路１０３を起動する（ステップＳ２０３）。デバッグ対象回路１０３が起動されると、リスト生成部２０６のアクセス判定回路２０６−１は、ＲＡＭ１１０の使用ＢＡＮＫを検出することにより（ステップＳ２０４）、ＲＡＭ１１０へのアクセス発生を監視し、アクセス発生状態であるかを判断する（ステップＳ２０５）。
【００７２】
ＲＡＭ１１０へのアクセスが発生していない場合（ステップＳ１０５Ｎｏ）は、ステップＳ２０６、Ｓ２０７をとばして、トリガ条件検出（ステップＳ２０８）に進む。一方、ＲＡＭ１１０へのアクセスが発生した場合（ステップＳ１０５Ｙｅｓ）は、リスト生成部２０６のリスト更新部２０６−２でメモリリスト２０６−３のＢＡＮＫ番号とアクセス判定回路２０６−１のＢＡＮＫ番号の大小判定を行う（ステップＳ２０６）。
【００７３】
アクセス判定回路２０６−１からのＢＡＮＫ番号がメモリリスト２０６−３からのＢＡＮＫ番号以下である場合は、ステップＳ２０７を飛ばして、トリガ検出（ステップＳ２０８）に進む。アクセス判定回路２０６−１からのＢＡＮＫ番号がメモリリスト２０６−３からのＢＡＮＫ番号よりも大きい場合は、メモリリスト２０６−３のＢＡＮＫ番号をアクセス判定回路２０６−１からのＢＡＮＫ番号に更新し（Ｓ２０７）、トリガ検出（ステップＳ２０８）に進む。
【００７４】
ステップＳ２０８では、信号選択部１０５で選択した選択信号と終了トリガ条件をトリガ検出部１０８で比較し、終了トリガ発生状態であるかを判断する（ステップＳ２０９）。トリガが発生していない場合（Ｓ２０９Ｎｏ）は、使用ＢＡＮＫ検出（ステップＳ２０４）に戻る。トリガが発生した場合（Ｓ２０９Ｙｅｓ）は、デバッグ対象回路１０３を停止し（ステップＳ２１０）、デバッグ制御回路１０１を停止する（ステップＳ２１１）。
【００７５】
ステップＳ２１１において、デバッグ対象回路１０３が停止すると第１のステップが終了し、次に第２のステップである観測信号トレース（ステップＳ２−２）に移行する。以下に観測信号トレース動作（ステップＳ２−２）について説明する。
【００７６】
パラメータ設定部１０４にＣＰＵ等の外部装置外部制御装置１０２から開始トリガ条件や信号選択情報が入力され、デバッグ制御回路の動作の設定が行われる（ステップＳ２１２）。開始トリガ条件とは、デバッグ信号観測開始となる条件である。信号選択情報とは、デバッグを行うために必要なトレース信号を選択するための設定である。入力された開始トリガ条件、信号選択情報は、トリガ条件格納部信号選択情報格納部１０４−１とトリガ条件格納部１０４−２にそれぞれ格納される。
【００７７】
次に、デバッグ制御回路１０１を起動し（ステップＳ２１３）、その後、デバッグ対象回路１０３を起動する（ステップＳ２１４）。デバッグ対象回路１０３が起動されると、開始トリガ検出を行う。まずは、信号選択部２０５で選択した信号と開始トリガ条件を、トリガ検出部１０８で比較し（ステップＳ２１５）、開始トリガ発生状態であるかを判断する（ステップＳ２１６）。
【００７８】
開始トリガが発生していない場合（ステップＳ２１６Ｎｏ）は、開始トリガ検出（ステップＳ２１５）に戻り、次の時間におけるトリガ検出を開始し、開始トリガが発生した場合は信号トレース（ステップＳ２１７）を行う。
【００７９】
次に、図１２を用いて信号トレース（ステップＳ２１７）の動作を詳細に説明する。図１２は、実施の形態２に係るデバッグ制御回路のタイミングチャートである。信号トレースは、次に転送するための使用するＢＡＮＫを検出するための未使用ＢＡＮＫ検索と未使用ＢＡＮＫ検索で検出したＢＡＮＫのアドレスを先頭にトレースデータをＲＡＭ１１０に転送することを並列して行う。
【００８０】
なお、図１２では、ＢＡＮＫ数が１６で１ＢＡＮＫあたりのワード数が８の例を示しており、事前ＢＡＮＫ検索で検索した最大ＢＡＮＫ番号が１５の場合を示しているが、この例に限定されない。
【００８１】
図１２に示すように、トリガパルス発生時、ダウンカウンタ２０７−１のカウンタ値は１５となっている。このとき、トレースデータＤ１は、転送制御部１０９からＲＡＭ１１０のＢＡＮＫ番号１５の領域へ転送される（Ｔ２０１）。
【００８２】
トリガパルス発生後のＴ２０２では、ダウンカウンタ２０７−１の値をデクリメントする動作と、転送制御部１０９転送アドレスをインクリメントしてトレースデータＤ２を転送制御部１０９からＲＡＭ１１０へ転送する動作が行われる。
【００８３】
ダウンカウンタ２０７−１の値をデクリメントした後、転送制御部１０９の転送アドレスをインクリメントし、トレースデータＤ２−Ｄ８を転送制御部１０９からＲＡＭ１１０へ順次転送する動作が行われる（Ｔ２０３−Ｔ２０８）。
【００８４】
１ＢＡＮＫ分の転送完了後、ダウンカウンタ２０７−１のカウンタ値を転送制御部１０９の先頭アドレスとしてロードし、トレースデータＤ９を転送制御部１０９からＲＡＭ１１０へ転送する動作が行われる（Ｔ２０９）。
【００８５】
ダウンカウンタ２０７−１のカウンタ値を転送制御部１０９の先頭アドレスとしてロードした次のサイクルでは、ダウンカウンタ２０７−１の値をデクリメントする動作と転送制御部１０９の転送アドレスをインクリメントし、トレースデータＤ１０を転送制御部１０９からＲＡＭ１１０へ転送する動作が行われる（Ｔ２１０）。
【００８６】
ダウンカウンタ２０７−１の値をデクリメントした後、転送制御部１０９の転送アドレスをインクリメントし、トレースデータＤ１１Ｄ１６を転送制御部１０９からＲＡＭ１１０へ転送する動作が行われる（Ｔ２１１−Ｔ２１６）。
【００８７】
信号トレース（ステップＳ２１７）が終了すると、ＲＡＭ１１０の使用ＢＡＮＫのデータ容量に空きがあるかを判断する（ステップＳ２１８）。空きがある場合（Ｓ２１８Ｎｏ）は、信号トレース（ステップＳ２１７）に戻り、次の時間におけるトレースデータの書き込みを行う。ＲＡＭ２１０のデータ容量に空きがない（Ｆｕｌｌ）場合（Ｓ２１８Ｙｅｓ）は、ＢＡＮＫ選択部２０７から転送制御部１０９へトレース完了信号が入力されトレース完了となり転送制御部１０９からＲＡＭ１１０への転送を終了する（ステップＳ２１９）。
【００８８】
トレース完了後、デバッグ対象回路１０３を停止し（ステップＳ２２０）、その後、ＲＡＭ１１０へ格納したトレースデータをＣＰＵ等の外部制御装置１０２から読み出し（ステップＳ２２１）、デバッグ制御回路１０１を停止し（ステップＳ２２２）、処理を終了する。なお、観測信号からトレースデータを選択する必要がない場合は、信号選択部１０５はなくても構わない。
【００８９】
実施の形態３．
実施の形態３に係るデバッグ制御回路３０１について図１３を参照して説明する。図１３は、実施の形態３に係るデバッグ制御回路３０１の構成を示す図である。なお、図１３において、図２と同一の構成要素には同一の符号を付している。
【００９０】
図１３に示すように、実施の形態３に係るデバッグ制御回路３０１では、実施の形態１に示すデバッグ制御回路１０１の構成に加えて、タイミング調整部１１１が追加されている。また、パラメータ設定部３０４には、信号選択情報格納部３０４−１、トリガ条件格納部３０４−２に加えて、タイミング調整部１１１を制御するためにタイミング情報格納部３０４−３が追加されている。
【００９１】
タイミング調整部１１１は、トリガを検出した後、タイミング情報格納部３０４−３に格納されている値だけタイミングを遅延させ、ＲＡＭ１１０にトレースデータを転送するタイミングを調整する。タイミング調整部１１１は、パラメータ設定部３０４とトリガ検出部１０８からの信号を入力とし、転送制御部１０９にタイミング調整信号を出力する。
【００９２】
また、リスト生成部３０６の内部構成が第１の実施形態と異なる。その他の構成については、実施の形態１において説明したものと同様であるため説明を省略する。リスト生成部３０６は図１４に示されるように、アクセス判定回路３０６−１、調停回路３０６−２、メモリリスト３０６−３、エラー判定回路３０６−４を備えている。
【００９３】
アクセス判定回路３０６−１は、デバッグ対象回路１０３のＲＡＭ１１０へのアクセス信号を監視する。アクセス判定回路３０６−１は、アクセス発生時に、デバッグ対象回路１０３から入力されるアクセス信号（アドレス）の下位ｂｉｔを省いたＢＡＮＫ番号と書き込み制御信号を調停回路３０６−２に出力する。
【００９４】
調停回路３０６−２は、アクセス判定回路３０６−１とＢＡＮＫ選択部１０７のメモリリスト３０６−３へのアクセスを調停する。すなわち、調停回路３０６−２は、アクセス判定回路３０６−１からのＢＡＮＫ番号及び書き込み制御信号をメモリリスト３０６−３に伝送するか、メモリリスト３０６−３から読み出したリードデータをＢＡＮＫ選択部１０７へ伝送するかを決定する。
【００９５】
メモリリスト３０６−３は、調停回路３０６−２を介して入力されたアクセス判定回路３０６−１からのＢＡＮＫ番号及び書き込み制御信号に基づいて作成される。また、メモリリスト３０６−３のリードデータは、調停回路３０６−２を介して入力される、ＢＡＮＫ選択部１０７からのアドレス信号のＢＡＮＫ番号に応じて読み出される。
【００９６】
エラー判定回路３０６−４は、パラメータ設定部１０４、調停回路３０６−２及びメモリリスト３０６−３に接続されている。エラー判定回路３０６−４は、アクセス判定回路３０６−１から入力されたＢＡＮＫ番号によりメモリリスト３０６−３を更新する際に、当該ＢＡＮＫ信号に対応するＢＡＮＫがトレースで使用履歴がある場合に、パラメータ設定部１０４にエラー信号を出力する。
【００９７】
図１５に、メモリリスト３０６−３の一例を示す。図１５に示すように、メモリリスト３０６−３は、ＢＡＮＫ毎に２ｂｉｔの情報を有している。アクセス判定回路３０６−１において、ＲＡＭ１１０のＢＡＮＫにアクセスが発生したと判定される場合は、該当ＢＡＮＫのｂｉｔ（０）に１が書き込まれ、トレースデータの書き込みに使用された場合は、該当ＢＡＮＫのｂｉｔ（１）に１が書き込まれる。アクセスが発生しないＢＡＮＫは０である。なお、図１５では、ＢＡＮＫ数が８の例について示しているが、ＢＡＮＫ数はメモリ容量１ＢＡＮＫあたりのワード数によって異なり、これに限定されない。
【００９８】
次に、実施の形態３に係るデバッグ制御回路３０１の動作について、図１６を参照して説明する。図１６は、実施の形態３に係るデバッグ制御回路３０１の動作の概要を説明する図である。実施の形態３では、実施の形態１、２の２つの大きなステップとは異なり、１つのステップで動作する。実施の形態３では、事前ＢＡＮＫ検索は行われず、図１６に示すようにデバッグ対象回路１０３のＲＡＭ１１０へのアクセスを監視しながら、観測信号トレースを行う。
【００９９】
まず、ＲＡＭ１１０へのアクセス監視動作について説明する。デバッグ制御回路３０１を起動するとリスト生成部３０６のアクセス判定回路３０６−１がＲＡＭ１１０のアクセスを監視する（Ｔ３１）。アクセスが発生すると、メモリリスト３０６−３の該当ＢＡＮＫのｂｉｔ（０）に１が書き込まれる。アクセス監視は、トレース終了（Ｔ３５）まで継続される。アクセス監視と並列にＢＡＮＫ選択部１０７が未使用ＢＡＮＫ検索を行う。
【０１００】
未使用ＢＡＮＫ検索中に、ＢＡＮＫ選択部１０７がメモリリスト３０６−３からリードした値のｂｉｔ（１）が０であることを検出すると、トレースデータを転送する領域として使用するために、メモリリスト３０６−３の該当ＢＡＮＫのｂｉｔ（１）に１を書き込む。
【０１０１】
トレースデータを転送した（ｂｉｔ（１）が１である）領域にアクセスが発生した場合は、メモリリスト３０６−３の該当ＢＡＮＫには１１を書き込まれている。１１が書き込まれると、エラー判定回路３０６−４は、エラーアクセスが発生したと判断しエラー信号を出力する。
【０１０２】
続いて、図１７を用いて、実施の形態３に係るデバッグ制御回路３０１の観測信号トレースの動作を説明する。パラメータ設定部３０４にＣＰＵ等の外部装置１０２から開始トリガ条件や、信号選択情報が入力され、デバッグ制御回路の動作設定が行われる（ステップＳ３０１）。開始トリガ条件とは、デバッグ信号観測開始となる条件である。信号選択情報とは、デバッグを行うために必要な観測信号を選択するための設定である。入力された開始トリガ条件や、信号選択情報は、トリガ条件格納部３０４−１と信号選択情報格納部３０４−２にそれぞれ格納される。
【０１０３】
次に、デバッグ制御回路３０１を起動し（ステップＳ３０２）、その後、未使用ＢＡＮＫ検索（ステップＳ３０３）を行う。初回検索時はアクセスが発生していないため、ＢＡＮＫ選択部１０７は、ダウンカウンタ１０７−２の初期値であるＢＡＮＫ番号の最大値を先頭アドレスとして転送制御部１０９に出力する。
【０１０４】
未使用ＢＡＮＫ検索が完了すると、デバッグ対象回路を起動し（ステップＳ３０４）、その後、開始トリガ検出を行う（ステップＳ３０５）。まずは、デバッグ対象回路１０３から入力される観測信号を信号選択部１０５で選択し、選択した信号と開始トリガ条件をトリガ検出部１０８で比較する。
【０１０５】
次に、開始トリガ発生状態であるかを判断する（ステップＳ３０６）。トリガが発生していない場合（ステップＳ３０６Ｎｏ）は、開始トリガ検出（ステップＳ３０５）に戻り、次の時間におけるトリガ検出を開始する。トリガが発生した場合（ステップＳ３０６Ｙｅｓ）は、トリガを基準にインクリメントするタイミング調整部１１１のカウンタとトレースデータを転送するタイミング情報を比較し（ステップ１０７）、一致状態であるかを判断する（ステップＳ３０８）。
【０１０６】
一致していない場合は、タイミング情報格納部３０４−３に格納されている値だけタイミングを遅延させ、ＲＡＭ１１０にトレースデータを転送するタイミングを調整し、再度タイミング比較（ステップＳ１０７）に戻る。タイミング調整部１１１のカウンタとトレースデータを転送するタイミング情報とが一致した場合は、信号トレース（ステップＳ３０９）を行う。
【０１０７】
次に、図１８を用いて信号トレース（ステップＳ３０９）の動作を詳細に説明する。信号トレースは、未使用ＢＡＮＫ検索（ステップＳ３０３）で検出したＢＡＮＫのアドレスを先頭にトレースデータをＲＡＭ１１０に転送することと、次にトレースデータの転送に使用するＢＡＮＫを検出する未使用ＢＡＮＫ検索を並列に行う。図１８は、未使用ＢＡＮＫ検索で検出したＢＡＮＫ番号が７で１ＢＡＮＫあたりのワード数が８の場合を示しているが、これに限定されるものではない。
【０１０８】
図１８に示すように、トリガパルスが入力された際に、まずＢＡＮＫ番号７が未使用（使用フラグ０）であるため、先頭アドレスのＢＡＮＫ番号が７となる。このとき、転送制御部１０９は、トレースデータを転送制御部１０９からＲＡＭ１１０のＢＡＮＫ番号７に対応する領域へ転送する（Ｔ３０１）。
【０１０９】
Ｔ３０２−Ｔ３０５は未使用ＢＡＮＫ検索中となる。未使用ＢＡＮＫ検索中において、ＢＡＮＫ選択部１０７から出力したアドレス信号のＢＡＮＫが使用済（使用フラグが１）である場合（Ｔ１０２−１０４）、ダウンカウンタ１０７−３のＢＡＮＫ番号をデクリメントする動作と、転送制御部１０９からの転送アドレスをインクリメントし、トレースデータを転送制御部１０９からＲＡＭ１１０へ転送する動作が行われる。
【０１１０】
未使用ＢＡＮＫ検索中のＴ３０５において、使用フラグが０となると、ＢＡＮＫ選択部１０７のアドレスロード部１０７−３にダウンカウンタ１０７−２から出力されるＢＡＮＫ番号３がロードされ、先頭アドレスとして出力される。このとき、書き込み制御信号に応じて、リスト生成部３０６のメモリリスト３０６−３の該当ＢＡＮＫのｂｉｔ（１）に１を書き込むと共に、ｂｉｔ（０）に０を書き込み、未使用ＢＡＮＫ検索を中断する。すなわち、メモリリスト３０６−３には、"０１"の２データが書き込まれる。また、転送制御部１０９の転送アドレスをインクリメントし、トレースデータを転送制御部１０９からＲＡＭ１１０へ転送する動作が行われる（Ｔ３０５）。
【０１１１】
未使用ＢＡＮＫ検索中断中では、転送制御部１０９の転送アドレスをインクリメントし、１ＢＡＮＫ分のトレースデータの転送が完了するまで、転送制御部１０９からＲＡＭ１１０へ転送する動作が行われる（Ｔ３０６−Ｔ３０８）。
【０１１２】
その後、転送制御部１０９の転送が１ＢＡＮＫ分の転送を完了（Ｔ１０８）した後、転送制御部１０９から転送完了信号がＢＡＮＫ選択部１０７に入力され、これに続くＴ３０９−Ｔ３１１では未使用ＢＡＮＫ検索中となり、ＢＡＮＫ番号が再度デクリメントされる。また、ＢＡＮＫ選択部１０７から出力される先頭アドレス３が転送制御部１０９にロードされ、トレースデータを転送制御部１０９からＲＡＭ１１０のＢＡＮＫ番号３に対応する領域へ転送する動作が行われる（Ｔ３０９−Ｔ３１１）。
【０１１３】
ＢＡＮＫ選択部１０７から出力したＢＡＮＫ番号が０に到達し（Ｔ３１１）、かつＢＡＮＫ番号０が使用済み（使用フラグ１）である場合は、未使用ＢＡＮＫ検索を終了する。このとき、同時にトレースデータＤを転送制御部１０９からＲＡＭ１１０へ転送する動作が行われる。
【０１１４】
また、ＢＡＮＫ番号３に対応する領域への転送制御部１０９の転送が、１ＢＡＮＫ分の転送を完了していない場合は、転送制御部１０９の転送アドレスをインクリメントし、トレースデータを転送制御部１０９からＲＡＭ１１０へ転送する動作が行われる（Ｔ３１２−Ｔ３１６）。
【０１１５】
図１７に戻り、信号トレース（ステップＳ３０９）が終わると、リスト生成部３０６のエラー判定回路３０６−４では、エラーが発生しているかどうかを判断する（ステップＳ３１０）。エラーが発生していない場合（ステップＳ３１０Ｎｏ）は、ＲＡＭ１１０の使用ＢＡＮＫのデータ容量に空きがあるかを判断する（ステップＳ３１１）。ＲＡＭ１１０の使用ＢＡＮＫに空きがある場合は、信号トレース（ステップＳ３０９）に戻り、次の時間の信号トレースを行う。
【０１１６】
ＲＡＭ１１０の使用ＢＡＮＫのデータ容量に空きがない場合（ステップＳ３１１Ｙｅｓ）は、トレース完了（ステップＳ３１２）となり、転送制御部１０９からＲＡＭ１１０への転送を終了する。その後、デバッグ対象回路１０３を停止する（ステップＳ３１３）。デバッグ対象回路１０３の停止後、ＲＡＭ１１０へ格納したトレースデータをＣＰＵ等の外部制御装置１０２から読み出し（ステップＳ３１４）、デバッグ制御回路３０１を停止し（ステップＳ３１５）、処理を終了する。
【０１１７】
次に、エラーが発生した場合（ステップＳ３１０Ｙｅｓ）の再開方法について説明する。エラー発生（ステップＳ３１０Ｙｅｓ）後、ＣＰＵ等の外部制御装置１０２からメモリリスト３０６−３をリードし、エラーが発生したＢＡＮＫとエラーが発生せずにトレースデータを転送したＢＡＮＫを調査する。
【０１１８】
ここでは、正常に転送に成功したＢＡＮＫが２ＢＡＮＫであるとする。次に、ＣＰＵ等の外部制御装置１０２から正常転送した２ＢＡＮＫ分のデータをＲＡＭ１１０から読み出し（ステップＳ３１４）、デバッグ制御回路３０１を停止する（ステップＳ３１５）。
【０１１９】
その後に、図１７のフローチャートの動作を再度行うが、デバッグ制御回路の動作設定（ステップＳ３０１）でパラメータ設定ブロック３０４のタイミング情報格納部に２を設定する点が、エラー発生前に行ったフローとは異なる。実施構成１と同様に複数回デバッグシーケンスを行うことになるが、本実施構成の場合、途中から開始することでトレース範囲を拡大することが可能となる。
【０１２０】
実施の形態４．
実施の形態４に係るデバッグ制御回路について図１９を参照して詳細に説明する。実施の形態４では、リスト生成部４０６の構成が実施の形態３と異なる。また、ＢＡＮＫ選択部は、実施の形態２に示したＢＡＮＫ選択部２０７と同様である。その他の構成については同じであるため、説明は省略する。
【０１２１】
図１９は、実施の形態４に係るデバッグ制御回路のリスト生成部４０６の構成を示す図である。図１９に示すように、リスト生成部４０６は、アクセス判定回路４０６−１、リスト更新部４０６−２、メモリリスト４０６−３、エラー判定回路４０６−４を備えている。
【０１２２】
アクセス判定回路４０６−１は、デバッグ対象回路１０３のＲＡＭ１１０へのアクセス信号を監視する。アクセス判定回路４０６−１は、アクセス発生時に、デバッグ対象回路１０３から入力されるアクセス信号（アドレス）からＢＡＮＫ番号に変換し、リスト更新部４０６−２に出力する。
【０１２３】
リスト更新部４０６−２は、アクセス判定回路４０６−１からのＢＡＮＫ番号とメモリリスト４０６−３からのＢＡＮＫ番号を比較する。アクセス判定回路４０６−１からのＢＡＮＫ番号がメモリリスト４０６−３からのＢＡＮＫ番号よりも大きい場合は、メモリリスト４０６−３にアクセス判定回路４０６−１からのＢＡＮＫ番号を出力する。
【０１２４】
メモリリスト４０６−３は、リスト更新部４０６−２からのＢＡＮＫ番号に基づいて更新され、最大ＢＡＮＫ番号を出力する。なお、メモリリスト４０６−３は、図９に示す例と同様であり、メモリリスト４０６−３は最大ＢＡＮＫ番号を有し、リスト更新部４０６−２からＢＡＮＫ番号が入力されると、ＢＡＮＫ番号を更新する。メモリリスト４０６−３から読みだされたリードデータは、リスト更新部４０６−２、エラー判定回路４０６−４、及び図示しないＢＡＮＫ選択部２０７に入力される。
【０１２５】
エラー判定回路４０６−４は、パラメータ設定部１０４、メモリリスト４０６−３及びＢＡＮＫ選択部２０７に接続されている。エラー判定回路４０６−４は、アクセス判定回路４０６−１から入力されたＢＡＮＫ番号によりメモリリスト４０６−３を更新する際に、当該ＢＡＮＫ信号に対応するＢＡＮＫがトレースで使用履歴がある場合に、パラメータ設定部３０４にエラー信号を出力する。
【０１２６】
次に、実施の形態４に係るデバッグ制御回路の動作について説明する。実施の形態４の動作は、実施の形態３と同様に、事前検索は行われず、デバッグ対象回路１０３のＲＡＭ１１０へのアクセスを監視しながら、観測信号トレースを行う。実施の形態４の動作は、上述した図１６に示すものと同様である。まず、ＲＡＭ１１０へのアクセス監視動作について図１６を用いて説明する。
【０１２７】
デバッグ制御回路３０１を起動するとリスト生成部４０６のアクセス判定回路４０６−１がＲＡＭ１１０のアクセスを監視する（Ｔ３１）。アクセスが発生した場合は、リスト生成部４０６のリスト更新部４０６−２でメモリリスト４０６−３のＢＡＮＫ番号とアクセス判定回路４０６−１のＢＡＮＫ番号の大小判定が行われる。
【０１２８】
アクセス判定回路４０６−１のＢＡＮＫ番号の方がメモリリスト４０６−３のＢＡＮＫ番号よりも大きい場合は、リスト生成部４０６のメモリリスト４０６−３のＢＡＮＫ番号をアクセス判定回路４０６−１のＢＡＮＫ番号に更新する。アクセス監視はトレース終了（Ｔ３５）まで継続され、アクセス監視と並列にＢＡＮＫ選択部２０７が未使用ＢＡＮＫ検索を行う。
【０１２９】
ダウンカウンタ２０７−２のカウンタ値がメモリリスト４０６−３に記録されている値より大きい場合は、ダウンカウンタ２０７−２のカウンタ値のＢＡＮＫが未使用であるため、ダウンカウンタ２０７−２の値のＢＡＮＫをトレースメモリ転送領域として使用する。
【０１３０】
ダウンカウンタ２０７−２の値以上のＢＡＮＫ番号の領域に、アクセスが発生した場合は、メモリリスト４０６−３のＢＡＮＫ番号が更新され、エラー判定回路４０６−４は、ダウンカウンタ２０７−２の値とメモリリスト４０６−３のＢＡＮＫ番号を比較し、エラーアクセスが発生したと判断しエラー信号を出力する。なお、第４の実施の形態におけるデバッグ制御回路３０１の観測信号トレースの動作は、第３の実施の形態と同様であるため説明は省略する。
【０１３１】
実施の形態５．
実施の形態５に係るデバッグ制御回路について図２０を参照して詳細に説明する。図２０は、実施の形態５に係るデバッグ制御装置の構成を示す図である。図２０において、実施の形態１と同一の構成要素には同一の符号を付している。
【０１３２】
図２０に示すように、実施の形態５におけるデバッグ対象回路５０３は複数のＲＡＭを備えている。図２０に示す例では、３個のＲＡＭ５１０、５１１、５１２が備えられている例を示しているが、ＲＡＭの個数は特に限定されない。実施の形態５では、リスト生成部５０６の構成が実施の形態１と異なる。その他の構成については同じであるため、説明は省略する。
【０１３３】
図２１に、実施の形態５に係るデバッグ制御回路５０１のリスト生成部５０６の構成を示す。図２１に示すように、複数のアクセス判定回路５０６−１、５０６−２、５０６−３、調停回路５０６−４、メモリリスト５０６−５を備えている。なお、図２１に示す例では、図２０の３つのＲＡＭ５１１、５１２、５１３に合わせて３つのアクセス判定回路５０６−１、５０６−２、５０６−３が設けられているが、これに限定されるものではない。
【０１３４】
アクセス判定回路５０６−１、５０６−２、５０６−３は、デバッグ対象回路５０３のＲＡＭ５１１、５１２、５１３へのアクセス信号（アドレス）をそれぞれ監視する。アクセス判定回路５０６−１、５０６−２、５０６−３は、アクセス発生時に、アクセス信号のアドレスの下位ｂｉｔを省いたＢＡＮＫ信号と書き込み制御信号を調停回路５０６−４に出力する。
【０１３５】
調停回路５０６−４は、アクセス判定回路５０６−１、５０６−２、５０６−３と図示しないＢＡＮＫ選択部１０７のメモリリスト５０６−５へのアクセスを調停する。すなわち、調停回路５０６−４は、アクセス判定回路５０６−１、５０６−２、５０６−３からのＢＡＮＫ番号及び書き込み制御信号をメモリリスト５０６−５に伝送するか、メモリリスト５０６−５から読み出したリードデータをＢＡＮＫ選択部１０７へ伝送するかを決定する。
【０１３６】
メモリリスト５０６−５は、調停回路５０６−４を介して入力される、アクセス判定回路５０６−１、５０６−２、５０６−３からのＢＡＮＫ番号及び書き込み制御信号に基づいて作成される。また、メモリリスト１０６−３のリードデータは、調停回路５０６−４を介して入力される、ＢＡＮＫ選択部１０７からのアドレス信号のＢＡＮＫ番号に応じて読み出される。
【０１３７】
図２２に、メモリリスト５０６−５の一例を示す。図２２に示すように、メモリリスト５０６−５は、ＲＡＭ５１１、５１２、５１３それぞれに対応して、ＢＡＮＫ毎に１ｂｉｔの情報を有している。ＢＡＮＫにアクセスが発生した場合、該当箇所に１が書き込まれる。アクセスが発生していないＢＡＮＫは０である。この例では、ＲＡＭ５１１、ＲＡＭ５１２、ＲＡＭ５１３それぞれのＢＡＮＫ数が１６であるが、ＢＡＮＫ数はメモリ容量、１ＢＡＮＫあたりのワード数により異なり、特に限定されない。
【０１３８】
実施の形態５に係るデバッグ対象回路５０３の動作については、実施の形態１の動作と略同一である。実施の形態５では、ＲＡＭが複数あるのでリスト生成部５０６のアクセス監視回路５０６−１、５０６−２、５０６−３が並列に動作する。また、ＢＡＮＫ選択部１０７の動作がＲＡＭの個数分行われる。その他の動作については、実施の形態１の動作と同じであるため、説明を省略する。
【０１３９】
実施の形態６．
実施の形態６に係るデバッグ制御回路について図面を参照して詳細に説明する。実施の形態６におけるデバッグ対象回路には実施の形態５と同様にＲＡＭが複数設けられている。リスト生成部６０６の構成が実施の形態５と異なる。その他の構成要素については同じであるため説明は省略する。
【０１４０】
図２３は、実施の形態６に係るデバッグ制御装置のリスト作成部６０６の構成を示す図である。図２３に示すように、リスト生成部６０６は、複数のアクセス判定回路６０６−１、６０６−２、６０６−３、複数のリスト更新部６０６−４、６０６−５、６０６−６、調停回路６０６−７、メモリリスト６０６−８を備えている。なお、図２３に示す例では、デバッグ対象回路５０３のＲＡＭの個数に合わせて、３個のアクセス判定回路６０６−１、６０６−２、６０６−３、３個のリスト更新部６０６−４、６０６−５、６０６−６が設けられているが、これに限定されるものではない。
【０１４１】
アクセス判定回路６０６−１、６０６−２、６０６−３は、デバッグ対象回路５０３のＲＡＭ５１１、５１２、５１３へのアクセス信号（アドレス）をそれぞれ監視する。アクセス判定回路６０６−１、６０６−２、６０６−３は、アクセス発生時に、アクセス信号のアドレスからＢＡＮＫ信号に変換し、リスト更新部６０６−４、６０６−５、６０６−６に夫々出力する。
【０１４２】
リスト更新部６０６−４、６０６−５、６０６−６は、アクセス判定回路６０６−１、６０６−２、６０６−３からのＢＡＮＫ番号と調停回路６０６−７からのＢＡＮＫ信号とを夫々比較する。リスト更新部６０６−４、６０６−５、６０６−６は、アクセス判定回路６０６−１、６０６−２、６０６−３からのＢＡＮＫ番号が調停回路６０６−７からのＢＡＮＫ信号よりも大きい場合は、調停回路６０６−７を介してメモリリスト６０６−８にアクセス判定回路６０６−１、６０６−２、６０６−３からのＢＡＮＫ番号を出力する。
【０１４３】
調停回路６０６−７は、複数のリスト更新部６０６−４、６０６−５、６０６−６からのメモリリスト６０６−８へのアクセスを調停する。メモリリスト６０６−８は、リスト更新部６０６−４、６０６−５、６０６−６からのＢＡＮＫ番号に基づいて更新され、最大ＢＡＮＫ番号を出力する。
【０１４４】
図２４に、メモリリスト６０６−８の一例を示す。図２４に示す例は、ＲＡＭが３個設けられている場合である。図２４に示すように、メモリリスト６０６−８は、ＲＡＭ毎に最大ＢＡＮＫ番号を有している。メモリリスト６０６−８は、調停回路６０６−７を介してリスト更新部６０６−４、６０６−５、６０６−６からそれぞれＢＡＮＫ番号が入力されると、ＢＡＮＫ番号を更新する。ＢＡＮＫ選択部５０７の内部構成は第２の実施形態のＢＡＮＫ選択部２０７と同様であるため説明を省略する。メモリリスト６０６−８から読みだされたリードデータは、図示しないＢＡＮＫ選択部２０７に入力される。
【０１４５】
第６の実施形態の全体の動作については第２の実施形態の動作と同じであるので説明を省略する。第６の実施の形態では、ＲＡＭが複数あるのでリスト生成部５０６のアクセス判定回路６０６−１、６０６−２、６０６−３とリスト更新部６０６−４、６０６−５、６０６−６が並列に動作する。また、ＢＡＮＫ選択部２０７の動作がＲＡＭの個数分行われる。その他の動作は第２の実施形態の動作と同じである。
【０１４６】
実施の形態７．
実施の形態７に係るデバッグ制御回路について図面を参照して詳細に説明する。実施の形態７におけるデバッグ対象回路は、実施の形態３におけるデバッグ対象回路１０３にＲＡＭが複数設けられている。リスト生成部７０６の構成が実施の形態３と異なる。その他の構成要素については同じであるため説明は省略する。
【０１４７】
図２５に実施の形態７に係るデバッグ対象回路のリスト生成部７０６は、複数のアクセス判定回路７０６−１、７０６−２、７０６−３、調停回路７０６−４、メモリリスト７０６−５、エラー判定回路７０６−６を備えている。図２５に示す例は、デバッグ対象回路１０３のＲＡＭが３つある場合であるが、これに限定されない。
【０１４８】
アクセス判定回路７０６−１、７０６−２、７０６−３は、第５の実施形態のアクセス判定回路５０６−１、５０６−２、５０６−３と同様であるため説明は省略する。調停回路７０６−４は、複数のアクセス判定回路とＢＡＮＫ選択部からのメモリリストへのアクセスを調停する。調停回路７０６−４は、アクセス判定回路７０６−１、７０６−２、７０６−３とメモリリスト７０６−５と図示しないＢＡＮＫ選択部１０７に接続されている。
【０１４９】
メモリリスト７０６−５は、調停回路７０６−４を介して入力されるＢＡＮＫ番号からを生成される。メモリリスト７０６−５は、読み出されたリードデータは、調停回路７０６−４を介して、エラー判定回路７０６−６及び図示しないＢＡＮＫ選択部１０７に入力される。
【０１５０】
エラー判定回路７０６−６は、アクセス判定回路７０６−１、７０６−２、７０６−３から入力されたＢＡＮＫ番号に基づいてメモリリスト７０６−５を更新する際に、当該ＢＡＮＫ番号に対応するメモリ領域がトレースで使用履歴がある場合、エラー信号をパラメータ設定部パラメータ設定部３０４に出力する。
【０１５１】
図２６に、メモリリスト７０６−５の一例を示す。図２６に示すように、メモリリスト７０６−５は、ＢＡＮＫ毎に２ｂｉｔの情報を有したものをＲＡＭの個数分備える。アクセス判定回路７０６−１、７０６−２、７０６−３により、ＢＡＮＫアクセスが発生したと判定された場合は、該当ＢＡＮＫのｂｉｔ（０）に１が書き込まれる。また、当該ＢＡＮＫがトレースデータ書き込みに使用された場合は該当ＢＡＮＫのｂｉｔ（１）に１が書き込まれる。アクセスが発生しないＢＡＮＫは０である。図２６は、ＢＡＮＫ数が８のＲＡＭを３個備えている例であるが、ＢＡＮＫ数、ＲＡＭの個数はこれに限定されない。
【０１５２】
実施の形態７のデバッグ制御装置の動作については実施の形態３の動作と同じであるので説明を省略する。実施の形態７では、ＲＡＭが複数あるのでリスト生成部７０６のアクセス判定回路７０６−１、７０６−２、７０６−３が並列に動作する。また、ＢＡＮＫ選択部１０７の動作がＲＡＭの個数分行われる。その他の動作は実施の形態３の動作と同じである。
【０１５３】
実施の形態８．
実施の形態８に係るデバッグ制御回路について図面を参照して詳細に説明する。実施の形態８におけるデバッグ対象回路は、リスト生成部８０６の内部構成が実施の形態７と異なる。なお、ＢＡＮＫ選択部の構成はＢＡＮＫ選択部２０７と同様である。その他の構成要素については同じであるため説明は省略する。
【０１５４】
図２７に、実施の形態８に係るリスト生成部８０６の構成を示す。図２７に示すように、リスト生成部８０６は、複数のアクセス判定回路８０６−１、８０６−２、８０６−３、複数のリスト更新部８０６−４、８０６−５、８０６−６、調停回路８０６−７、メモリリスト８０６−８、エラー判定回路８０６−９を備えている。図２７は、デバッグ対象回路１０３のＲＡＭが３つある場合の例であるが、これに限定されない。
【０１５５】
アクセス判定回路８０６−１、８０６−２、８０６−３は、第６の実施形態のアクセス判定回路６０６−１、６０６−２、６０６−３と同様であるため説明は省略する。リスト更新部８０６−４、８０６−５、８０６−６は、第６の実施形態のリスト更新部６０６−４、６０６−５、６０６−６と同様であるため説明は省略する。
【０１５６】
調停回路８０６−７は、複数のリスト更新部８０６−４、８０６−５、８０６−６からのメモリリスト８０６−８へのアクセスを調停する。調停回路８０６−７は、リスト更新部８０６−４、８０６−５、８０６−６、メモリリスト８０６−８に接続されている。
【０１５７】
メモリリスト８０６−８は、調停回路８０６−７を介して入力されるＢＡＮＫ番号から生成される。メモリリスト８０６−８は、調停回路８０６−７から入力される該当メモリに対するＢＡＮＫ番号を更新し、メモリ毎に最大ＢＡＮＫ番号を出力する。メモリリスト８０６−８は、調停回路８０６−７及びエラー判定回路８０６−９に接続されている。また、メモリリスト８０６−８から読み出されたリードデータは、ＢＡＮＫ選択部２０７に入力される。
【０１５８】
図２８に、メモリリスト８０６−８の一例を示す。図２８に示すように、メモリリスト８０６−８は、ＲＡＭ毎に最大ＢＡＮＫ番号を有する。調停回路８０６−７からＢＡＮＫ番号が入力されると、メモリリスト８０６−８のＢＡＮＫ番号が更新される。なお、図２８はＲＡＭが３個設けられている場合の例であるが、これに限定されない。
【０１５９】
エラー判定回路８０６−９は、調停回路８０６−７から入力されたＢＡＮＫ番号に基づいて、メモリリスト８０６−８の情報を更新する際に、ＢＡＮＫ番号の情報に基づいて、当該ＢＡＮＫ番号に対応するメモリ領域がトレースで使用履歴がある場合パラメータ設定部３０４にエラー信号を出力する。
【０１６０】
実施の形態８に係るデバッグ制御装置の動作については、実施の形態４の動作と同じであるので説明を省略する。第８の実施の形態では、ＲＡＭが複数あるのでリスト生成部８０６のアクセス監視回路８０６−１、８０６−２、８０６−３、リスト更新部８０６−４、８０６−５、８０６−６が並列に動作する。また、ＢＡＮＫ選択部２０７の動作がＲＡＭの個数分行われる。その他の動作は実施の形態４の動作と同じである。
【０１６１】
実施の形態９．
実施の形態９に係るデバッグ制御回路について図面を参照して詳細に説明する。実施の形態９におけるデバッグ対象回路は、実施の形態５と同じであるが、メモリ毎に異なる容量のＢＡＮＫを備えている点において異なる。また、メモリリスト５０６−５には、図２９のようにメモリ毎のＢＡＮＫ容量が格納されており、該当メモリのＢＡＮＫ情報を出力する際にＢＡＮＫ容量を出力する。その他の構成要素については同じであるため説明は省略する。
【０１６２】
実施の形態１０．
実施の形態１０に係るデバッグ制御回路について図面を参照して詳細に説明する。図３０に、実施の形態１０に係るデバッグ制御回路１００１の構成を示す。図３０において、実施の形態１と同一の構成要素には同一の符号を付している。実施の形態１０に係るデバッグ制御回路は、実施の形態１において、さらに、ＦＩＦＯ（first-in first-out）ブロック１０１０、アクセス調停部１０１１を備えている。
【０１６３】
ＦＩＦＯブロック１０１０、アクセス調停部１０１１を追加することで、デバッグ制御回路１０１のＲＡＭ１１０への通常動作でのアクセスと、トレースデータを格納するためのアクセスが重なった場合に、調停することが可能となる。
【０１６４】
ＦＩＦＯブロック１０１０は、転送制御部１０９から出力される転送アドレス及びトレースデータを格納し、アクセス調停部１０１１から出力される転送可能フラグに応じて、格納データをアクセス調停部１０１１に出力する。
【０１６５】
アクセス調停部１０１１は、通常動作でＲＡＭ１１０への読み書きが実行されるアクセスと、トレースデータをＲＡＭ１１０へ書き込むためのアクセスを調停し、調停した信号をＲＡＭ１１０へ出力する。アクセス調停部１０１１は、トレースデータのＲＡＭ１１０への書き込みが可能な場合には、ＦＩＦＯブロック１０１０に転送可能フラグを出力する。
【０１６６】
一方、デバッグ対象回路１０３のＲＡＭ１１０への通常動作でのアクセスと、トレースデータを格納するためのアクセスが重なった場合、アクセス調停部１０１１は、トレースデータを格納するためのアクセスを遅延させ、通常動作でのアクセスを優先させる。その他の構成要素については、実施の形態１と同様であるため、説明は省略する。
【０１６７】
次に、実施の形態１０に係るデバッグ制御回路１００１の動作について説明する。デバッグ制御回路１００１の動作を示すフローチャートは、実施の形態１と同様である。但し、実施の形態１０では、デバッグ対象回路１０３のＲＡＭ１１０への通常動作でのアクセスとトレースデータを格納するためのアクセスが重なった場合、トレースデータを格納するためのアクセスを遅延させ、通常動作でのアクセスを優先させる。
【０１６８】
アクセスを遅延させたトレースデータは、ＦＩＦＯブロック１０１０で保持される。保持されたトレースデータは、通常動作のアクセスが発生していない時にＦＩＦＯブロック１０１０からデータを取り出され、ＲＡＭ１１０へ書き込まれる。
【０１６９】
図３１を用いてアクセス調停部１０１１のアクセス調停動作を説明する。図３１は、デバッグ制御回路のアクセス調停部のタイミングチャートである。ＲＡＭ１１０へのアクセスは、通常動作のアクセスのみ、トレースデータ転送のみ、通じ上動作とトレースデータ転送の同時アクセスの３通り発生する。
【０１７０】
図３１に示すように、転送アドレス・トレースデータ１〜１０が順次入力されている間に、通常のアクセスデータ・アドレスＡ、Ｂ、Ｃ、Ｄが入力されているものとする。ＴＡ０１では、通常動作のみのアクセスが発生している。この場合は、ＲＡＭアクセス（通常）がハイレベルとなり、通常動作のアクセスが選択され、ＲＡＭ１１０の所定のアドレスに、アクセスデータが出力される（ＴＡ０１）。
【０１７１】
ＴＡ０２、ＴＡ０３において、トレースデータ転送のみのアクセスが発生した場合は、ＲＭＡアクセス（トレース）がハイレベルとなり、転送アドレス・トレースデータがＦＩＦＯブロック１０１０から取り出され、ＲＡＭ１１０へ出力される。
【０１７２】
ＴＡ０４において、通常動作とトレース転送の同時アクセスが発生した場合は、通常動作のアクセスが選択され、ＲＡＭ１１０へ出力される。このとき、トレースデータ転送の転送アドレス及びトレースデータは、ＦＩＦＯブロック１０１０に格納され、同時アクセス発生状態が解除されるまで転送を待つ。以降、同様な処理が行われ、通常動作のＲＡＭ１１０へのアクセスと、トレースデータの転送とが行われる。
【０１７３】
このように、実施の形態１０では、通常動作におけるＲＡＭ１１０へのアクセスとデバッグ動作におけるトレースデータの転送のためのＲＡＭ１１０へのアクセスが重なった場合でも、通常動作におけるアクセスを優先することで通常動作のタイミングに影響を及ぼさないでトレースデータを転送することが可能である。なお、上述した実施の形態は、その他の実施の形態にも適用することが可能である。
【０１７４】
以上、これまで述べてきた各実施の形態は、本発明の好適な実施形態であり、上記実施の形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
【０１７５】
この出願は、２０１２年３月３０日に出願された日本出願特願２０１２−０８１７１０を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１７６】
１０  デバッグ制御回路
１１  リスト生成部
１２  選択部
１３  転送制御部
２０  デバッグ対象回路
２１  記憶装置
１０１  デバッグ制御回路
１０２  外部制御装置
１０３  デバッグ対象回路
１０４  パラメータ設定部
１０４−１  信号選択情報格納部
１０４−２  トリガ条件格納部
１０５  信号選択部
１０６  リスト生成部
１０６−１  アクセス判定回路
１０６−２  調停回路
１０６−３  メモリリスト
１０７  ＢＡＮＫ選択部
１０７−１  カウンタ制御部
１０７−２  ダウンカウンタ
１０７−３  アドレスロード部
１０８  トリガ検出部
１０９  転送制御部
１１０  ＲＡＭ
１１１  タイミング調整部
２０６  リスト生成部
２０６−１  アクセス判定回路
２０６−２  リスト更新部
２０６−３  メモリリスト
２０７  ＢＡＮＫ選択部
２０７−１  ダウンカウンタ
２０７−２  一致判定回路
３０１  デバッグ制御回路
３０４  パラメータ設定部
３０４−１  信号選択情報格納部
３０４−２  トリガ条件格納部
３０４−３  タイミング情報格納部
３０６  リスト生成部
３０６−１  アクセス判定回路
３０６−２  調停回路
３０６−３  メモリリスト
３０６−４  エラー判定回路
４０６  リスト生成部
４０６−１  アクセス判定回路
４０６−２  リスト更新部
４０６−３  メモリリスト
４０６−４  エラー判定回路
５０１  デバッグ制御回路
５０３  デバッグ対象回路
５０６  リスト生成部
５０６−１  アクセス判定回路
５０６−２  アクセス判定回路
５０６−３  アクセス判定回路
５０６−４  調停回路
５０６−５  メモリリスト
５１１  ＲＡＭ
５１２  ＲＡＭ
５１３  ＲＡＭ
６０６  リスト生成部
６０６−１  アクセス判定回路
６０６−２  アクセス判定回路
６０６−３  アクセス判定回路
６０６−４  リスト更新部
６０６−５  リスト更新部
６０６−６  リスト更新部
６０６−７  調停回路
６０６−８  メモリリスト
７０６  リスト生成部
７０６−１  アクセス判定回路
７０６−２  アクセス判定回路
７０６−３  アクセス判定回路
７０６−４  調停回路
７０６−５  メモリリスト
７０６−６  エラー判定回路
８０６  リスト生成部
８０６−１  アクセス判定回路
８０６−２  アクセス判定回路
８０６−３  アクセス判定回路
８０６−４  リスト更新部
８０６−５  リスト更新部
８０６−６  リスト更新部
８０６−７  調停回路
８０６−８  メモリリスト
８０６−９  エラー判定回路
１００１  デバッグ制御回路
１０１０  ＦＩＦＯブロック
１０１１  アクセス調停部
【図１】
2013145055.tif 000003
【図２】
2013145055.tif 000004
【図３】
2013145055.tif 000005
【図４】
2013145055.tif 000006
【図５】
2013145055.tif 000007
【図６】
2013145055.tif 000008
【図７】
2013145055.tif 000009
【図８】
2013145055.tif 000010
【図９】
2013145055.tif 000011
【図１０】
2013145055.tif 000012
【図１１】
2013145055.tif 000013
【図１２】
2013145055.tif 000014
【図１３】
2013145055.tif 000015
【図１４】
2013145055.tif 000016
【図１５】
2013145055.tif 000017
【図１６】
2013145055.tif 000018
【図１７】
2013145055.tif 000019
【図１８】
2013145055.tif 000020
【図１９】
2013145055.tif 000021
【図２０】
2013145055.tif 000022
【図２１】
2013145055.tif 000023
【図２２】
2013145055.tif 000024
【図２３】
2013145055.tif 000025
【図２４】
2013145055.tif 000026
【図２５】
2013145055.tif 000027
【図２６】
2013145055.tif 000028
【図２７】
2013145055.tif 000029
【図２８】
2013145055.tif 000030
【図２９】
2013145055.tif 000031
【図３０】
2013145055.tif 000032
【図３１】
2013145055.tif 000033
【図３２】
2013145055.tif 000034
【図３３】
2013145055.tif 000035
【図３４】
2013145055.tif 000036
【国際調査報告】
2013145055.tif 000037
2013145055.tif 000038
2013145055.tif 000039
2013145055.tif 000040