JP2023150107A - インサーキットエミュレータ装置 - Google Patents

インサーキットエミュレータ装置 Download PDF

Info

Publication number
JP2023150107A
JP2023150107A JP2022059026A JP2022059026A JP2023150107A JP 2023150107 A JP2023150107 A JP 2023150107A JP 2022059026 A JP2022059026 A JP 2022059026A JP 2022059026 A JP2022059026 A JP 2022059026A JP 2023150107 A JP2023150107 A JP 2023150107A
Authority
JP
Japan
Prior art keywords
address
circuit
real
signal
data
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.)
Pending
Application number
JP2022059026A
Other languages
English (en)
Inventor
博 山崎
Hiroshi Yamazaki
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lapis Technology Co Ltd
Original Assignee
Lapis Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Lapis Technology Co Ltd filed Critical Lapis Technology Co Ltd
Priority to JP2022059026A priority Critical patent/JP2023150107A/ja
Priority to US18/192,488 priority patent/US20230314513A1/en
Priority to CN202310327429.0A priority patent/CN116893875A/zh
Publication of JP2023150107A publication Critical patent/JP2023150107A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/319Tester hardware, i.e. output processing circuits
    • G01R31/31903Tester hardware, i.e. output processing circuits tester configuration
    • G01R31/31915In-circuit Testers
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31712Input or output aspects
    • G01R31/31713Input or output interfaces for test, e.g. test pins, buffers
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31725Timing aspects, e.g. clock distribution, skew, propagation delay
    • G01R31/31726Synchronization, e.g. of test, clock or strobe signals; Signals in different clock domains; Generation of Vernier signals; Comparison and adjustment of the signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】プログラム実行中にCPUがアクセスした記憶装置の記憶箇所以外の記憶箇所のデータを取得するインサーキットエミュレータ装置を提供する。【解決手段】システム10において、マイクロコンピュータは、第1のクロック信号に同期したプログラムの実行により第1のアドレス信号を生成するCPUと、第1のクロック信号より高い周波数の第2のクロック信号に同期して第2のアドレス信号を生成するリアルタイムキャプチャ回路と、第1のクロック信号の1周期のうちの第1の期間に亘って第2のアドレス信号を記憶装置に供給し、残りの第2の期間に亘って第1のアドレス信号を供給するセレクタ回路と、を含む。記憶装置は、第2のアドレス信号の供給時に第2のアドレス信号が示すアドレスの記憶箇所からデータを読み出し、第1のアドレス信号の供給時に第1のアドレス信号が示すアドレスの記憶箇所についてCPUからのデータの書き込み又は読み出しを行う。【選択図】図1

Description

本発明は、プログラムを試験的に実行するインサーキットエミュレータ装置に関する。
インサーキットエミュレータ装置は、マイクロコンピュータシステムの開発の際に用いられる試験装置であり、マイクロコンピュータシステムのCPUがプログラムに従って正しく実行するか否かをそのCPUに代わって確認するものである。
特許文献1には、デバッグ用CPUと、プログラムやデータを格納するメインメモリと、デバッグ時にデバッグ用CPUを制御する制御回路と、デバッグ用CPUのプログラム実行中の命令の実行履歴、及びメインメモリへのデータアクセスの履歴を記録するトレースメモリ装置とを有するインサーキットエミュレータ装置が開示されている。この従来のインサーキットエミュレータ装置では、デバッグ用CPUでの命令の実行に伴ってメインメモリに新たに書き込まれたデータを、トレースメモリ装置に記録された命令実行履歴の情報に基づいて、トレースメモリ装置に記録されたデータアクセス履歴の情報から取得して出力することができる。
特開2005-182573号公報
しかしながら、かかる従来のインサーキットエミュレータ装置においては、CPUのプログラム実行中にCPUからメインメモリ等の記憶装置へのアクセスにより記憶装置に書き込まれたデータだけがデータアクセス履歴の情報として取得される構成であるので、CPUのプログラム実行中にはCPUがアクセスした記憶装置の記憶箇所以外の任意の記憶箇所のデータを取得することはできないという問題があった。
そこで、本発明の目的は、CPUのプログラム実行中にCPUがアクセスした記憶装置の記憶箇所以外の記憶箇所のデータを取得することができるインサーキットエミュレータ装置を提供することである。
本発明のインサーキットエミュレータ装置は、第1のクロック信号と、前記第1のクロック信号の周波数より高い周波数を有する第2のクロック信号とを生成するクロック生成回路と、データを記憶する記憶装置と、前記第1のクロック信号に同期してプログラムを実行し、前記プログラムの実行時にアクセスする前記記憶装置内でのアドレスを示す第1のアドレス信号を生成するCPUと、前記第2のクロック信号に同期して前記記憶装置内の予め指定されたアドレスを示す第2のアドレス信号を生成するリアルタイムキャプチャ回路と、前記第1のアドレス信号及び前記第2のアドレス信号を受けて、前記第1のクロック信号の1周期のうちの第1の期間に亘って前記第2のアドレス信号を前記記憶装置に供給し、残りの第2の期間に亘って前記第1のアドレス信号を前記記憶装置に供給するセレクタ回路と、を含み、前記記憶装置は、前記セレクタ回路から前記第2のアドレス信号が供給されたときに前記第2のアドレス信号が示すアドレスの記憶箇所からデータを読み出し、その読み出しデータを前記リアルタイムキャプチャ回路に対して出力し、前記セレクタ回路から前記第1のアドレス信号が供給されたときに前記第1のアドレス信号が示すアドレスの記憶箇所について前記CPUからのデータの書き込む又はデータを読み出してそれを前記CPUに出力することを特徴としている。
本発明のインサーキットエミュレータ装置によれば、プログラム実行中のCPUによる記憶装置からのデータ読み出し及び記憶装置へのデータ書き込み動作に影響を与えることなく、CPUのデータの読み出し又は書き込み動作のためのアクセス先とは無関係に記憶装置内の指定した記憶箇所のデータを獲得することができる。
本発明の実施例1としてインサーキットエミュレータ装置の構成を示すブロック図である。 図1の装置のCPUのデータ読み出し動作を示すタイミングチャートである。 図1の装置のリアルタイムクロック信号を用いたリアルタイムキャプチャ動作を示すタイミングチャートである。 本発明の実施例2としてインサーキットエミュレータ装置の構成を示すブロック図である。 本発明の実施例3としてインサーキットエミュレータ装置の構成を示すブロック図である。
以下、本発明の実施例を、図面を参照しつつ詳細に説明する。
図1は本発明の実施例1としてインサーキットエミュレータ装置の構成を示している。このインサーキットエミュレータ装置は、ICE(インサーキットエミュレータ)回路11及びマイクロコンピュータ12を含むマイクロコンピュータデバッグシステム10と、ICE制御CPU(中央処理装置)20と、プログラムメモリ30とを備えている。
ICE回路11はリアルタイムキャプチャ制御回路13を含んでいる。マイクロコンピュータ12は、クロック生成回路15、CPU16、記憶装置17、リアルタイムキャプチャ回路18、及びセレクタ回路19を含んでいる。リアルタイムキャプチャ回路18は読み出しアドレスレジスタ21と、読み出しデータレジスタ22とを有している。
ICE制御CPU20は、リアルタイムキャプチャ制御回路13に接続されており、リアルタイムキャプチャ制御回路13に命令を送出し、またリアルタイムキャプチャ制御回路13から出力されたデータを受信する。リアルタイムキャプチャ制御回路13は、リアルタイムキャプチャ回路18に接続されている。リアルタイムキャプチャ制御回路13とリアルタイムキャプチャ回路18との間にはアドレスライン25、データライン26、及び信号ライン27が設けられている。
マイクロコンピュータ12において、クロック生成回路15はCPUクロック信号(第1のクロック信号)とリアルタイムクロック信号(第2のクロック信号)とを生成する。CPUクロック信号はCPU16に供給され、CPU16の動作タイミングを定める。リアルタイムクロック信号は本実施例1ではCPUクロック信号の周波数の2倍の周波数を有する。CPUクロック信号の立ち上がりタイミングでリアルタイムクロック信号も立ち上がる。リアルタイムクロック信号はリアルタイムキャプチャ回路18に供給され、リアルタイムキャプチャ回路18の動作タイミングを定める。
リアルタイムキャプチャ回路18はリアルタイムキャプチャ制御回路13に対して保持完了信号と読み出しデータとを供給する。リアルタイムキャプチャ回路18はリアルタイムキャプチャ制御回路13から供給された読み出しアドレス信号が示すアドレスを読み出しアドレスレジスタ21に保存する。
CPU16はプログラムメモリ30に接続されている。プログラムメモリ30にはデバッグ対象のプログラムが記憶されている。CPU16はプログラムメモリ30に記憶されたデバッグ対象のプログラムを実行する。そのプログラムの実行ではCPU16によってプログラムメモリ30の実行アドレス(プログラム実行アドレス)が順次指定され、その実行アドレスで指定された記憶箇所からデバッグ対象のプログラムの命令が読み出される。CPU16は読み出した命令を実行することになる。
また、CPU16は自身のアドレス出力端からアドレス信号(第1のアドレス信号)をアドレスライン31を介してセレクタ回路19に供給し、リアルタイムキャプチャ回路18は自身のアドレス出力端からアドレス信号(第2のアドレス信号)をアドレスライン32を介してセレクタ回路19に供給する。アドレスライン31、32はセレクタ回路19に接続されている。セレクタ回路19は、記憶装置17にアドレスライン33を介して接続され、リアルタイムキャプチャ回路18から供給されるアクセス有効信号に応じてCPU16からのアドレス信号とリアルタイムキャプチャ回路18からのアドレス信号とのいずれか一方を選択し、選択したアドレス信号をアドレスライン33を介して記憶装置17に供給する。
アクセス有効信号は、リアルタイムキャプチャ回路18が記憶装置17からデータを読み出すためにアドレス指定をする際にリアルタイムクロック信号の1周期だけアクティブ、例えば、高レベルとなる信号であり、それ以外では非アクティブ、例えば、低レベルの状態である。
記憶装置17は、CPU16がデバッグ対象のプログラムを実行することによりデータが記憶されるRAM(ランダムアクセスメモリ)等のデータメモリ(図示せず)と、データを一時的に保存する周辺回路レジスタ(図示せず)とを含み、供給されるアドレス信号が示すアドレスによって記憶箇所が指定される。記憶装置17は、アドレス信号が示すアドレスによって指定された記憶箇所にCPU16からデータライン34を介して供給されたデータを書き込み、又は書き込まれたデータを読み出してそれを信号としてデータライン34に出力する。データライン34はCPU16のデータ入出力端及びリアルタイムキャプチャ回路18のデータ入力端に接続されている。
かかる構成のインサーキットエミュレータ装置において、クロック生成回路15は図2の(A)に示すような波形のCPUクロック信号を生成する。CPU16はそのCPUクロック信号の立ち上がりt01に応答してアドレス信号を生成する。アドレス信号は図2の(B)に示すようにCPUクロック信号の1周期T1に亘ってアドレスを表す。そのアドレスは記憶装置17の全記憶箇所のうちの1つの記憶箇所を指定する値である。アドレス信号はアドレスライン31、セレクタ回路19、そしてアドレスライン33を介して記憶装置17に供給される。CPU16がプログラムメモリ30に記憶されさたデバッグ対象のプログラムの実行中に記憶装置17からデータを読み出す際には、図2の(C)に示すタイミングでアドレス信号が表すアドレスに対応した記憶装置17の記憶箇所からデータが読み出される。その読み出しデータは、期間T2に亘って出力され、例えば、CPUクロック信号の次の立ち上がりt02時にCPU16に取り込まれる。期間T2はCPUクロック信号の1周期T1に等しい時間長である。
なお、図2に示したデータ読み出し動作ではアクセス有効信号が非アクティブ、例えば、低レベルであり、セレクタ回路19はCPU16から出力されたアドレス信号を記憶装置17に供給する。
次に、インサーキットエミュレータ装置のリアルタイムキャプチャ動作を図3の(A)~(E)のタイミングチャートを用いて説明する。
クロック生成回路15は、図3の(A)に示すような波形のCPUクロック信号を生成する一方、図3の(D)に示すような波形のリアルタイムクロック信号を生成する。上述したように、リアルタイムクロック信号はCPUクロック信号の周波数の2倍の周波数を有する。CPU16はそのCPUクロック信号の立ち上がりに応答して図3の(B)に示すようにアドレス信号を生成する。これは図2の(B)と同じである。
CPU16がデバッグ対象のプログラムの実行を開始した後、ICE制御CPU20がリアルタイムキャプチャ制御回路13に対してリアルタイムキャプチャ命令を生成したとする。リアルタイムキャプチャ命令には記憶装置17の読み出すべき記憶箇所を指定するアドレスが含まれる。リアルタイムキャプチャ命令がリアルタイムキャプチャ制御回路13に供給されると、リアルタイムキャプチャ制御回路13はリアルタイムキャプチャ命令に含まれるアドレスを示す読み出しアドレス信号をリアルタイムキャプチャ回路18に対して出力する。読み出しアドレス信号はアドレスライン25を介してリアルタイムキャプチャ回路18に供給される。リアルタイムキャプチャ回路18は読み出しアドレス信号が供給されると、そのアドレス信号が示すアドレスを読み出しアドレスレジスタ21に書き込む。
その後、リアルタイムキャプチャ回路18は、時点t1のリアルタイムクロック信号のパルスP1の立ち上がりに応答して読み出しアドレスレジスタ21からアドレスを読み出し、そのアドレスを示すアドレス信号を生成する。そのアドレス信号は図3の(E)に示す期間T3(第1の期間)に亘って生成される。期間T3はリアルタイムクロック信号の1つパルスP1の立ち上がりから次のパルスP2の立ち上がり時点t2までの時間長である。
また、リアルタイムキャプチャ回路18は、アドレス信号の生成と同時にアクセス有効信号をアクティブにする。よって、セレクタ回路19はリアルタイムキャプチャ回路18から出力されたアドレス信号を記憶装置17に供給する。すなわち、リアルタイムキャプチャ回路18から出力されたアドレス信号はアドレスライン32、セレクタ回路19、そしてアドレスライン33を介して記憶装置17に供給される。
記憶装置17では供給されたアドレス信号が表すアドレスに対応した記憶箇所からデータRD1が読み出される。その読み出しデータRD1は図3の(C)に示す期間T4内に読み出される。すなわち、期間T4はリアルタイムクロック信号のパルスP1の立ち下がり時点から次のパルスP2の立ち下がり時点までの時間長である。読み出しデータRD1は記憶装置17からリアルタイムキャプチャ回路18に供給され、そして取り込まれる。
リアルタイムキャプチャ回路18は取り込んだ読み出しデータRD1を読み出しデータレジスタ22に保存する。そして、その読み出しデータRD1の保存直後にリアルタイムキャプチャ回路18は保存完了信号をアクティブとして信号ライン27を介してリアルタムキャプチャ制御回路13に供給する。
ICE制御CPU20は、リアルタイムキャプチャ制御回路13を通じて保持完了信号がアクティブになったことを検知すると、リアルタイムキャプチャ制御回路13を通じてリアルタイムキャプチャ命令によって指定されたアドレスに対応する記憶装置17の記憶箇所からの読み出しデータRD1を獲得する。
アクセス有効信号は期間T3経過後には非アクティブとなり、セレクタ回路19は図3の(B)に示す如き、CPU16から出力されたアドレス信号を記憶装置17に供給する。そのCPU16から出力されたアドレス信号は、図3の(B)に示す期間T5(第2の期間)に亘って記憶装置17に供給される。期間T5はリアルタイムクロック信号のパルスP2の立ち上がり時点から次のパルスP3の立ち上がり時点までの時間長である。
その結果、そのアドレス信号が表すアドレスに対応した記憶装置17の記憶箇所からデータRD2が読み出される。その読み出しデータRD2は期間T6に亘って記憶装置17から出力され、例えば、CPUクロック信号の次の立ち上がり時点t3時にCPU16に取り込まれる。期間T6はリアルタイムクロック信号のパルスP2の立ち下がりから次のパルスP3の立ち下がりまでの時間長である。
このように実施例1のインサーキットエミュレータ装置では、CPUクロック信号の1周期の前半の半周期内において、読み出しアドレスレジスタ21に保存されたアドレスに対応する記憶装置17の記憶箇所からデータRD1が読み出され、その読み出しデータRD1はリアルタイムキャプチャ回路18の読み出しデータレジスタ22に保存された後、リアルタイムキャプチャ制御回路13を介してICE制御CPU20に供給される。CPUクロック信号の1周期の後半の半周期内において、CPU16から出力されたアドレス信号が示すアドレスに対応する記憶装置17の記憶箇所からデータRD2が読み出され、その読み出しデータRD2はCPU16に供給される。
よって、実施例1のインサーキットエミュレータ装置では、CPU16がデバッグ対象のプログラム実行中にCPU16の記憶装置17からのデータ読み出し動作に影響を与えることなく、CPU16のデータ読み出し動作のためのアクセス先とは無関係に記憶装置17の指定した記憶箇所のデータを獲得することができる。また、ICE制御CPU20はリアルタイムキャプチャ制御回路13を介して獲得したデータを図示しない表示装置に供給することにより、記憶装置17の指定した記憶箇所のデータをリアルタイムで表示することができる。
なお、上記した実施例1では、CPUクロック信号の1周期の後半の半周期内において、CPU16から出力されたアドレス信号が示すアドレスに対応する記憶装置17の記憶箇所からのデータの読み出し動作が行われているが、CPU16から出力されたアドレス信号が示すアドレスに対応する記憶装置17の記憶箇所へのデータの書き込み動作を行っても良い。
また、上記した実施例1ではリアルタイムクロック信号の周波数は、CPUクロック信号の周波数の2倍に設定されているが、本発明はこれに限定されない。リアルタイムクロック信号の周波数はCPUクロック信号の周波数より高ければ良い。
図4は本発明の実施例2としてインサーキットエミュレータ装置の構成を示している。実施例2のインサーキットエミュレータ装置においては、ICE回路11内にリアルタイムキャプチャ制御回路13の他にリアルタイムトレース制御回路14が設けられている。リアルタイムトレース制御回路14は、リアルタイムキャプチャ回路18に接続され、CPU16がデバッグ対象のプログラムの実行を開始後、リアルタイムキャプチャ回路18に対してトリガ信号を生成する。トリガ信号は、例えば、CPU16からプログラムメモリ30に対して出力されるプログラム実行アドレス信号が予め定められたアドレスを示すときに生成される。
マイクロコンピュータ12内のリアルタイムキャプチャ回路18は、読み出しアドレスレジスタ21を有しているが、実施例1の読み出しデータレジスタ22を有していない。また、リアルタイムキャプチャ制御回路13とリアルタイムキャプチャ回路18との間にはアドレスライン25及びデータライン26は設けられているが、信号ライン27は設けられていない。
また、実施例2のインサーキットエミュレータ装置は、マイクロコンピュータデバッグシステム10の外にICE制御CPU20及びプログラムメモリ30と共に、トレースメモリ41を有している。トレースメモリ41は、リアルタイムトレース制御回路14、リアルタイムキャプチャ回路18及びプログラムメモリ30に接続され、リアルタイムトレース制御回路14の制御下、読み出しアドレスレジスタ21に保存されたアドレスに対応する記憶装置17の記憶箇所から読み出されたデータをリアルタイムキャプチャ回路18を介して受け入れ、それをプログラムメモリ30のプログラム実行アドレスと共に順番に記憶してトレース履歴データを形成する。
実施例2のインサーキットエミュレータ装置のその他の構成は実施例1のインサーキットエミュレータ装置と同様であるので、ここでの説明は省略される。
次に、実施例2のインサーキットエミュレータ装置の動作について説明する。
先ず、CPU16がデバッグ対象のプログラムの実行を開始した後、ICE制御CPU20がリアルタイムキャプチャ制御回路13に対してリアルタイムキャプチャ命令を生成したとする。リアルタイムキャプチャ命令がリアルタイムキャプチャ制御回路13に供給されると、リアルタイムキャプチャ制御回路13はリアルタイムキャプチャ命令に含まれるトレース対象のアドレスを示す読み出しアドレス信号をリアルタイムキャプチャ回路18に対して出力する。読み出しアドレス信号はアドレスライン25を介してリアルタイムキャプチャ回路18に供給される。リアルタイムキャプチャ回路18は読み出しアドレス信号が供給されると、そのアドレス信号が示すアドレスを読み出しアドレスレジスタ21に書き込む。そして、リアルタイムトレース制御回路14が、CPU16がデバッグ対象のプログラムの実行中に、リアルタイムキャプチャ回路18に対してトリガ信号を出力すると、実施例1と同様に、CPUクロック信号の1周期の前半の半周期内において、読み出しアドレスレジスタ21に保存されたアドレスに対応する記憶装置17の記憶箇所からデータが読み出される。
その読み出しデータはリアルタイムキャプチャ回路18を介してリアルタイムキャプチャ制御回路13及びトレースメモリ41に供給される。トレースメモリ41ではリアルタイムトレース制御回路14内のトレースカウンタ(図示せず)のカウント値をトレースメモリアドレス信号とし受け入れ、当該カウント値で指定される記憶箇所に読み出しデータがプログラム実行アドレスと共に記憶される。トレースカウンタのカウント値はプログラム命令の進行と共に増加するので、増加したカウント値に対応するトレースメモリ41の記憶箇所に読み出しデータ及びプログラム実行アドレスが順に記憶される。
このように実施例2のインサーキットエミュレータ装置では、CPUクロック信号の1周期の前半の半周期内において、読み出しアドレスレジスタ21に保存されたアドレスに対応する記憶装置17の記憶箇所からデータが読み出され、その読み出しデータはリアルタイムキャプチャ回路18を介してトレースメモリ41に順次記憶される。CPUクロック信号の1周期の後半の半周期内において、CPU16から出力されたアドレス信号が示すアドレスに対応する記憶装置17の記憶箇所からデータが読み出され、その読み出しデータはCPU16に供給される。
よって、実施例2のインサーキットエミュレータ装置では、CPU16がデバッグ対象のプログラム実行中にCPU16の記憶装置17からのデータ読み出し動作を損なうことなく、CPU16のデータ読み出し動作のためのアクセス先とは無関係に記憶装置17の指定した記憶箇所のデータトレースをすることができる。
なお、実施例2において、リアルタイムキャプチャ回路18内に読み出しデータを今回値と前回値とを比較する比較器を設けて、読み出しデータが変化したときだけ上述したトレースカウンタのカウント値を変化させ、トレースメモリ41には読み出しデータを書き込んでも良い。これにより、トレースメモリ41の記憶容量を節約することができる。
図5は本発明の実施例3としてインサーキットエミュレータ装置の構成を示している。実施例3のインサーキットエミュレータ装置においては、マイクロコンピュータ12内には、CPU16によるプログラム実行中にシリアル通信を制御するシリアル通信制御回路43が設けられている。リアルタイムキャプチャ回路18には、読み出しアドレスレジスタ21及び読み出しデータレジスタ22の他に、ポートビット番号レジスタ23及びトリガカウンタ24が設けられている。シリアル通信制御回路43がシリアル通信制御で使用するポートのアドレスが読み出しアドレスレジスタ21に書き込まれ、ポートビット番号がポートビット番号レジスタ23に書き込まれる。これらの書き込みはリアルタイムキャプチャ制御回路13によって制御される。記憶装置17には通信ポートが含まれる。トリガカウンタ24は後述するトリガ信号の発生回数を計数する。
シリアル通信制御回路43は、リアルタイムキャプチャ回路18に接続されており、リアルタイムキャプチャ回路18に対してトリガ信号と通信完了信号とを出力する。トリガ信号はシリアル通信制御回路43が同期通信を行うならば通信クロック、非同期通信を行うならばボーレートクロック等のシリアル通信用のクロックに相当するものであれば良い。
実施例3のインサーキットエミュレータ装置のその他の構成は実施例1のインサーキットエミュレータ装置と同様であるので、ここでの説明は省略される。
次に、実施例3のインサーキットエミュレータ装置の動作について説明する。
先ず、CPU16によるプログラム実行開始前に、ICE制御CPU20から命令に応じてリアルタイムキャプチャ制御回路13は読み出しアドレス信号をリアルタイムキャプチャ回路18に対して出力する。リアルタイムキャプチャ回路18は読み出しアドレス信号に示されるシリアル通信制御回路43が使用するポートのアドレスを読み出しアドレスレジスタ21に、また読み出しアドレス信号に示されるビット番号をポートビット番号レジスタ23に書き込む。
CPU16によるデバッグ対象のプログラムの実行開始後に、シリアル通信制御回路43がトリガ信号を出力し、クロック生成回路15が出力するリアルタイムクロック信号に応じて、リアルタイムキャプチャ回路18は、使用するポートのアドレスをアドレスレジスタ21から読み出し、当該読み出しポートアドレスに対応する読み出しデータを記憶装置17から読み出す。そして、ポートビット番号レジスタ23に保存されたビット番号が示す読み出しデータのうちの有効ビットのビットデータを抽出し、抽出したビットデータをリアルタイムキャプチャ回路18内の読み出しデータレジスタ22に書き込む。抽出したビットデータの書き込む際にはトリガ信号の発生回数をカウントするトリガカウンタ24のカウント値と関連付けされる。
シリアル通信制御回路43は1つのシリアル通信が完了すると通信完了信号を生成し、通信完了信号をリアルタイムキャプチャ回路18に供給する。リアルタイムキャプチャ回路18は、通信完了信号に応答して読み出しデータレジスタ22へのデータ書き込みを終了し、更に、保存完了信号をアクティブとして信号ライン27を介してリアルタムキャプチャ制御回路13に供給する。
ICE制御CPU20は、リアルタイムキャプチャ制御回路13を通じて保持完了信号がアクティブになったことを検知すると、リアルタイムキャプチャ制御回路13を通じて、トリガ信号の生成によって抽出されたシリアル通信制御回路43が使用するポートアドレスに対応するビットデータを読み出しデータレジスタ22から読み出し、そのビットデータをデータライン26、そしてリアルタイムキャプチャ制御回路13を介して獲得する。
このように実施例3のインサーキットエミュレータ装置では、CPUクロック信号の1周期の前半の半周期内において、読み出しアドレスレジスタ21に保存された通信ポートアドレスに対応する記憶装置17の記憶箇所からデータが読み出され、その読み出しデータのうちからポートビット番号のビットデータが抽出され、そのビットデータはリアルタイムキャプチャ回路18の読み出しデータレジスタ22に保存された後、リアルタイムキャプチャ制御回路13を介してICE制御CPU20に供給される。CPUクロック信号の1周期の後半の半周期内において、CPU16から出力されたアドレス信号が示すアドレスに対応する記憶装置17の記憶箇所からデータが読み出され、その読み出しデータはCPU16に供給される。
よって、実施例3のインサーキットエミュレータ装置では、CPU16がデバッグ対象のプログラム実行中にCPU16の記憶装置17からのデータ読み出し動作に影響を与えることなく、CPU16のデータ読み出し動作のためのアクセス先とは無関係に記憶装置17の指定した記憶箇所からシリアル通信クロック又はボーレートクロック毎の受信データ又は送信データのビットデータを獲得することができる。
実施例3では、リアルタイムキャプチャ回路18へ供給されるトリガ信号をシリアル通信のクロックに適用した例を説明したが、トリガ信号に1秒割り込み等の時間単位の割り込みを適用すれば、定められた時間毎に指定したアドレスのデータを獲得することができる。
上記した各実施例においては、リアルタイムクロック信号の周波数はCPUクロック信号の周波数の2倍と設定されているが、本発明のインサーキットエミュレータ装置においてはリアルタイムクロック信号の周波数はCPUクロック信号の周波数より高い周波数に設定されていれば良い。
10 マイクロコンピュータデバッグシステム
11 ICE回路
12 マイクロコンピュータ
13 リアルタイムキャプチャ制御回路
14 リアルタイムトレース制御回路
15 クロック生成回路
16 CPU
17 記憶装置
18 リアルタイムキャプチャ回路
19 セレクタ回路
20 ICE制御CPU
21 読み出しアドレスレジスタ
22 読み出しデータレジスタ
23 ポートビット番号レジスタ
24 トリガカウンタ
25、31、32 アドレスライン
26 データライン
27 信号ライン
30 プログラムメモリ
41 トレースメモリ
43 シリアル通信制御回路

Claims (8)

  1. 第1のクロック信号と、前記第1のクロック信号の周波数より高い周波数を有する第2のクロック信号とを生成するクロック生成回路と、
    データを記憶する記憶装置と、
    前記第1のクロック信号に同期してプログラムを実行し、前記プログラムの実行時にアクセスする前記記憶装置内でのアドレスを示す第1のアドレス信号を生成するCPUと、
    前記第2のクロック信号に同期して前記記憶装置内の予め指定されたアドレスを示す第2のアドレス信号を生成するリアルタイムキャプチャ回路と、
    前記第1のアドレス信号及び前記第2のアドレス信号を受けて、前記第1のクロック信号の1周期のうちの第1の期間に亘って前記第2のアドレス信号を前記記憶装置に供給し、残りの第2の期間に亘って前記第1のアドレス信号を前記記憶装置に供給するセレクタ回路と、を含み、
    前記記憶装置は、前記セレクタ回路から前記第2のアドレス信号が供給されたときに前記第2のアドレス信号が示すアドレスの記憶箇所からデータを読み出し、その読み出しデータを前記リアルタイムキャプチャ回路に対して出力し、前記セレクタ回路から前記第1のアドレス信号が供給されたときに前記第1のアドレス信号が示すアドレスの記憶箇所について前記CPUからのデータの書き込む又はデータを読み出してそれを前記CPUに出力することを特徴とするインサーキットエミュレータ装置。
  2. 前記第2のクロック信号は前記第1のクロック信号の周波数の2倍の周波数を有し、
    前記第1の期間及び前記第2の期間の各々は前記第2のクロック信号の1周期に相当することを特徴とする請求項1記載のインサーキットエミュレータ装置。
  3. 前記リアルタイムキャプチャ回路は、前記第2のアドレス信号が示すアドレスを記憶する読み出しアドレスレジスタと、前記第2のアドレス信号が示すアドレスの前記記憶装置の記憶箇所から読み出されたデータを保存する読み出しデータレジスタと、を含むことを特徴とする請求項1又は2記載のインサーキットエミュレータ装置。
  4. 前記読み出しデータレジスタにデータが保存される毎に前記読み出しデータレジスタからデータを読み出すリアルタイムキャプチャ制御回路を有することを特徴とする請求項3記載のインサーキットエミュレータ装置。
  5. トレースメモリと、
    前記リアルタイムキャプチャ回路に対して出力される前記読み出しデータを前記トレースメモリに対して記憶箇所の指定をしつつ順次書き込むリアルタイムトレース制御回路と、を有することを特徴とする請求項1又は2記載のインサーキットエミュレータ装置。
  6. 前記プログラムを記憶したプログラムメモリを有し、
    前記リアルタイムトレース制御回路は、前記CPUから出力される前記プログラムメモリの記憶箇所を示すプログラム実行アドレス信号に応じてトリガ信号を生成し、
    前記リアルタイムキャプチャ回路はトリガ信号に応答して前記第2のアドレス信号を生成することを特徴とする請求項5記載のインサーキットエミュレータ装置。
  7. 前記読み出しアドレスレジスタは、前記記憶装置内の前記予め指定された記憶箇所のアドレスとして通信ポートのアドレスを記憶し、
    前記リアルタイムキャプチャ回路は、前記通信ポートのポートビット番号を記憶するポートビット番号レジスタを更に有し、
    前記第2のアドレス信号が生成することにより前記読み出しアドレスレジスタに記憶された前記通信ポートのアドレスに対応する前記記憶装置の記憶箇所からデータを読み出し、その読み出しデータのうちから前記ポートビット番号レジスタに記憶された前記ポートビット番号のビットデータを抽出し、前記ビットデータを前記読み出しデータレジスタに保存することを特徴とすることを特徴とする請求項3記載のインサーキットエミュレータ装置。
  8. シリアル通信用のクロックに同期したトリガ信号を生成し、1つのシリアル通信が完了すると通信完了信号を生成するシリアル通信制御回路を有し、
    前記リアルタイムキャプチャ回路は、前記トリガ信号に応答して前記第2のアドレス信号を生成し、前記通信完了信号に応答して前記ビットデータの前記読み出しデータレジスタへの保存を終了することを特徴とする請求項7記載のインサーキットエミュレータ装置。
JP2022059026A 2022-03-31 2022-03-31 インサーキットエミュレータ装置 Pending JP2023150107A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2022059026A JP2023150107A (ja) 2022-03-31 2022-03-31 インサーキットエミュレータ装置
US18/192,488 US20230314513A1 (en) 2022-03-31 2023-03-29 In-circuit emulator device
CN202310327429.0A CN116893875A (zh) 2022-03-31 2023-03-30 在线仿真器装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022059026A JP2023150107A (ja) 2022-03-31 2022-03-31 インサーキットエミュレータ装置

Publications (1)

Publication Number Publication Date
JP2023150107A true JP2023150107A (ja) 2023-10-16

Family

ID=88193973

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022059026A Pending JP2023150107A (ja) 2022-03-31 2022-03-31 インサーキットエミュレータ装置

Country Status (3)

Country Link
US (1) US20230314513A1 (ja)
JP (1) JP2023150107A (ja)
CN (1) CN116893875A (ja)

Also Published As

Publication number Publication date
US20230314513A1 (en) 2023-10-05
CN116893875A (zh) 2023-10-17

Similar Documents

Publication Publication Date Title
JP3684831B2 (ja) マイクロコンピュータ、電子機器及びデバッグシステム
JPH0434110B2 (ja)
US7596719B2 (en) Microcontroller information extraction system and method
KR100354932B1 (ko) 멀티플렉싱버스상에쇼사이클을제공하는방법및데이타프로세서
US20100153622A1 (en) Data Access Controller and Data Accessing Method
US5930470A (en) Debugging system and debugging method
JP2023150107A (ja) インサーキットエミュレータ装置
US7231568B2 (en) System debugging device and system debugging method
JP2003263339A (ja) デバック機能内蔵型マイクロコンピュータ
US5473749A (en) Image processing system having plurality of processors acting on image data according to stored program from host computer
JP2023150108A (ja) インサーキットエミュレータ装置
JP3775462B2 (ja) デバッグシステム及び情報記憶媒体
JP4484417B2 (ja) デバッグシステム
JP2005165825A (ja) トレース情報記録装置
JP2006039843A (ja) Ramテスト回路、情報処理装置、及びramテスト方法
JP2007080292A (ja) デバッグシステム
JP3741187B2 (ja) デバッグシステム及び情報記憶媒体
JP2002236594A (ja) エミュレーションシステムおよびエミュレータ
JP3711438B2 (ja) デバッグシステム及び情報記憶媒体
JPH07219808A (ja) エミュレータのトレース方法およびエミュレータ
JP2010122860A (ja) デバッグ支援装置およびデバッグ支援方法
JPH05143718A (ja) 画像処理装置
JP2000276347A (ja) 携帯電子機器
JPH0324640A (ja) 情報処理装置のデバッグ方式
JPH05108550A (ja) 中央処理装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220415