JP2008287462A - Emulator and emulation method - Google Patents
Emulator and emulation method Download PDFInfo
- Publication number
- JP2008287462A JP2008287462A JP2007131336A JP2007131336A JP2008287462A JP 2008287462 A JP2008287462 A JP 2008287462A JP 2007131336 A JP2007131336 A JP 2007131336A JP 2007131336 A JP2007131336 A JP 2007131336A JP 2008287462 A JP2008287462 A JP 2008287462A
- Authority
- JP
- Japan
- Prior art keywords
- clock
- delay
- cpu core
- peripheral
- voltage
- 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
Links
Images
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
Description
本発明は、マイコン用インサーキットエミュレータ及びエミュレーション方法に関し、特に、電圧変動による同期調整を図ったエミュレータ及びエミュレーション方法に関する。 The present invention relates to an in-circuit emulator for a microcomputer and an emulation method, and more particularly, to an emulator and an emulation method that achieve synchronization adjustment by voltage fluctuation.
高機能なエミュレータは、CPU(Central Processing Unit)にソフトウェアをデバッグするために必要な多くの機能を有する。多くの機能とは、例えばプログラムを任意の箇所で停止させるブレーク機能、プログラム実行の軌跡をたどるためのトレース機能、実行中のメモリ内容を監視するリアルタイムRAM(Random Access Memory)モニタ機能などであり、これらは、本来のCPUに多くの付加回路が接続されて実現されている(以下、このような機能を有するCPUをCPUコアという。)。 A high-function emulator has many functions necessary for debugging software in a CPU (Central Processing Unit). Many functions include, for example, a break function that stops a program at an arbitrary location, a trace function that traces the locus of program execution, and a real-time RAM (Random Access Memory) monitor function that monitors the memory contents being executed. These are realized by connecting many additional circuits to the original CPU (hereinafter, a CPU having such a function is referred to as a CPU core).
このため高機能なエミュレータは、1個のLSIチップ上にCPUコアと、タイマー、時計及び割り込み機能を有する部分等の周辺機能を搭載することができず、CPUコアを有するLSI(以下CPUエバチップという。)、周辺機能を有するLSI(以下、周辺エバチップという。)に分割し、2つをプリント基板などで配線することでエミュレータを実現している。 For this reason, a high-function emulator cannot mount a CPU core and peripheral functions such as a timer, a clock, and an interrupt function on a single LSI chip, and an LSI having a CPU core (hereinafter referred to as a CPU evaluation chip). .), An emulator is realized by dividing the LSI into peripheral LSIs (hereinafter referred to as peripheral evaluation chips) and wiring the two with a printed circuit board or the like.
近年、エミュレーションする製品(マイコン)の動作スピードの高速化、及び動作電源電圧範囲の拡張により、動作時に電源電圧、動作周波数を変更することが要求されてきている。実際のデバイスでは、CPUコアとメモリなどのインターフェースはレギュレータの固定電圧で動作していて、IOバッファはユーザ電圧により変動する。エミュレータでも、CPUエバチップとメモリ、及びホストマシンとのインターフェースは、固定電圧で動作させる必要がある。 In recent years, it has been required to change the power supply voltage and the operating frequency during operation due to the increase in the operating speed of the product (microcomputer) to be emulated and the expansion of the operating power supply voltage range. In an actual device, an interface such as a CPU core and a memory operates with a fixed voltage of the regulator, and an IO buffer varies depending on a user voltage. Even in the emulator, it is necessary to operate the interface between the CPU evaluation chip, the memory, and the host machine at a fixed voltage.
またユーザーシステムに接続される周辺エバチップは、電源電圧、動作スピード、及び入出力タイミングをエミュレーションするために、実際のデバイスのIOバッファと同じようにユーザーシステムの仕様電源電圧に追従することが要求されている。そのためCPUエバチップと周辺エバチップの動作電圧が異なることや、基板での遅延によって2つのチップの動作にずれが発生してしまうため、CPUエバチップと周辺エバチップの動作クロックのスキュー(遅延)を調整することにより正しく動作するようにする必要がある。 Peripheral evaluation chips connected to the user system are required to follow the specified power supply voltage of the user system in the same way as the IO buffer of the actual device in order to emulate the power supply voltage, operation speed, and input / output timing. ing. Therefore, the operating voltage of the CPU evaluation chip and the peripheral evaluation chip are different from each other, and the operation of the two chips is shifted due to the delay in the substrate. Therefore, the skew (delay) of the operation clock of the CPU evaluation chip and the peripheral evaluation chip is adjusted. Need to work properly.
そこで、このようなCPUコアと周辺エバチップのクロックのスキュー調整の方法が特許文献1に記載されている。図13(a)は特許文献1に記載のエミュレーション回路である。図13(a)に示すように、エミュレーションチップ620は、マイクロコンピュータ610とエミュレータであるホストマシン630のインターフェースを行なうチップである。ここで図13(a)に示すエミュレーションチップ(以下、CPUエバチップという。)620は上述のCPUコアに相当する。また、マイクロコンピュータ610は、上述の周辺エバチップに相当する。
Therefore,
エミュレーションチップ(CPUエバチップ)620は、発振回路621、タイミングジェネレータ622、データバスラッチ623、及び比較回路624で構成される。ホストマシン630はCPUエバチップ620と接続されている。マイクロコンピュータ(周辺エバチップ)610は、タイミングジェネレータ611、及び出力回路612で構成される。
The emulation chip (CPU evaluation chip) 620 includes an
CPUエバチップ620の発振回路621の出力は電圧レベル変換回路650を介して、マイクロコンピュータ610のタイミングジェネレータ611と、遅延回路660へ接続される。遅延回路660の出力は、CPUエバチップ620のタイミングジェネレータ622の入力に接続される。マイクロコンピュータ610のタイミングジェネレータ611の出力は、マイクロコンピュータ610の出力回路612の入力に接続されている。マイクロコンピュータ610の出力回路612の出力は、電圧レベル変換回路650を介して、CPUエバチップ620のデータバスラッチ623のバスに接続されている。CPUエバチップ620のデータバスラッチ623はCPUエバチップ620のクロックジェネレータ622からのクロックを入力として、メモリ640へデータを出力する。
The output of the
CPUエバチップ620の比較回路624は、一方の入力がCPUエバチップ620のタイミングジェネレータ622の出力と接続され、他方の入力が電圧レベル変換回路650を介してマイクロコンピュータ610のタイミングジェネレータ611の出力と接続されている。比較回路624の出力は外部でモニタされ、そのモニタ結果から、遅延回路660の遅延量を設定する構成になっている。
The
次に、この特許文献1に記載のエミュレーション回路の動作について説明する。比較回路624は、クロック804とクロック805とを比較する。クロック804は、発振回路621の出力であるクロック800を遅延回路660において遅延させ、これをタイミングジェネレータ622の入力として生成したクロックである。クロック805は、発振回路621のクロック800が電圧レベル変換回路650を通ることで遅延された信号801をマイクロコンピュータ610のタイミングジェネレータ611に入力し、生成したクロックを、電圧変換回路650を介してCPUエバチップ620に入力した信号である。比較回路624の比較出力信号806に基づいて、遅延回路660の遅延量を設定することにより、CPUエバチップ620のタイミングジェネレータ622がデータバスラッチ623に出力するストローブ信号803と、データバス信号700が電圧レベル変換回路650を通り、データバスラッチ623に入力されたデータバス信号701との同期をとることができる。
Next, the operation of the emulation circuit described in
図13(b)は図13(a)に示すエミュレーション回路の動作を示すタイミングチャートである。クロック800は発振回路621から生成されるクロック信号である。クロック801はクロック800に対して、クロック800を受けて、電圧レベル変換回路650を通ることで生じる遅延、及び配線遅延による遅れt1を生じている。
FIG. 13B is a timing chart showing the operation of the emulation circuit shown in FIG. A
マイクロコンピュータ610ではクロック801を用いてタイミングジェネレータ611でクロック805とストローブ信号802を生成する。CPUエバチップ620ではデータバスラッチ623において、マイクロコンピュータ610が出力するデータバス信号700が電圧レベル変換回路650を通ったデータバス信号701をストローブ信号803でラッチし、メモリ640へ書き込む。
In the
このとき、CPUエバチップ620が得るデータバス信号701は電圧レベル変換回路650の遅延及び配線遅延によりt3だけ、データバス信号700より遅れている。一方、CPUエバチップ620ではクロック800から遅延回路660により遅延された信号からタイミングジェネレータ622により基本クロック804とストローブ信号803を生成する。ここで、CPUエバチップ620が、マイクロコンピュータ610からのデータバス信号701を確実に取り込むためには、前記クロック801が発振回路から生成されたクロック800から、電圧レベル変換回路650を通ることによる遅延、及び配線遅延による遅れt1と、データバス信号701が電圧レベル変換回路650を通ることによる遅延及び配線遅延によりデータバス信号700に対しての遅れt3の合計時間だけ、遅延回路660により、発振回路621から生成されるクロック800からストローブ信号803を遅らせることにより可能となる。
At this time, the
その遅延回路660の遅延量を決めるために、マイクロコンピュータ610のクロック805と遅延回路660を通ったクロック804を比較回路624で比較し、その出力信号806のハイレベルの時間が遅延量t1と遅延量t3の合計時間から遅延回路660により遅らせた時間の差(これを遅延量をt2とする)と考えられるため、信号806をモニタしてハイレベルの期間がなくなるよう、すなわち遅延量t2が零になるように調整すれば、正しい遅延量を設定することができる。これにより、CPUエバチップ620のタイミングジェネレータ622がデータバスラッチ623に出力するストローブ信号803と、マイクロコンピュータ610のタイミングジェネレータ611の出力ストローブ信号802が出力回路612を介して出力されるデータバス信号700が、電圧レベル変換回路650を通り、データバスラッチ623に入力されるデータバス信号701との同期をとることができる。
しかしながら、この特許文献1の方法では、比較回路624により位相を比較することにより遅延量を設定しているため、正常に動作する範囲は1周期以内となる。このために、電圧が大きく変化し、クロックのスキューの変動幅が1周期以上になったときに、1周期以上の変動に対しては検出できないという問題点がある。
However, in the method of
図14(a)に示す例は、クロック804に対して、実際には遅延T4のクロック805がとなり、クロック804の1周期以上の遅延となった場合を示す。この場合、特許文献1に記載の方法では、実際の遅延とは異なる遅延T5の遅延量を設定してしまう。正しい遅延T4を設定した場合は、ラッチAのタイミングでデータバス701をラッチし、正しいDataAをラッチすることになるが、間違った遅延T5ではラッチBのタイミングでデータバス701をラッチしてしまい、正しいデータをラッチすることができない。
The example shown in FIG. 14A shows a case in which the
また、このように1周期以上の遅延がある場合に、動作周波数をモードの切り替えにより変更になった場合は図14(b)のように、高周波数のときは実際とは異なる遅延量T6を設定しており、低周波数に切り替えると遅延量T7へ大幅に遅延量が増え、調整までの時間がかかることなどで、さらなる誤動作を起こす可能性がある。 Further, when there is a delay of one cycle or more in this way, when the operating frequency is changed by switching the mode, as shown in FIG. 14B, when the frequency is high, a delay amount T6 different from the actual is set. If it is set and the frequency is switched to a low frequency, the delay amount greatly increases to the delay amount T7, which may cause further malfunctions due to the time required for adjustment.
さらに、この特許文献1では動作クロックのタイミングを合わせるために比較回路624の出力比較信号806をモニタし調整するようにしているが、クロック遅延調整用の基板上の経路と本来の同期を取りたい、データバスラッチ623の入力までの経路は完全に同じわけではないので、基板上の遅延を調整することができないという問題点がある。
Further, in this
本発明に係るエミュレータは、マイクロコンピュータのCPU機能を実現するCPUコア部と周辺機能を実現する周辺部とを備えた前記マイクロコンピュータの動作を実現するエミュレータであって、クロックジェネレータから出力されるソースクロックを入力して、前記CPUコア部に供給される第1の動作クロックと前記周辺部に供給される第2の動作クロックとを生成するスキュー調整部と、前記周辺部に供給されるユーザ電圧に応じて求められ、前記第1又は前記第2の動作クロックに付加される遅延量を決定するための設定値が格納された設定値テーブルとを有し、前記スキュー調整部は、前記設定値に基づいて前記第1の動作クロックと前記第2の動作クロック間のスキューを調整するものである。 An emulator according to the present invention is an emulator that realizes the operation of the microcomputer including a CPU core part that realizes a CPU function of the microcomputer and a peripheral part that realizes peripheral functions, and which is a source output from a clock generator A skew adjustment unit that inputs a clock and generates a first operation clock supplied to the CPU core unit and a second operation clock supplied to the peripheral unit, and a user voltage supplied to the peripheral unit And a setting value table in which setting values for determining a delay amount to be added to the first or second operation clock are stored, and the skew adjustment unit includes the setting values. Is used to adjust the skew between the first operation clock and the second operation clock.
本発明に係るエミュレーション方法は、マイクロコンピュータのCPU機能を実現するCPUコア部及び周辺機能を実現する周辺部と、該周辺部に供給されるユーザ電圧に応じて予め求められ前記CPUコア部に供給される第1の動作クロック又は前記周辺部に供給される第2の動作クロックに付加される遅延量を決定するための設定値が格納された設定値テーブルとによって、前記マイクロコンピュータの動作をエミュレーションするエミュレーション方法であって、前記ユーザ電圧を測定し、前記測定した結果に基づいて、前記設定値テーブルから所定の設定値を選択し、前記選択した所定の設定値に基づいて、前記第1の動作クロックと前記第2の動作クロック間のスキューを調整するものである。 An emulation method according to the present invention is obtained in advance according to a CPU core unit that implements a CPU function of a microcomputer and a peripheral unit that implements peripheral functions, and a user voltage supplied to the peripheral unit, and is supplied to the CPU core unit. The microcomputer operation is emulated by a setting value table storing a setting value for determining a delay amount added to the first operation clock to be supplied or the second operation clock supplied to the peripheral portion. An emulation method for measuring the user voltage, selecting a predetermined setting value from the setting value table based on the measurement result, and selecting the first setting based on the selected predetermined setting value. The skew between the operation clock and the second operation clock is adjusted.
本発明においては、ユーザ電圧に応じて予め求められた遅延値が設定値として格納された設定値テーブルを有し、この設定値テーブルを参照して第1及び第2の動作クロックを生成するので、正しい遅延量の第1及び第2の動作クロックを生成してCPUコア部及び周辺部の同期を取ることができる。 In the present invention, the delay value obtained in advance according to the user voltage is stored as a set value, and the first and second operation clocks are generated with reference to the set value table. The first and second operation clocks having the correct delay amount can be generated to synchronize the CPU core unit and the peripheral unit.
本発明においては、1周期以上の遅延があっても正しい遅延量を設定してエミュレーションすることができるエミュレータ及びエミュレーション方法を提供することができる。 In the present invention, it is possible to provide an emulator and an emulation method capable of setting and emulating a correct delay amount even when there is a delay of one cycle or more.
実施の形態1.
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。図1はインサーキットエミュレータのシステム全体を示す図である。図1に示すように、インサーキットエミュレータ310はユーザのターゲットシステム開発やマイコンに組み込むソフトのデバッグを目的とし、ユーザのターゲットに乗せる実際のマイコンと同じ動きをし、さらにホストマシン1から、ブレークやトレースなどのデバッグ機能の操作を可能にした装置である。
Hereinafter, specific embodiments to which the present invention is applied will be described in detail with reference to the drawings. FIG. 1 is a diagram showing the entire system of an in-circuit emulator. As shown in FIG. 1, the in-
本実施の形態におけるエミュレータ310は、マイクロコンピュータのCPU機能を実現するCPUコア312と周辺機能を実現する周辺エバチップ313とを備えたマイクロコンピュータの動作を実現するエミュレータであり、クロックジェネレータ317から出力されるソースクロックを入力して、CPUコア312に供給される第1の動作クロック401と周辺エバチップ313に供給される第2の動作クロック402とを生成するスキュー調整用ブロック311と、周辺エバチップ313に供給されるユーザ電源の電圧値(ユーザ電圧)に応じて求められ、CPUコアクロック401又は周辺エバクロック402に付加される遅延量を決定するための設定値が格納されたテーブルブロックとを有する。そして、スキュー調整用ブロック311は、設定値に基づいてCPUコアクロック401と周辺エバクロック402間のスキューを調整する。
The
具体的には次のように構成される。すなわち、エミュレータ310は、実際のマイコンのCPU機能にデバッグ機能をプラスしたCPUコア312を有するLSIのCPUエバチップ318と、実際のマイコンの周辺機能を有する周辺エバチップ313と、その他ホストコントロールMCU2、エミュレーションメモリ3、レベルシフタ4、クロックジェネレータ317、及びターゲットI/F6、ホストインターフェース(不図示)を有している。
Specifically, it is configured as follows. That is, the
ユーザ電源は、ユーザターゲットボード5からターゲットI/F6を介して供給される。ユーザターゲットボード5と直接接続される周辺エバチップ313はユーザターゲットボード5から供給されるユーザ電源に追従して動作しており、エミュレーションメモリ3やホストコントロールMCU2、クロックジェネレータ317、及びCPUエバチップ318は外部AC電源から供給される3.3V固定で動作している。レベルシフタ4は、CPUエバチップ318側のレベルシフタの入出力端子の駆動電源に3.3V電源を使用し、周辺エバチップ313側のレベルシフタの入出力端子の駆動電源にユーザ電源を使用している。
User power is supplied from the
エミュレーションメモリ3は、CPUエバチップ318が実行するユーザプログラムや実行結果等を格納する。クロックジェネレータ317はソースクロック400を生成する。CPUエバチップ318は、CPUコア312及びスキュー調整用ブロック311を有し、ホストコントロールMCUはユーザ電圧測定ブロック315及びテーブルブロック314を有する。
The
テーブルブロック314は、ユーザ電圧に応じて予め求められた遅延値が設定値として格納された設定値テーブルとして機能する。スキュー調整用ブロック311は、テーブルブロック314を参照し、クロックジェネレータ317が生成するソースクロック400に対し、テーブルブロック314に格納されたスキュー調整値(設定値)により遅延を設定して第1の動作クロック及び第2の動作クロックとなるCPUコアクロック401及び周辺エバクロック402を生成するスキュー調整部として機能する。
The
CPUエバチップ318は定電圧で動作するチップであり、そのCPUコア312は、CPUにソフトウェアをデバッグするために必要な、例えばプログラムを任意の箇所で停止させるブレーク機能、プログラム実行の軌跡をたどるためのトレース機能、実行中のメモリ内容を監視するリアルタイムRAMモニタ機能などの多くの機能が付加されたものである。ユーザ電圧測定ブロック315は、ユーザ電圧405に基づきユーザ電圧をデコードし、スキュー調整用ブロック311は、このデコード値に応じてテーブルブロック314から設定値を読み出す。周辺エバチップ313は、ユーザ電圧で動作し、CPUエバチップ318と共にプログラムを実行するチップであり、CPUコア312と周辺エバチップ313とは相互にバス320で接続されている。
The
本実施の形態においては、最適なスキュー調整値のテーブルを作成してテーブルブロック314に記録しておき、テーブルブロック314からスキューの調整値を設定する。テーブルブロック314に書き込むスキュー設定値は1周期以上の値とすることも可能であるので、実際と異なる遅延量を設定することがない。なお、ここでのテーブルブロック314とは、FLASH、EEPROM等を含む不揮発性のメモリ全般を示すが以下では代表してROMともいう。テーブルブロック314からのスキュー調整値の設定を行うタイミングは、ユーザの使用電圧をモニタしユーザの使用電圧の変動に追従してテーブルブロック314から選択して設定する。すなわち、エミュレータ310は、スキュー調整ブロック311により、CPUエバチップ318及び/又は周辺エバチップ313にそれぞれの動作電圧に応じた遅延値のCPUコアクロック401、周辺エバクロック402を供給することで両者の同期を取りながらエミュレーションを実行する。
In the present embodiment, an optimum skew adjustment value table is created and recorded in the
図2は本実施の形態1にかかるエミュレータ310の各機能を示すブロックである。ユーザ電源電圧供給部316からの動作電圧を受けて動作するエミュレータ310はクロックジェネレータ317と、クロックジェネレータ317が生成するソースクロック400を入力とするスキュー調整用ブロック311と、ユーザ電圧405の電圧を測定するユーザ電圧測定ブロック315と、その測定した電圧値をアドレス値にデコードするデコーダ362と、そのアドレス出力404が供給されるテーブルブロック314と、スキュー調整用ブロック311が生成したCPUコアクロック401及び周辺エバクロック402がそれぞれ供給されるCPUコア312及び周辺エバチップ313とを有する。
FIG. 2 is a block diagram showing each function of the
次にこのエミュレータ310の動作について説明する。ユーザ電源電圧供給部316の電圧をユーザ電圧測定ブロック315において測定を行う。ユーザ電圧測定ブロック315は、電圧値が変化した場合にテーブルブロック314に対してデコーダ362でデコードしたアドレス出力を行う。テーブルブロック314はそのアドレス出力に対応したスキュー設定値をスキュー調整用ブロック311に出力する。
Next, the operation of the
スキュー調整用ブロック311はクロックジェネレータ317からのソースクロック400とテーブルブロック314からのスキュー調整値設定信号403により、ソースクロック400に対して適切な遅延値を与えたクロックを生成し、CPUコア312にはCPUコアクロック401を周辺エバチップ313には周辺エバクロック402を供給する。このことによりCPUコアと周辺エバチップは、ユーザ電圧に対応した、同期の取れた動作が可能になる。
Based on the
ここで、スキュー調整値(設定値)とは、CPUコア312と、周辺エバチップ313の動作のずれによる誤動作を補正するために、CPUコア312の動作クロック又は周辺エバチップ313の動作クロックに付加する遅延のことである。
Here, the skew adjustment value (setting value) is a delay added to the operation clock of the
図3はユーザ電圧測定ブロック315からデコーダ362よりアドレスを出力するまでの一般的な回路構成を示す図である。本例では、ユーザ電圧測定ブロック315が電圧測定結果を8ビット精度でデコーダ362に供給する例を示す。デコーダ362の内部では、それぞれの電圧範囲の比較値とユーザ電圧測定結果とをそれぞれ比較した結果から、その電圧範囲に相当するアドレスを出力する。本例では、比較回路511〜514の4つを具備し、比較する電圧範囲をそれぞれ5V以上、4V<電圧<5V、3V<電圧<4V、2.5V<電圧<3V、2.5V以下に電圧範囲を分けている。例えば3.54Vが電圧測定結果として供給された場合、5V以上を検出する比較回路511、4〜5Vを検出する比較器512は"1"を出力し、3〜4Vを検出する比較回路513、2.5V未満を検出する比較回路514は"0"を出力する。これらの入力を受けてアドレス値に変換して出力する変換部511は、アドレス出力404として"0002H"を出力する。
FIG. 3 is a diagram showing a general circuit configuration from the user
次に、スキュー調整用テーブルの作成方法について説明する。本実施の形態においては、任意の動作範囲の電圧において遅延値を変化させ、CPUコア312(CPUエバチップ318)及び周辺エバチップ313が正常に動作するか否かをテストし、正常に動作する範囲の遅延値の中でもっともマージンが大きい値をスキュー調整値とし、各ユーザ電圧に対するスキュー調整値を求めてスキュー調整用テーブルを作成する。
Next, a method for creating a skew adjustment table will be described. In the present embodiment, the delay value is changed in a voltage within an arbitrary operation range to test whether or not the CPU core 312 (CPU evaluation chip 318) and the
図4はスキュー調整用テーブルの作成方法を示すフローチャートである。スキュー調整用テーブルは、テーブルブロック314の中に格納される。先ず、初期電圧値を設定する(ステップS1)。たとえば、5V、4V、3V、2Vと電圧を変化させる場合に最初にテストを行う電圧を5Vとしていれば、ここでの初期電圧値は5Vである。
FIG. 4 is a flowchart showing a method for creating a skew adjustment table. The skew adjustment table is stored in the
ステップS2以降は、個々のエミュレータ製品毎に出荷検査工程等で行なう工程で、これによりその製品固有のスキュー調整値を調整することができる。先ず、初期スキュー調整値を設定する(ステップS2)。ステップS2の初期スキュー調整値は、1番最初の1台については設定できる最小値とする。2台目以降は、1台目のステップS3のテスト結果を基準とすることにより、すべての範囲でスキュー幅を変化させて確認せずに、最適値が得られそうな限定した範囲としてテストすることができる。 Step S2 and subsequent steps are steps performed in the shipping inspection step for each emulator product, and the skew adjustment value unique to the product can be adjusted thereby. First, an initial skew adjustment value is set (step S2). The initial skew adjustment value in step S2 is the minimum value that can be set for the first one. For the second and subsequent units, the test results in step S3 of the first unit are used as a reference, and the test is performed as a limited range in which an optimum value is likely to be obtained without changing the skew width in all ranges and checking. be able to.
例えば、−12nsから+16nsまでスキューを変えてテストする場合、1台目は、−12ns〜+16nsまでスキューを変えてテストする必要があるが、1台目のテストをパスした範囲が、図5に示すように−3ns〜+13nsであある場合、2台目以降の初期スキュー調整値は−12nsから始めずに、例えば−5ns等とすることができる。 For example, when testing by changing the skew from −12 ns to +16 ns, the first unit needs to be tested by changing the skew from −12 ns to +16 ns, but the range that passed the first test is shown in FIG. As shown, the initial skew adjustment value for the second and subsequent units can be set to, for example, -5 ns without starting from -12 ns.
次に、設定した電圧値及びスキュー調整値においてテストを行う。ここでのテストの対象はエミュレータ310自身であり、CPUエバチップ318及び周辺エバチップ313が正常に動作するか否か(OKかNGか)を電圧値とスキュー調整値毎にテストし、結果を記録する(ステップS3)。記録はテストプログラムの中でホストマシン1に、結果を記録するテスト結果のテンポラリファイルを作成してそこへ記録する等すればよい。
Next, a test is performed at the set voltage value and skew adjustment value. The test object here is the emulator 310 itself, tests whether the
テストでは、例えば、CPUコア312と周辺エバチップ313の2チップ間のバス320を動作させるプログラムを動かし期待値との比較を行なう。また、割り込みやメモリアクセスなど実際に機能を動かし動作に問題がないかを確認する。
In the test, for example, a program for operating the
次に、すべてのスキュー調整値に対してテストを実行したか否かを判定する(ステップS4)。なお、全てのスキュー調整値は、2台目以降は限定された範囲のすべてのスキュー設定値となる。全てのスキュー調整値についてテストを行ってない場合は、スキュー調整値を変化させ(ステップS5)、ステップS3に戻る。 Next, it is determined whether or not a test has been executed for all skew adjustment values (step S4). Note that all skew adjustment values are all skew setting values in a limited range for the second and subsequent units. When all the skew adjustment values have not been tested, the skew adjustment values are changed (step S5), and the process returns to step S3.
全てのスキュー調整値についてテストを行った場合は、テスト結果を記録したファイルから、テストをパスしたスキュー設定値の中央値を一番マージンが大きくなるスキュー調整値として求める。図5(a)、図5(b)の結果例のようにそれぞれの電圧範囲で、パスしたスキュー調整値の中央値を一番マージンがあるスキュー調整値として求める。そして、そのスキュー調整値をその測定電圧値でのスキュー調整値として、ホストマシンに別途テンポラリファイルを作成して記録する。(ステップS6)。 When all the skew adjustment values have been tested, the median value of the skew setting values that have passed the test is obtained as the skew adjustment value with the largest margin from the file in which the test results are recorded. As in the example of the results shown in FIGS. 5A and 5B, the median value of the passed skew adjustment values is obtained as the skew adjustment value having the most margin in each voltage range. Then, a temporary file is separately created and recorded in the host machine using the skew adjustment value as the skew adjustment value at the measured voltage value. (Step S6).
そして、すべての測定電圧値に対してテストを行ったかどうか判定し(ステップS7)、行ってない場合は電圧値を変化させ(ステップS8)ステップS2に戻る。全ての電圧値に対してテストを行なった場合は、ホストマシン1からエミュレータ310上のテーブルブロックへ各電圧ごとのスキューを最適にするスキュー調整値を書き込み(ステップS9)、終了する。このように、任意の動作範囲の電圧において遅延値を変化させ、CPUエバチップ318及び周辺エバチップ313が正常に動作するか否かをテストして設定値テーブルを生成し、この設定値テーブルを参照してクロックを生成するため正しい遅延値のクロックでエミュレーションを実行することができる。
Then, it is determined whether or not the test has been performed for all measured voltage values (step S7). If not, the voltage value is changed (step S8), and the process returns to step S2. If all voltage values have been tested, a skew adjustment value that optimizes the skew for each voltage is written from the
図5(a)及び図5(b)は、個体差によるバラつきがあった場合の結果例を示す。図5 (a)は、100MHzで測定した第1の例である。スキュー調整値は、テーブルのデータ格納可能範囲と、本実施の形態にかかるエミュレータ310において、必要とする実際のスキュー調整値の精度を考慮し、係数を変更することが可能である。
FIG. 5A and FIG. 5B show examples of results when there are variations due to individual differences. FIG. 5A is a first example measured at 100 MHz. As for the skew adjustment value, the coefficient can be changed in consideration of the accuracy of the actual skew adjustment value required in the data storage range of the table and the
本例においてはスキュー設定値の+1と実際のスキュー調整値の+1nsとが対応している。図5(a)において、例えば、5.0−5.5Vでは、パスするスキュー調整値は−3nsから+6nsの間なので、一番マージンが大きい+1nsのスキュー調整値を最適値とする。また、1.5−2.0Vでは+7nsが最適値となる。100MHzでの測定であるので1周期は10nsであるが、この第1の例においては1周期以上の遅延はなく、上述の特許文献1の位相比較回路でも動作可能である。
In this example, the skew setting value +1 corresponds to the actual skew adjustment value +1 ns. In FIG. 5A, for example, at 5.0-5.5V, the skew adjustment value to be passed is between -3 ns and +6 ns, so the +1 ns skew adjustment value with the largest margin is the optimum value. In addition, at 1.5-2.0 V, +7 ns is the optimum value. Since the measurement is performed at 100 MHz, one period is 10 ns. In this first example, there is no delay of one period or more, and the above-described phase comparison circuit of
図5(b)は、同じく100MHzで測定した第2の例である。本例は、個体差によるバラつきが大きかった場合の結果例であり、遅延量が1周期以上となるため、上述の特許文献1に記載の手法では調整することができない。この第2の例においては、例えば5.0−5.5Vの最適値は−4nsであり、1.5‐2.0Vの最適値は+11nsとなる。すなわち、その差が15nsであり、10ns(1周期)以上になっているが、本実施の形態ではテーブルブロック314にスキュー最適値を格納するので、1周期以上の設定も可能である。よって、上述したように、1周期以上の設定ができないことによるアクセスタイミングのずれを解決することができる。また、図5(a)、図5(b)の例のように個体差がある場合でも、それぞれの個体差に応じた改善を図ることができる。
FIG. 5B is a second example similarly measured at 100 MHz. This example is a result example when the variation due to the individual difference is large, and since the delay amount is one cycle or more, it cannot be adjusted by the method described in
図6は図1のテーブルブロック314に格納されるテーブルの例を示す図である。図6(a)に図5(b)のスキュー調整値結果の一覧を示す。すなわち、図6(a)は、図5(b)のスキュー調整用テーブル作成のための結果におけるユーザ電圧範囲とその際のスキューの最適な設定値との対応表である。ここではスキュー設定値の+1と実際のスキュー調整値の+1nsとが対応している。
FIG. 6 is a diagram showing an example of a table stored in the
図6(a)に図2に示すテーブルブロック314に実際に載せるスキュー調整値テーブルであって、上述の第2の例に対応したものを示している。テーブル形式については、図6(b)に示すように、ユーザの電圧範囲が5.0V以上にあるときは、テーブルブロック(ROM)のアドレス"0000H"のデータをスキュー設定値とするというような関連付けをした設定テーブルとしている。また設定値については16ビットで上位8ビットに−値を、下位8ビットに+値を格納するようにしている。スキュー設定値を読み出す処理が、テーブルブロック(ROM)の直接アドレスに対応させているため、素早くかつ容易にアクセスができるという効果も奏する。
FIG. 6A shows a skew adjustment value table actually placed on the
次にスキュー調整用ブロックの詳細について説明する。図7はスキュー調整用ブロックの詳細を示すブロック図である。スキュー調整用ブロック311は、スキュー設定値分離回路350、スキュー設定値選択回路351、第1CPUコアレジスタ332、第2CPUコアレジスタ333、CPUコアクロック切替回路336、CPUコアクロック切替信号生成回路334、CPUコアレジスタクリア回路335、第1CPUコアクロック選択回路330、及び第2CPUコアクロック選択回路331を有する。更に、第1周辺エバチップレジスタ342、第2周辺エバチップレジスタ343、周辺エバクロック切替回路346、周辺エバクロック切替信号生成回路344、周辺エバチップレジスタクリア回路345、第1周辺エバクロック選択回路340、第2周辺エバクロック選択回路341、及び遅延ゲート321〜324を有する。
Next, details of the skew adjustment block will be described. FIG. 7 is a block diagram showing details of the skew adjustment block. The
ここで、本実施の形態においては、例えば、予め所定の遅延量を有する遅延ゲートを、所望の段数接続し、所望の遅延量のCPUコアクロック401、周辺エバクロック402を生成する。従って図7に示す例においては、遅延ゲートは4つのみ図示しているが、これに限るものではなく、上述の図5に示す場合であれば、−12ns乃至+16ns遅延させたクロックを生成するための段数の遅延ゲートが必要となる。また、製造ばらつき等の影響を考慮し、生成できる遅延量がある程度マージンを有するようにしてもよい。
Here, in the present embodiment, for example, a delay gate having a predetermined delay amount is connected in a desired number of stages, and the
スキュー設定値分離回路350において、スキュー調整値設定信号403を正負信号と絶対値信号に分ける。スキュー設定値選択回路351はスキュー設定値分離回路350の正負信号と絶対値信号を受けて、正負信号が負の場合には第2CPUコアレジスタ333に絶対値信号を、正の場合には第2周辺エバチップレジスタ343に絶対値信号を送る。また絶対値信号を送っていない他方レジスタには、"1"を送るように動作する。
In the skew setting
第2CPUコアレジスタ333はスキュー設定値選択回路351からのデータを格納する。第1CPUコアレジスタ332は第2CPUコアレジスタ333のデータを受け取り格納する。ソースクロック400とそれに直列に接続された遅延ゲート321、322、323、324のそれぞれからの出力は第1CPUコアクロック選択回路330と第2CPUコアクロック選択回路331に入力される。第1CPUコアクロック選択回路330には他にVDDが入力として、第2CPUコアクロック選択回路331には他にGNDが接続されている
The second CPU core register 333 stores data from the skew setting
第1CPUコアレジスタ332の格納データは、CPUコアクロック選択回路330の信号切替信号として入力され、第2CPUコアレジスタ333の格納データは第2CPUコアクロック選択回路331の信号切替信号として入力される。第1CPUコアクロック選択回路330と第2CPUコアクロック選択回路331の出力は、CPUコアレジスタクリア回路335のそれぞれの入力となり、そのCPUコアレジスタクリア回路335の出力は、第1CPUコアレジスタ332のクリア信号となる。
Data stored in the first
第1CPUコアクロック選択回路330と第2CPUコアクロック選択回路331の出力は、CPUコアクロック切替回路336に入力される。第1CPUコアレジスタ332の出力は、CPUコアクロック切替信号生成回路334に入力され、CPUコアクロック切替信号生成回路334の出力はCPUコアクロック切替回路336のクロック切替信号となり、そのCPUコアクロック切替回路336の出力はCPUコアクロック401となる。
Outputs of the first CPU core
第2周辺エバチップレジスタ343はスキュー設定値選択回路351からのデータを格納する。第1周辺エバチップレジスタ342は第2周辺エバチップレジスタ343のデータを受け取り格納する。ソースクロック400とそれに直列に接続された遅延ゲート321、322、323、324のそれぞれからの出力は第1周辺エバクロック選択回路340と第2周辺エバクロック選択回路341に入力される。第1周辺エバクロック選択回路340には他にVDDが入力として、第2周辺エバクロック選択回路341には他にGNDが接続されている
The second peripheral
第1周辺エバチップレジスタ342の格納データは、第1周辺エバクロック選択回路340の信号切替信号として入力され、第2周辺エバチップレジスタ343の格納データは第2周辺エバクロック選択回路341の信号切替信号として入力される。
The data stored in the first peripheral
第1周辺エバクロック選択回路340と第2周辺エバクロック選択回路341の出力は、周辺エバチップレジスタクリア回路345のそれぞれの入力となり、その周辺エバチップレジスタクリア回路345の出力は、第1周辺エバチップレジスタ342のクリア信号となる。第1周辺エバクロック選択回路340と第2周辺エバクロック選択回路341の出力は、周辺エバクロック切替回路346の入力に接続されている。
The outputs of the first peripheral evaluation
第1周辺エバチップレジスタ342の出力は、周辺エバクロック切替信号生成回路344に入力され、周辺エバクロック切替信号生成回路344の出力は周辺エバクロック切替回路346の切替信号となり、その周辺エバクロック切替回路346の出力は周辺エバクロック402となる。
The output of the first peripheral
図8は図7のスキュー調整用ブロック311でのクロックの切り替えのタイミングチャートを示す。ここではCPUコアクロック401が時刻T102において遅延ゲート322の出力から、遅延ゲート324の出力に切り替わる例を示す。例えば、CPUコア312よりも、周辺エバチップ313の動作電圧が大幅に低い場合、CPUコア312の方が速く動作するため、CPUコア312の動作クロックに遅延ゲート322で遅延を付加することにより周辺エバチップ313との動作タイミングを合わせる。そして、この状態から、周辺エバチップ313の電圧がさらに下がることで、CPUコア312の動作クロックにより大きな遅延となる遅延ゲート324に切り替えることでCPUコア312の動作と周辺エバチップ313の同期を合わせる例である。
FIG. 8 is a timing chart of clock switching in the skew adjustment block 311 of FIG. Here, an example is shown in which the
スキュー調整値設定信号403の変化により、スキュー設定値分離回路350とスキュー設定値選択回路351が動作し、CPUコアクロックの切替信号であるスキュー設定値を第2CPUコアレジスタ333に与える。そして、時刻T100において、スキュー調整値設定信号403から得られた第2CPUコアレジスタ333の格納データは0010H(遅延信号411選択信号)であり、遅延信号411を選択しているため、第2CPUコアクロック選択回路331の出力は遅延信号411が出力されている。
In response to the change in the skew adjustment
第1CPUコアレジスタ332のデータはCPUコアレジスタクリア回路335により、クリアされているため0000Hが出力され、第1CPUコアクロック選択回路330の出力は0000H選択時のVDDが出力され、出力信号423としてHiが出力されている。
Since the data in the first
第1CPUコアレジスタ332は0000Hのため、CPUコアクロック切替信号生成回路334はLowとなり、第2CPUコアクロック選択回路331が選択され、CPUコアクロック401には遅延信号411が出力されている。
Since the first
時刻T101において、第2CPUコアレジスタ333のデータは0101H(遅延信号413の選択信号)に変化する。第2CPUコアレジスタ333の前のデータである0010H(遅延信号411の選択信号)は第1CPUコアレジスタ332へ転送される。そのため、第2CPUコアクロック選択回路331は遅延信号413を出力し、第1CPUコアクロック選択回路330は遅延信号411を出力する。
At time T101, the data in the second CPU core register 333 changes to 0101H (selection signal for the delay signal 413). 0010H (selection signal of the delay signal 411) that is data before the second
CPUコアクロック切替信号生成回路334は第1CPUコアレジスタ332が0ではないため、Hi出力となり、CPUコアクロック切替回路336は第1CPUコアクロック選択回路330の出力信号423を選択し、出力の遅延信号411がCPUコアクロック401に出力される。
Since the first
時刻T102において、第1CPUコアクロック選択回路330と第2CPUコアクロック選択回路331の出力信号である遅延信号411と遅延信号413が共に同一論理レベルであるLowのタイミングで、CPUコアレジスタクリア回路335の出力がHiとなり、第1CPUコアレジスタ332のデータがクリアされる。そのためCPUコアクロック切替信号生成回路334がLowになり、CPUコアクロック切替回路336が出力信号を遅延信号411から、遅延信号413へ切り替えることにより、CPUコアクロックは遅延信号413となる。
At time T102, the
以上述べたように、ここでは、時刻T101のタイミングでスキュー設定値信号403が変化するが、CPUコアクロック401の切り替えは時刻T102で行なう。このように、CPUコアクロック401の切り替えの前後の信号が共にLow位相となるようなタイミングで信号を切り替える。すなわち、時刻T102前のタイミングで第1CPUコアクロック選択回路330のクロック信号423はLowレベルであり、時刻T102後のタイミングで第2CPUコアクロック選択回路331のクロック信号424はLowレベルであり、時刻T102の前後において、切り替えるクロック信号423、424は共にLowレベルとなっている。このことにより、スキュー切替信号のタイミングに関わらず、変化前後の信号の変化タイミングに同期して、実際の信号を切り替えるため、動作クロックのひげの発生を防止することができ、誤動作を防ぐことができる。
As described above, here, the skew set value signal 403 changes at the time T101, but the
次に、図9はCPUコアクロック401側を遅延させている状況から、周辺エバクロック402側に遅延が入るようにクロックを切り替える時のタイミングチャートを示す。ここではCPUコアクロック401が時刻T202において最初の遅延ゲート322の出力から、遅延なしのスルー出力に切り替わり、周辺エバクロック402が時刻T203において遅延なしのスルー出力から、遅延ゲート323の出力に切り替わる例を示す。
Next, FIG. 9 shows a timing chart when the clock is switched so that the delay enters the
これは、例えば、CPUコア312よりも周辺エバチップ313の動作電圧が低く、CPUコア312の方が速く動作するため、CPUコア312の動作クロックに遅延ゲート322で遅延を付加することにより周辺エバチップ313との動作タイミングを合わせている状態から、周辺エバチップ313の電圧がCPUコア312の電圧よりも上がることで、CPUコア312の動作クロックに遅延が不要になり遅延なしのスルー出力に切り替え、逆に周辺エバチップ313の動作クロックに遅延が必要になり、遅延なしのスルー出力から遅延ゲート323に切り替えることでCPUコア312の動作と周辺エバチップ313の動作を合わせる場合などである。
This is because, for example, the operating voltage of the
スキュー調整値設定信号403の変化により、スキュー設定値分離回路350とスキュー設定値選択回路351が動作し、CPUコアクロック切替信号421となるスキュー設定値を第2CPUコアレジスタ333に与え、また、周辺エバクロック切替信号422に当たるスキュー設定値を周辺エバコアレジスタ343に与える。
In response to a change in the skew adjustment
そして、時間T200においては、スキュー調整値設定信号403が第2CPUコアレジスタ333のデータは0010H(遅延信号411の選択信号)であり、遅延信号411を選択しているため、第2CPUコアクロック選択回路331の出力は遅延信号411が出力されている。
At time T200, since the skew adjustment
また、第2周辺エバコアレジスタ343のデータは0001H(ソースクロック400の選択信号)であり、遅延なしのソースクロック400を選択しているため、第2周辺エバクロック選択回路341の出力はソースクロック400が出力されている。第1CPUコアレジスタ332のデータはCPUコアレジスタクリア回路335により、クリアされているため0000Hが出力され、第1CPUコアクロック選択回路330の出力は0000H選択時のVDDとなり、出力信号423としてHi出力されている。
Further, since the data of the second peripheral
第1CPUコアレジスタ332は0000Hのため、CPUコアクロック切替信号生成回路334は、Lowとなり、第2CPUコアクロック選択回路331が選択され、CPUコアクロック401には遅延信号411が出力されている。また、第1周辺エバチップレジスタ342のデータは周辺エバチップレジスタクリア回路345により、クリアされているため0000Hが出力され、第1周辺エバクロック選択回路340の出力は0000H選択時のVDDとなり、信号ライン433にHi出力されている。
Since the first
第1周辺エバチップレジスタ342は0000Hのため、周辺エバクロック切替信号生成回路344はLowとなり、第2周辺エバクロック回路341が選択され、周辺エバクロック402には、遅延なしのソースクロック400が出力されている。
Since the first peripheral
時間T201において、第2CPUコアレジスタ333のデータは0001H(ソースクロック400の選択信号)に変化する。第2CPUコアレジスタ333の前のデータである0010H(遅延信号411の選択信号)は第1CPUコアレジスタ332へ転送される。そのため、第2CPUコアクロック選択回路331は遅延なしのソースクロック400を出力し、第1CPUコアクロック選択回路330は遅延信号411を出力する。CPUコアクロック切替信号生成回路334は第1CPUコアレジスタ332が0ではないためHi出力となり、CPUコアクロック切替回路336は第1CPUコアクロック選択回路330の出力信号423を選択し、遅延信号411がCPUコアクロック401として出力される。
At time T201, the data in the second CPU core register 333 changes to 0001H (selection signal for the source clock 400). 0010H (selection signal of the delay signal 411) that is data before the second
次に、時刻T201において、第2周辺エバチップレジスタ343のデータは0011H(遅延信号412の選択信号)に変化する。第2周辺エバチップレジスタ343の前のデータである0001H(ソースクロック400の選択信号)は第1周辺エバチップレジスタ342へ転送される。そのため、第2周辺エバクロック選択回路341は遅延信号412を出力し、第1周辺エバクロック選択回路340は遅延なしソースクロック400を出力する。
Next, at time T201, the data in the second peripheral
周辺エバクロック切替信号生成回路344は第1周辺エバチップレジスタ342が0ではないためHi出力となり、周辺エバクロック切替回路346は第1周辺エバクロック選択回路340の出力信号433のラインを選択し、遅延なしソースクロック400が周辺エバクロック402として出力される。
The peripheral evaluation clock switching
そして、時刻T202において、第1CPUコアクロック選択回路330及び第2CPUコアクロック選択回路331の出力信号であるそれぞれ遅延信号411及びソースクロック400が共にLowのタイミングで、CPUコアレジスタクリア回路335の出力がHiとなり、第1CPUコアレジスタ332のデータがクリアされる。そのためCPUコアクロック切替信号生成回路334がLowになり、CPUコアクロック切替回路336が出力信号を遅延信号411から、遅延なしソースクロック400へ切り替えることにより、CPUコアクロックはソースクロック400となる。
At time T202, the
また、時刻T203において、第1周辺エバクロック選択回路340及び第2周辺エバクロック選択回路341の出力信号であるそれぞれ遅延信号412及びソースクロック400が共にLowのタイミングで、周辺エバチップレジスタクリア回路345の出力がHiとなり、第1周辺エバチップレジスタ342のデータがクリアされる。そのため周辺エバクロック切替信号生成回路344がLowになり、周辺エバクロック切替回路346が出力信号を遅延なしソースクロック400から、遅延信号412へ切り替えることにより、周辺エバクロックは遅延信号412となる。
At time T203, the peripheral evaluation chip register
以上述べたように、ここでは時刻T201のタイミングでスキュー設定値信号403が変化するが、CPUコアクロック401の信号の切り替えは切り替え前後の信号が共に同一論理レベルであるLow位相のタイミングT202により信号を変化させる。すなわち、CPUコアクロック401は、時刻T202までは遅延ゲート322の出力411を選択し、時刻T202にソースクロック400を選択するため、時刻T202の前後でいずれもLowレベルとなっている。同様に周辺エバクロック402は時刻T203のタイミングで信号を切り替えるが、切り替え前後の信号が共に同一論理レベルであるLow位相のタイミング(T203)にて信号を変化させる。すなわち、時刻T202までは、ソースクロック400を選択し、T202のタイミングで遅延ゲート323の出力412を選択することで、周辺エバクロック402は、T202のタイミング前後でいずれもLowレベルとなる。このことにより、スキュー切替信号のタイミングに関わらず、変化前後の信号の変化タイミングに同期して、実際の信号を切り替えるため、動作クロックにひげの発生を防止することができ、誤動作を防止することができる。
As described above, here, the skew set value signal 403 changes at the timing of the time T201. However, the switching of the signal of the
従来ではクロックの位相比較で調整値を求めていたため、高周波数で電圧変動幅が広くなった場合に遅延がクロックの周期以上になると適切な遅延量とすることができなくなっていたが、本実施の形態においては予め、動作電圧毎に、CPUエバチップ318及び周辺エバチップ313が最適に動くスキュー調整値をテーブルで保持しているためクロック周期以上の遅延であっても調整可能である。このため動作周波数が変動するシステムでも、1周期以上のクロックスキューを検出し設定できるため、周辺エバチップ313とCPUエバチップ318間で入出力するデータのタイミングが一致し、誤動作することがない。
Previously, the adjustment value was obtained by comparing the clock phase, so when the voltage fluctuation range was wide at high frequencies, the delay could not be set to an appropriate amount if the delay exceeded the clock cycle. In this embodiment, skew adjustment values for optimal movement of the
さらに、本実施の形態においては実際のタイミングスキューを設定電圧毎に組み込んで動作を行うため、従来のように基板上にクロックの経路の違いによる基板上の遅延調整の誤差が生じることがないため、より誤動作の生じないシステムが構築することができる。 Further, in this embodiment, the operation is performed by incorporating the actual timing skew for each set voltage, so that there is no delay adjustment error on the substrate due to the difference in the clock path on the substrate unlike the conventional case. Therefore, a system that does not cause a malfunction can be constructed.
実施の形態2.
次に、本発明の実施の形態2について説明する。実施の形態1のユーザ電圧測定ブロック315を、マイコン(MCU)360のAD機能(AD変換器361)で実現することも可能である。図10は、本実施の形態にかかるエミュレータを示すブロック図である。エミュレータ310は、MCU360を有し、テーブルブロック314はMCU360のROMを使用する。このMCU360はエミュレータ310上に実装しているメインボードとホストマシンのI/Fのコントロール用マイコンを使用することができる。本実施の形態は、MCU360のAD機能が余っている場合に有効である。
Next, a second embodiment of the present invention will be described. The user
この場合、マイコンのテーブルブロック(ROM)314にスキュー調整用のテーブルを書き込んでおいて、AD変換器361でユーザ電圧をモニタする。テーブルからのスキュー設定値を元に、スキュー調整用ブロック311で周辺エバチップ313とCPUコア312の動作クロックを調整する。
In this case, a skew adjustment table is written in the microcomputer table block (ROM) 314, and the
MCU360のプログラムの中で、動作電圧をAD変換する機能を常に動作させ、AD変換終了割り込みの度に定期的にテーブルブロック314へ、また、そのアドレスについては、電圧範囲A(3.0V−2.0V)に対応するアドレスをテーブルブロックの0003H番地に、電圧範囲B(5.5V以上)を対応するアドレスをテーブルブロックの0000H番地にというように予め決めておく。
In the program of the
本実施の形態においても実施の形態1と同様の効果を奏する。実施の形態1における電圧測定ブロックとテーブルブロックを、エミュレータ310とホストマシンのI/Fのコントロール用MCU360で余ったROM、AD変換器、Port又は外部拡張機能で実現することにより、コスト削減を図ることができる。
In the present embodiment, the same effect as in the first embodiment is obtained. The voltage measurement block and the table block in the first embodiment are realized by the remaining ROM, AD converter, Port, or external expansion function in the
さらに、基板上の構成がシンプルになる。さらにまた、MCU360が搭載されていて、そのAD機能が余っていた場合、新たな資源を追加することなく本実施の形態にかかるエミュレータを実現することができる。たとえば図1の全体構成図のようにエミュレータ310とホストマシン1間の通信をコントロールするマイコンがあり、かつそのマイコンの機能が余っている場合は、本実施の形態2で必要なMCU360を兼用して使用できるため、新たなマイコンを実装せずにすみ、コストの削減につながる。
Furthermore, the configuration on the substrate is simplified. Furthermore, when the
実施の形態3.
次に、本発明の実施の形態3について説明する。本実施の形態においては、実施の形態1における電圧測定ブロックを、コンパレータ(アナログIC)を設けて実現する。図11は、実施の形態3にかかるエミュレータを示すブロック図である。実施の形態1でのユーザ電圧測定ブロック315を図11のコンパレータ部363に置き換えてもよい。図12にコンパレータ部363の詳細を示す。スキュー調整を切り替える基準電圧値毎にコンパレータ501〜504を設け、それぞれのコンパレータ501〜504に基準電圧を期待値として、ユーザ電圧を比較対象電圧として入力する。そして、コンパレータ501〜504の出力をデコーダ505に接続する。
Next, a third embodiment of the present invention will be described. In the present embodiment, the voltage measurement block in the first embodiment is realized by providing a comparator (analog IC). FIG. 11 is a block diagram of an emulator according to the third embodiment. The user
各コンパレータ501〜504で基準電圧と比較対象のユーザ電圧と比較して出力される"High"または"LOW"の出力結果をデコーダ505にて、ROMのアドレスにデコードする。デコーダ505以下の動きについては、実施の形態1と同様で、予め求めてテーブルブロック314に格納してあるスキュー調整用テーブルから、スキュー調整値をコンパレータ部363から出力されるアドレスにより選択することで、ユーザの電圧に合ったスキューで動作させることができる。
The decoder 505 decodes the output result of “High” or “LOW”, which is output by comparing each of the
本実施の形態においても、実施の形態1と同様の効果を奏する。さらにコンパレータ部363を使用することにより、電圧検出のスピードがあがり、ユーザの動作によりリアルタイム追従した設定を行うことができる。また、マイコンのAD変換速度min6μSに対して、コンパレータ部363の変換速度は0.3μs〜1μsなのでより、コンパレータ部363を採用した方が電圧変動により速く反応することができる。
Also in this embodiment, the same effects as those of the first embodiment are obtained. Furthermore, by using the
以上、説明したように、CPUエバチップ318が一定電圧で動作しており、周辺エバチップ313の動作電圧が変動する複数チップ構成で、チップ毎にクロックスキューを調整したクロックによって、各チップのプログラムの実行とチップ間データの入出力を行なうエミュレータに対して、次の利点がある。
As described above, the
すなわち、第1に1つの製品で広範囲な電圧範囲でのスキューを調整できるため、ユーザの使用電圧範囲ごとにエミュレータを提供する必要がなくなり、1つのエミュレータで広範囲な電圧範囲に対応できるようになる。 That is, first, since skew can be adjusted in a wide voltage range with one product, it is not necessary to provide an emulator for each user voltage range, and a single emulator can handle a wide voltage range. .
第2に、動作電圧に応じた最適なスキュー調整値を自動的に設定できるため、ユーザは、使用環境を意識することなく、最適なスキューで使用できる。 Second, since the optimum skew adjustment value according to the operating voltage can be automatically set, the user can use the optimum skew without being aware of the use environment.
第3に電圧変動によって、1周期以上のスキューのずれが発生する場合でも正しくスキュー調整することができる。 Third, even when skew deviation of one cycle or more occurs due to voltage fluctuation, skew adjustment can be performed correctly.
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。 It should be noted that the present invention is not limited to the above-described embodiments, and various modifications can be made without departing from the scope of the present invention.
2 ホストコントロールMCU
3 エミュレーションメモリ
4 レベルシフタ
5 ユーザターゲットボード
6 ターゲットI/F
310 エミュレータ
311 スキュー調整用ブロック
312 エバチップ
312 CPUコア
313 周辺エバチップ
314 テーブルブロック
315 ユーザ電圧測定ブロック
316 ユーザ電源電圧供給部
317 クロックジェネレータ
318 CPUエバチップ
320 バス
321〜324 遅延ゲート
330 第1CPUコアクロック選択回路
331 第2CPUコアクロック選択回路
332 第1CPUコアレジスタ
333 第2CPUコアレジスタ
334 CPUコアクロック切替信号生成回路
335 CPUコアレジスタクリア回路
336 CPUコアクロック切替回路
336 コアチップクロック切替回路
340 周辺エバクロック選択回路
340 第1周辺エバクロック選択回路
341 第2周辺エバクロック選択回路
342 第1周辺エバチップレジスタ
343 第2周辺エバチップレジスタ
344 周辺エバクロック切替信号生成回路
345 周辺エバチップレジスタクリア回路
346 周辺エバクロック切替回路
350 スキュー設定値分離回路
351 スキュー設定値選択回路
361 AD変換器
362 デコーダ
363 コンパレータ部
400 ソースクロック
401 CPUコアクロック
402 周辺エバクロック
402 周辺エバクロック
403 スキュー調整値設定信号
404 アドレス出力
405 ユーザ電圧
410〜413 遅延信号
410〜413 遅延ゲート
421 CPUコアクロック切替信号
422 周辺エバクロック切替信号
423 出力信号
501〜504 コンパレータ
505 デコーダ
511〜514 比較回路
2 Host control MCU
3
310
Claims (10)
クロックジェネレータから出力されるソースクロックを入力して、前記CPUコア部に供給される第1の動作クロックと前記周辺部に供給される第2の動作クロックとを生成するスキュー調整部と、
前記周辺部に供給されるユーザ電圧に応じて求められ、前記第1又は前記第2の動作クロックに付加される遅延量を決定するための設定値が格納された設定値テーブルとを有し、
前記スキュー調整部は、前記設定値に基づいて前記第1の動作クロックと前記第2の動作クロック間のスキューを調整するエミュレータ。 An emulator that realizes the operation of the microcomputer including a CPU core part that realizes a CPU function of the microcomputer and a peripheral part that realizes peripheral functions,
A skew adjustment unit that inputs a source clock output from a clock generator and generates a first operation clock supplied to the CPU core unit and a second operation clock supplied to the peripheral unit;
A setting value table that stores a setting value that is obtained according to a user voltage supplied to the peripheral portion and that determines a delay amount to be added to the first or second operation clock;
The skew adjustment unit is an emulator for adjusting a skew between the first operation clock and the second operation clock based on the set value.
ことを特徴とする請求項1記載のエミュレータ。 The skew adjustment unit switches and selects the source clock and a plurality of delay clocks having different delay amounts to generate the first and second operation clocks, and the clocks before and after the switching have the same logic level. The emulator according to claim 1, wherein the source clock or the delay clock is selected at timing.
前記スキュー調整部は、前記ユーザ電圧測定部の測定結果に基づき前記設定値テーブルの前記設定値を選択する
ことを特徴とする請求項1又は2記載のエミュレータ。 A user voltage measurement unit,
The emulator according to claim 1, wherein the skew adjustment unit selects the setting value of the setting value table based on a measurement result of the user voltage measurement unit.
ことを特徴とする請求項3記載のエミュレータ。 The emulator according to claim 3, wherein the user voltage measuring unit is an AD converter that performs analog-digital conversion on a user voltage.
ことを特徴とする請求項3記載のエミュレータ。 The emulator according to claim 3, wherein the user voltage measurement unit is a comparator that compares a plurality of reference voltage values with the user voltage, and measures a voltage range of the user voltage.
ことを特徴とする請求項1乃至5のいずれか1項記載のエミュレータ。 The emulator according to any one of claims 1 to 5, wherein the setting value table is a table including a user voltage range and a setting value for the user voltage range.
ことを特徴とする請求項1乃至6のいずれか1項記載のエミュレータ。 The set value table is obtained by determining whether or not the CPU core unit and the peripheral unit operate normally by changing the delay value at an arbitrary voltage and operating the same. The emulator according to any one of claims 1 to 6.
ことを特徴とする請求項7項記載のエミュレータ。 The emulator according to claim 7, wherein the set value is a value having the largest margin among the delay values in the normal operating range.
ことを特徴とする請求項1乃至8のいずれか1項記載のエミュレータ。 The emulator according to any one of claims 1 to 8, wherein the CPU core unit and the peripheral unit are formed of different chips.
前記ユーザ電圧を測定し、
前記測定した結果に基づいて、前記設定値テーブルから所定の設定値を選択し、
前記選択した所定の設定値に基づいて、前記第1の動作クロックと前記第2の動作クロック間のスキューを調整するエミュレーション方法。 A CPU core unit for realizing a CPU function of a microcomputer and a peripheral unit for realizing a peripheral function, and a first operation clock which is obtained in advance according to a user voltage supplied to the peripheral unit and is supplied to the CPU core unit or An emulation method for emulating the operation of the microcomputer by a setting value table storing a setting value for determining a delay amount added to a second operation clock supplied to the peripheral portion,
Measuring the user voltage;
Based on the measured result, a predetermined set value is selected from the set value table,
An emulation method for adjusting a skew between the first operation clock and the second operation clock based on the selected predetermined setting value.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007131336A JP2008287462A (en) | 2007-05-17 | 2007-05-17 | Emulator and emulation method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007131336A JP2008287462A (en) | 2007-05-17 | 2007-05-17 | Emulator and emulation method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008287462A true JP2008287462A (en) | 2008-11-27 |
Family
ID=40147122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007131336A Pending JP2008287462A (en) | 2007-05-17 | 2007-05-17 | Emulator and emulation method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008287462A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011136212A1 (en) * | 2010-04-27 | 2011-11-03 | 日本電気株式会社 | Logical circuit emulator and control method of logical circuit emulator |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6357809B2 (en) * | 1980-07-11 | 1988-11-14 | Hitachi Ltd | |
JPH06161808A (en) * | 1992-11-26 | 1994-06-10 | Nec Corp | Emulation circuit |
JPH06265597A (en) * | 1993-03-11 | 1994-09-22 | Hitachi Ltd | Test equipment for semiconductor integrated circuit |
JPH09304482A (en) * | 1996-05-21 | 1997-11-28 | Hitachi Ltd | Ic-testing apparatus |
JPH10340204A (en) * | 1997-06-09 | 1998-12-22 | Nec Corp | Micro computer for emulation, and incircuit emulator |
JP2000131390A (en) * | 1998-10-29 | 2000-05-12 | Advantest Corp | Ic-testing device |
-
2007
- 2007-05-17 JP JP2007131336A patent/JP2008287462A/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6357809B2 (en) * | 1980-07-11 | 1988-11-14 | Hitachi Ltd | |
JPH06161808A (en) * | 1992-11-26 | 1994-06-10 | Nec Corp | Emulation circuit |
JPH06265597A (en) * | 1993-03-11 | 1994-09-22 | Hitachi Ltd | Test equipment for semiconductor integrated circuit |
JPH09304482A (en) * | 1996-05-21 | 1997-11-28 | Hitachi Ltd | Ic-testing apparatus |
JPH10340204A (en) * | 1997-06-09 | 1998-12-22 | Nec Corp | Micro computer for emulation, and incircuit emulator |
JP2000131390A (en) * | 1998-10-29 | 2000-05-12 | Advantest Corp | Ic-testing device |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011136212A1 (en) * | 2010-04-27 | 2011-11-03 | 日本電気株式会社 | Logical circuit emulator and control method of logical circuit emulator |
JP5884729B2 (en) * | 2010-04-27 | 2016-03-15 | 日本電気株式会社 | Logic circuit emulator and control method of logic circuit emulator |
US9639639B2 (en) | 2010-04-27 | 2017-05-02 | Nec Corporation | Logic circuit emulator and control method therefor |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8937496B1 (en) | Clock monitor | |
US8402314B2 (en) | Debug registers for halting processor cores after reset or power off | |
US9503058B1 (en) | Relaxation oscillator | |
JP6424271B2 (en) | Semiconductor device | |
EP3664298B1 (en) | Power management system for integrated circuits | |
US8008967B2 (en) | Power supply voltage adjusting device | |
KR100462177B1 (en) | Embedded controller capable of backing up operating states of a peripheral device in the real time | |
US8036874B2 (en) | Software executing device and co-operation method | |
JP2008059300A (en) | Microcomputer | |
JP2008287462A (en) | Emulator and emulation method | |
US8131906B2 (en) | Voltage indicator signal generation system and method | |
US10127126B2 (en) | Rapid system debugging using finite state machines | |
Nunez-Yanez et al. | Run-time power and performance scaling with CPU-FPGA hybrids | |
US8949756B2 (en) | Debug access with programmable return clock | |
US10288496B1 (en) | Ring oscillator for temperature or voltage sensing | |
CN102693197B (en) | Method for calculating minimum unit of read strobe enable fine tuning register of memory controller | |
US20100172201A1 (en) | Semiconductor device having plurality of operation modes | |
US8560907B1 (en) | Debugging external interface | |
Moore et al. | Intra-operation Dynamic Voltage Scaling | |
JP2001319494A (en) | Built-in self-test device for memory circuit | |
US20050192791A1 (en) | Method for emulating an integrated circuit and semiconductor chip for practicing the method | |
TWI857557B (en) | Data receiving method | |
WO2019056192A1 (en) | Method and system for measuring power-on reset time | |
JP2007047008A (en) | Semiconductor test apparatus | |
JP5066189B2 (en) | Test apparatus, test method, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100416 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120501 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120619 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20121016 |