(57)【特許請求の範囲】
【請求項１】
トリガを発生させるための条件を規定するトリガ条件情報を記憶するトリガ情報格納部と、前記トリガの発生後、入力された被観測信号の状態の記憶であるトレースを開始するまでの遅延時間を規定するタイミング情報を記憶するタイミング情報格納部と、を含むパラメータ設定部と、
入力されたトリガ用信号が前記トリガを発生させるための条件を満たすことを検出したとき、前記トリガを発生するトリガ発生部と、
前記トリガと前記タイミング情報とに基づいて、所定の記憶装置への前記状態の書き込みを制御する記憶制御部と、
を備え、
前記記憶制御部は、
前記トリガが発生したタイミングから、所定のクロックごとにインクリメントし第２のカウント値を出力する第２のタイマーカウンタと、
前記第２のカウント値と前記タイミング情報を比較する第２の比較器と、
前記第２のカウント値を用いて前記記憶装置へ前記トレースで得られたデータであるトレースデータを書き込むアドレスを示すライトアドレス信号を生成し、前記第２の比較器の比較結果に基づいて前記記憶装置への前記トレースデータの書き込みを指示するライトイネーブル信号を生成する第２のアドレス生成器を含む
ことを特徴とするトレース制御装置。
【請求項２】
外部のデバッグ対象回路から出力される信号から前記被観測信号を、外部のトリガ用信号発生回路から出力される信号から前記トリガ用信号を選択する信号選択部、
を備えることを特徴とする請求項１記載のトレース制御装置。
【請求項３】
前記パラメータ設定部は、前記記憶制御部からの前記トレースの完了を示すトレース完了信号に従って前記タイミング情報を更新するオフセット制御部を含む
ことを特徴とする請求項１又は２記載のトレース制御装置。
【請求項４】
トリガを発生させるための条件を規定するトリガ条件情報を記憶するトリガ情報格納部と、前記トリガの発生後、入力された被観測信号の状態の記憶であるトレースを開始するまでの遅延時間を規定するタイミング情報を記憶するタイミング情報格納部と、を含むパラメータ設定部と、
入力されたトリガ用信号が前記トリガを発生させるための条件を満たすことを検出したとき、前記トリガを発生するトリガ発生部と、
前記トレースで得られたデータであるトレースデータを記憶する記憶部と、
前記トリガと前記タイミング情報とに基づいて、前記記憶部への前記状態の書き込みを制御する記憶制御部と、
を備え、
前記記憶制御部は、
前記トリガが発生したタイミングから、所定のクロックごとにインクリメントし第２のカウント値を出力する第２のタイマーカウンタと、
前記第２のカウント値と前記タイミング情報を比較する第２の比較器と、
前記第２のカウント値を用いて前記記憶部へ前記トレースデータを書き込むアドレスを示すライトアドレス信号を生成し、前記第２の比較器の比較結果に基づいて前記記憶部への前記トレースデータの書き込みを指示するライトイネーブル信号を生成する第２のアドレス生成器を含む
ことを特徴とするトレース制御装置。
【請求項５】
入力されたトリガ用信号がトリガを発生させるための条件を規定するトリガ発生条件を満たすことを検出したとき、前記トリガを発生させ、
前記トリガの発生後、入力された被観測信号の状態の記憶であるトレースを開始するまでの遅延時間を規定するタイミング情報に基づいて、所定の記憶装置へ前記状態を書き込む、
手順を含むトレース制御方法であって、
前記記憶装置への前記状態の書き込みは、
前記トリガが発生したタイミングから、所定のクロックごとにインクリメントし第２のカウント値を出力し、
前記第２のカウント値と前記タイミング情報を比較し、
前記第２のカウント値を用いて前記記憶装置へ前記トレースで得られたデータであるトレースデータを書き込むアドレスを示すライトアドレス信号を生成し、前記比較の結果に基づいて前記記憶装置への前記トレースデータの書き込みを指示するライトイネーブル信号を生成する、
手順を含む、ことを特徴とするトレース制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動作中のＬＳＩ（Large Scale Integrated Circuit）に対する入出力信号又はＬＳＩの内部信号をトレースするトレース制御装置及びトレース制御方法に関し、特に、任意の時点からのトレースが可能なトレース制御装置及びトレース制御方法に関する。
【背景技術】
【０００２】
ＬＳＩの回路の信号路には不可避的に信号の伝播遅延が発生する。そのため、ＬＳＩには、内部信号のタイミングのばらつきが発生し、製造後の評価で動作異常（不具合）を生じる場合がある。また、ＬＳＩの製造前に十分な検証を行う期間がなく、製造後の評価で不具合が発見される場合もある。不具合が生じた場合には、その原因を究明するためにＬＳＩの信号動作を観測し、不具合原因を解析する、いわゆるデバッグが必要である。
【０００３】
ＬＳＩのデバックについて図面を参照しながら説明する。図１２は、一般的なＬＳＩデバッグシステムの構成を示すブロック図である。システム全体の制御は、外部制御装置２１が行う。ＬＳＩ１０は、内部のデバッグ対象回路３１からの観測対象信号から、デバッグのために観測される被観測信号を選択する信号選択部８１を備える。選択された被観測信号は、ＬＳＩ１０のデバック用観測端子１２から外部へ出力される。出力された被観測信号は、外部に接続されるロジックアナライザ２２に読み込まれ、デバックが行われる。
【０００４】
ＬＳＩをデバックしたりその障害を解析したりするためには、ロジックアナライザ２２でＬＳＩ１０の内部の状態値を連続して把握することが要求される。さらに、この状態値を解析しながら不具合の原因を解決していくことも必要とされる。
【０００５】
ＬＳＩ１０の内部の被観測信号を観測するために、ＬＳＩ１０内部に被観測信号の状態を記憶する「トレースメモリ」が備えられることがある。以降、被観測信号の状態を記憶することを「トレースする」といい、トレースされ記憶されたデータを「トレースデータ」という。
【０００６】
また、トレースメモリの内容を外部に出力したり、被観測信号を直接外部に出力したりするためには、ＬＳＩ１０の通常動作のための端子の他に、専用の出力端子を設ける必要がある。このような専用端子の追加は、ＬＳＩ１０のチップ面積を増加させたり、ＬＳＩ１０のパッケージサイズを拡大させたりするため、製造コストを増加させる。  特許文献１−４には、内蔵するトレースメモリの容量や被観測信号の出力用端子の削減のための各種の技術が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平０８−６３３７４号公報  （第４−５頁、図１）
【特許文献２】特開２００８−７１２２７号公報  （第４−７頁、図１）
【特許文献３】特開２００９−４８４７４号公報  （第５−７頁、図１）
【特許文献４】特開２００１−１４２７３３号公報  （第３頁、図１−２）  特許文献１には、トレースメモリを内蔵するトレース機能内蔵型ＬＳＩが開示されている。特許文献１のトレース機能内蔵型ＬＳＩは、デバッグ対象の内部回路からの信号をトレースメモリへトレースし、内部回路からのエラー検出信号によってトレースを停止する。そして、外部の制御装置から、トレースデータが読み出される。
【０００８】
特許文献２、３には、容量の少ないトレースメモリを用いて、より長時間のプログラムカウンタトレースを実現できるようにする技術が開示されている。
【０００９】
特許文献２の技術では、ＬＳＩにトレースメモリを内蔵し、内部のＣＰＵ（Central Processing Unit）からの、プログラムの実行開始及び実行停止を知らせるモニタ信号を用いて、トレースの開始及び停止を制御する。
【００１０】
特許文献３の技術では、トレース機能を備えたＳｏＣ（System On Chip）内のプロセッサの動作履歴をトレースするときにプロセッサを停止させる。そして、プロセッサの停止期間中にトレース情報が取り出される。この動作を繰り返すことにより、小さな容量のトレースメモリを用いて、長時間のトレースを実現する。
【００１１】
特許文献４には、データキャプチャ部、すなわちトレースメモリの内容を、時分割に外部に出力する内部信号観測装置が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【００１２】
特許文献１の技術では、トレースメモリの内蔵によって、ＬＳＩのチップ面積が増加するという課題がある。チップ面積の増大を抑えるためにトレースメモリの容量を削減すると、被観測信号の本数やトレース期間が短くなるなどの問題が発生する。
【００１３】
特許文献２の技術では、プログラムの実行中のみのトレースが可能である。しかし、必要な被観測信号をトレースするためには、プログラムの実行期間に応じた容量のトレースメモリを内蔵する必要がある。すなわち、長いプログラムのトレースに対応するためには、大容量のメモリを内蔵する必要がある。
【００１４】
特許文献３の技術では、トレースメモリの内容を読み出すときには、プロセッサを停止させる必要がある。このとき、必然的に、プログラムの動作も停止する。ところが、一般的に、プログラムは任意の位置で停止させることができるとは限らない。例えば、外部に何らかの制御信号や駆動信号を出力しているようなときは、それらの信号を出力した状態で停止させることができない場合がある。なぜなら、それらの信号を入力する機器や素子が、ある動作状態やある駆動状態のまま維持されてしまうからである。このように、特許文献３の技術では、トレースを行う期間やその期間の長さを任意に設定することができない。従って、停止可能な時点までのトレースが可能なように大容量のトレースメモリを内蔵する必要がある。
【００１５】
特許文献４の技術では、トレースメモリの内容を時分割で外部に出力するため、テスト端子の本数の削減には効果がある。しかし、トレースする必要がある情報をすべてトレースメモリに記憶させる必要があるため、トレースメモリの容量の削減には効果はない。
【００１６】
以上のように、特許文献１−４の技術には、多数の被観測信号のトレースや長期間のトレースのためには、大容量のトレースメモリを必要とするという課題がある。トレース期間が短くても、短い時間間隔で被観測信号の状態をサンプリングする場合には、同様に大容量のトレースメモリを必要とする。
【００１７】
なお、大容量のトレースメモリは、デバッグ対象のＬＳＩ等に内蔵される場合に特に影響が大きい。しかし、大容量のトレースメモリがコストアップにつながるという課題は、トレースメモリをＬＳＩ内蔵するか否かにはよらない。
（発明の目的）
発明の目的は、被観測信号に対して、任意の時点からトレースを開始することが可能なトレース制御装置及びトレース制御方法を提供することである。
【課題を解決するための手段】
【００１８】
本発明のトレース制御装置は、トリガを発生させるための条件を規定するトリガ条件情報を記憶するトリガ情報格納部と入力された被観測信号の状態の記憶であるトレースを開始するタイミングを規定するタイミング情報を記憶するタイミング情報格納部を含むパラメータ設定部と、入力されたトリガ用信号がトリガ発生条件を満たすことを検出したとき、トリガを発生するトリガ発生部と、トリガとトレース開始遅延時間に基づいて、所定の記憶装置への状態の書き込みを制御する記憶制御部と、を備えることを特徴とする。
【００１９】
本発明のトレース制御方法は、入力されたトリガ用信号がトリガを発生させるための条件を規定するトリガ発生条件を満たすことを検出したとき、トリガを発生させ、トリガと入力された被観測信号の状態の記憶であるトレースを開始するタイミングを規定するタイミング情報に基づいて、所定の記憶装置へ状態を書き込むことを特徴とする。
【発明の効果】
【００２０】
本発明によれば、トレースメモリの容量以上のトレースデータの取得が可能となる。理由は、所定のトリガの発生タイミングを基準に、トレースを開始するタイミングを変更する手段が設けられているので、トレース開始タイミングを変更しながらトレースを繰り返し実行することでトレースデータを分割して取得できるためである。
【図面の簡単な説明】
【００２１】
【図１】本発明に係る第１の実施形態のトレース制御装置の構成を示すブロック図である。
【図２】本発明に係る第１の実施形態のトレース制御装置のＲＡＭ制御部の内部構成を示すブロック図である。
【図３】本発明に係る第１の実施形態のトレース制御装置の動作を示すフローチャートである。
【図４】本発明に係る第１の実施形態のトレース制御装置の動作を示すタイミングチャートである。
【図５】本発明に係るトレース制御装置の必須構成を示すブロック図である。
【図６】本発明に係る第２の実施形態のトレース制御装置のＲＡＭ制御部の内部構成を示すブロック図である。
【図７】本発明に係る第２の実施形態のトレース制御装置の動作を示すタイミングチャートである。
【図８】本発明に係る第３の実施形態のトレース制御装置の構成を示すブロック図である。
【図９】本発明に係る第３の実施形態のトレース制御装置の動作を示すタイミングチャートである。
【図１０】本発明に係る第４の実施形態のトレース制御装置の構成を示すブロック図である。
【図１１】本発明に係る第４の実施形態のトレース制御装置の動作を示すフローチャートである。
【図１２】一般的なＬＳＩデバッグシステムの構成を示すブロック図である。
【発明を実施するための形態】
【００２２】
（第１の実施形態）
次に、発明を実施するための実施形態について図面を参照して詳細に説明する。図１は、第１の実施形態の構成を示すブロック図である。第１の実施形態のトレース制御装置１は、パラメータ設定部４とトリガ発生部５とＲＡＭ（Random Access Memory）制御部６とＲＡＭ７を備える。
【００２３】
パラメータ設定部４は、トリガ条件情報を保持するトリガ条件情報格納部４−１と、ＲＡＭ７への書き込み開始タイミングを指定するタイミング情報を保持するタイミング情報格納部４−２を備える。トリガ条件情報及びタイミング情報は、ＣＰＵ等の外部制御装置２からの制御信号によって設定される。トリガ条件情報格納部４−１はトリガ条件情報をトリガ発生部５に出力し、タイミング情報格納部４−２はタイミング情報をＲＡＭ制御部６に出力する。
【００２４】
トリガ発生部５は、トリガ条件情報４−１に従って、デバッグ対象回路３からの被観測信号から観測開始タイミングを検出し、トリガを出力する。そして、トリガ発生部５は、ＲＡＭ制御部６にトリガを出力する。
【００２５】
ＲＡＭ制御部６は、タイミング情報４−２に従って、トリガ発生部５からのトリガの入力タイミングを基準として、ＲＡＭ７への書き込みを開始するタイミングを調整する。すなわち、トリガの発生から、ＲＡＭ７への書き込みを開始するまでの時間を制御する。そして、ＲＡＭ制御部６は、ＲＡＭ７へのデータ書き込み及びデータ読み出しのための各種の制御信号を出力する。また、ＲＡＭ制御部６は、ＲＡＭ７から読み出したデータＲＤＡＴＡを外部制御装置２へ出力する。
【００２６】
ＲＡＭ７は、ＲＡＭ７へのトレースデータの書き込みタイミングにおける被観測信号の状態を記憶する。すなわち、ＲＡＭ７は、デバッグ対象回路３からデータとして入力される被制御信号を、ＲＡＭ制御部６からの制御信号によって読み込み、記憶する。
【００２７】
なお、被観測信号の「状態」とは、被観測信号がデジタル信号である場合は、デジタル値を意味する。この場合のデジタル値は、１ビットのみでなく、多ビットでもよい。あるいは、「状態」はアナログ値であってもよい。この場合は、トレース制御装置１にアナログ−デジタルコンバータを備え、アナログ値をデジタル値に変換した後、トレースすればよい。このように、本発明では、被観測信号がデジタル信号であるかアナログ信号であるかは本質的ではない。
【００２８】
ＲＡＭ制御部６の内部構成の例を、図２に示す。図２のＲＡＭ制御部６は、タイマーカウンタ６−１と比較器６−２とアドレス生成部６−３を備える。
【００２９】
タイマーカウンタ６−１は、トリガ発生部５からのトリガの入力タイミングを基準に、所定のクロックのカウント動作を開始するカウンタで、カウント結果である「カウンタ値」を比較器６−２に出力する。なお、タイマーカウンタ６−１は、実際にカウント動作を行うことができる「起動状態」と、カウント動作を停止した「停止状態」の２つの状態をとる。
【００３０】
比較器６−２は、パラメータ設定部４からのタイミング情報とタイマーカウンタ６−１からのカウンタ値を比較する。そして、比較器６−２は、タイミング情報とカウンタ値が一致したときに、アドレス生成部６−３に開始パルスを生成する。
【００３１】
アドレス生成部６−３は、ＲＡＭ７へのデータの書き込み及びＲＡＭ７からのデータの読み出しを制御する制御信号を生成する。制御信号には、ＲＡＭ７のアドレスを指定するアドレス信号、及び書き込み又は読み出しを指示するイネーブル信号等が含まれる。なお、制御信号は、ＲＡＭ７として使用する実際のメモリ素子のアクセス方式に従って適宜生成すればよい。制御信号の詳細は、本発明の本質部分ではないので、これ以上の説明は省略する。
【００３２】
アドレス生成部６−３は、比較器６−２から開始パルスを入力すると、ＲＡＭ７に被観測信号の状態を記憶させるために、ＲＡＭ７へのデータの書き込みのための制御信号を出力する。すなわち、ＲＡＭ７へのデータの書き込みのためのライトイネーブル信号及びアドレスを出力する。アドレスは、ＲＡＭ７へデータを書き込むごとに更新される。アドレスの更新のために、アドレス生成部６−３に、アドレスを出力するアドレスカウンタ（図示なし）を備えてもよい。
【００３３】
なお、ＲＡＭ７へのデータの書き込みのサイクルは、任意である。例えば、サイクルは、トレース制御装置１を用いてデバッグを行うユーザによって設定されてもよいし、デバック対象回路３の動作クロックのサイクルと同じであってもよい。
【００３４】
また、アドレス生成部６−３は、外部制御装置２から、ＲＡＭ７のデータの読み出し要求を受けると、ＲＡＭ７からのデータの読み出しを制御する制御信号を出力する。そして、ＲＡＭ７から読み出されたデータＲＤＡＴＡを、外部制御装置２へ出力する。
【００３５】
次に、本実施形態の全体の動作について図面を参照して詳細に説明する。図３は、本実施形態におけるトレース制御装置１の動作を示すフローチャートである。
【００３６】
初めに、外部制御装置２から、トリガ条件情報及びタイミング情報が、パラメータ設定部４のトリガ条件情報格納部４−１及びタイミング情報格納部４−２にそれぞれ格納される（ステップＳ１）。外部制御装置２の操作は、トレース制御装置１を用いてデバッグを行うデバッグ作業者によって行われる。
【００３７】
次に、トレース制御装置１が起動し（ステップＳ２）、デバッグ対象回路３が起動する（ステップＳ３）。トレース制御装置１及びデバッグ対象回路３の起動及び停止等の操作も、デバッグ作業者によって行われる。
【００３８】
次に、トリガ発生部５は、トリガ条件の充足の有無の検出、すなわち、デバッグ対象回路３から入力される被観測信号の状態とトリガ条件として指定された被観測信号の状態との比較を行い（ステップＳ４）、トリガを発生させるか否かを判断する（ステップＳ５）。
【００３９】
被観測信号がトリガ条件を満たさない場合は、被観測信号とトリガ条件との比較（ステップＳ４）に戻る。
【００４０】
被観測信号がトリガ条件を満たした場合は、ＲＡＭ制御部６のタイマーカウンタ６−１が起動状態となる。そして、ＲＡＭ制御部６の比較器６−２が、カウンタ値とトリガ条件格納部４−１から入力されるタイミング情報を比較する（ステップＳ６）。
【００４１】
比較の結果、カウンタ値とタイミング情報が一致しない場合は、ＲＡＭ制御部６にあるタイマーカウンタ６−１がインクリメントされ（ステップＳ７）、比較処理（ステップＳ６）へ戻る。
【００４２】
比較の結果、カウンタ値とタイミング情報が一致すると、ＲＡＭ制御部６は、アドレス生成部６−３のライトイネーブル信号を有効状態に設定し、ＲＡＭ７への被観測信号の書き込み、すなわちトレースを開始する（ステップＳ８）。
【００４３】
トレースが開始されると、まず、ＲＡＭ７に空き領域があるかを判断する（ステップＳ９）。この判断は、アドレスの値が所定範囲内にあるか否かの確認によって行えばよい。あるいは、ＲＡＭ７への書き込みの回数をカウントするアップダウンカウンタ等を備え、そのカウント値が所定値以下であるか否かの確認によって行ってもよい。
【００４４】
ＲＡＭ７に空き領域がある場合は、ＲＡＭ制御部６のアドレス生成部６−３のアドレスカウンタの値をインクリメントし（ステップ１０）、被観測信号の書き込みを行う（ステップＳ８）。
【００４５】
ＲＡＭ７に空き領域がない場合は、ＲＡＭ制御部６のアドレス生成部６−３のライトイネーブル信号を無効状態に設定し、被観測信号の書き込みを終了する（ステップＳ１１）。
【００４６】
トレースが終了した後、デバッグ対象回路３は停止される（ステップＳ１２）。そして、ＲＡＭ７へ格納した被観測信号の状態を、外部制御装置２から読み出した後、トレース制御装置１が初期化される（ステップＳ１３）。
【００４７】
トレース制御装置１の初期化後、デバッグ対象の全期間の信号のトレースが完了しているかを判断する（ステップＳ１４）。
【００４８】
全期間のトレースが完了していない場合は、タイミング情報格納部４−２に外部制御装置２から、ＲＡＭ７の容量分のアドレスの数と同じサイクル数を足した値を、タイミング情報として格納し（ステップＳ１５）、デバッグ対象回路３を再起動する（ステップＳ２）。
【００４９】
デバック対象回路３の再起動後は、ステップＳ５でトリガが発生された後、設定されたサイクル数分だけ遅延してトレースが再開される。トレースを再開するまでの期間のトレースデータは、前回、ＲＡＭ７にトレースされている。従って、ステップＳ１５で、前回までにトレースが完了している期間に相当するサイクル数を指定することによって、デバック対象回路３の再起動後は、トレースが完了している期間に続く期間のトレースが開始される。以降、このトレース開始の遅延量を「トレース開始遅延量」という。本実施形態で設定されるトレース開始遅延量は、サイクル数で表現されているが、時間で表現されてもよい。トレース開始遅延量が時間で表現される場合は、タイマーカウンタ６−１のカウント値も時間を意味する必要がある。
【００５０】
全期間のトレースが完了した場合は、処理を終了する。
【００５１】
図４は、第１の実施形態におけるトレース制御装置１の動作を示すタイミングチャートである。
【００５２】
トリガ発生部５でトリガ条件の充足が検出されるとトリガパルスが生成される（Ｔ１）。
【００５３】
トリガパルスが生成されると、ＲＡＭ制御部６のタイマーカウンタ６−１は起動状態となってクロックのカウントを開始し、１クロックごとに１ずつインクリメントされる。ここでのクロックは、ＲＡＭ７への書き込みサイクルを規定するクロックである。そして、タイミング情報格納部４−２のタイミング情報ｘ（ｘは１以上の整数。）とタイマーカウンタ６−１のカウント値が一致すると、開始パルスが生成される（Ｔ２）。
【００５４】
開始パルスが生成されると、ＲＡＭ７へのトレースデータの書き込みを指示するライトイネーブルが有効となる。ライトイネーブルが有効のとき、アドレス生成部６−３のアドレスカウンタは一旦リセットされ、その後、クロックをカウントし、１クロックごとに１ずつインクリメントされる（Ｔ３）。アドレスカウンタの出力値は、アドレスとしてＲＡＭ７へ出力される。そして、ライトイネーブルが有効である期間中、被観測信号の状態がＲＡＭ７に書き込まれる。
【００５５】
アドレス生成部６−３のアドレスカウンタがＲＡＭ７の容量ｎ（ｎは１以上の整数）に達すると、ライトイネーブルが無効となる（Ｔ４）。
【００５６】
以上のように、本実施形態のトレース制御装置１は、トリガが発生した後、任意に設定されたトレース開始の遅延時間が経過した後、被観測信号のトレースを開始することができる。
【００５７】
そして、遅延時間を変えてトレースを繰り返すことによって、全デバッグ期間の被観測信号をトレースすることができる。なぜなら、デバッグ対象回路３は、再起動後、前回のトリガ発生時点まで、前回の動作とまったく同じ動作をするからである。そのため、前回のトリガ発生時点からさらに所定の時間経過した時点からトレースを行うという操作を繰り返えすことによって、全デバッグ期間をいくつかの区間に分割してトレースを行うことができる。従って、全デバッグ期間の被観測信号を一度にトレースすることができるだけの容量のメモリを備えていなくても、全期間のトレースを行うことができる。
【００５８】
以上の説明から明らかなように、ＲＡＭ７、すなわち記憶装置は、トレース制御装置に備えられている必要はない。また、パラメータ設定部４にパラメータを設定する外部制御装置と、ＲＡＭ７のデータを読み出す外部制御装置は同じである必要はない。また、トリガ発生部５は、必ずしも被観測信号を基にトリガを発生させる必要はない。すなわち、被観測信号とは別の信号を基にトリガを発生させてもよい。
【００５９】
図５に、本発明に必須の構成のみを備えるトレース制御装置１１のブロック図を示す。トレース制御装置１１は、図１のトレース制御装置１からＲＡＭ７が除かれており、トレースデータは外部の記憶装置７１に書き込まれる。また、記憶制御部６０は、記憶装置７１のデータの読み出し機能は備えない。記憶装置７１のデータの読み出しは、外部制御装置２−２によって行われる。また、パラメータ設定部４へのパラメータ設定は、外部制御装置２−１によって行われる。そして、トリガ発生部５は、外部のトリガ用信号発生回路３−１が出力するトリガ用信号を基にトリガを発生する。
【００６０】
トレース制御装置１１の基本的な機能は、図１のトレース制御装置１と同じなので、詳細な説明は省略する。
【００６１】
なお、本実施形態のトレース制御装置１では、以下の３つのことが前提とされている。すなわち、デバッグ対象回路３は所定のクロックに同期して動作すること、そのクロックのサイクルごとに被観測信号の状態がサンプリングされること、そして、ＲＡＭ７の１つのアドレスに１つのトレースデータが記憶されることである。しかし、本実施形態は、これらの前提がない場合にも適用可能である。
【００６２】
まず、デバッグ対象回路３はクロックに同期して動作しなくてもよい。必要な時間間隔で被観測信号をサンプリングすればトレースが可能なので、デバッグ対象回路３が何らかのクロックに同期していることは必須条件ではない。デバッグ対象回路３がクロックに同期して動作していない場合は、トレースデータの書き込み可能なＲＡＭ７の容量とサンプリング間隔から決まるトレース開始遅延量が、タイミング情報としてタイミング情報格納部４−２に設定されればよい。
【００６３】
また、被観測信号をサンプリングする時間間隔は特に限定されない。従って、デバッグ対象回路３の同期しているクロックとは異なる間隔で被観測信号をサンプリングして、トレースしてもよい。この場合も、トレースデータの書き込み可能なＲＡＭ７の容量とサンプリング間隔から決まるトレース開始遅延量が、タイミング情報としてタイミング情報格納部４−２に設定されればよい。
【００６４】
さらに、ＲＡＭ７の１つのアドレスとサンプリング時刻との対応も、１対１には限定されない。被観測信号の本数が多い場合には、１サンプルごとのトレースデータを複数のワードに分割し、それよりも速いサイクルでＲＡＭ７の複数のアドレスに分配して記憶してもよい。この場合も、トレースデータの書き込み可能なＲＡＭ７の容量とサンプリング間隔から決まるトレース開始遅延量が、タイミング情報としてタイミング情報格納部４−２に設定されればよい。
（第２の実施形態）
次に、第２の実施形態について図面を参照して詳細に説明する。
【００６５】
第２の実施形態は、ＲＡＭ制御部６の内部構成が第１の実施形態と異なる。その他の構成要素については同じであるため説明は省略する。
【００６６】
第２の実施形態のＲＡＭ制御部６の内部構成の例を図６に示す。図６のＲＡＭ制御部６は、共通カウンタ６−４と比較器６−２とＲＡＭ  ＩＦ（Interface）部６−５を備える。
【００６７】
共通カウンタ６−４は、トリガ発生部５からのトリガと比較器６−２からの開始パルスの入力タイミングを基準に、カウント動作を開始するカウンタもある。共通カウンタ６−４は、比較器６−２とＲＡＭ  ＩＦ部６−５にカウント値を出力する。
【００６８】
比較器６−２は、タイミング情報とカウンタ値を比較し、これらが一致したとき、共通カウンタ６−４とＲＡＭ  ＩＦ部６−５に開始パルスを出力する。
【００６９】
ＲＡＭ  ＩＦ部６−５は、ＲＡＭ７への制御信号を生成する。ＲＡＭ  ＩＦ部６−５は、外部制御装置２からのＲＡＭリード制御信号、比較器６−２からの開始パルス、及び共通カウンタ６−４からのカウント値に基づいて生成されるライト制御信号の調停を行う。なお、ＲＡＭ７からのデータの読み出しの制御は、必ずしも、ＲＡＭ制御部６に備えられている必要はなく、他の装置から直接ＲＡＭ７を読み出してもよい。
【００７０】
次に、本実施形態の全体の動作について図面を参照して詳細に説明する。本実施形態におけるトレース制御装置１のフローチャートは、第１の実施形態と同様であるため説明を省略する。
【００７１】
図７は、本実施形態におけるトレース制御装置１の動作を示すタイミングチャートである。
【００７２】
トリガ発生部５でトリガ条件の充足が検出されるとトリガパルスが生成される（Ｔ１）。
【００７３】
トリガパルスが生成されると、ＲＡＭ制御部６の共通カウンタ６−４がクロックのカウントを開始し、１クロックごとに１ずつインクリメントされる。タイミング情報格納部４−２のタイミング情報ｘ（ｘは１以上の整数。）とタイマーカウンタ６−１のカウント値が一致すると、開始パルスが生成される（Ｔ２）。
【００７４】
開始パルスが生成されると、ライトイネーブルが有効となり、共通カウンタ６−４が初期化され０となる。ライトイネーブルが有効のときに、共通カウンタ６−４がインクリメントされる（Ｔ３）。アドレスカウンタの出力値は、アドレスとしてＲＡＭ７へ出力される。そして、ライトイネーブルが有効である期間中、被観測信号の状態がＲＡＭ７に書き込まれる。
【００７５】
共通カウンタ６−４のカウント値がＲＡＭ７の容量ｎに達するとライトイネーブルが無効となる（Ｔ４）。
【００７６】
第２の実施形態では、第１の実施形態におけるＲＡＭ制御部６のタイマーカウンタ６−１とアドレス生成部６−３のアドレスカウンタを共用する共用カウンタ６−４が使用される。そのため、アドレスカウンタが省略できるので、第１の実施形態と同様の効果を有しつつ、回路規模を少なくする効果がある。
（第３の実施形態）
次に、第３の実施形態について図面を参照して詳細に説明する。
【００７７】
図８は、第３の実施形態のトレース制御装置の構成を示すブロック図である。第３の実施形態は、パラメータ設定部４に、タイミング情報格納部４−２のタイミング情報を更新するオフセット制御部４−３備える。そして、ＲＡＭ制御部６のタイマーカウンタ６−１のカウント値が、パラメータ設定部４に入力される。第３の実施形態の構成に関しては、以上の２点が、第１の実施形態と異なる。その他の構成要素については同じであるため説明は省略する。
【００７８】
次に、本実施形態の全体の動作について図面を参照して詳細に説明する。本実施形態におけるトレース制御装置1のフローチャートは、第１の実施形態と同様であるため説明を省略する。
【００７９】
ただし、本実施形態の動作は、以下の点で第１の実施形態の動作と異なる。すなわち、本実施形態では、ステップＳ１５のトレース開始タイミングの変更（再設定）は自動的に行われる。具体的には、Ｓ１４で全期間のトレースの完了が検出される。全期間のトレースが完了したことは、例えば、ＲＡＭ７への書き込み回数をアドレスカウンタ等を用いてカウントし、そのカウント値が所定の値になったことを持って、トレース完了とすればよい。
【００８０】
そして、トレースが完了すると、ＲＡＭ制御部６は、トレース完了信号をオフセット制御部４−３へ出力する。
【００８１】
ステップＳ１５で、オフセット制御部４−３は、ＲＡＭ７の容量分のアドレスの数と同じサイクル数をタイミング情報格納部４−２の値に加算した値を、タイミング情報として格納する。
【００８２】
以上の第３の実施形態の動作に対して、第１の実施形態では、ステップＳ１５でのタイミング変更は、デバッグ作業者によって行われる。
【００８３】
図９は、本発明を実施するための第３の実施形態におけるトレース制御装置１の動作を示すタイミングチャートである。
【００８４】
トリガ発生部５でトリガ条件の充足が検出されるとトリガパルスが生成される（Ｔ１）。
【００８５】
トリガパルスが生成されると、ＲＡＭ制御部６のタイマーカウンタ６−１がクロックのカウントを開始し、１クロックごとに１ずつインクリメントされる。タイミング情報格納部４−２のタイミング情報ｘとタイマーカウンタ６−１のカウント値が一致すると、開始パルスが生成される（Ｔ２）。
【００８６】
開始パルスが生成されると、ライトイネーブルが有効となる。ライトイネーブルが有効のときに、アドレス生成部６−３のアドレスカウンタは一旦リセットされ、その後、クロックをカウントし、１クロックごとに１ずつインクリメントされる（Ｔ３）。アドレスカウンタの出力値は、アドレスとしてＲＡＭ７へ出力される。そして、ライトイネーブルが有効である期間中、被観測信号の状態がＲＡＭ７に書き込まれる。
【００８７】
アドレス生成部６−３のアドレスカウンタがＲＡＭ７の容量ｎに達すると、トレース完了信号が出力され、ライトイネーブルが無効となる（Ｔ４）。
【００８８】
ＲＡＭ７への書き込み完了後、オフセット制御部４−３が、次にトレースを取得するためのトレース開始タイミング、すなわち、トレース開始遅延量をタイミング情報格納部４−２に格納する（Ｔ５）。格納する値は、オフセット制御部４−３でタイミング情報格納部４−２にＲＡＭ７の容量を加算した値を用いても、タイマーカウンタ６−１の値を格納しても構わない。
【００８９】
以上のように、第３の実施形態では、タイミング情報の変更を自動で行うため、ＣＰＵ等の外部制御装置２からの設定を省略することが可能となる。
（第４の実施形態）
次に、発明を実施するための第４の形態について図面を参照して詳細に説明する。
【００９０】
図１０は、第４の実施形態を示すブロック図である。本発明を実施するための第４の実施形態におけるトレース制御装置１では、図１に示された第１の実施形態に対して、信号選択部８、及び信号選択部８を制御するためのパラメータ設定部４の信号選択情報格納部４−４が追加されている。
【００９１】
信号選択部８は、パラメータ設定部４の信号選択情報格納部４−４の指定に従って、観測対象信号の中から、トリガ発生条件の充足の検出に使用する信号、及びＲＡＭ７へその状態を格納する被観測信号を選択する。「観測対象信号」とは、全デバッグ操作によって、最終的にトレースされるすべての信号を意味する。本実施形態では、観測対象信号の中からの被観測信号の選択及び選択された被観測信号のトレースを、複数回、繰り返すことによって、すべての観測対象信号のトレースを行う。
【００９２】
信号選択部８は、トリガ発生部５とＲＡＭ７へ、選択した被観測信号を出力する。その他の構成要素については第１の実施形態と同じであるため説明は省略する。
【００９３】
次に、本実施形態の全体の動作について図面を参照して詳細に説明する。図１１は、本実施形態におけるトレース制御装置１の動作を示すフローチャートである。第１の実施形態と同様の動作については図３と同一の符号を付し、詳細な説明を省略する。
【００９４】
第４の実施形態は、以下の点で第１の実施形態と異なる。デバッグ対象として指定された全期間のトレースデータの取得が完了と判別された場合（ステップＳ１４で「Yes」の場合）に、ステップＳ１６で未取得信号があるかどうかを判別する。そして、未トレースの被観測信号がある場合は、ステップＳ１７で被観測信号を切り替えて再度、トレース制御装置を起動し、処理を繰り返す。なお、ステップＳ１４とステップＳ１６は順番が逆であっても同様の処理が可能である。
【００９５】
本発明を実施する第４の実施形態におけるトレース制御装置１のタイミングチャートは、第１の実施形態と同様であるため説明を省略する。
【００９６】
第４の実施形態では、観測信号が、ＲＡＭ７のbit幅以上の信号数であった場合であっても、トレースを行う被観測信号を切り替えながら繰り返しトレースを行って、トレースデータを取得することができる。従って、ＲＡＭ７のbit幅よりも多い本数の被観測信号のトレースデータを取得することが可能である。
【００９７】
なお、第４の実施形態は、第２、３の実施形態にも適用することが可能である。例えば、信号選択部８は、被観測信号の選択の他、図５におけるトリガ用信号の選択も行ってもよい。その他にも、以上の実施形態は各々他の実施形態と組み合わせることができる。
【００９８】
以上、これまで述べてきた各実施形態は、本発明の好適な実施形態であり、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
【符号の説明】
【００９９】
１、１１    トレース制御装置
１０    ＬＳＩ
１２    デバック用観測端子
２、２−１、２−２、２１    外部制御装置
２２    ロジックアナライザ
３、３１    デバッグ対象回路
３−１    トリガ用信号発生回路
４    パラメータ設定部
４−1    トリガ条件情報格納部
４−２    タイミング情報格納部
４−３    オフセット制御部
４−４    選択信号情報格納部
５    トリガ発生部
６    ＲＡＭ制御部
６−１    タイマーカウンタ
６−２    比較器
６−３    アドレス生成部
６−４    共通カウンタ
６−５    ＲＡＭ  ＩＦ部
６０    記憶制御部
７    ＲＡＭ
７１    記憶装置
８、８１    信号選択部
【図１】
0005982845.tif 000002
【図２】
0005982845.tif 000003
【図３】
0005982845.tif 000004
【図４】
0005982845.tif 000005
【図５】
0005982845.tif 000006
【図６】
0005982845.tif 000007
【図７】
0005982845.tif 000008
【図８】
0005982845.tif 000009
【図９】
0005982845.tif 000010
【図１０】
0005982845.tif 000011
【図１１】
0005982845.tif 000012
【図１２】
0005982845.tif 000013