(57)【要約】【課題】複数の信号を観測する場合であっても、内部状態を確認したいタイミングとズレが生じてしまうことがなく、不正な動作で内部バスがロックしていても信号を観測できる半導体デバイス及びそのデバッグ方法を提供する。【解決手段】機能モジュール１０１〜１０３を備えた半導体デバイス１００であって、内部の状態を示す複数のモニタ信号が、内部バス１０４とは異なる転送経路を介して入力されるモニタ信号セレクタ１０６と、モニタ信号セレクタ１０６によって選択されたモニタ信号を外部へ出力するシリアル通信モジュール１０７と、複数のモニタ信号の各々をトリガに応じて保持するラッチ手段とを有する。【選択図】図１
2010278255.tif 000002
【特許請求の範囲】
【請求項１】
機能モジュールを複数備えた半導体デバイスであって、
内部の状態を示す複数のモニタ信号が、内部バスとは異なる転送経路を介して入力されるセレクタと、
前記セレクタによって選択されたモニタ信号を外部へ出力する通信手段と、
前記複数のモニタ信号の各々をトリガに応じて保持するラッチ手段とを有することを特徴とする半導体デバイス。
【請求項２】
前記モニタ信号は、前記複数の機能モジュールの各々から前記転送経路へ出力され、
前記ラッチ手段が、前記機能モジュールと前記セレクタとの間の前記転送経路上、又は前記機能モジュール内、若しくは前記セレクタ内に設けられたことを特徴とする請求項１記載の半導体デバイス。
【請求項３】
前記機能モジュールは、複数のモニタ信号のうち外部から指定されたものを前記転送経路へ出力することを特徴とする請求項１又は２記載の半導体デバイス。
【請求項４】
前記機能モジュールは、前記ラッチ手段が保持したモニタ信号を格納するメモリを備えることを特徴とする請求項１から３のいずれか１項記載の半導体デバイス。
【請求項５】
前記セレクタは、前記ラッチ手段に保持されたモニタ信号を格納するメモリを備えることを特徴とする請求項１から３のいずれか１項記載の半導体デバイス。
【請求項６】
前記内部バスを監視することによって前記モニタ信号を生成して前記転送経路へ出力するバスモニタ手段を有し、
前記ラッチ手段は、前記セレクタ内に設けられていることを特徴とする請求項１記載の半導体デバイス。
【請求項７】
前記機能バスモニタ手段は、複数のモニタ信号のうち外部から指定されたものを前記転送経路へ出力することを特徴とする請求項６記載の半導体デバイス。
【請求項８】
前記セレクタは、前記ラッチ手段に保持されたモニタ信号を格納するメモリを備えることを特徴とする請求項６又は７記載の半導体デバイス。
【請求項９】
前記トリガが、外部から入力されることを特徴とする請求項１から８のいずれか１項記載の半導体デバイス。
【請求項１０】
前記複数のモニタ信号のうちの所定の組合せが所定の条件を満たした場合に前記トリガを内部で生成することを特徴とする請求項１から８のいずれか１項記載の半導体デバイス。
【請求項１１】
前記所定の条件を複数登録し、それらのいずれを用いるかが切り替え可能であることを特徴とする請求項１０記載の半導体デバイス。
【請求項１２】
前記所定の条件に識別子が割り当てられており、任意の所定の条件に関して、それが成立した場合に次に用いる所定の条件を前記識別子によって指定可能であることを特徴とする請求項１１記載の半導体デバイス。
【請求項１３】
機能モジュールを複数備えた半導体デバイスのデバッグ方法であって、
内部の状態を示す複数のモニタ信号を、内部バスとは異なる転送経路を介してセレクタに入力する工程と、
前記セレクタによって選択したモニタ信号を外部へ出力する出力工程とを有し、
前記出力工程よりも前段に、前記複数のモニタ信号の各々をトリガに応じて保持するラッチ工程を有することを特徴とする半導体デバイスのデバッグ方法。
【請求項１４】
前記モニタ信号を、前記複数の機能モジュールの各々から前記転送経路へ出力し、
前記機能モジュールと前記セレクタとの間の前記転送経路上、又は前記機能モジュール内、若しくは前記セレクタ内において前記モニタ信号を保持することを特徴とする請求項１３記載の半導体デバイスのデバッグ方法。
【請求項１５】
前記内部バスを監視することによって前記モニタ信号を生成して前記転送経路へ出力し、
前記セレクタ内において前記モニタ信号を保持することを特徴とする請求項１３記載の半導体デバイスのデバッグ方法。
【請求項１６】
前記トリガを、前記半導体デバイスの外部から入力することを特徴とする請求項１３から１５のいずれか１項記載の半導体デバイスのデバッグ方法。
【請求項１７】
前記複数のモニタ信号のうちの所定の組合せが所定の条件を満たした場合に、前記半導体デバイスに前記トリガを生成させることを特徴とする請求項１３から１５のいずれか１項記載の半導体デバイスのデバッグ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体デバイスに関し、特に、複数の内部信号の状態を情報取得タイミングのズレを生じさせることなく確認でき、不正な動作で内部バスがロックしていても信号を観測できる半導体デバイス及びそのデバッグ方法に関する。
【背景技術】
【０００２】
半導体の内部情報を取得するにあたって、従来の方法では、端末からのアクセスに基づいて内部信号状態を応答していたため、複数の信号状態を確認する際に情報取得タイミングにズレが発生していた。そのため、特定のタイミングでデバイス内部がどのような状態にあるのか、確認が困難な場合があった。
【０００３】
図２２に、従来の半導体デバイスの構成を示す。このような半導体デバイスでは、デバイス内部の動作状態を観測するために、シリアル通信モジュールを他のモジュールと同様にデバイス内部に設け、これに対してターミナルＰＣからコマンドを発行することでデバイス内部の観測場所を指定し、内部信号やレジスタ設定値などの情報を取得していた。
【０００４】
しかしながら、上記構成においては、機能モジュール又は制御ソフトの不具合で内部バスのアクセス途中で応答停止した場合、シリアル通信モジュールが内部バス経由で情報を取得できないという問題がある。
【０００５】
また、ターミナルＰＣからのアクセスによって内部状態が転送されることによって内部情報を取得するため、複数の信号を観測する場合には、ターミナルＰＣからのコマンド送信やシリアル通信モジュールのデータ受信時間によってデータ取得の時間差が発生し、実際に内部状態を確認したいタイミングとズレが生じるなどの問題があった。
【０００６】
半導体デバイスのデバイス内部の動作状態の監視に関する技術として、特許文献１に開示される「動作監視システム、半導体装置及び情報収集装置」や特許文献２に開示される「半導体デバイス、電子装置及びアクセスログ取得方法」があるが、これらの発明においても同様の問題が生じる。
【０００７】
また、レジスタに書き込まれた設定値情報などは、内部バスを経由して取得しているため、不正な動作で内部バスがロックしている時には情報が読み出せないといった問題がある。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記のように、特許文献１、２に開示される発明を含め、従来の半導体デバイスは、複数の信号を観測する場合には、内部状態を確認したいタイミングとズレが生じてしまう上に、不正な動作で内部バスがロックしている時には情報が読み出すことができなかった。
【０００９】
本発明は係る問題に鑑みてなされたものであり、複数の信号を観測する場合であっても、内部状態を確認したいタイミングとズレが生じてしまうことがなく、不正な動作で内部バスがロックしていても信号を観測できる半導体デバイス及びそのデバッグ方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、本発明は、第１の態様として、機能モジュールを複数備えた半導体デバイスであって、内部の状態を示す複数のモニタ信号が、内部バスとは異なる転送経路を介して入力されるセレクタと、セレクタによって選択されたモニタ信号を外部へ出力する通信手段と、複数のモニタ信号の各々をトリガに応じて保持するラッチ手段とを有することを特徴とする半導体デバイスを提供するものである。
【００１１】
また、上記目的を達成するため、本発明は、第２の態様として、機能モジュールを複数備えた半導体デバイスのデバッグ方法であって、内部の状態を示す複数のモニタ信号を、内部バスとは異なる転送経路を介してセレクタに入力する工程と、セレクタによって選択したモニタ信号を外部へ出力する出力工程とを有し、出力工程よりも前段に、複数のモニタ信号の各々をトリガに応じて保持するラッチ工程を有することを特徴とする半導体デバイスのデバッグ方法を提供するものである。
【発明の効果】
【００１２】
本発明によれば、複数の信号を観測する場合であっても、内部状態を確認したいタイミングとズレが生じてしまうことがなく、不正な動作で内部バスがロックしていても信号を観測できる半導体デバイス及びそのデバッグ方法を提供できる。
【図面の簡単な説明】
【００１３】
【図１】本発明を好適に実施した第１の実施形態に係る半導体デバイスの構成を示す図である。
【図２】第１の実施形態に係る半導体デバイスのデバッグ動作の流れを示す図である。
【図３】第１の実施形態に係る半導体デバイスの別の構成を示す図である。
【図４】第１の実施形態に係る別の構成の半導体デバイスのデバッグ動作の流れを示す図である。
【図５】モニタ信号の選択機能を有する機能モジュールの構成例を示す図である。
【図６】ラッチ回路を備えた機能モジュールの構成例を示す図である。
【図７】機能モジュールがラッチ回路を備えた構成の半導体デバイスのデバッグ動作の流れを示す図である。
【図８】ラッチ回路を備えたモニタ信号セレクタの構成例を示す図である。
【図９】モニタ信号セレクタがラッチ回路を備えた構成の半導体デバイスのデバッグ動作の流れを示す図である。
【図１０】本発明を好適に実施した第２の実施形態に係る半導体デバイスの構成を示す図である。
【図１１】トリガ信号生成部の構成の一例を示す図である。
【図１２】組合せ回路の構成の一例を示す図である。
【図１３】トリガ信号生成部の構成の一例を示す図である。
【図１４】第２の実施形態に係る半導体デバイスのデバッグ動作の流れを示す図である。
【図１５】メモリを備えたモニタ信号セレクタの構成例を示す図である。
【図１６】バスモニタを備えた半導体デバイスの通常デバイス部の構成例を示す図である。
【図１７】内部バスからの内部信号の転送タイミングの一例を示す図である。
【図１８】本発明を好適に実施した第５の実施形態に係る半導体デバイスの構成を示す図である。
【図１９】第５の実施形態に係る半導体デバイスのデバッグ動作の流れを示す図である。
【図２０】本発明を好適に実施した第６の実施形態に係る半導体デバイスの構成を示す図である。
【図２１】第６の実施形態に係る半導体デバイスのトリガ信号生成部の構成例を示す図である。
【図２２】従来の半導体デバイスの構成を示す図である。
【発明を実施するための形態】
【００１４】
本発明の好適な実施の形態について説明する。
図１に、本発明の好適な実施の形態に係る半導体デバイスの構成を示す。半導体デバイス１００は、機能モジュール１０１〜１０３、内部バス１０４及びＣＰＵインタフェース（ＣＰＵＩ／Ｆ）１０５を備えた通常デバイス部と、モニタ信号セレクタ１０６と、シリアル通信モジュール１０７とを有する。
図中に点線枠で示す通常デバイス部は、一般的な半導体デバイスと同様であり、ＣＰＵＩ／Ｆ１０５を介して接続されたＣＰＵ２００からの要求に応じて機能モジュール１０１〜１０３が司る機能を提供する。
モニタ信号セレクタ１０６は、モニタ信号選択回路２１０から入力されるセレクト信号に基づいて、機能モジュール１０１〜１０３から入力される信号のうちのいずれをシリアル通信モジュール１０７へ出力するかを選択する。シリアル通信モジュール１０７は、内部信号を観測するためのターミナルＰＣ３００と接続されている。
【００１５】
モニタ信号選択回路２１０は、ＣＰＵ２００からの指示に応じて、どのモニタ信号を監視対象とするかを示すセレクト信号をモニタ信号セレクタ１０６へ出力する。
【００１６】
図１に示すように、内部情報取得に必要な信号を内部バス１０４を経由せずに独立して機能モジュール１０１〜１０３から引き出してモニタ信号セレクタ１０６へ入力し、モニタ信号セレクタ１０６で選択された信号をシリアル通信モジュール１０７へ出力する。これにより、シリアル通信モジュール１０７は、通常デバイス部の動作の影響を受けない回路構成をとっている。図示するように、機能モジュール１０１〜１０３の観測に必要なモニタ信号線を必要数だけ各機能モジュールから引き出し、モニタ信号セレクタ１０６に接続する。モニタ信号セレクタ１０６に接続された各モニタ信号線のいずれを観測対象とするかは、モニタ信号選択回路２１０によって選択される。半導体デバイス１００は、ターミナルＰＣ３００からの読み出し要求に応じて、シリアル通信モジュール１０７経由でモニタ信号情報を送信する。なお、図１においては図中で場所を特定していないが、後述するように機能モジュール１０１〜１０３又はモニタ信号セレクタ１０６、あるいはこれらの間にはモニタ信号をラッチするラッチ回路が設けられている。
【００１７】
図２に、半導体デバイス１００に接続されたＣＰＵ２００からアクセスしてモニタ信号の選択操作を行う場合のデバッグ動作の流れを示す。まず、モニタ信号を選択する（ステップＳ１０１）。その後、デバイスの動作を開始し（ステップＳ１０２）、任意のタイミングでシリアル通信モジュールから内部信号状態のデータを受信してデバイス内部の動作状態を観測する（ステップＳ１０３）。
【００１８】
なお、ここでは半導体デバイス１００に接続されたＣＰＵ２００からモニタ信号の選択操作を制御する場合を例として説明したが、デバッグ用に別のＣＰＵを接続する場合でも制御の流れは同様である。
【００１９】
図３に、本実施形態に係る半導体デバイス１００の別の構成例を示す。
モニタ信号セレクタ１０６にはターミナルＰＣ３００からのデータを受け付ける機能が実装されており、モニタ信号の選択はターミナルＰＣ３００からのデータによって指定される。すなわち、シリアル通信モジュール１０７を介してターミナルＰＣ３００から入力されたデータに基づいてモニタ信号選択部１０８がセレクト信号を生成し、これをモニタ信号セレクタ１０６へ出力することによって、監視対象のモニタ信号が指定される。
【００２０】
モニタ信号の選択をターミナルＰＣ３００からのデータによって指定する場合のデバッグ動作の流れを図４に示す。まず、モニタ信号選択コマンドをターミナルＰＣから送信してモニタ信号を選択する（ステップＳ２０１）。その後、デバイスの動作を開始し（ステップＳ２０２）、任意のタイミングでシリアル通信モジュールから内部信号状態のデータを受信してデバイス内部の動作状態を観測する（ステップＳ２０３）。
【００２１】
図１に示す構成ではモニタ信号選択のための回路（モニタ信号選択回路２１０）は半導体デバイス１００の外部に設置しているが、図３のようにモニタ信号選択部１０８として半導体デバイス１００の内部に取り込んでおけばデバッグ時の外付け回路を簡略化できる。
【００２２】
なお、全ての観測信号に対応するモニタ信号線を引き出してモニタ信号セレクタ１０６に接続すると、観測したい信号の数と同じ本数の配線がモニタ信号セレクタ１０６に集中してしまうこととなる。この問題は、図５に示すように、機能モジュール１０１〜１０３にもモニタ信号選択部を設けてモニタ選択信号に応じてモニタ信号を選択出力する機能を持たせることで、信号選択機能を分散させて解消することが可能である。この場合には、図１、図３には図示していないが、モニタ信号選択回路２１０又はモニタ信号選択部１０８から機能モジュール１０１〜１０３にモニタ選択信号が入力されることとなる。
【００２３】
内部信号の取得タイミングは、モニタ信号の状態を保持するラッチ回路を設けることにより、外部（例えばＣＰＵ２００やターミナルＰＣ３００）から入力されるモニタ信号ラッチトリガに応じて観測したいタイミングでモニタ信号を一斉に状態保持することが可能である。上記のように、図１や図３には図示していないが、ラッチ回路は、機能モジュール１０１〜１０３又はモニタ信号セレクタ１０６、あるいはこれらの間に設けられる。
【００２４】
図６は機能モジュール１０１内に信号ラッチを設けた場合の回路構成例であり、レジスタ設定値、回路の内部フラグ、ステートマシンの状態などをモニタ信号ラッチトリガが入力されたタイミングで保持し、モニタ信号としてモニタ信号セレクタ１０６へ出力する。すなわち、図１、図３では示していないが、機能モジュール１０１〜１０３にはモニタ信号選択回路２１０又はモニタ信号選択部１０８からモニタ選択信号が入力され、モニタ信号選択部でモニタ選択信号に応じてモニタ信号を選択出力する。
図６に示す構成では、レジスタ設定情報と内部フラグ情報とでモニタ信号ラッチトリガを共通としているが、レジスタ設定値情報のラッチと回路の動作状態を示す内部フラグのラッチとを分ける構成にすれば、回路の動作設定と設定値にしたがって動作開始後の別々なタイミングで機能モジュール内部の状態を知ることが可能となる。
【００２５】
機能モジュール１０１〜１０３内にラッチ回路を設けた場合のデバッグ動作の流れを図７に示す。まず、モニタ信号を選択する（ステップＳ３０１）。そして、デバイス動作を開始する（ステップＳ３０３）。デバイス動作の開始後、内部信号を観測したいタイミングでデバイス外部からモニタ信号のラッチトリガ信号を信号ラッチ回路に送信し（ステップＳ３０３）、内部信号状態を保持した後にデバイス内部信号状態を受信して観測する（ステップＳ３０４）。
【００２６】
また、図８に示すように、モニタ信号セレクタ１０６内にモニタ信号ラッチ回路１０６１〜１０６３を設ければ、機能モジュール１０１〜１０３間の内部状態を同じタイミングで比較可能となる。図８の構成では、モニタ信号選択、モニタ信号ラッチトリガともシリアル通信モジュール１０７からモニタ信号選択部１０８を介して制御しているため、デバッグ動作の手順は図９に示すように、モニタ信号選択コマンドをターミナルＰＣから送信してモニタ信号を選択した後（ステップＳ４０１）、デバイスの動作を開始し（ステップＳ４０２）、任意のタイミングでシリアル通信モジュールから内部信号状態ラッチのためのモニタ信号ラッチコマンドを送信し（ステップＳ４０３）、内部信号状態を保持した後に内部信号状態データを受信してデバイス内部の動作状態を観測する（ステップＳ４０４）という流れとなる。
【００２７】
このように、デバイスの機能とデバッグ回路とを分離することで、回路やソフト制御に不具合があった場合でもデバイス内部状態を監視することが可能となる。また、トリガ信号によるラッチによってデバイス内部状態の確認タイミングを揃えることで、ターミナルＰＣからのアクセスやシリアル通信モジュールの転送時間に起因するタイムラグを解消し、機能モジュール間の動作状態比較の時間軸を揃えることで、解析が容易となる。
【００２８】
〔第２の実施形態〕
本発明を好適に実施した第２の実施形態について説明する。図１０に本実施形態に係る半導体デバイスの構成を示す。本実施形態に係る半導体デバイス１００は、トリガ信号生成部１０９をさらに有する。トリガ信号生成部１０９は、モニタ信号をラッチするためのモニタ信号ラッチトリガを、モニタ信号の組合せを条件として生成し、機能モジュール１０１〜１０３へ出力する。機能モジュール１０１〜１０３は、モニタ信号ラッチトリガに応じてモニタ信号を保持する。
【００２９】
トリガ信号生成部１０９は、図１１に示すように、入力信号を選択する信号選択部１０９１と信号の組合せ条件を決定する組合せ回路１０９２とからなる。信号選択部１０９１では機能モジュール１０１〜１０３からのモニタ信号などのデバイス内部信号を選択することで入力信号の組合せ条件を決定する。
図１２に組合せ回路１０９２の構成例を示す、組合せ回路１０９２は入力端子Ａ、Ｂのそれぞれから入力される信号同士を演算する素子が複数種設けられており、ＳＥＬ信号によって選択された素子での演算結果を出力する。
【００３０】
動作例としては、入力信号（１）を組合せ回路１０９２の入力Ａに、入力信号（３）を組合せ回路１０９２の入力Ｂに入力するように信号選択部１０９１で信号を選択する。後段の組合せ回路１０９２では、入力信号の論理積である「ＡＮＤ」の出力結果を選択することによって内部信号で「（１）＆（３）」という条件を選択できる。
また、図１３に示すように、トリガ信号生成部１０９は、信号選択部の出力結果を次の段のトリガ信号を選択する際の入力信号とする複数段構成をとれば、入力信号の選択条件を増やすことが可能となる。
【００３１】
トリガ信号生成部１０９を備えた構成の半導体デバイス１００におけるデバッグ動作の流れを図１４に示す。まずモニタ信号を選択する（ステップＳ５０１）。そしてトリガ信号を選択する（ステップＳ５０２）。これらを選択することによってトリガ条件が設定される。その後、デバイス動作開始する（ステップＳ５０３）。そして、モニタ信号ラッチトリガによって内部信号状態を保持した後、内部信号状態を観測する（ステップＳ５０４）。
【００３２】
トリガ信号をデバイス内部で生成することで、外部からのトリガ信号入力時のタイムラグが無くなる。また、内部信号状態をトリガにすることで、デバイス内部の動作条件に基づく状態監視が可能になり、内部状態遷移などの解析が容易となる。
【００３３】
〔第３の実施形態〕
本発明を好適に実施した第３の実施形態について説明する。
半導体モジュールの全体的な構成は、第１の実施形態と同様である。ただし、内部信号状態をラッチした後、通信モジュールでデータ送信する前に、一度内部メモリに書き込む構成をとる。
図１５に、本実施形態に係る半導体モジュールの要部の構成を示す。モニタ信号ラッチ１０６１〜１０６３は、モニタ信号ラッチトリガに応じて状態を保持する。同じトリガ信号をきっかけにメモリ書き込み信号生成部１０６８がメモリ書き込み信号を生成して内部メモリ１０６５〜１０６７に出力することにより、モニタ信号ラッチ１０６１〜１０６３がラッチしているモニタ信号が内部メモリ１０６５〜１０６７へ書き込まれる。シリアル通信モジュール１０７は、内部メモリ１０６５〜１０６７に書き込まれた内部信号状態を表すモニタ信号を、メモリ読み出し信号生成部１０６４ａを用いて順次読み出し、ターミナルＰＣへ送信する。一旦内部メモリ１０６５〜１０６７にモニタ信号を蓄積することで、トリガ条件が複数回発生しても内部情報の取りこぼしは生じない。
なお、ここではモニタ信号セレクタ１０６内に内部メモリ１０６５〜１０６７を設けた構成を例としたが、機能モジュール１０１〜１０３とモニタ信号セレクタ１０６との間や機能モジュール１０１〜１０３内にメモリを設けてモニタ信号を蓄積しても良い。
【００３４】
モニタ信号をメモリに一旦蓄積することにより、内部状態監視するタイミングが複数発生する場合に、ターミナルＰＣからのアクセスやシリアル通信モジュールの転送時間よりも短い間隔で監視条件が発生しても、シリアル通信モジュールの通信時間に影響を受けずに内部状態を監視できる。
【００３５】
〔第４の実施形態〕
本発明を好適に実施した第４の実施形態について説明する。
本実施形態に係る半導体デバイスの構成は、第３の実施形態とほぼ同様である。ただし、本実施形態においては、レジスタ設定値や回路動作のフラグなどではなく、内部バスを監視してデータ転送情報を取得する。
図１６に本実施形態に係る半導体デバイスの要部の構成を示す。図示するように、機能モジュール１０１〜１０３に接続される内部バス１０４に、バスモニタ１１０〜１１２を接続している。バスモニタ１１１〜１１２は、データバス、アドレスバス以外に、リード、ライトといったデータの転送方向を示すコマンド信号、データが確定したことを通知するレスポンス信号を監視し、実際にデータ転送が行われたアドレス、データ情報を取り込む動作を実行する。
【００３６】
図１７に、実際の転送タイミングの一例を示す。
機能モジュール１０１〜１０３への書き込み情報の取得は、コマンド信号線にデータライトを示すコマンド（ＷＲ１）が検出されたタイミングでアドレスバス（Ａ１）、データバス（Ｄ１）の信号状態をラッチする。
機能モジュール１０１〜１０３からの読み出し情報の取得は、コマンド信号線にデータリードを示すコマンド（ＲＤ２）が検出されたタイミングでアドレスバス（Ａ２）の信号状態をラッチする。次に内部バスのデータ確定通知する信号（Ｓｒｅｓｐ）を監視して、Data Varid（ＤＶＡ２）の状態が検出されたタイミングでデータバス（Ｄ２）の信号状態をラッチする。
機能モジュール１０１〜１０３への書き込み、読み出しでアドレス、データ情報を取得するごとに内部メモリ１０６５〜１０６７へ書き込みを行い、シリアル通信モジュールからターミナルＰＣへデータの転送を行うことで、内部バス１０４に流れるデータ情報を監視する。
【００３７】
機能モジュール１０１〜１０３に転送されるデータを監視することで、半導体デバイス内部で実行されている処理が正しいか否かの確認が容易となる。
【００３８】
〔第５の実施形態〕
本発明を好適に実施した第５の実施形態について説明する。図１８に、本実施形態に係る半導体デバイスの構成を示す。本実施形態に係る半導体デバイス１００は、第２の実施形態とほぼ同様であるが、モニタ信号の選択条件が予めレジスタ設定値としてトリガ信号選択部１１３に格納されている。
【００３９】
トリガ信号生成部１０９で内部情報をラッチするトリガ条件が成立したタイミングで、次のトリガ選択信号をトリガ信号選択部１１３からトリガ信号生成部１０９に送り、トリガ信号出力条件を切り替える。トリガ条件が複数設定されている場合は、設定されている順番にトリガ条件を切り替えていく。
【００４０】
図１９に、モニタ信号の選択条件が予めレジスタ設定値としてトリガ信号選択部１１３に格納されている構成でのデバッグ動作の流れを示す。まず、モニタ信号を選択する（ステップＳ６０１）。続いて、トリガ信号選択条件を設定する（ステップＳ６０２）。その後、デバイスの動作を開始し（ステップＳ６０３）、モニタ信号ラッチトリガによって内部信号状態を保持した後、内部信号状態を観測する（ステップＳ６０４）。
【００４１】
デバイス内部情報の取得条件を事前に設定しておくことで、内部情報の取得条件切替速度が向上する。また、内部状態を監視するタイミング条件で、内部情報の取得条件が複数あり、且つ観測タイミングの時間のずれのある場合の条件設定が容易となる。
【００４２】
なお、ここではモニタ信号の選択条件がレジスタ設定値として格納されている場合を例としたが、これらはメモリに格納されていても良い。
【００４３】
〔第６の実施形態〕
本発明を好適に実施した第６の実施形態について説明する。図２０に本実施形態に係る半導体デバイスの構成を示す。第５の実施形態とほぼ同様の構成であるが、トリガ信号選択部に格納されている情報は、トリガ信号選択条件とトリガ信号切り替えＩＤとで構成される。
また、トリガ信号生成部１０９は、トリガ条件判定部１０９３とＩＤ選択部１０９４とを備えている。
【００４４】
トリガ信号生成部１０９は、モニタ信号の状態を監視し、予め定められた信号状態の組合せが発生するか否かをトリガ条件判定部１０９３で常に確認している。トリガ信号選択条件を複数設定し、設定したトリガ発生条件が成立した場合、モニタ信号ラッチトリガをモニタ信号セレクタ１０６へ送信するとともに、次に監視するトリガ条件を示すトリガ信号切り替えＩＤをトリガ信号選択部１１３に送信する。
トリガ信号選択部１１３は、受信したトリガ信号切り替えＩＤに基づき、次に監視するモニタ信号状態の組合せ条件をトリガ選択信号としてトリガ信号生成部１０９へ送り、トリガ選択条件と次のトリガ選択条件を示すポイント情報をトリガ信号生成部１０９に設定する。
【００４５】
図２１に、トリガ信号生成部１０９の構成を示す。ＩＤ選択部１０９４には、図２０においては不図示であるが、外部装置（ＣＰＵ２００など）からＩＤ選択信号が入力されるようになっている。
機能モジュール１０１〜１０３からのモニタ信号は、トリガ選択信号に基づいて信号選択部１０９３ａによって選択され、選択された組合せ条件に応じて組合せ回路１０９３ｂから出力される。組合せ回路１０９３ｂの出力は、モニタ信号ラッチトリガとしてモニタ信号セレクタ１０６へ出力される。また、組合せ回路１０９３ｂの出力は、ＩＤ情報出力トリガとしてＩＤ選択部１０９４へ入力され、ＩＤ選択部１０９４は入力されたＩＤ情報出力トリガに応じてトリガ選択信号切り替えＩＤをトリガ信号選択部１１３へ出力する。
すなわち、トリガ条件判定部１０９３がトリガ条件が成立したことを検知した場合に、ＩＤ選択部１０９４からはＩＤ情報出力トリガに応じてトリガ選択信号切り替えＩＤがトリガ信号選択部１１３へ出力されることにより、トリガ条件が成立した際に次のトリガ条件がＩＤとして指定されることとなる。
【００４６】
このように、内部情報取得の切り替え条件設定を複数用意し、信号状態の組合せによって次に観測する信号を切り替えることで、デバイスの動作の変化に対応した内部信号観測が可能となる。
【００４７】
なお、上記各実施形態は本発明の好適な実施の一例であり、本発明はこれらに限定されることはなく、様々な変形が可能である。
【符号の説明】
【００４８】
１００    半導体デバイス
１０１、１０２、１０３    機能モジュール
１０４    内部バス
１０５    ＣＰＵＩ／Ｆ
１０６    モニタ信号セレクタ
１０７    シリアル通信モジュール
１０８    モニタ信号選択部
１０９    トリガ信号生成部
１１０、１１１、１１２    バスモニタ
１１３    トリガ信号選択部
２００    ＣＰＵ
２１０    モニタ信号選択回路
３００    ターミナルＰＣ
１０６１、１０６２、１０６３    モニタ信号ラッチ
１０６４    信号セレクタ
１０６４ａ    メモリ読み出し信号生成部
１０６５、１０６６、１０６７    内部メモリ
１０６８    メモリ書き込み信号生成部
１０８１    ラッチトリガ生成部
１０９１    信号選択部
１０９２    組合せ回路
１０９３    トリガ条件判定部
１０９４    ＩＤ選択部
【先行技術文献】
【特許文献】
【００４９】
【特許文献１】特開２００７−３２８７６８号公報
【特許文献２】特開２００８−２８７３１９号公報
【図１】
2010278255.tif 000003
【図２】
2010278255.tif 000004
【図３】
2010278255.tif 000005
【図４】
2010278255.tif 000006
【図５】
2010278255.tif 000007
【図６】
2010278255.tif 000008
【図７】
2010278255.tif 000009
【図８】
2010278255.tif 000010
【図９】
2010278255.tif 000011
【図１０】
2010278255.tif 000012
【図１１】
2010278255.tif 000013
【図１２】
2010278255.tif 000014
【図１３】
2010278255.tif 000015
【図１４】
2010278255.tif 000016
【図１５】
2010278255.tif 000017
【図１６】
2010278255.tif 000018
【図１７】
2010278255.tif 000019
【図１８】
2010278255.tif 000020
【図１９】
2010278255.tif 000021
【図２０】
2010278255.tif 000022
【図２１】
2010278255.tif 000023
【図２２】
2010278255.tif 000024