IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ローム株式会社の特許一覧

<>
  • 特許-半導体装置及びデバッグシステム 図1
  • 特許-半導体装置及びデバッグシステム 図2
  • 特許-半導体装置及びデバッグシステム 図3
  • 特許-半導体装置及びデバッグシステム 図4
  • 特許-半導体装置及びデバッグシステム 図5
  • 特許-半導体装置及びデバッグシステム 図6
  • 特許-半導体装置及びデバッグシステム 図7
  • 特許-半導体装置及びデバッグシステム 図8
  • 特許-半導体装置及びデバッグシステム 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-02
(45)【発行日】2024-08-13
(54)【発明の名称】半導体装置及びデバッグシステム
(51)【国際特許分類】
   G06F 15/78 20060101AFI20240805BHJP
   G06F 11/36 20060101ALI20240805BHJP
   G06F 11/22 20060101ALI20240805BHJP
【FI】
G06F15/78 518C
G06F15/78 516
G06F11/36 156
G06F11/22 636
【請求項の数】 11
(21)【出願番号】P 2021513538
(86)(22)【出願日】2020-03-17
(86)【国際出願番号】 JP2020011756
(87)【国際公開番号】W WO2020209016
(87)【国際公開日】2020-10-15
【審査請求日】2022-09-22
(31)【優先権主張番号】P 2019074565
(32)【優先日】2019-04-10
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000116024
【氏名又は名称】ローム株式会社
(74)【代理人】
【識別番号】110001933
【氏名又は名称】弁理士法人 佐野特許事務所
(72)【発明者】
【氏名】西山 高浩
【審査官】坂東 博司
(56)【参考文献】
【文献】特開平08-286947(JP,A)
【文献】特開2001-056803(JP,A)
【文献】特開2009-276985(JP,A)
【文献】特開2009-070195(JP,A)
【文献】特開2008-117230(JP,A)
【文献】特開2000-242523(JP,A)
【文献】特開2010-225094(JP,A)
【文献】特開2014-186376(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 15/78
G06F 11/36
G06F 11/22
(57)【特許請求の範囲】
【請求項1】
データバスと、前記データバスに接続されたデータメモリと、前記データバスに接続されたセレクタと、プログラムを構成する各命令をクロックに同期して順次実行することで前記プログラムを実行し且つ前記セレクタを介して前記データバスにアクセス可能な処理部と、外部装置との間で双方向通信が可能に構成され且つ前記セレクタを介して前記データバスにアクセス可能なデバッグ制御部と、を備えた半導体装置であって、
前記セレクタは、前記デバッグ制御部による制御に基づき、前記処理部からの第1信号及び前記デバッグ制御部からの第2信号の内、前記第1信号を前記データバスに伝達する第1選択状態、及び、前記第2信号を前記データバスに伝達する第2選択状態の何れかの状態をとり、
前記処理部から前記セレクタに出力される信号は、前記データメモリにリード動作を行わせるためのリードイネーブル信号、及び、前記データメモリにライト動作を行わせるためのライトイネーブル信号を含み、
前記デバッグ制御部は、前記外部装置からの所定コマンドの受信状態並びに前記処理部からの前記リードイネーブル信号及び前記ライトイネーブル信号の各状態に基づいて、前記セレクタの状態を制御し、前記セレクタが前記第2選択状態であるときに前記セレクタを介して前記データバスにアクセスし、前記所定コマンドの受信に応答して前記データバスにアクセスする際、前記セレクタを前記クロックの1周期分の時間だけ前記第2選択状態にして前記所定コマンドに応じたアクセスを前記データバスに対して行った後、前記セレクタを前記第1選択状態に戻し、
前記データメモリは、前記第1選択状態にて前記第1信号に応じて前記リード動作又は前記ライト動作を行い、前記第2選択状態にて前記第2信号に応じて前記リード動作又は前記ライト動作を行い、
前記セレクタ及び前記データメモリの夫々に接続された前記データバスを構成する複数の配線の内、前記第1信号又は前記第2信号に応じた前記リード動作により前記データメモリから読み出されたリードデータを伝送するための配線は、前記処理部及び前記デバッグ制御部の夫々に接続される
、半導体装置。
【請求項2】
前記デバッグ制御部は、
前記所定コマンドの受信に応答して前記データバスにアクセスする際、前記リードイネーブル信号又は前記ライトイネーブル信号がアサート状態であれば、前記リードイネーブル信号及び前記ライトイネーブル信号が共にネゲート状態になるまで待機してから、前記セレクタを前記クロックの1周期分の時間だけ前記第2選択状態にして前記所定コマンドに応じたアクセスを前記データバスに対して行った後、前記セレクタを前記第1選択状態に戻し
前記所定コマンドの受信に応答して前記データバスにアクセスする際、前記リードイネーブル信号及び前記ライトイネーブル信号が共にネゲート状態であれば、前記待機を経ずに前記セレクタを前記クロックの1周期分の時間だけ前記第2選択状態にして前記所定コマンドに応じたアクセスを前記データバスに対して行った後、前記セレクタを前記第1選択状態に戻す
、請求項1に記載の半導体装置。
【請求項3】
前記デバッグ制御部は、前記デバッグ制御部による前記データバスへのアクセスを可能にすることを指示するためのデータバスアクセス信号を生成する回路を有し、
前記所定コマンドの受信に応答して前記データバスアクセス信号はネゲート状態からアサート状態に切り替えられ、
前記デバッグ制御部は、
前記データバスアクセス信号がネゲート状態からアサート状態に切り替えられたときに前記リードイネーブル信号又は前記ライトイネーブル信号がアサート状態であれば、前記リードイネーブル信号及び前記ライトイネーブル信号が共にネゲート状態になるまで待機してから、前記セレクタを前記クロックの1周期分の時間だけ前記第2選択状態にして前記所定コマンドに応じたアクセスを前記データバスに対して行った後、前記セレクタを前記第1選択状態に戻し
前記データバスアクセス信号がネゲート状態からアサート状態に切り替えられたときに前記リードイネーブル信号及び前記ライトイネーブル信号が共にネゲート状態であれば、前記待機を経ずに前記セレクタを前記クロックの1周期分の時間だけ前記第2選択状態にして前記所定コマンドに応じたアクセスを前記データバスに対して行った後、前記セレクタを前記第1選択状態に戻す
、請求項2に記載の半導体装置。
【請求項4】
前記デバッグ制御部は、
前記データバスアクセス信号がネゲート状態であるときにおいて前記セレクタを前記第1選択状態とし、
前記所定コマンドの受信に応答して前記データバスアクセス信号をネゲート状態からアサート状態に切り替えた後、前記セレクタを前記クロックの1周期分の時間だけ前記第2選択状態にして前記所定コマンドに応じたアクセスを前記データバスに対して行うと、前記データバスアクセス信号をアサート状態からネゲート状態に戻し、これによって前記セレクタを前記第1選択状態に戻す
、請求項3に記載の半導体装置。
【請求項5】
前記デバッグ制御部は、前記所定コマンドが受信される前において前記セレクタを前記第1選択状態とし、前記所定コマンドの受信後に前記セレクタを前記第1選択状態から前記第2選択状態に切り替え、前記所定コマンドに応じたアクセスを前記データバスに対して行うと前記セレクタを前記第1選択状態に戻す
、請求項1~4の何れかに記載の半導体装置。
【請求項6】
前記所定コマンドとしてリードコマンドが受信された場合、
前記デバッグ制御部は、前記セレクタが前記第2選択状態とされているときに前記リードコマンドに応じたリードアクセスを前記データバスに対して行い、その後、前記リードアクセスにより前記データメモリから取得したリードデータを前記外部装置に対して送信する
、請求項1~5の何れかに記載の半導体装置。
【請求項7】
前記データメモリは複数のアドレスが割り当てられた複数の記憶領域を有し、
前記リードコマンドにて前記複数のアドレスの何れかが指定され、
前記デバッグ制御部は、前記リードコマンドに応じた前記リードアクセスにおいて、前記リードコマンドにて指定されたアドレスの記憶領域内のデータを前記リードデータとして前記データメモリから取得するためのアクセスを前記セレクタを介し前記データバスに対して行い、これによって得られた前記リードデータを前記外部装置に対して送信する
、請求項6に記載の半導体装置。
【請求項8】
前記所定コマンドとしてライトコマンドが受信された場合、
前記デバッグ制御部は、前記セレクタが前記第2選択状態とされているときに前記ライトコマンドに応じたライトアクセスを前記データバスに対して行い、
前記ライトアクセスにより、前記ライトコマンドに応じたデータの書き込みが前記データメモリにて行われる
、請求項1~5の何れかに記載の半導体装置。
【請求項9】
前記データメモリは複数のアドレスが割り当てられた複数の記憶領域を有し、
前記ライトコマンドにて前記複数のアドレスの何れかが指定されるとともにライトデータが指定され、
前記デバッグ制御部は、前記ライトコマンドに応じた前記ライトアクセスにおいて、前記ライトコマンドにて指定されたアドレスの記憶領域に前記ライトデータを書き込むためのアクセスを前記セレクタを介し前記データバスに対して行う
、請求項8に記載の半導体装置。
【請求項10】
前記第1信号又は前記第2信号に応じた前記リード動作により前記データメモリから読み出されたリードデータは、前記処理部及び前記デバッグ制御部の夫々にて取得される
、請求項1~9の何れかに記載の半導体装置。
【請求項11】
請求項1~10の何れかに記載の半導体装置と、
前記半導体装置に接続され、前記半導体装置の前記デバッグ制御部に対して前記所定コマンドを送信可能な外部装置と、を備えた
、デバッグシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体装置及びデバッグシステムに関する。
【背景技術】
【0002】
プログラムを実行するCPU等を備えた半導体装置において、実行されるプログラムを開発する際に、プログラムのデバッグ作業を支援するためのデバッグシステムが用いられることが多い。
【0003】
デバッグ作業において、プログラムの動作中に外部から半導体装置内のデータメモリへアクセスを行いたいという要望がある。この要望に応えるべく、多くのデバッグシステムは、LSI等にて構成された半導体装置の外部からシリアル通信などを利用して、データメモリへのアクセスを行い、必要な読み書きをできるような仕組みを有している。
【0004】
その際、CPUを一旦停止(ブレーク)させてデータメモリへのアクセスを行うこともある。但し、プログラム実行開始後のCPU停止が問題となる装置もある。例えば、モータ制御装置では、CPUが停止するとモータの回転制御が不能となって装置が破壊されることがある。このため、そのような装置では、CPUをなるだけ停止させずに、定期的にデータメモリにアクセスすることが要求されることもある。
【先行技術文献】
【特許文献】
【0005】
【文献】特許第5400443号公報
【文献】特開2004-86447号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
デバッグのために半導体装置に搭載される回路は、本来の半導体装置の動作に関係のないものであるため、なるだけ小規模の回路とされることが望まれる。また、プログラムの動作をできるだけ妨げないようにアクセスを行うことが望まれる。
【0007】
尚、特許文献1又は2に代表される従来のデバッグシステムでは、DMAコントローラやバス調停回路といった大規模の回路が必要とされ、コスト面で不利である。また、プログラムのブレークを必要とする従来のデバッグシステムは、モータ制御装置に適用し難いことがあるなど、適用用途が限定されることもある。プログラムのブレークを必要とする従来のデバッグシステムを用いたとき、ブレークによりプログラムの動きが本来の動きから変わってしまうこともあり、それがシステム動作に大きな影響を与えると、正しくデバッグができないこともある。
【0008】
本発明は、デバッグに関わるデータバスへのアクセスを小規模な構成で且つプログラム動作に影響を与えることなく実現可能な半導体装置及びデバッグシステムを提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明に係る半導体装置は、データバスと、前記データバスに接続されたデータメモリと、前記データバスに接続されたセレクタと、プログラムを実行し且つ前記セレクタを介して前記データバスにアクセス可能な処理部と、外部装置との間で双方向通信が可能に構成され且つ前記セレクタを介して前記データバスにアクセス可能なデバッグ制御部と、を備えた半導体装置であって、前記セレクタは、前記デバッグ制御部による制御に基づき、前記処理部からの第1信号及び前記デバッグ制御部からの第2信号の内、前記第1信号を前記データバスに伝達する第1選択状態、及び、前記第2信号を前記データバスに伝達する第2選択状態の何れかの状態をとり、前記処理部から前記セレクタに出力される信号は、前記データメモリにリード動作を行わせるためのリードイネーブル信号、及び、前記データメモリにライト動作を行わせるためのライトイネーブル信号を含み、前記デバッグ制御部は、前記外部装置からの所定コマンドの受信状態並びに前記処理部からの前記リードイネーブル信号及び前記ライトイネーブル信号の各状態に基づいて、前記セレクタの状態を制御し、前記セレクタが前記第2選択状態であるときに前記セレクタを介して前記データバスにアクセスする構成(第1の構成)である。
【0010】
上記第1の構成に係る半導体装置において、前記デバッグ制御部は、前記所定コマンドの受信に応答して前記データバスにアクセスする際、前記リードイネーブル信号又は前記ライトイネーブル信号がアサート状態であれば、前記リードイネーブル信号及び前記ライトイネーブル信号が共にネゲート状態になるまで待機してから、前記セレクタを前記第2選択状態にして前記所定コマンドに応じたアクセスを前記データバスに対して行い、前記所定コマンドの受信に応答して前記データバスにアクセスする際、前記リードイネーブル信号及び前記ライトイネーブル信号が共にネゲート状態であれば、前記待機を経ずに前記セレクタを前記第2選択状態にして前記所定コマンドに応じたアクセスを前記データバスに対して行う構成(第2の構成)であっても良い。
【0011】
上記第2の構成に係る半導体装置において、前記デバッグ制御部は、前記デバッグ制御部による前記データバスへのアクセスを可能にすることを指示するためのデータバスアクセス信号を生成する回路を有し、前記所定コマンドの受信に応答して前記データバスアクセス信号はネゲート状態からアサート状態に切り替えられ、前記デバッグ制御部は、前記データバスアクセス信号がネゲート状態からアサート状態に切り替えられたときに前記リードイネーブル信号又は前記ライトイネーブル信号がアサート状態であれば、前記リードイネーブル信号及び前記ライトイネーブル信号が共にネゲート状態になるまで待機してから、前記セレクタを前記第2選択状態にして前記所定コマンドに応じたアクセスを前記データバスに対して行い、前記データバスアクセス信号がネゲート状態からアサート状態に切り替えられたときに前記リードイネーブル信号及び前記ライトイネーブル信号が共にネゲート状態であれば、前記待機を経ずに前記セレクタを前記第2選択状態にして前記所定コマンドに応じたアクセスを前記データバスに対して行う構成(第3の構成)であっても良い。
【0012】
上記第3の構成に係る半導体装置において、前記デバッグ制御部は、前記データバスアクセス信号がネゲート状態であるときにおいて前記セレクタを前記第1選択状態とし、前記所定コマンドの受信に応答して前記データバスアクセス信号をネゲート状態からアサート状態に切り替えた後、前記セレクタを前記第2選択状態にして前記所定コマンドに応じたアクセスを前記データバスに対して行うと、前記データバスアクセス信号をアサート状態からネゲート状態に戻し、これによって前記セレクタを前記第1選択状態に戻す構成(第4の構成)であっても良い。
【0013】
上記第1~第4の構成の何れかに係る半導体装置において、前記デバッグ制御部は、前記所定コマンドが受信される前において前記セレクタを前記第1選択状態とし、前記所定コマンドの受信後に前記セレクタを前記第1選択状態から前記第2選択状態に切り替え、前記所定コマンドに応じたアクセスを前記データバスに対して行うと前記セレクタを前記第1選択状態に戻す構成(第5の構成)であっても良い。
【0014】
上記第1~第5の構成の何れかに係る半導体装置において、前記所定コマンドとしてリードコマンドが受信された場合、前記デバッグ制御部は、前記セレクタが前記第2選択状態とされているときに前記リードコマンドに応じたリードアクセスを前記データバスに対して行い、その後、前記リードアクセスにより前記データメモリから取得したリードデータを前記外部装置に対して送信する構成(第6の構成)であっても良い。
【0015】
上記第7の構成に係る半導体装置において、前記データメモリは複数のアドレスが割り当てられた複数の記憶領域を有し、前記リードコマンドにて前記複数のアドレスの何れかが指定され、前記デバッグ制御部は、前記リードコマンドに応じた前記リードアクセスにおいて、前記リードコマンドにて指定されたアドレスの記憶領域内のデータを前記リードデータとして前記データメモリから取得するためのアクセスを前記セレクタを介し前記データバスに対して行い、これによって得られた前記リードデータを前記外部装置に対して送信する構成(第7の構成)であっても良い。
【0016】
上記第1~第5の構成の何れかに係る半導体装置において、前記所定コマンドとしてライトコマンドが受信された場合、前記デバッグ制御部は、前記セレクタが前記第2選択状態とされているときに前記ライトコマンドに応じたライトアクセスを前記データバスに対して行い、前記ライトアクセスにより、前記ライトコマンドに応じたデータの書き込みが前記データメモリにて行われる構成(第8の構成)であっても良い。
【0017】
上記第8の構成に係る半導体装置において、前記データメモリは複数のアドレスが割り当てられた複数の記憶領域を有し、前記ライトコマンドにて前記複数のアドレスの何れかが指定されるとともにライトデータが指定され、前記デバッグ制御部は、前記ライトコマンドに応じた前記ライトアクセスにおいて、前記ライトコマンドにて指定されたアドレスの記憶領域に前記ライトデータを書き込むためのアクセスを前記セレクタを介し前記データバスに対して行う構成(第9の構成)であっても良い。
【0018】
本発明に係るデバッグシステムは、上記第1~第9の構成の何れかに係る半導体装置半導体装置と、前記半導体装置に接続され、前記半導体装置の前記デバッグ制御部に対して前記所定コマンドを送信可能な外部装置と、を備えた構成(第10の構成)である。
【発明の効果】
【0019】
本発明によれば、デバッグに関わるデータバスへのアクセスを小規模な構成で且つプログラム動作に影響を与えることなく実現可能な半導体装置及びデバッグシステムを提供することが可能となる。
【図面の簡単な説明】
【0020】
図1】は、本発明の第1実施形態に係るデバッグシステムの概略構成図である。
図2】は、LSI内に設けられるデータメモリを示す図である。
図3】(a)及び(b)は、本発明の第1実施形態に係り、リードアクセス及びリード動作の説明図である。
図4】(a)及び(b)は、本発明の第1実施形態に係り、ライトアクセス及びライト動作の説明図である。
図5】は、本発明の第1実施形態に係り、デバッグ制御部の内部構成と、その周辺構成を示す図である。
図6】は、本発明の第1実施形態に係り、リードコマンドの受信に応答したLSIのタイミングチャートの一例を示す図である。
図7】は、本発明の第1実施形態に係り、リードコマンドの受信に応答したLSIのタイミングチャートの他の例を示す図である。
図8】は、本発明の第1実施形態に係り、ライトコマンドの受信に応答したLSIのタイミングチャートの一例を示す図である。
図9】は、本発明の第1実施形態に係り、ライトコマンドの受信に応答したLSIのタイミングチャートの他の例を示す図である。
【発明を実施するための形態】
【0021】
以下、本発明の実施形態の例を、図面を参照して具体的に説明する。参照される各図において、同一の部分には同一の符号を付し、同一の部分に関する重複する説明を原則として省略する。尚、本明細書では、記述の簡略化上、情報、信号、物理量、素子又は部位等を参照する記号又は符号を記すことによって、該記号又は符号に対応する情報、信号、物理量、素子又は部位等の名称を省略又は略記することがある。例えば、後述の“RE”によって参照されるリードイネーブル信号は(図1参照)、リードイネーブル信号REと表記されることもあるし、信号REと略記されることもあり得るが、それらは全て同じものを指す。
【0022】
<<第1実施形態>>
本発明の第1実施形態を説明する。図1は、本発明の第1実施形態に係るデバッグシステム10の概略構成図である。デバッグシステム10は、CPU(Central Processing Unit)を内蔵したLSI(Large Scale Integration)11と、外部デバッグ装置12と、ホストコンピュータ13(以下、ホストPC13と称され得る)と、を備える。
【0023】
半導体装置としてのLSI11は、CPU(Central Processing Unit)20、デバッグ制御部21、データバス22及びセレクタ27を備えると共に、データバス22に接続される構成要素として、1以上のROM(Read only memory)と、1以上のRAM(Random access memory)と、1以上の周辺回路である1以上のペリフェラルと、を備える。図1には、上記1以上のROMに含まれる1つのROMとしてROM23が示され、上記1以上のRAMに含まれる1つのRAMとしてRAM24が示され、上記1以上のペリフェラルに含まれる1つのペリフェラルとしてペリフェラル25が示されている。以下では、ROM、RAM及びペリフェラルとしてROM23、RAM24及びペリフェラル25に注目する。ペリフェラル25にはレジスタ26が内蔵されている。
【0024】
また、LSI11ではハーバードアーキテクチャが採用されている。即ち、LSI11には、データバス22とは別にプログラムバス28が設けられており、プログラムバス28に対して、フラッシュメモリ等にて構成されたプログラムメモリ29が接続されている。プログラムメモリ29にはCPU20にて実行されるべきプログラムが格納される。CPU20はデータバス28を介してプログラムメモリ29にアクセスする。以下の説明において、単にプログラムと称した場合、それはプログラムメモリ29に格納されたプログラムを指すものとする。
【0025】
プログラムメモリ29に格納されるプログラムはCPU20が実行すべき命令(命令コード)の束から成り、CPU20は、CPU20の動作クロックに同期してプログラムメモリ29からデータバス28を介し必要な命令を順次読み出し、順次読み出した命令を、デコード等を経て順次実行することによりプログラムを実行してゆく。
【0026】
外部デバッグ装置12は、LSI11に設けられた図示されない端子を介してデバッグ制御部21に接続され、デバッグ制御部21とホストPC13との間のインターフェースとして機能する。外部デバッグ装置12及びホストPC13は双方向通信が可能な態様で互いに接続される。ホストPC13ではデバッグソフトウェア14が実行されている。デバッグシステム10のユーザは、デバッグソフトウェア14が実行されているホストPC13を操作することで、CPU20が実行するプログラムのデバッグ作業を行うことができる。
【0027】
図2を参照し、以下では、便宜上、LSI11に設けられた記憶回路であって、ROM23、RAM24及びレジスタ26を含む記憶回路をデータメモリ30と称する。データメモリ30には、所定サイズのデータを格納可能な記憶領域が多数含まれる。データメモリ30に対して所定のアドレス空間が定義されており、データメモリ30を構成する各記憶領域には固有のアドレスが割り当てられる。尚、データメモリ30を構成する記憶回路は、ROM23、RAM24及びレジスタ26の内の、任意の1つ又は2つであっても良い。
【0028】
セレクタ27は、第1入力部27a、第2入力部27b及び出力部27cを有し、第1入力部27aはCPU20に接続され、第2入力部27bはデバッグ制御部21に接続され、出力部27cはデータバス22に接続される。これについて、詳細に説明する。
【0029】
CPU20及びデバッグ制御部21は、夫々に、リードイネーブル信号、ライトイネーブル信号、アドレス信号及びライトデータを出力可能であり、CPU20から出力されるリードイネーブル信号、ライトイネーブル信号、アドレス信号及びライトデータを、特に、夫々、リードイネーブル信号RE1、ライトイネーブル信号WE1、アドレス信号ADD1及びライトデータWD1と称し、且つ、デバッグ制御部21から出力されるリードイネーブル信号、ライトイネーブル信号、アドレス信号及びライトデータを、特に、夫々、リードイネーブル信号RE2、ライトイネーブル信号WE2、アドレス信号ADD2及びライトデータWD2と称する。ライトデータは、換言すれば、ライトデータを示す信号であるとも言え、以下では、記述の便宜上、ライトデータWD1、WD2を、信号WD1、WD2と表記することもある(後述のライトデータWDについても同様)。
【0030】
第1入力部27aは、CPU20及びセレクタ27間に設けられた、信号RE1、WE1、ADD1及びWD1を伝搬する配線に接続され、CPU20からの信号RE1、WE1、ADD1及びWD1の入力を受ける。第2入力部27bは、デバッグ制御部21及びセレクタ27間に設けられた、信号RE2、WE2、ADD2及びWD2を伝搬する配線に接続され、デバッグ制御部21からの信号RE2、WE2、ADD2及びWD2の入力を受ける。
【0031】
また、セレクタ27に対してはデバッグ制御部21から制御信号CNTが供給されており、セレクタ27は制御信号CNTに基づいて、第1入力部27a及び第2入力部27bの何れか一方を選択的に出力部27cに接続する。制御信号CNTは“1”又は“0”の値をとる1ビット信号であるものとし、制御信号CNTの値が“0”であるときにはセレクタ27の状態はCPU選択状態となり、制御信号CNTの値が“1”であるときにはセレクタ27の状態はデバッガ選択状態となるものとする。以下では、セレクタ27の状態がCPU選択状態であることを単に“CPU選択状態”と表現することがあり、同様に、セレクタ27の状態がデバッガ選択状態であることを単に“デバッガ選択状態”と表現することがある。尚、“デバッガ”とは、デバッグ作業に供される部位の総称であり、デバッグ制御部21、外部デバッグ装置12及びホストPC13の全部又は一部を含むと解釈することができる。
【0032】
CPU選択状態においては、第1入力部27aが出力部27cに接続され、結果、信号RE1、WE1、ADD1及びWD1を伝搬する配線が出力部27cを通じデータバス22に接続されて、それらの信号RE1、WE1、ADD1及びWD1がデータバス22に伝達される。デバッガ選択状態においては、第2入力部27bが出力部27cに接続され、結果、信号RE2、WE2、ADD2及びWD2を伝搬する配線が出力部27cを通じデータバス22に接続されて、それらの信号RE2、WE2、ADD2及びWD2がデータバス22に伝達される。
【0033】
尚、セレクタ27の状態制御に注目した場合、制御信号CNTはセレクタ制御信号と称され得る。データバス22への供給信号の切り替え機能に注目した場合、制御信号CNTはデータバス制御信号や切替制御信号などと称され得る。
【0034】
出力部27cから出力されるリードイネーブル信号、ライトイネーブル信号、アドレス信号及びライトデータを、特に、夫々、リードイネーブル信号RE、ライトイネーブル信号WE、アドレス信号ADD及びライトデータWDと称する。尚、ライトデータ(WD、WD1、WD2)は、後述のライトアクセスの実行時においてのみ出力されるデータである。
【0035】
CPU選択状態においては、第1入力部27aが出力部27cに接続されるため、CPU20からのリードイネーブル信号RE1、ライトイネーブル信号WE1、アドレス信号ADD1及びライトデータWD1が、リードイネーブル信号RE、ライトイネーブル信号WE、アドレス信号ADD及びライトデータWDとして出力部27cからデータバス22に出力される。デバッガ選択状態においては、第2入力部27bが出力部27cに接続されるため、デバッグ制御部21からのリードイネーブル信号RE2、ライトイネーブル信号WE2、アドレス信号ADD2及びライトデータWD2が、リードイネーブル信号RE、ライトイネーブル信号WE、アドレス信号ADD及びライトデータWDとして出力部27cからデータバス22に出力される。
【0036】
このように、CPU20はセレクタ27がCPU選択状態にあるときにデータバス22へアクセスすることができ、デバッグ制御部21はセレクタ27がデバッガ選択状態にあるときにデータバス22へアクセスすることができる。データバス22へのアクセスとして、リードアクセスとライトアクセスがある。データバス22へのリードアクセス又はライトアクセスは、換言すれば、データバス22を通じたデータメモリ30へのリードアクセス又はライトアクセスである。RAM24及びレジスタ26に対するアクセスはリードアクセス及びライトアクセスの何れかであるが、ROM23に対するアクセスはリードアクセスに限定される。
【0037】
データメモリ30(例えばRAM24)は、CPU20又はデバッグ制御部21からリードアクセスを受けたとき必要なリードデータRDをデータバス22に出力するリード動作を行い、CPU20又はデバッグ制御部21からライトアクセスを受けたときデータバス22を通じて送られてきたライトデータWDに応じたデータを記憶するライト動作を行う。リードデータは、換言すれば、リードデータを示す信号であるとも言え、以下では、記述の便宜上、リードデータRDを信号RDと表記することもある。
【0038】
データバス22は、信号RE、WE、ADD、RD及びWD(即ち信号RE、WE及びADD並びにデータRD及びWD)を個別に伝送するための複数の配線から成る。データバス22を構成する配線の内、リードデータRDを伝送するための配線は、CPU20及びデバッグ制御部21の夫々に接続されている。故に、リードアクセスに応答してデータメモリ30からデータバス22に対しリードデータRDが出力されているとき、CPU20及びデバッグ制御部21は当該リードデータRDを取得することができる。
【0039】
リードイネーブル信号(RE、RE1、RE2)はデータメモリ30にリード動作を行わせるための信号(換言すればデータメモリ30にリード動作を行わせるか否かを指定する信号)であり、アサート状態(有効状態)及びネゲート状態(無効状態)の何れかをとる。リードイネーブル信号(RE、RE1、RE2)は“1”又は“0”の値をとる1ビット信号であり、リードイネーブル信号において、“1”の値がアサート状態に、“0”の値がネゲート状態に対応付けられている。“1”の値を持つリードイネーブル信号(RE、RE1、RE2)、即ちアサート状態のリードイネーブル信号は、有効な信号であってリード動作の実行を指示又は許可する信号として機能する。“0”の値を持つリードイネーブル信号(RE、RE1、RE2)、即ちネゲート状態のリードイネーブル信号は、無効な信号であってリード動作の実行を指示せず、リード動作を禁止する信号としての意味合いを持つ。故に、データメモリ30は、CPU20又はデバッグ制御部21からデータバス22を通じ “1”のリードイネーブル信号REを受けた場合に限りリード動作を実行し、リードイネーブル信号REが“0”であるときにはリード動作を実行しない。
【0040】
ライトイネーブル信号(WE、WE1、WE2)はデータメモリ30にライト動作を行わせるための信号(換言すればデータメモリ30にライト動作を行わせるか否かを指定する信号)であり、アサート状態(有効状態)及びネゲート状態(無効状態)の何れかをとる。ライトイネーブル信号(WE、WE1、WE2)は“1”又は“0”の値をとる1ビット信号であり、ライトイネーブル信号において、“1”の値がアサート状態に、“0”の値がネゲート状態に対応付けられている。“1”の値を持つライトイネーブル信号(WE、WE1、WE2)、即ちアサート状態のライトイネーブル信号は、有効な信号であってライト動作の実行を指示又は許可する信号として機能する。“0”の値を持つライトイネーブル信号(WE、WE1、WE2)、即ちネゲート状態のライトイネーブル信号は、無効な信号であってライト動作の実行を指示せず、ライト動作を禁止する信号としての意味合いを持つ。故に、データメモリ30は、CPU20又はデバッグ制御部21からデータバス22を通じ “1”のライトイネーブル信号WEを受けた場合に限りライト動作を実行し、ライトイネーブル信号WEが“0”であるときにはライト動作を実行しない。
【0041】
アドレス信号(ADD、ADD1、ADD2)は、データメモリ30内の何れかの記憶領域のアドレスを指定する信号であり、データメモリ30に定義されたアドレス空間の大きさに応じたビット数を有する。リードデータ(RD)は、データメモリ30内の何れかの記憶領域に格納されたデータを当該記憶領域から読み出したデータである。ライトデータ(WD、WD1、WD2)は、データメモリ30内の何れかの記憶領域に書き込まれるべきデータである。リードデータ及びライトデータの夫々のビット数は任意である(例えば8ビットである)。
【0042】
ホストPC13(換言すればデバッグソフトウェア14)は、デバッグシステム10のユーザによるホストPC13への操作に基づき所定コマンドを発行可能であり、発行された所定コマンドは外部デバッグ装置12を通じてデバッグ制御部21に送信される。
【0043】
上記所定コマンドとして、デバッグ制御部21にリードアクセスを行わせることを要求するリードコマンドと、デバッグ制御部21にライトアクセスを行わせることを要求するライトコマンドと、がある。リードコマンドではアクセス対象アドレスが指定される。ライトコマンドではアクセス対象アドレスとライトデータが指定される。外部デバッグ装置12からデバッグ制御部21に対してリードコマンドが送信されるときに、アクセス対象アドレスを示す信号がリードコマンドに付加されて送信されると考えても良い。同様に、外部デバッグ装置12からデバッグ制御部21に対してライトコマンドが送信されるときに、アクセス対象アドレスを示す信号及びライトデータを示す信号がライトコマンドに付加されて送信されると考えても良い。
【0044】
アクセス対象アドレスは、データメモリ30のアドレス空間における何れかのアドレスを指す。リードコマンドで指定されるアクセス対象アドレスは、デバッグ制御部21によるリードアクセスの対象となるアドレスであり、ライトコマンドで指定されるアクセス対象アドレスは、デバッグ制御部21によるライトアクセスの対象となるアドレスである。ライトコマンドで指定されるライトデータは、アクセス対象アドレスに書き込まれるべきデータを表す。
【0045】
デバッグ制御部21は、原則として 、“0”の制御信号CNTをセレクタ27に出力することでセレクタ27の状態をCPU選択状態とする。デバッグ制御部21は、リードコマンド又はライトコマンドの受信に応答してデバッグ制御部21がリードアクセス又はライトアクセスを行う必要があるときに、“1”の制御信号CNTをセレクタ27に出力し、これによってセレクタ27の状態をCPU選択状態からデバッガ選択状態に切り替える。そして、必要なリードアクセス又はライトアクセスが完了するとセレクタ27の状態をCPU選択状態に戻す。
【0046】
リードコマンドが発行されたときには、適切なタイミングでセレクタ27のデバッガ選択状態が実現され、デバッガ選択状態にてデバッグ制御部21がリードコマンドに応じたリードアクセスをデータバス22に対して行うことでアクセス対象アドレスの記憶領域の格納データをリードデータRDとして取得する。取得されたリードデータRDは、デバッグ制御部21から外部デバッグ装置12に送信され、外部デバッグ装置12を通じてホストPC13に送られる。
【0047】
ライトコマンドが発行されたときには、適切なタイミングでセレクタ27のデバッガ選択状態が実現され、デバッガ選択状態にてデバッグ制御部21がライトコマンドに応じたライトアクセスをデータバス22に対して行うことでアクセス対象アドレスの記憶領域にライトコマンドにて指定されるライトデータが書き込まれる。
【0048】
CPU20からセレクタ27に出力される信号の内、リードイネーブル信号RE1及びライトイネーブル信号WE1がデバッグ制御部21に供給されている。リードコマンド又はライトコマンドの受信に応答してセレクタ27をデバッガ選択状態とするタイミングの制御は、リードイネーブル信号RE1及びライトイネーブル信号WE1に基づいて行われる。
【0049】
端的に言えば、デバッグ制御部21は、リードコマンド又はライトコマンドを受信したとき、信号RE1及びWE1を確認する。そして、信号RE1又はWE1がアサート状態(“1”)であるならば、CPU20がデータバス22にアクセスしている最中であるので、信号RE1及びWE1が共にネゲート状態(“0”)になるまで待機してからセレクタ27をデバッガ選択状態にして受信コマンドに応じたアクセスを行う。一方、リードコマンド又はライトコマンドを受信したとき、信号RE1及びWE1が共にネゲート状態(“0”)であるならば、上記待機を経ずに速やかにセレクタ27をデバッガ選択状態にして受信コマンドに応じたアクセスを行う。これを実現するための構成の説明に先立ち、リードアクセス及びリード動作並びにライトアクセス及びライト動作について説明を加えておく。
【0050】
図3(a)及び(b)を参照し、リードアクセス及びリード動作について説明を加える。CPU選択状態においてCPU20は自身が実行するプログラムに基づきリードアクセスを行うことができ、デバッガ選択状態においてデバッグ制御部21は受信したリードコマンドに基づきリードアクセスを行うことができる。
【0051】
図3(a)に示す如く、CPU20は、CPU選択状態におけるリードアクセスにおいて、“1”のリードイネーブル信号RE1と、データメモリ30に定義された複数のアドレスの何れかを指定するアドレス信号ADD1とをセレクタ27を介し、リードイネーブル信号RE及びアドレス信号ADDとしてデータバス22に出力し、これによってデータメモリ30にリード動作を行わせる。
【0052】
図3(b)に示す如く、デバッグ制御部21は、デバッガ選択状態におけるリードアクセスにおいて、“1”のリードイネーブル信号RE2と、データメモリ30に定義された複数のアドレスの何れかを指定するアドレス信号ADD2とをセレクタ27を介し、リードイネーブル信号RE及びアドレス信号ADDとしてデータバス22に出力し、これによってデータメモリ30にリード動作を行わせる。アドレス信号ADD2にて指定されるアドレスは、リードコマンドにて指定されるアクセス対象アドレスと一致する。
【0053】
リードアクセスに応答するリード動作において、データメモリ30(例えばRAM24)は、データバス22を介しCPU20又はデバッグ制御部21から入力されたアドレス信号ADDにより指定されるアドレスの記憶領域の格納データを読み出し、読み出したデータをリードデータRDとしてデータバス22に出力する。リード動作によりデータバス22に出力されたリードデータRDは、データバス22とCPU20及びデバッグ制御部21との間の配線を介してCPU20及びデバッグ制御部21に入力される。
【0054】
図4(a)及び(b)を参照して、ライトアクセス及びライト動作について説明を加える。CPU選択状態においてCPU20は自身が実行するプログラムに基づきライトアクセスを行うことができ、デバッガ選択状態においてデバッグ制御部21は受信したライトコマンドに基づきライトアクセスを行うことができる。
【0055】
図4(a)に示す如く、CPU20は、CPU選択状態におけるライトアクセスにおいて、“1”のライトイネーブル信号WE1と、データメモリ30に定義された複数のアドレスの何れかを指定するアドレス信号ADD1と、アドレス信号ADD1により指定されるアドレスの記憶領域に書き込まれるべきライトデータWD1とを、セレクタ27を介し、ライトイネーブル信号WE、アドレス信号ADD及びライトデータWDとして、データバス22に出力し、これによってデータメモリ30にライト動作を行わせる。
【0056】
図4(b)に示す如く、デバッグ制御部21は、デバッガ選択状態におけるライトアクセスにおいて、“1”のライトイネーブル信号WE2と、データメモリ30に定義された複数のアドレスの何れかを指定するアドレス信号ADD2と、アドレス信号ADD2により指定されるアドレスの記憶領域に書き込まれるべきライトデータWD2とを、セレクタ27を介し、ライトイネーブル信号WE、アドレス信号ADD及びライトデータWDとして、データバス22に出力し、これによってデータメモリ30にライト動作を行わせる。アドレス信号ADD2にて指定されるアドレスは、ライトコマンドにて指定されるアクセス対象アドレスと一致する。ライトデータWD2は、ライトコマンドにて指定されるライトデータと一致する。
【0057】
ライトアクセスに応答するライト動作において、データメモリ30(例えばRAM24)は、データバス22を介しCPU20又はデバッグ制御部21から入力されたアドレス信号ADDにより指定されるアドレスの記憶領域に対し、CPU20又はデバッグ制御部21からのライトデータWDに応じたデータを格納する。ライト動作後における対応する記憶領域の格納データはライトデータWDと一致することもあるし、仕様によっては、ライトデータWDに基づくデータではあるもののライトデータWDとは一致しないこともある。
【0058】
図5に、デバッグ制御部21の内部構成の例を、その周辺構成と共に示す。以下の説明において、CPUクロックとはCPU20の動作クロックを指す。CPUクロックは符号“CLK”にて参照される。デバッガクロックとは、デバッグ制御部21の一部の回路素子と外部デバッグ装置12の動作クロックである。デバッグ制御部21の他の一部の回路素子(後述のFF53及び56並びにラッチ回路59を含む)はCPU20の動作クロックに同期して動作する。デバッガクロックは、例えば、外部デバッグ装置12内のクロック生成回路(不図示)にて生成されて、外部デバッグ装置12及びデバッグ制御部21間の通信線を介してデバッグ制御部21に提供される。CPUクロックとデバッガクロックは互いに非同期である。CPUクロック及びデバッガクロックの周波数の一致/不一致は問わない。通常、デバッガクロックの周波数がCPUクロックの周波数よりも低い。
【0059】
デバッガクロック及びCPUクロックを含む任意のクロックは、ハイレベル及びローレベルを交互に且つ周期的にとる矩形波信号である。任意のクロック又は信号について、ハイレベルはローレベルよりも電位が高い。任意の信号において、ローレベルからハイレベルへの切り替わりをアップエッジと称し、ローレベルからハイレベルへの切り替わりのタイミングをアップエッジタイミングと称する。任意の信号において、ハイレベルからローレベルへの切り替わりをダウンエッジと称し、ハイレベルからローレベルへの切り替わりのタイミングをダウンエッジタイミングと称する。
【0060】
図5のデバッグ制御部21は、OR回路51、ワンショットパルス回路52、FF53、OR回路54、AND回路55、FF56、AND回路57、セレクタ58及びラッチ回路59を含むデジタル回路を備え、当該デジタル回路の構成素子の入出力信号及び当該デジタル回路の構成素子で取り扱われる信号は、ローレベル又はハイレベルの信号レベルをとる二値化信号である。まず、各構成素子の入出力信号及び基本的な動作内容について説明する。
【0061】
OR回路51はリード要求信号RD_PLS及びライト要求信号WR_PLSの入力を受け、信号RD_PLS及びWR_PLSの論理和信号を出力する。信号RD_PLS及びWR_PLSは、デバッガクロックに同期した信号である。信号RD_PLSは原則としてローレベルとされ、リードコマンドの受信時においてデバッガクロックの1クロック分(即ち1周期分)だけハイレベルとされる。信号WR_PLSは原則としてローレベルとされ、ライトコマンドの受信時においてデバッガクロックの1クロック分だけハイレベルとされる。故に、デバッグ制御部21にてリードコマンド又はライトコマンドが受信されたとき、デバッガクロックの1クロック分の長さだけハイレベルとなる信号がOR回路51から出力される。
【0062】
ワンショットパルス回路52は、OR回路51の出力信号をCPUクロックにて同期化したワンショットパルス信号をデータバスアクセス開始信号S_DB_ACSとして出力する。信号S_DB_ACSは原則としてローレベルとされる。回路51及び52の機能により、リードコマンド又はライトコマンドが受信されたとき、所定の遅延を経て、信号S_DB_ACSがCPUクロックの1クロック分(即ち1周期分)だけハイレベルとなる。
【0063】
FF53は、CPUクロックに同期して動作するRS型のフリップフロップであり、CPUクロックを受けるクロック入力端子と、データ出力端子(Q端子)を備えると共に、同期入力端子としてセット端子(S端子)及びリセット端子(R端子)を備える。FF53において、セット端子にはデータバスアクセス開始信号S_DB_ACSが入力され、リセット端子には制御信号CNTが入力され、データ出力端子からデータバスアクセス信号DB_ACSが出力される。
【0064】
データバスアクセス信号DB_ACSは、デバッグ制御部21によるデータバス22へのアクセスを可能にすることを指示すための信号である。信号DB_ACSは、ハイレベルにおいてアサート状態にあり、ローレベルにおいてネゲート状態にある。即ち、ハイレベルの信号DB_ACSは、有効な信号であってデバッグ制御部21によるデータバス22へのアクセスを可能にすることを指示し、ローレベルの信号DB_ACSは、無効な信号であってデバッグ制御部21によるデータバス22へのアクセスを可能にすることを指示しない。
【0065】
FF53は、CPUクロックのアップエッジタイミングにおいて信号S_DB_ACSがハイレベルであれば、信号DB_ACSをハイレベルにする。信号DB_ACSがハイレベルとされた後、FF53のリセット端子への入力信号がハイレベルとされるまで信号DB_ACSはハイレベルに維持される。
FF53は、CPUクロックのアップエッジタイミングにおいて制御信号CNTがハイレベルであれば、信号DB_ACSをローレベルにする。信号DB_ACSがローレベルとされた後、FF53のセット端子への入力信号がハイレベルとされるまで信号DB_ACSはローレベルに維持される。
【0066】
OR回路54は、CPU20とセレクタ27との間に設けられた、リードイネーブル信号RE1を伝搬するための配線及びライトイネーブル信号WE1を伝搬するための配線に接続される。OR回路54は信号RE1及びWE1を入力信号として受け、信号RE1及びWE1の論理和信号の反転信号を出力する。信号RE1及びWE1の夫々において、“0”の値(即ちネゲート状態)にローレベルが割り当てられ、“1”の値(即ちアサート状態)にハイレベルが割り当てられる。故に、OR回路54は、信号RE1及びWE1が共にローレベル(“0”)であるときにのみハイレベルの信号を出力し、それ以外のときにはローレベルの信号を出力する。
【0067】
AND回路55は、FF53からのデータバスアクセス信号DB_ACSと、OR回路54の出力信号との論理積信号を制御信号CNTとして出力する。データバスアクセス信号DB_ACSがハイレベル(アサート状態)であって、且つ、CPU20からのリードイネーブル信号RE1及びライトイネーブル信号WE1が共にローレベル(ネゲート状態)であるときにのみ、制御信号CNTはハイレベルとなり、それ以外のときにおいて制御信号CNTはローレベルとなる。信号CNTにおいて、“0”の値にローレベルが割り当てられ、“1”の値にローレベルが割り当てられる。故に、セレクタ27は、制御信号CNTがローレベルであるときにCPU選択状態となり、制御信号CNTがハイレベルであるときにデバッガ選択状態となる。AND回路55から出力される制御信号CNTは、FF53のリセット端子に入力されると共にFF56のデータ入力端子に入力される。
【0068】
FF56は、CPUクロックに同期して動作するD型のフリップフロップであり、CPUクロックを受けるクロック入力端子と、データ入力端子(D端子)及びデータ出力端子(Q端子)を備える。FF56は、自身のデータ入力端子への入力信号(CNT)をCPUクロックのアップエッジに同期して取り込み及び保持し、保持した信号を自身のデータ出力端子から出力する。FF56の出力信号を、データバスアクセス終了信号と称し、符号“END_DB_ACS_D”にて表す。データバスアクセス終了信号END_DB_ACS_Dは、制御信号CNTを、CPUクロックにおける1クロック分だけ遅延させた信号となる。
【0069】
AND回路57は、FF56からのデータバスアクセス終了信号END_DB_ACS_Dと、図示されない回路から提供されるモード信号M_RDとの論理積信号を出力する。故に、信号END_DB_ACS及びM_RDが共にハイレベルであるときにのみ、AND回路57の出力信号はハイレベルとなり、それ以外ではローレベルとなる。リードコマンドの受信に応答してデバッグ制御部21によりリードアクセスが行われるとき、モード信号M_RDはハイレベルとされており、それ以外のときにおいてモード信号M_RDはローレベルとされている。
【0070】
セレクタ58は、第1入力端子、第2入力端子及び出力端子を有し、AND回路57の出力信号がローレベルであるときには、第1入力端子に加わるデータを自身の出力端子から出力し、AND回路57の出力信号がハイレベルであるときには、第2入力端子に加わるデータを自身の出力端子から出力する。セレクタ58の第1入力端子にはラッチ回路59の出力データが入力される。セレクタ58の第2入力端子は、データバス22におけるリードデータRDを伝搬するための配線に接続される。故に、データメモリ30からリードデータRDがデータバス22に出力されているとき、当該リードデータRDがセレクタ58の第2入力端子に入力される。
【0071】
ラッチ回路59は、CPUクロックを受けるクロック入力端子と、セレクタ58の出力端子に接続されたデータ入力端子(D端子)と、セレクタ58の第1入力端子に接続されたデータ出力端子(Q端子)と、を備える。ラッチ回路59はリードデータRDのビット数分のD型フリップフロップから成る。ラッチ回路59は、CPUクロックのアップエッジに同期して、セレクタ58の出力端子からのデータをラッチし(取り込んで保持し)、ラッチしたデータを自身のデータ出力端子から出力する。ラッチ回路59のデータ出力端子からの出力データをデバッガリードデータと称し、符号“DB_RD”にて参照する。
【0072】
AND回路57の出力信号がハイレベルとなることで実現されるラッチ回路59でのリードデータRDのラッチは、AND回路57の出力信号がローレベルとなった後、上述のセレクタ58及びラッチ回路59の協働により、AND回路57の出力信号が次回にハイレベルとなるまで維持される。
【0073】
リードコマンド又はライトコマンドの受信に関わる動作の流れについて説明する。リードコマンド又はライトコマンドの受信が無い場合においては、信号S_DB_ACS及びDB_ACSがローレベルに維持されており、セレクタ27はCPU選択状態にあってCPU20のみがデータバス22にアクセス可能となる。
【0074】
デバッグ制御部21においてリードコマンド又はライトコマンドが受信されると、データバスアクセス開始信号S_DB_ACSがハイレベルとされることで、デバッグ制御部21によるデータバス22へのアクセス開始が要求され、この要求はハイレベルのデータバスアクセス信号DB_ACSとしてAND回路55に伝達される。
【0075】
一方において、デバッグ制御部21にてリードコマンドを受信した場合には、リードアクセス用の信号がデバッグ制御部21からセレクタ27に出力される。リードアクセス用の信号は、リードコマンドに応じたアドレス信号ADD2と、“1”のリードイネーブル信号RE2と、から成る。この際、アドレス信号ADD2にて指定されるアドレスは、リードコマンドにて指定されるアクセス対象アドレスと一致する。セレクタ27に対するリードアクセス用の信号の出力は、信号DB_ACSのアップエッジと同時に或いは信号DB_ACSのアップエッジが生じる前から開始され、リードコマンドに応答したリードアクセスの完了とともに終了する。
【0076】
これに対し、デバッグ制御部21にてライトコマンドを受信した場合には、ライトアクセス用の信号がデバッグ制御部21からセレクタ27に出力される。ライトアクセス用の信号は、ライトコマンドに応じたアドレス信号ADD2及びライトデータWD2と、“1”のライトイネーブル信号WE2と、から成る。この際、アドレス信号ADD2にて指定されるアドレスは、ライトコマンドにて指定されるアクセス対象アドレスと一致する。ライトデータWD2は、ライトコマンドにて指定されるライトデータと一致する。セレクタ27に対するライトアクセス用の信号の出力は、信号DB_ACSのアップエッジと同時に或いは信号DB_ACSのアップエッジが生じる前から開始され、ライトコマンドに応答したライトアクセスの完了とともに終了する。
【0077】
データバスアクセス信号DB_ACSがハイレベルであっても、CPU20からのリードイネーブル信号RE1及びライトイネーブル信号WE1の何れかがハイレベルであるときには、CPU20がデータバス22に何らかのアクセスしていることになるので、CPU20のアクセスを阻害しないようCPU選択状態を維持し、デバッグ制御部21による実際のアクセスを待機する。
【0078】
データバスアクセス信号DB_ACSがハイレベルである場合において、CPU20からのリードイネーブル信号RE1及びライトイネーブル信号WE1が共にローレベルであるときには、CPU20によるデータバス22へのアクセスが行われていないことになるので、AND回路55からハイレベルの制御信号CNTを出力することでセレクタ27のデバッガ選択状態を実現し、デバッグ制御部21による所望のアクセス(リードアクセス又はライトアクセス)を実行する。ここにおける所望のアクセスは、リードコマンドが受信されていた場合には上記リードアクセス用の信号(ADD2、RE2)をセレクタ27を介してデータバス22に出力することで実現され、ライトコマンドが受信されていた場合には上記ライトアクセス用の信号(ADD2、WD2、WE2)をセレクタ27を介してデータバス22に出力することで実現される。
【0079】
制御信号CNTがハイレベルとされると、FF53の機能によりCPUクロックの次のアップエッジで信号DC_ACSがクリアされる(即ちローレベルに切り替えられる)。この時点では、デバッグ制御部21による所望のアクセス(リードアクセス又はライトアクセス)は完了している。
【0080】
デバッグ制御部21がリードアクセスを行った場合には、リードアクセスからCPUクロックの1クロック分遅れたタイミングにおいて、リードアクセスに対応するリードデータRDがデータバス22に現れる。このため、制御信号CNTを1クロック分遅延させた信号(END_DB_ACS_D)を用いて、当該リードデータRDをラッチ回路59にてラッチさせる。ラッチされたリードデータRDは、デバッガリードデータDB_RDとして、デバッグ制御部21から外部デバッグ装置12に送信され、外部デバッグ装置12を通じてホストPC13に送られる。
【0081】
尚、CPUクロックに同期することなく、“1”のライトイネーブル信号REと共にアドレス信号ADDがデータバス22に入力された時点でリードデータRDがデータバス22に出力される構成も採用されうる。この場合にあっては、制御信号CNTを遅延させた信号(END_DB_ACS_D)を生成する必要はなく、制御信号CNTがハイレベルとされているタイミングでラッチ回路59によりリードデータRDをラッチさせれば良い。
【0082】
このように、デバッグ制御部21は、外部デバッグ装置12からの所定コマンド(リードコマンド又はライトコマンド)の受信状態並びにCPU20からのリードイネーブル信号RE1及びライトイネーブル信号WE1の各状態に基づいて、セレクタ27の状態を制御し、セレクタ27がデバッガ選択状態であるときにセレクタ27を介してデータバス22にアクセスするよう、構成されている。
【0083】
これにより、小規模な構成で且つCPU20のプログラム動作に一切の影響を与えることなく、データバス22にアクセスできるデバッグシステムを構築できる。
【0084】
具体的には、デバッグ制御部21は、所定コマンドの受信に応答してデータバス22にアクセスする際、信号RE1又はWE1がアサート状態(ハイレベル)であれば、信号RE1及びWE1が共にネゲート状態(ローレベル)になるまで待機してから、セレクタ27をデバッガ選択状態にして所定コマンドに応じたアクセスをデータバス22に対して行う。即ち、信号RE1及びWE1が共にネゲート状態になるまで待機する待機動作を行い、信号RE1及びWE1が共にネゲート状態になったことを受けてセレクタ27をデバッガ選択状態にし、所定コマンドに応じたアクセスをデータバス22に対して行う。
デバッグ制御部21は、所定コマンドの受信に応答してデータバス22にアクセスする際、信号RE1及びWE1が共にネゲート状態であれば、上記待機を経ずに(待機動作を経ずに)、即時、セレクタ27をデバッガ選択状態にして所定コマンドに応じたアクセスをデータバス22に対して行うことができる。
【0085】
より具体的には、デバッグ制御部21は、デバッグ制御部21によるデータバス22へのアクセスを可能にすることを指示するためのデータバスアクセス信号DB_ACSを生成する回路(51、52、53)を有する。所定コマンドの受信に応答してデータバスアクセス信号DB_ACSはネゲート状態(ローレベル)からアサート状態(ハイレベル)に切り替えられる。
そして、デバッグ制御部21は、データバスアクセス信号DB_ACSがネゲート状態からアサート状態に切り替えられたときにCPU20からの信号RE1又はWE1がアサート状態(ハイレベル)であれば、信号RE1及びWE1が共にネゲート状態(ローレベル)になるまで待機してから、セレクタ27をデバッガ選択状態にして所定コマンドに応じたアクセスをデータバス22に対して行う。即ち、信号RE1及びWE1が共にネゲート状態になるまで待機する待機動作を行い、信号RE1及びWE1が共にネゲート状態になったことを受けてセレクタ27をデバッガ選択状態にし、所定コマンドに応じたアクセスをデータバス22に対して行う。
一方、デバッグ制御部21は、データバスアクセス信号DB_ACSがネゲート状態(ローレベル)からアサート状態(ハイレベル)に切り替えられたときに信号RE1及びWE1が共にネゲート状態であれば、上記待機を経ずに(待機動作を経ずに)、即時、セレクタ27をデバッガ選択状態にして所定コマンドに応じたアクセスをデータバス22に対して行うことができる。
【0086】
また、上記構成を前提とし、デバッグ制御部21は、データバスアクセス信号DB_ACSがネゲート状態(ローレベル)であるときにおいてセレクタ27をCPU選択状態とする。そして、デバッグ制御部21は、所定コマンドの受信に応答してデータバスアクセス信号DB_ACSをネゲート状態(ローレベル)からアサート状態(ハイレベル)に切り替えた後、セレクタ27をデバッガ選択状態にして所定コマンドに応じたアクセスをデータバス22に対して行うと、データバスアクセス信号DB_ACSをアサート状態(ハイレベル)からネゲート状態(ローレベル)に戻し、これによってセレクタ27をCPU選択状態に戻す。
【0087】
これにより、基本的にはセレクタ27がCPU選択状態とされ、デバッグ制御部21によるデータバス22へのアクセスが必要なときにのみ、CPU20の動作を阻害しない形でデバッガ選択状態が実現されるようになる。つまり、CPU20の動作に何ら影響が生じることはない。
【0088】
また上述の説明から理解されるが、リードコマンドを受信した場合、デバッグ制御部21は、デバッガ選択状態においてリードアクセス用の信号の出力によりセレクタ27を介しリードコマンドに応じたリードアクセスをデータバス22に対して行う(換言すれば、リードコマンドに応じたリードアクセスをセレクタ27及びデータバス22を介しデータメモリ30に対して行う)。詳細には、このリードアクセスにおいて、デバッグ制御部21は、リードコマンドにより指定されたアドレス(アクセス対象アドレス)の記憶領域内のデータをリードデータRDとしてデータメモリ30から取得するためのアクセスをセレクタ27を介しデータバス22に対して行い(換言すれば、セレクタ27及びデータバス22を介しデータメモリ30に対して行い)、これによって得られたリードデータRDを外部デバッグ装置12に対して送信する。
【0089】
一方、ライトコマンドを受信した場合、デバッグ制御部21は、デバッガ選択状態においてライトアクセス用の信号の出力によりセレクタ27を介しライトコマンドに応じたライトアクセスをデータバス22に対して行う(換言すれば、ライトコマンドに応じたライトアクセスをセレクタ27及びデータバス22を介しデータメモリ30に対して行う)。詳細には、このライトアクセスにおいて、デバッグ制御部21は、ライトコマンドにより指定されたアドレス(アクセス対象アドレス)の記憶領域に対しライトコマンドにより指定されたライトデータを書き込むためのアクセスをセレクタ27を介しデータバス22に対して行う(換言すれば、セレクタ27及びデータバス22を介しデータメモリ30に対して行う)。
【0090】
[タイミングチャート]
図6及び図7にリードコマンドの受信に応答したLSI11のタイミングチャートを示し、図8及び図9にライトコマンドの受信に応答したLSI11のタイミングチャートを示す。但し、図6図7図8図9には、夫々、ケースC_R1、C_R2、ケースC_W1、ケースC_W2におけるタイミングチャートが示されている。
図6のケースC_R1は、デバッグ制御部21がリードアクセスを行おうとした際にCPU20のアクセスと競合が生じなかったケースである。
図7のケースC_R2は、デバッグ制御部21がリードアクセスを行おうとした際にCPU20のアクセスと競合が生じたケースである。
図8のケースC_W1は、デバッグ制御部21がライトアクセスを行おうとした際にCPU20のアクセスと競合が生じなかったケースである。
図9のケースC_W2は、デバッグ制御部21がライトアクセスを行おうとした際にCPU20のアクセスと競合が生じたケースである。
【0091】
図6図9に示される波形y1~y19は、図6図9間で互いに同じ信号の波形を示しているが、それらの波形の詳細は図6図9間で部分的に異なる。まず、各波形が指し示すものについて説明する。
【0092】
波形y1はデバッガクロックの波形を示し、波形y5はCPUクロックの波形を示す。上述したように、デバッグ制御部21の一部はデバッガクロックに同期して動作し、デバッガクロックのアップエッジを契機に、自身への入力信号を取り込んだり、出力すべき信号のレベルを変化させたり、自身の状態を変化させたりする。CPUクロックに同期して動作するデバッグ制御部21の残部及びCPU20は、CPUクロックのアップエッジを契機に、自身への入力信号を取り込んだり、出力すべき信号のレベルを変化させたり、自身の状態を変化させたりする。時間の経過につれて、タイミングt、t、t、t、t、t及びtが、この順番で訪れる。タイミングtはデバッガクロックにおける或る1つのアップエッジタイミングである。タイミングt、t、t、t、t及びtの夫々において、CPUクロックのアップエッジが生じる。タイミングt及びt間、タイミングt及びt間、タイミングt及びt間、タイミングt及びt間、タイミングt及びt間の時間長さは、全て、CPUクロックの1周期に等しい。
【0093】
波形y2は、デバッガデータを表しており、外部デバッグ装置12からデバッグ制御部21へ送信される信号を模式的に示したものである。デバッガデータは、リードコマンド又はライトコマンドを構成するデータを含む。
【0094】
波形y3はリードコマンドに基づくリード要求信号RD_PLSの波形であり、波形y4はライトコマンドに基づくライト要求信号WR_PLSである(図5も参照)。
【0095】
CPU20には、次にフェッチされるべき命令が格納された、プログラムメモリ29上の番地(以下、プログラムメモリアドレスと称する)をカウント及び指定するプログラムカウンタが設けられており、プログラムメモリリードイネーブル信号がハイレベルであるときのみ、プログラムカウンタを利用してプログラムメモリアドレスがCPUクロックに同期し且つCPUクロックの周期にて順次更新されてゆく。図6図9において、“y6”はプログラムメモリアドレスの時系列変化を表しており、“y7”にてプログラムメモリリードイネーブル信号が示されている。図6図9にて想定される区間では、プログラムメモリリードイネーブル信号がハイレベルに維持されている。
【0096】
プログラムメモリ29から必要な命令を読み出して取得する動作はフェッチと称される。CPU20におけるプログラムの実行状態を示すステートの内、プログラムを構成する命令のフェッチ及び実行が行われるステートはフェッチステートと称される。フェッチステートにおいて、CPU20はプログラムメモリアドレスに示された命令をフェッチしてラッチする。図6図9において、“y8”はフェッチを通じてラッチされた命令(命令コード)の時系列変化を表しており、“y9”はステートマシンの状態の時系列変化を表している。ステートマシンは、CPU20に設けられたレジスタにて構成され、CPU20におけるプログラムの実行状態を制御する。図6図9にて想定される区間では、CPU20のステートがフェッチステートに維持されている。
【0097】
図6図9において、波形y10、y11は、夫々、CPU20からのリードイネーブル信号RE1、ライトイネーブル信号WE1の波形を示す。図6図9において、波形y12、y13、y14、y18は、夫々、デバッグ制御部21によるデータバスアクセス開始信号S_DB_ACS、データバスアクセス信号DB_ACS、制御信号CNT、データバスアクセス終了信号END_DB_ACS_Dの波形を示す。図6図9において、波形y15、y16は、夫々、データバス22におけるリードイネーブル信号RE、ライトイネーブル信号WEの波形を示す。“y17”はデータバス22に表れるリードデータRDを表しており、“y19”はラッチ回路59(図5参照)にてラッチされるデバッガリードデータDB_RDを表している。“y17” 及び“y19”において有意な値を持たないデータRD及びDB_RDを“ 0”で図示している。
【0098】
―――ケースC_R1―――
図6のケースC_R1における動作を説明する。ケースC_R1では、リードコマンドの受信に基づきタイミングtを起点にリード要求信号RD_PLSにパルスが生じている(タイミングtにてリード要求信号RD_PLSにアップエッジが生じている)。リード要求信号RD_PLSのパルスがCPUクロックにて同期されることでデータバスアクセス開始信号S_DB_ACSにパルスが生じる。即ち、タイミングt及びt間にて信号S_DB_ACSがハイレベルとなる。そうすると、図5のFF53の機能によりタイミングtにてデータバスアクセス信号DB_ACSにアップエッジが生じる。
【0099】
図6のケースC_R1では、タイミングt及びt間のクロック区間でCPU20がデータバス22へのアクセスを行っていない(即ち信号RE1及びWE1が共にローレベルである)。故に、タイミングtにて制御信号CNTにもアップエッジが生じる。制御信号CNTにアップエッジが生じると、FF53の機能により次のCPUクロックのアップエッジタイミングtにてデータバスアクセス信号DB_ACS及び制御信号CNTにダウンエッジが生じる。
【0100】
上述したように、デバッグ制御部21からセレクタ27に対するリードアクセス用の信号の出力は、信号DB_ACSのアップエッジと同時に或いは信号DB_ACSのアップエッジが生じる前から行われている。このため、制御信号CNTがハイレベルとなっている区間(即ちタイミングt及びt間)において、デバッグ制御部21からのリードアクセス用の信号に含まれる“1”の信号RE2(即ちハイレベルの信号RE2)が信号REとしてデータバス22に現れる。
【0101】
次のクロック区間であるタイミングt及びt間では、デバッグ制御部21からのリードアクセス用の信号に基づいてデータメモリ30から出力されるリードデータRDがデータバス22に現れ、またFF56の機能により信号END_DB_ACS_Dがハイレベルとなる。結果、タイミングt及びt間にてデータバス22に現れていたリードデータRDが、タイミングtにおけるCPUクロックのアップエッジに応答してラッチ回路59によりデバッガリードデータDB_RDとしてラッチされる。
【0102】
―――ケースC_R2―――
図7のケースC_R2における動作を説明する。図7のケースC_R2において、タイミングtにてデータバスアクセス信号DB_ACSにアップエッジが生じるまでの動作は、図6のケースC_R1と同様である。
【0103】
図7のケースC_R2では、タイミングt及びt間のクロック区間でCPU20がデータバス22へリードアクセスを行っている(即ち信号RE1がハイレベルである)。このため、タイミングt及びt間でデータバスアクセス信号DB_ACSがハイレベルであるものの制御信号CNTはローレベルに維持される。タイミングt及びt間におけるハイレベルの信号REはCPU20からのハイレベルの信号RE1に基づいている。
【0104】
その後、図7のケースC_R2では、タイミングt及びt間のクロック区間でCPU20がデータバス22へのアクセスを行っていない(即ち信号RE1及びWE1が共にローレベルである)。このため、タイミングtにて制御信号CNTにアップエッジが生じる。制御信号CNTにアップエッジが生じると、FF53の機能により次のCPUクロックのアップエッジタイミングtにてデータバスアクセス信号DB_ACS及び制御信号CNTにダウンエッジが生じる。制御信号CNTがハイレベルとなっている区間(即ちタイミングt及びt間)において、デバッグ制御部21からのリードアクセス用の信号に含まれる“1”の信号RE2(即ちハイレベルの信号RE2)が信号REとしてデータバス22に現れる。
【0105】
次のクロック区間であるタイミングt及びt間では、デバッグ制御部21からのリードアクセス用の信号に基づいてデータメモリ30から出力されるリードデータRDがデータバス22に現れ、またFF56の機能により信号END_DB_ACS_Dがハイレベルとなる。結果、タイミングt及びt間にてデータバス22に現れていたリードデータRDが、タイミングtにおけるCPUクロックのアップエッジに応答してラッチ回路59によりデバッガリードデータDB_RDとしてラッチされる。
【0106】
図7のケースC_R2では、タイミングt及びt間の区間が、信号RE1及びWE1が共にネゲート状態(“0”)になるまで待機している区間に相当する。待機の長さは、図7の例ではCPUクロックの1周期分となっているが、CPUクロックの複数周期分に及ぶこともある。また、待機の要因は、図7の例ではハイレベルの信号RE1であるが、ハイレベルのWE1であり得る。
【0107】
図6のケースC_R1及び図7のケースC_R2の何れにおいても、CPU20はプログラムの実行動作を停止させる必要は無く、デバッグ制御部21がデータバス22にアクセスしている最中を含め、フェッチステートが維持されて命令が順次実行されている。外部デバッグ装置12に対するデバッガリードデータDB_RDの送信もCPU20によるプログラムの実行に並行して行われ、CPU20によるプログラムの実行に影響を与えない。
【0108】
―――ケースC_W1―――
図8のケースC_W1における動作を説明する。ケースC_W1では、ライトコマンドの受信に基づきタイミングtを起点にライト要求信号WR_PLSにパルスが生じている(タイミングtにてライト要求信号WR_PLSにアップエッジが生じている)。ライト要求信号WR_PLSのパルスがCPUクロックにて同期されることでデータバスアクセス開始信号S_DB_ACSにパルスが生じる。即ち、タイミングt及びt間にて信号S_DB_ACSがハイレベルとなる。そうすると、図5のFF53の機能によりタイミングtにてデータバスアクセス信号DB_ACSにアップエッジが生じる。
【0109】
図8のケースC_W1では、タイミングt及びt間のクロック区間でCPU20がデータバス22へのアクセスを行っていない(即ち信号RE1及びWE1が共にローレベルである)。故に、タイミングtにて制御信号CNTにもアップエッジが生じる。制御信号CNTにアップエッジが生じると、FF53の機能により次のCPUクロックのアップエッジタイミングtにてデータバスアクセス信号DB_ACS及び制御信号CNTにダウンエッジが生じる。
【0110】
上述したように、デバッグ制御部21からセレクタ27に対するライトアクセス用の信号の出力は、信号DB_ACSのアップエッジと同時に或いは信号DB_ACSのアップエッジが生じる前から行われている。このため、制御信号CNTがハイレベルとなっている区間(即ちタイミングt及びt間)において、デバッグ制御部21からのライトアクセス用の信号に含まれる“1”の信号WE2(即ちハイレベルの信号WE2)が信号WEとしてデータバス22に現れ、当該区間においてライトコマンドに基づくデバッグ制御部21のライトアクセスが実行される。
【0111】
次のクロック区間であるタイミングt及びt間では、FF56の機能により信号END_DB_ACS_Dがハイレベルとなるが、ライトアクセスの実行時には信号END_DB_ACS_Dは有意に機能しない。
【0112】
―――ケースC_W2―――
図9のケースC_W2における動作を説明する。図9のケースC_W2において、タイミングtにてデータバスアクセス信号DB_ACSにアップエッジが生じるまでの動作は、図8のケースC_W1と同様である。
【0113】
図9のケースC_W2では、タイミングt及びt間のクロック区間でCPU20がデータバス22へリードアクセスを行っている(即ち信号RE1がハイレベルである)。このため、タイミングt及びt間でデータバスアクセス信号DB_ACSがハイレベルであるものの制御信号CNTはローレベルに維持される。タイミングt及びt間におけるハイレベルの信号REはCPU20からのハイレベルの信号RE1に基づいている。
【0114】
その後、図9のケースC_W2では、タイミングt及びt間のクロック区間でCPU20がデータバス22へのアクセスを行っていない(即ち信号RE1及びWE1が共にローレベルである)。このため、タイミングtにて制御信号CNTにアップエッジが生じる。制御信号CNTにアップエッジが生じると、FF53の機能により次のCPUクロックのアップエッジタイミングtにてデータバスアクセス信号DB_ACS及び制御信号CNTにダウンエッジが生じる。制御信号CNTがハイレベルとなっている区間(即ちタイミングt及びt間)において、デバッグ制御部21からのライトアクセス用の信号に含まれる“1”の信号WE2(即ちハイレベルの信号WE2)が信号WEとしてデータバス22に現れ、当該区間においてライトコマンドに基づくデバッグ制御部21のライトアクセスが実行される。
【0115】
次のクロック区間であるタイミングt及びt間では、FF56の機能により信号END_DB_ACS_Dがハイレベルとなるが、ライトアクセスの実行時には信号END_DB_ACS_Dは有意に機能しない。
【0116】
図9のケースC_W2では、タイミングt及びt間の区間が、信号RE1及びWE1が共にネゲート状態(“0”)になるまで待機している区間に相当する。待機の長さは、図9の例ではCPUクロックの1周期分となっているが、CPUクロックの複数周期分に及ぶこともある。また、待機の要因は、図9の例ではハイレベルの信号RE1であるが、ハイレベルのWE1であり得る。
【0117】
図8のケースC_W1及び図9のケースC_W2の何れにおいても、CPU20はプログラムの実行動作を停止させる必要は無く、デバッグ制御部21がデータバス22にアクセスしている最中を含め、フェッチステートが維持されて命令が順次実行されている。
【0118】
<<第2実施形態>>
本発明の第2実施形態を説明する。第2実施形態では、上述の第1実施形態に対して適用可能な幾つかの応用技術、変形技術などを説明する。第2実施形態は以下の実施例EX2_1~EX2_5を含む。
【0119】
[実施例EX2_1]
実施例EX2_1を説明する。LSI11内にデータバス22に対してアクセスを行うCPU20が2以上設けられていても良い。この場合、2以上のCPU20が同時にデータバス22に対してアクセスを行うことが無いようにするための調停回路(不図示)がLSI11に設けられる。調停回路の機能により、2以上のCPU20の内の1つのCPUに対してデータバス22へのアクセス権限が付与され、2以上のCPU20の内、アクセス権限が付与されたCPU20の出力信号及び出力データのみがデータバス22に伝達される。
【0120】
このような構成に対して第1実施形態の方法を適用する場合にあっては、アクセス権限が付与されたCPU20から、セレクタ27に対して信号RE1、WE1、ADD1及びWD1が供給されると考えれば良い。
【0121】
[実施例EX2_2]
実施例EX2_2を説明する。図1の構成においてCPU20はデータバス22に対してアクセスを行う処理部の例であるが、本発明において、そのような処理部はCPUに限定されず、データバス22に対してアクセスを行う任意の部位が処理部に成り得る。実施例EX2_1に示したように、2以上のCPU20がLSI11に設けられている場合には、2以上のCPU20と調停回路とで処理部が構成されていると考えることができる、或いは、アクセス権限が付与されたCPU20が処理部に相当すると考えることができる。
【0122】
[実施例EX2_3]
実施例EX2_3を説明する。上述の主旨を損なわない形で、任意の信号に関して、ハイレベルとローレベルの関係を逆にしても良い。これに関連するが、任意の信号について正論理及び負論理の何れを採用するかは任意である。
【0123】
[実施例EX2_4]
実施例EX2_4を説明する。LSI11を構成する各回路素子は半導体集積回路の形態で形成され、当該半導体集積回路を、樹脂にて構成された筐体(パッケージ)内に封入することで半導体装置が構成される。但し、複数のディスクリート部品を用いてLSI11内の回路と同等の回路を構成するようにしても良い。
【0124】
[実施例EX2_5]
実施例EX2_5を説明する。本発明に係るデバッグシステムは、LSI11にて例示される半導体装置と、半導体装置に接続された外部装置と、を備える。ここにおける外部装置は、図1の構成においては、外部デバッグ装置12を指すと解しても良いし、外部デバッグ装置12及びホストPC13の双方を含むと解しても良い。
【0125】
本発明の実施形態は、特許請求の範囲に示された技術的思想の範囲内において、適宜、種々の変更が可能である。以上の実施形態は、あくまでも、本発明の実施形態の例であって、本発明ないし各構成要件の用語の意義は、以上の実施形態に記載されたものに制限されるものではない。上述の説明文中に示した具体的な数値は、単なる例示であって、当然の如く、それらを様々な数値に変更することができる。
【符号の説明】
【0126】
10 デバッグシステム
11 LSI
12 外部デバッグ装置
13 ホストコンピュータ
14 デバッグソフトウェア
20 CPU
21 デバッグ制御部
22 データバス
23 ROM
24 RAM
25 ペリフェラル
26 レジスタ
27 セレクタ
28 プログラムバス
29 プログラムメモリ
30 データメモリ
図1
図2
図3
図4
図5
図6
図7
図8
図9