(57)【要約】【課題】トレース用端子を増設することなく、最小限のメモリで、複数リソースのトレースを実行する。【解決手段】半導体装置は、同じ内容のプログラムが実行される毎に、ＲＯＭ１のアドレス、ＲＡＭ２のアドレス、ＲＡＭ２の中から、選択すべき１つのデータを切り替えて、トレース情報として出力するセレクタ１２と、前記同じ内容のプログラムが実行される毎にセレクタ１２により選択されたトレース情報を記憶し、次の同じ内容のプログラムが実行される前に前記記憶されたトレース情報が読み出されるトレース用メモリ１７と、を備えている。【選択図】図１
2010231405.tif 000002
【特許請求の範囲】
【請求項１】
リード・オンリー・メモリと、
ランダム・アクセス・メモリと、
同じ内容のプログラムが実行される毎に、前記リード・オンリー・メモリのアドレス、前記ランダム・アクセス・メモリのアドレス、前記ランダム・アクセス・メモリの中から、選択すべき１つのデータを切り替えて、トレース情報として出力する選択手段と、
前記同じ内容のプログラムが実行される毎に前記選択手段により選択されたトレース情報を記憶し、次の同じ内容のプログラムが実行される前に前記記憶されたトレース情報が読み出される第１の記憶手段と、
を備えた半導体装置。
【請求項２】
請求項１の半導体装置と、
前記半導体装置の前記第１の記憶手段から読み出されたトレース情報に基づいて前記半導体装置を診断する診断手段と、
を備えた半導体装置診断システム。
【請求項３】
前記半導体装置から出力された命令の先頭を示す先頭サイクル有効信号と、前記半導体装置に入力される又は前記半導体装置から出力される入出力信号と、を記憶する第２の記憶手段を更に備え、
前記診断手段は、前記入出力信号が活性化された状態であるときに前記第１及び第２の記憶手段に記憶された情報に基づいて前記半導体装置を診断する
請求項２に記載の半導体装置診断システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置及びその診断システムに関する。
【背景技術】
【０００２】
従来、半導体装置のオンチップデバッグによるトレース方式は、大別すると、次の２つがある。
【０００３】
第１の方式としては、トレースのための回路を内蔵しない半導体装置について、各半導体装置が出力するトレースデータを集めて半導体装置を診断する技術がある（例えば、特許文献１を参照）。特許文献１の技術では、半導体装置の規模が大きいほど、半導体装置の内部情報をより多くトレースする必要がある。第２の方式としては、半導体装置がトレース記憶部を有し、トレース情報をトレース記憶部に書き込む技術がある（例えば、特許文献２を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平５−１２０７０号公報
【特許文献２】特開平５−６６９７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１の技術では、デバッグ用端子として、インタフェース端子以外に、トレース専用の端子が必要になってしまい、半導体装置の端子数が増加するという問題がある。また、特許文献２の技術では、デバッグ用の端子は必要ないが、トレース対象の個数分のトレース記憶部（トレース用メモリ）が必要になり、半導体装置のゲート数が増加するとい問題がある。
【０００６】
本発明は、上述した課題を解決するために提案されたものであり、トレース用端子を増設することなく、最小限のメモリで、複数リソースのトレースを実行できる半導体装置及びその診断システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
請求項１の発明である半導体装置は、リード・オンリー・メモリと、ランダム・アクセス・メモリと、同じ内容のプログラムが実行される毎に、前記リード・オンリー・メモリのアドレス、前記ランダム・アクセス・メモリのアドレス、前記ランダム・アクセス・メモリの中から、選択すべき１つのデータを切り替えて、トレース情報として出力する選択手段と、前記同じ内容のプログラムが実行される毎に前記選択手段により選択されたトレース情報を記憶し、次の同じ内容のプログラムが実行される前に前記記憶されたトレース情報が読み出される第１の記憶手段と、を備えている。
【０００８】
本発明によれば、同じ内容のプログラムが実行される毎に、リード・オンリー・メモリのアドレス、ランダム・アクセス・メモリのアドレス、ランダム・アクセス・メモリの中から、選択すべき１つのデータを切り替えてトレース情報として出力し、同じ内容のプログラムが実行される毎に選択手段により選択されたトレース情報を第１の記憶手段に記憶し、次の同じ内容のプログラムが実行される前に記憶されたトレース情報が読み出される。したがって、第１の記憶手段からトレース情報を読み出すだけで、トレース用端子を増設し、又は、他の記憶手段を使用することなく、半導体装置を診断するために必要な情報が得られる。
【０００９】
請求項２の発明である半導体装置診断システムは、請求項１の半導体装置と、前記半導体装置の前記第１の記憶手段から読み出されたトレース情報に基づいて前記半導体装置を診断する診断手段と、を備えている。
【００１０】
したがって、トレース用端子を増設し、又は、他の記憶手段を使用することなく、第１の記憶手段から読み出されたトレース情報に基づいて、半導体装置を診断することができる。
【００１１】
請求項３の発明である半導体装置診断システムは、請求項２に記載の半導体装置診断システムであって、前記半導体装置から出力された命令の先頭を示す先頭サイクル有効信号と、前記半導体装置に入力される又は前記半導体装置から出力される入出力信号と、を記憶する第２の記憶手段を更に備え、前記診断手段は、前記入出力信号が活性化された状態であるときに前記第１及び第２の記憶手段に記憶された情報に基づいて前記半導体装置を診断する。
【００１２】
したがって、半導体装置の外部端子の数が変化する場合であっても、前記入出力信号が活性化された状態であるときに前記第１及び第２の記憶手段に記憶された情報を用いることで、半導体装置を診断することができる。
【発明の効果】
【００１３】
本発明に係る半導体装置は、トレース用端子を増設し、又は、他の記憶手段を使用することなく、半導体装置を診断するために必要な情報を得ることができる。
【００１４】
本発明に係る半導体装置診断システムは、トレース用端子を増設し、又は、他の記憶手段を使用することなく、第１の記憶手段から読み出されたトレース情報に基づいて、半導体装置を診断することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１の実施形態に係る半導体装置の構成を示す図である。
【図２】本発明の第２の実施形態に係る半導体装置診断システムの構成を示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明の好ましい実施の形態について図面を参照しながら詳細に説明する。
【００１７】
［第１の実施形態］
図１は、本発明の第１の実施形態に係る半導体装置１０の構成を示す図である。半導体装置１０は、リード・オンリー・メモリ（ＲＯＭ）１と、ランダム・アクセス・メモリ（ＲＡＭ）２と、外部からのデータが入出力される入出力（ＩＯ）ポート３と、所定の処理を行うコア回路４と、デバッグを実行するためのオンチップデバッグ回路５と、を備えている。
【００１８】
コア回路４は、命令の先頭サイクルを示す先頭サイクル有効信号（以下、「Ｍ１Ｓ１信号」という。）を発生して、ＲＯＭアドレス、ＲＡＭアドレスを発行して、ＲＯＭ１、ＲＡＭ２にそれぞれアクセスする。また、コア回路４は、データの書込み時では、書込みを指示するＲＡＭライト信号（ＲＡＭ_wr）を発生して、ＲＡＭ２にデータを書き込む。そして、コア回路４は、必要に応じて、ＲＡＭ２からデータを読み出す。このようにコア回路４の取り扱うデータは、オンチップデバッグ回路５にも供給される。
【００１９】
オンチップデバッグ回路５には、ＲＯＭ１のＲＯＭアドレス、ＲＡＭ１のＲＡＭデータ、ＲＡＭアドレス及びＲＡＭライト信号（ＲＡＭ_wr）、Ｍ１Ｓ１信号が入力される。なお、本実施形態では、トレースすべきリソースとして、ＲＯＭ１のアドレス、ＲＡＭ２のアドレスとデータ、を例に挙げて説明する。
【００２０】
ここで、オンチップデバッグ回路５は、レジスタ１１、セレクタ１２、ドライバ１３、セレクタ１４、アドレス生成カウンタ１５、読出し／書込み（Ｒ／Ｗ）カウンタ１６、トレース用メモリ１７、オンチップデバッグ制御レジスタ１８を備えている。
【００２１】
レジスタ１１は、セレクタ１２及びセレクタ１４の選択すべき信号を切り替えるための２ビットデータ“００”、“１０”、“１１”を記憶しており、これらの２ビットデータのいずれかをセレクタ１２及びセレクタ１４に設定する。
【００２２】
セレクタ１２は、レジスタ１１によって設定された２ビットデータに基づいて、ＲＡＭデータ、ＲＡＭアドレス、ＲＯＭアドレスのいずれか１つを選択して、ドライバ１３へ出力する。ドライバ１３は、セレクタ１２から供給されたデータをトレース用メモリ１７へ供給する。
【００２３】
セレクタ１４は、レジスタ１１によって設定された２ビットデータに基づいて、ＲＡＭライト信号又はＭ１Ｓ１信号を選択して、アドレス生成カウンタ１５へ出力する。アドレス生成カウンタ１５は、セレクタ１４から供給される信号及びデータバスからの信号に基づいて、ＲＡＭ２に書き込まれるデータのアドレスを生成する。
【００２４】
トレース用メモリ１７は、アドレス生成カウンタ１５で生成されたアドレスに従って、ドライバ１３から供給されたトレース情報であるデータを記憶する。
【００２５】
以上のように構成された半導体装置１０では、デバッガからのコマンド入力により、トレース情報を表示させたい部分のアプリケーションプログラムが３回実行される。
【００２６】
（１回目の実行）
１回目のアプリケーションプログラム実行前には、レジスタ１１は、セレクタ１２及びセレクタ１４に対して２ビットデータ“１１”をセットする。これにより、セレクタ１２はＲＡＭアドレスを選択し、セレクタ１４はＲＡＭライト信号を選択する。
【００２７】
そして、アプリケーションプログラムが実行されると、ＲＡＭアドレスのトレース情報が、セレクタ１２、ドライバ１３を介して、トレース用メモリ１７に書き込まれる。アプリケーションプログラムの終了後、ＲＡＭアドレスのトレース情報は、プロトコルコンバータを経由して、デバッガへ送信される。
【００２８】
（２回目の実行）
２回目のアプリケーションプログラム実行前には、レジスタ１１は、セレクタ１２及びセレクタ１４に対して２ビットデータ“１０”をセットする。これにより、セレクタ１２はＲＡＭデータを選択し、セレクタ１４はＲＡＭライト信号を選択する。
【００２９】
そして、アプリケーションプログラムが実行されると、ＲＡＭデータのトレース情報が、セレクタ１２、ドライバ１３を介して、トレース用メモリ１７に書き込まれる。アプリケーションプログラムの終了後、ＲＡＭデータのトレース情報は、プロトコルコンバータを経由して、デバッガへ送信される。
【００３０】
（３回目の実行）
３回目のアプリケーションプログラム実行前には、レジスタ１１は、セレクタ１２及びセレクタ１４に対して２ビットデータ“００”をセットする。これにより、セレクタ１２はＲＯＭアドレスを選択し、セレクタ１４はＭ１Ｓ１信号を選択する。
【００３１】
そして、アプリケーションプログラムが実行されると、ＲＯＭアドレスのトレース情報が、セレクタ１２、ドライバ１３を介して、トレース用メモリ１７に書き込まれる。アプリケーションプログラムの終了後、ＲＯＭアドレスのトレース情報は、プロトコルコンバータを経由して、デバッガへ送信される。なお、トレース情報の格納順序（セレクタの設定順序）は、上述した順序に限定されるものではなく、順番は入れ替わっていてもよい。
【００３２】
最後に、デバッガは、３回に分けて取得したトレース情報をマージして、ＲＡＭアドレス、ＲＡＭデータ及びＲＯＭアドレスのトレース結果を、例えばコンソール上に表示する。なお、３回のアプリケーションプログラムの実行に関しては、半導体装置１０の初期設定、プログラム実行、トレース表示等の一連のコマンド入力を、デバッガコマンドのマクロ定義にしておき、このマクロを実行させれば、効率よく実施することができる。
【００３３】
以上のように、第１の実施形態に係る半導体装置１０は、ＲＡＭアドレス、ＲＡＭデータ及びＲＯＭアドレスの３種類のトレース情報のいずれか１つを選択してトレース用メモリ１７に出力するセレクタ１２を備え、トレースを行いたい範囲アプリケーションプログラムを３回実行する。これにより、上記半導体装置１０は、３つのリソース（ＲＡＭアドレス、ＲＡＭデータ及びＲＯＭアドレス）に対するトレースを、１つのトレース用メモリで実現することができる。
【００３４】
また、上記半導体装置１０は、３種類のトレース情報を記憶するトレース用メモリ１７を備えることにより、トレース情報を外部機器に出力する必要がなくなり、トレース専用端子を削減することができる。
【００３５】
［第２の実施形態］
図２は、本発明の第２の実施形態に係る半導体装置診断システムの構成を示す図である。半導体装置診断システムは、第１の実施形態（図１）と同一の構成である半導体装置１０と、プロトコルコンバータ６０と、デバッガが搭載されたホストコンピュータ７０と、半導体装置１０及びプロトコルコンバータ６０に供給するシステムクロックを発生するユーザ応用回路８０と、を備えている。
【００３６】
プロトコルコンバータ６０は、アドレスポインタ＆読み出し／書込みカウンタ６１、ポートトレース用メモリ６２、ワークメモリ６３、制御ＣＰＵ６４を備えている。
【００３７】
アドレスポインタ＆読み出し／書込みカウンタ６１は、ポートトレース用メモリ６２のアドレス（ポインタ）を設定し、また、システムクロックの立ち下がりでカウントアップする。
【００３８】
ポートトレース用メモリ６２には、半導体装置１０の入出力ポート３から出力された入出力ポート信号（ｎビット）と、コア回路４から出力されたＭ１Ｓ１信号（１ビット）と、が入力される。ポートトレース用メモリ６２への書込みは、システムクロックの立ち上がりに行われる。
【００３９】
制御ＣＰＵ６４は、ポートトレース用メモリ６２に記憶されたデータを一時ワークメモリ６３に展開し、その後、ワークメモリ６３のデータをホストコンピュータ７０へ送信する。
【００４０】
以上のように構成された半導体装置診断システムでは、アプリケーションプログラムが終了すると、ホストコンピュータ７０は、ポートトレース用メモリ６２に記憶されているトレース情報を取得する。
【００４１】
ここでは、ホストコンピュータ７０は、Ｍ１Ｓ１信号がアクティブ（High）になっている場合のトレースアドレスポインタの内容の入出力ポート信号と、第１の実施形態で得られたトレース情報（ＲＡＭアドレス、ＲＡＭデータ及びＲＯＭアドレス）と、をマージして、トレース結果として表示部に表示する。これにより、命令毎の入出力ポート信号、ＲＡＭアドレス、ＲＡＭデータ、ＲＯＭアドレスに基づく診断が可能になる。
【００４２】
以上のように、第２の実施形態に係る半導体装置診断システムは、半導体装置１０からの命令の先頭サイクル有効信号（１本）を外部に出力することにより、この信号を利用して半導体装置のポート（入出力ポート信号）の変化履歴を、半導体装置１０内部のトレース用メモリを増やすことなく、半導体装置のプログラム実行アドレス単位でトレースすることができる。ここでは、トレースを行うポートは半導体装置の外部端子であるため、トレース専用端子の追加も不要である。
【００４３】
なお、本発明は、上述した実施の形態に限定されるものではなく、特許請求の範囲に記載された範囲内で設計上の変更をされたものにも適用可能であるのは勿論である。
【符号の説明】
【００４４】
１  ＲＯＭ
２  ＲＡＭ
３  入出力ポート
４  コア回路
５  オンチップデバッグ回路
１０  半導体装置
１２  セレクタ
１７  トレース用メモリ
６０  プロトコルコンバータ
７０  ホストコンピュータ
【図１】
2010231405.tif 000003
【図２】
2010231405.tif 000004