JP2012242931A - エミュレータ及びデバッグ方法 - Google Patents
エミュレータ及びデバッグ方法 Download PDFInfo
- Publication number
- JP2012242931A JP2012242931A JP2011110183A JP2011110183A JP2012242931A JP 2012242931 A JP2012242931 A JP 2012242931A JP 2011110183 A JP2011110183 A JP 2011110183A JP 2011110183 A JP2011110183 A JP 2011110183A JP 2012242931 A JP2012242931 A JP 2012242931A
- Authority
- JP
- Japan
- Prior art keywords
- lsi
- program
- input
- execution
- processing unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Landscapes
- Tests Of Electronic Circuits (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
【課題】JTAG-ICEにおいて、LSIの入出力状態をトリガとするエミュレーションのブレークを実現する「エミュレータ及びデバッグ方法」を提供する。
【解決手段】エミュレーション処理部23は、LSI31のICE制御ブロック314に命令を発行し、所定のプログラムをコアロジック311に実行させ、スキャン処理部24は、LSI31のコアロジック311のプログラムの1ステップ実行毎のスキャン動作を、LSI31のバウンダリスキャン制御ブロック315に行わせ、LSI31の各入出力端子312の状態をスキャンデータメモリ25に格納する。エミュレーション処理部23は、スキャンデータメモリ25からLSI31の各入出力端子312の状態を読み出し、読み出した各入出力端子312の状態が、予めブレーク条件メモリ26に設定されているブレーク条件にマッチするかどうかを調べ、マッチしていればプログラムの実行をブレークする。
【選択図】図1
【解決手段】エミュレーション処理部23は、LSI31のICE制御ブロック314に命令を発行し、所定のプログラムをコアロジック311に実行させ、スキャン処理部24は、LSI31のコアロジック311のプログラムの1ステップ実行毎のスキャン動作を、LSI31のバウンダリスキャン制御ブロック315に行わせ、LSI31の各入出力端子312の状態をスキャンデータメモリ25に格納する。エミュレーション処理部23は、スキャンデータメモリ25からLSI31の各入出力端子312の状態を読み出し、読み出した各入出力端子312の状態が、予めブレーク条件メモリ26に設定されているブレーク条件にマッチするかどうかを調べ、マッチしていればプログラムの実行をブレークする。
【選択図】図1
Description
本発明は、エミュレータを用いた電子回路のデバッグの技術に関するものである。
電子回路のデバッグの技術としては、LSIに内蔵されたスキャン回路でスキャンしたLSIの入出力端子の状態を、LSIがデバッグ用に備えるJTAGインタフェースを介して外部に読み出すJTAGバウンダリスキャンの技術が知られている(IEEE 1149.1)。
また、LSIに、JTAGインタフェースを介した外部からの制御に応じて、LSIの状態や実行の制御を行うICE制御回路を備えることにより、オンチップエミュレーションを可能としたJTAG-ICEの技術も知られている(たとえば、特許文献1)。
上述したJTAG-ICEの技術によれば、LSIの入出力の状態に同期してLSIの実行制御を行う手段が無く、LSIの入出力状態をトリガとするエミュレーションのブレークを行うことができなかった。
そこで、本発明は、JTAG-ICEにおいて、LSIの入出力状態をトリガとするエミュレーションのブレークを実現することを課題とする。
そこで、本発明は、JTAG-ICEにおいて、LSIの入出力状態をトリガとするエミュレーションのブレークを実現することを課題とする。
前記課題達成のために、本発明は、JTAGインタフェースと、JTAGインタフェースを介して各入出力端子の状態を出力するバウンダリスキャン機能と、JTAGインタフェースを介した実行制御に応じてプログラムを実行するJTAG-ICE対応機能とを備えたLSI用のエミュレータに、前記LSIの前記JTAG-ICE対応機能を利用して、前記LSIのプログラムの実行を制御するエミュレーション処理部と、前記エミュレーション処理部によるプログラムの実行の制御に応じた前記LSIの動作中に、前記LSIのバウンダリスキャン機能を利用して、前記LSIの各入出力端子の状態を取得するスキャン処理部と、前記スキャン処理部が取得した前記LSIの各入出力端子の状態もしくは当該状態の組み合わせが、予め設定されたブレーク条件にマッチしたときに、前記LSIのプログラムの実行を停止させるブレーク手段とを備えたものである。
ここで、このようなエミュレータは、前記エミュレーション処理部において、前記LSIのプログラムの実行を1ステップずつ制御し、前記ブレーク手段において、前記LSIがプログラムの1ステップの実行毎に、前記スキャン処理部が取得した前記LSIの各入出力端子の状態もしくは当該状態の組み合わせが、予め設定されたブレーク条件にマッチするかどうかを判定し、マッチしない場合に、前記エミュレーション処理部に、前記LSIのプログラムの次のステップの実行の制御を行わせ、マッチした場合に、前記エミュレーション処理部の、前記LSIのプログラムの実行の制御を停止させるように構成してもよい。
これらのようなエミュレータによれば、LSIが備えるバウンダリスキャンの機能を利用して、JTAG-ICEにおいて、LSIの入出力状態をトリガとするエミュレーションのブレークを実現することができるようになる。
以上のように、本発明によれば、JTAG-ICEにおいて、LSIの入出力状態をトリガとするエミュレーションのブレークを実現することができる。
以下、本発明の実施形態について説明する。
図1に、本実施形態に係るデバッグの構成を示す。
本構成は、コンピュータ1とエミュレータユニット2を用いて、ロジックボード3をデバッグするものである。
ロジックボード3には、JTAGバウンダリスキャンとJTAG-ICEとに対応したCPU等のLSI31と、その周辺回路32と、LSI31のJTAGポート用のコネクタ33が搭載されている。
また、LSI31は、LSI本来の機能を奏するコアロジック311、コアロジック311が入出力に用いるLSI31の入出力端子312、複数のスキャンセル313、ICE制御ブロック314、バウンダリスキャン制御ブロック315、4本の入出力端子317より構成されるJTAGポートを介した外部との入出力を担うJTAGインタフェース316を備えている。
図1に、本実施形態に係るデバッグの構成を示す。
本構成は、コンピュータ1とエミュレータユニット2を用いて、ロジックボード3をデバッグするものである。
ロジックボード3には、JTAGバウンダリスキャンとJTAG-ICEとに対応したCPU等のLSI31と、その周辺回路32と、LSI31のJTAGポート用のコネクタ33が搭載されている。
また、LSI31は、LSI本来の機能を奏するコアロジック311、コアロジック311が入出力に用いるLSI31の入出力端子312、複数のスキャンセル313、ICE制御ブロック314、バウンダリスキャン制御ブロック315、4本の入出力端子317より構成されるJTAGポートを介した外部との入出力を担うJTAGインタフェース316を備えている。
ここで、スキャンセル313は、JTAGポートを構成する4本の入出力端子317を除く、LSI31の各入出力端子312に対応して各々設して設けられている。また、各スキャンセル313はシリアルに順次接続されている。
また、バウンダリスキャン制御ブロック315は、LSI31のバウンダリスキャン動作を制御する。すなわち、バウンダリスキャン制御ブロック315は、JTAGインタフェース316を介した外部からの制御に応じて、各スキャンセル313に対応する入出力端子312の状態を、各スキャンセル313にシフト動作を行わせることにより取得して、JTAGインタフェース316を介して外部に出力するスキャン動作等を行う。
また、バウンダリスキャン制御ブロック315は、LSI31のバウンダリスキャン動作を制御する。すなわち、バウンダリスキャン制御ブロック315は、JTAGインタフェース316を介した外部からの制御に応じて、各スキャンセル313に対応する入出力端子312の状態を、各スキャンセル313にシフト動作を行わせることにより取得して、JTAGインタフェース316を介して外部に出力するスキャン動作等を行う。
また、ICE制御ブロック314は、LSI31のオンチップエミュレーション動作を制御する。すなわち、ICE制御ブロック314は、JTAGインタフェース316を介した外部からの命令に応じて、コアロジック311の状態やプログラムの実行を制御する。
ここで、バウンダリスキャン制御ブロック315は、ICE制御ブロック314の制御下におけるコアブロックの動作実行中にも、上述したスキャン動作を行うことができるように構成されている。
次に、エミュレータユニット2は、ロジックボード3のコネクタ33を介して、LSI31のJTAGポートとの間の入出力を担うデバイスインタフェース21、コンピュータ1との間の入出力を担うホストインタフェース22、エミュレーション処理部23、スキャン処理部24、スキャンデータメモリ25、ブレーク条件メモリ26とを備えている。
ここで、バウンダリスキャン制御ブロック315は、ICE制御ブロック314の制御下におけるコアブロックの動作実行中にも、上述したスキャン動作を行うことができるように構成されている。
次に、エミュレータユニット2は、ロジックボード3のコネクタ33を介して、LSI31のJTAGポートとの間の入出力を担うデバイスインタフェース21、コンピュータ1との間の入出力を担うホストインタフェース22、エミュレーション処理部23、スキャン処理部24、スキャンデータメモリ25、ブレーク条件メモリ26とを備えている。
ここで、エミュレーション処理部23は、コンピュータ1からの制御に従って、LSI31のICE制御ブロック314に命令を発行し、ICE制御ブロック314にLSI31のオンチップエミュレーション動作を制御させる。
また、スキャン処理部24は、コンピュータ1からの制御に従って、LSI31のバウンダリスキャン制御ブロック315を制御し、LSI31に前述したスキャン動作を行わせLSI31の各入出力端子312の状態を読み出しスキャンデータメモリ25に格納する動作などを行う。また、エミュレーション処理部23は、コンピュータ1からの要求に応えてスキャンデータメモリ25に格納されたLSI31の各入出力端子312の状態の履歴をトレースデータとしてコンピュータ1に提供する処理も行う。
また、スキャン処理部24は、コンピュータ1からの制御に従って、LSI31のバウンダリスキャン制御ブロック315を制御し、LSI31に前述したスキャン動作を行わせLSI31の各入出力端子312の状態を読み出しスキャンデータメモリ25に格納する動作などを行う。また、エミュレーション処理部23は、コンピュータ1からの要求に応えてスキャンデータメモリ25に格納されたLSI31の各入出力端子312の状態の履歴をトレースデータとしてコンピュータ1に提供する処理も行う。
次に、コンピュータ1は、オペレーティングシステム11上で稼働するエミュレータアプリケーション12を備えており、エミュレータアプリケーション12は、ユーザの作成したスクリプトやユーザの操作に従ってエミュレータユニット2のICE制御ブロック314とスキャン処理部24とを制御する。
以下、このような構成において行うLSI31のデバッグ動作について説明する。
図2に、エミュレータユニット2のエミュレーション処理部23が、コンピュータ1のエミュレータアプリケーション12からの制御に従って行うエミュレーション処理の手順を示す。
図示するように、このエミュレーション処理では、まず、スキャン処理部24に並行スキャンモードを設定する(ステップ202)。
ここで、並行スキャンモードが設定されたスキャン処理部24は、エミュレーション処理部23と同期して動作し、LSI31のコアロジック311のプログラムの1ステップ実行毎のスキャン動作を、LSI31のバウンダリスキャン制御ブロック315に行わせ、LSI31の各入出力端子312の状態をLSI31より読み出しスキャンデータメモリ25に格納する。
以下、このような構成において行うLSI31のデバッグ動作について説明する。
図2に、エミュレータユニット2のエミュレーション処理部23が、コンピュータ1のエミュレータアプリケーション12からの制御に従って行うエミュレーション処理の手順を示す。
図示するように、このエミュレーション処理では、まず、スキャン処理部24に並行スキャンモードを設定する(ステップ202)。
ここで、並行スキャンモードが設定されたスキャン処理部24は、エミュレーション処理部23と同期して動作し、LSI31のコアロジック311のプログラムの1ステップ実行毎のスキャン動作を、LSI31のバウンダリスキャン制御ブロック315に行わせ、LSI31の各入出力端子312の状態をLSI31より読み出しスキャンデータメモリ25に格納する。
そして、次に、エミュレーション処理部23は、LSI31のICE制御ブロック314に命令を発行し、所定のプログラムを1ステップ、コアロジック311に実行させる(ステップ204)。
ここで、コアロジック311のプログラムの各ステップの実行は、たとえば、コアロジック311に、周辺回路32やLSI31に含まれる所定のプログラムメモリのプログラムの各ステップを実行させること等により実現する。
次に、エミュレーション処理部23は、スキャンデータメモリ25から、ステップ202のプログラムのステップの実行後のLSI31の各入出力端子312の状態を読み出し、読み出した各入出力端子312の状態が、予めコンピュータ1のエミュレータアプリケーション12からブレーク条件メモリ26に設定されているブレーク条件にマッチするかどうかを調べる(ステップ206)。
ここで、コアロジック311のプログラムの各ステップの実行は、たとえば、コアロジック311に、周辺回路32やLSI31に含まれる所定のプログラムメモリのプログラムの各ステップを実行させること等により実現する。
次に、エミュレーション処理部23は、スキャンデータメモリ25から、ステップ202のプログラムのステップの実行後のLSI31の各入出力端子312の状態を読み出し、読み出した各入出力端子312の状態が、予めコンピュータ1のエミュレータアプリケーション12からブレーク条件メモリ26に設定されているブレーク条件にマッチするかどうかを調べる(ステップ206)。
ここで、ブレーク条件メモリ26に設定されるブレーク条件としては、特定の入出力端子312の特定の値の出現もしくは当該特定の値への変化や、特定の入出力端子312の値の特定の組み合わせ(たとえば、特定アドレスのリード/ライトを表す入出力端子312の値の組み合わせ)の出現等を設定する。
そして、読み出した各入出力端子312の状態がブレーク条件にマッチしなかった場合には(ステップ206)、プログラムが最後のステップまで実行を完了したかどうかを調べ(ステップ208)、完了していればエミュレーション処理を終了し、完了していなければステップ202に戻ってプログラムの次のステップを実行する。
そして、読み出した各入出力端子312の状態がブレーク条件にマッチしなかった場合には(ステップ206)、プログラムが最後のステップまで実行を完了したかどうかを調べ(ステップ208)、完了していればエミュレーション処理を終了し、完了していなければステップ202に戻ってプログラムの次のステップを実行する。
一方、読み出した各入出力端子312の状態がブレーク条件にマッチした場合には(ステップ206)、プログラムの実行をブレークする(ステップ210)。すなわち、プログラムの以降のステップの実行を停止し、最後に実行したステップの識別と共にコンピュータ1のエミュレータアプリケーション12にブレーク発生を通知する。そして、エミュレータアプリケーション12からの再開の指示があれば(ステップ212)、ステップ208に進み、プログラムが最後のステップまで実行を完了したかどうかを調べ、完了していればエミュレーション処理を終了し、完了していなければステップ202に戻ってプログラムの次のステップを実行する。一方、エミュレータアプリケーション12からの終了の指示があった場合には(ステップ214)、エミュレーション処理を終了する。
以上、本発明の実施形態について説明した。
以上のように、本実施形態によれば、LSI31が備えるバウンダリスキャンの機能を利用して、JTAG-ICEにおいて、LSI31の入出力状態をトリガとするエミュレーションのブレークを実現することができる。
ところで、以上の実施形態におけるエミュレーション処理では、LSI31のコアロジック311にプログラムのステップを1ステップずつ実行させてコアロジック311のプログラムの実行を停止した上で、スキャン動作によって読み出されたLSI31の各入出力端子312の状態とブレーク条件とのマッチの有無を判定し、マッチした場合にプログラムの実行をブレークするようにしたが、LSI31のコアロジック311のプログラムの各ステップの連続的な実行中に、プログラムの各ステップの実行と同期した形態でLSI31の各入出力端子312の状態をスキャン動作によって取得できる場合には、1ステップずつプログラムの実行を停止する必要はなく、プログラムの各ステップを連続的に実行させながら、スキャン動作によって読み出されたLSI31の各入出力端子312の状態とブレーク条件とのマッチの有無を判定し、マッチした時点でLSI31のプログラムの実行をブレークするようにしてよい。
以上のように、本実施形態によれば、LSI31が備えるバウンダリスキャンの機能を利用して、JTAG-ICEにおいて、LSI31の入出力状態をトリガとするエミュレーションのブレークを実現することができる。
ところで、以上の実施形態におけるエミュレーション処理では、LSI31のコアロジック311にプログラムのステップを1ステップずつ実行させてコアロジック311のプログラムの実行を停止した上で、スキャン動作によって読み出されたLSI31の各入出力端子312の状態とブレーク条件とのマッチの有無を判定し、マッチした場合にプログラムの実行をブレークするようにしたが、LSI31のコアロジック311のプログラムの各ステップの連続的な実行中に、プログラムの各ステップの実行と同期した形態でLSI31の各入出力端子312の状態をスキャン動作によって取得できる場合には、1ステップずつプログラムの実行を停止する必要はなく、プログラムの各ステップを連続的に実行させながら、スキャン動作によって読み出されたLSI31の各入出力端子312の状態とブレーク条件とのマッチの有無を判定し、マッチした時点でLSI31のプログラムの実行をブレークするようにしてよい。
また、以上の実施形態におけるエミュレータユニット2の機能またはその一部は、コンピュータ1のエミュレータアプリケーション12に、これを備えるようにしてもよい。または、逆に、以上の実施形態におけるコンピュータ1のエミュレータアプリケーション12の機能はエミュレータユニット2にこれを備えるようにしてもよい。
1…コンピュータ、2…エミュレータユニット、3…ロジックボード、11…オペレーティングシステム、12…エミュレータアプリケーション、21…デバイスインタフェース、22…ホストインタフェース、23…エミュレーション処理部、24…スキャン処理部、25…スキャンデータメモリ、26…ブレーク条件メモリ、31…LSI、32…周辺回路、33…コネクタ、311…コアロジック、312…入出力端子、313…スキャンセル、314…ICE制御ブロック、315…バウンダリスキャン制御ブロック、316…JTAGインタフェース。
Claims (3)
- JTAGインタフェースと、JTAGインタフェースを介して各入出力端子の状態を出力するバウンダリスキャン機能と、JTAGインタフェースを介した実行制御に応じてプログラムを実行するJTAG-ICE対応機能とを備えたLSI用のエミュレータであって、
前記LSIの前記JTAG-ICE対応機能を利用して、前記LSIのプログラムの実行を制御するエミュレーション処理部と、
前記エミュレーション処理部によるプログラムの実行の制御に応じた前記LSIの動作中に、前記LSIのバウンダリスキャン機能を利用して、前記LSIの各入出力端子の状態を取得するスキャン処理部と、
前記スキャン処理部が取得した前記LSIの各入出力端子の状態もしくは当該状態の組み合わせが、予め設定されたブレーク条件にマッチしたときに、前記LSIのプログラムの実行を停止させるブレーク手段とを有することを特徴とするエミュレータ。 - 請求項1記載のエミュレータであって、
前記エミュレーション処理部は、前記LSIのプログラムの実行を1ステップずつ制御し、
前記ブレーク手段は、前記LSIがプログラムの1ステップの実行毎に、前記スキャン処理部が取得した前記LSIの各入出力端子の状態もしくは当該状態の組み合わせが、予め設定されたブレーク条件にマッチするかどうかを判定し、マッチしない場合に、前記エミュレーション処理部に、前記LSIのプログラムの次のステップの実行の制御を行わせ、マッチした場合に、前記エミュレーション処理部の、前記LSIのプログラムの実行の制御を停止させることを特徴とするエミュレータ。 - JTAGインタフェースと、JTAGインタフェースを介して各入出力端子の状態を出力するバウンダリスキャン機能と、JTAGインタフェースを介した実行制御に応じてプログラムを実行するJTAG-ICE対応機能とを備えたLSI用のエミュレータを用いて、前記LSIをデバッグするデバッグ方法であって、
前記エミュレータが、前記LSIの前記JTAG-ICE対応機能を利用して、前記LSIのプログラムの実行を制御するステップと、
前記エミュレータが、前記プログラムの実行の制御に応じた前記LSIの動作中に、前記LSIのバウンダリスキャン機能を利用して、前記LSIの各入出力端子の状態を取得するステップと、
前記エミュレータが、前記取得した前記LSIの各入出力端子の状態もしくは当該状態の組み合わせが、予め設定されたブレーク条件にマッチしたときに、前記LSIのプログラムの実行を停止させるステップとを有することを特徴とするデバッグ方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011110183A JP2012242931A (ja) | 2011-05-17 | 2011-05-17 | エミュレータ及びデバッグ方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011110183A JP2012242931A (ja) | 2011-05-17 | 2011-05-17 | エミュレータ及びデバッグ方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012242931A true JP2012242931A (ja) | 2012-12-10 |
Family
ID=47464613
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011110183A Withdrawn JP2012242931A (ja) | 2011-05-17 | 2011-05-17 | エミュレータ及びデバッグ方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012242931A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016045676A (ja) * | 2014-08-22 | 2016-04-04 | 富士通株式会社 | デバッグ回路、デバッガ装置、半導体装置及びデバッグ方法 |
-
2011
- 2011-05-17 JP JP2011110183A patent/JP2012242931A/ja not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016045676A (ja) * | 2014-08-22 | 2016-04-04 | 富士通株式会社 | デバッグ回路、デバッガ装置、半導体装置及びデバッグ方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106599343B (zh) | 一种提高仿真效率的soc系统验证方法和装置 | |
US20130007720A1 (en) | Dynamic Isolated Debugging via Class Instrumentation | |
US7930162B1 (en) | Accelerating hardware co-simulation using dynamic replay on first-in-first-out-driven command processor | |
CN109213680B (zh) | 基于嵌入式软件仿真器的自动化测试方法 | |
CN105528284B (zh) | 一种内核故障注入方法及电子设备 | |
US9317397B2 (en) | Programmable logic controller (PLC) simulation system, PLC simulator, recording medium, and simulation method | |
US20100070260A1 (en) | Verification device, verifying apparatus and verification system | |
CN106681877B (zh) | 芯片调试系统及方法与系统芯片 | |
CN106021024B (zh) | 一种用户终端停止响应提示方法及用户终端 | |
CN110851297A (zh) | 一种接口抖动状态的处理方法、装置、系统及介质 | |
JP2005070950A (ja) | プログラム処理装置 | |
CN110532164B (zh) | 半导体设备和调试方法 | |
JP2012242931A (ja) | エミュレータ及びデバッグ方法 | |
JP4024026B2 (ja) | 半導体装置および評価装置 | |
JP4940757B2 (ja) | 移動無線通信端末及び異常発生時の情報収集方法とプログラム | |
JP6070600B2 (ja) | マイクロコンピュータ | |
US8990624B2 (en) | Emulator verification system, emulator verification method | |
JP2008267999A (ja) | 制御中に自己診断できるプログラム可能な制御装置 | |
JP5850732B2 (ja) | 半導体装置及びその制御方法 | |
US20210173989A1 (en) | Simulation signal viewing method and system for digital product | |
US20210173994A1 (en) | Method and system for viewing simulation signals of a digital product | |
JP2018128767A (ja) | デバッグシステム及び半導体装置 | |
JP2008267998A (ja) | 半導体集積回路の故障診断方式 | |
CN116185742A (zh) | 处理器芯片性能测试方法和测试装置 | |
JP2007065980A (ja) | プログラム試験装置及びプログラム試験方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20140805 |