(57)【要約】 【課題】信号処理装置の内部フリップフロップの状態をも復元することにより、システムの状態を完全に復元する。【解決手段】ソフトウエア制御で動作する信号処理装置１１と、それに付随する周辺回路１２とを実装し、信号処理装置のスキャン回路に接続するデータ入出力回路を内蔵したソフトウエア評価システムであって、信号処理装置のスキャン回路から出力されるデータを記憶手段１３に記憶し、また記憶手段１３に記憶されたデータを信号処理装置のスキャン回路に入力するスキャン入力回路１４とを備える。【選択図】  図１
2005071153.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウエア制御で動作する信号処理装置と、それに付随する周辺回路とを実装し、前記信号処理装置のスキャン回路に接続するデータ入出力回路を内蔵したソフトウエア評価システムであって、
前記信号処理装置のスキャン回路から出力されるデータをシステム内部の記憶手段に記憶するためのスキャン出力手段と、前記記憶手段に記憶されたデータを前記信号処理装置のスキャン回路に入力するためのスキャン入力手段とを備えるソフトウエア評価システム。
【請求項２】
ソフトウエア制御で動作する信号処理装置と、それに付随する周辺回路とを実装し、前記信号処理装置のスキャン回路に接続するデータ入出力回路を内蔵したソフトウエア評価システムであって、
前記信号処理装置のスキャン回路から出力されるデータをシステム外部の記憶手段に記憶するためのスキャン出力手段と、前記記憶手段に記憶されたデータを前記信号処理装置のスキャン回路に入力するためのスキャン入力手段とを備えるソフトウエア評価システム。
【請求項３】
ソフトウエア制御で動作する信号処理装置と、それに付随する周辺回路とを実装し、前記信号処理装置のスキャン回路に接続するデータ入出力回路を内蔵した評価システムを用いるソフトウエアデバッグ方法であって、
プログラム開始からプログラム終了まで所定の頻度でプログラムを一旦停止するステップと、停止状態でスキャン出力されるデータを記憶するステップと、記憶した前記データを再度スキャン入力してからプログラムの動作を再開させるステップとを含むソフトウエアデバッグ方法。
【請求項４】
請求項３記載のソフトウエアデバッグ方法であって、
前記スキャン出力されるデータを記憶するステップは、スキャン出力するデータとともにメモリ及びレジスタのデータを記憶するソフトウエアデバッグ方法。
【請求項５】
請求項３又は４記載のソフトウエアデバッグ方法であって、
前記所定の頻度でプログラムを一旦停止するステップは、予め外部から設定した時間毎に行われるソフトウエアデバッグ方法。
【請求項６】
請求項３又は４記載のソフトウエアデバッグ方法であって、
前記所定の頻度でプログラムを一旦停止するステップは、予め外部から設定したカウンタ値毎に行われるソフトウエアデバッグ方法。
【請求項７】
請求項３から６のいずれか一項記載のソフトウエアデバッグ方法であって、
前記スキャン出力をファイルとして記憶する際に、ファイル名に経過時間情報を付加するステップを含むソフトウエアデバッグ方法。
【請求項８】
請求項３から６のいずれか一項記載のソフトウエアデバッグ方法であって、
前記スキャン出力をテキストデータのファイルとして記憶する際に、ファイル内のデータに経過時間情報を付加するステップを含むソフトウエアデバッグ方法。
【請求項９】
請求項３から６のいずれか一項記載のソフトウエアデバッグ方法であって、
前記スキャン出力をファイルとして記憶する際に、ファイル名にプログラムカウンタ値情報を付加するステップを含むデバッグ方法。
【請求項１０】
請求項３から６のいずれか一項記載のソフトウエアデバッグ方法であって、
前記スキャン出力をテキストデータのファイルとして記憶する際に、ファイル内のデータにプログラムカウンタ値情報を付加するステップを含むソフトウエアデバッグ方法。
【請求項１１】
請求項７から１０のいずれか一項記載のソフトウエアデバッグ方法であって、
プログラムカウンタ値情報に加え、メモリ及びレジスタダンプした情報を付加するステップを含むソフトウエアデバッグ方法。
【請求項１２】
ソフトウエア制御で動作する信号処理装置と、それに付随する周辺回路とを実装し、前記信号処理装置のスキャン回路に接続するデータ入出力回路を内蔵して、前記信号処理装置は、ソフトウエア制御で動作する回路が信号処理における機能ブロック毎に分離され、当該機能ブロック毎にスキャンのチェーン構成を備えるソフトウエア評価システムのソフトウエアデバッグ方法であって、
プログラム開始からプログラム終了まで所定の頻度でプログラムを一旦停止するステップと、デバッグ対象でない機能ブロックを除き、所定の機能ブロックから停止状態でスキャン出力されるデータを記憶するステップと、記憶された前記データを再度スキャン入力してからプログラムの動作を再開させるステップとを含むソフトウエアデバッグ方法。
【請求項１３】
請求項３から１２のいずれか一項記載のソフトウエアデバッグ方法であって、
前記停止状態でスキャン出力されるデータを記憶するステップにおいて記憶されたプログラム途中の任意のスキャン出力をスキャン入力するステップを含むソフトウエアデバッグ方法。
【請求項１４】
請求項１又は２記載のソフトウエア評価システムにおけるソフトウエア制御で動作する信号処理装置であって、
ソフトウエア制御で動作する回路が信号処理における機能ブロック毎に分離され、該機能ブロック毎にスキャンチェーン構成を備える信号処理装置。
【請求項１５】
請求項１４記載の信号処理装置を搭載する半導体デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウエア制御で動作する信号処理装置と、それに付随する周辺回路を実装したソフトウエア評価システム及びそれを用いたソフトウエアデバッグ方法に関する。
【背景技術】
【０００２】
プログラム設計者は、プロセッサ上で動作するプログラムを設計した後、設計したプログラムの動作を検証してデバッグする必要がある。プログラムの検証は、プログラムを１ステップずつ実行して所望の動作が行われるか否かをモニタしながら行われる。
【０００３】
従来は、プログラムの動作により都度変化するスタック用バッファとして使用しているメモリの値（メモリ／レジスタ／プログラムカウンタの値）を保存しておくことにより、実行したプログラムのステップ単位での実行取り消しの指示を受け付け、実行取り消しが指示された場合に実行前の値又は状態を復元する所謂アンドゥ機能によってステップ単位で遡った所からプログラムの再実行を行うことでデバッグ効率を高めている（例えば、特許文献１参照）。
【０００４】
プログラムに異常が生じ、デバッグが行われるまでの従来の手順について説明する。図１５は、従来のデバッグの流れを示すフローチャートである。プログラムを開始して（ステップＳ４０１）、順次演算処理が行われると、例えばフリップフロップでのデータホールド失敗などの発生要因が生じ（ステップＳ４０２）、その結果として想定しない現象、即ちバグが発生する（ステップＳ４０３）。プログラム設計者は、この想定しない現象が発生するとプログラムを停止させ（ステップＳ４０４）、スタック用バッファに保存されているメモリ／レジスタ／プログラムカウンタの値をダンプする（ステップＳ４０５）。そしてダンプした値から発生要因を推定するというデバッグを行う（ステップＳ４０６）。この手順を繰り返すことによりデバッグ作業が終了する。
【特許文献１】特開平１０−１１１１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
プログラムのバグの種類によっては想定しない現象が発生するまでに時間がかかる場合がある。すなわち、所定の動作を１回行わせるだけでは異常は生じないが、何回も繰返し動作を行わせることによって異常が生じる場合がある。
【０００６】
しかしながら、上記従来のデバッグ方法では、ステップ単位で遡った所からプログラムを再実行する場合、メモリ／レジスタ／プログラムカウンタの値を復元させるだけで、信号処理装置の内部フリップフロップの状態が復元されない。このため、回路状態を全て異常が発生した状態と同じに復元することができない。従って、同一の異常を発生させデバッグを行うために何回も繰返し動作を行わせる必要があり、再現テストに時間がかかるという問題がある。また、発生要因を特定しにくい異常に対しては、デバッグそのものが困難であるという問題がある。
【０００７】
本発明は、このような問題点を解決するためになされたものであって、システムの状態を完全に復元できる評価システム及びそれを用いたソフトウエアデバッグ方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
請求項１の発明は、ソフトウエア制御で動作する信号処理装置と、それに付随する周辺回路とを実装し、前記信号処理装置のスキャン回路に接続するデータ入出力回路を内蔵したソフトウエア評価システムであって、前記信号処理装置のスキャン回路から出力されるデータをシステム内部の記憶手段に記憶するためのスキャン出力手段と、前記記憶手段に記憶されたデータを前記信号処理装置のスキャン回路に入力するためのスキャン入力手段とを備える。
【０００９】
請求項２の発明は、ソフトウエア制御で動作する信号処理装置と、それに付随する周辺回路とを実装し、前記信号処理装置のスキャン回路に接続するデータ入出力回路を内蔵したソフトウエア評価システムであって、前記信号処理装置のスキャン回路から出力されるデータをシステム外部の記憶手段に記憶するためのスキャン出力手段と、前記記憶手段に記憶されたデータを前記信号処理装置のスキャン回路に入力するためのスキャン入力手段とを備える。
【００１０】
上記構成により、信号処理装置の内部フリップフロップの状態が復元されるので、システムの状態が完全に復元され、プログラムの途中段階から動作を再開して的確なデバッグが行える。また、記憶手段をシステム外部に設けることで、必要に応じて記憶容量の異なる記憶手段の選択が可能となる。
【００１１】
請求項３の発明は、ソフトウエア制御で動作する信号処理装置と、それに付随する周辺回路とを実装し、前記信号処理装置のスキャン回路に接続するデータ入出力回路を内蔵した評価システムを用いるソフトウエアデバッグ方法であって、プログラム開始からプログラム終了まで所定の頻度でプログラムを一旦停止するステップと、停止状態でスキャン出力されるデータを記憶するステップと、記憶した前記データを再度スキャン入力してからプログラムの動作を再開させるステップとを含む。
【００１２】
上記構成により、信号処理装置の内部フリップフロップの状態が復元されるので、システムの状態が完全に復元され、プログラムの途中段階から動作を再開して的確なデバッグが行える。
【００１３】
請求項４の発明は、請求項３記載のソフトウエアデバッグ方法であって、前記スキャン出力されるデータを記憶するステップは、スキャン出力するデータとともにメモリ及びレジスタのデータを記憶する。
【００１４】
上記構成により、システムの状態と信号処理装置内の記憶内容が完全に復元され、プログラムの途中段階から動作を再開して的確なデバッグが行える。
【００１５】
請求項５の発明は、請求項３又は４記載のソフトウエアデバッグ方法であって、前記所定の頻度でプログラムを一旦停止するステップは、予め外部から設定した時間毎に行われる。
【００１６】
上記構成により、周期的にシステムの状態が記憶されるので、異常発生後にシステムの状態を完全に復元し、プログラムの途中段階から動作を再開して的確なデバッグが行える。
【００１７】
請求項６の発明は、請求項３又は４記載のソフトウエアデバッグ方法であって、前記所定の頻度でプログラムを一旦停止するステップは、予め外部から設定したカウンタ値毎に行われる。
【００１８】
上記構成により、周期的にシステムの状態が記憶されるので、異常発生後にシステムの状態を完全に復元し、プログラムの途中段階から動作を再開して的確なデバッグが行える。
【００１９】
請求項７の発明は、請求項３から６のいずれか一項記載のソフトウエアデバッグ方法であって、スキャン出力がファイルとして記憶される際、ファイル名に経過時間情報が付加される。
【００２０】
上記構成により、経過時間情報によりシステムの状態の復元が適切に行われ、プログラムの途中段階から動作を再開して的確なデバッグが行える。
【００２１】
請求項８の発明は、請求項３から６のいずれか一項記載のソフトウエアデバッグ方法であって、前記スキャン出力をテキストデータのファイルとして記憶する際に、ファイル内のデータに経過時間情報を付加するステップを含む。
【００２２】
上記構成により、経過時間情報によりシステムの状態の復元が適切に行われ、プログラムの途中段階から動作を再開して的確なデバッグが行える。
【００２３】
請求項９の発明は、請求項３から６のいずれか一項記載のソフトウエアデバッグ方法であって、前記スキャン出力をファイルとして記憶する際に、ファイル名にプログラムカウンタ値情報を付加するステップを含む。
【００２４】
上記構成により、プログラムカウンタ値情報によりシステムの状態の復元が適切に行われ、プログラムの途中段階から動作を再開して的確なデバッグが行える。
【００２５】
請求項１０の発明は、請求項３から６のいずれか一項記載のソフトウエアデバッグ方法であって、前記スキャン出力をテキストデータのファイルとして記憶する際に、ファイル内のデータにプログラムカウンタ値情報を付加するステップを含む。
【００２６】
上記構成により、プログラムカウンタ値情報によりシステムの状態の復元が適切に行われ、プログラムの途中段階から動作を再開して、的確なデバッグが行える。
【００２７】
請求項１１の発明は、請求項７から１０のいずれか一項記載のソフトウエアデバッグ方法であって、プログラムカウンタ値情報に加え、メモリ及びレジスタダンプした情報を付加するステップを含む。
【００２８】
上記構成により、システムの状態と信号処理装置内の記憶内容の復元が的確に行われ、プログラムの途中段階から動作を再開して、的確なデバッグが行える。
【００２９】
請求項１２の発明は、ソフトウエア制御で動作する信号処理装置と、それに付随する周辺回路とを実装し、前記信号処理装置のスキャン回路に接続するデータ入出力回路を内蔵して、前記信号処理装置は、ソフトウエア制御で動作する回路が信号処理における機能ブロック毎に分離され、当該機能ブロック毎にスキャンのチェーン構成を備えるソフトウエア評価システムのソフトウエアデバッグ方法であって、プログラム開始からプログラム終了まで所定の頻度でプログラムを一旦停止するステップと、デバッグ対象でない機能ブロックを除き、所定の機能ブロックから停止状態でスキャン出力されるデータを記憶するステップと、記憶された前記データを再度スキャン入力してからプログラムの動作を再開させるステップとを含む。
【００３０】
上記構成により、信号データが入力された処理ブロックだけでスキャンのシリアルデータが記憶されるため、記憶手段の記憶容量が節約でき、また効率的なデバッグが可能である。
【００３１】
請求項１３の発明は、請求項３から１２のいずれか一項記載のソフトウエアデバッグ方法であって、前記停止状態でスキャン出力されるデータを記憶するステップにおいて記憶されたプログラム途中の任意のスキャン出力をスキャン入力するステップを含む。
【００３２】
上記構成により、異常が発生した直前又は直後におけるシステムの状態が完全に復元でき、プログラムの途中段階から動作を再開して効率的なデバッグが行える。
【００３３】
請求項１４の発明は、請求項１又は２記載のソフトウエア評価システムにおけるソフトウエア制御で動作する信号処理装置であって、ソフトウエア制御で動作する回路が信号処理における機能ブロック毎に分離され、該機能ブロック毎にスキャンチェーン構成を備える。
【００３４】
上記構成により、信号データが入力された処理ブロックだけでスキャンのシリアルデータが記憶されるため、記憶手段の容量が節約でき、また効率的なデバッグが可能となる。
【００３５】
請求項１５の発明は、請求項１４記載の信号処理装置を搭載する半導体デバイスである。
【００３６】
上記構成により、半導体デバイスに搭載した信号処理装置について、内部フリップフロップの状態を復元し、プログラムの途中段階から動作を再開して的確なデバッグが行える。
【発明の効果】
【００３７】
本発明によれば、メモリ、レジスタ、プログラムカウンタの値だけでなく、信号処理装置の内部フリップフロップの状態をも復元されるため、プログラムの途中段階から動作を再開でき、再現性の低い解析の困難なバグが発生した場合でも適切に、少ない工数で再現テストが行える。また、想定しない現象の発生する段階を特定することができ、デバッグが容易に行える。
【発明を実施するための最良の形態】
【００３８】
以下、本発明の実施形態のソフトウエア評価システムについて、図面を用いて詳細に説明する。
【００３９】
（第１の実施形態）
図１は、本発明の第１の実施形態におけるソフトウエア評価システムの概略構成を示す図である。ソフトウエア評価システムは、プログラム制御で動作する信号処理装置１１、信号処理装置１１に付随する周辺回路１２、デバッグ時に信号処理装置１１のメモリ（不図示）の内容を記憶する記憶手段１３、信号処理装置１１のスキャン回路（不図示）との間でシリアルデータを入出力するスキャン入出力回路１４を備える。
【００４０】
システム内の各部を接続する経路のうち、経路２１では信号処理装置１１と周辺回路１２間の入出力データが、経路２２では信号処理装置１１のメモリの内容を記憶手段１３に保存したり、保存した内容を記憶手段１３から読み出したりするメモリ保存信号が、経路２３では信号処理装置１１のスキャン回路からのシリアルデータが、それぞれ送受される。
【００４１】
上記構成において、信号処理装置１１のプログラム動作が停止すると、信号処理装置１１内部のメモリの内容が、経路２２を介してメモリ保存信号により記憶手段１３へ記憶される。また、同時に信号処理装置１１の回路状態が経路２３を介してシリアルデータで出力される。出力されたシリアルデータは、スキャン入出力回路１４で記憶手段１３が記憶可能な形態に変換され、変換されたスキャンデータが記憶手段１３に記憶される。
【００４２】
停止状態から連続した動作をさせる場合、記憶手段１３に記憶されたデータが読み出され、逆変換によりシリアルデータが生成され、生成されたシリアルデータが経路２３を介して信号処理装置１１のスキャン回路へ入力される。
【００４３】
次に、本発明の第１の実施形態におけるソフトウエア評価システムのデバッグ動作について説明する。図２は、本発明の第１の実施形態におけるソフトウエア評価システムのデバッグ動作手順を示すフローチャートである。
【００４４】
はじめに、システム状態を保持するため、プログラムの停止タイミングが条件設定される（ステップ１０１）。次に、プログラムが開始すると（ステップＳ１０２）、プログラムの停止処理に移行するかどうかが、条件設定値と現在の値との比較により判定される（ステップＳ１０３）。停止処理への移行が判定された場合、プログラムが停止され（ステップＳ１０４）、信号処理装置１１のスキャン回路（不図示）のシフト動作によりシリアルデータが出力される（ステップＳ１０５）。シリアルデータはスキャン入出力回路２４でスキャンデータに変換されて記憶手段１３に記憶させると共に、メモリ、ホストレジスタ、プログラムカウンタの値も記憶手段１３に記憶される（ステップＳ１０６）。
【００４５】
次に、記憶したスキャンデータが逆変換されてシリアルデータが生成され、信号処理装置１１のスキャン回路に入力される（ステップＳ１０７）。その後、プログラムが再開されると（ステップＳ１０８）、ステップＳ１０３の条件判定処理を続行するか、プログラムを終了するかが判定される(ステップＳ１０９）。プログラムの途中である場合はステップＳ１０３へ進み、上記と同様の手順を繰り返す。プログラムの終了が判定された場合、プログラム動作を終了する（ステップＳ１１０）。
【００４６】
一方、ステップＳ１０３において現在の値が条件設定値に達しない場合、停止タイミングではないと判断してステップＳ１０９へ進む。
【００４７】
なお、上記のステップＳ１０１では、システム状態を保持するためプログラム停止のタイミングを条件設定するが、設定する停止タイミングは時間間隔でもプログラムカウンタのカウンタ値などであってもかまわない。例えば、時間間隔を設定する場合、ステップＳ１０２でプログラムが開始すると、時間をカウントする時計が動作を開始する。そしてステップＳ１０３で設定した時間と現在の経過時間とを比較して判定を行う。また、プログラムカウンタのカウンタ値、又はそれを代用できるプログラム上のラベル等を設定する場合、ステップＳ１０２でプログラムが開始すると、カウント動作を開始する。そしてステップＳ１０３で設定値と現在の値とを比較して判定を行う。
【００４８】
以上のように、定期的に内部フリップフロップ、メモリ、レジスタ、プログラムカウンタの値を保存しているので、想定しない現象が発生した場合には、保存しておいた内部状態に再び戻すことができる。これにより、想定しない現象が発生する前に保存しておいた内部状態が完全に復元できる。
【００４９】
次に、回路状態を復元した後の動作について説明する。図３は、本発明の第１の実施形態におけるソフトウエア評価システムの回路状態復元後の動作手順を示すフローチャートである。この動作手順は、記憶手段１３に記憶された、途中段階のスキャンデータやメモリ、ホストレジスタ、プログラムカウンタの値を用いてプログラムの途中から動作を開始する際に適用される。
【００５０】
はじめに、記憶手段１３に記憶した途中段階のスキャンデータを逆変換してシリアルデータを生成し、生成されたシリアルデータを信号処理装置１１のスキャン回路に入力することにより、回路状態が復元される（ステップＳ２０１）。以降のステップＳ２０２からステップＳ２１１までは、前述の図２のフローチャートにおけるステップＳ１０１からステップＳ１１０までと同様であるので説明を省略する。
【００５１】
このようにして回路状態を復元することにより、検証における再現性を高めることができる。
【００５２】
図４は、デバッグ時に内部状態を記憶する記憶手段１３内部のデータ構成例を示す図である。記憶手段１３の内部は、内部状態を記憶する第１の領域３１、第２の領域３２、第３の領域３３、などと内部状態の大きさに合わせて領域が確保される。内部状態としては、スキャンのシリアルデータとメモリの内容、ホストレジスタやプログラムカウンタの値等がある。
【００５３】
また、領域３１には記憶する内部状態のファイル４１が、領域３２には記憶する内部状態のファイル４２が、というように確保した各領域に対応するファイルが記憶される。この時、各ファイルの管理情報である日付及び時刻がファイル名として記憶される。これにより、図３のフローチャートのステップＳ２０１における回路状態復元処理時に、復元したい時点のファイルを指定して読み出すことができる。
【００５４】
図５は、デバッグ時に内部状態を記憶する記憶手段１３内部の別のデータ構成例を示す図である。図４と異なる点は、記憶手段１３に記憶した各ファイルの管理情報である日付及び時刻がファイルの内部データとして記憶されている点である。これにより、回路状態復元処理時に復元したい時点のファイルを指定する際、ファイル内部のデータで判断して読み出すことができる。
【００５５】
また、図６は、デバッグ時に内部状態を記憶する記憶手段１３内部の更に別のデータ構成例を示す図である。図４と異なる点は、記憶手段１３に記憶した各ファイルの管理情報として、プログラムカウンタの値がファイル名に記憶されている点である。これにより、図３のフローチャートのステップＳ２０１における回路状態復元処理時に、復元したい時点のファイルを指定して読み出すことができる。
【００５６】
さらに、図７は、デバッグ時に内部状態を記憶する記憶手段１３内部の更に別のデータ構成例を示す図である。図６と異なる点は、記憶手段１３に記憶した各ファイルの管理情報であるプログラムカウンタの値がファイルの内部データとして記憶されている点である。これにより、回路状態復元処理時に復元したい時点のファイルを指定する際、ファイル内部のデータで判断して読み出すことができる。
【００５７】
また、図８は、デバッグ時に内部状態を記憶する記憶手段１３内部の更に別のデータ構成例を示す図である。記憶手段１３に記憶した各ファイルの管理情報であるプログラムカウンタの値に加え、ホストレジスタ値、メモリ値がファイルの内部データとして記憶されている。
【００５８】
次に、本発明のソフトウエア評価システムを用いた好ましいデバッグ手法について説明する。図９は、本発明の第１の実施形態におけるソフトウエア評価システムを用いたデバッグの流れを示すフローチャートである。プログラムを開始して（ステップＳ３０１）、何らかの発生要因が生じ（ステップＳ３０２）、Ｎ＋１番目の内部状態を保持した後に想定しない現象が発生して（ステップＳ３０３）、プログラムを停止させたとする（ステップＳ３０４）。
【００５９】
記憶手段１３には、Ｎ番目の内部状態とＮ＋１番目の内部状態が保持されているので、プログラム設計者がＮ＋１番目の内部状態を再現してプログラムを実行すると必ず異常が発生し（ステップＳ３０５）、一方Ｎ番目の内部状態を再現してプログラムを実行すると異常が発生したりしなかったりする（ステップＳ３０６）ことが確認されたとする。
【００６０】
この場合、Ｎ番目の内部状態からＮ＋１番目の内部状態までの間に異常に対する発生要因があることが把握できるので、Ｎ番目の内部状態を再現して異常が発生しないように対策を講じることができる（ステップＳ３０７）。このように解析対象を絞り込むことにより再現テストの工数が削減され、効率的なデバッグ作業が行える。
【００６１】
なお、第１の実施形態のソフトウエア評価システムでは、記憶手段１３はソフトウエア評価システムの外部にあっても良い。図１０は、記憶手段１３をシステムの外部に配置したソフトウエア評価システムの概略構成を示す図である。
【００６２】
（第２の実施形態）
図１１は、本発明の第２の実施形態におけるソフトウエア評価システムの概略構成を示す図である。ソフトウエア評価システムは、主に、プログラム制御で動作する信号処理装置５１、信号処理装置５１に付随する周辺回路５２、デバッグ時に信号処理装置５１のメモリの内容を記憶する記憶手段５３、信号処理装置５１の各処理ブロックのスキャン回路との間でシリアルデータを入出力するスキャン入出力回路５４、で構成される。
【００６３】
信号処理装置５１は、第１処理ブロック６１、第２処理ブロック６２、第３処理ブロック６３、など複数の処理ブロックで構成される。信号処理装置５１が扱う信号データは、第１処理ブロック６１から第２処理ブロック６２、第２処理ブロック６２から第３処理ブロック６３、というように順次処理される。また、第１処理ブロック６１からの経路７１、第２処理ブロック６２からの経路７２、第３処理ブロック６３からの経路７３、などのように各処理ブロックのスキャン回路（不図示）からの経路は、スキャン入出力回路５４に接続している。
【００６４】
プログラム制御により信号処理装置５１が動作する際、第１処理ブロック６１の処理が完了するまで第２処理ブロック６２には信号データが供給されず、同様に第２処理ブロック６２の処理が完了するまで第３処理ブロック６３には信号データが供給されない。各処理ブロックの処理が順次進行するブロック毎にスキャン回路を接続していることにより、必要なスキャンのシリアルデータのみが選別できる。
【００６５】
次に、本発明の第２の実施形態におけるソフトウエア評価システムのデバッグ動作について説明する。図１２は、本発明の第２の実施形態におけるソフトウエア評価システムのデバッグ動作手順を示すフローチャートである。
【００６６】
まず、ステップＳ４０１からステップＳ４０４までの手順は、第１の実施形態における図２のフローチャートのステップＳ１０１からステップＳ１０４と同じであるため説明を省略する。次に、信号処理装置５１における各処理ブロックのスキャン回路のシフト動作によりシリアルデータが出力される（ステップＳ４０５）。次に、シリアルデータからスキャン入出力回路５４により変換されたスキャンデータが記憶手段５３に記憶される（ステップＳ４０６）。この際、記憶手段５３からブロック毎に任意にデータを取り出すことができる。次に、記憶手段５３に記憶したデータが逆変換されてシリアルデータが生成され、信号処理装置５１の当該処理ブロックのスキャン回路に入力される（ステップＳ４０７）。以降のステップＳ４０８からステップＳ４１０までの手順は、実施の形態１における図２のフローチャートのステップＳ１０８からステップＳ１１０と同じであるため説明を省略する。
【００６７】
以上のように、信号データが入力されていない処理ブロックは、デバッグ時に状態再現のための回路状態復元が不要であるため、スキャンのシリアルデータの記憶が行われない。これにより、記憶手段５３の記録領域の縮小が可能となる。
【００６８】
なお、第２の実施形態のソフトウエア評価システムでは、記憶手段５３はソフトウエア評価システムの外部にあっても良い。図１３は、記憶手段５３をシステムの外部に配置したソフトウエア評価システムの概略構成を示す図である。
【００６９】
また、本発明の実施形態におけるソフトウエア評価システムの信号処理装置は、半導体集積回路として実装され、上記のソフトウエアデバッグ方法で検証・デバッグされる。図１４は、本発明の実施形態におけるソフトウエア評価システムの信号処理装置を実装した半導体デバイスの概略構成を示す図である。
【産業上の利用可能性】
【００７０】
本発明のソフトウエア評価システム及びそれを用いたソフトウエアデバッグ方法は、メモリ、レジスタ、プログラムカウンタの値だけでなく、信号処理装置の内部フリップフロップの状態をも復元されるため、プログラムの途中段階から動作を再開でき、再現性の低い解析の困難なバグが発生した場合でも適切に、少ない工数で再現テストが行えるという効果を有し、ソフトウエア制御で動作する信号処理装置と、それに付随する周辺回路を実装したソフトウエア評価システム及びそれを用いたソフトウエアデバッグ方法等として有用である。
【図面の簡単な説明】
【００７１】
【図１】本発明の第１の実施形態におけるソフトウエア評価システムの概略構成を示す図である。
【図２】本発明の第１の実施形態におけるソフトウエア評価システムのデバッグ動作手順を示すフローチャートである。
【図３】本発明の第１の実施形態におけるソフトウエア評価システムの回路状態復元後の動作手順を示すフローチャートである。
【図４】デバッグ時に内部状態を記憶する記憶手段内部のデータ構成例を示す図である。
【図５】デバッグ時に内部状態を記憶する記憶手段内部のデータ構成例を示す図である。
【図６】デバッグ時に内部状態を記憶する記憶手段内部のデータ構成例を示す図である。
【図７】デバッグ時に内部状態を記憶する記憶手段内部のデータ構成例を示す図である。
【図８】デバッグ時に内部状態を記憶する記憶手段内部のデータ構成例を示す図である。
【図９】本発明の第１の実施形態におけるソフトウエア評価システムを用いたデバッグの流れを示すフローチャートである。
【図１０】記憶手段をシステムの外部に配置したソフトウエア評価システムの概略構成を示す図である（第１の実施形態）。
【図１１】本発明の第２の実施形態におけるソフトウエア評価システムの概略構成を示す図である。
【図１２】本発明の第２の実施形態におけるソフトウエア評価システムのデバッグ動作手順を示すフローチャートである。
【図１３】記憶手段をシステムの外部に配置したソフトウエア評価システムの概略構成を示す図である（第２の実施形態）。
【図１４】本発明の実施の形態におけるソフトウエア評価システムの信号処理装置を実装した半導体デバイスの概略構成を示す図である。
【図１５】従来のデバッグの流れを示すフローチャートである。
【符号の説明】
【００７２】
１１  信号処理装置
１３  記憶手段
１４  スキャン入出力回路
５１  信号処理装置
５３  記憶手段
５４  スキャン入出力回路
６１、６２、６３  処理ブロック
８１  半導体デバイス
８２  信号処理装置
【図１】
2005071153.tif 000003
【図２】
2005071153.tif 000004
【図３】
2005071153.tif 000005
【図４】
2005071153.tif 000006
【図５】
2005071153.tif 000007
【図６】
2005071153.tif 000008
【図７】
2005071153.tif 000009
【図８】
2005071153.tif 000010
【図９】
2005071153.tif 000011
【図１０】
2005071153.tif 000012
【図１１】
2005071153.tif 000013
【図１２】
2005071153.tif 000014
【図１３】
2005071153.tif 000015
【図１４】
2005071153.tif 000016
【図１５】
2005071153.tif 000017