(57)【要約】【課題】従来のオンチップＪＴＡＧインタフェース回路は、デバッグ時に常にプロセッサを動作させるため、不正動作の原因がプロセッサにあるか、他の処理ブロックにあるか原因の切り分けが困難になる。【解決手段】システムＬＳＩ外部のデバッガとシリアル信号入出力にてデータ通信を行うＪＴＡＧインタフェース手段と、デバッガからＪＴＡＧインタフェース手段を通じて入力した命令に従ったデータバスの第１の制御信号を生成しデータバスを制御するバス制御手段と、プロセッサから入力したデータバスの第２の制御信号と、第１の制御信号とを選択的に切り替えてデータバスへ接続するバス選択手段とを備え、プロセッサとデバッガとのいずれか一方がデータバスを制御し処理ユニットと通信可能にする。【選択図】　　　　図１
2004094451.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、任意の処理を行う処理ユニットと、データバスとを含み、前記プロセッサは、前記データバスを制御することで前記処理ユニットと通信するシステムＬＳＩにおいて、
前記システムＬＳＩ外部のデバッガとシリアル信号入出力にてデータ通信を行うＪＴＡＧインタフェース手段と、
前記デバッガから前記ＪＴＡＧインタフェース手段を通じて入力した命令に従った前記データバスの第１の制御信号を生成し前記データバスを制御するバス制御手段と、
前記プロセッサから入力した前記データバスの第２の制御信号と、前記第１の制御信号とを選択的に切り替えて前記データバスへ接続するバス選択手段とを備え、
前記プロセッサと前記デバッガとのいずれか一方が前記データバスを制御し前記処理ユニットと通信可能にすることを特徴とするオンチップＪＴＡＧインタフェース回路。
【請求項２】
前記ＪＴＡＧインタフェース手段は、前記デバッガから前記シリアル信号入出力を通じて前記処理ユニットのリセット情報を入力して前記リセット情報に従った第１のリセット信号を生成し、
前記プロセッサから入力した前記処理ユニットの第２のリセット信号と前記第１のリセット信号とを選択的に切り替えて前記処理ユニットへ出力するリセット選択手段を備えることを特徴とする請求項１記載のオンチップＪＴＡＧインタフェース回路。
【請求項３】
前記ＪＴＡＧインタフェース手段は、前記処理ユニットが出力する割り込み信号またはエラー通知信号を入力し、前記デバッガから前記シリアル信号入出力を通じて前記割り込み信号またはエラー通知信号の状態を読み出し可能であることを特徴とする請求項１記載のオンチップＪＴＡＧインタフェース回路。
【請求項４】
前記ＪＴＡＧインタフェース手段は、前記デバッガから前記シリアル信号入出力を通じて停止要因情報を入力し、
前記割り込み信号またはエラー通知信号と前記停止要因情報とから前記処理ユニットの全部を停止させる停止信号を生成する停止信号生成手段を備え、
前記停止信号を前記処理ユニットの全部へ出力することを特徴とする請求項３記載のオンチップＪＴＡＧインタフェース回路。
【請求項５】
プロセッサと、任意の処理を行う処理ユニットと、データバスと、前記プロセッサと前記処理ユニットとを含む複数の処理ブロックの中から１つの処理ブロックを選定し前記データバスの使用を許可する調停回路とを含むシステムＬＳＩにおいて、
前記プロセッサと前記処理ユニットは前記データバスを制御して前記システムＬＳＩの内部または外部のメモリにアクセス可能であり、
前記システムＬＳＩ外部のデバッガとシリアル信号入出力にてデータ通信を行うＪＴＡＧインタフェース手段と、
前記デバッガから前記ＪＴＡＧインタフェース手段を通じて入力した命令に従った前記データバスの制御信号を生成し前記データバスを制御するバス制御手段とを備え、
前記デバッガが前記データバスを制御し前記メモリと通信可能にすることを特徴とするオンチップＪＴＡＧインタフェース回路。
【請求項６】
ホストプロセッサと、任意の処理を行う１つ以上の処理ユニットと、システムバスと、専用プロセッサと、データバスと、調停回路とを含むシステムＬＳＩにおいて、、
前記調停回路は、前記専用プロセッサと前記処理ユニットとを含む複数の処理ブロックの中から１つの処理ブロックを選定し前記データバスの使用を許可し、
前記ホストプロセッサは、前記システムバスを制御することで前記処理ユニットと通信し、
前記専用プロセッサおよび前記処理ユニットは、前記データバスを制御して前記システムＬＳＩの内部または外部のメモリにアクセス可能であり、
前記システムＬＳＩ外部のデバッガとシリアル信号入出力にてデータ通信を行うＪＴＡＧインタフェース手段と、
前記デバッガから前記ＪＴＡＧインタフェース手段を通じて入力した命令に従った前記システムバスの第１の制御信号を生成する第１のバス制御手段と、
前記ホストプロセッサから入力した前記システムバスの第２の制御信号と、前記第１の制御信号とを選択的に切り替えて前記システムバスへ接続するバス選択手段と、
前記デバッガから前記ＪＴＡＧインタフェース手段を通じて入力した命令に従った前記データバスの制御信号を生成し前記データバスを制御する第２のバス制御手段とを備え、
前記ホストプロセッサと前記デバッガとのいずれか一方が前記システムバスを制御し前記処理ユニットと通信可能にし、
前記デバッガが前記データバスを制御し前記メモリと通信可能にすることを特徴とするオンチップＪＴＡＧインタフェース回路。
【請求項７】
前記ＪＴＡＧインタフェース手段は、前記デバッガから前記シリアル信号入出力を通じて前記処理ユニットのリセット情報を入力して前記リセット情報に従った第１のリセット信号を生成し、
前記ホストプロセッサから入力した前記処理ユニットの第２のリセット信号と前記第１のリセット信号とを選択的に切り替えて前記処理ユニットへ出力するリセット選択手段を備えることを特徴とする請求項６記載のオンチップＪＴＡＧインタフェース回路。
【請求項８】
前記ＪＴＡＧインタフェース手段は、前記処理ユニットが出力する割り込み信号またはエラー通知信号を入力し、前記デバッガから前記シリアル信号入出力を通じて前記割り込み信号またはエラー通知信号の情報を読み出し可能であることを特徴とする請求項６記載のオンチップＪＴＡＧインタフェース回路。
【請求項９】
前記ＪＴＡＧインタフェース手段は、前記デバッガから前記シリアル信号入出力を通じて停止要因情報を入力し、
前記割り込み信号またはエラー通知信号と前記停止要因情報とから前記処理ユニットの全部を停止させる停止信号を生成する停止信号生成手段を備え、
前記停止信号を前記処理ユニットへ出力することを特徴とする請求項８記載のオンチップＪＴＡＧインタフェース回路。
【請求項１０】
請求項１〜９の何れかに記載のオンチップＪＴＡＧインタフェース回路と、プロセッサと、任意の処理を行う処理ユニットと、オンチップＪＴＡＧインタフェース回路と、プロセッサと、処理ユニットとの信号の入出力を行うバスとを含むシステムＬＳＩ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はオンチップデバッグを実現するオンチップＪＴＡＧインタフェース回路とそれを適用したシステムＬＳＩに関するものである。
【０００２】
【従来の技術】
プロセッサを含むシステムＬＳＩのデバッグ手法のひとつとして、ＩＥＥＥ１１４９．１を利用して、プロセッサにデバッグのための機能を設けるオンチップデバッグという手法が用いられている。ＩＥＥＥ１１４９．１を利用したオンチップデバッグについては、例えば「ＪＴＡＧテストの基礎と応用」（ＣＱ出版社）に記載されている。
【０００３】
図１１はＩＥＥＥ１１４９．１を利用したオンチップデバッグを実現する従来のオンチップＪＴＡＧインタフェース回路の構成図である。従来のオンチップＪＴＡＧインタフェース回路１は、ＩＥＥＥ１１４９．１に準拠したシリアル信号ＴＤＩ、ＴＭＳ、ＴＤＯ、ＴＣＫの入出力ポートを有する（ＴＲＳＴはオプション）。ＴＡＰコントローラ２は、テストモードを選択するＴＭＳ信号入力に従って状態遷移を行いながら内部の各レジスタのシフト動作を制御する。命令レジスタ（ＩＲ）３はシフトレジスタとラッチで構成され、ＴＡＰコントローラ２からのシフト指示により、命令を１ビットずつ入力または出力し、またＴＡＰコントローラ２からの更新指示により、入力した命令をラッチする。
【０００４】
命令デコード部４は、命令レジスタ３に入力された命令をデコードし、各部を制御して命令を実行する。プロセッサ制御レジスタ６はデータレジスタ（ＤＲ）のひとつで、命令レジスタ３と同様にシフトレジスタとラッチで構成され、デバッグ対象であるプロセッサ５の動作モードとステータスについて、ＴＡＰコントローラ２および命令デコード部４からの指示に従って動作をさせる。スキャンレジスタ７はデータレジスタ（ＤＲ）のひとつで、１ビットのシフトレジスタとラッチから構成されるセルをプロセッサ５の入出力端子に対応させて一連に接続されたものである。スキャンレジスタ７はＴＡＰコントローラ２および命令デコード部４からの指示により、ＴＤＩから入力したデータをプロセッサ５の入力端子へ入力し、またプロセッサ５の出力端子の状態を、ＴＤＯから出力する。
【０００５】
命令レジスタ３に設定する命令は、プライベート命令としてＴＥＳＴ１命令とＴＥＳＴ２命令の２つが用意される。ＴＥＳＴ１命令は、データレジスタ（ＤＲ）としてプロセッサ制御レジスタ６を選択し、プロセッサ制御レジスタ６に動作モードをＴＤＩから設定することで、プロセッサ５の動作を制御する。ＴＥＳＴ２命令は、データレジスタ（ＤＲ）としてスキャンレジスタ７を選択し、ＴＤＩから入力したデータをプロセッサ５へ入力し、またプロセッサ５が出力したデータをＴＤＯから出力する。
【０００６】
次にある対象メモリの任意のアドレスの内容を読み出す場合の動作について説明する。まずＴＥＳＴ１命令でプロセッサ制御レジスタ６をホールド状態に設定し、プロセッサ５の実行を停止させる。次にＴＥＳＴ１命令でプロセッサ制御レジスタ６を外部から命令を取り込ませるモードに設定する。次にＴＥＳＴ２命令でプロセッサ５のメモリロード命令をスキャンレジスタ７中のデータバスに対応する部分に設定する。そしてＴＥＳＴ１命令でプロセッサ制御レジスタ６をステップ実行に設定し、プロセッサ５をステップ実行させる。これにより対象メモリの内容がメモリロード命令で指定したプロセッサ５の内部レジスタにロードされる。
【０００７】
次にＴＥＳＴ１命令でプロセッサ制御レジスタ６を外部から命令を取り込ませるモードに設定する。次にＴＥＳＴ２命令でプロセッサ５のストアメモリ命令をスキャンレジスタ７中のデータバスに対応する部分に設定する。そしてＴＥＳＴ１命令でプロセッサ制御レジスタ６をステップ実行に設定し、プロセッサ本体５をステップ実行させる。これにより先に内部レジスタにロードした内容がスキャンレジスタ７中のデータバスに対応する部分にセットされる。そしてＴＥＳＴ２命令でスキャンパスをシフトしてＴＤＯからシリアルにデータを取り出す。
【０００８】
このように動作させることで、従来のオンチップＪＴＡＧインタフェース回路１は、シリアル信号入出力端子を用いて対象メモリの内容を読み出すことができ、デバッグを行うことができる。
【０００９】
【発明が解決しようとする課題】
従来のオンチップＪＴＡＧインタフェース回路は、対象メモリの読み出しを、プロセッサにロード命令を実行させることで行っていた。このため例えば画像データなどの大量のデータを読み出す場合などは、大量の命令をプロセッサに実行させなければならず、読み出しに時間がかかってしまうという問題があった。
また、従来のオンチップＪＴＡＧインタフェース回路ではデバッグ時に常にプロセッサを動作させるため、近年複雑化していくシステムＬＳＩにおいては、不正動作の原因がプロセッサにあるのか、あるいはプロセッサに接続された他の処理ブロックにあるのかといった原因の切り分けが困難になるという問題点があった。
【００１０】
この発明は上記のような問題点を解決するためになされたもので、プロセッサを動作させることなくデバッグを可能にすることを目的とする。
【００１１】
【課題を解決するための手段】
この発明に係るオンチップＪＴＡＧインタフェース回路は、プロセッサと、任意の処理を行う処理ユニットと、データバスとを含み、前記プロセッサは、前記データバスを制御することで前記処理ユニットと通信するシステムＬＳＩにおいて、
前記システムＬＳＩ外部のデバッガとシリアル信号入出力にてデータ通信を行うＪＴＡＧインタフェース手段と、
前記デバッガから前記ＪＴＡＧインタフェース手段を通じて入力した命令に従った前記データバスの第１の制御信号を生成し前記データバスを制御するバス制御手段と、
前記プロセッサから入力した前記データバスの第２の制御信号と、前記第１の制御信号とを選択的に切り替えて前記データバスへ接続するバス選択手段とを備え、
前記プロセッサと前記デバッガとのいずれか一方が前記データバスを制御し前記処理ユニットと通信可能にすることを特徴とする。
【００１２】
また、この発明に係るオンチップＪＴＡＧインタフェース回路は、前記ＪＴＡＧインタフェース手段が、前記デバッガから前記シリアル信号入出力を通じて前記処理ユニットのリセット情報を入力して前記リセット情報に従った第１のリセット信号を生成し、
前記プロセッサから入力した前記処理ユニットの第２のリセット信号と前記第１のリセット信号とを選択的に切り替えて前記処理ユニットへ出力するリセット選択手段を備える。
【００１３】
また、この発明に係るオンチップＪＴＡＧインタフェース回路は、前記ＪＴＡＧインタフェース手段が、前記処理ユニットが出力する割り込み信号またはエラー通知信号を入力し、前記デバッガから前記シリアル信号入出力を通じて前記割り込み信号またはエラー通知信号の状態を読み出し可能とする。
【００１４】
また、この発明に係るオンチップＪＴＡＧインタフェース回路は、前記ＪＴＡＧインタフェース手段が、前記デバッガから前記シリアル信号入出力を通じて停止要因情報を入力し、
前記割り込み信号またはエラー通知信号と前記停止要因情報とから前記処理ユニットの全部を停止させる停止信号を生成する停止信号生成手段を備え、
前記停止信号を前記処理ユニットの全部へ出力する。
【００１５】
また、この発明に係るオンチップＪＴＡＧインタフェース回路は、プロセッサと、任意の処理を行う処理ユニットと、データバスと、前記プロセッサと前記処理ユニットとを含む複数の処理ブロックの中から１つの処理ブロックを選定し前記データバスの使用を許可する調停回路とを含むシステムＬＳＩにおいて、
前記プロセッサと前記処理ユニットは前記データバスを制御して前記システムＬＳＩの内部または外部のメモリにアクセス可能であり、
前記システムＬＳＩ外部のデバッガとシリアル信号入出力にてデータ通信を行うＪＴＡＧインタフェース手段と、
前記デバッガから前記ＪＴＡＧインタフェース手段を通じて入力した命令に従った前記データバスの制御信号を生成し前記データバスを制御するバス制御手段とを備え、
前記デバッガが前記データバスを制御し前記メモリと通信可能にする。
【００１６】
また、この発明に係るオンチップＪＴＡＧインタフェース回路は、プロセッサと、任意の処理を行う１つ以上の処理ユニットと、システムバスと、専用プロセッサと、データバスと、調停回路とを含むシステムＬＳＩにおいて、、
前記調停回路は、前記専用プロセッサと前記処理ユニットとを含む複数の処理ブロックの中から１つの処理ブロックを選定し前記データバスの使用を許可し、
前記ホストプロセッサは、前記システムバスを制御することで前記処理ユニットと通信し、
前記専用プロセッサおよび前記処理ユニットは、前記データバスを制御して前記システムＬＳＩの内部または外部のメモリにアクセス可能であり、
前記システムＬＳＩ外部のデバッガとシリアル信号入出力にてデータ通信を行うＪＴＡＧインタフェース手段と、
前記デバッガから前記ＪＴＡＧインタフェース手段を通じて入力した命令に従った前記システムバスの第１の制御信号を生成する第１のバス制御手段と、
前記ホストプロセッサから入力した前記システムバスの第２の制御信号と、前記第１の制御信号とを選択的に切り替えて前記システムバスへ接続するバス選択手段と、
前記デバッガから前記ＪＴＡＧインタフェース手段を通じて入力した命令に従った前記データバスの制御信号を生成し前記データバスを制御する第２のバス制御手段とを備え、
前記ホストプロセッサと前記デバッガとのいずれか一方が前記システムバスを制御し前記処理ユニットと通信可能にし、
前記デバッガが前記データバスを制御し前記メモリと通信可能にする。
【００１７】
また、この発明に係るオンチップＪＴＡＧインタフェース回路は、前記ＪＴＡＧインタフェース手段が、前記デバッガから前記シリアル信号入出力を通じて前記処理ユニットのリセット情報を入力して前記リセット情報に従った第１のリセット信号を生成し、
前記ホストプロセッサから入力した前記処理ユニットの第２のリセット信号と前記第１のリセット信号とを選択的に切り替えて前記処理ユニットへ出力するリセット選択手段を備える。
【００１８】
また、この発明に係るオンチップＪＴＡＧインタフェース回路は、前記ＪＴＡＧインタフェース手段が、前記処理ユニットが出力する割り込み信号またはエラー通知信号を入力し、前記デバッガから前記シリアル信号入出力を通じて前記割り込み信号またはエラー通知信号の情報を読み出し可能である。
【００１９】
また、この発明に係るオンチップＪＴＡＧインタフェース回路は、前記ＪＴＡＧインタフェース手段が、前記デバッガから前記シリアル信号入出力を通じて停止要因情報を入力し、
前記割り込み信号またはエラー通知信号と前記停止要因情報とから前記処理ユニットの全部を停止させる停止信号を生成する停止信号生成手段を備え、
前記停止信号を前記処理ユニットへ出力する。
【００２０】
また、この発明に係るシステムＬＳＩは、請求項１〜９の何れかに記載のオンチップＪＴＡＧインタフェース回路と、プロセッサと、任意の処理を行う処理ユニットと、オンチップＪＴＡＧインタフェース回路と、プロセッサと、処理ユニットとの信号の入出力を行うバスとを含む。
【００２１】
【発明の実施の形態】
実施の形態１．
図１は本発明の実施の形態１におけるオンチップＪＴＡＧインタフェース回路を含むシステムＬＳＩの構成図である。デバッガ１１は、検証者が直接操作を行うシステムＬＳＩ外部の検証環境であり、例えばＰＣと基板などから構成される。またデバッガ１１は、システムＬＳＩ１０内部のオンチップＪＴＡＧインタフェース回路１４とＩＥＥＥ１１４９．１規格に準拠したシリアル信号入出力にてデータ通信を行う。
【００２２】
オンチップＪＴＡＧインタフェース回路１４は、シリアル信号入出力を通じてデバッガ１１から入力した命令に従ってシステムバス１３を制御するほか、ホストプロセッサ１２からもシステムバス１３を制御できるようシステムバス信号の切り替えを行う。専用処理ユニット１５、１６は、ある特定の処理を行う処理ブロックで、システムバス１３からリードおよびライトが可能な複数のバスレジスタを夫々有する。バスレジスタには、専用処理ユニット１５、１６の起動と停止を制御するレジスタや、専用処理ユニット１５、１６の処理結果を格納するレジスタなどがあり、システムバス１３からバスレジスタをリードまたはライトすることにより、専用処理ユニット１５、１６を起動または停止させ、専用処理ユニット１５、１６の処理結果を読み出すことができる。
【００２３】
オンチップＪＴＡＧインタフェース回路１４は、ホストプロセッサ１２から専用処理ユニット１５、１６のリセット信号を入力し、デバッガ１１から指示されたリセット情報とのいずれかを選択して専用処理ユニット１５、１６のリセット信号１９、２０として出力する。
【００２４】
専用処理ユニット１５は、オンチップＪＴＡＧインタフェース回路１４を介してホストプロセッサ１２へエラー通知信号１７を出力する。また専用処理ユニット１６は、ホストプロセッサ１２へ同じくオンチップＪＴＡＧインタフェース回路１４を介して割り込み信号１８を出力する。
専用処理ユニット１５、１６は、オンチップＪＴＡＧインタフェース回路１４からの停止信号３７により内部の状態を保持したまま停止し、停止した状態でシステムバス１３からバスレジスタのリードが可能である。
【００２５】
デバッガ１１からオンチップＪＴＡＧインタフェース回路１４へ入力する命令は、システムバス１３を介して書き込みを行うシステムバスライト命令、システムバス１３を介して読み出しを行うシステムバスリード命令、専用処理ユニット１５、１６の各々のリセット状態を制御する個別リセット命令、専用処理ユニット１５、１６が出力する割り込み信号１８およびエラー通知信号１７を読み出す割り込み／エラーステータスリード命令、停止信号３７の生成を制御する停止要因設定命令がある。
【００２６】
オンチップＪＴＡＧインタフェース回路１４の内部構成を図２に示す。オンチップＪＴＡＧインタフェース回路１４はＪＴＡＧインタフェース手段２１とバス制御手段であるシステムバスインタフェース３３とバス選択手段３４とデバッグモード信号３２が通常動作かデバッグ動作かによりリセット信号を選択するリセット選択手段３５及び停止信号３７を出力する停止信号生成手段３６から構成される。
【００２７】
ＪＴＡＧインタフェース手段２１は、ＩＥＥＥ１１４９．１規格に準拠した信号入出力にてデバッガ１１と通信するとともに、デバッガ１１から入力した命令をシステムバスインタフェース３３に指示する。
また、ＪＴＡＧインタフェース手段２１は、シフトレジスタとラッチから構成されるレジスタ２２〜２９と、ＴＭＳ信号入力に従いレジスタ２２〜２９のシフト動作を制御するＴＡＰコントローラおよび命令デコード部（図示は省略）を備えている。
【００２８】
レジスタ２２〜２９は、デバッガ１１から入力した命令を保持する命令レジスタ（ＩＲ）２２と、リードアドレスを保持するＩＭリードアドレスレジスタ２３と、リードデータを保持するＩＭリードデータレジスタ２４と、ライトアドレス及びライトデータを保持するＩＭライトレジスタ２５と、システムバスインタフェース３３の動作終了を保持するＩＭステータスレジスタ２６と、割り込み／エラーステータスレジスタ２７と、個別リセットレジスタ２８と、停止要因レジスタ２９から成る。
【００２９】
システムバスインタフェース３３は、ＪＴＡＧインタフェース手段２１からの指示に従いシステムバス信号３１を生成する。デバッグモード信号３２は、外部から入力され、通常動作かデバッグ動作かを示す信号である。バス選択手段３４はデバッグモード信号３２が通常動作の場合はホストプロセッサ１２のシステムバス信号３０をシステムバス１３へ接続し、デバッグモード信号３２がデバッグ動作の場合は、システムバスインタフェース３３のシステムバス信号３１をシステムバス１３へ接続する。
【００３０】
次に動作について、まずシステムバスライト命令を実行する場合につき説明する。
図３にはデバッガ１１からシステムバスライト命令を実行する場合のＪＴＡＧインタフェース手段２１の入出力信号とＩＥＥＥ１１４９．１規格上の状態遷移を示す。はじめにデバッガ１１はシステムバスライト命令を命令レジスタ（ＩＲ）２２に設定する。ＪＴＡＧインタフェース手段２１は命令レジスタ（ＩＲ）２２の内容がシステムバスライト命令であれば、次に制御するデータレジスタ（ＤＲ）をＩＭライトレジスタ２５に切り替える。次にデバッガ１１はライトアドレスとライトデータをＩＭライトレジスタ２５に設定する。その後、ＪＴＡＧインタフェース手段２１は次に制御するデータレジスタ（ＤＲ）をＩＭステータスレジスタ２６に切り替え、デバッガ１１はリード動作が終了するまでＩＭステータスレジスタ２６の読み出しを繰り返す。
【００３１】
一方でＪＴＡＧインタフェース手段２１は、ライト動作を行うことと、ＩＭライトレジスタ２５の内容とをシステムバスインタフェース３３へ指示する。そしてシステムバスインタフェース３３は、システムバス１３を制御してＩＭライトレジスタ２５のライトアドレスが示すバスレジスタにＩＭライトレジスタ２５のライトデータを書き込み、動作終了信号をＪＴＡＧインタフェース手段２１へ出力する。ＪＴＡＧインタフェース手段２１はＩＭステータスレジスタ２６に動作終了を示す情報を格納する。そしてデバッガ１１はＩＭステータスレジスタ２６の読み出しにより動作終了の情報を取得する。
【００３２】
次に、システムバスリード命令を実行する場合について説明する。
図４にはデバッガ１１からシステムバスリード命令を実行する場合のＪＴＡＧインタフェース手段２１の入出力信号とＩＥＥＥ１１４９．１規格上の状態遷移を示す。はじめにデバッガ１１はシステムバスリード命令を命令レジスタ（ＩＲ）２２に設定する。ＪＴＡＧインタフェース手段２１は命令レジスタ（ＩＲ）２２の内容がシステムバスリード命令であれば、次に制御するデータレジスタ（ＤＲ）をＩＭリードアドレスレジスタ２３に切り替える。次にデバッガ１１はリードアドレスをＩＭリードアドレスレジスタ２３に設定する。その後、ＪＴＡＧインタフェース手段２１は次に制御するデータレジスタ（ＤＲ）をＩＭステータスレジスタ２６に切り替え、デバッガ１１はリード動作が終了するまでデータレジスタ（ＤＲ）の読み出し動作を２回ずつ繰り返す。
【００３３】
この間ＪＴＡＧインタフェース手段２１はＩＭステータスレジスタ２６とＩＭリードデータレジスタ２４とが交互に読み出されるよう制御する。一方でＪＴＡＧインタフェース手段２１は、リード動作を行うこととＩＭリードアドレスレジスタ２３の内容とをシステムバスインタフェース３３へ指示する。そしてシステムバスインタフェース３３は、システムバス１３を制御してＩＭリードアドレスレジスタ２３のリードアドレスが示すバスレジスタのデータを読み出し、動作終了信号およびリードデータをＪＴＡＧインタフェース手段２１へ出力する。ＪＴＡＧインタフェース手段２１はＩＭステータスレジスタ２６に動作終了を示す情報を格納し、ＩＭリードデータレジスタ２４にリードデータを格納する。そしてデバッガ１１はＩＭステータスレジスタ２６とＩＭリードデータレジスタ２４の読み出しにより動作終了の情報とリードデータを取得する。
【００３４】
次に、個別リセット命令を実行する場合につき説明する。
デバッガ１１からの個別リセット命令が命令レジスタ（ＩＲ）２２に設定されたらＪＴＡＧインタフェース手段２１は次に制御するデータレジスタ（ＤＲ）を個別リセットレジスタ２８に切り替え、デバッガ１１から各専用処理ユニットのリセット情報を個別リセットレジスタ２８に設定する。リセット選択手段３５は、デバッグモード信号３２が通常動作を示す場合はホストプロセッサ１２から入力したリセット信号３９を、デバッグモード信号３２がデバッグ動作を示す場合は個別リセットレジスタ２８の内容を、各専用処理ユニットのリセット信号１９、２０として出力する。
【００３５】
次に、割り込み／エラーステータスリード命令を実行する場合につき説明する。
割り込み／エラーステータスレジスタ２７は、専用処理ユニット１５、１６から入力した割り込み信号またはエラー通知信号３８（図１における１７〜１８を多ビット信号としてまとめたもの）を格納する。そしてデバッガ１１から割り込み／エラーステータスリード命令を命令レジスタ（ＩＲ）２２に設定されたら、ＪＴＡＧインタフェース手段２１は次に制御するデータレジスタ（ＤＲ）を割り込み／エラーステータスレジスタ２７に切り替え、デバッガ１１は割り込み／エラーステータスレジスタ２７の読み出しを行う。
【００３６】
次に、停止要因設定命令を実行する場合につき説明する。
またデバッガ１１からの停止要因設定命令が命令レジスタ（ＩＲ）２２に設定されたら、ＪＴＡＧインタフェース手段２１は次に制御するデータレジスタ（ＤＲ）を停止要因レジスタ２９に切り替え、デバッガ１１は停止要因レジスタ２９に停止要因情報を書き込む。停止要因情報は、割り込み信号またはエラー通知信号３８の各ビットに対して有効か無効かを示した情報で、有効とした信号が入力され、なおかつデバッグモード信号３２がデバッグ動作を示す場合は、停止信号生成手段３６から全専用処理ユニットの動作を停止させる停止信号３７を出力する。
【００３７】
このように動作させることにより、直接デバッガ１１から専用処理ユニットの起動制御、処理結果のリード、リセット制御、割り込み信号またはエラー通知信号のモニタリングが可能となり、プロセッサを動作させずにデバッグを行うことができる。
【００３８】
また、割り込み信号またはエラー通知信号に応じた停止信号３７を出力することにより、指定した処理ブロックのエラーや割り込みが発生した時点の信号の状態を保持したままデバッグを行うことができる。
【００３９】
実施の形態２．
図５は本発明の実施の形態２におけるオンチップＪＴＡＧインタフェース回路を含むシステムＬＳＩの構成図である。デバッガ４１は、検証者が直接操作を行うシステムＬＳＩ４０外部の検証環境であり、例えばＰＣと基板などから構成される。またデバッガ４１は、システムＬＳＩ４０内部のオンチップＪＴＡＧインタフェース回路４３とＩＥＥＥ１１４９．１規格に準拠したシリアル信号入出力にてデータ通信を行う。
【００４０】
オンチップＪＴＡＧインタフェース回路４３は、デバッガ４１から入力した命令に従いデータバス４６へのアクセスを行う処理ブロックである。プロセッサ４２は、データバス４６を介してメモリ４５へアクセスし、任意の処理を実行する処理ブロックである。専用処理ユニット４７、４８は、データバス４６を介してメモリ４５へアクセスし、ある特定の処理を行う処理ブロックである。
【００４１】
調停回路４４は、プロセッサ４２と専用処理ユニット４７、４８とオンチップＪＴＡＧインタフェース回路４３からバス使用要求信号を入力し、データバス４６が未使用の状態であったら、次にデータバス４６を使用させる処理ブロックをひとつ選び、その処理ブロックへバス使用許可信号を出力し、データバス４６を使用させる。なお本実施の形態では、簡略化のため、メモリ４５とデータバス４６とを仲介するメモリインタフェースの機構については省略している。
【００４２】
オンチップＪＴＡＧインタフェース回路４３の内部構成図を図６に示す。オンチップＪＴＡＧインタフェース回路４３はＪＴＡＧインタフェース手段５１とバス制御手段であるデータバスインタフェース５２とから構成される。ＪＴＡＧインタフェース手段５１は、ＩＥＥＥ１１４９．１規格に準拠した信号入出力にてデバッガ４１と通信するとともに、デバッガ４１から入力した命令をデータバスインタフェース５２に指示する。
【００４３】
データバスインタフェース５２は、ＪＴＡＧインタフェース手段５１からの指示に従いデータバス４６を制御して結果をＪＴＡＧインタフェース手段５１へ出力する。ＪＴＡＧインタフェース手段５１は、デバッガ４１から入力した命令を保持する命令レジスタ（ＩＲ）５４と、リードアドレスを保持するＦＭリードアドレスレジスタ５５と、リードデータを保持するＦＭリードデータレジスタ５６と、ライトアドレス及びライトデータを保持するＦＭライトレジスタ５７と、データバスインタフェース５２の動作終了を保持するＦＭステータスレジスタ５８とを含み、またＴＭＳ信号入力に従いレジスタ５４〜５８のシフト動作を制御するＴＡＰコントローラおよび命令デコード部（図示は省略）を備えている。
【００４４】
次にデバッガ４１からデータバスライト命令を実行する場合の動作について説明する。はじめにデバッガ４１はデータバスライト命令を命令レジスタ（ＩＲ）５４に設定する。ＪＴＡＧインタフェース手段５１は命令レジスタ（ＩＲ）５４の命令がデータバスライト命令であれば、次に制御するデータレジスタ（ＤＲ）をＦＭライトレジスタ５７に切り替える。次にデバッガ４１はライトアドレスとライトデータをＦＭライトレジスタ５７に設定する。
その後、ＪＴＡＧインタフェース手段５１は次に制御するデータレジスタ（ＤＲ）をＦＭステータスレジスタ５８に切り替え、デバッガ４１はリード動作が終了するまでＦＭステータスレジスタ５８の読み出しを繰り返す。
【００４５】
一方でＪＴＡＧインタフェース手段５１は、ライト動作を行うことと、ＦＭライトレジスタ５７の内容とをデータバスインタフェース５２へ指示する。そしてデータバスインタフェース５２は、データバス４６を制御してＦＭライトレジスタ５７のライトアドレスが示すメモリセルにＦＭライトレジスタ５７のライトデータを書き込み、動作終了信号をＪＴＡＧインタフェース手段５１へ出力する。ＪＴＡＧインタフェース手段５１はＦＭステータスレジスタ５８に動作終了を示す情報を格納する。そしてデバッガはＦＭステータスレジスタ５８の読み出しにより動作終了の情報を取得する。
【００４６】
次にデバッガ４１からデータバスリード命令を実行する場合の動作について説明する。はじめにデバッガ４１はデータバスリード命令を命令レジスタ（ＩＲ）５４に設定する。ＪＴＡＧインタフェース手段５１は命令レジスタ（ＩＲ）５４の命令がデータバスリード命令であれば、次に制御するデータレジスタ（ＤＲ）をＦＭリードアドレスレジスタ５５に切り替える。次にデバッガ４１はリードアドレスをＦＭリードアドレスレジスタ５５に設定する。
【００４７】
その後、ＪＴＡＧインタフェース手段５１は次に制御するデータレジスタ（ＤＲ）をＦＭステータスレジスタ５８に切り替え、デバッガ４１はリード動作が終了するまでデータレジスタ（ＤＲ）の読み出し動作を２回ずつ繰り返す。この間ＪＴＡＧインタフェース手段５１はＦＭステータスレジスタ５８とＦＭリードデータレジスタ５６とが交互に読み出されるよう制御する。
【００４８】
一方でＪＴＡＧインタフェース手段５１は、リード動作を行うこととＦＭリードアドレスレジスタ５５の内容とをデータバスインタフェース５２へ指示する。そしてデータバスインタフェース５２は、データバス４６を制御してＦＭリードアドレスレジスタ５５のリードアドレスが示すメモリセルのデータを読み出し、動作終了信号およびリードデータをＪＴＡＧインタフェース手段５１へ出力する。ＪＴＡＧインタフェース手段５１はＦＭステータスレジスタ５８に動作終了を示す情報を格納し、ＦＭリードデータレジスタ５６にリードデータを格納する。そしてデバッガはＦＭステータスレジスタ５８とＦＭリードデータレジスタ５６の読み出しにより動作終了の情報とリードデータを取得する。
【００４９】
このように動作させることにより、プロセッサ４２を動作させずに、デバッガ４１からメモリ４５にアクセスし、デバッグを行うことができる。
【００５０】
実施の形態３．
図７は本発明の実施の形態３におけるオンチップＪＴＡＧインタフェース回路を含むシステムＬＳＩの構成図である。デバッガ６１は、検証者が直接操作を行うシステムＬＳＩ６０外部の検証環境であり、例えばＰＣと基板などから構成される。またデバッガ６１は、システムＬＳＩ６０内部のオンチップＪＴＡＧインタフェース回路６３とＩＥＥＥ１１４９．１規格に準拠したシリアル信号入出力にてデータ通信を行う。
【００５１】
オンチップＪＴＡＧインタフェース回路６３は、シリアル信号入出力を通じてデバッガ６１から入力した命令に従ってデータバス６９またはシステムバス７０を制御するほか、ホストプロセッサ６２からシステムバス７０を制御できるようシステムバス信号の切り替えを行う。専用処理ユニット６６、６７は、データバス６９を介してメモリ６８へアクセスし、ある特定の処理を行う処理ブロックで、システムバス７０からリードおよびライトが可能な複数のバスレジスタを有する。バスレジスタには、専用処理ユニット６６、６７の起動と停止を制御するレジスタや、専用処理ユニット６６、６７の処理結果を格納するレジスタなどがあり、システムバス７０からバスレジスタをリードまたはライトすることにより、専用処理ユニット６６、６７を起動または停止させ、専用処理ユニット６６、６７の処理結果を読み出すことができる。
【００５２】
専用プロセッサ６５は、データバス６９を介してメモリ６８へアクセスし、任意の処理を実行する処理ブロックで、専用処理ユニット６６、６７と同様システムバス７０からリードおよびライトが可能な複数のバスレジスタを有する。調停回路６４は、専用プロセッサ６５と専用処理ユニット６６、６７とオンチップＪＴＡＧインタフェース回路６３からバス使用要求信号を入力し、データバス６９が未使用の状態であったら、次にデータバス６９を使用させる処理ブロックをひとつ選び、その処理ブロックへバス使用許可信号を出力し、データバス６９を使用させる。調停回路６４は専用処理ユニット６６、６７と同様システムバス６９からリードおよびライトが可能な複数のバスレジスタを有する。なお本実施の形態では、簡略化のため、メモリ６８とデータバス６９とを仲介するメモリインタフェースの機構については省略している。
【００５３】
ホストプロセッサ６２は、専用処理ユニット６６、６７および専用プロセッサ６５および調停回路６４のリセット信号をオンチップＪＴＡＧインタフェース回路６３へ出力する。オンチップＪＴＡＧインタフェース回路６３は、デバッガ６１から指示されたリセット情報か、またはホストプロセッサ６２から入力したリセット信号かのどちらかを切り替えて専用処理ユニット６６、６７および専用プロセッサ６５および調停回路６４へ出力する。
【００５４】
また専用処理ユニット６６、６７および専用プロセッサ６５および調停回路６４は、割り込み信号またはエラー通知信号を出力する。割り込み信号またはエラー通知信号はオンチップＪＴＡＧインタフェース回路６３を介してホストプロセッサ６２またはデバッガ６１へ出力される。
【００５５】
オンチップＪＴＡＧインタフェース回路６３の内部構成を図８に示す。オンチップＪＴＡＧインタフェース回路６３はＪＴＡＧインタフェース手段８１と第１のバス制御手段であるシステムバスインタフェース８３とバス選択手段８４と第２のバス制御手段であるデータバスインタフェース８２とリセット選択手段８５と停止信号生成手段８６とから構成される。
【００５６】
ＪＴＡＧインタフェース手段８１は、ＩＥＥＥ１１４９．１規格に準拠した信号入出力にてデバッガ６１と通信するとともに、デバッガ６１から入力した命令をシステムバスインタフェース８３またはデータバスインタフェース８２に指示する。システムバスインタフェース８３は、ＪＴＡＧインタフェース手段８１からの指示に従いシステムバス信号９０を生成する。デバッグモード信号９５は、通常動作かデバッグ動作かを示す信号である。バス選択手段８４は、デバッグモード信号９５が通常動作の場合はホストプロセッサからのシステムバス信号７１をシステムバス７０へ接続し、デバッグモード信号９５がデバッグ動作の場合はシステムバスインタフェース８３のシステムバス信号９０をシステムバス７０へ接続する。
【００５７】
データバスインタフェース８２は、ＪＴＡＧインタフェース手段８１からの指示に従いデータバス６９を制御して結果をＪＴＡＧインタフェース手段８１へ出力する。
【００５８】
図９はＪＴＡＧインタフェース手段８１内のレジスタを示したものである。命令レジスタ（ＩＲ）１０１は、デバッガ６１から入力した命令を保持するレジスタである。ＩＭリードアドレスレジスタ１０２は、システムバス７０のリードアドレスを保持するレジスタである。ＩＭリードデータレジスタ１０３は、システムバス７０のリードデータを保持するレジスタである。ＩＭライトレジスタ１０４は、システムバス７０のライトアドレス及びライトデータを保持するレジスタである。ＩＭステータスレジスタ１０５は、システムバスインタフェース８３の動作終了を保持するレジスタである。
【００５９】
割り込み／エラーステータスレジスタ１０６は、各処理ブロックから入力した割り込み信号またはエラー通知信号９４の状態を保持するレジスタである。個別リセットレジスタ１０７は、デバッガ６１から入力したリセット情報を保持するレジスタである。停止要因レジスタ１０８は、デバッガから入力した停止要因情報を保持するレジスタである。ＦＭリードアドレスレジスタ１０９は、データバス６９のリードアドレスを保持するレジスタである。ＦＭリードデータレジスタ１１０は、データバス６９のリードデータを保持するレジスタである。ＦＭライトレジスタ１１１は、データバス６９のライトアドレス及びライトデータを保持するレジスタである。ＦＭステータスレジスタ１１２は、データバスインタフェース８２の動作終了を保持する保持するレジスタである。
【００６０】
また図８において、ＪＴＡＧインタフェース手段８１は、ＴＭＳ信号入力に従いレジスタ１０１〜１１２のシフト動作を制御するＴＡＰコントローラ（図示は省略）および命令デコード部を備えている。
【００６１】
リセット選択手段８５は、個別リセットレジスタ１０７の内容か、あるいはホストプロセッサから入力したリセット信号９２かをデバッグモード信号９５で選択し、リセット信号９１として出力する。
【００６２】
停止信号生成手段８６は、停止要因レジスタ１０８の内容と各処理ブロックから入力したエラー通知信号および割り込み信号９４とから停止信号９３を生成し出力する。
【００６３】
図１０には命令レジスタ（ＩＲ）の命令と、各命令に対応するデータレジスタ（ＤＲ）を記述したものである。図１０中の両矢印は、２つのデータレジスタ（ＤＲ）をトグルして使用することを表す。各命令の動作は実施例２および実施例３に記載した内容と同じであるので省略する。
【００６４】
このような構成をとることにより、ホストプロセッサを動作させることなく、デバッガからシステムバスを介して専用処理ユニットの起動制御、処理結果のリード、リセット制御、割り込み信号またはエラー通知信号のモニタリングが可能となり、また専用プロセッサを動作させることなく、デバッガからデータバスを介して内部のメモリへアクセスすることが可能となる。
【００６５】
また、割り込み信号またはエラー通知信号に応じた停止信号を出力することにより、指定した処理ブロックのエラーや割り込みが発生した時点の信号の状態を保持したままデバッグを行うことができる。
【００６６】
実施の形態１〜３ではＩＥＥＥ１１４９．１規格を利用して、オンチップデバッグを実現するオンチップＪＴＡＧインタフェース回路について説明したが、この発明はＩＥＥＥ１１４９．１規格を利用するものに限られるものではない。
【００６７】
実施の形態１〜３では専用処理ユニットは２つしか記載していないが、システムＬＳＩ内に２つ以上存在する場合でも同様にしてデバッグが可能である。
【００６８】
また実施の形態２〜３ではメモリを内臓型のメモリとしたが、システムＬＳＩ外部にメモリが接続されている場合についても同様にしてデバッグが可能である。
【００６９】
また実施の形態１および３のシステムバスのバスプロトコルは、ひとつの処理ブロックからのみ制御可能な方式であれば特に限定されず、任意の方式をとることができる。
【００７０】
また実施の形態２〜３データバスのバスプロトコルは、複数の処理ブロックから制御可能な方式であれば特に限定されず、任意の方式をとることができる。
【００７１】
また実施の形態１〜３のＪＴＡＧインタフェース手段３１内のレジスタについても、システムバスおよびデータバスのプロトコルに応じて適宜追加で、例えばバイトイネーブルなどのバス制御用レジスタを追加することも可能である。
【００７２】
【発明の効果】
以上のようにこの発明のオンチップＪＴＡＧインタフェース回路によれば、デバッガから、プロセッサを動作させることなくシステムバスまたはデータバスを制御してシステムＬＳＩ内部のメモリやレジスタにアクセスが可能であるため、プロセッサを動作させてアクセスを行う従来の方法に比べ、アクセスに要する時間を短縮するという効果があり、またプロセッサにアクセスを行わせるためのソフトウェア作成の必要がなくなり、デバッグ作業を容易化するという効果がある。
【００７３】
また本発明のオンチップＪＴＡＧインタフェース回路は、デバッガから各処理ブロックのリセットを制御することが可能であるため、一部の処理ブロックのみを動作させてデバッグを行う場合、同様のリセット制御をホストプロセッサに行わせるためのソフトウェア作成の必要がなく、デバッグ作業を容易化するという効果がある。
【００７４】
また本発明のオンチップＪＴＡＧインタフェース回路は、デバッガから各処理ブロックの割り込みやエラーの状態をモニタリングすることが可能であるため、同様のモニタリングをホストプロセッサに行わせるためのソフトウェア作成の必要がなく、デバッグ作業を容易化するという効果がある。
【００７５】
また本発明のオンチップＪＴＡＧインタフェース回路は、指定した割り込み信号やエラー信号によって処理ブロックを停止させることができるため、割り込みやエラーが発生した時点の状態を保持したまま、メモリや専用処理ユニット内部のレジスタなどの状態をデバッガから参照することが可能であり、例えばエラーの原因の解析などのデバッグ作業を容易化するという効果がある。
【図面の簡単な説明】
【図１】本発明の実施の形態１におけるシステムＬＳＩの概略構成を示すブロック図である。
【図２】本発明の実施の形態１におけるオンチップＪＴＡＧインタフェース回路の概略構成を示すブロック図である。
【図３】本発明の実施の形態１におけるオンチップＪＴＡＧインタフェース回路のライト動作を示すタイミング図である。
【図４】本発明の実施の形態１におけるオンチップＪＴＡＧインタフェース回路のリード動作を示すタイミング図である。
【図５】本発明の実施の形態２におけるシステムＬＳＩの概略構成を示すブロック図である。
【図６】本発明の実施の形態２におけるオンチップＪＴＡＧインタフェース回路の概略構成を示すブロック図である。
【図７】本発明の実施の形態３におけるシステムＬＳＩの概略構成を示すブロック図である。
【図８】本発明の実施の形態３におけるオンチップＪＴＡＧインタフェース回路の概略構成を示すブロック図である。
【図９】本発明の実施の形態３におけるＪＴＡＧインタフェース手段のレジスタ構成を示す図である。
【図１０】本発明の実施の形態３におけるＩＲ命令とデータレジスタ（ＤＲ）との関係を示す図である。
【図１１】従来のオンチップＪＴＡＧインタフェース回路の概略構成を示すブロック図である。
【符号の説明】
１、１４、４３、６３　オンチップＪＴＡＧインタフェース回路、
２　ＴＡＰコントローラ
３　命令レジスタ（ＩＲ）
４　命令デコード部、
５　プロセッサ、
６　プロセッサ制御レジスタ
７　スキャンレジスタ、
１０、４０、６０　システムＬＳＩ、
１１、４１、６１　デバッガ、
１２、６２　ホストプロセッサ、
１３、７０　システムバス、
１５、１６、４７、４８、６６、６７　専用処理ユニット、
２１、５１、８１　ＪＴＡＧインタフェース手段
３３、８３　システムバスインタフェース、
３４、８４　バス選択手段、
３５、８５　リセット選択手段、
３６、８６　停止信号生成手段
４２　プロセッサ、
４４、６４　調停回路、
４５、６８　メモリ、
４６、６９　データバス
５２　データバスインタフェース、
６５　専用プロセッサ、
８２　データバスインタフェース、
【図１】
2004094451.tif 000003
【図２】
2004094451.tif 000004
【図３】
2004094451.tif 000005
【図４】
2004094451.tif 000006
【図５】
2004094451.tif 000007
【図６】
2004094451.tif 000008
【図７】
2004094451.tif 000009
【図８】
2004094451.tif 000010
【図９】
2004094451.tif 000011
【図１０】
2004094451.tif 000012
【図１１】
2004094451.tif 000013