JP5344371B2 - Circuit verification apparatus, method and program - Google Patents
Circuit verification apparatus, method and program Download PDFInfo
- Publication number
- JP5344371B2 JP5344371B2 JP2009126285A JP2009126285A JP5344371B2 JP 5344371 B2 JP5344371 B2 JP 5344371B2 JP 2009126285 A JP2009126285 A JP 2009126285A JP 2009126285 A JP2009126285 A JP 2009126285A JP 5344371 B2 JP5344371 B2 JP 5344371B2
- Authority
- JP
- Japan
- Prior art keywords
- processor
- break
- signal
- interrupt
- control means
- 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.)
- Active
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
本発明は、回路検証装置、方法およびプログラムに係り、特に複数プロセッサを含む回路のデバッグ制御装置等の回路検証装置、方法およびプログラムに関する。 The present invention relates to a circuit verification apparatus, method, and program, and more particularly, to a circuit verification apparatus, method, and program such as a debug control apparatus for a circuit including a plurality of processors.
半導体技術の進歩により、半導体デバイス(論理LSI(Large Scale Integrated circuit))の集積度は年々向上し、大規模システムを1チップに集積することが可能になってきている。そのため、従来は複数の半導体デバイスで構成されていた複雑なシステムも1チップに集積することが可能になってきている。また、半導体デバイスは、機能修正が困難でありコストもかかるため、チップ化された後もソフトウェアによりその機能的動作を変えられるCPU(Central Processing Unit)やDSP(Digital Signal Processor)などを利用する半導体デバイスが近年増えている。また、処理内容に適応したプロセッサが利用されるため、1チップに内蔵されるプロセッサは一種類ではないのが一般的である。 With the progress of semiconductor technology, the degree of integration of semiconductor devices (logical LSI (Large Scale Integrated circuit)) has been improved year by year, and it has become possible to integrate a large-scale system on a single chip. For this reason, it has become possible to integrate a complicated system, which has conventionally been composed of a plurality of semiconductor devices, on a single chip. In addition, since semiconductor devices are difficult to modify and costly, semiconductor devices that use a CPU (Central Processing Unit), DSP (Digital Signal Processor), or the like whose functional operation can be changed by software even after being chipped. Devices have increased in recent years. Further, since a processor adapted to the processing content is used, it is general that there is not one kind of processor built in one chip.
プロセッサのデバッグは、主にプロセッサで動作するプログラムにブレークポイントを設定し、ブレークした時のプロセッサの状態(プログラムカウンタやレジスタの値)を参照したり、プログラム上の変数の値(あるアドレスに格納されたメモリの値)を参照したりして行われるものである。 Debugging the processor sets breakpoints in a program that runs mainly on the processor, refers to the state of the processor (program counter and register values) at the time of the break, and stores the values of variables in the program (stored at a certain address) Or the value of the specified memory).
ブレークポイントの実現方法は、主に2つある。ひとつは、プロセッサに付加されたイベント検出回路(DCU、デバッグコントロール回路)がブレーク条件を検出し、プロセッサに即時割込をかけて割込ルーチンへ処理を移動させることによってプログラムの動作を一時的に停止させるハードウェアブレークである。もうひとつは、該当する命令をトラップ命令(ソフトウェア割込を生成する命令)に書き換え、該当する命令が実行された場合はプロセッサ自身が割込を生成し、割込ルーチンへ処理を移動させることによってプログラムの動作を一時的に停止させるソフトウェアブレークである。 There are mainly two methods for realizing breakpoints. One is that the event detection circuit (DCU, debug control circuit) added to the processor detects a break condition, temporarily interrupts the processor and moves the processing to the interrupt routine to temporarily control the program operation. A hardware break to stop. The other is by rewriting the corresponding instruction into a trap instruction (instruction that generates a software interrupt), and when the corresponding instruction is executed, the processor itself generates an interrupt and moves the process to the interrupt routine. A software break that temporarily stops program operation.
ハードウェアブレークは、回路を使用して割り込みをかけるため、予めプロセッサに用意された数しかブレークポイントを同時に張ることができないなどの制限がある。一方、ソフトウェアブレークは、このような制限はないものの、命令を書き換えて実行するため、命令を書き換える機能をプロセッサに備えることが必須となる。したがって、命令がROM(Read Only Memory)に格納されている場合は、ソフトウェアブレークを利用できないなどの制限がある(特許文献1参照)。 Since hardware breaks are interrupted using a circuit, there are limitations such as the number of breakpoints set in advance in the processor can be set at the same time. On the other hand, the software break is not limited in this way, but is executed by rewriting the instruction. Therefore, it is essential to provide the processor with a function for rewriting the instruction. Therefore, when the instruction is stored in a ROM (Read Only Memory), there is a restriction that a software break cannot be used (see Patent Document 1).
図1を参照して、関連技術のプロセッサを含んだ回路の一般的な構成について説明する。 A general configuration of a circuit including a processor of related technology will be described with reference to FIG.
図1に示す回路は、プロセッサ100、バス101、デバッグ用メモリ102、命令メモリ103、データメモリ104、周辺回路A105、周辺回路B106、およびデバッグ制御部107を含む。
The circuit shown in FIG. 1 includes a
プロセッサ100は、バス101を通じて命令メモリ103やデバッグ用メモリ102からプログラム(命令列)を取得して動作を行うものである。
The
デバッグ用メモリ102は、プロセッサ100のメモリ空間の一部であり、該当するメモリ空間をプロセッサ100がアクセスした場合は、命令メモリ103ではなく、デバッグ用メモリ102からその値を返すように構成されている。また、デバッグ用メモリ102は、デバッグ制御部107に接続され、半導体デバイス外部からプロセッサ100を介さず読み書き可能なメモリとすることで、プロセッサ100のデバッグを可能にしている。
The debug memory 102 is a part of the memory space of the
また、バス101には、周辺回路A104や周辺回路B105も接続していると仮定する。
Further, it is assumed that the
ここで、プロセッサ100がデバッグモード(プロセッサ100がデバッグ用メモリ領域を参照している状態)に入っている場合は、ブレークポイントを張るアドレスの命令を退避させるような命令をデバッグ用メモリ102に書き込み、プロセッサ100がそれを実行することで該当する命令退避(ソフトウェアブレークポイントの実現)を行う。
Here, when the
より詳細に説明すると、1)ブレークポイントを張る命令をレジスタに格納する(ロード命令で実現可能)、2)トラップ命令をレジスタに格納する(ロード命令で実現可能)、3)トラップ命令のオペコードを保存したレジスタの値をブレークポイントのアドレスに格納する(ストア命令で実現可能)命令列をデバッグ用メモリ102に書き込み、それをプロセッサ100自身が実行することで、ソフトウェアブレークポイントを実現する。
More specifically, 1) an instruction for setting a breakpoint is stored in a register (can be realized by a load instruction), 2) a trap instruction is stored in a register (can be realized by a load instruction), and 3) an operation code of the trap instruction is stored. The stored register value is stored at the address of the breakpoint (which can be realized by a store instruction). An instruction string is written into the debug memory 102 and executed by the
レジスタの値を観測する場合は、プロセッサ100がレジスタの値をデバッグ用メモリ102に書き込む命令(ストア命令)をプロセッサ100が実行し、デバッグ制御部107がデバッグ用メモリ102に書き込まれた値を読み込むことで実現される。レジスタの書き込みも、デバッグ制御部107を通じて、レジスタに設定したい値を記載したロード命令をデバッグ用メモリ102に書き込み、プロセッサ100がその命令を実行することでレジスタの書き込みが行われる。別の方法としては、デバッグ制御部107がプロセッサ100内部にあるレジスタを直接読み書きしても良い。データメモリ104の読み書きも同様で、プログラムの変数の値も命令コード列を解析してスタックにおける位置を把握し、スタックポインタの値と合わせてデータメモリ104を読み込むことで実現される。変数の上書きもまったく同様である。
When observing the register value, the
デバッグ用メモリ102は、たとえば、1)プロセッサ100を停止させるコード、2)処理するコード(例えば、レジスタ観測するためのストア命令等)、3)上記1)へのジャンプ命令、から構成すればよいので、非常に小さいメモリ領域で対応することが可能であり、メモリではなく、レジスタファイルや複数のレジスタで構成される場合もある。
The debug memory 102 may be composed of, for example, 1) a code for stopping the
また、デバッグ手法は一般的な概念を示したものであり、そのほかの異なる実現方法も考えられる。デバッグ機能(レジスタやメモリの読出や書換)は、プロセッサが持つ本来の機能(レジスタの値をメモリに格納する機能や、メモリの値をレジスタにロードする機能)を利用して実現されているため、デバッグ中でもプロセッサへのクロック供給を停止することはできない。仮にプロセッサへのクロック供給を停止させた場合は、プロセッサと通信できなくなるため、その状態をまったく把握することができない。 The debugging technique shows a general concept, and other different realization methods can be considered. The debugging function (reading and rewriting of registers and memories) is realized using the original functions of the processor (functions for storing register values in memory and loading memory values into registers). Even during debugging, the clock supply to the processor cannot be stopped. If the clock supply to the processor is stopped, communication with the processor becomes impossible, and the state cannot be grasped at all.
また、上述した記載は、ICE(In-Circuit Emulator)を利用したデバッグ形態であるが、最近は、専用プロセッサやFPGA(Field Programmable Gate Array)などを利用したエミュレーション技術の発展に伴い、プロセッサをエミュレータに実装して、その上のプログラムのデバッグを行うことも増えてきている。 The above description is a debugging form using ICE (In-Circuit Emulator), but recently, with the development of emulation technology using a dedicated processor or FPGA (Field Programmable Gate Array), the processor is an emulator. There is also an increasing number of programs that are implemented on the PC and debug programs on it.
エミュレーション技術による検証では、実際の半導体デバイスと同じようにエミュレーションしているプロセッサに外部から実際のICEを接続して同様の検証を行う形態と、エミュレーションしている回路のクロック信号を制御してデバッグする方法(特許文献2参照)がある。 In the verification using the emulation technology, the same verification is performed by connecting the actual ICE to the processor that is being emulated externally in the same way as an actual semiconductor device, and the clock signal of the circuit being emulated is controlled and debugged. There is a method (see Patent Document 2).
前者は、半導体チップがエミュレータとなっただけであるため、詳細は前述した状態と同じである。後者の方法は、プロセッサへの割込信号(例えば、図1の108参照)を常時観測し、割込信号が発生した時に回路全体へ供給しているクロック信号を停止して実現する方法がある。エミュレータに実装されている回路全体が動作を停止するため、再びクロック供給を開始することで回路の動作を再開することができる。 The former has only the semiconductor chip as an emulator, and the details are the same as described above. The latter method is realized by constantly observing an interrupt signal to the processor (for example, 108 in FIG. 1) and stopping the clock signal supplied to the entire circuit when the interrupt signal is generated. . Since the entire circuit mounted on the emulator stops operating, the circuit operation can be resumed by starting the clock supply again.
また、一般的なエミュレータでは、専用ハードウェアにより、内部状態を全て確認することができるため、プロセッサへのクロックを停止してもICEのように観測できないなどの問題は生じない等の利点がある。 In addition, since a general emulator can check all internal states with dedicated hardware, there is an advantage that problems such as inability to observe like ICE do not occur even when the clock to the processor is stopped. .
ハードウェアブレークやソフトウェアブレークを利用したデバッグでは、クロック信号は常時供給されているため、該当するプロセッサのプログラム実行は一時的に停止しているものの、そのほかのプロセッサや周辺回路(図1の周辺回路Aや周辺回路B)はクロックが供給されているため、動作を継続する。そのため、プロセッサと周辺回路の動作タイミングが実際の動作と合わなくなり、ブレークをかけたために正常に動作しないなどの問題が起きる。さらに複数のプロセッサから構成され、あるプロセッサがブレークによりデバッグモードに移行した場合、それ以外のプロセッサは通常動作をしているため、デバッグモードへ移行したプロセッサ以外の状態を知ることができない問題も起こる。これは、複数のプロセッサが協調して動作する場合のデバッグにおいて、最も大きな問題である。 In debugging using hardware breaks or software breaks, the clock signal is always supplied, so the program execution of the corresponding processor is temporarily stopped, but other processors and peripheral circuits (peripheral circuit in FIG. 1). Since A and the peripheral circuit B) are supplied with the clock, the operation continues. For this reason, the operation timing of the processor and the peripheral circuit becomes inconsistent with the actual operation, and there is a problem that it does not operate normally due to a break. In addition, when a processor is entered into debug mode due to a break due to a break, other processors are operating normally, and there is a problem that the status of the processor other than the processor that has entered debug mode cannot be known. . This is the biggest problem in debugging when a plurality of processors operate in cooperation.
一方、ハードウェアエミュレータのクロック制御の方法は、この問題を解決するものの、ブレークが発生した時点でプロセッサへのクロックを停止させるため、プロセッサのパイプラインが原因でライトバックされず、プログラムカウンタが示す位置とレジスタの値が一致しないなどの問題が起きる。さらに、近年のプロセッサは複雑になっているため、正確なプログラムカウンタの値を求めるためには、Verilog、VHDL(Very high speed IC Hardware Description Language)に代表されるハードウェア記述言語で記載されたプロセッサ記述を修正する必要がある問題もある。 On the other hand, although the clock control method of the hardware emulator solves this problem, the clock to the processor is stopped when a break occurs, so the program counter does not write back due to the processor pipeline. Problems such as the location and register values do not match. Furthermore, since recent processors have become complex, a processor described in a hardware description language typified by Verilog and VHDL (Very high speed IC Hardware Description Language) is required to obtain an accurate program counter value. There are also problems that need to be corrected.
以上のように、複数のプロセッサを有する回路をデバッグするとき、ブレークしたプロセッサの動作は一時的に停止するが、他のプロセッサや周辺回路は動作を続けてしまうため、プロセッサや周辺回路との間で時間が合わなくなる原因となっている。逆に、周辺回路に対してもブレークを実現したとき、プロセッサ上のプログラムは動作し続けるため、同じ問題が起きる。 As described above, when debugging a circuit having a plurality of processors, the operation of the broken processor temporarily stops, but other processors and peripheral circuits continue to operate. This is the cause of the time being lost. On the other hand, when the break is realized for the peripheral circuit, the program on the processor continues to operate, and the same problem occurs.
本発明の目的は、あるプロセッサがデバッグモードに移行した場合に、ほかのプロセッサも同時にデバッグモードへ移行することで、すべてのプロセッサの状態を観測可能にすると共に、プロセッサがデバッグモードへ移行しても、クロック全体を停止させた場合と同じように動作を再開でき、プロセッサのパイプラインが原因で発生するプログラムカウンタとレジスタの不一致問題をも解決する回路検証装置、方法およびシステムを提供することにある。 It is an object of the present invention to make it possible to observe the state of all the processors when a certain processor shifts to the debug mode, so that other processors also shift to the debug mode at the same time. The present invention also provides a circuit verification apparatus, method, and system that can resume the operation in the same manner as when the entire clock is stopped, and solve the program counter and register mismatch problem caused by the processor pipeline. is there.
上記目的を達成するため、本発明に係る回路検証装置は、割込制御によりその動作検証を行う複数のプロセッサと、前記プロセッサ以外の周辺回路とを含む回路の動作を検証する装置において、前記周辺回路からの信号の状態が、予め設定されたブレーク条件と合致するかどうかを検出し、合致する場合にブレーク信号を生成するブレーク検出手段と、前記プロセッサからのブレーク信号および前記ブレーク検出手段からのブレーク信号を検出して、全プロセッサに割込信号を入力する割込制御手段と、前記プロセッサおよび前記周辺回路へ供給するクロック信号を制御するクロック制御手段と、前記割込制御手段が伝達したブレーク発生を前記クロック制御手段に伝達し、前記ブレーク検出手段および前記プロセッサのデバッグ制御手段の制御を行う中央制御手段と、を備え、前記割込制御手段は、前記ブレーク検出手段からのブレーク信号を検出した時および前記プロセッサからのブレーク信号を検出した時に前記回路に含まれる全プロセッサに割込信号を入力し、前記クロック制御手段は、前記割込制御手段がブレーク信号を検出したら直ちに前記プロセッサにクロック信号を供給し、前記周辺回路にクロック信号を供給しないことを特徴としている。 In order to achieve the above object, a circuit verification apparatus according to the present invention is an apparatus for verifying the operation of a circuit including a plurality of processors that perform operation verification by interrupt control and peripheral circuits other than the processor. A break detecting means for detecting whether a state of a signal from the circuit matches a preset break condition, and generating a break signal when the condition is met; a break signal from the processor; and a break detecting means from the break detecting means Interrupt control means for detecting a break signal and inputting an interrupt signal to all processors, clock control means for controlling a clock signal supplied to the processor and the peripheral circuit, and a break transmitted by the interrupt control means The generation is transmitted to the clock control means, and the break detection means and the debug control means of the processor Central control means for performing control, and the interrupt control means interrupts all processors included in the circuit when a break signal from the break detection means is detected and when a break signal from the processor is detected. When the interrupt control means detects a break signal, the clock control means supplies a clock signal to the processor and does not supply a clock signal to the peripheral circuit.
本発明に係る回路検証方法は、割込制御によりその動作検証を行う複数のプロセッサと、前記プロセッサ以外の周辺回路とを含む回路の動作を検証する方法において、ブレーク検出手段が、前記周辺回路からの信号の状態が、予め設定されたブレーク条件と合致するかどうかを検出し、合致する場合にブレーク信号を生成し、割込制御手段が、前記プロセッサからのブレーク信号および前記ブレーク検出手段からのブレーク信号を検出して、全プロセッサに割込信号を入力し、クロック制御手段が、前記プロセッサおよび前記周辺回路へ供給するクロック信号を制御し、中央制御手段が、前記割込制御手段が伝達したブレーク発生を前記クロック制御手段に伝達し、前記ブレーク検出手段および前記プロセッサのデバッグ制御手段の制御を行う方法であって、前記割込制御手段が、前記ブレーク検出手段からのブレーク信号を検出した時および前記プロセッサからのブレーク信号を検出した時に前記回路に含まれる全プロセッサに割込信号を入力し、前記クロック制御手段が、前記割込制御手段がブレーク信号を検出したら直ちに前記プロセッサにクロック信号を供給し、前記周辺回路にクロック信号を供給しないことを特徴としている。 The circuit verification method according to the present invention is a method for verifying the operation of a circuit including a plurality of processors that perform operation verification by interrupt control and a peripheral circuit other than the processor, wherein the break detection means includes Whether or not the state of the signal of the signal matches a preset break condition and generates a break signal if the condition is satisfied, and the interrupt control means receives the break signal from the processor and the break detection means The break signal is detected and an interrupt signal is input to all processors, the clock control means controls the clock signal supplied to the processor and the peripheral circuit, and the central control means is transmitted by the interrupt control means. Break occurrence is transmitted to the clock control means, and the break detection means and the debug control means of the processor are controlled. The interrupt control means inputs an interrupt signal to all processors included in the circuit when it detects a break signal from the break detection means and when it detects a break signal from the processor, The clock control means supplies a clock signal to the processor as soon as the interrupt control means detects a break signal, and does not supply a clock signal to the peripheral circuit.
本発明に係る回路検証プログラムは、割込制御によりその動作検証を行う複数のプロセッサと、前記プロセッサ以外の周辺回路とを含む回路の動作を検証するプログラムにおいて、コンピュータを、前記周辺回路からの信号の状態が、予め設定されたブレーク条件と合致するかどうかを検出し、合致する場合にブレーク信号を生成するブレーク検出手段と、前記プロセッサからのブレーク信号および前記ブレーク検出手段からのブレーク信号を検出して、全プロセッサに割込信号を入力する割込制御手段と、前記プロセッサおよび前記周辺回路へ供給するクロック信号を制御するクロック制御手段と、前記割込制御手段が伝達したブレーク発生を前記クロック制御手段に伝達し、前記ブレーク検出手段および前記プロセッサのデバッグ制御手段の制御を行う中央制御手段として機能させるプログラムであって、前記割込制御手段は、前記ブレーク検出手段からブレーク信号を検出した時および前記プロセッサからのブレーク信号を検出した時に前記回路に含まれる全プロセッサに割込信号を入力し、前記クロック制御手段は、前記割込制御手段がブレーク信号を検出したら直ちに前記プロセッサにクロック信号を供給し、前記周辺回路にクロック信号を供給しないことを特徴としている。 A circuit verification program according to the present invention is a program for verifying the operation of a circuit including a plurality of processors that perform operation verification by interrupt control and a peripheral circuit other than the processor. Detects whether or not the condition matches a preset break condition, and generates a break signal when the condition is met, and detects a break signal from the processor and a break signal from the break detection means Interrupt control means for inputting an interrupt signal to all the processors, clock control means for controlling a clock signal supplied to the processor and the peripheral circuit, and the occurrence of a break transmitted by the interrupt control means in the clock The break detection means and the processor debug control The interrupt control means is a program that functions as a central control means that performs control of the above-described control, and the interrupt control means includes all the circuits included in the circuit when a break signal is detected from the break detection means and when a break signal from the processor is detected. An interrupt signal is input to the processor, and the clock control means supplies a clock signal to the processor as soon as the interrupt control means detects a break signal, and does not supply a clock signal to the peripheral circuit. .
本発明によれば、次のような効果が得られる。 According to the present invention, the following effects can be obtained.
第1の効果は、あるプロセッサがデバッグモードへ移行したときに、ほかのプロセッサもデバッグモードへ移行するため、中央制御手段を通じてシステム内部にある全プロセッサの状態を取得することができる効果がある。 The first effect is that when a certain processor shifts to the debug mode, the other processors also shift to the debug mode, so that the states of all the processors in the system can be acquired through the central control means.
その理由は、あるプロセッサがブレークポイントに到達したときに、ほかのプロセッサも同様に割込をかけるように構成したためである。さらに周辺回路もブレーク条件が成立した場合も全プロセッサに割込をかけてデバッグモードへ移行してプログラムの実行を一時中断するとともに、周辺回路へのクロック信号の供給を停止し、動作を再開するときは全プロセッサや周辺回路が同時に動作を開始できるように、復帰命令の仕様に従って、入力するクロック信号の数を調節するためである。 The reason is that when one processor reaches a breakpoint, another processor is configured to interrupt similarly. Furthermore, even if the break condition is satisfied in the peripheral circuit, all processors are interrupted to enter debug mode, temporarily suspend program execution, stop supplying the clock signal to the peripheral circuit, and resume operation. This is because the number of clock signals to be input is adjusted according to the specification of the return instruction so that all processors and peripheral circuits can start operating simultaneously.
同様の理由により、第2の効果として、クロック制御手段が全プロセッサや周辺回路が同時に動作を開始できるように、各復帰命令の仕様に従って、入力するクロック信号の数を調節するため、複数の異なるプロセッサを含んだシステムも上記全効果を持ちながら、デバッグすることを可能にする効果もある。 For the same reason, the second effect is that the clock control means adjusts the number of input clock signals according to the specifications of each return instruction so that all processors and peripheral circuits can start operation simultaneously. A system including a processor also has an effect of enabling debugging while having all the above effects.
第3の効果として、デバッグモードにおいてもプロセッサはクロック供給が続くため、エミュレータ(特許文献2)のようにプロセッサがパイプライン化されている場合に発生するプログラムカウンタの値とレジスタの値の不一致問題を解決できる効果もある。 As a third effect, since the clock continues to be supplied to the processor even in the debug mode, the program counter value and the register value do not coincide with each other when the processor is pipelined as in the emulator (Patent Document 2). There is also an effect that can be solved.
第4の効果として、回路を特許文献2記載のエミュレータに実装する場合は回路記述の修正を行う必要があるが、本発明は現在のプロセッサに実現されている機能を最大限利用するように構成するため、その修正も最小限(割込を入れる)となり、修正箇所を大幅に削減する効果もある。 As a fourth effect, when the circuit is mounted on the emulator described in Patent Document 2, it is necessary to correct the circuit description. However, the present invention is configured to make the most of the functions realized in the current processor. Therefore, the correction is minimized (with an interrupt), and there is an effect of greatly reducing the number of corrections.
次に、本発明に係る回路検証装置、方法およびプログラムの実施の形態について、図面を参照して詳細に説明する。 Next, embodiments of a circuit verification apparatus, method, and program according to the present invention will be described in detail with reference to the drawings.
(第1の実施の形態)
まず、図2〜図5を参照して、本発明の第1の実施の形態について説明する。
(First embodiment)
First, a first embodiment of the present invention will be described with reference to FIGS.
図2を参照すると、本実施の形態に係る回路検証装置であるデバッグ制御装置は、大きく分けてプロセッサブロックA200.1と、プロセッサブロックB200.2と、周辺回路201と、ブレーク検出ユニット(ブレーク検出手段))203と、割込制御ユニット(割込制御手段)205と、クロック制御ユニット(クロック制御手段)206と、中央制御ユニット(中央制御手段)208とを含む。
Referring to FIG. 2, the debug control device which is a circuit verification device according to the present embodiment is roughly divided into a processor block A 200.1, a processor block B 200.2, a
ブレーク検出ユニット203は、周辺回路201からの信号202の値に基づいて、予め設定されたブレーク条件に合致するかどうかを検出し、合致する場合にブレーク信号204を生成し、割込制御ユニット205に出力する。
The
割込制御ユニット205は、プロセッサブロックAから出力されるブレーク信号A212.1と、プロセッサブロックBから出力されるブレーク信号B212.2と、ブレーク検出ユニット203から出力されるブレーク信号204とに基づいて、プロセッサブロックAとプロセッサブロックBに、割込信号AA211.1と割込信号BA211.2を発生し、さらにブレークが発生したことをクロック制御ユニット206に伝える。
The interrupt
クロック制御ユニット206は、プロセッサブロックAのクロック信号A207.1とプロセッサブロックBのクロック信号B207.1と周辺回路201のクロック信号C207.3を制御する。
The
中央制御ユニット208は、各プロセッサブロックA200.1、B200.2の内部にあるデバッグ制御部108.1、108.2(後述参照)と、ブレーク検出ユニット203と、割込制御ユニット205と、クロック制御ユニット206とを制御する。
The
次に、各プロセッサブロックA200.1、B200.2について、詳細に説明する。図2の例では、プロセッサブロックA200.1、B200.2は同一構成のため、以下、プロセッサブロックA200.1のみ説明する。 Next, the processor blocks A200.1 and B200.2 will be described in detail. In the example of FIG. 2, since the processor blocks A200.1 and B200.2 have the same configuration, only the processor block A200.1 will be described below.
プロセッサブロックA200.1は、プロセッサA100.1と、バス101.1と、デバッグ用メモリ102.1と、命令メモリ103.1と、データメモリ104.1と、デバッグ制御部108.1から構成される。この構成は、関連技術で説明した構成と同じである。さらに、プロセッサAは、関連技術と同じように割込信号やトラップ命令を利用してデバッグを行うプロセッサである。 The processor block A200.1 includes a processor A100.1, a bus 101.1, a debug memory 102.1, an instruction memory 103.1, a data memory 104.1, and a debug control unit 108.1. The This configuration is the same as the configuration described in the related art. Furthermore, the processor A is a processor that performs debugging by using an interrupt signal or a trap instruction as in the related art.
デバッグ制御部108.1は、中央制御ユニット208からの制御によって、デバッグ用メモリ102.1を読み書きしてソフトウェアブレークを実現し、プロセッサA100.1からの信号に基づいて割込信号AB210.1を発生させ、ハードウェアブレークを実現するユニットである。この点は、関連技術と同じである。関連技術と異なる点は、デバッグ制御部108.1は、ブレークが発生したときにアクティブにするブレーク信号A212.1を外部に出力し、さらに外部から割込信号AA211.1の入力を可能する点である。
Under the control of the
デバッグ制御部108.1は、プロセッサAでソフトウェアブレーク、ハードウェアブレークに関わらずブレークが発生した場合、割込制御ユニット205が他のプロセッサBへ割込信号BA211.2を発生し、クロック制御ユニット206が周辺回路201へ供給するクロック信号C207.3を停止する目的で、ブレーク信号A212.1をアクティブにする。一方、割込信号AA211.1がアクティブになった場合(プロセッサブロックB200.2がブレーク条件を満たした場合や、ブレーク検出ユニット203がブレーク条件を満たした場合)、デバッグ制御部108.1は、即座に割込信号AB210.1をアクティブにすることで、プロセッサA100.1をデバッグモードへ移行させる。
When a break occurs regardless of a software break or a hardware break in the processor A, the debug control unit 108.1 causes the interrupt
本実施の形態では、プロセッサブロックA200.1とプロセッサブロックB200.2は同一構成をしているが、必ずしも同一である必要はない。つまり、プロセッサA100.1とプロセッサB100.2は、異なるアーキテクチャであるプロセッサでも構わない。さらに、同一プロセッサの場合でも、命令メモリ103.1、103.2やデバッグ用メモリ102.1、102.2の容量や構成などは同一である必要はないし、図2には記載されていないキャッシュなどをどちらか一方のプロセッサブロックが含んでいても構わない。 In the present embodiment, the processor block A200.1 and the processor block B200.2 have the same configuration, but are not necessarily the same. That is, the processor A 100.1 and the processor B 100.2 may be processors having different architectures. Further, even in the case of the same processor, the capacity and configuration of the instruction memories 103.1 and 103.2 and the debug memories 102.1 and 102.2 do not need to be the same, and caches not shown in FIG. Etc., either one of the processor blocks may be included.
また、デバッグモードでは、プロセッサのキャッシュを一時的にオフできる機能を利用することで、より忠実に実際の動作を模擬することができる。その理由は、デバッグ用コードもキャッシュすることで実際の動作と異なるタイミングでプロセッサが動作する問題を避けることが可能だからである。また、同様なことを実現する別の方法としては、キャッシュがアクティブにならない領域にデバッグ用メモリ領域を設定する方法もある。 In the debug mode, an actual operation can be simulated more faithfully by using a function capable of temporarily turning off the processor cache. The reason is that the problem of the processor operating at a timing different from the actual operation can be avoided by caching the debugging code. As another method for realizing the same, there is a method of setting a debugging memory area in an area where the cache is not activated.
周辺回路201は、プロセッサA100.1、B100.2以外の回路ブロックを示し、図2のように1つでも良いが、複数(数10個から数100個程度)あるのが一般的である。周辺回路201の具体的な例を挙げると、画像を扱う半導体の場合は、画像をエンコードしたり、エンコードされた画像をデコードしたりする回路ブロックである。そのほかには暗号や復号、メモリ制御を行う回路ブロック、USB(Universal Serial Bus)やPCI(Peripheral Component Interconnect)バスなどの外部インターフェースに接続する回路ブロックなど様々である。ただし、本発明はこれに限定されるものではない。
The
ブレーク検出ユニット203は、周辺回路201から出力される一つもしくは複数の信号202の値に基づいて、予め設定されてブレーク条件に合致するかを計算し、合致する場合はブレーク信号204を生成するユニットである。
The
ブレーク検出ユニット203のブレーク条件は、中央制御ユニット208により設定される。プロセッサと同じように専用ハードウェアを利用してブレーク判定しても良いし、高速に動作するプロセッサを利用してブレーク判定してもよい。前者は、高速に動作する周辺回路にも対応可能であるが、設定可能なブレークポイントの数に上限がある問題がある。一方、後者の場合は、周辺回路201の動作周波数がプロセッサと比較して遅くなければならないが、十分遅い場合は多くのブレークポイントを実現できる利点がある。
The break condition of the
ブレーク条件としては、以下のものなどが考えられる。 The following can be considered as break conditions.
1)信号の値が、予め設定された値に一致した、又は不一致した。 1) The signal value matches or does not match a preset value.
2)信号の値が、予め設定された範囲に一致した、又は不一致した。 2) The signal value matches or does not match the preset range.
3)上記1)、2)が、予め設定された数に到達した。 3) The above 1) and 2) have reached a preset number.
4)上記1)、2)が、予め設定されたクロック数連続して起きた。 4) The above 1) and 2) occurred continuously for a preset number of clocks.
5)複数の信号に関して、上記1)−4)の論理積や論理和や反転などを利用して計算したときに1になった。 5) For a plurality of signals, it was 1 when calculated using the logical product, logical sum, or inversion of 1) -4) above.
他にも、SystemVerilog等で用いられるアサーション記述などでブレーク条件を設定できるとよい。 In addition, it is preferable that a break condition can be set by an assertion description used in SystemVerilog or the like.
ブレーク信号204は、割込制御ユニット205に入力され、その目的は前述したブレーク信号A212.1と同じである。つまり、ブレーク信号204がアクティブになった場合、割込制御ユニット205は、すべてのプロセッサブロックA200.1、B200.2に即座に割込信号AA211.1、BA211.2を入力してプロセッサA200.1、B200.2の動作を一時的に停止させると同時にブレーク信号204がアクティブになったことをクロック制御ユニット206に入力して、周辺回路201に供給するクロック信号C207.3を停止させる動作を行う。
The break signal 204 is input to the interrupt
割込制御ユニット205は、プロセッサA200.1、B200.2や周辺回路201のブレーク信号A212.1、B212.2、204がアクティブになったときに、すべてのプロセッサブロックA200.1、B200.2に同時に割込信号(割込信号AA211.1と割込信号BA211.2)を発生させるユニットである。これにより、プロセッサA200.1とプロセッサB200.2に割込信号(割込信号AB210.1、BB210.2)が入力され、各プロセッサA200.1、B200.2はデバッグモード(debugラベルのある位置)へ移行する。さらに、割込制御ユニット205は、クロック制御ユニット206にブレーク信号A212.1、B212.2、204がアクティブになったことを通知するユニットである。
When the interrupt signals A212.1, B212.2, and 204 of the processors A200.1 and B200.2 and the
クロック制御ユニット206は、各プロセッサブロックA200.1、B200.2や周辺回路201に供給するクロック信号を制御するユニットである。割込制御ユニット205からブレーク信号がアクティブである通知を受けた場合、クロック制御ユニット206はすべてのプロセッサブロックA200.1、B200.2にはクロック信号A207.1、B207.2を供給し、周辺回路201へのクロック信号C207.3は停止するように動作する。
The
PLL(Phase Locked Loop)などでクロック信号が制御されている場合は、クロック信号を停止させることが困難なため、PLLが出力したクロック信号をゲーテッドクロックと同じようにマスクする形で実装しても良い。また、昨今の半導体は消費電力を抑えるためにゲーテッドクロックを多用するため、これをうまく活用することで新たな回路を追加することなくクロック制御ユニット206の一部を実現することができる。ただし、周辺回路においてクロック供給を停止できない回路の場合は、クロックを供給し続けなければならない。たとえば、DRAM(Dynamic Random Access Memory)のI/F(インターフェース)回路は、クロックを供給しないと正常にREFRESH(リフレッシュ)動作することができず、DRAMのデータの内容を破壊してしまうため、クロックを供給し続けなければならない。一方、デバッグモードから通常の状態へ復帰する方法は後述する。
When the clock signal is controlled by a PLL (Phase Locked Loop) or the like, it is difficult to stop the clock signal. Therefore, the clock signal output from the PLL may be masked in the same manner as the gated clock. good. Moreover, since recent semiconductors frequently use a gated clock in order to reduce power consumption, a part of the
図3に、ブレーク信号A212.1またはブレーク信号B212.2またはブレーク信号204がアクティブになったときの、割込信号AA211.1と割込信号BA211.2、クロック信号A207.1、クロック信号B207.2、クロック信号C207.3の動作の様子を示す。 FIG. 3 shows an interrupt signal AA211.1, an interrupt signal BA211.2, a clock signal A207.1, and a clock signal B207 when the break signal A212.1, the break signal B212.2, or the break signal 204 is activated. .2 shows the operation of the clock signal C207.3.
図3において、クロック信号はプロセッサブロックAおよびプロセッサブロックBおよび周辺回路201を動作させる信号であり、ブレーク信号はブレーク信号A212.1とブレーク信号B212.2とブレーク信号204の論理和を示し、割込信号は割込信号AA211.1および割込信号BA211.2を示している。
In FIG. 3, the clock signal is a signal for operating the processor block A, the processor block B, and the
また、図3の最下部には、5段パイプラインを持つ一般的なRISC(Reduced Instruction Set Computer)プロセッサのパイプライン動作を示している。図のIFは命令フェッチ、IDは命令デコード、EXは実行、MEMはメモリアクセス、WBはライトバックを示している。プロセッサにおいて、ハードウェアブレークによる検出およびトラップ命令の実行による、ブレークの発生がともにEXステージであると仮定すると、上の3つの命令は実行された後、割込ルーチンへジャンプするように動作を行い、下2つの命令は破棄される。ただし、下2つの命令を実行するプロセッサも存在する。 Also, the lowermost part of FIG. 3 shows a pipeline operation of a general RISC (Reduced Instruction Set Computer) processor having a five-stage pipeline. In the figure, IF indicates instruction fetch, ID indicates instruction decode, EX indicates execution, MEM indicates memory access, and WB indicates write back. In the processor, assuming that the occurrence of a break due to detection by a hardware break and execution of a trap instruction are both in the EX stage, the above three instructions are executed and then jump to the interrupt routine. The lower two instructions are discarded. However, some processors execute the following two instructions.
もし、ハードウェアブレークによる検出とトラップ命令を実行しブレーク信号A212.1やB212.2がアクティブになるタイミングが異なる場合は、忠実に実際の動作を模擬するため、早いタイミングのブレークをフリップフロップ等で遅延させ、時間を合わせると、よりよいデバッグ環境を提供することができる。 If the detection by the hardware break and the trap instruction are executed and the timing at which the break signals A212.1 and B212.2 become active are different, the break at the early timing is flip-flops to faithfully simulate the actual operation. By delaying and adjusting the time, a better debugging environment can be provided.
図4に、プロセッサの割り込み処理の具体例(擬似的なアセンブラコード)を示す。 FIG. 4 shows a specific example (pseudo assembler code) of processor interrupt processing.
図4のdebugラベルは、プロセッサのトラップ命令実行やハードウェア割り込みなどの発生により、ジャンプしてくる場所を示している。debugラベルからloopラベルまでの間にレジスタの読み出しに必要な命令等が格納される。loopラベルからjmp命令(ジャンプ命令)までが無限ループである。ret命令は、復帰命令でありプログラムのジャンプ元の位置(トラップ命令があった位置)に戻るための命令である。ここで、デバッグモードから通常状態へ復帰する場合は、jmp loop命令をNOP命令に書き換えることで復帰することができる。 The debug label in FIG. 4 indicates a jump location due to the execution of a trap instruction of the processor or the occurrence of a hardware interrupt. An instruction or the like necessary for reading the register is stored between the debug label and the loop label. The loop from the loop label to the jmp instruction (jump instruction) is an infinite loop. The ret instruction is a return instruction and is an instruction for returning to the jump source position of the program (the position where the trap instruction was present). Here, when returning from the debug mode to the normal state, it is possible to return by rewriting the jmp loop instruction to a NOP instruction.
上記の各ユニットは、ハードウェアで実現するのが一般的であるが、これに限られたことではない。 Each of the above units is generally realized by hardware, but is not limited to this.
次に、図5のフローチャートを参照して、本実施の形態の全体の動作について詳細に説明する。 Next, the overall operation of the present exemplary embodiment will be described in detail with reference to the flowchart of FIG.
始めに、回路動作の準備を開始する(ステップS500)。より具体的には、プロセッサブロックと周辺回路を内蔵した回路にその動作に必要なさまざまな装置やデバイスを接続し、電源投入し、回路のリセットをアクティブにする。デバッガを外部から接続した状態では、プロセッサはブレークポイント等を実現するため、開始直後、デバッグ用ルーチンを実行するため、周辺回路へのクロック信号は供給を停止している状態である。 First, preparation for circuit operation is started (step S500). More specifically, various devices and devices necessary for the operation are connected to a circuit incorporating a processor block and peripheral circuits, the power is turned on, and circuit reset is activated. In a state where the debugger is connected from the outside, the processor implements a debugging routine immediately after the start in order to realize a breakpoint and the like, and thus the supply of the clock signal to the peripheral circuit is stopped.
次に、ユーザが中央制御ユニットを通じてプロセッサやブレーク検出ユニットのブレーク条件の設定、ブレークポイントの設定、レジスタ読み書き、メモリ読み書きを行う(ステップS501)。 Next, the user performs break condition setting, break point setting, register read / write, and memory read / write through the central control unit (step S501).
次に、プログラムを実行するかデバッグを終了するかを選択する(ステップS502)。プログラム実行は、ユーザがプログラム実行(ステップ実行またはコンティニュ(継続)実行)を選択することで行われる。ここで、デバッグ終了が選択されると、デバッグ用ルーチンの実行を終了する(ステップS507)。 Next, it is selected whether to execute the program or end debugging (step S502). The program is executed when the user selects program execution (step execution or continue (continuous) execution). Here, when the end of debugging is selected, the execution of the debugging routine is ended (step S507).
次に、トラップ命令に書き換えた命令を元命令に戻す(ステップS503)。このステップは、デバッグ用メモリに格納した元命令を一旦レジスタにロードして、該当するアドレスに書き込みする命令をデバッグ用メモリに格納し、それをプロセッサが実行することで実現される。このステップは、ブレークポイントを設定した命令を実行しなければならないために行われる。元命令を実行後、再びトラップ命令に置き換える必要があるため、もし、ステップ後、再び割込がかかるような命令や機能をプロセッサが持っていれば、それを元命令の代わりに利用する手法もある。 Next, the instruction rewritten to the trap instruction is returned to the original instruction (step S503). This step is realized by once loading the original instruction stored in the debug memory into the register, storing the instruction to be written to the corresponding address in the debug memory, and executing it by the processor. This step is done because the instruction that set the breakpoint must be executed. After executing the original instruction, it is necessary to replace it with the trap instruction again. If the processor has an instruction or function that interrupts again after the step, there is a method to use it instead of the original instruction. is there.
次に、トラップ命令に置き換えた元命令を実行し、再び割込によりデバッグモードへ移行する(ステップS504)。一般的なプロセッサは、ステップ実行を行うための機構(一命令実行後、割込がかかる仕組)があるため、それを利用して元命令の実行を行う。このとき、一命令分のクロックが周辺回路には供給される。 Next, the original instruction replaced with the trap instruction is executed, and the process shifts to the debug mode again by interruption (step S504). Since a general processor has a mechanism for performing step execution (a mechanism that interrupts after execution of one instruction), the original instruction is executed using the mechanism. At this time, a clock for one instruction is supplied to the peripheral circuit.
次に、ブレークポイントを設定したときと同じ方法で、実行した元命令を再びトラップ命令に書き換える(ステップS505)。 Next, the executed original instruction is rewritten again as a trap instruction in the same manner as when a breakpoint is set (step S505).
次に、リターン命令によりプログラムをブレークポイントが張られた次の命令に戻り(ステップS506)、プロセッサや周辺回路は通常状態になる。以後、ステップS502に戻り、上記と同様の処理を繰り返し実行する。 Next, the return instruction returns the program to the next instruction at which a breakpoint is set (step S506), and the processor and peripheral circuits are in a normal state. Thereafter, the process returns to step S502, and the same processing as described above is repeatedly executed.
以上のように、本実施の形態では、あるプロセッサでブレークが発生した場合、回路中すべてのプロセッサに対して強制的に割込をかけてプログラムの動作を一時停止させ、周辺回路はクロック供給を停止することでその動作を停止させている。 As described above, in this embodiment, when a break occurs in a certain processor, all the processors in the circuit are forcibly interrupted to temporarily stop the program operation, and the peripheral circuit supplies the clock. The operation is stopped by stopping.
次に、本実施の形態の効果について説明する。 Next, the effect of this embodiment will be described.
本実施の形態では、あるプロセッサがデバッグモードへ移行したときに、ほかのプロセッサもデバッグモードへ移行するため、中央制御ユニットを通じてシステムにある全プロセッサの状態を取得することができる効果がある。さらにデバッグモードにおいてもプロセッサはクロック供給が続きライトバックを実行するため、ライトバック前のレジスタを観測する問題を解決でき、回路をエミュレータに実装する場合は回路記述の修正を行う必要があるが、本実施の形態は現在のプロセッサに実現されている機能を最大限利用するように構成するため、その修正も最小限(割込を入れる)となり、修正箇所を大幅に削減する効果もある。 In this embodiment, when a certain processor shifts to the debug mode, the other processors also shift to the debug mode. Therefore, there is an effect that the states of all the processors in the system can be acquired through the central control unit. Even in debug mode, the processor continues to supply the clock and executes write back, so it can solve the problem of observing the register before write back, and if the circuit is mounted on an emulator, it is necessary to correct the circuit description. Since the present embodiment is configured so as to make maximum use of the functions implemented in the current processor, the correction is minimized (interrupts are included), and there is also an effect of greatly reducing the number of corrections.
なお、本実施の形態では、プロセッサに割込信号を入力したとき、割込発生から割込ベクタに遷移する前に実行する命令の数が異なる場合、i番目のプロセッサが実行する命令の数をA_iとし、A_iの最大値をBとすると、割込制御ユニットは、ブレーク信号を検出してから(ブレークが発生してから)、フリップフロップ(FF)等の遅延回路によりB−A_iサイクル遅延させて、全プロセッサに割込信号を入力してもよい。 In this embodiment, when an interrupt signal is input to the processor, the number of instructions executed by the i-th processor is different if the number of instructions executed before the transition from the interrupt occurrence to the interrupt vector is different. Assuming that A_i is A and the maximum value of A_i is B, the interrupt control unit delays BA_i cycles by a delay circuit such as a flip-flop (FF) after detecting the break signal (after the break occurs). An interrupt signal may be input to all the processors.
(第2の実施の形態)
次に、図6、図7を参照して、本発明の第2の発明の実施の形態について説明する。
(Second Embodiment)
Next, the second embodiment of the present invention will be described with reference to FIGS.
本実施の形態に係る回路検証装置であるデバッグ制御装置は、図6に示すように、第1の実施の形態にリターン命令検出ユニット(リターン命令検出手段)600.1と600.2と、復帰情報602が加えられた構成である。
As shown in FIG. 6, the debug control device, which is a circuit verification device according to the present embodiment, includes return instruction detection units (return instruction detection means) 600.1 and 600.2 and a return to the first embodiment. In this configuration,
リターン命令検出ユニット600.1と600.2は、プロセッサA100.1、B100.2がリターン命令を実行することを検出し、それをリターン命令検出信号601.1と601.2としてクロック制御ユニット206に伝えるユニットである。 The return instruction detection units 600.1 and 600.2 detect that the processors A100.1 and B100.2 execute return instructions, and use them as return instruction detection signals 601.1 and 601.2. It is a unit that tells.
復帰情報602は、各プロセッサA100.1、B100.2におけるリターン命令が費やすクロック数が書かれている情報である。たとえば、プロセッサA100.1はリターン命令に7サイクル必要で、プロセッサB100.2は5サイクル必要という情報が記載されたファイルである。
The
クロック制御ユニット206は、すべてのプロセッサA100.1、B100.2と周辺回路201を同時に復帰させるために、リターン検出信号および復帰情報を利用して各プロセッサA100.1、B100.2や周辺回路201に与えるクロック数を制御する。
The
図7は、本実施の形態の動作をフローチャートに表した図である。この図において、図5のステップS500〜S507に加え、ステップS700、S701、S702、S703が追加されている。ステップS503とS504の間に、ステップS700、S701が挿入され、ステップS505とS506の間に、ステップS702、S703が挿入されている。ステップS700とS702は、同じ動作を行う。また、ステップS701とS703も、同じ動作を行う。 FIG. 7 is a flowchart showing the operation of the present embodiment. In this figure, steps S700, S701, S702, and S703 are added in addition to steps S500 to S507 in FIG. Steps S700 and S701 are inserted between steps S503 and S504, and steps S702 and S703 are inserted between steps S505 and S506. Steps S700 and S702 perform the same operation. Steps S701 and S703 perform the same operation.
第1の実施の形態では、デバッグが終了して復帰するときに”jmp loop”無限ループを強制的にNOP命令に書き換えることで復帰を行っていたが、それではサイクルレベルで動作サイクルが合わなくなる。このため、本実施の形態では、ステップS700とステップS701の制御を入れることにより、実際の動作とまったく同じサイクルで復帰できるようにしたものである。 In the first embodiment, the return is performed by forcibly rewriting the “jmp loop” infinite loop to the NOP instruction when the debug ends and returns. However, the operation cycle does not match at the cycle level. For this reason, in this embodiment, it is possible to return in exactly the same cycle as the actual operation by including the control of step S700 and step S701.
すなわち、本実施の形態では、各プロセッサがリターン命令を実行したことを検出するまでクロックを供給し続ける(ステップS700、S702)。より具体的にその動作について説明すると、あるプロセッサがリターン命令を実行したら、初めにリターン命令検出ユニットがそれを検出し、クロック制御ユニットに通知する。次に、クロック制御ユニットが該当するプロセッサに供給しているクロック信号を停止させる。次に、すべてのクロック信号が停止(つまり、すべてのプロセッサがリターン命令を実行)するまで待つように動作する。 That is, in this embodiment, the clock is continuously supplied until it is detected that each processor has executed the return instruction (steps S700 and S702). More specifically, the operation will be described. When a processor executes a return instruction, the return instruction detection unit first detects it and notifies the clock control unit. Next, the clock signal supplied to the corresponding processor by the clock control unit is stopped. It then operates to wait until all clock signals have stopped (ie, all processors have executed a return instruction).
そして、本実施の形態では、復帰情報602を利用して、各プロセッサがリターン命令を実行するのに必要なクロック数を供給する(ステップS701、S703)。これは、複数のプロセッサが異なるアーキテクチャを持っていても、すべてのプロセッサが同時に動作を開始できるようにするためである。
In this embodiment, the
次に、本実施の形態の効果について説明する。 Next, the effect of this embodiment will be described.
本実施の形態では、全プロセッサや周辺回路が同時に動作を開始できるように、リターン検出ユニットを追加し、復帰情報(復帰命令が必要とするクロック数に関する情報)に基づいて、各プロセッサに入力するクロック信号の数を調節するため、異なるアーキテクチャを持つプロセッサでも同時にすべてのプロセッサや周辺回路が復帰できる効果がある。 In this embodiment, a return detection unit is added so that all the processors and peripheral circuits can start operation simultaneously, and input to each processor based on return information (information on the number of clocks required by the return instruction). Since the number of clock signals is adjusted, it is possible to restore all processors and peripheral circuits at the same time even with processors having different architectures.
本実施の形態による回路検証装置および方法は、ハードウェア、ソフトウェア又はこれらの組み合わせによって実現することができる。 The circuit verification apparatus and method according to the present embodiment can be realized by hardware, software, or a combination thereof.
例えば、本実施の形態による回路検証装置は、ハードウェアにより実現することができるが、コンピュータをその装置として機能させるためのプログラムを、コンピュータがコンピュータ読み取り可能な記録媒体から読み込んで実行することによっても実現することができる。 For example, the circuit verification apparatus according to the present embodiment can be realized by hardware, but can also be executed by a computer reading a program for causing the computer to function as the apparatus from a computer-readable recording medium and executing the program. Can be realized.
また、本実施の形態による回路検証方法は、ハードウェアにより実現することができるが、コンピュータにその方法を実行させるためのプログラムを、コンピュータがコンピュータ読み取り可能な記録媒体から読み込んで実行することによっても実現することができる。 In addition, the circuit verification method according to the present embodiment can be realized by hardware, but it is also possible for the computer to read and execute a program for causing the computer to execute the method from a computer-readable recording medium. Can be realized.
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。 Although the present invention has been described with reference to the embodiments, the present invention is not limited to the above embodiments. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.
本発明によれば、複数のプロセッサを含む回路のデバッグ制御装置等の回路検証装置、方法およびプログラム等に利用可能である。 INDUSTRIAL APPLICABILITY According to the present invention, the present invention can be used for a circuit verification device, a method, a program, and the like such as a debug control device for a circuit including a plurality of processors.
100.1、100.2 プロセッサA、B
101.1、101.2 バス
102.1、102.2 デバッグ用メモリ
103.1、103.2 命令メモリ
104.1、104.2 データメモリ
108.1、108.2 デバッグ制御部
201 周辺回路
203 ブレーク検出ユニット
205 割込制御ユニット
206 クロック制御ユニット
208 中央制御ユニット
200.1、200.2 プロセッサブロックA、B
100.1, 100.2 Processor A, B
101.1, 101.2 Bus 102.1, 102.2 Debug memory 103.1, 103.2 Instruction memory 104.1, 104.2 Data memory 108.1, 108.2
Claims (9)
前記周辺回路からの信号の状態が、予め設定されたブレーク条件と合致するかどうかを検出し、合致する場合にブレーク信号を生成するブレーク検出手段と、
前記プロセッサからのブレーク信号および前記ブレーク検出手段からのブレーク信号を検出して、全プロセッサに割込信号を入力する割込制御手段と、
前記プロセッサおよび前記周辺回路へ供給するクロック信号を制御するクロック制御手段と、
前記割込制御手段が伝達したブレーク発生を前記クロック制御手段に伝達し、前記ブレーク検出手段および前記プロセッサのデバッグ制御手段の制御を行う中央制御手段と、を備え、
前記割込制御手段は、前記ブレーク検出手段からのブレーク信号を検出した時および前記プロセッサからのブレーク信号を検出した時に前記回路に含まれる全プロセッサに割込信号を入力し、
前記クロック制御手段は、前記割込制御手段がブレーク信号を検出したら直ちに前記プロセッサにクロック信号を供給し、前記周辺回路にクロック信号を供給しないことを特徴とする回路検証装置。 In an apparatus for verifying the operation of a circuit including a plurality of processors that perform operation verification by interrupt control and peripheral circuits other than the processor,
Break detecting means for detecting whether a state of a signal from the peripheral circuit matches a preset break condition, and generating a break signal when the break condition is met;
Interrupt control means for detecting a break signal from the processor and a break signal from the break detection means and inputting an interrupt signal to all processors;
Clock control means for controlling a clock signal supplied to the processor and the peripheral circuit;
Central control means for transmitting the break occurrence transmitted by the interrupt control means to the clock control means and controlling the break detection means and the debug control means of the processor,
The interrupt control means inputs an interrupt signal to all processors included in the circuit when a break signal from the break detection means is detected and when a break signal from the processor is detected,
The circuit verification device, wherein the clock control means supplies a clock signal to the processor immediately after the interrupt control means detects a break signal, and does not supply a clock signal to the peripheral circuit.
前記クロック制御手段は、デバッグ状態から通常状態へ復帰する時に、リターン命令が実行されたらクロック信号の供給を一旦停止し、全プロセッサのクロック信号の供給が停止したら、各プロセッサでリターン命令を実行するのに必要なクロック数を各プロセッサに供給し、全プロセッサおよび周辺回路へのクロック信号の供給を再開することを特徴とする請求項1記載の回路検証装置。 And a return instruction detecting means for detecting that the processor executes a return instruction.
The clock control means temporarily stops the supply of the clock signal when the return instruction is executed when returning from the debug state to the normal state, and executes the return instruction in each processor when the supply of the clock signal of all the processors is stopped. 2. The circuit verifying apparatus according to claim 1, wherein the number of clocks required for the processing is supplied to each processor, and the supply of clock signals to all the processors and peripheral circuits is resumed.
ブレーク検出手段が、前記周辺回路からの信号の状態が、予め設定されたブレーク条件と合致するかどうかを検出し、合致する場合にブレーク信号を生成し、
割込制御手段が、前記プロセッサからのブレーク信号および前記ブレーク検出手段からのブレーク信号を検出して、全プロセッサに割込信号を入力し、
クロック制御手段が、前記プロセッサおよび前記周辺回路へ供給するクロック信号を制御し、
中央制御手段が、前記割込制御手段が伝達したブレーク発生を前記クロック制御手段に伝達し、前記ブレーク検出手段および前記プロセッサのデバッグ制御手段の制御を行う、
方法であって、
前記割込制御手段が、前記ブレーク検出手段からのブレーク信号を検出した時および前記プロセッサからのブレーク信号を検出した時に前記回路に含まれる全プロセッサに割込信号を入力し、
前記クロック制御手段が、前記割込制御手段がブレーク信号を検出したら直ちに前記プロセッサにクロック信号を供給し、前記周辺回路にクロック信号を供給しないことを特徴とする回路検証方法。 In a method for verifying the operation of a circuit including a plurality of processors that perform operation verification by interrupt control and peripheral circuits other than the processor,
The break detection means detects whether the state of the signal from the peripheral circuit matches a preset break condition, and generates a break signal when the break condition matches,
The interrupt control means detects a break signal from the processor and a break signal from the break detection means, and inputs the interrupt signal to all processors,
A clock control means for controlling a clock signal supplied to the processor and the peripheral circuit;
The central control means transmits the break occurrence transmitted by the interrupt control means to the clock control means, and controls the break detection means and the debug control means of the processor.
A method,
When the interrupt control means detects a break signal from the break detection means and detects a break signal from the processor, it inputs an interrupt signal to all the processors included in the circuit,
A circuit verification method, wherein the clock control means supplies a clock signal to the processor as soon as the interrupt control means detects a break signal, and does not supply a clock signal to the peripheral circuit.
前記クロック制御手段が、デバッグ状態から通常状態へ復帰する時に、リターン命令が実行されたらクロック信号の供給を一旦停止し、全プロセッサのクロック信号の供給が停止したら、各プロセッサでリターン命令を実行するのに必要なクロック数を各プロセッサに供給し、全プロセッサおよび周辺回路へのクロック信号の供給を再開することを特徴とする請求項4記載の回路検証方法。 Further, a return instruction detection means detects that the processor executes a return instruction,
When the clock control means returns from the debug state to the normal state, the supply of the clock signal is temporarily stopped when the return instruction is executed, and the return instruction is executed by each processor when the supply of the clock signal of all the processors is stopped. 5. The circuit verification method according to claim 4, wherein the number of clocks required for the above is supplied to each processor, and the supply of clock signals to all processors and peripheral circuits is resumed.
コンピュータを、
前記周辺回路からの信号の状態が、予め設定されたブレーク条件と合致するかどうかを検出し、合致する場合にブレーク信号を生成するブレーク検出手段と、
前記プロセッサからのブレーク信号および前記ブレーク検出手段からのブレーク信号を検出して、全プロセッサに割込信号を入力する割込制御手段と、
前記プロセッサおよび前記周辺回路へ供給するクロック信号を制御するクロック制御手段と、
前記割込制御手段が伝達したブレーク発生を前記クロック制御手段に伝達し、前記ブレーク検出手段および前記プロセッサのデバッグ制御手段の制御を行う中央制御手段と、
して機能させるプログラムであって、
前記割込制御手段は、前記ブレーク検出手段からのブレーク信号を検出した時および前記プロセッサからのブレーク信号を検出した時に前記回路に含まれる全プロセッサに割込信号を入力し、
前記クロック制御手段は、前記割込制御手段がブレーク信号を検出したら直ちに前記プロセッサにクロック信号を供給し、前記周辺回路にクロック信号を供給しないことを特徴とする回路検証プログラム。 In a program for verifying the operation of a circuit including a plurality of processors that perform operation verification by interrupt control and peripheral circuits other than the processor,
Computer
Break detecting means for detecting whether a state of a signal from the peripheral circuit matches a preset break condition, and generating a break signal when the break condition is met;
Interrupt control means for detecting a break signal from the processor and a break signal from the break detection means and inputting an interrupt signal to all processors;
Clock control means for controlling a clock signal supplied to the processor and the peripheral circuit;
Central control means for transmitting the break occurrence transmitted by the interrupt control means to the clock control means and controlling the break detection means and the debug control means of the processor;
A program that allows
The interrupt control means inputs an interrupt signal to all processors included in the circuit when a break signal from the break detection means is detected and when a break signal from the processor is detected,
The circuit verification program characterized in that the clock control means supplies a clock signal to the processor as soon as the interrupt control means detects a break signal and does not supply a clock signal to the peripheral circuit.
前記クロック制御手段は、デバッグ状態から通常状態へ復帰する時に、リターン命令が実行されたらクロック信号の供給を一旦停止し、全プロセッサのクロック信号の供給が停止したら、各プロセッサでリターン命令を実行するのに必要なクロック数を各プロセッサに供給し、全プロセッサおよび周辺回路へのクロック信号の供給を再開することを特徴とする請求項7記載の回路検証プログラム。 Further, a program for causing a computer to function as return instruction detection means for detecting that the processor executes a return instruction,
The clock control means temporarily stops the supply of the clock signal when the return instruction is executed when returning from the debug state to the normal state, and executes the return instruction in each processor when the supply of the clock signal of all the processors is stopped. 8. The circuit verification program according to claim 7, wherein the number of clocks required for the processing is supplied to each processor, and the supply of clock signals to all the processors and peripheral circuits is resumed.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009126285A JP5344371B2 (en) | 2009-05-26 | 2009-05-26 | Circuit verification apparatus, method and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009126285A JP5344371B2 (en) | 2009-05-26 | 2009-05-26 | Circuit verification apparatus, method and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010277142A JP2010277142A (en) | 2010-12-09 |
JP5344371B2 true JP5344371B2 (en) | 2013-11-20 |
Family
ID=43424086
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009126285A Active JP5344371B2 (en) | 2009-05-26 | 2009-05-26 | Circuit verification apparatus, method and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5344371B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5787829B2 (en) * | 2012-06-01 | 2015-09-30 | 株式会社東芝 | Multiprocessor |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002215421A (en) * | 2001-01-15 | 2002-08-02 | Nec Microsystems Ltd | Debugging device and breaking method for debugging device |
JP4439235B2 (en) * | 2003-10-15 | 2010-03-24 | 富士通株式会社 | Operation test apparatus and operation test method |
JP2006163864A (en) * | 2004-12-08 | 2006-06-22 | Canon Inc | Debugging method and device for system lsi |
JP2007141200A (en) * | 2005-10-21 | 2007-06-07 | Renesas Technology Corp | Data processor |
JP2007316986A (en) * | 2006-05-26 | 2007-12-06 | Canon Inc | System lsi |
-
2009
- 2009-05-26 JP JP2009126285A patent/JP5344371B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2010277142A (en) | 2010-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102170644B1 (en) | Non-volatile memory channel control using a general purpose programmable processor in combination with a low level programmable sequencer | |
TWI428823B (en) | Microprocessor integrated circuits and methods for debugging a microprocessor integrated circuit | |
US8566645B2 (en) | Debug state machine and processor including the same | |
US8903703B2 (en) | Dynamically adjusting speed versus accuracy of computer platform simulation | |
US8725485B2 (en) | Simulation method and simulation apparatus | |
US20060059286A1 (en) | Multi-core debugger | |
US8495344B2 (en) | Simultaneous execution resumption of multiple processor cores after core state information dump to facilitate debugging via multi-core processor simulator using the state information | |
GB2413418A (en) | Selective generation of trace elements | |
US8762779B2 (en) | Multi-core processor with external instruction execution rate heartbeat | |
US20160364514A1 (en) | System, Method and Apparatus for a Scalable Parallel Processor | |
JP5146451B2 (en) | Method and apparatus for synchronizing processors of a hardware emulation system | |
JP3260083B2 (en) | Debug system and debugging method | |
US9448909B2 (en) | Randomly branching using performance counters | |
JP5344371B2 (en) | Circuit verification apparatus, method and program | |
US9483379B2 (en) | Randomly branching using hardware watchpoints | |
WO2022235265A1 (en) | Debug channel for communication between a processor and an external debug host | |
US7949917B2 (en) | Maintaining data coherency in multi-clock systems | |
JP2010231607A (en) | Emulator | |
Peng et al. | An on-chip debugging method based on bus access | |
JP2009223762A (en) | Cooperation verification device | |
Attia | Hardware Checkpointing and Productive Debugging Flows for FPGAs | |
WO2006091785A1 (en) | Interface converter for unified view of multiple computer system simulations | |
Allan | Tried Tested speedups for SW-driven SoC Simulation | |
JP2004199630A (en) | Data processor | |
Afroz et al. | Implementation of RISC-Based Architechture for Low Power Applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120411 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130710 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130722 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5344371 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130804 |