JP2005285092A - Test emulation apparatus - Google Patents
Test emulation apparatus Download PDFInfo
- Publication number
- JP2005285092A JP2005285092A JP2004380598A JP2004380598A JP2005285092A JP 2005285092 A JP2005285092 A JP 2005285092A JP 2004380598 A JP2004380598 A JP 2004380598A JP 2004380598 A JP2004380598 A JP 2004380598A JP 2005285092 A JP2005285092 A JP 2005285092A
- Authority
- JP
- Japan
- Prior art keywords
- test
- module
- unit
- emulation
- bcl
- 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
- Tests Of Electronic Circuits (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
Description
本発明は、試験エミュレート装置に関する。特に本発明は、被試験デバイスに試験信号をそれぞれ供給する、交換可能な複数の試験モジュールを備える試験装置をエミュレートし、被試験デバイスや試験モジュール等の実物を用いることなく試験環境を検証することができる試験エミュレート装置に関する。 The present invention relates to a test emulation apparatus. In particular, the present invention emulates a test apparatus including a plurality of replaceable test modules that respectively supply test signals to the device under test, and verifies the test environment without using actual devices such as the device under test and test modules. It relates to a test emulation device capable of
従来、被試験デバイスや試験装置等の実物を用いることなく試験環境を検証する手段として、特許文献1から5に示す技術が開示されている。
特許文献1は、半導体試験装置の各ハードウェアユニットの機能をエミュレートする各エミュレータユニットと、DUTの機能をエミュレートするデバイスエミュレータと、テストプログラムに基づいて、各エミュレータユニットからテストプログラムの実行に必要なデータを収集する手段と、収集したデータに基づきデバイスエミュレータに試験信号を発生し、デバイスエミュレータからの結果信号を比較して結果を格納するデバイステストエミュレータとを備えるエミュレータを開示する。
特許文献2は、DUTの内部抵抗に依存して変化する電圧値、電流値を的確にシミュレートする半導体シミュレート装置を開示する。
Conventionally, techniques disclosed in
特許文献3は、半導体試験装置の動作をエミュレートするテスタエミュレート手段と、ハードウェア記述言語に基づきDUTをシミュレートするハードウェア記述言語シミュレート手段と、DUTのシミュレート結果に基づいて半導体試験用プログラムのデバッグを行なうデバッグ手段とを備える半導体試験用プログラムデバッグ装置を開示する。
特許文献4は、半導体試験装置の動作をエミュレートする際に、各ピンに対応した波形データを高速に作成することができる半導体試験用プログラムデバッグ装置を開示する。
特許文献5は、アナログ出力端子を備える半導体デバイス用に作成された半導体試験用プログラムの検証を行なうことができる半導体試験用プログラムデバッグ装置を開示する。
上記に示した試験装置のエミュレート装置は、主として試験装置ベンダによって独自に開発されたアーキテクチャによる試験装置を前提とする。一方、将来の試験装置においては、試験装置がオープンアーキテクチャにより実現され、様々なベンダによって開発されたモジュールを組み合わせて試験装置を構成する方式が期待されており、様々なモジュールを混載して使用する試験装置を適切にエミュレートすることができるエミュレート装置を提供することが望ましい。 The above-mentioned emulation apparatus of the test apparatus is premised on a test apparatus based on an architecture originally developed by a test apparatus vendor. On the other hand, in future test equipment, it is expected that the test equipment will be realized by an open architecture, and a system that configures the test equipment by combining modules developed by various vendors is expected. It would be desirable to provide an emulation device that can properly emulate a test device.
そこで本発明は、上記の課題を解決することのできる試験エミュレート装置を提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。 Therefore, an object of the present invention is to provide a test emulation apparatus that can solve the above-described problems. This object is achieved by a combination of features described in the independent claims. The dependent claims define further advantageous specific examples of the present invention.
このような目的を達成するために、本発明の第1の形態によると、試験信号を被試験デバイスにそれぞれ供給する複数の試験モジュールを備える試験装置をエミュレートする試験エミュレート装置であって、異なるサイクル周期に基づく試験信号を生成する前記複数の試験モジュールをエミュレートする複数の試験モジュールエミュレート部と、前記被試験デバイスの試験を制御する制御装置をエミュレートする制御エミュレート部と、前記制御エミュレート部からの指示に基づき、前記複数の試験モジュールエミュレート部のそれぞれが、当該試験モジュールエミュレート部のサイクル時間に対応する試験信号を擬似的に生成すべき試験信号生成タイミングを生成する同期エミュレート部と、前記同期エミュレート部が生成した複数の前記試験信号生成タイミングを、時刻順に整列して順次出力するタイミング整列部と、前記タイミング整列部が出力した一の前記試験信号生成タイミングに対応する前記試験モジュールエミュレート部に、当該一の試験信号生成タイミングに対応するサイクル時間における試験信号を擬似的に生成させるスケジュール部とを備える試験エミュレート装置を提供する。 In order to achieve such an object, according to a first aspect of the present invention, there is provided a test emulation apparatus that emulates a test apparatus including a plurality of test modules that respectively supply test signals to a device under test. A plurality of test module emulating units for emulating the plurality of test modules for generating test signals based on different cycle periods; a control emulating unit for emulating a control device for controlling a test of the device under test; Based on an instruction from the control emulation unit, each of the plurality of test module emulation units generates a test signal generation timing at which a test signal corresponding to the cycle time of the test module emulation unit should be generated in a pseudo manner. A synchronous emulator and a plurality of the generated by the synchronous emulator The test signal generation timing is arranged in the order of time, the timing alignment unit sequentially outputs the test signal generation timing, and the test module emulation unit corresponding to the one test signal generation timing output by the timing alignment unit generates the one test signal. There is provided a test emulation apparatus including a schedule unit that artificially generates a test signal at a cycle time corresponding to timing.
擬似的に生成された前記試験信号に基づいて被試験デバイスの動作をシミュレートする被試験デバイスシミュレート部を更に備えてもよい。 A device under test simulator for simulating the operation of the device under test based on the test signal generated in a pseudo manner may be further provided.
前記同期エミュレート部は、複数の前記試験モジュールエミュレート部のそれぞれが、前記試験信号生成タイミングに対応するサイクル時間における試験信号の生成において擬似的に発生する、前記制御装置に対する割込みを収集する割込み収集タイミングを更に生成し、前記タイミング整列部は、前記複数の試験信号生成タイミング及び複数の前記割込み収集タイミングを時刻順に整列して順次出力し、前記スケジュール部は、タイミング整列部が一の前記割込み収集タイミングを出力した場合に、当該割込み収集タイミングに対応する前記試験モジュールエミュレート部に、当該割込み収集タイミングの直前に当該試験モジュールエミュレート部が試験信号を生成したサイクル時間において擬似的に発生した前記割込みを前記制御エミュレート部に対して通知させてよい。 The synchronous emulator unit collects interrupts for the control device, which are generated in a pseudo manner in the generation of a test signal in a cycle time corresponding to the test signal generation timing by each of the plurality of test module emulator units. The timing alignment unit further generates a collection timing, and the timing alignment unit sequentially outputs the plurality of test signal generation timings and the plurality of interrupt collection timings in time order, and the schedule unit includes the interrupt having one timing alignment unit. When the collection timing is output, the test module emulation unit corresponding to the interrupt collection timing is simulated in the cycle time when the test module emulation unit generates a test signal immediately before the interrupt collection timing. The interrupt is controlled by the control emulator. It may then notify the over preparative portion.
前記複数の試験モジュールエミュレート部のそれぞれは、前記試験信号生成タイミングに対応するサイクル時間における試験信号の生成において、当該サイクル時間中における試験信号の変化タイミングを生成し、当該試験エミュレート装置は、前記複数の試験モジュールエミュレート部により生成された複数の前記変化タイミングを取得し、前記複数の変化タイミングに基づいて、試験信号を時刻順に順次擬似的に変化させる被試験デバイス接続部を更に備えてもよい。 Each of the plurality of test module emulation units generates a test signal change timing during the cycle time in the generation of the test signal in a cycle time corresponding to the test signal generation timing, and the test emulation device includes: The device further includes a device under test connection unit that acquires a plurality of the change timings generated by the plurality of test module emulation units, and that pseudo-changes the test signal sequentially in time order based on the plurality of change timings. Also good.
前記被試験デバイス接続部は、前記複数の試験モジュールエミュレート部から取得した複数の前記変化タイミングを前記タイミング整列部に供給し、前記タイミング整列部は、前記複数の変化タイミング、前記複数の試験信号生成タイミング及び複数の前記割込み収集タイミングを時刻順に整列して順次出力し、前記スケジュール部は、前記タイミング整列部が一の前記変化タイミングを出力した場合に、前記被試験デバイス接続部に、当該変化タイミングに試験信号を擬似的に変化させてもよい。 The device under test connection unit supplies a plurality of the change timings acquired from the plurality of test module emulation units to the timing alignment unit, and the timing alignment unit includes the plurality of change timings and the plurality of test signals. The generation timing and a plurality of the interrupt collection timings are arranged in order of time and sequentially output, and when the timing alignment unit outputs one change timing, the change is made to the device under test connection unit. The test signal may be changed in a pseudo manner at the timing.
前記複数の試験モジュールエミュレート部のそれぞれは、前記試験信号生成タイミングに対応するサイクル時間における試験信号の生成において、当該サイクル時間が終了するサイクル終了タイミングを前記同期エミュレート部に通知し、前記同期エミュレート部は、前記複数の試験モジュールエミュレート部のそれぞれから通知された前記サイクル終了タイミングに基づいて、当該試験モジュールエミュレート部が次のサイクル時間に対応する試験信号を擬似的に生成すべき前記試験信号生成タイミングを生成してもよい。 Each of the plurality of test module emulation units notifies the synchronization emulation unit of a cycle end timing at which the cycle time ends in generating a test signal in a cycle time corresponding to the test signal generation timing, and Based on the cycle end timing notified from each of the plurality of test module emulation units, the emulation unit should generate a test signal corresponding to the next cycle time in a pseudo manner. The test signal generation timing may be generated.
次のサイクル時間に対応する前記試験信号生成タイミングを前記タイミング整列部が出力した場合に、前記スケジュール部は、当該試験信号生成タイミングの直前のサイクル時間における試験信号の生成において、当該試験信号生成タイミングに対応する前記試験モジュールエミュレート部が擬似的に発生した割込みを前記制御エミュレート部に対して通知させてもよい。 When the timing alignment unit outputs the test signal generation timing corresponding to the next cycle time, the schedule unit generates the test signal generation timing in the test signal generation in the cycle time immediately before the test signal generation timing. An interrupt generated by the test module emulator corresponding to the above may be notified to the control emulator.
前記複数の試験モジュールエミュレート部のそれぞれは、当該試験モジュールエミュレート部に対応する試験モジュールエミュレートプログラムをコンピュータで動作させることにより実現され、前記試験モジュールエミュレートプログラムは、前記試験モジュールが前記制御装置から受信する複数のコマンドのそれぞれに対応して設けられ、当該コマンドに対応する前記試験モジュールの動作をエミュレートする複数のハードウェアエミュレート関数と、前記スケジュール部が、前記試験信号生成タイミングに対応するサイクル時間における試験信号を生成させるために用いる制御関数とを有してもよい。 Each of the plurality of test module emulation units is realized by operating a test module emulation program corresponding to the test module emulation unit on a computer, and the test module emulation program is controlled by the test module. A plurality of hardware emulation functions that are provided corresponding to each of a plurality of commands received from the apparatus and emulate the operation of the test module corresponding to the commands, and the schedule unit includes the test signal generation timing. And a control function used to generate a test signal at a corresponding cycle time.
本発明の第2の形態によると、コンピュータを、試験信号を被試験デバイスにそれぞれ供給する複数の試験モジュールを備える試験装置をエミュレートする試験エミュレート装置として機能させるプログラムを記録した記録媒体であって、前記プログラムは、前記コンピュータを、異なるサイクル周期に基づく試験信号を生成する前記複数の試験モジュールをエミュレートする複数の試験モジュールエミュレート部と、前記被試験デバイスの試験を制御する制御装置をエミュレートする制御エミュレート部と、前記制御エミュレート部からの指示に基づき、前記複数の試験モジュールエミュレート部のそれぞれが、当該試験モジュールエミュレート部のサイクル時間に対応する試験信号を擬似的に生成すべき試験信号生成タイミングを生成する同期エミュレート部と、前記同期エミュレート部が生成した複数の前記試験信号生成タイミングを、時刻順に整列して順次出力するタイミング整列部と、前記タイミング整列部が出力した一の前記試験信号生成タイミングに対応する前記試験モジュールエミュレート部に、当該一の試験信号生成タイミングに対応するサイクル時間における試験信号を擬似的に生成させるスケジュール部として機能させる記録媒体を提供する。 According to a second aspect of the present invention, there is provided a recording medium storing a program that causes a computer to function as a test emulation device that emulates a test device including a plurality of test modules that respectively supply test signals to a device under test. The program includes: a plurality of test module emulation units that emulate the plurality of test modules that generate test signals based on different cycle periods; and a control device that controls a test of the device under test. Based on an instruction from the control emulation unit to be emulated and the control emulation unit, each of the plurality of test module emulation units simulates a test signal corresponding to the cycle time of the test module emulation unit. Generate test signal generation timing to be generated A synchronous emulator, a timing alignment unit that outputs the plurality of test signal generation timings generated by the synchronous emulator in time order, and one test signal generation timing output by the timing alignment unit A recording medium is provided that causes the test module emulation unit corresponding to the above to function as a schedule unit that artificially generates a test signal at a cycle time corresponding to the one test signal generation timing.
本発明の第3の形態によると、異なるサイクル周期に基づく試験信号を被試験デバイスにそれぞれ供給する複数の試験モジュールを備える試験装置をエミュレートする試験エミュレート装置において、一の前記試験モジュールをエミュレートする試験モジュールエミュレート装置であって、前記試験エミュレート装置は、前記被試験デバイスの試験を制御する制御装置をエミュレートする制御エミュレート部と、前記制御エミュレート部からの指示に基づき、前記複数の試験モジュールのそれぞれが、当該試験モジュールのサイクル時間に対応する試験信号を擬似的に生成すべき試験信号生成タイミングを生成する同期エミュレート部と、前記同期エミュレート部が生成した複数の前記試験信号生成タイミングを、時刻順に整列して順次出力するタイミング整列部と、前記タイミング整列部が出力した一の前記試験信号生成タイミングに対応する当該試験モジュールエミュレート装置に、当該一の試験信号生成タイミングに対応するサイクル時間における試験信号を擬似的に生成させることを指示するスケジュール部とを備え、当該試験モジュールエミュレート装置は、前記スケジュール部からの指示に基づき、前記一の試験信号生成タイミングに対応するサイクル時間における試験信号を擬似的に生成するパターン発生器エミュレート部を備える試験モジュールエミュレート装置を提供する。 According to a third aspect of the present invention, in a test emulation apparatus that emulates a test apparatus including a plurality of test modules that respectively supply test signals based on different cycle periods to a device under test, the one test module is emulated. A test module emulation device for rating, wherein the test emulation device is based on a control emulator for emulating a control device for controlling a test of the device under test and an instruction from the control emulator. Each of the plurality of test modules generates a test signal generation timing at which a test signal corresponding to the cycle time of the test module should be generated in a pseudo manner, and a plurality of test modules generated by the synchronization emulator The test signal generation timing is sequentially output in time order And a test signal at a cycle time corresponding to the one test signal generation timing to the test module emulation device corresponding to the one test signal generation timing output from the timing alignment unit. The test module emulation apparatus generates a test signal at a cycle time corresponding to the one test signal generation timing in a pseudo manner based on an instruction from the schedule unit. A test module emulation apparatus including a pattern generator emulation unit is provided.
前記一の試験信号生成タイミングに対応するサイクルが終了するサイクル終了タイミングを同期エミュレート部に通知し、前記同期エミュレート部に前記サイクル終了タイミングに基づき当該試験モジュールエミュレート装置が次に試験信号を擬似的に生成すべき前記試験信号生成タイミングを更に生成させる試験モジュールインターフェイスエミュレート部を更に備えてもよい。 The synchronous emulation unit is notified of the cycle end timing at which the cycle corresponding to the one test signal generation timing ends, and the test module emulator device next transmits the test signal to the synchronous emulator based on the cycle end timing. A test module interface emulator for further generating the test signal generation timing to be generated in a pseudo manner may be provided.
本発明の第4の形態によると、異なるサイクル周期に基づく試験信号を被試験デバイスにそれぞれ供給する複数の試験モジュールを備える試験装置をエミュレートする試験エミュレート装置において、コンピュータを、一の前記試験モジュールをエミュレートする試験モジュールエミュレート装置として機能させるプログラムを記録した記録媒体であって、前記試験エミュレート装置は、前記被試験デバイスの試験を制御する制御装置をエミュレートする制御エミュレート部と、前記制御エミュレート部からの指示に基づき、前記複数の試験モジュールのそれぞれが、当該試験モジュールのサイクル時間に対応する試験信号を擬似的に生成すべき試験信号生成タイミングを生成する同期エミュレート部と、前記同期エミュレート部が生成した複数の前記試験信号生成タイミングを、時刻順に整列して順次出力するタイミング整列部と、前記タイミング整列部が出力した一の前記試験信号生成タイミングに対応する当該試験モジュールエミュレート装置に、当該一の試験信号生成タイミングに対応するサイクル時間における試験信号を擬似的に生成させることを指示するスケジュール部とを備え、前記プログラムは、前記コンピュータを、前記スケジュール部からの指示に基づき、前記一の試験信号生成タイミングに対応するサイクル時間における試験信号を擬似的に生成するパターン発生器エミュレート部として機能させる記録媒体を提供する。 According to a fourth aspect of the present invention, in a test emulation apparatus that emulates a test apparatus that includes a plurality of test modules that respectively supply test signals based on different cycle periods to a device under test, A recording medium that records a program that functions as a test module emulation device that emulates a module, the test emulation device comprising: a control emulation unit that emulates a control device that controls a test of the device under test; Based on an instruction from the control emulator, a synchronous emulator that generates a test signal generation timing at which each of the plurality of test modules should generate a test signal corresponding to the cycle time of the test module in a pseudo manner And generated by the synchronous emulation unit A plurality of test signal generation timings arranged in time order and sequentially output, and the test module emulation device corresponding to the one test signal generation timing output by the timing alignment unit. A schedule unit that instructs to artificially generate a test signal at a cycle time corresponding to a test signal generation timing, and the program causes the computer to execute the one test signal based on an instruction from the schedule unit. Provided is a recording medium that functions as a pattern generator emulation unit that artificially generates a test signal in a cycle time corresponding to generation timing.
本発明の第5の形態によると、試験信号を被試験デバイスに供給する試験モジュールを備える試験装置であって、前記被試験デバイスの試験を制御する制御装置と、サイクル周期に基づき試験信号を生成する試験モジュールと、前記試験モジュールをエミュレートする試験モジュールエミュレート部とを備え、前記制御装置は、前記被試験デバイスの実試験又は擬似試験のいずれを行うかの指示を入力し、前記被試験デバイスの実試験を行う指示を受けた場合に、前記被試験デバイスの試験を行う試験プログラムを前記試験モジュールに供給して、前記試験モジュールにより前記被試験デバイスの試験を行わせ、前記被試験デバイスの擬似試験を行う指示を受けた場合に、前記試験プログラムを前記試験モジュールエミュレート部に供給して、前記試験モジュールエミュレート部により前記被試験デバイスの試験をシミュレートさせる試験装置を提供する。 According to a fifth aspect of the present invention, there is provided a test apparatus including a test module that supplies a test signal to a device under test, the control device controlling the test of the device under test, and generating the test signal based on a cycle period A test module that emulates the test module, and the control device inputs an instruction to perform a real test or a pseudo test on the device under test, and When receiving an instruction to perform an actual test of a device, a test program for testing the device under test is supplied to the test module and the device under test is tested by the test module. The test program is supplied to the test module emulation section when an instruction to perform a pseudo test is received. Providing a test device for simulating a test of the device under test by the test module emulation section.
前記制御装置は、当該制御装置と前記試験モジュールとの間の通信処理を行う通信ソフトウェアを実行し、前記通信ソフトウェアは、前記制御装置と協働して、当該通信ソフトウェアを初期化する呼び出しに含まれる前記指示に基づいて、前記試験プログラムを前記試験モジュール及び前記試験モジュールエミュレート部のいずれに供給するかを判断してもよい。 The control device executes communication software for performing communication processing between the control device and the test module, and the communication software is included in a call for initializing the communication software in cooperation with the control device. It may be determined whether to supply the test program to the test module or the test module emulation unit based on the instruction.
本発明の第6の形態によると、試験信号を被試験デバイスに供給する複数の試験モジュールを備える試験装置をエミュレートする試験エミュレート装置であって、サイクル周期に基づく試験信号を生成する前記複数の試験モジュールをエミュレートする複数の試験モジュールエミュレート部と、前記被試験デバイスの試験を制御する制御装置をエミュレートする制御エミュレート部と、前記複数の試験モジュールエミュレート部のそれぞれが、サイクル時間に対応する試験信号を擬似的に生成すべき試験信号生成タイミングをスケジュールするスケジュール部とを備え、前記試験モジュールエミュレート部は、関数呼び出しにより前記試験信号生成タイミングの通知を受けて、当該試験信号生成タイミングに対応するサイクル時間中における試験信号の電圧の変化を、出力チャネルをエミュレートする出力チャネルオブジェクトの電圧設定メソッドを複数回呼び出すことにより出力し、当該サイクル時間に対応する試験信号の電圧の変化の出力を終えた後に、当該サイクル時間に対応する試験信号の電圧の変化の出力を終えたことを、前記出力チャネルオブジェクトの終了メソッドを呼び出すことにより通知する試験エミュレート装置を提供する。 According to a sixth aspect of the present invention, there is provided a test emulation apparatus for emulating a test apparatus including a plurality of test modules for supplying a test signal to a device under test, wherein the plurality of test generators generate a test signal based on a cycle period. A plurality of test module emulation units that emulate the test module, a control emulation unit that emulates a control device that controls the test of the device under test, and each of the plurality of test module emulation units. A test unit that schedules a test signal generation timing to generate a test signal corresponding to time, and the test module emulation unit receives the notification of the test signal generation timing through a function call, and During the cycle time corresponding to the signal generation timing The test signal voltage change is output by calling the voltage setting method of the output channel object that emulates the output channel multiple times, and after the output of the test signal voltage change corresponding to the cycle time is finished, Provided is a test emulator that notifies the end of output of a change in voltage of a test signal corresponding to a cycle time by calling an end method of the output channel object.
前記スケジュール部は、前記複数の試験モジュールエミュレート部のそれぞれから通知された前記終了メソッドに基づいて、全ての前記試験モジュールエミュレート部が試験信号の電圧の変化の出力を終えた期間を算出し、前記期間内における前記試験信号を取得して、当該試験信号に基づいて被試験デバイスの前記期間内における動作をシミュレートする被試験デバイスシミュレート部を更に備えてもよい。 The schedule unit calculates a period during which all the test module emulation units have finished outputting the change in voltage of the test signal based on the end method notified from each of the plurality of test module emulation units. The device under test may further include a device under test simulating unit that acquires the test signal within the period and simulates the operation of the device under test within the period based on the test signal.
前記出力チャネルオブジェクトは、前記終了メソッドの呼び出しを受けた後に、当該終了メソッドにより通知された、既に試験信号の電圧の変化の出力を終えた期間内の電圧の変化を禁止してもよい。 The output channel object may prohibit the change of the voltage within the period when the output of the change of the voltage of the test signal, which has been notified by the end method, has already been finished after receiving the call of the end method.
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。 The above summary of the invention does not enumerate all the necessary features of the present invention, and sub-combinations of these feature groups can also be the invention.
本発明によれば、様々なモジュールを混載して使用する試験装置を適切にエミュレートすることができる試験エミュレート装置を提供することができる。 ADVANTAGE OF THE INVENTION According to this invention, the test emulation apparatus which can emulate appropriately the test apparatus which mixes and uses various modules can be provided.
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。 Hereinafter, the present invention will be described through embodiments of the invention. However, the following embodiments do not limit the invention according to the scope of claims, and all combinations of features described in the embodiments are included. It is not necessarily essential for the solution of the invention.
図1は、本発明の実施形態に係る試験装置10の構成を示す。試験装置10は、試験信号を生成してDUT100(Device Under Test:被試験デバイス)に供給し、DUT100が試験信号に基づいて動作した結果出力する結果信号が期待値と一致するか否かに基づいてDUT100の良否を判断する。本実施形態に係る試験装置10は、オープンアーキテクチャにより実現され、DUT100に試験信号を供給する試験モジュール170等として、オープンアーキテクチャに基づく各種のモジュールを用いることができる。そして、試験装置10は、DUT100の実試験をエミュレートする試験エミュレート装置190を有し、試験エミュレート装置190により、実試験に用いる試験モジュール170等の変更に対応して適切に構成を変更し、DUT100の実試験を適切にエミュレートするエミュレート環境を提供することができる。
FIG. 1 shows a configuration of a
試験装置10は、システム制御装置110と、通信ネットワーク120と、サイト制御装置130a〜cと、バススイッチ140と、同期モジュール150a〜bと、同期接続モジュール160a〜bと、試験モジュール170a〜bと、ロードボード180と、試験エミュレート装置190とを備え、DUT100a〜bに接続される。
The
システム制御装置110は、試験装置10がDUT100a〜bの試験に用いる試験制御プログラム、試験プログラム、及び試験データ等を外部のネットワーク等を介して受信し、格納する。通信ネットワーク120は、システム制御装置110、サイト制御装置130a〜c、及び試験エミュレート装置190を接続し、これらの間の通信を中継する。
The
サイト制御装置130a〜cは、本発明に係る制御装置の一例であり、DUT100の試験を制御する。ここで、複数のサイト制御装置130は、それぞれ一のDUT100の試験を制御する。例えば、図1においては、サイト制御装置130aはDUT100aの試験を制御し、サイト制御装置130bはDUT100bの試験を制御する。これに代えて、複数のサイト制御装置130は、それぞれ複数のDUT100の試験を制御してもよい。
The
より具体的には、サイト制御装置130は、通信ネットワーク120を介してシステム制御装置110から試験制御プログラムを取得し実行する。次に、サイト制御装置130は、試験制御プログラムに基づいて、当該DUT100の試験に用いる試験プログラム及び試験データをシステム制御装置110から取得し、バススイッチ140を介して当該DUT100の試験に用いる同期モジュール150及び1又は複数の試験モジュール170等のモジュールに格納する。次に、サイト制御装置130は、試験プログラム及び試験データに基づく試験の開始をバススイッチ140を介して同期モジュール150に指示する。そして、サイト制御装置130は、試験が終了したことを示す割込み等を例えば同期モジュール150から受信し、試験結果に基づいて次の試験を各モジュールに行なわせる。
More specifically, the site control device 130 acquires and executes a test control program from the
バススイッチ140は、複数のサイト制御装置130のそれぞれを、当該サイト制御装置130が制御する同期モジュール150及び1又は複数の試験モジュール170に接続し、これらの間の通信を中継する。ここで、予め定められた一のサイト制御装置130は、試験装置10の使用者や試験制御プログラム等の指示に基づいて、複数のサイト制御装置130のそれぞれを、当該サイト制御装置130がDUT100の試験に用いる同期モジュール150及び1以上の試験モジュール170に接続させるべくバススイッチ140を設定してよい。例えば、図1においては、サイト制御装置130aは、同期モジュール150a及び複数の試験モジュール170aに接続する様に設定され、これらを用いてDUT100aの試験を行なう。また、サイト制御装置130bは、同期モジュール150b及び複数の試験モジュール170bに接続する様に設定され、これらを用いてDUT100bの試験を行なう。
The
ここで、サイト制御装置130bが同期モジュール150b、同期接続モジュール160b、及び1又は複数の試験モジュール170bを用いてDUT100bを試験するための構成及び動作は、サイト制御装置130aが同期モジュール150a、同期接続モジュール160a、及び1又は複数の試験モジュール170aを用いてDUT100aを試験するための構成及び動作と略同様であるため、以下相違点を除きサイト制御装置130aがDUT100aを試験するための構成及び動作を中心に説明する。
Here, the configuration and operation for the
同期モジュール150aは、サイト制御装置130aの指示に基づいて、DUT100aの試験に用いる複数の試験モジュール170aが試験信号を生成すべき試験信号生成タイミングを生成する。また、同期モジュール150aは、同期接続モジュール160aを介して1又は複数の試験モジュール170aから試験結果を受信し、試験結果の良否に対応した試験プログラムのシーケンスを1又は複数の試験モジュール170aに実行させる。
The
同期接続モジュール160aは、同期モジュール150aが生成した試験信号生成タイミングを、当該試験信号生成タイミングに対応して動作させるべき試験モジュール170aに通知し、1又は複数の試験モジュール170aのそれぞれを指定したタイミングで動作させる。また、同期接続モジュール160aは、1又は複数の試験モジュール170aから試験結果を受信し、同期モジュール150aに送信する。
The
複数の試験モジュール170aは、DUT100aが有する複数の端子の一部ずつにそれぞれ接続され、サイト制御装置130aにより格納された試験プログラム及び試験データに基づいてDUT100aの試験を行なう。DUT100aの試験において、試験モジュール170aは、試験プログラムにより定められたシーケンスに基づいて試験データから試験信号を生成し、当該試験モジュール170aに接続されたDUT100aの端子に試験信号を供給する。次に、試験モジュール170aは、DUT100aが試験信号に基づいて動作した結果出力する結果信号を取得し、期待値と比較する。そして、試験モジュール170aは、結果信号と期待値との比較結果を、試験結果として同期接続モジュール160aに送信する。ここで複数の試験モジュール170aは、試験プログラム及び試験データに基づいて、試験信号のサイクル周期を動的に変化させるため、異なるサイクル周期に基づいて試験信号を生成する。
The plurality of
また、試験モジュール170aは、試験プログラムの処理が完了した場合や、試験プログラムの実行中に異常が生じた場合等において、サイト制御装置130aに対して割込みを発生する。この割込みは、バススイッチ140を介して当該試験モジュール170aに対応するサイト制御装置130aに通知され、サイト制御装置130aが有するプロセッサにより割込み処理が行われる。
Further, the
ロードボード180は、複数のDUT100を載置し、複数の試験モジュール170を対応するDUT100の端子に接続する。
試験エミュレート装置190は、システム制御装置110に格納された試験制御プログラム、試験プログラム、及び試験データに基づいて試験装置10をエミュレートし、DUT100のシミュレーションモデルを用いてDUT100の試験を擬似的に行なう。本実施形態において、試験エミュレート装置190は、一のサイト制御装置130と、当該サイト制御装置130により制御される同期モジュール150、同期接続モジュール160、及び1又は複数の試験モジュール170と、当該サイト制御装置130による試験対象となるDUT100の動作を擬似的に行なう。試験エミュレート装置190を用いることにより、試験装置10の使用者は、DUT100、同期モジュール150、同期接続モジュール160、及び/又は試験モジュール170等の実物を準備していない段階で、試験制御プログラム、試験プログラム、及び/又は試験データの検証を開始することができる。また、試験エミュレート装置190を複数用意することにより、複数の使用者のそれぞれがより高価な実試験環境を占有することなく、試験制御プログラム、試験プログラム、及び/又は試験データを開発することができる。
The
The
以上において、試験装置10は、オープンアーキテクチャにより実現され、オープンアーキテクチャ規格を満たす各種のモジュールを使用することができる。そして、試験装置10は、同期モジュール150、同期接続モジュール160、及び試験モジュール170等のモジュールを、バススイッチ140が有する任意の接続スロットに挿入して使用することができる。この際、試験装置10の使用者等は、例えばサイト制御装置130aを介してバススイッチ140の接続形態を変更し、DUT100の試験に用いる複数のモジュールを、当該DUT100の試験を制御するサイト制御装置130に接続させることができる。これにより、試験装置10の使用者は、複数のDUT100のそれぞれの端子数、端子の配置、端子の種類、又は試験の種類等に応じて適切なモジュールを選択し、試験装置10に実装することができる。
As described above, the
なお、以上に代えて、同期接続モジュール160a及び同期接続モジュール160bは、試験装置10に用いられる全ての試験モジュール170に共通して設けられた一の同期接続部により実現されてもよい。この場合において、試験装置10の使用者等は、バススイッチ140の接続形態の変更と共に同期接続部と試験モジュール170との接続形態を変更することにより、複数のDUT100の特性に応じて適切なモジュールを選択することができる。
Instead of the above, the
図2は、本発明の実施形態に係る試験エミュレート装置190の機能構成を示す。試験エミュレート装置190は、サイト制御エミュレート部230と、バススイッチエミュレート部240と、同期モジュールエミュレート部250と、同期接続モジュールエミュレート部260と、1又は複数の試験モジュールエミュレート部270と、DUT接続部280と、DUTシミュレート部200と、スケジュール制御部275とを有する。以下、試験エミュレート装置190が、サイト制御装置130aによるDUT100aの試験をエミュレートする場合を例に説明を行なう。
FIG. 2 shows a functional configuration of the
サイト制御エミュレート部230は、図1に示したサイト制御装置130aをエミュレートする。すなわち、サイト制御エミュレート部230は、通信ネットワーク120を介してシステム制御装置110から試験制御プログラムを取得し実行する。次に、サイト制御エミュレート部230は、試験制御プログラムに基づいてDUT100aの試験に用いる試験プログラム及び試験データをシステム制御装置110から取得し、バススイッチエミュレート部240を介して同期モジュールエミュレート部250及び1又は複数の試験モジュールエミュレート部270等のモジュールエミュレート部に格納する。
The site
ここで、サイト制御エミュレート部230は、サイト制御装置130aが同期モジュール150a及び1又は複数の試験モジュール170aに対して発行する、当該モジュール内の記憶領域への読出アクセス、書込アクセス等のコマンドをバススイッチエミュレート部240に対して擬似的に発行する。サイト制御エミュレート部230は、試験プログラム及び試験データの書込アクセスをバススイッチエミュレート部240に対して擬似的に発行することにより、バススイッチエミュレート部240を介して同期モジュールエミュレート部250及び1又は複数の試験モジュールエミュレート部270等に試験プログラム及び試験データを格納してよい。
Here, the site control emulator 230 issues commands such as read access and write access to the storage area in the module issued by the
また、サイト制御エミュレート部230は、同期モジュールエミュレート部250及び試験モジュールエミュレート部270が擬似的に発生する割込みをバススイッチエミュレート部240を介して受信し、サイト制御装置130aの割込み処理を擬似的に実行する。
Further, the site
バススイッチエミュレート部240は、図1に示したバススイッチ140をエミュレートし、サイト制御エミュレート部230と、同期モジュールエミュレート部250及び1又は複数の試験モジュールエミュレート部270との間の通信を中継する。
The bus
同期モジュールエミュレート部250は、図1に示した同期モジュール150をエミュレートし、サイト制御エミュレート部230からの指示に基づき複数の試験モジュールエミュレート部270のそれぞれが、当該試験モジュールエミュレート部270のサイクル時間に対応する試験信号を擬似的に生成すべき試験信号生成タイミングを生成する。次に、同期モジュールエミュレート部250は、試験信号を生成した当該試験モジュールエミュレート部270からサイクル時間の終了タイミングであるサイクル終了タイミングを受信する。そして、同期モジュールエミュレート部250は、サイクル終了タイミングに基づき、当該試験モジュールエミュレート部270が次に試験信号を生成すべき試験信号生成タイミング、当該試験モジュールエミュレート部270から試験結果を収集する試験結果収集タイミング、当該試験モジュールエミュレート部270にサイクル時間の処理を終了させるサイクル終了処理タイミング、及び、当該試験モジュールエミュレート部270からサイト制御エミュレート部230に対する割込みを収集する割込み収集タイミングを生成する。ここで、試験モジュールエミュレート部270からサイト制御エミュレート部230に対する割込みとは、複数の試験モジュールエミュレート部270のそれぞれが、試験信号生成タイミングに対応するサイクル時間における試験信号の生成において擬似的にサイト制御装置130aに対して発生する割込みである。
The synchronization module emulation unit 250 emulates the synchronization module 150 shown in FIG. 1, and each of the plurality of test
同期接続モジュールエミュレート部260は、図1に示した同期接続モジュール160をエミュレートし、同期モジュールエミュレート部250が擬似的に生成した試験信号生成タイミング、及び、同期モジュールエミュレート部250がエミュレーションのために生成した試験結果収集タイミング、サイクル終了処理タイミング、及び割込み収集タイミングをスケジュール制御部275に通知する。また、同期接続モジュールエミュレート部260は、1又は複数の試験モジュールエミュレート部270から試験結果を受信し、同期モジュールエミュレート部250に送信する。
The synchronous connection
試験モジュールエミュレート部270は、試験信号生成の指示を受けた同期モジュールエミュレート部250からサイクル開始の指示を受け、サイト制御エミュレート部230により格納された試験プログラム及び試験データに基づいて、当該試験信号生成タイミングに対応するサイクル時間における試験信号を擬似的に生成する。より具体的には、試験モジュールエミュレート部270は、試験信号生成タイミングに対応するサイクル時間における試験信号の生成において、当該サイクル時間中における試験信号の変化タイミングを擬似的に生成する。ここで、試験モジュールエミュレート部270は、試験信号の変化タイミングとして、当該試験モジュールエミュレート部270に対応する試験モジュール170の仕様により定められた数の変化タイミングを、一のサイクル時間に対応して生成してもよい。また、試験モジュールエミュレート部270は、DUTシミュレート部200が試験信号に基づいて擬似的に動作した結果出力する出力信号を取得し、試験プログラム及び試験データに基づき定められた期待値と比較する。そして、試験モジュールエミュレート部270は、結果信号と期待値との比較結果を、試験結果として同期接続モジュールエミュレート部260を介して同期モジュールエミュレート部250に送信する。
また、試験モジュールエミュレート部270は、スケジュール部277から割込み発生の指示を受けて、割込み発生の指示を受ける前に最後に試験信号を生成したサイクル時間中において擬似的に発生した割込みを、バススイッチエミュレート部240を介してサイト制御エミュレート部230に通知する。
The test
In addition, the test
DUT接続部280は、複数の試験モジュールエミュレート部270により生成された複数の変化タイミングを取得し、複数の変化タイミングに基づいて、試験信号を時刻順に擬似的に変化させる。
The
DUTシミュレート部200は、例えばVerilog−HDLやVHDL等のハードウェア記述言語により記述されたDUT100の動作を、DUT接続部280から取得した試験信号に基づきシミュレートする。そして、DUTシミュレート部200は、DUT100が試験信号に基づいて動作した結果出力する結果信号をシミュレーションにより生成し、DUT接続部280を介して試験モジュールエミュレート部270に供給する。
The
スケジュール制御部275は、同期モジュールエミュレート部250、同期接続モジュールエミュレート部260、複数の試験モジュールエミュレート部270、及びDUT接続部280によるDUT100の擬似的な試験において、これらの複数のモジュールエミュレート部が生成する各種のタイミングに基づいて、それぞれのモジュールエミュレート部を動作させるスケジュールを制御する。スケジュール制御部275は、タイミング整列部276と、スケジュール部277とを含む。
The
タイミング整列部276は、同期モジュールエミュレート部250が生成した複数の試験信号生成タイミング、複数の割込み収集タイミング、複数のサイクル終了処理タイミング、及び複数の試験結果収集タイミングと、1又は複数の試験モジュールエミュレート部270により生成され、DUT接続部280により供給された複数の変化タイミングを、時刻順に整列して順次スケジュール部277に出力する。スケジュール部277は、タイミング整列部276が順次出力するそれぞれのタイミングを、当該タイミングに対応するモジュールエミュレート部やDUT接続部280に通知し、モジュールエミュレート部又はDUT接続部280に当該タイミングに対応する動作を行わせる。以下に、タイミング整列部276が出力したタイミングの種類に応じたスケジュール部277の動作を説明する。
The timing alignment unit 276 includes a plurality of test signal generation timings, a plurality of interrupt collection timings, a plurality of cycle end processing timings, a plurality of test result collection timings generated by the synchronization module emulation unit 250, and one or a plurality of test modules. The plurality of change timings generated by the
(1) タイミング整列部276が試験信号生成タイミングを出力した場合
スケジュール部277は、当該試験信号生成タイミングを同期モジュールエミュレート部250に通知し、当該試験信号生成タイミングに対応する試験モジュールエミュレート部270による試験信号の生成を同期モジュールエミュレート部250を介して指示する。これにより、スケジュール部277は、同期モジュールエミュレート部250を介して、当該試験信号生成タイミングに対応する試験モジュールエミュレート部270に、当該試験信号生成タイミングに対応するサイクル時間における試験信号を擬似的に生成させる。
(1) When the timing alignment unit 276 outputs the test signal generation timing The
(2) タイミング整列部276が割込み収集タイミングを出力した場合
スケジュール部277は、当該割込み収集タイミングに対応して指定された試験モジュールエミュレート部270に割込みの発生を指示する。これにより、スケジュール部277は、当該試験モジュールエミュレート部270に、当該割込み収集タイミングの直前に試験信号を生成したサイクル時間において擬似的に発生した割込みを、バススイッチエミュレート部240を介してサイト制御エミュレート部230に対して通知させる。
(2) When Timing Alignment Unit 276 Outputs Interrupt Collection Timing The
(3) タイミング整列部276がサイクル終了処理タイミングを出力した場合
スケジュール部277は、当該サイクル終了処理タイミングに対応する試験モジュールエミュレート部270に、サイクル終了タイミングが到達したことを通知する。
(3) When the timing alignment unit 276 outputs the cycle end process timing The
(4) タイミング整列部276が試験結果収集タイミングを出力した場合
スケジュール部277は、当該試験結果収集タイミングに対応する試験モジュールエミュレート部270に、試験結果収集タイミングが到達したことを通知する。これを受けて、当該試験モジュールエミュレート部270は、当該サイクル時間における結果信号と期待値との比較結果を同期接続モジュールエミュレート部260を介して同期モジュールエミュレート部250に通知する。
(4) When the timing alignment unit 276 outputs the test result collection timing The
(5) タイミング整列部276が変化タイミングを出力した場合
DUT接続部280は、複数の試験モジュールエミュレート部270から取得した複数の変化タイミングをタイミング整列部276に供給する。これを受けてタイミング整列部276は、複数の変化タイミングと、他の各種タイミングとを合わせて時刻順に整列する。
タイミング整列部276が変化タイミングを出力すると、スケジュール部277は、当該変化タイミングに試験信号を擬似的に変化させるべく、DUT接続部280に変化タイミングが到達したことを通知する。これを受けて、DUT接続部280は、当該変化タイミングに試験信号を擬似的に変化させる。
(5) When Timing Alignment Unit 276 Outputs Change Timing The
When the timing alignment unit 276 outputs the change timing, the
ここで、試験モジュールエミュレート部270は、結果信号を取得すべきタイミングである結果信号取得タイミングをスケジュール制御部275に通知し、他の各種タイミングと併せてタイミング整列部276により時刻順に整列させてもよい。この場合、スケジュール部277は、タイミング整列部276が結果信号取得タイミングを出力した場合に、DUT接続部280に、当該結果信号取得タイミングにおいて、当該結果信号を取得すべき試験モジュールエミュレート部270に結果信号を供給させてもよい。
また、DUT接続部280は、複数の試験モジュールエミュレート部270により生成された複数の変化タイミングを取得し、時刻順に整列することなくDUTシミュレート部200に供給してもよい。この場合、DUTシミュレート部200は、供給された複数の変化タイミングを時刻順に整列し、整列した複数の変化タイミングに基づきDUT100のシミュレーションを行なってよい。
Here, the test
Further, the
以上に示した試験エミュレート装置190によれば、同期モジュールエミュレート部250、同期接続モジュールエミュレート部260、及び1又は複数の試験モジュールエミュレート部270を、試験装置10の実機における同期モジュール150、同期接続モジュール160、及び1又は複数の試験モジュール170にそれぞれ対応して設けることにより、これらのモジュールエミュレート部を他のモジュールエミュレート部に容易と置換することができる。これにより、例えば試験装置10の実機において一のモジュールを他のモジュールに変更した場合に、試験エミュレート装置190において当該一のモジュールに対応するモジュールエミュレート部を、他のモジュールに対応するモジュールエミュレート部に置換し、試験装置10の実機と略同一の試験環境を試験エミュレート装置190上で提供することができる。
According to the
なお、以上に代えて、サイト制御エミュレート部230、バススイッチエミュレート部240、同期モジュールエミュレート部250、試験モジュールエミュレート部270、スケジュール制御部275、DUT接続部280、及びDUTシミュレート部200は、サイト制御装置130等の1台のコンピュータにより実現されてもよく、複数のコンピュータによる分散システムにより実現されてもよい。
Instead of the above, the site
図3は、本発明の実施形態に係る試験エミュレート装置190のハードウェア構成の一例を示す。本実施形態に係る試験エミュレート装置190は、CPU300、ROM310、RAM320、通信インターフェイス330、ハードディスク・ドライブ340、フレキシブルディスク・ドライブ350、及びCD−ROMドライブ360を備えるコンピュータ20により実現される。
FIG. 3 shows an example of a hardware configuration of the
CPU300は、ROM310及びRAM320に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM310は、コンピュータ20の起動時にCPU300が実行するブートプログラムや、コンピュータ20のハードウェアに依存するプログラム等を格納する。RAM320は、CPU300が実行するプログラム及びCPU300が使用するデータ等を格納する。通信インターフェイス330は、通信ネットワークを介して他の装置と通信する。ハードディスク・ドライブ340は、コンピュータ20が使用するプログラム及びデータを格納し、RAM320を介してCPU300に供給する。フレキシブルディスク・ドライブ350は、フレキシブルディスク390からプログラム又はデータを読み取り、RAM320に提供する。CD−ROMドライブ360は、CD−ROM395からプログラム又はデータを読み取り、RAM320に提供する。
The
RAM320を介してCPU300に提供されるプログラムは、フレキシブルディスク390、CD−ROM395、又はICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、RAM320を介してコンピュータ20にインストールされ、コンピュータ20において実行される。
A program provided to the
コンピュータ20にインストールされて実行され、コンピュータ20を試験エミュレート装置190として機能させるプログラムモジュールは、DUTシミュレートモジュールと、サイト制御エミュレートモジュールと、バススイッチエミュレートモジュールと、同期モジュールエミュレートモジュールと、同期接続モジュールエミュレートモジュールと、試験モジュールエミュレートモジュールと、スケジュール制御モジュールと、タイミング整列モジュールと、スケジュールモジュールと、DUT接続モジュールとを含む。これらのプログラム又はモジュールは、コンピュータ20を、DUTシミュレート部200、サイト制御エミュレート部230、バススイッチエミュレート部240、同期モジュールエミュレート部250、同期接続モジュールエミュレート部260、試験モジュールエミュレート部270、スケジュール制御部275、タイミング整列部276、スケジュール部277、及びDUT接続部280としてそれぞれ機能させる。
The program modules that are installed and executed in the
以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク390、CD−ROM395の他に、DVDやPD等の光学記録媒体、MD等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、通信ネットワークを介して外部のネットワークからプログラムをコンピュータ20に提供してもよい。
The program or module shown above may be stored in an external recording medium. As the recording medium, in addition to the
図4は、本発明の実施形態に係る試験モジュールエミュレート部270の機能構成を示す。図4において、試験モジュールエミュレート部270は、当該試験モジュールエミュレート部270に対応する試験モジュールエミュレートプログラム又は試験モジュールエミュレートモジュールをコンピュータ20で動作させることにより実現される。
FIG. 4 shows a functional configuration of the test
試験モジュールエミュレート部270は、試験モジュール170がサイト制御装置130からバススイッチ140を介して受信する複数のコマンドのそれぞれに対応して設けられた複数のハードウェアエミュレート関数と、試験モジュールエミュレート部270に各種のタイミングを通知する目的で呼び出される制御関数とを有し、バススイッチエミュレート部240及びスケジュール制御部275からこれらの関数に対する呼び出しを受けて動作する。ここで、制御関数は、スケジュール制御部275が、試験信号生成タイミングに対応するサイクル時間における試験信号を擬似的に生成させるため、及び、割込み収集タイミングの直前に試験モジュールエミュレート部270が試験信号を生成したサイクル時間において擬似的に発生した割込みをサイト制御エミュレート部230に対して通知させるため等に用いられる。
The test
試験モジュールエミュレート部270は、試験モジュールIFエミュレート部400(試験モジュールインターフェイスエミュレート部)と、パターン発生器エミュレート部430と、波形整形器エミュレート部440と、ピン制御エミュレート部450と、パラメータ測定エミュレート部460とを含む。
The test
試験モジュールIFエミュレート部400は、バススイッチエミュレート部240からハードウェアエミュレート関数の呼び出しを受けた場合、及びスケジュール制御部275から制御関数の呼び出しを受けた場合に起動され、これらの関数呼び出しに対応する試験モジュールエミュレート部270の動作を制御する。試験モジュールIFエミュレート部400は、マシンワードDB420と、制御関数処理部410とを含む。
The test module IF
マシンワードDB420は、試験モジュール170に設けられた記憶領域に格納される記憶領域をエミュレートし、ハードウェアエミュレート関数の呼び出しによりサイト制御エミュレート部230からバススイッチエミュレート部240を介してコマンドを擬似的に受け取った場合に、当該コマンドに対応してマシンワードDB420内の記憶領域をアクセスする。
The
より具体的には、本実施形態に係る試験モジュールIFエミュレート部400は、読出しアクセスや書込みアクセス等の複数のコマンドに対応する試験モジュールエミュレート部270の動作をそれぞれエミュレートする複数のハードウェアエミュレート関数を実装する。バススイッチエミュレート部240を介してサイト制御エミュレート部230から読出しアクセスを受け取ると、試験モジュールIFエミュレート部400は、当該読出しアクセスの対象となる記憶領域に対応するマシンワードDB420内のデータをバススイッチエミュレート部240を介してサイト制御エミュレート部230に返信する。また、書込みアクセスを受け取ると、マシンワードDB420は、当該書込みアクセスの対象となる記憶領域に対応するマシンワードDB420内の記憶領域に、書込み対象のデータを格納する。例えば、マシンワードDB420は、バススイッチエミュレート部240を介してサイト制御エミュレート部230から試験プログラム又は試験データの書込みアクセスを受け取ると、当該書込みアクセスに対応するマシンワードDB420内の記憶領域にこれらの試験プログラム又は試験データを格納する。
More specifically, the test module IF
制御関数処理部410は、スケジュール制御部275から制御関数の呼び出しを受けた場合に、当該制御関数に対応してパターン発生器エミュレート部430、波形整形器エミュレート部440、ピン制御エミュレート部450、及びパラメータ測定エミュレート部460を動作させ、当該制御関数の指示に対応する試験モジュール170の動作をエミュレートする。より具体的には、スケジュール制御部275が制御関数を用いて試験信号生成タイミングに対応するサイクル時間における試験信号の生成を指示すると、制御関数処理部410は、マシンワードDB420に格納された試験プログラム及び試験データのうち、当該サイクル時間中に試験モジュールエミュレート部270が処理すべきプログラム部分及びデータ部分を読み出し、これらのプログラム部分及びデータ部分に対応する処理をパターン発生器エミュレート部430、波形整形器エミュレート部440、ピン制御エミュレート部450、及びパラメータ測定エミュレート部460に行なわせる。
When receiving a control function call from the
パターン発生器エミュレート部430は、試験モジュール170が有するパターン発生器をエミュレートする。すなわち、パターン発生器エミュレート部430は、マシンワードDB420に格納された試験プログラム及び試験データを、例えば関数呼び出しにより制御関数処理部410から受信し格納する。そして、あるサイクル時間について試験信号を生成すべきことを示す指示を、スケジュール制御部275から制御関数処理部410を介して例えば関数呼び出しにより受け取り、当該サイクル時間中に発生すべき試験信号を擬似的に生成する。
The pattern
また、パターン発生器エミュレート部430は、DUTシミュレート部200が試験信号に基づいて動作した結果擬似的に出力する結果信号をDUT接続部280及び波形整形器エミュレート部440を介して取得し、期待値との比較を行なう。
Also, the pattern
波形整形器エミュレート部440は、試験モジュール170が有する波形整形器をエミュレートする。すなわち、波形整形器エミュレート部440は、パターン発生器エミュレート部430から試験信号を受けて、試験信号の波形を擬似的に整形し、DUT接続部280へ出力する。
The waveform
ピン制御エミュレート部450は、試験モジュール170が有するピン制御部をエミュレートする。すなわち、ピン制御エミュレート部450は、試験プログラムに基づいて、波形整形器エミュレート部440及び/又はパラメータ測定エミュレート部460が試験信号を擬似的に出力する各端子に、動作電圧等のパラメータを設定する。
The pin
パラメータ測定エミュレート部460は、試験モジュール170が有するパラメータ測定部をエミュレートする。すなわち例えば、パラメータ測定エミュレート部460は、関数呼び出しにより直流試験(DCパラメトリック試験)の指示を、スケジュール制御部275から制御関数処理部410を介して受け取り、直流試験において当該サイクル時間中に発生すべき試験信号を擬似的に生成する。また、パラメータ測定エミュレート部460は、DUTシミュレート部200が直流試験において試験信号に基づいて動作した結果擬似的に出力する結果信号を取得する。
The parameter
また、制御関数処理部410は、試験信号生成タイミングに対応するサイクル時間における試験信号を試験モジュールエミュレート部270が生成した場合、当該試験信号生成タイミングに対応するサイクルが終了するサイクル終了タイミングを同期モジュールエミュレート部250に通知する。
In addition, when the test
以上において、制御関数処理部410は、試験信号生成タイミングに対応するサイクル時間における試験信号の生成において、当該サイクルが終了するサイクル終了タイミングをスケジュール制御部275を介して同期モジュールエミュレート部250に通知してもよい。これにより、制御関数処理部410は、同期モジュールエミュレート部250に、当該サイクル終了タイミングに基づき試験モジュールエミュレート部270が次に試験信号を擬似的に生成すべき試験信号生成タイミングを更に生成させることができる。
In the above, the control
また、制御関数処理部410は、スケジュール制御部275から割り込み発生の指示を受けた場合、例えば関数呼び出しにより割込み発生の指示をパターン発生器エミュレート部430、波形整形器エミュレート部440、及びピン制御エミュレート部450に送信する。割込み発生の指示を受けたパターン発生器エミュレート部430、波形整形器エミュレート部440、及びピン制御エミュレート部450は、試験モジュールエミュレート部270が試験信号を生成した各サイクル時間のうち、当該割込み収集タイミングの直前のサイクル時間において擬似的に発生した割込みを制御関数処理部410に通知する。制御関数処理部410は、割込みの通知を受けると、例えばバススイッチエミュレート部240が有する割込み通知用のハードウェアエミュレート関数を呼び出すことにより、バススイッチエミュレート部240を介してサイト制御エミュレート部230に割込みを通知する。
In addition, when receiving an instruction for generating an interrupt from the
図5は、本発明の実施形態に係るクラス階層構造500の一例を示す。本実施形態において、同期モジュールエミュレート部250、同期接続モジュールエミュレート部260、及び試験モジュールエミュレート部270等のモジュールエミュレート部を実現するモジュールエミュレートプログラムは、試験装置10のオープンアーキテクチャを擬似的に実現するために定められたモジュールエミュレートプログラムの枠組みであるクラス関数を用いて作成される。
FIG. 5 shows an example of a
シミュレーションコンポーネントクラス510は、モジュールエミュレートプログラムが備えるべき複数のメソッド関数のパラメータや戻り値等の呼び出し規則を、仮想メソッド関数により定義するクラスである。シミュレーションコンポーネントクラス510は、複数の仮想ハードウェアエミュレート関数512と、複数の仮想制御関数514とを有する。
The
ここで、read()は、サイト制御エミュレート部230が読出アクセスコマンドを擬似的に発行する場合に呼び出される、読出アクセスに対応するモジュールの動作をエミュレートするメソッド関数である。write()は、サイト制御エミュレート部230が書込アクセスコマンドを擬似的に発行する場合に呼び出される、書込アクセスに対応するモジュールの動作をエミュレートするメソッド関数である。setBaseAddress()は、試験モジュール170が有する記憶領域のベースアドレスを設定する際にサイト制御装置130が発行するベースアドレス設定コマンドを、サイト制御エミュレート部230が擬似的に発行する場合に呼び出されるメソッド関数である。 Here, read () is a method function that emulates the operation of the module corresponding to read access, which is called when the site control emulator 230 issues a read access command in a pseudo manner. write () is a method function that emulates the operation of the module corresponding to the write access, which is called when the site control emulator 230 issues a write access command in a pseudo manner. setBaseAddress () is a method that is called when the site control emulator 230 issues a base address setting command issued by the site controller 130 when setting the base address of the storage area of the test module 170 in a pseudo manner. It is a function.
registerEvent()は、同期モジュールエミュレート部250からの通知を受けた同期接続モジュールエミュレート部260、試験モジュールエミュレート部270、及びDUT接続部280が、割込み収集タイミング、変化タイミング、及び結果信号取得タイミング等をタイミング整列部276に通知し登録する場合に呼び出されるメソッド関数である。handleEvent()は、試験信号生成タイミング、割込み収集タイミング、変化タイミング、及び結果信号取得タイミングに到達したとき等に、同期モジュールエミュレート部250、同期接続モジュールエミュレート部260、試験モジュールエミュレート部270、及びDUT接続部280にこれらのタイミングに対応する処理を行なわせるためにスケジュール制御部275により呼び出されるメソッド関数である。raiseEvent()は、同期モジュールエミュレート部250、同期接続モジュールエミュレート部260、試験モジュールエミュレート部270、及びDUT接続部280が、タイミングに関わりなく非同期に処理すべきイベントをスケジュール制御部275に通知する場合に呼び出されるメソッド関数である。
registerEvent () is that the synchronous connection
A社モジュールクラス520及びB社モジュールクラス530は、シミュレーションコンポーネントクラス510から派生されたクラスであり、例えばモジュールを提供する製造業者等により提供される、当該製造業者のモジュールが共通して備える共通機能をエミュレートするモジュールエミュレートプログラムである。A社モジュールクラス520及びB社モジュールクラス530は、それぞれ複数の実ハードウェアエミュレート関数522と、複数の実制御関数524とを有する。複数の実ハードウェアエミュレート関数522及び複数の実制御関数524のそれぞれは、複数の仮想ハードウェアエミュレート関数512及び複数の仮想制御関数514のそれぞれに対応して記述され、仮想メソッド関数に対応する実メソッド関数(非仮想メソッド関数)の処理内容を記述したモジュールエミュレートプログラムである。
The company
A社モジュールクラス520及びB社モジュールクラス530は、更に派生したクラスを有してよい。例えば、図5において、B社モジュールクラス530は、デジタル試験モジュールクラス540、電源モジュールクラス560、及び同期モジュールクラス590に更に派生される。
The company
デジタル試験モジュールクラス540は、DUT100の機能試験を行なう試験モジュール170をエミュレートする試験モジュールエミュレートプログラムのクラスである。デジタル試験モジュールクラス540は、250MHzで動作してDUT100の機能試験を行なう試験モジュール170をエミュレートする250MHzデジタル試験モジュールクラス550に更に派生される。電源モジュールクラス560は、DUT100に電源を供給するモジュールをエミュレートするモジュールエミュレートプログラムのクラスである。電源モジュールクラス560は、DUT100に高電圧電源を供給するモジュールをエミュレートする高電圧電源モジュールクラス570と、DUT100に低電圧電源を供給するモジュールをエミュレートする低電圧電源モジュールクラス580とに更に派生される。同期モジュールクラス590は、同期モジュール150をエミュレートするモジュールエミュレートプログラムのクラスである。
The digital
250MHzデジタル試験モジュールクラス550、高電圧電源モジュールクラス570、低電圧電源モジュールクラス580、及び同期モジュールクラス590のそれぞれは、B社モジュールクラス530に含まれるhandleEvent()を置き換えて(オーバーライドして)使用される、それぞれのモジュールの独自機能をエミュレートする実メソッド関数handleEvent()を含む。
Each of 250 MHz digital
試験エミュレート装置190が有する同期モジュールエミュレート部250、同期接続モジュールエミュレート部260、及び1又は複数の試験モジュールエミュレート部270等は、クラス階層構造500に含まれるモジュールエミュレートプログラムのクラスのいずれかのインスタンスとして実現されてよい。
The synchronization module emulation unit 250, the synchronization connection
以上に示した通り、試験エミュレート装置190が有する同期モジュールエミュレート部250、同期接続モジュールエミュレート部260、及び試験モジュールエミュレート部270等のモジュールエミュレート部は、例えばクラス階層構造500に含まれるいずれかのクラスに対応するモジュールエミュレートプログラムにより実現される。試験エミュレート装置190の使用者は、例えば試験装置10の実機に実装されるべきモジュールの組合せに対応するクラスの組合せからモジュールエミュレートプログラムのインスタンスを生成することにより、試験装置10の実機と略同一の試験環境を試験エミュレート装置190上で構築することができる。また、新たなモジュールに対応する新たなクラスを作成する場合においても、新たなクラスをいずれかのクラスの派生クラスとして作成することにより、モジュールエミュレートプログラムの作成工数を低減することができる。
As described above, module emulation units such as the synchronization module emulation unit 250, the synchronization connection
図6は、本発明の実施形態に係る試験エミュレート装置190の試験信号生成処理フローを、一の試験モジュールエミュレート部270により試験を行なう場合について示す。
FIG. 6 shows a test signal generation process flow of the
試験プログラム及び試験データが同期モジュールエミュレート部250、同期接続モジュールエミュレート部260、及び1又は複数の試験モジュールエミュレート部270に格納された状態で、サイト制御エミュレート部230が試験の開始を同期モジュールエミュレート部250に指示すると、試験エミュレート装置190は以下に示す手順で擬似的に試験を行なう。
With the test program and test data stored in the synchronous module emulation unit 250, the synchronous connection
まず、スケジュール制御部275(図中SCHED)中のスケジュール部277は、タイミング整列部276が試験信号生成タイミングを出力した場合に、同期モジュールエミュレート部250(図中SYNC)のhandleEvent()関数を呼び出し、試験信号生成タイミングに至ったことを通知する(S600)。これにより、スケジュール制御部275は、同期モジュールエミュレート部250を介して、試験信号生成タイミングに対応する試験モジュールエミュレート部270に、当該試験信号生成タイミングに対応するサイクル時間における試験信号を擬似的に生成させる。ここで、スケジュール制御部275は、対応する試験モジュールエミュレート部270の試験信号生成タイミングに至ったことを示すイベント識別子をhandleEvent()関数のパラメータに含めることにより、試験信号生成タイミングを同期モジュールエミュレート部250に通知してもよい。
First, the
次に、同期モジュールエミュレート部250は、当該試験信号生成タイミングにおいて試験信号を擬似的に生成すべき試験モジュールエミュレート部270(図中TM)に対して、サイクル時間の処理を開始し試験信号を生成させる指示であるサイクル開始を通知する(S605)。ここで、同期モジュールエミュレート部250は、サイクル開始を指示するイベント識別子をraiseEvent()関数のパラメータに含めてスケジュール制御部275を呼び出すことにより、タイミング整列部276が時刻順に整列したタイミングと非同期にスケジュール制御部275を介して試験モジュールエミュレート部270にサイクル開始を通知してよい。
Next, the synchronization module emulation unit 250 starts processing of the cycle time for the test module emulation unit 270 (TM in the figure) that should generate a test signal in a pseudo manner at the test signal generation timing. Is notified of the start of the cycle, which is an instruction to generate the (S605). Here, the synchronous module emulation unit 250 calls the
次に、試験モジュールエミュレート部270は、サイクル開始の通知を受けて、対応するサイクル時間における試験信号を擬似的に発生する(S610)。すなわち、S600においてスケジュール制御部275が試験信号生成タイミングに対応するサイクル時間における試験信号を擬似的に発生させるべく同期モジュールエミュレート部250に試験信号生成タイミングを通知し、この通知を受けた同期モジュールエミュレート部250がスケジュール制御部275を介して試験モジュールエミュレート部270にサイクル開始を通知することにより、試験モジュールエミュレート部270は、当該サイクル時間における試験信号を擬似的に発生する。ここで、試験モジュールエミュレート部270は、当該サイクル時間における試験信号の生成において、当該サイクル時間中における試験信号の変化タイミングを擬似的に生成する。
Next, the test
次に、DUT接続部280(図中LB)は、試験モジュールエミュレート部270から試験信号の変化タイミングを受けて、変化タイミングをタイミング整列部276に通知し登録する(S615)。
Next, the DUT connection unit 280 (LB in the drawing) receives the change timing of the test signal from the test
次に、試験モジュールエミュレート部270は、当該サイクルを終了するタイミングを同期モジュールエミュレート部250に通知する(S620)。ここで、試験モジュールエミュレート部270は、試験プログラム及び試験データによる指定に基づき、各サイクル時間を動的に変更しつつパターン発生器エミュレート部430により試験信号を生成する。このため、試験モジュールエミュレート部270における試験モジュールIFエミュレート部400内の制御関数処理部410は、各サイクルの終了するタイミングをパターン発生器エミュレート部430から取得して同期モジュールエミュレート部250に通知し、同期モジュールエミュレート部250が次の試験信号生成タイミングを正しく生成できるようにする。
Next, the test
次に、同期モジュールエミュレート部250は、S620において試験モジュールエミュレート部270から通知されたサイクル終了タイミングに基づいて、試験モジュールエミュレート部270が次のサイクル時間に対応する試験信号を擬似的に生成すべき試験信号生成タイミングを生成し、タイミング整列部276に通知して登録する(S625)。また、同期モジュールエミュレート部250は、試験モジュールエミュレート部270から試験結果を収集する試験結果収集タイミング、試験モジュールエミュレート部270の当該サイクル時間を終了させるサイクル終了処理タイミング、当該サイクル時間における試験信号の生成において試験モジュールエミュレート部270が擬似的に発生した割込みを収集する割込み収集タイミングを更に生成し、タイミング整列部276に通知して登録する(S625)。ここで、同期モジュールエミュレート部250は、スケジュール制御部275のregisterEvent()関数を呼び出すことにより、これらのタイミングをタイミング整列部276に登録してよい。
Next, based on the cycle end timing notified from the test
なお、同期モジュールエミュレート部250は、試験モジュールエミュレート部270から受信したサイクル終了タイミングと略同一のタイミングを、当該試験モジュールエミュレート部270における次の試験信号生成タイミング、試験結果収集タイミング、サイクル終了処理タイミング、及び割り込み収集タイミングとして生成してもよい。
The synchronization module emulation unit 250 uses substantially the same timing as the cycle end timing received from the test
次に、タイミング整列部276がS615において登録された変化タイミングを出力すると、スケジュール部277は、当該変化タイミングに試験信号を擬似的に変化させるべく、DUT接続部280に変化タイミングが到達したことを通知する(S630)。
Next, when the timing alignment unit 276 outputs the change timing registered in S615, the
次に、スケジュール部277から変化タイミングの通知を受けると、DUT接続部280は、当該変化タイミングに試験信号を擬似的に変化させることにより試験信号を生成し、DUTシミュレート部200に供給する(S635)。DUTシミュレート部200は、DUT接続部280から取得した試験信号に基づきDUT100の動作をシミュレートする。そして、DUTシミュレート部200は、DUT100が試験信号に基づいて動作した結果出力する結果信号を擬似的に生成し、DUT接続部280を介して試験モジュールエミュレート部270に供給する。試験モジュールエミュレート部270は、結果信号と期待値とを比較し、比較結果を得る。
Next, when the notification of the change timing is received from the
次に、タイミング整列部276がS625において登録された試験結果収集タイミングを出力すると、スケジュール部277は、DUTシミュレート部200から試験モジュールエミュレート部270に供給された結果信号に基づく結果の良否を収集するべく、試験モジュールエミュレート部270に試験結果収集タイミングが到達したことを通知する(S640)。試験結果収集タイミングの通知を受けると、試験モジュールエミュレート部270は、当該サイクル時間における結果信号と期待値との比較結果を、同期接続モジュールエミュレート部260を介して同期モジュールエミュレート部250に通知する。同期モジュールエミュレート部250は、各試験モジュールエミュレート部270から収集した比較結果に基づき試験結果の良否(パス又はフェイル)を判定し、試験結果の良否を各試験モジュールエミュレート部270に配信することにより通知する(S645)。複数の試験モジュールエミュレート部270に供給される試験プログラム及び試験データは、この試験結果の良否に基づいて、当該サイクル時間以降に行なう試験のシーケンスを変更するように記述されていてもよい。
Next, when the timing alignment unit 276 outputs the test result collection timing registered in S625, the
次に、タイミング整列部276がS625において登録されたサイクル終了処理タイミングを出力すると、スケジュール部277は、試験モジュールエミュレート部270にサイクルを終了させるタイミングが到達したことを通知する(S650)。
Next, when the timing alignment unit 276 outputs the cycle end processing timing registered in S625, the
次に、タイミング整列部276がS625において登録された割込み収集タイミングを出力すると、スケジュール部277は、試験モジュールエミュレート部270に割込み収集タイミングが到達したことを通知する(S655)。割込み収集タイミングの通知を受けると、試験モジュールエミュレート部270は、当該割込み収集タイミングの直前に試験モジュールエミュレート部270が試験信号を生成したサイクル時間において擬似的に発生した割込みを、バススイッチエミュレート部240を介してサイト制御エミュレート部230に対して擬似的に通知する。
Next, when the timing alignment unit 276 outputs the interrupt collection timing registered in S625, the
試験エミュレート装置190は、上記のS600からS655に示した処理を、試験が終了するまで繰り返す(S660)。
The
なお、複数の試験モジュールエミュレート部270により試験を行なう場合、スケジュール制御部275は、これらの複数の試験モジュールエミュレート部270のそれぞれが動作すべきタイミングを時刻順に整列し、スケジュールする。このため、複数の試験モジュールエミュレート部270についてのS600、S630、S640、S650、及びS655は、時刻順に整列された順序で実行される。
When a test is performed by a plurality of test
図7は、本発明の実施形態に係る試験エミュレート装置190により擬似的に生成される試験信号の一例を示す。本図において、試験エミュレート装置190は、試験モジュールエミュレート部270として、試験モジュールAをエミュレートする試験モジュールエミュレート部270aと、試験モジュールBをエミュレートする試験モジュールエミュレート部270bとを含む。
FIG. 7 shows an example of a test signal generated in a pseudo manner by the
まず、時刻t1以前において、タイミング整列部276は、試験モジュールエミュレート部270aの試験信号生成タイミングt1と、試験モジュールエミュレート部270bの試験信号生成タイミングt2とを登録しており、これらを時刻順に整列して出力する結果、まず試験信号生成タイミングt1を出力する。これを受けて、スケジュール部277は、時刻をt1に進めると共に、試験信号生成タイミングt1に至ったことを同期モジュールエミュレート部250に通知する。
First, before time t1, the timing alignment unit 276 registers the test signal generation timing t1 of the test module emulation unit 270a and the test signal generation timing t2 of the test module emulation unit 270b, and these are registered in time order. As a result of alignment and output, first, a test signal generation timing t1 is output. In response to this, the
試験信号生成タイミングt1の通知を受けると、同期モジュールエミュレート部250は、同期接続モジュールエミュレート部260及び試験モジュールエミュレート部270を介して、試験信号生成タイミングt1に対応する試験モジュールエミュレート部270aにサイクル開始を通知する。これを受けて、試験モジュールエミュレート部270aは、図中サイクル1と示したサイクル時間における試験信号を擬似的に発生する。ここで、試験モジュールエミュレート部270aは、当該サイクル時間中の変化タイミングt4において試験信号がHレベルに変化することを、DUT接続部280に通知する。これを受けて、DUT接続部280は、変化タイミングt4をタイミング整列部276に登録する。
Upon receiving the notification of the test signal generation timing t1, the synchronization module emulation section 250, via the synchronization connection
次に、試験モジュールエミュレート部270aは、サイクル1における試験信号の生成を終えると、サイクル1のサイクル終了タイミングt6を同期モジュールエミュレート部250に通知する。これを受けて、同期モジュールエミュレート部250は、サイクル終了タイミングt6に基づき、次の試験信号生成タイミングt6、試験結果収集タイミングt6−Δ、サイクル終了処理タイミングt6−Δ、及び割り込み収集タイミングt6−Δを生成し、タイミング整列部276に登録する。ここで、t6−Δは、次の試験信号生成タイミングt6の微小時間前であることを示す。
Next, when the test module emulation unit 270a finishes generating the test signal in
次に、タイミング整列部276は、登録されたタイミングを時刻順に整列し、試験信号生成タイミングt2を出力する。これを受けて、スケジュール部277は、時刻をt2に進めると共に、試験信号生成タイミングt2に至ったことを同期モジュールエミュレート部250に通知する。
Next, the timing alignment unit 276 aligns the registered timings in time order, and outputs a test signal generation timing t2. In response, the
試験信号生成タイミングt2の通知を受けると、同期モジュールエミュレート部250は、試験信号生成タイミングt2に対応する試験モジュールエミュレート部270bに、スケジュール制御部275を介してサイクル開始を通知する。これを受けて、試験モジュールエミュレート部270bは、試験モジュールエミュレート部270bのサイクル1における試験信号を擬似的に発生する。この結果、試験モジュールエミュレート部270bは、試験信号の変化タイミングt3及びt5を生成し、DUT接続部280はこれらの変化タイミングをタイミング整列部276に登録する。
Upon receiving the notification of the test signal generation timing t2, the synchronization module emulation unit 250 notifies the test module emulation unit 270b corresponding to the test signal generation timing t2 of the cycle start via the
次に、試験モジュールエミュレート部270bは、サイクル1における試験信号の生成を終えると、サイクル1のサイクル終了タイミングt7を同期モジュールエミュレート部250に通知する。これを受けて、同期モジュールエミュレート部250は、サイクル終了タイミングt7に基づき、次の試験信号生成タイミングt7、試験結果収集タイミングt7−Δ、サイクル終了処理タイミングt7―Δ、及び割り込み収集タイミングt7−Δを生成し、タイミング整列部276に登録する。
Next, when the test module emulation unit 270b finishes generating the test signal in the
次に、タイミング整列部276は、登録されたタイミングを時刻順に整列し、変化タイミングt3、t4、t5を順次出力する。これらの変化タイミングのそれぞれを受けて、スケジュール部277は、変化タイミングをDUT接続部280に通知する。この結果、DUT接続部280は、当該変化タイミングに試験信号を擬似的に変化させ、DUTシミュレート部200に供給する。
Next, the timing alignment unit 276 aligns the registered timings in time order, and sequentially outputs the change timings t3, t4, and t5. In response to each of these change timings, the
次に、タイミング整列部276は、試験結果収集タイミングt6−Δを出力する。これを受けて、スケジュール部277は、時刻をt6−Δに進めると共に、試験モジュールエミュレート部270aに試験結果収集タイミングt6―Δを通知する。この結果、試験モジュールエミュレート部270a及び同期モジュールエミュレート部250の間で試験結果の収集及び配信を行なう。
Next, the timing alignment unit 276 outputs the test result collection timing t6-Δ. In response, the
次に、タイミング整列部276は、サイクル終了処理タイミングt6−Δを出力する。これを受けて、スケジュール部277は、試験モジュールエミュレート部270aにサイクル1の終了を通知する。
Next, the timing alignment unit 276 outputs cycle end processing timing t6-Δ. In response to this, the
次に、タイミング整列部276は、割込み収集タイミングt6−Δを出力する。これを受けて、スケジュール部277は、試験モジュールエミュレート部270aに割込み収集タイミングt6−Δを通知する。この結果、試験モジュールエミュレート部270aは、サイクル1において擬似的に発生した割込みをサイト制御エミュレート部230に対して通知する。
Next, the timing alignment unit 276 outputs the interrupt collection timing t6-Δ. In response, the
次に、タイミング整列部276は、試験信号生成タイミングt6を出力する。これを受けて、スケジュール部277は、時刻をt6に進めると共に、試験信号生成タイミングt6に至ったことを同期モジュールエミュレート部250に通知する。以降試験エミュレート装置190は、時刻t1と同様にして、変化タイミングt8、結果信号を取得すべきタイミングを示す結果信号取得タイミングt11、次の試験信号生成タイミングt12、試験結果収集タイミングt12−Δ、サイクル終了処理タイミングt12−Δ、及び割込み収集タイミングt12の生成及びタイミング整列部276への登録を行なう。
Next, the timing alignment unit 276 outputs the test signal generation timing t6. In response to this, the
次に、タイミング整列部276は、登録されたタイミングを時刻順に整列し、試験信号生成タイミングt7を出力する。これを受けて、スケジュール部277は、時刻をt7に進めると共に、試験信号生成タイミングt7に至ったことを同期モジュールエミュレート部250に通知する。以降試験エミュレート装置190は、時刻t2と同様にして、変化タイミングt9及びt10、次の試験信号生成タイミングt13、試験結果収集タイミングt13−Δ、サイクル終了処理タイミングt13−Δ、及び割込み収集タイミングt13の生成及びタイミング整列部276への登録を行なう。
Next, the timing alignment unit 276 aligns the registered timings in time order, and outputs a test signal generation timing t7. In response to this, the
以上に示した通り、本実施形態に係る試験エミュレート装置190によれば、試験信号生成タイミング、試験信号の変化タイミング、試験結果収集タイミング、結果信号取得タイミング、及び割込み収集タイミング等の各種のタイミングをスケジュール制御部275により時刻順に整列してスケジューリングする。このため、試験エミュレート装置190は、異なるサイクル周期に基づく複数の試験モジュール170が実装された場合における試験装置10の動作を適切にエミュレートすることができる。
As described above, according to the
なお、本実施形態において、同期接続モジュールエミュレート部260は、試験モジュール170からサイクル終了タイミングを受けた場合に、試験結果収集タイミング、サイクル終了処理タイミング、及び割込み収集タイミングをタイミング整列部276に登録するが、これに代えて、以下の方法を用いてもよい。
In this embodiment, the synchronous connection
図6のS625において、同期モジュールエミュレート部250は、サイクル終了タイミングに基づいて、試験モジュールエミュレート部270が次のサイクル時間に対応する試験信号を擬似的に生成すべき試験信号生成タイミングを生成し、タイミング整列部276に通知して登録する。一方、この時点において、同期モジュールエミュレート部250は、試験結果収集タイミング、サイクル終了処理タイミング、及び割り込み収集タイミングを生成せず、タイミング整列部276に対して登録しない。
In S625 of FIG. 6, the synchronous module emulation unit 250 generates a test signal generation timing at which the test
この結果、試験エミュレート装置190は、図6のS630及びS635の処理の後、S640、S650、及びS655を行なうことなく、S600に処理を進める。そして、S600において次のサイクル時間に対応する試験信号生成タイミングをタイミング整列部276が出力した場合に、スケジュール部277は、当該試験信号生成タイミングに至ったことを同期モジュールエミュレート部250に通知する。これを受けて、同期モジュールエミュレート部250は、次のサイクル時間の試験信号生成の前に、試験結果の収集、サイクル終了の通知、及び割込みの収集を、当該試験信号生成タイミングに対応する試験モジュールエミュレート部270に指示する。
As a result, the
以上の処理により、スケジュール制御部275は、次のサイクル時間の試験信号生成の前に、S640、S645、S650、及びS655に示した処理を同期モジュールエミュレート部250、同期接続モジュールエミュレート部260、及び試験モジュールエミュレート部270等に行わせる。より具体的には、スケジュール制御部275は、当該試験信号生成タイミングの直前のサイクル時間における試験信号の生成において、試験モジュールエミュレート部270に供給された結果信号に基づく試験結果の良否を同期モジュールエミュレート部250及び同期接続モジュールエミュレート部260により収集及び配信させ、当該試験モジュールエミュレート部270が擬似的に発生した割込みをサイト制御エミュレート部230に対して通知させる。
With the above processing, the
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。 As mentioned above, although this invention was demonstrated using embodiment, the technical scope of this invention is not limited to the range as described in the said embodiment. It will be apparent to those skilled in the art that various modifications or improvements can be added to the above-described embodiment. It is apparent from the scope of the claims that the embodiments added with such changes or improvements can be included in the technical scope of the present invention.
例えば、以上に示した試験装置10は、同期モジュール150、同期接続モジュール160、及び試験モジュール170等によるDUT100の実試験と、同期モジュールエミュレート部250、同期接続モジュールエミュレート部260、試験モジュールエミュレート部270、及びDUTシミュレート部200等によるDUT100の擬似試験とを、同一の試験制御プログラム及び/又は試験プログラムにより実行可能な試験装置10の使用者に提供すると共に、使用者により実試験及び擬似試験を切替可能としてもよい。
For example, the
すなわち、サイト制御装置130は、DUT100の実試験又は擬似試験のいずれを行うかの指示を、例えば試験開始コマンドのオプション等により入力する。そして、システム制御装置110又はサイト制御装置130は、DUT100の実試験を行う指示を受けた場合に、DUT100の試験を行う試験プログラムをバススイッチ140を介して1又は複数の試験モジュール170に供給して、これらの試験モジュール170によりDUT100の試験を行わせる。一方、サイト制御装置130は、DUT100の擬似試験を行う指示を受けた場合に、試験プログラムを試験エミュレート装置190又はサイト制御装置130等の上でソフトウェアにより実現される試験モジュールエミュレート部270に供給して、試験モジュールエミュレート部270等によりDUT100の試験をシミュレートさせる。
In other words, the site control apparatus 130 inputs an instruction as to whether to perform a real test or a pseudo test of the
以上において、サイト制御装置130は、当該制御装置と試験モジュール170との間の通信処理を行う通信ソフトウェア(通信ライブラリ)を実行し、当該通信ソフトウェアを通じて実試験環境及び擬似試験環境をアクセス可能としてもよい。この場合、サイト制御装置130上で実行される試験制御プログラムは、当該通信ソフトウェアにより提供される同一のアクセス関数(read/write関数等)を用いて、同期モジュール150、同期接続モジュール160、及び試験モジュール170等をアクセスして実試験を行い、また、同期モジュールエミュレート部250、同期接続モジュールエミュレート部260、及び試験モジュールエミュレート部270等をアクセスして擬似試験を行うことができる。
In the above, the site control apparatus 130 executes communication software (communication library) that performs communication processing between the control apparatus and the test module 170, and can access the actual test environment and the pseudo test environment through the communication software. Good. In this case, the test control program executed on the site control device 130 uses the same access function (read / write function, etc.) provided by the communication software, and uses the synchronization module 150, the synchronization connection module 160, and the test. An actual test can be performed by accessing the module 170 or the like, and a pseudo test can be performed by accessing the synchronous module emulation unit 250, the synchronous connection
ここで、上記の通信ソフトウェアは、サイト制御装置130と協働して、当該通信ソフトウェアを初期化する呼び出しに含まれる、実試験環境及び擬似試験環境を選択する指示に基づいて、試験プログラムを試験モジュール170等及び試験モジュールエミュレート部270等のいずれに供給するかを判断してもよい。このような実装の一例を、補足説明C.2.4.3に示す。
Here, the communication software tests the test program based on the instruction for selecting the actual test environment and the pseudo test environment included in the call for initializing the communication software in cooperation with the site controller 130. It may be determined whether the module 170 or the like or the test
また、例えば、以上に示した試験モジュールエミュレート部270は、次に示す構成を採ってもよい。まず、各試験モジュールエミュレート部270は、スケジュール制御部275内のスケジュール部277によりスケジューリングされた試験信号生成タイミングの通知を、関数呼び出しにより受ける。そして、各試験モジュールエミュレート部270は、当該試験信号生成タイミングに対応するサイクル時間中における試験信号の電圧の変化を、出力チャネルをエミュレートする出力チャネルオブジェクトの電圧設定メソッド(setメソッド)を複数回呼び出すことにより出力する。そして、試験モジュールエミュレート部270は、当該サイクル時間に対応する試験信号の電圧の変化の出力を終えた後に、当該サイクル時間に対応する試験信号の電圧の変化の出力を終えたことを、出力チャネルオブジェクトの終了メソッド(endメソッド)を呼び出すことによりスケジュール部277等に通知する。このような実装の一例を、補足説明B.3.3等に示す。
Further, for example, the test
そして、スケジュール部277は、複数の試験モジュールエミュレート部270のそれぞれから通知された終了メソッドに基づいて、全ての試験モジュールエミュレート部270が試験信号の電圧の変化の出力を終えた期間を算出し、この期間内におけるDUT100の動作のシミュレーションをDUTシミュレート部200に要求する。これを受けて、DUT接続部280は、この期間内における試験信号を取得して、当該試験信号に基づいて被試験デバイスのこの期間内における動作をシミュレートする。
Then, the
以上において、出力チャネルオブジェクトは、終了メソッドの呼び出しを受けた後に、当該終了メソッドにより通知された、既に試験信号の電圧の変化の出力を終えた期間内の電圧の変化を禁止する。これにより、既にシミュレーションを終えた期間のシミュレーション結果が不整合となるのを防ぐことができる。このような実装の一例を補足説明B.3.5等に示す。 In the above, after receiving the call of the end method, the output channel object prohibits the change of the voltage within the period in which the output of the change of the voltage of the test signal has already been completed. Thereby, it can prevent that the simulation result of the period which already completed the simulation becomes inconsistent. An example of such an implementation is described in supplementary explanation B.1. It is shown in 3.5 etc.
以下に、本実施形態に係る試験装置10及び試験エミュレート装置190を実現するための各種の具体例・仕様例を補足説明する。
Hereinafter, various specific examples and specification examples for realizing the
(補足説明A)ソフトウェアアーキテクチャの具体例
図8は、本発明の一実施形態によるソフトウェアアーキテクチャ2200を示している。ソフトウェアアーキテクチャ2200は、関連するハードウェアシステムの要素110と、130と、150、160及び170とに対応して、システムコントローラ2200と、少なくとも一つのサイトコントローラ2240と、少なくとも一つのモジュール2260とのための要素を有している分散オペレーティングシステムを表している。モジュール2260に加えて、アーキテクチャ2200は、ソフトウェアでのモジュールエミュレーションのための対応するSW(ソフトウェア)モジュールエミュレーション2280を含んでいる。
(Supplementary Explanation A) Specific Example of Software Architecture FIG. 8 shows a
例示的な選択として、このプラットフォーム用の開発環境はマイクロソフトのウィンドウズ(登録商標)に基づいていてもよい。このアーキテクチャの使用は、プログラムおよびサポートの移植性において副次的な利点(例えばフィールドサービスエンジニアは高度な診断を行うためのテスタオペレーティングシステムを動作させるラップトップコンピュータを接続することができるであろう)を有している。しかし、大規模な計算集約型の動作(テストパターンのコンパイル等)については、関連するソフトウェアは、独立して動作して分散されたプラットフォームを横断してのジョブスケジューリングを可能にすることができる独立した構成要素とされ得る。したがって、バッチジョブに関連するソフトウェアツールは、複数のプラットフォームタイプ上で動作することができる。 As an exemplary choice, the development environment for this platform may be based on Microsoft Windows. Use of this architecture is a side benefit in program and support portability (eg, field service engineers will be able to connect a laptop computer running a tester operating system for advanced diagnostics). have. However, for large computationally intensive operations (such as test pattern compilation), the associated software can operate independently and enable job scheduling across distributed platforms. It can be made into the component. Thus, software tools associated with batch jobs can operate on multiple platform types.
例示的な選択として、ANSI/ISO標準のC++をソフトウェア用のネイティブ言語とすることができる。当然のことながら、サードパーティが自身の選択した代わりの言語をシステムにまとめることを可能にする、(名目上のC++インタフェース上のレイヤを提供するための)使用可能な複数の選択肢がある。 As an exemplary choice, ANSI / ISO standard C ++ can be the native language for software. Of course, there are multiple options available (to provide a layer on the nominal C ++ interface) that allow third parties to bundle their chosen alternative language into the system.
図8は、名目上のソースによる組織化(あるいはサブシステムとしての集合的な展開)にしたがって、テスタオペレーティングシステムインタフェース2290、ユーザコンポーネント2292(例えば、テスト目的のためにユーザによって供給される)、システムコンポーネント2294(例えば、基本的な接続性および通信のためのソフトウェアインフラとして提供される)、モジュール開発コンポーネント2296(例えば、モジュールディベロッパによって提供される)、および外部コンポーネント2298(例えばモジュールディベロッパ以外の外部ソースによって提供される)を含む要素を陰付きで示している。
FIG. 8 illustrates tester
ソースベースの構成の観点から、テスタオペレーティングシステム(TOS)インタフェース2290は、システムコントローラ−サイトコントローラインタフェース2222、フレームワーククラス2224、サイトコントローラ−モジュールインタフェース2245、フレームワーククラス2246、所定のモジュールレベルインタフェース2247、バックプレーン通信ライブラリ2249、シャーシスロットIF(インタフェース)2262、ロードボードハードウェアIF2264、バックプレーンシミュレ−ションIF2283、ロードボードシミュレーションIF2285、DUTシミュレーションIF2287、DUTのVerilogモデル用のVerilog PLI(プログラミング言語インタフェース)2288、およびDUTのC/C++モデル用のC/C++言語サポート2289を含んでいる。
From a source-based configuration perspective, the tester operating system (TOS)
ユーザコンポーネント2292は、ユーザテストプラン2242、ユーザテストクラス2243、ハードウェアロードボード2265、DUT2266、DUT Verilogモデル2293およびDUT C/C++モデル2291を含んでいる。
システムコンポーネント2294は、システムツール2226、通信ライブラリ2230、テストクラス2244、バックプレーンドライバ2250、バススイッチ140を含むHWバックプレーン2261、シミュレーションフレームワーク2281、バックプレーンエミュレーション2282およびロードボードシミュレーション2286を含んでいる。
The
モデル展開コンポーネント2296は、モジュールコマンドインプリメンテーション2248、モジュールハードウェア2263およびモジュールエミュレーション2284を含んでいる。
外部コンポーネント2298は外部ツール2225を含んでいる。
図1に示したシステム制御装置110上で動作するソフトウェアであるシステムコントローラ2220は、サイトコントローラに対するインタフェース2222、フレームワーククラス2224、システムツール2226、外部ツール2225および通信ライブラリ2230を含んでいる。システムコントローラソフトウェアは、ユーザに対する相互作用の主要な点である。これは、本実施形態のサイトコントローラへのゲートウェイと、同一譲受人による米国出願第60/449,622号に述べられているマルチサイト/DUT環境におけるサイトコントローラの同期化とを提供する。ユーザアプリケーションおよびツールは、グラフィカルユーザインタフェース(GUI)ベースかそれ以外のものであり、システムコントローラ上で動作する。システムコントローラは、テストプラン、テストパターンおよびテストパラメータファイルを含むすべてのテストプラン関連の情報の収納庫としても機能する。テストパラメータファイルは、発明の一実施形態のオブジェクト指向の環境におけるテストクラス用のパラメータ化されたデータを含んでいる。
A
サードパーティのディベロッパは、標準的なシステムツール2226に加えて(あるいはその代わりとして)ツールを提供することができる。システムコントローラ2220上の標準的なインタフェース2222は、ツールがテスタおよびテストオブジェクトにアクセスするために用いるインタフェースを有している。ツール(アプリケーション)2225、2226は、テストおよびテスタオブジェクトの相互的なバッチ制御を可能にする。このツールは、(例えばSECS/TSEM等の使用を通じて)自動化能力を提供するためのアプリケーションを含んでいる。
Third party developers can provide tools in addition to (or instead of) the
システムコントローラ2220上にある通信ライブラリ2230は、ユーザアプリケーションおよびテストプログラムにトランスペアレントな形でサイトコントローラ2240と通信するメカニズムを提供する。
A
インタフェース2222は、システムコントローラ2220と関連したメモリに常駐しており、システムコントローラ上で実行するフレームワークオブジェクトに対するオープンインタフェースを提供する。サイトコントローラベースのモジュールソフトウェアがパターンデータにアクセス、取得することを可能にするインタフェースが含まれる。また、アプリケーションおよびツールがテスタおよびテストオブジェクトにアクセスするために用いるインタフェース、ならびに、スクリプトエンジンを通じてテスタおよびテストコンポーネントにアクセスして操作することができる能力を提供するスクリプトインタフェースも含まれる。これにより、インタラクティブな、バッチおよびリモートアプリケーションのための共通のメカニズムがそれらの機能を行うことが可能となる。
システムコントローラ2220に関連しているフレームワーククラス2224は、これらの上述したオブジェクトと相互に作用するメカニズムを提供し、これは標準的なインタフェースのリファレンスインプリメンテーションを提供する。例えば、本実施形態のサイトコントローラ2240は機能テストオブジェクトを提供する。システムコントローラフレームワーククラスは、この機能テストオブジェクトのリモートシステムコントローラベースの代理として、対応する機能テストプロキシを提供してもよい。したがって、標準的な機能テストインタフェースは、システムコントローラ2220上のツールに対して利用可能とされる。システム、モジュール開発コンポーネントおよびインタフェースコンポーネント2294、2296および2290はそれぞれ、システムコントローラとサイトコントローラとの間で分散されたオペレーティングシステムであると考えてもよい。フレームワーククラスは、ホストシステムコントローラに関連するオペレーティングシステムインタフェースを実質的に提供する。これらはまた、サイトコントローラに対するゲートウェイを提供するソフトウェア要素も構成し、マルチサイト/DUT環境におけるサイトコントローラの同期を提供する。したがってこのレイヤは、コミュニケーションレイヤを直接扱う必要なくサイトコントローラを操作し、それにアクセスするのに適している、発明の一実施形態におけるオブジェクトモデルを提供する。
The
図1に示したサイト制御装置130上で動作するソフトウェアであるサイトコントローラ2240は、ユーザテストプラン2242、ユーザテストクラス2243、標準テストクラス2244、標準インタフェース2245、サイトコントローラフレームワーククラス2246、モジュールハイレベルコマンドインタフェース(例えば所定のモジュールレベルのインタフェース)2247、モジュールコマンドインプリメンテーション2248、バックプレーン通信ライブラリ2249、およびバックプレーンドライバ2250のホストとなる。好ましくは、テストの機能の大半をサイトコントローラ2104/2240が扱い、それによってテストサイト2110の独立した動作が可能である。
The site controller 2240 that is software that operates on the site control apparatus 130 shown in FIG. 1 includes a
テストプラン2242はユーザによって書かれる。このプランは、C++のような標準的なコンピュータ言語で直接記述されてもよいし、実行可能なテストプログラムへとコンパイル可能であるC++コードを生成するような、より高レベルのテストプログラミング言語で記述されてもよい。
このテストプランは、フレームワーククラス2246および/または、サイトコントローラに関連する標準あるいはユーザによって供給されるテストクラス2244を用いて、テストオブジェクトを作り出し、標準インタフェース2245を用いてハードウェアを構成し、テストプランのフローを定義する。また、テストプランの実行中に必要とされる追加的なロジックも提供する。テストプランは、いくつかの基本的なサービスをサポートし、デバッグサービス(例えばブレークポイント)等のその下にあるオブジェクトのサービスに対するインタフェースと、その下にあるフレームワークおよび標準クラスへのアクセスとを提供する。
This test plan uses
サイトコントローラに関連するフレームワーククラス2246は、共通のテスト関連動作をインプリメントするクラスおよび方法のセットである。サイトコントローラレベルフレームワークは、例えば、電力供給およびピンエレクトロニクスの順番付け、レベルおよびタイミング条件の設定、測定値取得、テストフロー制御のためのクラスを含んでいる。フレームワークオブジェクトは、標準インタフェースをインプリメントすることを通じて動作してもよい。例えば、テスタピンフレームワーククラスのインプリメンテーションは、テストクラスがハードウェアモジュールピンと相互に作用するために用いるであろう汎用のテスタピンインタフェースをインプリメントするように統一される。
Site controller related
あるフレームワークオブジェクトは、モジュールと通信するためにモジュールレベルインタフェース2247の助けを借りて動作するようにインプリメントされてもよい。サイトコントローラフレームワーククラスは、実質的に、各サイトコントローラをサポートするローカルオペレーティングシステムとして機能する。
Certain framework objects may be implemented to operate with the help of
一般的に、プログラムコードの90%以上は装置テスト用のデータであり、残りの10%のコードがテスト方法を実現する。装置テストデータはDUT依存のデータ(例えば電力供給条件、信号電圧条件、タイミング条件等)である。テストコードは、指定された装置条件をATEハードウェア上にロードする方法からなり、またユーザが指定した目的(データロギング等)を実現するのに必要である方法からも構成される。発明の一実施形態のフレームワークは、ハードウェア依存性のテストと、ユーザがDUTテストプログラミングのタスクを行うことを可能にするテスタオブジェクトモデルとを提供する。 Generally, 90% or more of the program code is device test data, and the remaining 10% of the code realizes the test method. The device test data is DUT-dependent data (for example, power supply conditions, signal voltage conditions, timing conditions, etc.). The test code consists of a method for loading specified device conditions onto the ATE hardware, and also a method necessary for realizing a user-specified purpose (data logging, etc.). The framework of one embodiment of the invention provides hardware-dependent testing and a tester object model that allows a user to perform DUT test programming tasks.
テストコードの再利用性を高めるために、このようなコードは、装置特有のデータ(例えばピンの名前、活性化データ等)、あるいは装置テストに特有のデータ(例えばDCユニットの条件、測定ピン、ターゲットピンの数、パターンファイルの名前、パターンプログラムのアドレス)のいずれに対しても独立とされてもよい。もしテスト用のコードをこれらのタイプのデータとともにコンパイルすれば、テストコードの再利用性は低下する。したがって、発明の一実施形態によれば、いかなる装置特有のデータあるいは装置テストに特有のデータも、コード実行期間中の入力として、外部からテストコードに役立てられてもよい。 In order to increase the reusability of the test code, such code can be used for device-specific data (eg pin names, activation data, etc.) or device test specific data (eg DC unit conditions, measuring pins, The number of target pins, the name of the pattern file, and the address of the pattern program may be independent. If test code is compiled with these types of data, test code reusability is reduced. Thus, according to one embodiment of the invention, any device specific data or device test specific data may be externally used in the test code as input during the code execution period.
発明の一実施形態においては、標準テストインタフェースのインプリメンテーションであるテストクラスは、ここではITestと記載するが、特定のタイプのテストに関してテストデータとコードとの分離(したがってコードの再利用性)を実現する。このようなテストクラスは、装置特有および/あるいは装置テスト特有のデータにおいてのみ異なるような別々のテストクラスの「テンプレート」とみなしてもよい。テストクラスはテストプランファイルにおいて指定される。各テストクラスは、典型的には、具体的なタイプの装置テストあるいは装置テスト用のセットアップをインプリメントする。例えば、発明の一実施形態は、DUTに関するすべての機能テストの基本となるクラスとして、ITestインタフェースの具体的なインプリメンテーション、例えばFunctionalTestを提供する。それは、テスト条件の設定、パターンの実行および、失敗したストローブの存在に基づくテスト状況の判定という基本的な機能を提供する。他のタイプのインプリメンテーションは、ここではACParametricTestおよびDCParametricTestとして表記されるACおよびDCテストクラスを含んでいてもよい。 In one embodiment of the invention, a test class that is an implementation of a standard test interface, referred to herein as ITest, separates test data and code (and thus code reusability) for a particular type of test. Is realized. Such test classes may be considered as “templates” of separate test classes that differ only in device-specific and / or device test-specific data. Test classes are specified in the test plan file. Each test class typically implements a specific type of equipment test or setup for equipment testing. For example, one embodiment of the invention provides a specific implementation of the ITest interface, eg, FunctionalTest, as the base class for all functional tests on the DUT. It provides the basic functions of setting test conditions, executing patterns, and determining test status based on the presence of failed strobes. Other types of implementations may include AC and DC test classes, denoted here as ACParametricTest and DCParametricTest.
全てのテストタイプは、いくつかの仮想的な方法のデフォルトのインプリメンテーション(例えば、init( )、preExec( )およびpostExec( ))を提供してもよい。これらの方法は、デフォルトの動作を乗り越えてテスト特有のパラメータを設定するためのテストエンジニアのエントリポイントとなる。しかしながら、カスタムテストクラスもテストプランにおいて用いることができる。 All test types may provide default implementations of some virtual methods (eg, init (), preExec () and postExec ()). These methods serve as test engineer entry points for overriding default behavior and setting test specific parameters. However, custom test classes can also be used in the test plan.
テストクラスは、そのテストの特定の場合に関するオプションを指定するために用いられるパラメータを提供することによって、ユーザがクラスの動作を構成することを可能にする。例えば、機能テストは、実行すべきパターンリストとテスト用のレベルおよびタイミング条件とを指定するために、パラメータPlistおよびTestConditionと採用してもよい。(テストプラン記述ファイルにおける異なる「テスト」ブロックの使用を通して)これらのパラメータについて異なる値を指定することにより、ユーザは機能テストの異なる例を作り出すことが可能である。図9は、どのようにして単一のテストクラスから異なるテスト例が導き出されるかを示している。テンプレートライブラリは、一般的なアルゴリズムおよびデータ構造の汎用ライブラリとして採用されてもよい。このライブラリはテスタのユーザに見えてもよく、ユーザは、例えば、ユーザ定義のテストクラスを作り出すようにテストクラスのインプリメンテーションを改変してもよい。 A test class allows a user to configure the behavior of a class by providing parameters that are used to specify options for a particular case of that test. For example, a functional test may be employed with parameters Plist and TestCondition to specify the pattern list to be executed and the level and timing conditions for the test. By specifying different values for these parameters (through the use of different “test” blocks in the test plan description file), the user can create different examples of functional tests. FIG. 9 shows how different test examples are derived from a single test class. The template library may be employed as a general-purpose library for general algorithms and data structures. This library may be visible to the tester user, who may modify the test class implementation, for example, to create a user-defined test class.
ユーザによって展開されるテストクラスに関して、システムの一実施形態は、このようなテストクラスを、全てのテストクラスが単一のテストインタフェース、例えばITestから得られるようなフレームワークに統合することをサポートし、その結果、そのフレームワークはシステムテストクラスの標準的なセットと同じようなやり方でそれらを処理することができる。ユーザは、追加のファシリティを生かすためには自分達のテストプログラムにおいてカスタムコードを用いなければならないという理解のもとで、自分達のテストクラスに追加の機能を自由に追加することができる。 With respect to test classes deployed by the user, one embodiment of the system supports the integration of such test classes into a framework where all test classes are derived from a single test interface, eg ITest. As a result, the framework can handle them in a manner similar to the standard set of system test classes. Users are free to add additional functionality to their test classes with the understanding that they must use custom code in their test programs to take advantage of the additional facilities.
図1に示したサイト制御装置130、同期モジュール150、同期接続モジュール160、及び試験モジュール170を含んで構成される各テストサイトは、一つ以上のDUT100のテスト専用のものであり、試験モジュール170等のテストモジュールの構成可能な集合体を通じて機能する。各テストモジュールは特定のテストタスクを行う主体である。例えば、テストモジュールは、DUTの電源、ピンカード、アナログカード等であり得る。モジュールによるこのアプローチは、高いフレキシビリティと構成可能性を提供する。
Each test site including the site control device 130, the synchronization module 150, the synchronization connection module 160, and the test module 170 illustrated in FIG. 1 is dedicated to testing one or
モジュールコマンドインプリメンテーションクラス2248は、モジュールハードウェアベンダによって提供されてもよく、ベンダによって選択されるコマンド実行方法に応じて、ハードウェアモジュールに関するモジュールレベルインタフェースをインプリメントするか、あるいは標準的なインタフェースのモジュール特有のインプリメンテーションを提供する。これらのクラスの外部インタフェースは、所定のモジュールレベルインタフェース要件およびバックプレーン通信ライブラリ要件によって規定される。またこのレイヤは、標準的なセットのテストコマンドの拡張も提供し、それにより方法(機能)およびデータ要素の追加が可能となる。
The module
バックプレーン通信ライブラリ2249は、バックブレーンをまたいでの標準的な通信のためのインタフェースを提供し、それによってテストサイトに接続されたモジュールとの通信に必要な機能を提供する。これにより、ベンダに特有のモジュールソフトウェアが対応するハードウェアモジュールとの通信にバックプレーンドライバ2250を用いることが可能である。バックプレーン通信プロトコルはパケットベースのフォーマットである。
The
テスタピンオブジェクトは、物理的なテスタチャネルを表しており、ここではITesterPinで示されるテスタピンインタフェースから得られる。発明の一実施形態によるソフトウェア開発キット(SDK)は、TesterPinと呼ばれることもあるITesterPinのデフォルトのインプリメンテーションを提供し、これは所定のモジュールレベルインタフェースIChannelに関してインプリメントされる。ベンダは、IChannelに関して彼らのモジュールの機能をインプリメントすることができるのであればTesterPinを自由に使うことができるが、そうでなければ、彼らのモジュールとどもに動作するITesterPinのインプリメンテーションを提供しなければならない。 The tester pin object represents a physical tester channel, and is obtained from the tester pin interface indicated here by ITesterPin. A software development kit (SDK) according to an embodiment of the invention provides a default implementation of ITesterPin, sometimes called TesterPin, which is implemented with respect to a given module level interface IChannel. Vendors are free to use TesterPin if they can implement the functionality of their module with respect to IChannel, but otherwise provide an implementation of ITesterPin that works with their module. There must be.
本実施形態のテスタシステムによって提供される標準的なモジュールインタフェースは、ここではIModuleと表記するが、これは一般的には、ベンダのハードウェアモジュールを表している。ベンダによって供給される、システム用のモジュール特有のソフトウェアは、ダイナミックリンクライブラリ(DLL)のような実行可能な形態で提供されてもよい。ベンダからの各モジュールタイプ用のソフトウェアは、単一のDLLにカプセル化されていてもよい。このようなソフトウェアモジュールのそれぞれは、モジュールソフトウェア展開のためのAPIを備えている、モジュールインタフェースコマンド用のベンダに特有なインプリメンテーションを提供することを担っている。 The standard module interface provided by the tester system of this embodiment is denoted here as IModule, which generally represents a vendor hardware module. Module specific software for the system supplied by the vendor may be provided in an executable form such as a dynamic link library (DLL). The software for each module type from the vendor may be encapsulated in a single DLL. Each such software module is responsible for providing a vendor specific implementation for the module interface command with an API for module software deployment.
モジュールインタフェースコマンドには2つの局面がある。それらは、第一に、ユーザがシステムにおける特定のハードウェアモジュールと(間接的に)通信するためのインタフェースとして機能し、第二に、サードパーティディベロッパが彼ら自身のモジュールをサイトコントローラレベルのフレームワークに統合するために活用することができるインタフェースを提供する。したがって、フレームワークによって提供されるモジュールインタフェースコマンドは、2つのタイプに分けられる。 There are two aspects to module interface commands. They serve primarily as an interface for users to (indirectly) communicate with specific hardware modules in the system, and secondly, third-party developers place their own modules in a site controller level framework. Provides an interface that can be leveraged to integrate with Therefore, the module interface commands provided by the framework are divided into two types.
一つ目は、最も疑う余地のないものであるが、フレームワークインタフェースを通じてユーザに対してあらわになる「コマンド」である。したがって、例えば、テスタピンインタフェース(ITesterPin)は、レベルおよびタイミングの値を取得、設定するための方法を提供し、一方で電源インタフェース(IPowerSupply)は電力を上げたり下げたりする方法を提供する。 The first is the most unquestionable “command” that appears to the user through the framework interface. Thus, for example, the tester pin interface (ITesterPin) provides a way to get and set level and timing values, while the power interface (IPowerSupply) provides a way to raise and lower power.
また、フレームワークは、モジュールとの通信に用いられることができる、所定のモジュールレベルインタフェースの特別なカテゴリを提供する。これらは、ベンダのモジュールとの通信のためにフレームワーククラスによって用いられるインタフェース(すなわち、フレームワークインタフェースの「標準的な」インプリメンテーション)である。 The framework also provides a special category of predefined module level interfaces that can be used to communicate with the modules. These are the interfaces (ie, “standard” implementations of the framework interface) used by framework classes for communication with vendor modules.
しかしながら、第二の局面、モジュールレベルインタフェースの使用は、任意のものである。それをすることの利点は、ベンダは、モジュールレベルインタフェースをインプリメントすることによって彼らのハードウェアに対して送られる具体的なメッセージの内容を注視しつつ、ITesterPinおよびIPowerSupplyのようなクラスのインプリメンテーションを活用し得るということである。しかし、もしこれらのインタフェースがベンダに不適切であれば、それらはフレームワークインタフェースのそれらのカスタムインプリメンテーション(例えばITesterPin、IPowerSupply等のベンダインプリメンテーション)を提供することを選択してもよい。そうすればこれらは、それらのハードウェアに対して適切であるカスタム機能を提供するであろう。 However, the second aspect, the use of a module level interface is optional. The advantage of doing so is that vendors implement implementations of classes like ITesterPin and IPowerSupply, keeping an eye on the specific message content sent to their hardware by implementing a module level interface. It can be used. However, if these interfaces are inappropriate for the vendor, they may choose to provide their custom implementation of the framework interface (eg, vendor implementation of ITesterPin, IPowerSupply, etc.). They will then provide custom functionality that is appropriate for their hardware.
したがって、モジュールに特有なベンダソフトウェアの統合は、2つの異なった手段、すなわち、関連するフレームワーククラスおよびインタフェースのカスタムインプリメンテーション、あるいはモジュールレベルインタフェースの特別なカテゴリのカスタムインプリメンテーションを通じて実現され得る。 Thus, module specific vendor software integration can be achieved through two different means: custom implementations of related framework classes and interfaces, or custom implementations of a special category of module level interfaces. .
次に、両方の方法の例示的な応用を図10の助けを借りて説明する。図10は、発明の一実施形態によるテスタシステムとベンダによって供給されるモジュールとの相互作用を示すユニバーサルモデリング言語(UML)クラスダイアグラムである。 An exemplary application of both methods will now be described with the help of FIG. FIG. 10 is a universal modeling language (UML) class diagram illustrating the interaction between a tester system and a vendor-supplied module according to one embodiment of the invention.
新しいデジタルモジュールのベンダであるサードパーティA(TPA)は、そのハードウェアモジュールと通信するためのソフトウェアモジュールを提供する。このソフトウェアモジュールは、標準的なインタフェースIModuleをインプリメントする。このモジュールオブジェクトをTPAPinModuleと呼ぶことにしよう。ベンダTPAは、そのモジュールにおいて、関連する所定のモジュールレベルインタフェース、この場合にはIChannelをインプリメントすることによって、ここではTesterPinとして表されている、ITesterPinインタフェースの標準的なシステムインプリメンテーションを利用することができる。これは、TesterPinがモジュールと通信するためにIChannelのような標準的な所定のモジュールレベルインタフェースを用いるという事実によって可能とされる。したがって、TPAPinModuleは、TesterPinオブジェクトを単に作り出してあらわにすることでピンを提供する。 A new digital module vendor, Third Party A (TPA), provides software modules to communicate with its hardware modules. This software module implements the standard interface IModule. Let's call this module object TPAPinModule. The vendor TPA uses the standard system implementation of the ITesterPin interface, represented here as TesterPin, by implementing an associated predefined module-level interface, in this case IChannel, in that module. Can do. This is made possible by the fact that TesterPin uses a standard predefined module level interface such as IChannel to communicate with the module. Thus, TPAPinModule provides a pin by simply creating and exposing a TesterPin object.
ここで、IChannelインタフェースは自分達のハードウェアとともにはうまく動作しないと判断する、異なるベンダであるサードパーティB(TPB)を考える。したがって、TPBは、彼ら自身のIModuleインプリメンテーション(TPBPinModule)だけではなく、ITesterPinインタフェースのインプリメンテーションTPBTesterPinも提供することが必要となる。 Now consider a third-party B (TPB), a different vendor that determines that the IChannel interface does not work well with their hardware. Therefore, TPBs need to provide not only their own IModule implementation (TPBPinModule), but also an implementation of ITesterPin interface TPBTesterPin.
このアプローチは、サードパーティディベロッパがどのようにして自分達のハードウェアを展開するかの選択およびソフトウェアのサポートにおいて、多大なフレキシビリティをサードパーティディベロッパに与える。彼らはIModuleインタフェースをインプリメントすることを求められながら、モジュールレベルインタフェースをインプリメントすることか、適合するとわかればTesterPinのようなオブジェクトをインプリメントすることかを選択し得る。 This approach gives third-party developers great flexibility in choosing how their third-party developers deploy their hardware and software support. While they are required to implement the IModule interface, they can choose to implement a module-level interface or an object such as TesterPin if it finds fit.
実際に、ベンダは、ITesterPinインタフェースにおいてはサポートされていない拡張を提供するためにTesterPinをインプリメントすることを選択してもよい。フレームワークはユーザに、特定のインタフェースを取り出すためのメカニズムあるいはオブジェクトへのインプリメンテーションポインタを提供する。これは、ユーザコードがITesterPinポインタを有している場合に、フレームワークはそれが必要であるときにいわゆるTPBTesterPinオブジェクトをポイントしているかどうかを判断することができるということを意味している。(この特徴は標準的なC++ランタイムタイプ識別(RTTI)を介して提供されてもよいことに留意されたい。)言い換えると、テストプランがITesterPinインタフェースを要求するときには、インタフェースは、TesterPinクラスのベンダのテスタピンのインプリメンテーションを直接呼び出し、これがモジュールに特有の情報(例えば、特定のDUT刺激を与えるように設定されるべきレジスタのアドレス)を内蔵している。 In fact, vendors may choose to implement TesterPin to provide extensions that are not supported in the ITesterPin interface. The framework provides the user with a mechanism for retrieving a particular interface or an implementation pointer to an object. This means that if the user code has an ITesterPin pointer, the framework can determine whether it is pointing to a so-called TPBTesterPin object when it is needed. (Note that this feature may be provided via standard C ++ Runtime Type Identification (RTTI).) In other words, when a test plan requires an ITesterPin interface, the interface is the vendor of the TesterPin class. Call the tester pin implementation directly, which contains information specific to the module (eg, the address of the register to be set to give a particular DUT stimulus).
まとめると、フレームワークコードが常にITesterPinインタフェースを使用している間、ユーザは、必要なときにモジュールベンダによって提供される具体的な特徴および拡張を自由に使うことができる。言い換えると、モジュールベンダは、例えば、クラスの標準的なシステムインプリメンテーションに方法(機能)を付加することができる。ユーザに対するトレードオフは、具体的なベンダの拡張を活用することが他のベンダのモジュールに対するテストコードの有用性を低下させるということである。 In summary, while framework code always uses the ITesterPin interface, users are free to use the specific features and extensions provided by the module vendor when needed. In other words, a module vendor can add a method (function) to a standard system implementation of a class, for example. The trade-off for users is that leveraging specific vendor extensions reduces the usefulness of test code for other vendor modules.
モジュールのレベルでは、試験装置10は、名目上2つの動作モードを有している。動作のオンラインモードでは、バススイッチ140、同期モジュール150、同期接続モジュール160、試験モジュール170、ロードボード180、及びDUT100を含んで構成されるモジュールエレメント2260(例えばハードウェアエレメント)が用いられ、動作のオフラインモードでは、バススイッチエミュレート部240、同期モジュールエミュレート部250、同期接続モジュールエミュレート部260、試験モジュールエミュレート部270、スケジュール制御部275、DUT接続部280、及びDUTシミュレート部200を含んで構成されるソフトウェアにおけるモジュールエミュレーション2280が用いられる。
At the module level, the
動作のオンラインモードについて、モジュールエレメント2260は、図1に示したバススイッチ140を含むHW(ハードウェア)バックプレーン2261と、シャーシスロットIF(インタフェース)2262と、同期モジュール150、同期接続モジュール160、及び試験モジュール170等を含むモジュールハードウェア2263と、ロードボードハードウェアIF2264と、ロードボード180に対応するハードウェアロードボード2265と、図10に示したDUT100に対応するDUT2266とを有している。
For the online mode of operation, the module element 2260 includes an HW (hardware)
動作のオフラインモードについて、ソフトウェアでのモジュールエミュレーション2280は、図2に示したスケジュール制御部275を含むシミュレーションフレームワーク2281と、バススイッチエミュレート部240を含むバックプレーンエミュレーション2282と、バックプレーンシミュレーションIF2283と、同期モジュールエミュレート部250、同期接続モジュールエミュレート部260、及び試験モジュールエミュレート部270等を含むモジュールエミュレーション2284と、ロードボードシミュレーションIF2285と、DUT接続部280を含むロードボードシミュレーション2286と、DUTシミュレーションIF2287を有している。2つのモデルをDUTシミュレーションに関して示す。Verilogを用いるモデルは、Verilog PLI(プログラミング言語インタフェース)2288とDUT Verilogモデル2293とを有している。C/C++を用いるモデルは、C/C++言語サポート2289とDUT C/C++モデル2291とを有している。シミュレーションは、PC等のいかなるコンピュータ上でも行うことができることに留意されたい。
Regarding the offline mode of operation, the
オンラインモードでは、モジュールベンダは、デジタルテスタチャネル、DUT電源、あるいはDC測定ユニットといった、テストをサポートするための物理的なハードウェアコンポーネントを提供する。モジュールは、シャーシスロットIF2262を通じてHWバックプレーン2261にインタフェース接続される。
In online mode, module vendors provide physical hardware components to support testing, such as digital tester channels, DUT power supplies, or DC measurement units. The module is interfaced to the
オフラインでの作業については、システムコントローラと等価なものを動かすPCベースあるいは他の環境が、付加的に、サイトコントローラレベルのフレームワークと、ソフトウェアのより低いレイヤのランタイム環境とを提供するとともにハードウェアをエミュレートするための全ての任務を引き受ける。 For offline work, a PC-based or other environment running the equivalent of the system controller additionally provides a site controller level framework and a lower layer runtime environment for the software and hardware. Take on all the missions to emulate.
バックプレーンエミュレーション2282は、物理的なバックプレーン2261のためのソフトウェアによる代理を提供する。これは、バックプレーンシミュレーションインタフェース2283を通して(ベンダが供給する)モジュールエミュレーションソフトウェア2284と通信する。
モジュールエミュレーションソフトウェア2284は、好ましくはモジュールベンダによって提供され、典型的にはモジュール2263の特定のベンダインプリメンテーションと密接に結びついている。したがって、モジュールエミュレーションソフトウェアは、典型的には、異なるベンダによって供給されるモジュール間で詳細で異なっている。この場合、モジュールシミュレーションにより、ベンダは、ソフトウェアモデル(例えばモジュールエミュレーションソフトウェア2284)を通してハードウェアの機能をあらわにし、シミュレートされるロードボード2286に対して活性化信号を送り、DUTシミュレーションIF2287を介してDUTモデリングソフトウェア2291、2293に接続されている、シミュレートされるロードボード2286からのDUT応答信号を受け取って処理することが可能になる。モジュールの単純な機能シミュレーションを提供してモジュールファームウェアのエミュレーションを迂回することが有利であるとベンダが考える場合もある。モジュールエミュレーションソフトウェアは、シミュレートされたモジュール活性化信号に対するシミュレートされたDUTの応答を、既知の良好なDUT応答と比較する。この比較に基づいて、ソフトウェアは、そのモジュールによって実行されているテストが所望のとおりDUTをテストするという目標に適合しているかを判断し、ユーザがオンラインの実際のテスタ上のIC(実際のDUT)上でそれを用いるのに先立って、モジュールのデバッグを行うことを助ける。
ロードボードシミュレーションインタフェース2285は、モジュールエミュレーションレイヤおよびシミュレートされるロードボード2286への、およびこれらからの信号のためのルートとして機能する。ロードボードシミュレーションコンポーネント2286は、デバイスソケットマッピングと、DUTシミュレーションIF2287への、およびそれからの信号伝達とをサポートする。
The load
DUTシミュレーションは、ネイティブコード(すなわちC/C++)シミュレーション2291、または対象のDUTモデル2293の機能モデルに対するVerilogプログラミング言語インタフェース(PLI)であってもよい。このモデルは、DUTシミュレーションインタフェース2287を通じて、シミュレートされるロードボードとインタフェース接続する。
The DUT simulation may be a native code (ie C / C ++)
これらのレイヤの全体の制御はシミュレーションフレームワーク2281によって提供されることに留意されたい。シミュレーションフレームワークは、既知の活性化信号に対するシミュレートされたDUT応答を測定する。システムエミュレーションの方法は、米国出願第10/403,817号に開示されている。
Note that overall control of these layers is provided by the
・通信および制御
通信および制御は、関連するソフトウェアオブジェクトの管理を通じて実現される。好ましくは、通信のメカニズムは、システムコントローラ上のオブジェクトモデルの後ろに隠れている。このオブジェクトモデルは、サイトコントローラ上に見られるクラスおよびオブジェクトに対してプロキシを提供し、それによって、アプリケーションの開発(例えばIC装置のテスト)のための便利なプログラミングモデルを提供する。これにより、アプリケーションの開発者(例えばATEシステムのユーザ)は、アプリケーションとサイト/システムコントローラとの間の通信の具体的な情報に関連する不要な詳細を避けることが可能である。
Communication and control Communication and control is realized through management of related software objects. Preferably, the communication mechanism is hidden behind the object model on the system controller. This object model provides a proxy for the classes and objects found on the site controller, thereby providing a convenient programming model for application development (eg, testing of IC devices). This allows application developers (eg, users of the ATE system) to avoid unnecessary details related to the specific information of the communication between the application and the site / system controller.
図11は、サイト制御装置130内のサイトコントローラソフトウェア2240に維持されているときのサイトコントローラオブジェクトの具体的な実施形態を示している。サイトコントローラオブジェクトは、CmdDispatcher2602、FunctionalTestMsgHandler2604およびFunctionalTest2606を有している。インタフェースは、IMsgHandler2608およびITest2610を有している。
FIG. 11 illustrates a specific embodiment of a site controller object as maintained in site controller software 2240 within site controller 130. The site controller object has
好ましくはサイトコントローラ2240は、アプリケーションがアクセスのために必要とする機能クラスの全てを含んでいる。これらのクラスは、例えば、テスト、モジュール、ピン等を含む。ユーザのテストおよびソフトウェアツールは典型的には異なるコンピュータ上に存在するので、メッセージは、システムコントローラ上のツールからサイトコントローラ上のサーバに送られる。このサーバは、コマンド発送オブジェクトに関する方法を必要とする。 Preferably, site controller 2240 includes all of the functional classes that an application needs for access. These classes include, for example, tests, modules, pins, etc. Since the user's test and software tools are typically on different computers, messages are sent from the tool on the system controller to the server on the site controller. This server needs a method for command dispatch objects.
コマンド発送オブジェクト(CmdDispatcher)2602は、IMsgHandlerインタフェース2608をインプリメントするメッセージハンドラオブジェクトのマップを保持する。図11は、IMsgHandlerの具体的なインプリメンテーションFunctionalTestMsgHandler2604を示している。DmdDispatcherオブジェクト2602によって受信されたメッセージは通信すべきオブジェクトの識別子を含んでいる。この識別子は、内部のマップにおいて見られ、具体的なインプリメンテーション、この場合には図示されているFunctionalTestMsgHandlerオブジェクト2604に帰着する。
A command dispatch object (CmdDispatcher) 2602 maintains a map of message handler objects that implement the
本例では、IMsgHandler2608は、単一の方法handleMessage()からなる。この方法は、好ましくは単一のインプリメンテーションクラスとしてインプリメントされる。図示されている場合においては、FunctionalTestMsgHandler2604は、入ってくるメッセージの正確な性質に応じて、6つの方法のうちの1つにメッセージを送る。入ってくるメッセージのヘッダは、メッセージハンドラがどのようにメッセージを解釈し、どこにメッセージを送るかを決定することを可能にするメッセージIDを含んでいる。
In this example,
システム制御装置110における対応する通信環境は、システムコントローラソフトウェア2220のツール2225、2226セクションに関連する。図12は、システムコントローラソフトウェア2220においてシステム制御装置110上に保持されるツールオブジェクト(あるいはシステムコントローラオブジェクト)の一実施形態を、図11に示したサイトコントローラオブジェクトと対応するように示している。ツールオブジェクトは、オブジェクトCmdDispatcher2702、FunctionalTestMsgHandler2704およびFunctionalTestProxy2706を含んでいる。インタフェースは、IMsgHandler2708、ITestClient2710、およびIDispatch2712を含んでいる。またユーティリティアプリケーション2714も含まれる。
The corresponding communication environment in the
この例に関して、クラスCmdDispatcher2702、IMsgHandler2708、およびFunctionalTestMsgHandler2704は図11に示したものと同じである。しかしながら、FunctionalTest2606(あるいは他のいかなるサイトコントローラクラス)のインスタンス化は用いられない。代わりに、ツールオブジェクトは、サイト制御装置130上の各オブジェクトと通信するためのプロキシクラスを有している。したがって例えば、ツールオブジェクトはFunctionalTest2606に代えてクラスFunctionalTestProxy2706を含んでいる。同様に、ツールオブジェクトにおけるITestClient2710は、サイトコントローラオブジェクトにおけるITest2610と同じではない。一般的に、サイト制御装置130上で動作するアプリケーションは、サイト制御装置130上に設けられているものそのもののようなインタフェースを用いない。この場合、ITest2610の3つの方法(すなわち、preExec()、execute()およびpostExec())はITestClient2710における単一の方法(すなわちrunTest())に置き換えられる。またITestClient2710は、好ましくはデュアルインタフェース、すなわち、IDispatch712を受け継ぐものであり、マイクロソフトコンポーネントオブジェクトモデル(COM)としてインプリメントされる。それは、そのインタフェースをインプリメントするオブジェクトへのスクリプトエンジンのアクセスを可能にするようなインタフェースを提供する。これによって、システムをマイクロソフトウィンドウズ(登録商標)プラットフォーム上で記述することが可能となる。
For this example, the
図11〜12に示す実施形態の動作の一例として、(例えば、ツールセクション2226、2228のうちの一つにおいて)システム制御装置110上で動作するアプリケーションは、テストプラン2242が一つ以上のFunctionalTestオブジェクト2606を有しているようなサイト制御装置130と通信してもよい。サイト制御装置130上でのテストプラン2242の初期化中に、対応するテストプランオブジェクトはサイト制御装置130上にロードされ、TestPlanMessageHandlerオブジェクトを構成し、それをCmdDispatcherオブジェクト2602とともに登録する。これがメッセージハンドラに独自のIDを割り当てる。同様な動作は、テストプラン2242を構成する他のTestPlanオブジェクトでも起こる。
As an example of the operation of the embodiment shown in FIGS. 11-12, an application running on the system controller 110 (eg, in one of the
システム制御装置110上の(例えばツール2226、2228における)アプリケーションは、通信ライブラリ2230を初期化し、通信チャネルを介してサイト制御装置130に接続し、TestPlanオブジェクトのためのIDを取得する。この初期化中に、プロキシオブジェクトは、それがテストをいくつ含んでいるかと、それらのタイプおよびIDとを決定する。それはタイプごとに(この場合には一つだけのタイプ)適切なDLLをロードし、それらに関するプロキシオブジェクトを構成し、それらをID値を用いて初期化する。
Applications on system controller 110 (eg, in
TestProxyオブジェクトも初期化する。これをするために、それらは、それらの名前を(それらのID値を用いて)取得するための適切なメッセージを構成してサイト制御装置130の通信サーバに送信する。通信サーバは、メッセージをCmdDispatcher2602に渡す。このオブジェクトは、その内部マップにおいて宛先IDを調べて、FunctionalTestMsgHandler2604のhandleMessage()方法にメッセージを送る。例えばもしメッセージがテスト名取得の要求であれば、これらのオブジェクトは、それぞれのテスト名を取得し、適切なネーム列でアプリケーションのTestProxyオブジェクトに応答する。
It also initializes the TestProxy object. To do this, they construct an appropriate message to obtain their name (using their ID value) and send it to the communication server of site controller 130. The communication server passes the message to
初期化が完了すると、アプリケーションは、TestPlanオブジェクトへのリモートアクセスと、それを通じて両方のTestオブジェクトへのリモートアクセスを有する。ユーザはここで、例えば、アプリケーション上の「テストプラン起動」のボタンを押す。その結果、アプリケーションはTestPlanProxyオブジェクト上のRunTestPlan()方法を呼び出す。この方法は、TestPlanオブジェクトの宛先IDでRunTestPlanメッセージを構成し、RPCプロキシ上でsendMessage()機能を呼び出す。この機能がサイトコントローラにメッセージを送信する。 When initialization is complete, the application has remote access to the TestPlan object and through it both remote access to the Test object. Here, for example, the user presses a “test plan activation” button on the application. As a result, the application calls the RunTestPlan () method on the TestPlanProxy object. This method constructs a RunTestPlan message with the destination ID of the TestPlan object and calls the sendMessage () function on the RPC proxy. This function sends a message to the site controller.
サイト制御装置130上の通信サーバは、CmdDispatcherオブジェクト2602上のhandleMessage()方法を呼び出し、TestPlanオブジェクトのIDをそれに渡す。CmdDispatcherオブジェクト2602はその内部マップでこのIDを調べて、TestPlanオブジェクト用のメッセージハンドラを見つけて、このオブジェクト上のhandleMessage()方法を呼び出し、これがTestPlanオブジェクト上のRunTestPlan()方法を呼び出す。同じようなやり方で、アプリケーションは名前とTestオブジェクトの最近の動作状況とを取得することができる。
The communication server on the site controller 130 calls the handleMessage () method on the
・通信ライブラリを用いる方法
通信ライブラリ2230を用いる例を以下に述べる。
通信ライブラリ2230は好ましくは静的なライブラリである。アプリケーションは、CommLibrary.hファイルを通してこの通信ライブラリを使用することができる。通信ライブラリクラスをエクスポートする必要があるアプリケーションは、上記インクルードファイルを含むことに加えて、定義されたプリプロセッサ定義COMMLIBRARY_EXPORTS、COMMLIBRARY_FORCE_LINKAGEを有していなければならない。通信ライブラリをインポートするアプリケーションは、プリプロセッサ定義を何も定義する必要はない。通信ライブラリがサーバとして用いられるときには、アプリケーションは、CcmdDispatcherの次の静的な関数を呼び出さなければならない:InitializeServer(unsigned long portNo)。
Method using communication library An example using the
このportNoは、サーバが要求を待たなければならないポート番号である。サーバに対応するコマンドディスパッチャは、静的な関数getServerCmdDispatcherをCcmdDispatcherクラス上に呼び出すことによって読み出される。 This portNo is a port number on which the server must wait for a request. The command dispatcher corresponding to the server is read by calling the static function getServerCmdDispatcher on the CcmdDispatcher class.
通信ライブラリがクライアントとして用いられるときには、アプリケーションはCcmdDispatcherの静的な関数「InitializeClient(const OFCString serverAddress, unsigned long serverPortNo, CcmdDispatcher **pCmdDispatcher, OFCString serverId)」を呼び出さなければならない。 When the communication library is used as a client, the application must call the CcmdDispatcher static function "InitializeClient (const OFCString serverAddress, unsigned long serverPortNo, CcmdDispatcher ** pCmdDispatcher, OFCString serverId)".
このserverAddressおよびServerPortNoは、クライアントが接続しなければならないものである。この関数は、クライアント用のコマンドディスパッチャポインタおよびそれが接続するサーバIDを初期化する。また、後の時点で、クライアントは、静的な関数getClientCmdDispatcherを呼び出すことによってサーバIDに対応するコマンドディスパッチャを取り出すことができる。 The serverAddress and ServerPortNo are what the client must connect to. This function initializes the command dispatcher pointer for the client and the server ID to which it connects. At a later time, the client can retrieve the command dispatcher corresponding to the server ID by calling the static function getClientCmdDispatcher.
通信ライブラリがコンパイルされるときには、ファイルClientInterface.idlおよびServerInterface.idl上ではビルドは排除される。好ましい実施形態は、これらのインタフェース定義ファイルに関して既に生成されたスタブおよびプロキシファイルを適用して、プロキシおよびスタブインプリメンテーションファイルを同じライブラリにリンクする。したがって、サーバおよびクライアントは、同じアドレス空間内にインスタンス化される。インタフェース定義ファイルおよびスタブファイルにおける以下の変更は、好ましくは、通信ライブラリをサーバおよびクライアントとして同じアドレス空間内で動作させるために行われる。 When the communication library is compiled, builds are excluded on the files ClientInterface.idl and ServerInterface.idl. The preferred embodiment applies stubs and proxy files already generated for these interface definition files to link the proxy and stub implementation files to the same library. Thus, the server and client are instantiated in the same address space. The following changes in the interface definition file and stub file are preferably made to make the communication library operate in the same address space as the server and client.
・インタフェース定義ファイルにおける変更
以下のネームスペースの宣言は、好ましくは、インタフェース定義ファイルのそれぞれにおいて付加される。これは、プロキシインプリメンテーション機能とインタフェース機能の我々自身のインプリメンテーションとの名前の衝突を避けるためである。以下のネームスペースの宣言は、serverInterface.idlにおいて付加される。
Changes in the interface definition file The following namespace declarations are preferably added in each of the interface definition files. This is to avoid name conflicts between the proxy implementation function and our own implementation of the interface function. The following namespace declarations are added in serverInterface.idl.
スタブインプリメンテーションファイルにおける関数は、インタフェースにおいて宣言された機能のための我々自身のインプリメンテーション関数を呼び出すように変更される。すなわち、我々は、インタフェースにおいて宣言された機能のそれぞれに対応する異なる名前の関数をもつことになる。 The functions in the stub implementation file are modified to call our own implementation functions for the functions declared in the interface. That is, we will have a differently named function corresponding to each of the functions declared in the interface.
関数呼び出しにおける競合を避けるために、インプリメンテーション関数の名前を「COMM_」列で始まる名前とすることが好ましい。そうすればスタブ関数におけるコードは、「functionName」に代えて「COMM_functionName」を呼び出すように変更される。 To avoid conflicts in function calls, it is preferable to name the implementation function with a name that begins with the “COMM_” column. Then, the code in the stub function is changed to call “COMM_functionName” instead of “functionName”.
この方法が動作するためには、存在する全ての機能クラスは、対応するメッセージハンドラオブジェクトおよびプロキシクラスも有していなければならない。全てのメッセージハンドラオブジェクトは、通信ライブラリによって提供されるIMsgHandlerクラスから得られなければならない。IMsgHandlerクラスは抽象的なクラスである。メッセージハンドラのインプリメンタの任務は、handleMessage、setObject、handleErrorの定義を提供することが好ましい。全てのメッセージタイプは、1から始まらなければならない(ゼロはhandleErrorのためにとっておく)。機能クラスは好ましくは、そのメンバが可変であるように対応するメッセージハンドラを有する。機能クラスのコンストラクタにおいて、機能クラスは、そのメッセージハンドラによって提供される関数を呼び出すことによって、メッセージハンドラとともに自身を登録させる。次にメッセージハンドラオブジェクトは、addMsgHandler関数をコマンドディスパッチャ上にパラメータとしてのメッセージハンドラとともに呼び出すことによって、コマンドディスパッチャとともに登録されなければならない。addMsgHandler関数は、メッセージハンドラおよび機能クラスにIDを割り当てる。機能クラスのデストラクタは、パラメータとしての機能クラス識別子を送ることによって、コマンドディスパッチャ上にremoveMsgHandler関数を呼び出さなければならない。またプロキシクラスも、機能クラスに関して説明されたように、同じ登録手順に従わなければならない。 In order for this method to work, every existing functional class must also have a corresponding message handler object and proxy class. All message handler objects must be obtained from the IMsgHandler class provided by the communication library. IMsgHandler class is an abstract class. The message handler implementer's mission preferably provides definitions for handleMessage, setObject, and handleError. All message types must start at 1 (zero is reserved for handleError). The function class preferably has a corresponding message handler so that its members are variable. In the function class constructor, the function class registers itself with the message handler by calling the function provided by the message handler. The message handler object must then be registered with the command dispatcher by calling the addMsgHandler function on the command dispatcher with the message handler as a parameter. The addMsgHandler function assigns an ID to the message handler and function class. The function class destructor must call the removeMsgHandler function on the command dispatcher by sending the function class identifier as a parameter. The proxy class must also follow the same registration procedure as described for the function class.
・システム構成とテスト
図13は、本発明の一実施形態による名目上のテストシーケンス2800を示している。テストシーケンス2800は、テスト環境2804におけるモジュールのインストール2815を含んでおり、これはテスト準備2806とシステムテスト2808とを包含している。初めに新しいモジュール(ハードウェアまたはソフトウェアまたはこれらの組み合わせ)2810が(ベンダの品質管理に基づいているかもしれないいくつかの外部手順によって)認証2812される。インストール2815はまず、オフラインシミュレーション2809のためのハードウェアモジュールエミュレーションの設定、テストプログラム開発2814のためのモジュールリソースファイルおよびインタフェースの設定、ならびにパターンコンパイル2816のためのモジュール特有のパターンコンパイラの設定を含むテスト準備2806を必要とする。次にシステムテスト2808が、較正2817、診断2818および構成2820からの入力を用いて実行される。そして新しいモジュールに対して、(1)インタフェース制御、(2)同期、順序付けおよび再現性、(3)エラー/アラーム対応、(4)マルチサイト制御、ならびに(5)マルチインストゥルメントモジュール制御を含むシステムテスト2808が行われる。
System Configuration and Test FIG. 13 shows a
(補足説明B)DUT100のシステムソフトウェアのフレームワークの仕様例
B.1 概要
本仕様は、試験エミュレート装置190、又は、システム制御装置110及びサイト制御装置130の分散システムによるエミュレート環境(オフライン環境)を中心として、DUT100のシステムソフトウェアのユーザ及び開発者向けのフレームワークを示す。
(Supplementary Explanation B) Specification example of DUT100
B.2 ユーザの仕様
本章は、試験装置10のシステムソフトウェアの、ユーザ向けのフレームワークを示す。
B.2.1 SimTester
「SimTester(シミュレーションされた試験装置)」は、コンピュータ20を図2に示した試験エミュレート装置190として機能させるアプリケーションプログラムである。SimTesterは、各モジュール及びDUTのDLLをロードして、システムソフトウェアからのコマンドに応答して試験装置をエミュレートする。ここで、システムソフトウェアは、シミュレートするパターンをロードし実行するランタイムソフトウェアである。
B. 2 User Specifications This chapter shows the framework for the user of the system software of the
B. 2.1 SimTester
“SimTester (simulated test apparatus)” is an application program that causes the
SimTesterは、起動されると、シミュレーションコンフィギュレーションファイルを読み出す。この結果、試験エミュレート装置190を同期モジュールエミュレート部250、同期接続モジュールエミュレート部260、及び/又は試験モジュールエミュレート部270として機能させる全てのモジュールエミュレーションDLLがロードされる。DLLがロードされると、SimTesterは、システム制御装置110からの接続を待つ。システム制御装置110は、テストプランをロードするとSimTesterに接続する。テストプランは、オフラインコンフィギュレーションファイルを含む。システム制御装置110がテストプランのデータを実際にロードする前に、オフラインコンフィギュレーションファイルをSimTesterに渡し、初期化を完了できるようにする。オフラインコンフィギュレーションファイルのロードに成功すれば、SimTesterはDUTモデルをロードし、DUT接続部280及びDUTシミュレート部200として試験モジュールエミュレート部270等のモジュールエミュレータに接続させる。この時点で、シミュレーションは、パターンの読み出し及び実行の準備ができたこととなる。
テストプランがアンロードされると、SimTesterはDUTモデルをアンロードするシグナルを受け、新たなオフラインコンフィギュレーションファイルの受付を待つ。
When SimTester is started, it reads the simulation configuration file. As a result, all module emulation DLLs that cause the
When the test plan is unloaded, SimTester receives a signal to unload the DUT model and waits for a new offline configuration file.
B.2.2 コンフィギュレーションファイル
SimTesterは、2つのコンフィギュレーションファイルを使用する。第1のファイルは、シミュレーションコンフィギュレーションファイルである。本ファイルは、シミュレーション中にどのようなモジュールが使用可能となるかを特定する。第2のファイルは、オフラインコンフィギュレーションファイルである。このファイルは、どのDUTモデルがロードされ、どのように試験装置に接続されるかを特定する。
B. 2.2 Configuration file
SimTester uses two configuration files. The first file is a simulation configuration file. This file specifies what modules are available during simulation. The second file is an offline configuration file. This file specifies which DUT model is loaded and how it is connected to the test equipment.
B.2.2.1 シミュレーションコンフィギュレーションファイル
図14から15は、シミュレーションコンフィギュレーションファイルの一例である。シミュレーションコンフィギュレーションファイルは、階層的にブロック化されている。
グローバルセクション5010は、全体的な設定を行う。InitialVoltageパラメータは、シミュレーションスタート時における全ての配線の電圧の初期値を設定する。この値は、ドライブされていない配線の電圧レベルの指定にも用いられる。
RecoveryRateパラメータは、オプションのパラメータであり、2つのアナログ信号が対向してドライブされた場合に用いられる。より具体的には、当該パラメータは、2つのアナログ信号により配線がドライブされた場合に、一定の電圧レベルとなるまでに要する時間を決定するために用いられる、時間当たりの電圧変化量を示す。
モジュールエミュレーションセクション5020は、モジュールDLLを指定し、当該モジュールDLLの設定を行う。
B. 2.2.1 Simulation Configuration File FIGS. 14 to 15 are examples of simulation configuration files. The simulation configuration file is hierarchically blocked.
The
The RecoveryRate parameter is an optional parameter and is used when two analog signals are driven opposite to each other. More specifically, this parameter indicates the amount of voltage change per time used to determine the time required to reach a certain voltage level when the wiring is driven by two analog signals.
The
Waveformセクションは、各モジュールにおいて使用される波形モデルを宣言する。波形モデルは、DUTの端子に接続されるチャネル毎に、Step(ステップ波形)、Slew(スリュー波形)、及びAnalog(アナログ波形)等を指定する。
Portセクションは、試験エミュレート装置190を同期モジュールエミュレート部250、同期接続モジュールエミュレート部260、及び/又は試験モジュールエミュレート部270等として機能させるモジュールエミュレータのインスタンスを宣言する。
LogicalPortパラメータは、実機におけるあるチャネルの不良等により、当該チャネルに挿入されていたモジュールを他のチャネルに差替えた場合に、モジュールエミュレータ上で当該差替えを記述するために設けられる。
モジュールエミュレーションセクション5020にけるParamsセクションは、モジュールDLLに渡すべきパラメータを記述する。
The Waveform section declares the waveform model used in each module. The waveform model designates Step (step waveform), Slew (slew waveform), Analog (analog waveform) and the like for each channel connected to the terminal of the DUT.
The Port section declares an instance of a module emulator that causes the
The LogicalPort parameter is provided to describe the replacement on the module emulator when a module inserted in the channel is replaced with another channel due to a failure of a certain channel in the actual machine.
The Params section in the
B.2.2.2 オフラインコンフィギュレーションファイル
図16から17は、オフラインコンフィギュレーションファイルの一例である。
グローバルセクション5110は、全体的な設定を行う。RegSelectパラメータは、パターンのトレース時にトレースすべきレジスタを選択するファイルを指定する。
DUTモデルセクション5120は、DUTモデルとなるDLLファイルの指定や、各種の設定を行う。
Waveformパラメータは、各DUTの端子ごとに、波形モデルを設定する。DUTブロックは、主にParamsブロックと、PinConnectionsブロックとを含む。
Paramsブロックは、モジュールDLLに渡すべきパラメータを記述する。
PinConnectionsブロックは、試験装置のリソースとDUTの端子との接続を指定する。すなわち例えば、「L3.11 10 1.0ns」は、論理ポート3の11番目のリソースはDUTの端子10に接続され、配線遅延が1.0nsであることを示す。ここで、論理ポートとは、例えばモジュールが実装されるポートであり、リソースとは、当該モジュール内に設けられたチャネル対応論理等である。
B. 2.2.2 Offline Configuration File FIGS. 16 to 17 are examples of offline configuration files.
The
The
The Waveform parameter sets a waveform model for each terminal of each DUT. The DUT block mainly includes a Params block and a PinConnections block.
The Params block describes parameters to be passed to the module DLL.
The PinConnections block specifies a connection between a test apparatus resource and a DUT terminal. That is, for example, “L3.11 10 1.0 ns” indicates that the eleventh resource of the
B.3 開発者向けの仕様
試験装置のモジュールやDUTモデルは、図5に示したモジュールエミュレートプログラムのフレームワークを用いて、例えばC++言語のクラス関数から派生することにより作成される。この派生に伴い、基本クラス中の幾つかの仮想関数を実装する必要がある。また、このフレームワークは、試験装置のモジュールとDUTモデルの間のI/Oの実現を容易化する関数を含む。そして、このフレームワークに従うことにより、得られたDLLを試験エミュレート装置190上で他のコンポーネントに接続してエミュレーションを行うことができる。
B. 3. Specification for Developers The module of the test apparatus and the DUT model are created by, for example, deriving from a class function of the C ++ language using the module emulation program framework shown in FIG. With this derivation, some virtual functions in the base class need to be implemented. The framework also includes functions that facilitate the realization of I / O between the test equipment module and the DUT model. By following this framework, the obtained DLL can be connected to other components on the
B.3.1 オフラインフレームワーククラスの構造
図18は、図5に示したクラス階層構造をより詳細に記述したクラス階層構造5200である。ThirdPartyModuleクラスやThirdPartyDUTクラス内の各メソッドは仮想メソッドであり、本モデルの振る舞いを定義するために実メソッドの実装を要する。SimComponent基本クラス内のcreateDomain、registerDomain、releaseDomain、getDomain、registerEvent、及びraiseEventメソッドは、試験エミュレート装置190をスケジュール制御部275等として機能させる、DUT100のソフトウェアシミュレーションエンジンをアクセスするサービスを提供する。
B. 3.1 Structure of Offline Framework Class FIG. 18 is a
図19は、当該フレームワークにおいてインターフェイスとして用いられるチャネルオブジェクトの使用ダイアグラムを示す。試験装置のモジュール及びDUTモデルは、SimChannelオブジェクトの配列を含む。SimChannelオブジェクトの各インスタンスは、当該モデルのI/Oチャネルに対応する。I/Oチャネルは、SimChanIDオブジェクトを用いて識別される。SimChannelクラスは、モジュールやDUTモデルが、出力チャネルに出力すべき電圧のタイミングを書き込み、入力チャネルから特定のタイミングで電圧を読み出すために用いられる。入力チャネルからある時間ウィンドウの間に入力された信号のエッジをスキャンする場合、SimChannel::getWaveformIterメソッドを呼び出して、SimWavefromIterのインスタンスを得ることができる。そして、SimWaveformIterオブジェクトは、呼び出し側のルーチンに、有限の時間ウィンドウの全てのエッジについて繰返し処理を行うことを可能とさせる。 FIG. 19 shows a usage diagram of a channel object used as an interface in the framework. The test equipment module and the DUT model include an array of SimChannel objects. Each instance of the SimChannel object corresponds to the I / O channel of the model. I / O channels are identified using SimChanID objects. The SimChannel class is used by modules and DUT models to write the timing of the voltage to be output to the output channel and to read the voltage from the input channel at a specific timing. When scanning the edge of a signal input during a certain time window from the input channel, an instance of SimWavefromIter can be obtained by calling the SimChannel :: getWaveformIter method. The SimWaveformIter object then allows the calling routine to perform iterative processing for all edges of a finite time window.
図20は、当該フレームワークにおいてインターフェイスとして用いられるイベントオブジェクトの使用ダイアグラムを示す。イベントは、当該フレームワークとサードパーティモデルとの間における通信に用いられる。イベントは、SimEventクラスによりカプセル化されている。SimEventのインスタンスは、SimEventMgrクラスにより生成される。一般的には、1つのモデルはSimEventMgrの1つのインスタンスを持つ。しかし、もし1つのモデルが他のモジュールに特別なイベントを送信する場合、複数のSimEventMgrインスタンスが必要となる。 FIG. 20 shows a usage diagram of an event object used as an interface in the framework. Events are used for communication between the framework and the third party model. Events are encapsulated by the SimEvent class. An instance of SimEvent is generated by the SimEventMgr class. Generally, one model has one instance of SimEventMgr. However, if one model sends special events to other modules, multiple SimEventMgr instances are required.
B.3.2 試験装置のモジュールの実装
本節では、単純なデジタルドライバモジュール及びデジタルストローブモジュールを例として、モジュールの実装方法を示す。
図21は、試験装置のモジュールの一例として、単純なデジタルモジュールの基本クラスを示す。デジタルドライバモジュール及びデジタルストローブモジュールのクラスは、基本クラスの派生クラスとして生成する。
開発者は、当該基本クラスに基づいて、基本クラスのコンストラクタ、チャネルオブジェクトを返すgetChannelメソッド、モジュールのメモリアドレス空間を設定するsetBaseAddressメソッド、バススイッチ140のスロット番号を設定するsetBusNumberメソッド、割込みの禁止/許可を設定するlockInterrupt/unlockInterruptメソッド、及び、モジュールのメモリアドレス空間をアクセスするread/writeメソッド等を実装する。
B. 3.2 Mounting the module of the test equipment This section shows how to mount the module by taking a simple digital driver module and digital strobe module as an example.
FIG. 21 shows a basic class of a simple digital module as an example of a module of a test apparatus. The classes of the digital driver module and the digital strobe module are generated as derived classes of the base class.
The developer, based on the base class, the constructor of the base class, the getChannel method that returns the channel object, the setBaseAddress method that sets the memory address space of the module, the setBusNumber method that sets the slot number of the
B.3.2.1 ローカルイベント
オフラインのシミュレーションは、イベントドリブンで行われる。すなわち、各モジュールはイベントを登録する。そして、イベントが発生するとイベントを登録したモジュールのhandleEventメソッドが呼び出される。
イベントは、SimEventクラスによって定義され、同期イベント及び非同期イベントに分類される。非同期イベントは、更にシステムイベント及びローカル非同期イベントに分類される。システムイベントは、例えばシステム割込み、及びパターン生成の終了等である。
B. 3.2.1 Local events Offline simulations are event driven. That is, each module registers an event. When an event occurs, the handleEvent method of the module that registered the event is called.
Events are defined by the SimEvent class and are classified as synchronous events and asynchronous events. Asynchronous events are further classified into system events and local asynchronous events. The system event is, for example, a system interrupt or the end of pattern generation.
B.3.2.1.1 ローカル非同期イベント
ローカル非同期イベントは、モジュール間の通信に用いられる。このイベントには、時間は関連付けられない。非同期イベントの受信を要求する場合、モジュールは、オーバーロードされた、時間の引数を持たないregisterEventメソッドによりイベントを登録する。非同期イベントを発生する場合、モジュールは、raiseEventメソッドを呼び出す。非同期イベントを受信するモジュールは、オーバーロードされた、時間の引数を持たないhandleEventメソッド内においてイベント処理を行う。
B. 3.2.1.1 Local asynchronous events Local asynchronous events are used for communication between modules. No time is associated with this event. When requesting receipt of an asynchronous event, the module registers the event with the overloaded registerEvent method without a time argument. When generating an asynchronous event, the module calls the raiseEvent method. A module that receives an asynchronous event performs event processing in an overloaded handleEvent method that does not have a time argument.
B.3.2.1.2 ローカル同期イベント
ローカル同期イベント(同期イベント)は、モジュールがリードイベント又はライトイベント、すなわち信号のストローブ又はドライブをスケジュールするために用いられる。同期イベントは、モジュールが特定のタイミングで通知を受けるために用いられ、モジュール間の通信には用いられない。
B. 3.2.1.2 Local Sync Event A local sync event (synchronization event) is used by a module to schedule a read event or a write event, ie a signal strobe or drive. The synchronization event is used for a module to receive a notification at a specific timing, and is not used for communication between modules.
B.3.3 単純なデジタルドライバモジュール
図22は、単純なデジタルドライバモジュールのクラス宣言を示す。開発者は、当該クラスのコンストラクタ、ベンダ/モジュールの情報を返すgetModuleIDsメソッド、及び、ドライバモジュールを初期化するinitEventsメソッド等を実装する。
図23は、デジタルドライバモジュールのhandleEventメソッドの一例である。デジタルドライバモジュールは、現在のサイクルにおいて、全てのチャネルにエッジを書き込む。この書き込みは、SimChannelオブジェクトの配列であるm_channelsの各要素におけるsetメソッドにより行われる。SimChannelオブジェクトは、setメソッドの他、offメソッド及びendメソッドを有する。offメソッドは、信号のドライブを中止する。endメソッドは、当該チャネルが所定の期間、すなわち例えばサイクル期間の信号の生成を終えたことをフレームワークに通知する。この通知を受けると、チャネルの反対側のコンポーネント、すなわち例えばDUT接続部280に対してチャネルの読み出しを指示するシグナルが通知される。この結果、生成した信号が当該コンポーネントによって読み出される。一般的には、使用者は、複数のsetメソッドにより所定の期間の電圧を特定した後、当該期間の最後にendメソッドを1回呼び出すことで、当該期間の信号を生成し伝搬させることができる。なお、setメソッド及びendメソッドの関係については、B.3.5において詳細に示す。
B. 3.3 Simple Digital Driver Module FIG. 22 shows a class declaration for a simple digital driver module. The developer implements a constructor of the class, a getModuleIDs method that returns vendor / module information, an initEvents method that initializes the driver module, and the like.
FIG. 23 shows an example of the handleEvent method of the digital driver module. The digital driver module writes edges to all channels in the current cycle. This writing is performed by a set method in each element of m_channels which is an array of SimChannel objects. The SimChannel object has an off method and an end method in addition to the set method. The off method stops driving the signal. The end method notifies the framework that the channel has finished generating a signal for a predetermined period, for example, a cycle period. When this notification is received, a signal instructing reading of the channel is notified to the component on the opposite side of the channel, for example, the
B.3.4 単純なデジタルストローブモジュール
図24は、単純なデジタルストローブモジュールのクラス宣言を示す。開発者は、デジタルドライバモジュールと同様にして、コンストラクタ、getModuleIDメソッド、initEventsメソッド等を実装する。ここで、デジタルストローブモジュールにおいては、DUTの出力値及び期待値の比較結果をフェイルメモリに格納するため、read及びwriteメソッドを変更する。
図25は、デジタルストローブモジュールのhandleEventメソッドの一例である。デジタルストローブモジュールは、SimChannelのreadメソッドを用いて、特定のタイミングにおける当該チャネルの電圧を読み出す。そして、サイクル期間の処理を終えた後、SimEventMgrオブジェクトに次のサイクルの終了タイミングを通知しイベントの発生を要求すると共に、registerEventメソッドにより当該イベントを登録する。
B. 3.4 Simple Digital Strobe Module FIG. 24 shows the class declaration of a simple digital strobe module. The developer implements a constructor, a getModuleID method, an initEvents method, and the like in the same manner as the digital driver module. Here, in the digital strobe module, the read and write methods are changed in order to store the comparison result between the output value of the DUT and the expected value in the fail memory.
FIG. 25 is an example of the handleEvent method of the digital strobe module. The digital strobe module reads the voltage of the channel at a specific timing using the read method of SimChannel. After finishing the processing of the cycle period, the SimEventMgr object is notified of the end timing of the next cycle to request the occurrence of the event, and the event is registered by the registerEvent method.
B.3.5 DUTモデルの実装
DUTモデルは、イベントドリブンでない点を除き、試験装置のモジュールと同様の手順により作成できる。したがって、DUTモデルの基本クラスSimComponentSteppedは、initEventsメソッド、handleEventメソッド、及びバスI/Oメソッドを実装可能とする。パターン実行の間におけるDUTモデルの振る舞いを定義するために、関数runを実装する必要がある。
図26は、試験装置によりドライブされた8本の配線が、試験装置に再度入力されるDUTモデルのクラス定義を示す。開発者は、当該クラスに基づいて、コンストラクタ、getChannelメソッド、及びrunメソッド等を実装する。
B. 3.5 Implementation of DUT model A DUT model can be created by the same procedure as a module of a test apparatus except that it is not event driven. Accordingly, the basic class SimComponentStepped of the DUT model can implement an initEvents method, a handleEvent method, and a bus I / O method. The function run must be implemented to define the behavior of the DUT model during pattern execution.
FIG. 26 shows a class definition of a DUT model in which eight wires driven by the test apparatus are input again to the test apparatus. The developer implements a constructor, a getChannel method, a run method, and the like based on the class.
図27は、本DUTモデルのrunメソッドの一例を示す。runメソッドは、開始時刻及び終了時刻の2つの引数を有する。これらの引数により、DUTモデルは、入力端子からの入力に基づいて内部状態を開始時刻から終了時刻まで進め、DUTの内部状態の変化の結果に基づいてデータを出力する。入力は、SimChannelオブジェクトを通して行われ、出力は、SimChannelオブジェクトに対して送られる。ここで、出力は、終了時刻の後にまとめて行われる。
runメソッドは、入力端子をスキャンし、DUTの内部状態を更新し、DUTの出力チャネルにデータを出力するステップを含む。ここで、実行の時間ウィンドウの外に出力信号のfallエッジが存在する場合においても、fallエッジを出力チャネルにsetメソッドにより書き込む必要がある。そして、endメソッドが呼び出される際には、出力信号はfallした状態でなければならない。これにより、出力信号の値が変化しないため、当該チャネルの反対側のコンポーネントは、終了時刻までのチャネルの電圧値を正しく読み出すことができる。これを保証するために、フレームワークは、最後のendメソッドの呼び出し後に、当該endメソッドより先の時刻についてのチャネルへの書き込みを禁止する。
FIG. 27 shows an example of the run method of this DUT model. The run method has two arguments, a start time and an end time. With these arguments, the DUT model advances the internal state from the start time to the end time based on the input from the input terminal, and outputs data based on the result of the change in the internal state of the DUT. Input is through the SimChannel object, and output is sent to the SimChannel object. Here, the output is performed collectively after the end time.
The run method includes scanning the input terminal, updating the internal state of the DUT, and outputting data to the output channel of the DUT. Here, even when the fall edge of the output signal exists outside the execution time window, it is necessary to write the fall edge to the output channel by the set method. And when the end method is called, the output signal must be in a fallen state. Thereby, since the value of the output signal does not change, the component on the opposite side of the channel can correctly read the voltage value of the channel up to the end time. In order to guarantee this, the framework prohibits writing to the channel for a time earlier than the end method after calling the last end method.
B.3.6 オフラインのDLLインターフェイス
次に、当該フレームワークに基づくモジュール及びDUTモデルのDLLをビルドし、これらのモデルのインスタンスを生成する関数、及び、処理の終了後にクリーンアップする関数をエクスポートする。これにより、試験装置のモジュールをエミュレートするDLL及びDUTをエミュレートするDLLを生成することができる。
B. 3.6 Offline DLL Interface Next, DLLs of modules and DUT models based on the framework are built, and functions that generate instances of these models and functions that are cleaned up after the processing ends are exported. This makes it possible to generate a DLL that emulates a module of a test apparatus and a DLL that emulates a DUT.
(補足説明C)システムバスアクセスライブラリの仕様例
C.1 概要
図28は、実環境6000及びエミュレート環境6050におけるシステムバスアクセスライブラリ6014の位置付けを示します。DUT100の実環境6000及び試験エミュレート装置190によるエミュレート環境6050において共通して用いられます。
(Supplementary explanation C) Specification example of system
図28(a)は、実環境6000(オンライン環境)におけるシステムバスアクセスライブラリ6014の位置付けを示します。ソフトウェア6010は、図1に示したサイト制御装置130上で動作するソフトウェアです。ソフトウェア6010は、試験装置10の試験を制御するプログラムからHLC(High Level Command)を受け取って解釈してハードウェア6030へのアクセスコマンドを生成するHLC処理部6012と、アクセスコマンドに基づいて通信処理を行う通信ライブラリ及び通信ライブラリの指示に基づきシステムバス(本例においてはPCIバス)をアクセスするバスアクセスライブラリを含むシステムバスアクセスライブラリ6014と、システムバスアクセスライブラリ6014の指示に基づいてシステムバスを制御するPCIバスドライバ6016とを含みます。
FIG. 28A shows the position of the system
ハードウェア6030は、図1に示したサイト制御装置130が有するバスIF6032と、バススイッチ140と、同期モジュール150、同期接続モジュール160及び/又は試験モジュール170等とを含みます。サイト制御装置130のバススロットに接続されたバスIF6032は、PCIバスドライバ6016により発行されたアクセスを、バススイッチ140を介して同期モジュール150及び/又は試験モジュール170等のモジュールへ送信し、当該アクセスの処理を行わせます。
The
図28(b)は、エミュレート環境6050(オフライン環境)におけるシステムバスアクセスライブラリ6014の位置付けを示します。オフラインプロセス6060は、図1に示したサイト制御装置130又は試験エミュレート装置190上で動作するソフトウェアであり、試験エミュレート装置190をサイト制御エミュレート部230として機能させます。オフラインプロセス6060は、ソフトウェア6010においてハードウェア6030を制御する代わりに試験装置エミュレートプロセス6080を制御するように変更されたプロセスです。オフラインプロセス6060は、ソフトウェア6010と略同様のHLC処理部6012及びシステムバスアクセスライブラリ6014を用いて、ソフトウェア6010の使用者に対してソフトウェア6010と共通のユーザレベルインターフェイスを提供します。
FIG. 28B shows the positioning of the system
試験装置エミュレートプロセス6080は、試験装置10をエミュレートするプロセスであり、バススイッチ140をエミュレートするシステムバスエミュレータ6084と、同期モジュール150、同期接続モジュール160、及び/又は試験モジュール170をエミュレートするモジュールエミュレータ6086とを含みます。システムバスエミュレータ6084は、試験エミュレート装置190をバススイッチエミュレート部240として機能させます。モジュールエミュレータ6086は、試験エミュレート装置190を同期モジュールエミュレート部250、同期接続モジュールエミュレート部260及び/又は試験モジュールエミュレート部270として機能させます。以下、明記しない限り、「モジュール」は、オンライン環境における同期モジュール150、同期接続モジュール160、及び試験モジュール170と、オフライン環境における同期モジュールエミュレート部250、同期接続モジュールエミュレート部260、及び試験モジュールエミュレート部270との総称として用います。
The test
C.2 モジュール制御汎用関数
本章では、サイト制御装置130上で動作し同期モジュール150、同期接続モジュール160、及び/又は試験モジュール170を制御するモジュールドライバで利用できる汎用的な機能を説明します。モジュールドライバ内では、当ライブラリを用いて各種モジュール内のレジスタやメモリをアクセスし、デバイス測定に必要なデータをリード/ライトします。本章で説明する主な機能は下記のとおりです。
1. プログラムIOを用いたバスアクセス
2. DMA機能を用いたバスアクセス
3. インターラプトハンドリング
4. ライブラリ/システムバスの制御
C. 2 Module control general-purpose functions This chapter describes general-purpose functions that can be used by the module driver that operates on the site controller 130 and controls the synchronization module 150, the synchronization connection module 160, and / or the test module 170. In the module driver, this library is used to access the registers and memory in various modules and read / write data necessary for device measurement. The main functions described in this chapter are as follows.
1. Bus access using program IO
2. Bus access using DMA function
3. Interrupt handling
4. Library / system bus control
C.2.1 プログラムIOを用いたバスアクセス
システムバスのアクセスは、バス上に接続された各モジュールのレジスタへMW(Machine Word)を直接に書き込む方式と、各モジュールへHLC(High Level Command) を転送する方式の2種類があります。何れの場合も、AddressとDataがシステムバス 上を流れます。各モジュール側でAddressによりHLCと認識された場合、各モジュール側でそのHLCに対応した処理を実行します。サイトCPU(サイト制御装置130)から各モジュールへのデータ書き込みは、サイトCPUに接続されている各モジュールへ同じデータが一斉に送出され、各モジュール側で該当するデータを取り込みます。
C. 2.1 Bus access using program IO For system bus access, MW (Machine Word) is directly written to the registers of each module connected on the bus, and HLC (High Level Command) is transferred to each module. There are two types of methods. In either case, Address and Data flow on the system bus. When each module recognizes an HLC by Address, each module executes the process corresponding to that HLC. When data is written from the site CPU (site controller 130) to each module, the same data is sent all at once to the modules connected to the site CPU, and the corresponding data is captured by each module.
システムバスや各モジュール内にはFIFOが配置されており、サイトCPUから各モジュールへデータを転送した場合、各モジュール のライト動作の終了を待たないでCPUのライト動作を終了します(posted write)。データが実際にレジスタに格納されるまでの時間は、CPUからターゲットのレジスタの間に存在するFIFOの空き状態によって影響を受けます。全てのモジュールに対してデータが確実に届いたことを保証する場合は、FIFOのフラッシュ待ち機能を利用してください。各モジュール内のレジスタのリードを用いてFIFOをフラッシュする場合は、リード対象のモジュールのFIFOのみフラッシュされたことが保証できます。 FIFOs are placed in the system bus and each module, and when data is transferred from the site CPU to each module, the CPU write operation ends without waiting for the end of the write operation of each module (posted write) . The time until the data is actually stored in the register is affected by the availability of the FIFO that exists between the CPU and the target register. If you want to guarantee that the data has been delivered to all modules, please use the FIFO flash wait function. If the FIFO is flushed using a register read within each module, it can be guaranteed that only the FIFO of the module being read has been flushed.
オフラインのシステムバスエミュレータ6084にはFIFOはありません。そのためFIFOを持たないモジュールエミュレータ6086に対してPIOのライトを実行した場合、モジュールエミュレータ6086のレジスタにデータを格納したあと関数から戻ります。
また、オンライン同様にFIFOを持ったモジュールエミュレータ6086にデータを書き込むと、モジュールエミュレータ6086のFIFOにデータを格納した後、直ちにライト処理を終了します。
The offline
In addition, when data is written to the module emulator 6086 having a FIFO as in the online mode, the data is stored in the FIFO of the module emulator 6086, and then the write processing is immediately terminated.
C.2.1.1 プログラムIOを用いたライト
モジュールのレジスタに対してデータを書き込みます。サイトCPUは、書き込んだデータがモジュールに到達する前にライト動作を終了します(posted write)。
C. 2.1.1 Write using Program IO Writes data to the module register. The site CPU finishes the write operation before the written data reaches the module (posted write).
・名前:BCL_GBI_write
・形式:int BCL_GBI_write(unsigned int address, unsigned int data);
・引数:address(マシンワードのアドレス)、data(書き込むデータ)
・戻り値:BCL_GBI_OK(正常終了)、BCL_GBI_ERROR(エラー)
・ Name: BCL_GBI_write
-Format: int BCL_GBI_write (unsigned int address, unsigned int data);
Arguments: address (machine word address), data (data to be written)
Return values: BCL_GBI_OK (normal termination), BCL_GBI_ERROR (error)
C.2.1.2 プログラムIOを用いたリード
モジュールのレジスタのデータを読み出します。サイトCPUは、データが読み出されるまで待ちます。また、CPUからターゲットのレジスタの間に存在するFIFO内のデータがフラッシュされるまで対象レジスタのリードは待たされます。
C. 2.1.2 Read using Program IO Reads the register data of the module. The site CPU waits for data to be read. In addition, reading of the target register is waited until the data in the FIFO existing between the CPU and the target register is flushed.
・名前:BCL_GBI_read
・形式:int BCL_GBI_read(unsigned int address, unsigned int *data);
・引数:address(マシンワードのアドレス)、data(データを読み込む変数へのポインタ)
・戻り値:BCL_GBI_OK(正常終了)、BCL_GBI_ERROR(エラー)
・ Name: BCL_GBI_read
-Format: int BCL_GBI_read (unsigned int address, unsigned int * data);
Arguments: address (machine word address), data (pointer to variable to read data)
Return values: BCL_GBI_OK (normal termination), BCL_GBI_ERROR (error)
C.2.1.3 プログラムIOを用いたブロックライト
モジュール レジスタに対してまとまったデータを書き込みます。データのフォーマットはアドレスとデータをペアで指定します。システムバスはライトサイクルを指定された回数分実行します。
複数の任意アドレスに対してデータを書き込む場合は、毎回BCL_GBI_write()関数で書き込むよりも高速に実行することが可能です。これは、関数呼び出しが1回で済む点や複数回の排他処理が行われないためです。
C. 2.1.3 Block write using program IO Module Writes all data to the register. The data format specifies an address and data as a pair. The system bus executes the write cycle for the specified number of times.
When writing data to multiple arbitrary addresses, it can be executed faster than writing with the BCL_GBI_write () function every time. This is because only one function call is required, and multiple exclusions are not performed.
・名前:BCL_GBI_writeBlock
・形式:int BCL_GBI_writeBlock(unsigned int *address, unsigned int *data, unsigned int number);
・引数:address(アドレスが格納されている配列へのポインタ)、data(データが格納されている配列へのポインタ)、number( 書き込むデータの数)
・戻り値:BCL_GBI_OK(正常終了)、BCL_GBI_ERROR(エラー)
・ Name: BCL_GBI_writeBlock
-Format: int BCL_GBI_writeBlock (unsigned int * address, unsigned int * data, unsigned int number);
Arguments: address (pointer to the array storing the address), data (pointer to the array storing the data), number (number of data to be written)
Return values: BCL_GBI_OK (normal termination), BCL_GBI_ERROR (error)
C.2.1.4 プログラムIOを用いたブロックリード
モジュールのレジスタのデータをまとまった単位で読み出します。レジスタのアドレスは不連続な値で指定が可能です。システムバスはリードサイクルを指定された回数分実行します。
複数の任意アドレスからデータを読み込む場合は、毎回BCL_GBI_read()関数で読み込むよりも高速に実行することが可能です。これは、関数呼び出しが1回で済む点や複数回の排他処理が行われないためです。
C. 2.1.4 Block Read Using Program IO Reads the module register data in batch units. The register address can be specified as a discontinuous value. The system bus executes the specified number of read cycles.
When reading data from multiple arbitrary addresses, it can be executed faster than reading with the BCL_GBI_read () function each time. This is because only one function call is required, and multiple exclusions are not performed.
・名前:BCL_GBI_readBlock
・形式:int BCL_GBI_readBlock(unsigned int *address, unsigned int *data, unsigned int number);
・引数:address(アドレスが格納されている配列へのポインタ)、data(データを読み込む配列へのポインタ)、number(読み込むデータの数)
・戻り値:BCL_GBI_OK(正常終了)、BCL_GBI_ERROR(エラー)
・ Name: BCL_GBI_readBlock
-Format: int BCL_GBI_readBlock (unsigned int * address, unsigned int * data, unsigned int number);
Arguments: address (pointer to the array storing the address), data (pointer to the array from which data is read), number (number of data to be read)
Return values: BCL_GBI_OK (normal termination), BCL_GBI_ERROR (error)
C.2.1.5 プログラムIOを用いた連続ブロックライト
モジュール の等間隔アドレスに配置されたレジスタに対してデータ列を書き込みます。指定された開始アドレスからデータ列を書き込み、データを書き込む毎にアドレスへオフセット値が加算されます。オフセット値は0から0x3ffffffまで指定することが可能です。システムバス はライトサイクルを指定された回数分実行します。
複数の固定オフセットアドレスに対してデータを書き込む場合は、BCL_GBI_writeBlock()関数で書き込むよりも高速に実行することが可能です。これは、アドレスの加算がハードウェアで行われることにより、PCIバス上を流れるパケット数が少なくなるためです。
C. 2.1.5 Continuous block write using program IO Writes a data string to a register located at an evenly spaced address in a module. A data string is written from the specified start address, and an offset value is added to the address each time data is written. The offset value can be specified from 0 to 0x3ffffff. The system bus executes the write cycle for the specified number of times.
When writing data to multiple fixed offset addresses, it can be executed faster than writing with the BCL_GBI_writeBlock () function. This is because the number of packets flowing on the PCI bus is reduced because the address addition is performed by hardware.
・名前:BCL_GBI_writeSeq
・形式:int BCL_GBI_writeSeq(unsigned int address, unsigned int *data, unsigned int number, unsigned int offset);
・引数: address(マシンワードのアドレス)、data(データが格納されている配列へのポインタ)、number(書き込むデータの数)、offset(データ転送毎にアドレスに加算されるオフセット値)
・戻り値:BCL_GBI_OK(正常終了)、BCL_GBI_ERROR(エラー)
・ Name: BCL_GBI_writeSeq
-Format: int BCL_GBI_writeSeq (unsigned int address, unsigned int * data, unsigned int number, unsigned int offset);
Arguments: address (machine word address), data (pointer to the array where data is stored), number (number of data to be written), offset (offset value added to the address for each data transfer)
Return values: BCL_GBI_OK (normal termination), BCL_GBI_ERROR (error)
C.2.1.6 プログラムIOを用いた連続ブロックリード
モジュール の等間隔アドレスに配置されたレジスタからデータ列を読み込みます。指定された開始アドレスからデータ列を読み出し、データを読み出す毎にアドレスへオフセット値が加算されます。オフセット値は0から0x3ffffffまで指定することが可能です。システムバス はリードサイクルを指定された回数分実行します。
複数の固定オフセットアドレスからデータを読み込む場合は、BCL_GBI_readBlock()関数で読み込むよりも高速に実行することが可能です。これは、アドレスの加算がハードウェアで行われることにより、PCIバス上を流れるパケット数が少なくなるためです。
C. 2.1.6 Continuous block read using program IO Reads a data string from a register located at an evenly spaced address in a module. The data string is read from the specified start address, and an offset value is added to the address each time data is read. The offset value can be specified from 0 to 0x3ffffff. The system bus executes the specified number of read cycles.
When reading data from multiple fixed offset addresses, it can be executed faster than reading with the BCL_GBI_readBlock () function. This is because the number of packets flowing on the PCI bus is reduced because the address addition is performed by hardware.
・名前:BCI_GBI_readSeq
・形式:int BCL_GBI_readSeq(unsigned int address, unsigned int *data, unsigned int number,unsigned int offset);
・引数: address(マシンワードのアドレス)、data(データを読み込むための配列へのポインタ)、number(読み込むデータの数)、offset(データ転送毎にアドレスに加算されるオフセット値)
・戻り値:BCL_GBI_OK(正常終了)、BCL_GBI_ERROR(エラー)
・ Name: BCI_GBI_readSeq
-Format: int BCL_GBI_readSeq (unsigned int address, unsigned int * data, unsigned int number, unsigned int offset);
Arguments: address (address of machine word), data (pointer to the array for reading data), number (number of data to be read), offset (offset value added to the address for each data transfer)
Return values: BCL_GBI_OK (normal termination), BCL_GBI_ERROR (error)
C.2.2 DMA機能を用いたバスアクセス
DMAを用いたデータ転送には、以下の同期/非同期のライト/リードの4種類の関数を準備しています。また、それぞれについて、バーストDMA/シングルDMAを選択できます。
(1)同期/非同期DMA
同期DMAの場合、関数はDMAの終了を待って関数を終了します。DMAの終了を待って関数は終了しますが、転送データはシステムバスIF やモジュール内のFIFOに残っている場合があります。
非同期DMAの場合、関数はDMAの終了を待たずに関数を終了します。このため、データ領域のライフサイクルをDMAが終了するまで利用者側で保証する必要があります。また、非同期DMAの転送が終了しないあいだに、さらにDMAを利用する関数が実行された場合、前のDMA転送が終了するまで関数は待たされます。
非同期DMA処理の完了を待つための識別情報として、転送IDが用意されています。この転送IDは、32ビットの符号なしデータで、32ビットを越える回数のDMA転送があった場合は、0に戻り再利用されます。
C. 2.2 Bus access using DMA function
For data transfer using DMA, the following four functions are prepared: synchronous / asynchronous write / read. For each, burst DMA or single DMA can be selected.
(1) Synchronous / asynchronous DMA
For synchronous DMA, the function waits for DMA to finish before exiting. The function ends after the end of DMA, but the transfer data may remain in the system bus IF or FIFO in the module.
For asynchronous DMA, the function exits without waiting for the DMA to finish. For this reason, it is necessary for the user side to guarantee the life cycle of the data area until DMA ends. If a function that uses DMA is executed while asynchronous DMA transfer is not completed, the function waits until the previous DMA transfer is completed.
A transfer ID is provided as identification information for waiting for the completion of asynchronous DMA processing. This transfer ID is 32-bit unsigned data, and when there are more than 32 bits of DMA transfer, it returns to 0 and is reused.
(2)バースト/シングルDMA
バーストDMA転送は、システムバス 上をバースト専用のパケットでデータを転送します。この転送は、1個のアドレスとN個(最大64個)のデータを1組のパケットとして、指定されたデータが終了するまでパケットを繰り返し転送します。このため高速転送が可能です。
また、DMA転送時に各種モジュール側のアドレスの増加値を指定することができます。この増加値は、2組目以降のパケット転送時に、パケットの先頭アドレスの算出に利用します。すなわち、「(パケットのアドレス) = ( (指定した増加値) * (前回のパケット中のデータの個数)) + (前回のパケットの先頭アドレス)」となります。
また、バースト転送が可能なレジスタは、モジュール に依存しているため、利用可能なレジスタかどうかの確認が必要です。
(2) Burst / Single DMA
In burst DMA transfer, data is transferred on the system bus in burst-dedicated packets. In this transfer, one address and N pieces (maximum 64 pieces) of data are taken as a set of packets, and the packet is transferred repeatedly until the specified data ends. Therefore, high-speed transfer is possible.
In addition, the increment value of the address on each module side can be specified during DMA transfer. This increased value is used to calculate the start address of the packet when transferring the second and subsequent packets. That is, "(packet address) = ((increment value specified) * (number of data in the previous packet)) + (start address of the previous packet)".
In addition, since the register that can perform burst transfer depends on the module, it is necessary to check whether it is an available register.
シングルDMA転送は、システムバス 上をプログラムIOと同様にアドレスとデータがセットで転送されます。このため、転送速度はバーストDMAより低いですが、どのレジスタに対しても転送が可能です。DMA転送時、システムバス側のアドレスの増加値を指定することができます。この増加値は、アドレスを発生するごとにアドレスに増加値が加算されます。
オフラインの場合、バースト転送を指定しても内部的にはシングル転送として扱う仕様もとり得ます。この場合、バースト転送をサポートしてないレジスタへの転送も可能です。しかし、オンラインでの利用を考慮すると、ハードウェアでバースト転送をサポートしてないレジスタに対しての利用は避けてください。また、オフラインの同期/非同期DMAはオンラインと同様です。
In single DMA transfer, addresses and data are transferred as a set on the system bus in the same way as program IO. For this reason, the transfer rate is lower than burst DMA, but transfer to any register is possible. During DMA transfer, the increment value of the address on the system bus side can be specified. This increment value is added to the address every time an address is generated.
In the offline mode, even if burst transfer is specified, it can be handled internally as single transfer. In this case, it is possible to transfer to a register that does not support burst transfer. However, when considering online use, avoid using it for registers that do not support burst transfer in hardware. Offline synchronous / asynchronous DMA is the same as online.
C.2.2.1 DMA機能を用いた同期ライト
サイトCPUのメモリ上に配置したデータをDMAを用いて各モジュールへ転送します。この関数は、同期ライトでバースト/シングルの指定が可能です。
C. 2.2.1 Synchronous write using DMA function Data placed on the site CPU memory is transferred to each module using DMA. This function can specify burst / single with synchronous write.
・名前:BCL_GBI_writeSyncDMA
・形式:int BCL_GBI_writeSyncDMA(unsigned int address, unsigned int *data, unsigned int number, unsigned int offset, unsigned int mode);
・引数: address(マシンワードのアドレス)、data(データが格納されている配列へのポインタ)、number(書き込むデータの数)、offset(データ転送毎にアドレスに加算されるオフセット値)、mode(Burst/Single の動作モード)
・戻り値:BCL_GBI_OK(正常終了)、BCL_GBI_ERROR(エラー)
-Name: BCL_GBI_writeSyncDMA
・ Format: int BCL_GBI_writeSyncDMA (unsigned int address, unsigned int * data, unsigned int number, unsigned int offset, unsigned int mode);
Arguments: address (address of machine word), data (pointer to the array storing data), number (number of data to be written), offset (offset value added to the address every time data is transferred), mode ( Burst / Single operation mode)
Return values: BCL_GBI_OK (normal termination), BCL_GBI_ERROR (error)
C.2.2.2 DMA機能を用いた同期リード
モジュール内のレジスタからDMAを用いてデータをサイトCPUのメモリ上へ読み出します。この関数は、同期リードでバースト/シングルの指定が可能です。
C. 2.2.2 Synchronous read using DMA function Data is read from the register in the module to the memory of the site CPU using DMA. This function can specify burst / single with synchronous read.
・名前:BCL_GBI_readSyncDMA
・形式:int BCL_GBI_readSyncDMA(unsigned int address, unsigned int *data, unsigned int number, unsigned int offset, unsigned int mode);
・引数: address(マシンワードのアドレス)、data(データを読み込むための配列へのポインタ)、number(読み込むデータの数)、offset(データ転送毎にアドレスに加算されるオフセット値)、mode(Burst/Single の動作モード)
・戻り値:BCL_GBI_OK(正常終了)、BCL_GBI_ERROR(エラー)
-Name: BCL_GBI_readSyncDMA
・ Format: int BCL_GBI_readSyncDMA (unsigned int address, unsigned int * data, unsigned int number, unsigned int offset, unsigned int mode);
Arguments: address (address of machine word), data (pointer to array for reading data), number (number of data to be read), offset (offset value added to the address for each data transfer), mode (Burst / Single operation mode)
Return values: BCL_GBI_OK (normal termination), BCL_GBI_ERROR (error)
C.2.2.3 DMA機能を用いた非同期ライト
サイトCPUのメモリ上に配置したデータをDMAを用いて各種モジュールへ転送します。この関数は、非同期ライトでバースト/シングルの指定が可能です。
C. 2.2.3 Asynchronous write using DMA function The data placed in the memory of the site CPU is transferred to various modules using DMA. This function can specify burst / single for asynchronous writes.
・名前:BCL_GBI_writeAsyncDMA
・形式:int BCL_GBI_writeAsyncDMA(unsigned int address, unsigned int *data, unsigned int number, unsigned int offset, unsigned int mode, int *transferID);
・引数: address(マシンワードのアドレス)、data(データが格納されている配列へのポインタ)、number(書き込むデータの数)、offset(データ転送毎にアドレスに加算されるオフセット値)、mode(Burst/Single の動作モード)、transferID(転送終了待ちIDのポインタ)
・戻り値:BCL_GBI_OK(正常終了)、BCL_GBI_ERROR(エラー)
-Name: BCL_GBI_writeAsyncDMA
-Format: int BCL_GBI_writeAsyncDMA (unsigned int address, unsigned int * data, unsigned int number, unsigned int offset, unsigned int mode, int * transferID);
Arguments: address (address of machine word), data (pointer to the array storing data), number (number of data to be written), offset (offset value added to the address every time data is transferred), mode ( Burst / Single operation mode), transferID (transfer end wait ID pointer)
Return values: BCL_GBI_OK (normal termination), BCL_GBI_ERROR (error)
C.2.2.4 DMA機能を用いた非同期リード
モジュール内のレジスタからDMAを用いてデータをサイトCPUのメモリ上へ読み出します。この関数は、非同期リードでバースト/シングルの指定が可能です。
C. 2.2.4 Asynchronous read using DMA function Data is read from the register in the module to the memory of the site CPU using DMA. This function can specify burst / single with asynchronous read.
・名前:BCL_GBI_readAsyncDMA
・形式:int BCL_GBI_readAsyncDMA(unsigned int address, unsigned int *data, unsigned int number, unsigned int offset, unsigned int mode);
・引数: address(マシンワードのアドレス)、data(データを読み込むための配列へのポインタ)、number(読み込むデータの数)、offset(データ転送毎にアドレスに加算されるオフセット値)、mode(Burst/Single の動作モード)、transferID(転送終了待ちIDのポインタ)
・戻り値:BCL_GBI_OK(正常終了)、BCL_GBI_ERROR(エラー)
-Name: BCL_GBI_readAsyncDMA
-Format: int BCL_GBI_readAsyncDMA (unsigned int address, unsigned int * data, unsigned int number, unsigned int offset, unsigned int mode);
Arguments: address (address of machine word), data (pointer to array for reading data), number (number of data to be read), offset (offset value added to the address for each data transfer), mode (Burst / Single operation mode), transferID (transfer end wait ID pointer)
Return values: BCL_GBI_OK (normal termination), BCL_GBI_ERROR (error)
C.2.2.5 非同期DMA転送の終了待ち
DMAを用いた非同期転送の転送終了を待ちます。この関数は、DMAが終了した場合あるいは指定した時間が経過した場合、関数を終了します。時間の指定範囲は、分解能が1msの32ビット符号付きタイマを使用するため、0〜(INT_MAX/1000)となります。この範囲外の指定を行った場合は、BCL_GBI_INFINITEを指定したのと同じ扱いになります。
また、transferIDを誤った値で指定した場合は、すぐにBCL_GBI_OKを返し、この関数を終了します。
C. 2.2.5 Waiting for asynchronous DMA transfer to end
Wait for the end of asynchronous transfer using DMA. This function terminates when DMA ends or when the specified time has elapsed. The specified time range is 0 to (INT_MAX / 1000) because a 32-bit signed timer with 1 ms resolution is used. If a value outside this range is specified, it will be treated as if BCL_GBI_INFINITE was specified.
If transferID is specified with an incorrect value, BCL_GBI_OK is returned immediately and this function is terminated.
・名前:BCL_GBI_waitDMA
・形式:int BCL_GBI_waitDMA(unsigined int transferID, double timeOut);
・引数:transferID(非同期モード転送時に返された転送終了待ちID)、timeOut(待ち時間。BCL_GBI_INFINITE : DMAが終了するまで待つ)
・戻り値:BCL_GBI_OK(DMAが正常終了)、BCL_GBI_ERROR(DMAがエラー)、BCL_GBI_TIMEOUT(タイムアウト)
-Name: BCL_GBI_waitDMA
・ Format: int BCL_GBI_waitDMA (unsigined int transferID, double timeOut);
-Arguments: transferID (transfer end wait ID returned during asynchronous mode transfer), timeOut (wait time. BCL_GBI_INFINITE: Wait until DMA ends)
Return values: BCL_GBI_OK (DMA completed normally), BCL_GBI_ERROR (DMA error), BCL_GBI_TIMEOUT (timeout)
C.2.2.6 非同期DMA転送の状態
非同期DMA転送の現在の状態を通知します。誤ったtransferIDを指定した場合、DMAの終了と同じ状態を通知します。
C. 2.2.6 Status of asynchronous DMA transfer Notifies the current status of asynchronous DMA transfer. If an incorrect transferID is specified, the same status as the end of DMA is notified.
・名前:BCL_GBI_getConditionDMA
・形式:int BCL_GBI_getConditionDMA(unsigned int transferID);
・引数:transferID(非同期モード転送時に返された転送終了待ちID)
・戻り値:BCL_GBI_OK(DMAが正常終了)、BCL_GBI_ERROR(DMAがエラー)、BCL_GBI_BUSY(DMA実行中)
-Name: BCL_GBI_getConditionDMA
-Format: int BCL_GBI_getConditionDMA (unsigned int transferID);
-Argument: transferID (transfer end wait ID returned during asynchronous mode transfer)
Return values: BCL_GBI_OK (DMA normal end), BCL_GBI_ERROR (DMA error), BCL_GBI_BUSY (DMA running)
C.2.3 インターラプトハンドリング
システムバス アクセスライブラリでは、インターラプトの基本的な操作を行うための機能を提供します。システムバス アクセスライブラリを利用して操作できるインターラプトには次の4種類があります。
1. Bus エラー割り込み(オンラインのみ)
最大で65個のインターラプトハンドラを登録することが可能です。
2. Bus タイムアウト割り込み
最大で65個のインターラプトハンドラを登録することが可能です。
3. Sync エラー割り込み(オンラインのみ)
最大で65個のインターラプトハンドラを登録することが可能です。
4. 各種モジュール から発生する割り込み。
各バス番号で最大2個のインターラプトハンドラを登録することが可能です。
C. 2.3 Interrupt handling The system bus access library provides functions for basic interrupt operations. The following four types of interrupts can be operated using the system bus access library.
1. Bus error interrupt (online only)
Up to 65 interrupt handlers can be registered.
2. Bus timeout interrupt Up to 65 interrupt handlers can be registered.
3. Sync error interrupt (online only)
Up to 65 interrupt handlers can be registered.
4. Interrupts generated from various modules.
Up to two interrupt handlers can be registered for each bus number.
上記の割り込みは、ともにインターラプト専用スレッドで実行されます。
システムバス I/F が発生する、Bus エラー, Bus タイムアウト, Sync エラーの割り込みは、インターラプト専用スレッドの内部でインターラプトをディセーブルし、その後、それぞれ登録されている対象のインターラプトハンドラを順次実行します。対象となるインターラプトハンドラの実行終了後、インターラプト専用スレッドはインターラプトの要因をクリアし、内部でインターラプトをイネーブルします。
Both of the above interrupts are executed in an interrupt-only thread.
Interrupts for Bus error, Bus timeout, Sync error that generate system bus I / F disable interrupts inside the interrupt dedicated thread, and then execute each registered interrupt handler in sequence. To do. After execution of the target interrupt handler, the interrupt-dedicated thread clears the cause of the interrupt and enables the interrupt internally.
なお、インターラプトの受付はインターラプトスレッド内でのイネーブル/ディセーブルとは別に当ライブラリの関数でイネーブル/ディセーブルの制御が可能です。種モジュール で発生する割り込みは、インターラプト専用スレッドが内部でインターラプトをディセーブルし、当該モジュールに対してインターラプトのロックを実行します。その後、インターラプトを発生したバス番号に対応するインターラプトハンドラを順次実行します。対象となるインターラプトハンドラの実行終了後、インターラプト専用スレッドは当該モジュールに対してインターラプトの要因をクリアします。その後インターラプトのロックを解除し、内部でインターラプトをイネーブルします。 Interrupt acceptance can be enabled / disabled with the functions of this library separately from enabling / disabling within interrupt threads. When an interrupt occurs in a seed module, the interrupt-dedicated thread internally disables the interrupt and locks the interrupt for that module. After that, the interrupt handler corresponding to the bus number that generated the interrupt is sequentially executed. After executing the target interrupt handler, the interrupt-dedicated thread clears the interrupt cause for the module. Then unlock the interrupt and enable the interrupt internally.
なお、インターラプトの受付はインターラプトスレッド内でのイネーブル/ディセーブルとは別に当ライブラリの関数でイネーブル/ディセーブルの制御が可能です。インターラプトの禁止/許可は、システムバス I/F ボード上と、各種モジュール上で、それぞれ制御が可能です。
システムバス I/F ボード側での禁止/許可は、単純にモジュールからのインターラプトをイネーブル/ディセーブルしています。モジュール 側でのインターラプトのロック/アンロックは、モジュール側のインターラプトの発生元でインターラプトの発生を制御します。ロック中は、モジュール内で新たなインターラプトの発生を禁止し、さらにインターラプト関係のステータスの変化も禁止されています。アンロック後、モジュール側でのインターラプトの発生が可能となります。
Interrupt acceptance can be enabled / disabled with the functions of this library separately from enabling / disabling within interrupt threads. Interrupt prohibition / permission can be controlled on the system bus I / F board and on various modules.
The prohibition / permission on the system bus I / F board simply enables / disables the interrupt from the module. Interrupt locking / unlocking on the module side controls the generation of interrupts at the module source. While locked, the generation of new interrupts in the module is prohibited, and status changes related to interrupts are also prohibited. After unlocking, interrupts can be generated on the module side.
C.2.3.1 モジュールインターラプトハンドラの登録
モジュールからインターラプトが発生した時のインターラプトハンドラ関数を登録します。登録された関数はインターラプトが発生した場合、インターラプトハンドラ専用のスレッドで実行されます。インターラプトハンドラは、バス番号とともに登録し、インターラプトを上げた モジュールのバス番号と登録されているバス番号が等しいインターラプトハンドラを起動します。
C. 2.3.1 Registering module interrupt handler Register the interrupt handler function when an interrupt occurs from the module. When an interrupt occurs, the registered function is executed in a thread dedicated to the interrupt handler. The interrupt handler registers with the bus number, and starts the interrupt handler with the same bus number as the bus number of the module that raised the interrupt.
また、インターラプトハンドラに対して、登録時に設定した値を同時に戻します。インターラプトハンドラは、各バス番号ごとに2個登録することが可能です。バス番号は1から64まで指定可能です。登録に成功すると戻り値にキー番号が返されます。このキー番号を使用して登録を行うと、そのキー番号のインターラプトハンドラの再登録及び、削除が可能になります。キー番号を0にして登録を行うと、空いているキー番号にインターラプトハンドラが設定されます。空いているキー番号がない場合は、エラーとなり戻り値に-1が返されます。インターラプトハンドラの実行は、2個登録されている場合、若いキー番号から順に実行されます。 Also, the value set at the time of registration is returned to the interrupt handler at the same time. Two interrupt handlers can be registered for each bus number. A bus number from 1 to 64 can be specified. If registration is successful, the key number is returned as the return value. If you register using this key number, you can re-register and delete the interrupt handler for that key number. When registering with the key number set to 0, an interrupt handler is set to an empty key number. If there is no empty key number, an error occurs and -1 is returned. If two interrupt handlers are registered, they are executed in order from the lowest key number.
インターラプトハンドラの削除は、コールバック関数のアドレスをBCL_GBI_IGNORE_MODULE_HANDLERとして登録します。インタラプトスレッドは、BCL_GBI_IGNORE_MODULE_HANDLERのインタラプトハンドラは実行しません。各バス番号ごとの2個のインターラプトハンドラが両方ともBCL_GBI_IGNORE_MODULE_HANDLERとなった場合は、そのバス番号のインターラプトハンドラは初期状態に戻ります。(アクセスライブラリ内の標準インターラプトハンドラが設定されます。) To delete an interrupt handler, register the callback function address as BCL_GBI_IGNORE_MODULE_HANDLER. The interrupt thread does not execute the BCL_GBI_IGNORE_MODULE_HANDLER interrupt handler. If the two interrupt handlers for each bus number are both BCL_GBI_IGNORE_MODULE_HANDLER, the interrupt handler for that bus number returns to the initial state. (The standard interrupt handler in the access library is set.)
・名前:BCL_GBI_addInterruptHandler
・形式:int BCL_GBI_addInterruptHandler(unsigned int BusNo, int KeyNo, BCL_GBI_MODULE_HANDLER handler, unsigned int arg);
・コールバック関数:void InterruptRoutine(unsigned int BusNo, unsigned int Factor, unsigned int arg);
・引数:BusNo(バス番号)、KeyNo(キー番号)、handler(コールバック関数のアドレス)、arg(インターラプトハンドラへ渡す値)、Factor(割り込み要因(各モジュールに依存))
・戻り値:インターラプトハンドラが登録されたキー番号(-1の場合、登録に失敗[不正なバス番号または、キー番号])
-Name: BCL_GBI_addInterruptHandler
-Format: int BCL_GBI_addInterruptHandler (unsigned int BusNo, int KeyNo, BCL_GBI_MODULE_HANDLER handler, unsigned int arg);
Callback function: void InterruptRoutine (unsigned int BusNo, unsigned int Factor, unsigned int arg);
Arguments: BusNo (bus number), KeyNo (key number), handler (callback function address), arg (value passed to interrupt handler), Factor (interrupt factor (depends on each module))
Return value: Key number where the interrupt handler is registered (If -1, registration fails [invalid bus number or key number])
C.2.3.2 バスエラーインターラプトハンドラの登録
システムバスでエラーが発生した場合のエラー処理関数を登録します。システムバスでエラーが発生した場合、インターラプトスレッドは、登録されている関数を実行します。なお、システムバスでエラーが発生した場合、インターラプトスレッドでインターラプトをクリアします。インターラプトハンドラ内でのクリアは必要ありません。
Bus エラーのインターラプトハンドラは65個まで登録することが可能です。登録に成功すると戻り値にキー番号が返されます。このキー番号を使用して登録を行うと、そのキー番号のインターラプトハンドラの再登録及び、削除が可能になります。キー番号を0にして登録を行うと、空いているキー番号にインターラプトハンドラが設定されます。空いているキー番号がない場合はエラーとなり、戻り値に-1が返されます。インターラプトハンドラの削除は、コールバック関数のアドレスをBCL_GBI_IGNORE_BUSERROR_HANDLERとして登録します。
C. 2.3.2 Registering a bus error interrupt handler Register an error handling function when an error occurs in the system bus. If an error occurs in the system bus, the interrupt thread executes the registered function. If an error occurs in the system bus, the interrupt is cleared by the interrupt thread. Clearing in the interrupt handler is not necessary.
Up to 65 interrupt handlers for Bus errors can be registered. If registration is successful, the key number is returned as the return value. If you register using this key number, you can re-register and delete the interrupt handler for that key number. When registering with the key number set to 0, an interrupt handler is set to an empty key number. If there is no empty key number, an error occurs and -1 is returned as the return value. To delete the interrupt handler, register the callback function address as BCL_GBI_IGNORE_BUSERROR_HANDLER.
インタラプトスレッドは、BCL_GBI_IGNORE_BUSERROR_HANDLERのインタラプトハンドラは実行しません。65個のインターラプトハンドラがすべてBCL_GBI_IGNORE_BUSERROR_HANDLERとなった場合は、初期状態に戻ります。(アクセスライブラリ内の標準インターラプトハンドラが設定されます。)Bus エラーはシステムバス上の通信エラーやハードウェアの故障などが原因となり発生します。
なお、オフラインではBusでエラーが発生する要因がないため、本関数で登録されたハンドラは動作することはありません。
The interrupt thread does not execute the BCL_GBI_IGNORE_BUSERROR_HANDLER interrupt handler. When all 65 interrupt handlers become BCL_GBI_IGNORE_BUSERROR_HANDLER, the initial state is restored. (The standard interrupt handler in the access library is set.) A Bus error occurs due to a communication error on the system bus or a hardware failure.
Note that the handler registered with this function does not work because there is no cause of errors in Bus when offline.
・名前:BCL_GBI_addBusErrorInterruptHandler
・形式:int BCL_GBI_addBusErrorInterruptHandler(int KeyNo, BCL_GBI_BUSERROR_HANDLER handler, unsigned int arg);
・コールバック関数:void BusErrorInterruptRoutine(unsigned int arg);
・引数:KeyNo(キー番号)、handler(コールバック関数のアドレス)、arg(インターラプトハンドラへ渡す値)
・戻り値:インターラプトハンドラが登録されたキー番号(-1の場合、登録に失敗[不正なバス番号または、キー番号])
-Name: BCL_GBI_addBusErrorInterruptHandler
-Format: int BCL_GBI_addBusErrorInterruptHandler (int KeyNo, BCL_GBI_BUSERROR_HANDLER handler, unsigned int arg);
-Callback function: void BusErrorInterruptRoutine (unsigned int arg);
Arguments: KeyNo (key number), handler (callback function address), arg (value passed to interrupt handler)
Return value: Key number where the interrupt handler is registered (If -1, registration fails [invalid bus number or key number])
C.2.3.3 バスタイムアウトインターラプトハンドラの登録
システムバスでタイムアウトが発生した場合のエラー処理関数を登録します。システムバスでタイムアウトが発生した場合、インターラプトスレッドは、登録されている関数を実行します。なお、システムバスでタイムアウトが発生した場合、インターラプトスレッドでインターラプトをクリアします。
インターラプトハンドラ内でのクリアは必要ありません。Bus タイムアウトのインターラプトハンドラは65個まで登録することが可能です。登録に成功すると戻り値にキー番号が返されます。このキー番号を使用して登録を行うと、そのキー番号のインターラプトハンドラの再登録及び、削除が可能になります。キー番号を0にして登録を行うと、空いているキー番号にインターラプトハンドラが設定されます。空いているキー番号がない場合はエラーとなり、戻り値に-1が返されます。インターラプトハンドラの削除は、コールバック関数のアドレスをBCL_GBI_IGNORE_TIMEOUT_HANDLERとして登録します。
C. 2.3.3 Registering a bus timeout interrupt handler Register an error handling function when a timeout occurs on the system bus. If a timeout occurs on the system bus, the interrupt thread executes the registered function. If a timeout occurs on the system bus, the interrupt is cleared by the interrupt thread.
Clearing in the interrupt handler is not necessary. Up to 65 interrupt handlers for Bus timeout can be registered. If registration is successful, the key number is returned as the return value. If you register using this key number, you can re-register and delete the interrupt handler for that key number. When registering with the key number set to 0, an interrupt handler is set to an empty key number. If there is no empty key number, an error occurs and -1 is returned as the return value. To delete the interrupt handler, register the callback function address as BCL_GBI_IGNORE_TIMEOUT_HANDLER.
インタラプトスレッドは、BCL_GBI_IGNORE_TIMEOUT_HANDLERのインタラプトハンドラは実行しません。65個のインターラプトハンドラがすべてBCL_GBI_IGNORE_TIMEOUT_HANDLERとなった場合は、初期状態に戻ります。(アクセスライブラリ内の標準インターラプトハンドラが設定されます。)Bus タイムアウトはケーブル抜け状態でのリード時や受信先がいない場合のリード時に発生します。また、ハードウェアの故障などもその原因となります。 The interrupt thread does not execute the BCL_GBI_IGNORE_TIMEOUT_HANDLER interrupt handler. When all 65 interrupt handlers become BCL_GBI_IGNORE_TIMEOUT_HANDLER, the initial state is restored. (The standard interrupt handler in the access library is set.) Bus timeout occurs when reading when the cable is disconnected or when there is no receiver. It can also be caused by hardware failure.
・名前:BCL_GBI_addTimeoutInterruptHandler
・形式:int BCL_GBI_addTimeoutInterruptHandler(int KeyNo, BCL_GBI_TIMEOUT_HANDLER handler, unsigned int arg);
・コールバック関数:void TimeoutInterruptRoutine(unsigned int address, unsigned int Factor, unsigned int arg);
・引数:KeyNo(キー番号)、handler(コールバック関数のアドレス)、address(タイムアウトが発生したマシンワードのアドレス)、Factor(タイムアウトが発生した要因[BCL_GBI_FACTOR_MODULE:モジュールのリード、BCL_GBI_FACTOR_CONFIG:コンフィグレーションのリード、BCL_GBI_FACTOR_WRITE:すべてのライト])、arg(インターラプトハンドラへ渡す値)
・戻り値:インターラプトハンドラが登録されたキー番号(-1の場合、登録に失敗[不正なバス番号または、キー番号])
-Name: BCL_GBI_addTimeoutInterruptHandler
-Format: int BCL_GBI_addTimeoutInterruptHandler (int KeyNo, BCL_GBI_TIMEOUT_HANDLER handler, unsigned int arg);
-Callback function: void TimeoutInterruptRoutine (unsigned int address, unsigned int Factor, unsigned int arg);
-Arguments: KeyNo (key number), handler (address of callback function), address (address of machine word where timeout occurred), Factor (factor of occurrence of timeout [BCL_GBI_FACTOR_MODULE: module read, BCL_GBI_FACTOR_CONFIG: configuration read , BCL_GBI_FACTOR_WRITE: all writes]), arg (value passed to interrupt handler)
Return value: Key number where the interrupt handler is registered (If -1, registration fails [invalid bus number or key number])
C.2.3.4 Syncエラーインタラプトハンドラの登録
システムバスでSyncエラーが発生した場合のエラー処理関数を登録します。システムバスでSyncエラーが発生した場合、インターラプトスレッドは、登録されている関数を実行します。なお、システムバスでSyncエラーが発生した場合、インターラプトスレッドでインターラプトをクリアします。インターラプトハンドラ内でのクリアは必要ありません。
Syncエラーのインターラプトハンドラは65個まで登録することが可能です。登録に成功すると戻り値にキー番号が返されます。このキー番号を使用して登録を行うと、そのキー番号のインターラプトハンドラの再登録及び、削除が可能になります。キー番号を0にして登録を行うと、空いているキー番号にインターラプトハンドラが設定されます。空いているキー番号がない場合はエラーとなり、戻り値に-1が返されます。
C. 2.3.4 Register Sync Error Interrupt Handler Register an error handling function when a Sync error occurs on the system bus. If a Sync error occurs on the system bus, the interrupt thread executes the registered function. If a Sync error occurs in the system bus, the interrupt is cleared with the interrupt thread. Clearing in the interrupt handler is not necessary.
Up to 65 interrupt handlers for Sync errors can be registered. If registration is successful, the key number is returned as the return value. If you register using this key number, you can re-register and delete the interrupt handler for that key number. When registering with the key number set to 0, an interrupt handler is set to an empty key number. If there is no empty key number, an error occurs and -1 is returned as the return value.
インターラプトハンドラの削除は、コールバック関数のアドレスをBCL_GBI_IGNORE_SYNCERROR_HANDLERとして登録します。インタラプトスレッドは、BCL_GBI_IGNORE_SYNCERROR_HANDLERのインタラプトハンドラは実行しません。65個のインターラプトハンドラがすべてBCL_GBI_IGNORE_SYNCERROR_HANDLERとなった場合は、初期状態に戻ります。(アクセスライブラリ内の標準インターラプトハンドラが設定されます。)
Syncエラーはソフトウェアの設定ミスやハードウェアの設計不良により発生します。また、ハードウェアの故障などもその原因となります。
オフラインではBusでSyncエラーが発生する要因がないため、本関数で登録されたハンドラは動作することはありません。
To delete the interrupt handler, register the callback function address as BCL_GBI_IGNORE_SYNCERROR_HANDLER. The interrupt thread does not execute the BCL_GBI_IGNORE_SYNCERROR_HANDLER interrupt handler. When all 65 interrupt handlers become BCL_GBI_IGNORE_SYNCERROR_HANDLER, the initial state is restored. (The standard interrupt handler in the access library is set.)
Sync errors occur due to software setting errors or hardware design failures. It can also be caused by hardware failure.
Since there is no cause of the Sync error in Bus, the handler registered with this function will not work offline.
・名前:BCL_GBI_addSyncErrorInterruptHandler
・形式:int BCL_GBI_addSyncErrorInterruptHandler(int KeyNo, BCL_GBI_SYNCERROR_HANDLER handler, unsigned int arg);
・コールバック関数:void SyncErrorInterruptRoutine(unsigned int arg);
・引数:KeyNo(キー番号)、handler(コールバック関数のアドレス)、arg(インターラプトハンドラへ渡す値)
・戻り値:インターラプトハンドラが登録されたキー番号(-1の場合、登録に失敗[不正なバス番号または、キー番号])
-Name: BCL_GBI_addSyncErrorInterruptHandler
-Format: int BCL_GBI_addSyncErrorInterruptHandler (int KeyNo, BCL_GBI_SYNCERROR_HANDLER handler, unsigned int arg);
-Callback function: void SyncErrorInterruptRoutine (unsigned int arg);
Arguments: KeyNo (key number), handler (callback function address), arg (value passed to interrupt handler)
Return value: Key number where the interrupt handler is registered (If -1, registration fails [invalid bus number or key number])
C.2.4 ライブラリ/システムバスの制御
C.2.4.1 FIFOのフラッシュ待ち
サイトCPU に接続されているシステムバス と接続されている全てのモジュールのFIFOのフラッシュを待ちます。FIFOは、システムバス I/F ボード内とモジュール内に存在します。この関数を終了した時、この関数の実行に入る直前のFIFO内に存在するデータが全てモジュールにライトされたことを意味します。この関数を実行中、CPUはPCIバスに対してリードサイクルを発行しているため、FIFOがフラッシュされるまでバスをハード的にロックしています。このためDMA転送やインターラプトの受け付けに遅延を生じる場合があります。また、この関数の実行によりタイムアウトが発生する場合があります。
オフラインの場合は、システムバスエミュレータのFIFOは存在しません。また、モジュール内のFIFOの存在はベンダ依存です。
C. 2.4 Library / system bus control 2.4.1 Waiting for FIFO flush Waits for the FIFO flush of all modules connected to the system bus connected to the site CPU. The FIFO exists in the system bus I / F board and in the module. When this function is terminated, it means that all the data existing in the FIFO just before the execution of this function is written to the module. While executing this function, the CPU issues a read cycle to the PCI bus, so the bus is locked in hardware until the FIFO is flushed. This may cause a delay in DMA transfer and interrupt acceptance. In addition, timeout may occur when this function is executed.
When offline, the system bus emulator FIFO does not exist. The existence of FIFO in the module is vendor-dependent.
・名前:BCL_GBI_waitFlushFIFO
・形式:int BCL_GBI_waitFlushFIFO(void);
・引数:なし
・戻り値:BCL_GBI_OK(フラッシュ完了)、BCL_GBI_ERROR(エラー)
-Name: BCL_GBI_waitFlushFIFO
-Format: int BCL_GBI_waitFlushFIFO (void);
・ Argument: None ・ Return value: BCL_GBI_OK (Flush completed), BCL_GBI_ERROR (Error)
C.2.4.2 モジュールのリセット
サイトCPUに接続されているモジュールにたいして、リセットを行います。この関数内では、下記の処理を実行します。
1. システムバス へバスリセットパケットの送出。
2. システムバス へインターラプトのクリア用パケットの送出。
3. システムバス へインターラプトのアンロックパケットの送出。
なお、リセットの動作やかかる時間については、各モジュールに依存します。
C. 2.4.2 Module reset Resets the module connected to the site CPU. The following processing is executed in this function.
1. Send a bus reset packet to the system bus.
2. Send the interrupt clear packet to the system bus.
3. Send an interrupt unlock packet to the system bus.
The reset operation and the time required depend on each module.
・名前:BCL_GBI_resetModule
・形式:int BCL_GBI_resetModule(void);
・引数:なし
・戻り値:BCL_GBI_OK(正常終了)、BCL_GBI_ERROR(エラー)
-Name: BCL_GBI_resetModule
-Format: int BCL_GBI_resetModule (void);
-Argument: None-Return value: BCL_GBI_OK (normal termination), BCL_GBI_ERROR (error)
C.2.4.3 ライブラリの初期化
システムバス アクセスライブラリの初期化を行います。システムバス アクセスライブラリを利用する場合、最初にこの初期化処理を実行する必要があります。また、この関数内では下記の処理を実行します。
1. アクセスライブラリの変数の初期化。
2. インターラプトハンドラを実行するためのスレッドを起動。
また、システムバス I/F 上のインターラプトはディセーブルの状態です。
オフラインの場合はこの関数でシステムバスエミュレータとのプロセス間通信の準備をします。システムバス エミュレータと30秒以内に接続が確立されないとタイムアウトになります。
C. 2.4.3 Library initialization The system bus access library is initialized. When using the system bus access library, this initialization process must be executed first. In addition, the following processing is executed in this function.
1. Access library variable initialization.
2. Start a thread to execute the interrupt handler.
Interrupts on the system bus I / F are disabled.
When offline, use this function to prepare for interprocess communication with the system bus emulator. If a connection with the system bus emulator is not established within 30 seconds, a timeout occurs.
・名前:BCL_GBI_init
・形式:int BCL_GBI_init(unsigned int siteNo, int mode);
・引数:siteNo(サイト番号[1〜8])、mode(オンライン/オフラインの指定。BCL_GBI_ONLINE:オンライン、BCL_GBI_OFFLINE:オフライン)
・戻り値:BCL_GBI_OK(正常終了)、BCL_GBI_ERROR(サイト番号が規定外)、BCL_GBI_TIMEOUT(オフラインにおいて30秒以内にシステムバス エミュレータと接続できない)
・ Name: BCL_GBI_init
・ Format: int BCL_GBI_init (unsigned int siteNo, int mode);
Arguments: siteNo (site number [1-8]), mode (online / offline specification. BCL_GBI_ONLINE: online, BCL_GBI_OFFLINE: offline)
Return values: BCL_GBI_OK (normal termination), BCL_GBI_ERROR (site number is not specified), BCL_GBI_TIMEOUT (cannot connect to system bus emulator within 30 seconds offline)
C.2.4.4 ライブラリの開放
システムバス アクセスライブラリの使用終了の処理を行います。
C. 2.4.4 Releasing the library The system bus access library is terminated.
・名前:BCL_GBI_finish
・形式:int BCL_GBI_finish(unsigned int siteNo);
・引数:siteNo(サイト番号[1〜8])
・戻り値:BCL_GBI_OK(正常終了)、BCL_GBI_ERROR(サイト番号が規定外)
・ Name: BCL_GBI_finish
・ Format: int BCL_GBI_finish (unsigned int siteNo);
-Argument: siteNo (site number [1-8])
Return values: BCL_GBI_OK (normal termination), BCL_GBI_ERROR (site number is not specified)
C.2.4.5 オンライン/オフラインの識別(BCL_GBI_isOnline)
現在動作中のシステムバス アクセスライブラリがオンラインで動作中か、オフラインで動作中か識別します。
C. 2.4.5 Online / offline identification (BCL_GBI_isOnline)
Identifies whether the currently operating system bus access library is operating online or offline.
・名前:
・形式:int BCL_GBI_isOnline(void);
・引数:なし
・戻り値:BCL_GBI_ONLINE(オンライン)、BCL_GBI_OFFLINE(オフライン)
·name:
-Format: int BCL_GBI_isOnline (void);
-Argument: None-Return value: BCL_GBI_ONLINE (online), BCL_GBI_OFFLINE (offline)
C.2.4.6 GBSCとの通信可否の確認
システムバス I/FとGBSC(システム制御装置110)との通信が可能かどうかの確認をします。これにより、GBSCの電源が入っている事が確認できます。
C. 2.4.6 Checking whether communication with GBSC is possible Check whether communication is possible between the system bus I / F and GBSC (system controller 110). This confirms that the GBSC is turned on.
・形式:int BCL_GBI_getConnected(unsigned int *connect);
・引数:connect(通信可否の結果を格納する変数へのポインタ)
・戻り値:BCL_GBI_OK(正常終了)、BCL_GBI_ERROR(エラー)
-Format: int BCL_GBI_getConnected (unsigned int * connect);
-Argument: connect (pointer to a variable that stores the result of communication availability)
Return values: BCL_GBI_OK (normal termination), BCL_GBI_ERROR (error)
C.2.4.7 詳細エラー情報の取得
システムバス アクセスライブラリがBCL_GBI_ERRORを返したときの詳細エラー情報を返します。
C. 2.4.7 Acquisition of detailed error information Detailed error information when the system bus access library returns BCL_GBI_ERROR is returned.
・名前:BCL_GBI_getLastError
・形式:unsigned int BCL_GBI_getLastError(void);
・引数:なし
・戻り値:無符号の32ビットエラー情報を返します。
bit31 :エラーコードの種別を特定する値
0: Windows(登録商標)のエラーコード(System Error Codesを参照)
1: アクセスライブラリ固有のエラーコード
bit30-24:エラーが発生した関数内の場所を特定する値(内部情報)
bit23-16:エラーが発生したアクセスライブラリ関数を特定する値
bit15-0:エラーコード
bit31が0のとき: GetLastError()の下位16bit値
bit31が1のとき: アクセスライブラリの内部エラー値
-Name: BCL_GBI_getLastError
-Format: unsigned int BCL_GBI_getLastError (void);
-Argument: None-Return value: Unsigned 32-bit error information is returned.
bit31: Value that identifies the type of error code
0: Windows (registered trademark) error code (see System Error Codes)
1: Access library specific error code
bit30-24: Value that identifies the location in the function where the error occurred (internal information)
bit23-16: Value that identifies the access library function where the error occurred
bit15-0: Error code
When bit31 is 0: Lower 16bit value of GetLastError ()
When bit31 is 1: Internal error value of access library
C.2.4.8 詳細エラー情報履歴の取得
現在までに使用されたシステムバス アクセスライブラリがBCL_GBI_ERRORを返したときの詳細エラー情報を最大で過去16回分まで返します。
C. 2.4.8 Acquisition of detailed error information history Detailed error information when the system bus access library used so far returns BCL_GBI_ERROR is returned up to the past 16 times.
・形式:unsigned int BCL_GBI_getPreviousErrors(unsigned int *error, unsigned int size);
・名前:BCL_GBI_getPreviousErrors
・引数:error(エラー情報を格納する配列変数のポインタ。エラー情報のフォーマットはBCL_GBI_getLastError()と同様)、size (エラー情報を格納する配列変数のサイズ)
・戻り値:格納されたエラー情報の数を返します。
-Format: unsigned int BCL_GBI_getPreviousErrors (unsigned int * error, unsigned int size);
-Name: BCL_GBI_getPreviousErrors
Arguments: error (pointer of array variable that stores error information. Error information format is the same as BCL_GBI_getLastError ()), size (size of array variable that stores error information)
Return value: Returns the number of stored error information.
C.3 タイマ関数
本章では、システムバス I/Fボード上のタイマハードウェアを利用するための関数について説明します。システムバス I/F ボード上に実装されたハードウェアのタイマの分解能は1[us]です。
C.3.1 経過時間の読み出し
C.3.1.1 時間の読み出し
システムバス アクセスライブラリの初期化が実行されてからの経過時間を秒[s]で読み出します。
<制約事項>
分解能は1[us]ですが、double型に変換して読み出しているため、doubleの有効桁*1[us]以上の値が読み出された場合、1[us]の分解能が得られない場合があります。doubleの有効桁は10進の15桁で、理論上、システムバス アクセスライブラリを初期化してから約31年経過した場合、1[us]の分解能が得られなくなります。
ハードウェアのカウンタは64ビットで動作しているため、システムバス アクセスライブラリを初期化してから理論上約58万年後に0に戻ります。プログラム上、一定の間隔で読み出しを行った場合の差分(経過時間)は、CPUの負荷状態、PCIバスの負荷状態およびFIFOの状態により一定の値にならない場合があります。
C. 3 Timer functions This chapter describes the functions for using the timer hardware on the system bus I / F board. The resolution of the hardware timer mounted on the system bus I / F board is 1 [us].
C. 3.1 Reading of elapsed time 3.1.1 Reading time Reads the elapsed time in seconds [s] since the initialization of the system bus access library was executed.
<Restrictions>
The resolution is 1 [us], but since it is read after being converted to double type, if a value more than double significant digits * 1 [us] is read, the resolution of 1 [us] cannot be obtained there is. The effective number of double is 15 decimal digits. In theory, if 31 years have passed since the initialization of the system bus access library, the resolution of 1 [us] cannot be obtained.
Since the hardware counter operates at 64 bits, it will theoretically return to 0 in about 580,000 years after initializing the system bus access library. In the program, the difference (elapsed time) when reading at regular intervals may not be a constant value depending on the CPU load status, PCI bus load status and FIFO status.
<オフライン>
オフラインでは、オフラインプロセスが動作するサイトCPUが起動してからの経過時間を秒[s]で読み出します。
<Offline>
In offline mode, the elapsed time from the start of the site CPU that runs the offline process is read in seconds [s].
・名前:BCL_TMR_readTime
・形式:int BCL_TMR_readTime(double *time);
・引数:time(システムバス アクセスライブラリが初期化されてからの経過時間[s])
・戻り値:BCL_TMR_OK(正常終了)
-Name: BCL_TMR_readTime
-Format: int BCL_TMR_readTime (double * time);
-Argument: time (Elapsed time since initialization of system bus access library [s])
Return value: BCL_TMR_OK (normal termination)
C.3.1.2 タイマカウンタの読み出し
システムバス アクセスライブラリの初期化が実行されてからの経過時間をカウント値で読み出します。カウント値は1[us]経過するごとに1が加算されます。
<制約事項>
ハードウェアのカウンタは64ビットで動作しているため、システムバス アクセスライブラリを初期化してから理論上約58万年後に0に戻ります。また、プログラム上一定の間隔で読み出しを行った場合の差分(経過時間)は、CPUの負荷状態、PCIバスの負荷状態およびFIFOの状態により一定の値にならない場合があります。
オフラインでは、オフラインプロセスが動作するサイトCPUが起動してからの経過時間をカウント値で読み出します。
C. 3.1.2 Reading timer counter Reads the elapsed time from initialization of the system bus access library as a count value. The count value is incremented by 1 every time [us] elapses.
<Restrictions>
Since the hardware counter operates at 64 bits, it will theoretically return to 0 in about 580,000 years after initializing the system bus access library. In addition, the difference (elapsed time) when reading at regular intervals in the program may not be a constant value depending on the CPU load status, PCI bus load status, and FIFO status.
In offline mode, the elapsed time from the start of the site CPU where the offline process operates is read as a count value.
・名前:BCL_TMR_readCount
・形式:int BCL_TMR_readCount(unsigned __int64 *count);
・引数:count(システムバスアクセスライブラリが初期化されてからのカウント値[1[us]/1カウント])
・戻り値:BCL_TMR_OK(正常終了)
-Name: BCL_TMR_readCount
-Format: int BCL_TMR_readCount (unsigned __int64 * count);
-Argument: count (count value [1 [us] / 1 count] since system bus access library was initialized)
Return value: BCL_TMR_OK (normal termination)
C.3.2 時間待ち関連関数
C.3.2.1 時間待ち
指定された時間の経過後、関数は戻ります。待ち時間(time)に1[us]未満の値を指定した場合、直ちに関数は戻ります。CPUの負荷状況により指定された時間より経過時間が長く過ぎてから戻る場合があります。
オフラインでは、1[ms]未満は切捨てされた値で時間待ちを実行します。たとえば、待ち時間(time)に1[ms]未満の値を指定した場合、直ちに関数は戻ります。また、最大待ち時間は、4294967.296[s](約49日)です。
C. 3.2 Time wait related functions 3.2.1 Waiting time After the specified time has elapsed, the function returns. If a value less than 1 [us] is specified for the waiting time (time), the function returns immediately. Depending on the CPU load status, it may return after the elapsed time is longer than the specified time.
In offline mode, the wait time is executed with the value less than 1 [ms] rounded down. For example, if you specify a value less than 1 [ms] for the waiting time (time), the function returns immediately. The maximum waiting time is 4294967.296 [s] (about 49 days).
・名前:BCL_TMR_wait
・形式:int BCL_TMR_wait(double time);
・引数:time(待ち時間を秒単位[s]で指定)
・戻り値:BCL_TMR_OK(正常終了)、BCL_TMR_ERROR(待ちがキャンセルされた)
-Name: BCL_TMR_wait
-Format: int BCL_TMR_wait (double time);
-Argument: time (specify the wait time in seconds [s])
Return values: BCL_TMR_OK (normal termination), BCL_TMR_ERROR (wait wait canceled)
C.3.2.2 時間待ち関数のキャンセル
現在実行中の全てのBCL_TMR_wait関数の実行をキャンセルします。複数のスレッドで動作している場合、すべてのBCL_TMR_wait関数について実行がキャンセルされます。
・名前:BCL_TMR_cancel
・形式:int BCL_TMR_cancel(void);
・引数:なし
・戻り値:BCL_TMR_OK(正常終了)
C. 3.2.2 Canceling the time wait function Cancels the execution of all currently executing BCL_TMR_wait functions. When running with multiple threads, execution is canceled for all BCL_TMR_wait functions.
・ Name: BCL_TMR_cancel
-Format: int BCL_TMR_cancel (void);
-Argument: None-Return value: BCL_TMR_OK (normal termination)
C.4 コンフィグレーション/診断専用関数
本章ではハードウェアのコンフィグレーションおよびハードウェア診断で利用する関数を説明します。ハードウェアのコンフィグレーションおよびハードウェア診断以外で利用した場合、各種モジュールへのデータ転送やインターラプトの処理が正しく処理できなくなります。システムバス I/Fボード、Bus Switch 、各種モジュールなどハードウェア構造を熟知した上、ハードウェアのコンフィグレーションおよびハードウェア診断関数内で利用してください。
当ライブラリでは実行時にランタイムエラーとなりませんが、バスコンフィグレーション関数およびハードウェア診断関数以外で利用した場合、当ライブラリおよびシステムバス I/Fボードのディバイスドライバのインターラプトに関する動作は保障しません。
C. 4 Dedicated functions for configuration / diagnosis This chapter describes the functions used for hardware configuration and hardware diagnosis. When used for purposes other than hardware configuration and hardware diagnostics, data transfer and interrupt processing to various modules cannot be performed correctly. Please familiarize yourself with the hardware structure such as the system bus I / F board, Bus Switch, and various modules, and use it in the hardware configuration and hardware diagnostic functions.
This library does not cause a run-time error during execution. However, if it is used for functions other than the bus configuration function and hardware diagnostic function, the operation related to the interrupt of the device driver of this library and the system bus I / F board is not guaranteed.
C.4.1 コンフィグレーション制御(特殊関数)
本節で説明する関数は、システムバス I/F および 各種モジュール のコンフィグレーションで利用する関数です。不注意に操作すると各種モジュールへのデータの転送ができなくなりますので、ハードウェアやソフトウェアの構造を熟知した上、利用してください。
C. 4.1 Configuration control (special function)
The functions described in this section are used to configure the system bus I / F and various modules. If careless operation is performed, data cannot be transferred to various modules. Use the hardware and software structure after familiarity.
C.4.1.1 バスコンフィグレーションライト
システムバス I/F および 各種モジュール のコンフィグレーションレジスタに対してデータを書き込みます。また、コンフィグレーションデータがシステムバス I/F および各種モジュールに格納された後、この関数を終了します。
C. 4.1.1 Bus Configuration Write Writes data to the system bus I / F and various module configuration registers. Also, after the configuration data is stored in the system bus I / F and various modules, this function is terminated.
・名前:BCL_GBI_writeBusConfig
・形式:int BCL_GBI_writeBusConfig(unsigned int address, unsigned int config);
・引数:address(コンフィグレーションデータのアドレス)、config(書き込むコンフィグレーションデータ)
・戻り値:BCL_GBI_OK(正常終了)、BCL_GBI_ERROR(エラー)
-Name: BCL_GBI_writeBusConfig
-Format: int BCL_GBI_writeBusConfig (unsigned int address, unsigned int config);
Arguments: address (configuration data address), config (configuration data to write)
Return values: BCL_GBI_OK (normal termination), BCL_GBI_ERROR (error)
C.4.1.2 バスコンフィグレーションリード
システムバス I/F および 各種モジュール のコンフィグレーションレジスタからデータを読み出します。
C. 4.1.2 Bus configuration read Reads data from the system bus I / F and various module configuration registers.
・名前:BCL_GBI_readBusConfig
・形式:int BCL_GBI_readBusConfig(unsigned int address, unsigned int *config);
・引数:address(コンフィグレーションデータのアドレス)、config(コンフィグレーションデータを格納する変数へのポインタ)
・戻り値:BCL_GBI_OK(正常終了)、BCL_GBI_ERROR(エラー)
-Name: BCL_GBI_readBusConfig
-Format: int BCL_GBI_readBusConfig (unsigned int address, unsigned int * config);
Arguments: address (address of configuration data), config (pointer to variable storing configuration data)
Return values: BCL_GBI_OK (normal termination), BCL_GBI_ERROR (error)
C.4.1.3 バススイッチコンフィグレーションの設定終了
オンラインでは、何も実行されません。
オフラインでは、バススイッチのコンフィグレーションライトを完了した際、当関数を実行することによりオフラインのバスの接続が切り替わります。
C. 4.1.3 Finishing the bus switch configuration Nothing is executed online.
In offline mode, when the configuration write of the bus switch is completed, the offline bus connection is switched by executing this function.
・名前:BCL_GBI_decideBusMatrix
・形式:int BCL_GBI_decideBusMatrix (void);
・引数:なし
・戻り値:BCL_GBI_OK(正常終了)、BCL_GBI_ERROR(エラー)
・ Name: BCL_GBI_decideBusMatrix
-Format: int BCL_GBI_decideBusMatrix (void);
-Argument: None-Return value: BCL_GBI_OK (normal termination), BCL_GBI_ERROR (error)
C.4.2 インターラプト制御(特殊関数)
本節で説明する関数は、バスコンフィグレーションおよびハードウェア診断で利用する関数です。システムバス I/Fボード上のインターラプトを直接制御するため、不注意に操作するとシステムバス I/Fボードのディバイスドライバや当ライブラリがインターラプトの処理を正しく実行できなくなります。
C. 4.2 Interrupt control (special function)
The functions described in this section are used for bus configuration and hardware diagnosis. Since the interrupt on the system bus I / F board is controlled directly, the device driver of this system bus I / F board and this library cannot execute the interrupt processing correctly if it is operated carelessly.
C.4.2.1 Bus I/Fボードインターラプトイネーブル
各種インターラプト信号をシステムバス I/Fボード上でイネーブルにします。インターラプト信号には、各種モジュールからの割り込み、Busエラー、Busタイムアウト、Syncエラーの4種類があります。これらの信号は下記で定義されたビット情報として設定できます。複数のインターラプト信号を指定する場合は、論理和として設定します。この関数は、システムバス I/F上でインターラプトがイネーブルになったことを確認後、終了します。
C. 4.2.1 Bus I / F board interrupt enable
Various interrupt signals are enabled on the system bus I / F board. There are four types of interrupt signals: interrupts from various modules, Bus error, Bus timeout, and Sync error. These signals can be set as bit information defined below. When specifying multiple interrupt signals, set them as a logical sum. This function exits after confirming that interrupts are enabled on the system bus I / F.
・名前:BCL_GBI_interruptEnable
・形式:int BCL_GBI_interruptEnable(unsigned int status);
・引数:status(インターラプト信号の指定。BCL_GBI_INT_MODULE:モジュールからの割り込み、BCL_GBI_INT_BUSERROR:Busエラー、BCL_GBI_INT_TIMEOUT:Busタイムアウト、BCL_GBI_INT_SYNCERROR:Syncエラー)
・戻り値:BCL_GBI_OK(正常終了)、BCL_GBI_ERROR(エラー)
-Name: BCL_GBI_interruptEnable
-Format: int BCL_GBI_interruptEnable (unsigned int status);
-Argument: status (Interrupt signal specification. BCL_GBI_INT_MODULE: Interrupt from module, BCL_GBI_INT_BUSERROR: Bus error, BCL_GBI_INT_TIMEOUT: Bus timeout, BCL_GBI_INT_SYNCERROR: Sync error)
Return values: BCL_GBI_OK (normal termination), BCL_GBI_ERROR (error)
C.4.2.2 Bus I/Fボードインターラプトディセーブル
各種インターラプト信号をシステムバス I/Fボード上でディセーブルにします。インターラプト信号には、各種モジュールからの割り込み、Busエラー、Busタイムアウト、Syncエラーの4種類があります。これらの信号は下記で定義されたビット情報として設定できます。複数のインターラプト信号を指定する場合は、論理和として設定します。この関数は、システムバス I/F上でインターラプトがディセーブルになったことを確認後、終了します。
C. 4.2.2 Bus I / F board interrupt disable
Disable various interrupt signals on the system bus I / F board. There are four types of interrupt signals: interrupts from various modules, Bus error, Bus timeout, and Sync error. These signals can be set as bit information defined below. When specifying multiple interrupt signals, set them as a logical sum. This function terminates after confirming that interrupts are disabled on the system bus I / F.
・名前:BCL_GBI_interruptDisable
・形式:int BCL_GBI_interruptDisable(unsigned int status);
・引数:status(インターラプト信号の指定。BCL_GBI_INT_MODULE:モジュールからの割り込み、BCL_GBI_INT_BUSERROR:Busエラー、BCL_GBI_INT_TIMEOUT:Busタイムアウト、BCL_GBI_INT_SYNCERROR:Syncエラー)
・戻り値:BCL_GBI_OK(正常終了)、BCL_GBI_ERROR(エラー)
-Name: BCL_GBI_interruptDisable
-Format: int BCL_GBI_interruptDisable (unsigned int status);
-Argument: status (Interrupt signal specification. BCL_GBI_INT_MODULE: Interrupt from module, BCL_GBI_INT_BUSERROR: Bus error, BCL_GBI_INT_TIMEOUT: Bus timeout, BCL_GBI_INT_SYNCERROR: Sync error)
Return values: BCL_GBI_OK (normal termination), BCL_GBI_ERROR (error)
C.4.2.3 Bus I/Fボードインターラプトリード
各種インターラプト信号をシステムバス I/Fボード上で読み込みます。インターラプト信号には、各種モジュールからの割り込み、Busエラー、Busタイムアウト、Syncエラーの4種類があります。これらの信号は下記で定義されたビット情報として読み込まれます。
C. 4.2.3 Bus I / F board interrupt lead
Various interrupt signals are read on the system bus I / F board. There are four types of interrupt signals: interrupts from various modules, Bus error, Bus timeout, and Sync error. These signals are read as bit information defined below.
・名前:BCL_GBI_interruptRead
・形式:int BCL_GBI_interruptRead(unsigned int *status);
・引数:status(インターラプト信号を読み込む変数へのポインタ。BCL_GBI_INT_MODULE:モジュールからの割り込み、BCL_GBI_INT_BUSERROR:Busエラー、BCL_GBI_INT_TIMEOUT:Busタイムアウト、BCL_GBI_INT_SYNCERROR:Syncエラー)
・戻り値:BCL_GBI_OK(正常終了)、BCL_GBI_ERROR(エラー)
-Name: BCL_GBI_interruptRead
-Format: int BCL_GBI_interruptRead (unsigned int * status);
-Argument: status (pointer to variable to read interrupt signal. BCL_GBI_INT_MODULE: Interrupt from module, BCL_GBI_INT_BUSERROR: Bus error, BCL_GBI_INT_TIMEOUT: Bus timeout, BCL_GBI_INT_SYNCERROR: Sync error)
Return values: BCL_GBI_OK (normal termination), BCL_GBI_ERROR (error)
C.4.2.4 Bus I/Fボードインターラプトクリア
各種インターラプト信号をシステムバス I/Fボード上でクリアします。インターラプト信号には、各種モジュールからの割り込み、Busエラー、Busタイムアウト、Syncエラーの4種類があります。これらの信号は下記で定義されたビット情報として設定できます。複数のインターラプト信号を指定する場合は、論理和として設定します。
モジュールからの割り込み(BCL_GBI_INT_MODULE)のみが指定された場合は、この関数が実行される直前の各モジュールのFIFOをフラッシュしたあと、システムバス I/F上のインターラプトをクリアし、システムバス I/F上でインターラプトがクリアになったことを確認後、終了します。
C. 4.2.4 Bus I / F board interrupt clear Various interrupt signals are cleared on the system bus I / F board. There are four types of interrupt signals: interrupts from various modules, Bus error, Bus timeout, and Sync error. These signals can be set as bit information defined below. When specifying multiple interrupt signals, set them as a logical sum.
If only an interrupt from the module (BCL_GBI_INT_MODULE) is specified, the FIFO of each module immediately before this function is executed is flushed, then the interrupt on the system bus I / F is cleared, and the system bus I / F After confirming that the interrupt is cleared above, exit.
・名前:BCL_GBI_interruptClear
・形式:int BCL_GBI_interruptClear(unsigned int status);
・引数:status (インターラプト信号の指定。BCL_GBI_INT_MODULE:モジュールからの割り込み、BCL_GBI_INT_BUSERROR:Busエラー、BCL_GBI_INT_TIMEOUT:Busタイムアウト、BCL_GBI_INT_SYNCERROR:Syncエラー)
・戻り値:BCL_GBI_OK(正常終了)、BCL_GBI_ERROR(エラー)
・ Name: BCL_GBI_interruptClear
-Format: int BCL_GBI_interruptClear (unsigned int status);
-Argument: status (Interrupt signal specification. BCL_GBI_INT_MODULE: Interrupt from module, BCL_GBI_INT_BUSERROR: Bus error, BCL_GBI_INT_TIMEOUT: Bus timeout, BCL_GBI_INT_SYNCERROR: Sync error)
Return values: BCL_GBI_OK (normal termination), BCL_GBI_ERROR (error)
C.4.2.5 Syncするモジュール数の設定
サイトCPU に接続されているシステムバス と接続されている全てのモジュールの数をシステムバス I/F ボード上に設定します。この設定を行うことにより、FIFOをSyncするモジュールの数が決定されます。
オフラインの場合は、システムバス エミュレータのFIFOは存在しません。また、モジュール内のFIFOの存在はベンダ依存です。
C. 4.2.5 Setting the number of modules to be synchronized Set the number of all modules connected to the system bus connected to the site CPU on the system bus I / F board. This setting determines the number of modules that sync the FIFO.
When offline, there is no FIFO for the system bus emulator. The existence of FIFO in the module is vendor-dependent.
・名前:BCL_GBI_setSyncCount
・形式:int BCL_GBI_setSyncCount(unsigned int number);
・引数:number(Syncするモジュールの数)
・戻り値:BCL_GBI_OK(正常終了)、BCL_GBI_ERROR(エラー)
-Name: BCL_GBI_setSyncCount
-Format: int BCL_GBI_setSyncCount (unsigned int number);
-Argument: number (number of modules to be synchronized)
Return values: BCL_GBI_OK (normal termination), BCL_GBI_ERROR (error)
C.4.2.6 インターラプトの設定状態のセーブ
システムバス I/Fボード上のインターラプト信号の設定状態(イネーブル/ディゼーブル)及び、モジュールからのインターラプト発生の設定状態(ロック/アンロック)をセーブします。この関数は、診断等でインターラプト操作を行う前に、現在の設定状態をセーブする目的で使用されます。セーブされた内容は、BCL_GBI_restoreInterruptCondition()関数でリストアされます。この関数が2回以上実行された場合は、以前にセーブされた設定状態は取り消され、最後にセーブした設定状態のみ有効となります。
オフラインでは無効な機能のため、本関数内では何も行いません。
C. 4.2.6 Save interrupt setting status Save interrupt signal setting status (enable / disable) on system bus I / F board and interrupt generation status (lock / unlock) from module. To do. This function is used to save the current setting state before performing an interrupt operation for diagnosis. The saved contents are restored with the BCL_GBI_restoreInterruptCondition () function. If this function is executed more than once, the previously saved settings are canceled and only the last saved settings are valid.
This function does not do anything because it is an invalid function offline.
・名前:BCL_GBI_saveInterruptCondition
・形式:int BCL_GBI_saveInterruptCondition(void);
・引数:なし
・戻り値:BCL_GBI_OK(正常終了)、BCL_GBI_ERROR(エラー)
・ Name: BCL_GBI_saveInterruptCondition
-Format: int BCL_GBI_saveInterruptCondition (void);
-Argument: None-Return value: BCL_GBI_OK (normal termination), BCL_GBI_ERROR (error)
C.4.2.7 インターラプトの設定状態のリストア
BCL_GBI_saveInterruptCondition()関数によりセーブされたシステムバス I/Fボード上のインターラプト信号の設定状態(イネーブル/ディゼーブル)及び、各種モジュールからのインターラプト発生の設定状態(ロック/アンロック)をリストアします。この関数は、診断等でインターラプト操作を行った後に、操作前の設定状態に戻す目的で使用されます。BCL_GBI_saveInterruptCondition()関数によるセーブが行わずに本関数が実行された場合は、エラーを返します。この関数が2回以上実行されてもエラーとはならず、常に最後にセーブされた設定状態がリストアされます。
オフラインでは無効な機能のため、本関数内では何も行いません。
C. 4.2.7 Restoring interrupt settings
Restores the interrupt signal setting state (enable / disable) on the system bus I / F board saved by the BCL_GBI_saveInterruptCondition () function and the interrupt generation setting state (lock / unlock) from various modules. This function is used for the purpose of returning to the setting state before operation after interrupt operation for diagnosis. If this function is executed without saving with the BCL_GBI_saveInterruptCondition () function, an error is returned. If this function is executed more than once, no error will occur and the last saved configuration will always be restored.
This function does not do anything because it is an invalid function offline.
・名前:BCL_GBI_restoreInterruptCondition
・形式:int BCL_GBI_restoreInterruptCondition(void);
・引数:なし
・戻り値:BCL_GBI_OK(正常終了)、BCL_GBI_ERROR(エラー)
-Name: BCL_GBI_restoreInterruptCondition
-Format: int BCL_GBI_restoreInterruptCondition (void);
-Argument: None-Return value: BCL_GBI_OK (normal termination), BCL_GBI_ERROR (error)
C.4.2.8 モジュールインターラプト要因の読み出し
各種モジュールからインターラプトが発生した場合の要因とその要因数を読み出します。インターラプトの要因は最大256個(4バイト/要因)あります。このうち発生したインターラプトの要因数分だけ要因を返します。要因の読み出し用バッファは、最大要因数分のインターラプトが発生した場合を考慮して最大要因数(unsigned int型で256個)確保する必要があります。
オフラインでは無効な機能のため、本関数内では何も行いません。
C. 4.2.8 Reading module interrupt factors Read the factors and the number of factors when an interrupt occurs from various modules. There are a maximum of 256 interrupt factors (4 bytes / factor). Returns as many factors as the number of interrupts that occurred. The factor read buffer must have the maximum number of factors (256 unsigned int types) in consideration of the maximum number of interrupts.
This function does not do anything because it is an invalid function offline.
・名前:BCL_GBI_readInterruptFactor
・形式:int BCL_GBI_readInterruptFactor(unsigned int *Factor, int *number);
・引数:Factor(割り込み要因を読み込む配列へのポインタ)、number(割り込み要因数を格納するポインタ)
・戻り値:BCL_GBI_OK(正常終了)、BCL_GBI_ERROR(エラー)
-Name: BCL_GBI_readInterruptFactor
-Format: int BCL_GBI_readInterruptFactor (unsigned int * Factor, int * number);
-Argument: Factor (pointer to the array that reads the interrupt factor), number (pointer that stores the number of interrupt factors)
Return values: BCL_GBI_OK (normal termination), BCL_GBI_ERROR (error)
C.5 非公開関数
非公開関数です。
C.5.1.1 非同期DMA転送のキャンセル(非公開)
実行中の非同期DMA転送をキャンセルします。同期DMAはキャンセルできません。また、誤ったtransfer IDを指定した場合、DMAのキャンセルは実行されず、正常終了のステータスが戻ります。
C. 5 Private function Private function.
C. 5.1.1 Canceling asynchronous DMA transfer (not disclosed)
Cancels the ongoing asynchronous DMA transfer. Synchronous DMA cannot be canceled. If an incorrect transfer ID is specified, the DMA cancel is not executed and the normal end status is returned.
・名前:BCL_GBI_cancelDMA
・形式:int BCL_GBI_cancelDMA(unsigned int transferID);
・引数:transferID(非同期モード転送時に返された転送終了待ちID)
・戻り値:BCL_GBI_OK(正常終了)、BCL_GBI_ERROR(エラー)
・ Name: BCL_GBI_cancelDMA
-Format: int BCL_GBI_cancelDMA (unsigned int transferID);
-Argument: transferID (transfer end wait ID returned during asynchronous mode transfer)
Return values: BCL_GBI_OK (normal termination), BCL_GBI_ERROR (error)
C.5.1.2 PCIベースアドレスの取得(非公開)
システムバス I/Fボードで使用するPCIバスのベースアドレスを取得します。この関数は、システムバス I/Fボードの診断等で使用されます。このアドレスは、取得したプロセスでのみ使用可能です。取得したアドレスがNULLであった場合は、本ライブラリの初期設定が行われていません。BCL_GBI_init関数によりライブラリの初期化を行ってから使用してください。
オフラインでは無効な機能のため、本関数内では何も行いません。
C. 5.1.2 Acquisition of PCI base address (not disclosed)
Acquires the base address of the PCI bus used by the system bus I / F board. This function is used for diagnosis of the system bus I / F board. This address can only be used by the acquired process. If the acquired address is NULL, this library has not been initialized. Use it after initializing the library with the BCL_GBI_init function.
This function does not do anything because it is an invalid function offline.
・名前:BCL_GBI_exportPciBaseAddress
・形式:PULONG BCL_GBI_exportPciBaseAddress(void);
・引数:なし
・戻り値:NULL(エラー)、NULL以外(システムバス I/FのPCIベースアドレス)
-Name: BCL_GBI_exportPciBaseAddress
-Format: PULONG BCL_GBI_exportPciBaseAddress (void);
・ Argument: None ・ Return value: NULL (error), not NULL (PCI base address of system bus I / F)
C.5.1.3 モジュールインターラプトロック(非公開)
モジュール からのインターラプトの発生を発生元で禁止します。インターラプトのロックを設定すると以後新規にインターラプトの発生をモジュール側で禁止します。なお、この関数は、各モジュールにロックが格納された後終了します。
C. 5.1.3 Module interrupt lock (undisclosed)
Generation of interrupts from the module is prohibited at the source. When interrupt lock is set, the generation of new interrupts is prohibited on the module side. Note that this function ends after the lock is stored in each module.
・名前:BCL_GBI_interruptLock
・形式:int BCL_GBI_interruptLock(void);
・引数:なし
・戻り値:BCL_GBI_OK(正常終了)、BCL_GBI_ERROR(エラー)
・ Name: BCL_GBI_interruptLock
-Format: int BCL_GBI_interruptLock (void);
-Argument: None-Return value: BCL_GBI_OK (normal termination), BCL_GBI_ERROR (error)
C.5.1.4 モジュールインターラプトアンロック(非公開)
モジュール からのインターラプトの発生を発生元で許可します。この関数を実行すると、ロック中に発生を待たされていたインターラプトやアンロック以後のインターラプトの発生が各種モジュール側で可能となります。
なお、この関数は、各モジュールにアンロックが格納された後終了します。
C. 5.1.4 Module interrupt unlock (undisclosed)
Allows the generation of interrupts from the module at the source. When this function is executed, it is possible for various modules to generate interrupts that have been awaited during locking and interrupts after unlocking.
Note that this function ends after the unlock is stored in each module.
・名前:BCL_GBI_interruptUnlock
・形式:int BCL_GBI_interruptUnlock(void);
・引数:なし
・戻り値:BCL_GBI_OK(正常終了)、BCL_GBI_ERROR(エラー)
・ Name: BCL_GBI_interruptUnlock
-Format: int BCL_GBI_interruptUnlock (void);
-Argument: None-Return value: BCL_GBI_OK (normal termination), BCL_GBI_ERROR (error)
C.5.1.5 詳細エラー情報の出力(非公開)
システムバス アクセスライブラリがBCL_GBI_ERRORを返したときの詳細エラー情報を標準出力ストリームに出力します。
C. 5.1.5 Detailed error information output (not disclosed)
Detailed error information when the system bus access library returns BCL_GBI_ERROR is output to the standard output stream.
・名前:BCL_GBI_printLastError
・形式:void BCL_GBI_printLastError(void);
・引数:なし
・戻り値:なし
-Name: BCL_GBI_printLastError
-Format: void BCL_GBI_printLastError (void);
-Argument: None-Return value: None
C.5.1.6 詳細エラー情報履歴の出力(非公開)
現在までに使用されたシステムバスアクセスライブラリがBCL_GBI_ERRORを返したときの詳細エラー情報を最大で過去16回分まで標準出力ストリームに出力します。
C. 5.1.6 Detailed error information history output (not disclosed)
Detailed error information when the system bus access library used so far returns BCL_GBI_ERROR is output to the standard output stream up to the past 16 times.
・名前:BCL_GBI_printPreviousErrors
・形式:void BCL_GBI_printPreviousErrors(void);
・引数:なし
・戻り値:なし
・ Name: BCL_GBI_printPreviousErrors
-Format: void BCL_GBI_printPreviousErrors (void);
-Argument: None-Return value: None
C.5.1.7 デバッグ・モードの制御(非公開)
アクセスライブラリに実装したデバッグ・モードの制御を行います。
C. 5.1.7 Debug mode control (not disclosed)
Controls the debug mode implemented in the access library.
・名前:BCL_GBI_verbose
・形式:void BCL_GBI_verbose(int val);
・引数:val(デバッグ・モードの指定)
・戻り値:なし
・ Name: BCL_GBI_verbose
-Format: void BCL_GBI_verbose (int val);
-Argument: val (specify debug mode)
Return value: None
C.5.1.8 レース機能のイネーブル(非公開)
システムバスアクセスライブラリのトレース機能をイネーブルにします。トレース機能をイネーブルにすると、バスアクセスや関数のトレースが有効となります。バスアクセスのトレースでは、アクセスしたアドレスとデータ及び、リード/ライトの識別が標準出力ストリームに表示されます。関数のトレースでは、実行された関数名が標準出力ストリームに表示されます。また、トレースを実行する関数は、任意の関数を登録して置き換える事も可能です。
C. 5.1.8 Enable race function (not disclosed)
Enables the trace function of the system bus access library. When the trace function is enabled, bus access and function tracing are enabled. In the bus access trace, the address and data accessed and the read / write identification are displayed in the standard output stream. In function tracing, the name of the executed function is displayed in the standard output stream. It is also possible to register and replace any function that executes tracing.
バスアクセスのトレースを行うアクセスライブラリの関数は以下の通りです。
BCL_GBI_write
BCL_GBI_read
BCL_GBI_writeBlock
BCL_GBI_readBlock
BCL_GBI_writeSeq
BCL_GBI_readSeq
BCL_GBI_writeSyncDMA
BCL_GBI_readSyncDMA
BCL_GBI_writeAsyncDMA
BCL_GBI_readAsyncDMA
BCL_GBI_writeConfig
BCL_GBI_readConfig
The access library functions that trace the bus access are as follows.
BCL_GBI_write
BCL_GBI_read
BCL_GBI_writeBlock
BCL_GBI_readBlock
BCL_GBI_writeSeq
BCL_GBI_readSeq
BCL_GBI_writeSyncDMA
BCL_GBI_readSyncDMA
BCL_GBI_writeAsyncDMA
BCL_GBI_readAsyncDMA
BCL_GBI_writeConfig
BCL_GBI_readConfig
関数のトレースを行うアクセスライブラリの関数は以下の通りです。
BCL_GBI_waitFlushFIFO
BCL_GBI_waitDMA
BCL_GBI_cancelDMA
BCL_GBI_conditionDMA
BCL_GBI_syncCount
BCL_GBI_resetModule
The access library functions that trace functions are as follows.
BCL_GBI_waitFlushFIFO
BCL_GBI_waitDMA
BCL_GBI_cancelDMA
BCL_GBI_conditionDMA
BCL_GBI_syncCount
BCL_GBI_resetModule
・名前:BCL_GBI_ioTraceEnable
・形式:int BCL_GBI_ioTraceEnable(void);
・引数:なし
・戻り値:BCL_GBI_OK(正常終了)、BCL_GBI_ERROR(エラー)
-Name: BCL_GBI_ioTraceEnable
-Format: int BCL_GBI_ioTraceEnable (void);
-Argument: None-Return value: BCL_GBI_OK (normal termination), BCL_GBI_ERROR (error)
C.5.1.9 トレース機能のディセーブル(非公開)
システムバスアクセスライブラリのトレース機能をディセーブルにします。トレース機能をディセーブルにすると、バスアクセスや関数のトレースが無効となります。
C. 5.1.9 Disable trace function (not disclosed)
Disables the system bus access library trace function. When the trace function is disabled, bus access and function tracing are disabled.
・名前:BCL_GBI_ioTraceDisable
・形式:int BCL_GBI_ioTraceDisable(void);
・引数:なし
・戻り値:BCL_GBI_OK(正常終了)、BCL_GBI_ERROR(エラー)
・ Name: BCL_GBI_ioTraceDisable
-Format: int BCL_GBI_ioTraceDisable (void);
-Argument: None-Return value: BCL_GBI_OK (normal termination), BCL_GBI_ERROR (error)
C.5.1.10 トレース機能のアドレスフィルタ指定(非公開)
バスアクセスのトレース機能に関するアドレスフィルタの指定を行います。フィルタの指定方法は、モードによって単一指定または、連続指定が可能です。指定できる組み合わせは最大で16通りの指定が可能です。トレース機能がイネーブルとなっている場合は、この組み合わせのいずれかに該当したアドレスのみトレース対象となります。
C. 5.1.10 Address filter specification for trace function (not disclosed)
Specify the address filter for the bus access trace function. The filter specification method can be specified singly or continuously depending on the mode. Up to 16 combinations can be specified. If the trace function is enabled, only addresses that fall into one of these combinations will be traced.
・名前:BCL_GBI_ioTraceAddress
・形式:int BCL_GBI_ioTraceAddress(int mode, …);
-Name: BCL_GBI_ioTraceAddress
-Format: int BCL_GBI_ioTraceAddress (int mode,…);
int BCL_GBI_ioTraceAddress(0); int BCL_GBI_ioTraceAddress (0);
int BCL_GBI_ioTraceAddress(1, addr); int BCL_GBI_ioTraceAddress (1, addr);
int BCL_GBI_ioTraceAddress(2, start_addr, stop_addr);
・引数:mode(フィルタ・モードの指定。0: フィルタ指定の解除、1: 単一アドレス指定、2: 連続アドレス指定)、addr(単一アドレス指定時の対象アドレス)、start_addr(連続アドレス指定時の開始アドレス)、stop_addr(連続アドレス指定時の終了アドレス)
・戻り値:BCL_GBI_OK(正常終了)、BCL_GBI_ERROR(エラー)
int BCL_GBI_ioTraceAddress (2, start_addr, stop_addr);
-Arguments: mode (Specify filter mode. 0: Cancel filter specification, 1: Single address specification, 2: Continuous address specification), addr (Target address when single address is specified), start_addr (When continuous address is specified) Start address), stop_addr (end address when consecutive addresses are specified)
Return values: BCL_GBI_OK (normal termination), BCL_GBI_ERROR (error)
C.5.1.11 トレース機能の設定情報出力(非公開)
現在設定されているトレース機能に関する設定情報を標準出力ストリームに出力します。トレースのイネーブル/ディセーブル状態やアドレスフィルタの設定状態を確認する事が出来ます。
C. 5.1.11 Trace function setting information output (not disclosed)
Outputs the setting information related to the currently set trace function to the standard output stream. You can check the trace enable / disable status and address filter setting status.
・名前:BCL_GBI_ioTraceShow
・形式:int BCL_GBI_ioTraceShow(void);
・引数:なし
・戻り値:なし
・ Name: BCL_GBI_ioTraceShow
-Format: int BCL_GBI_ioTraceShow (void);
-Argument: None-Return value: None
C.5.1.12 トレース機能の簡易ヘルプ情報出力(非公開)
トレース機能に関する簡易ヘルプ情報を標準出力ストリームに出力します。
C. 5.1.12 Simple help information output for the trace function (not disclosed)
Outputs simple help information related to the trace function to the standard output stream.
・名前:BCL_GBI_ioTraceHelp
・形式:int BCL_GBI_ioTraceHelp(void);
・引数:なし
・戻り値:なし
-Name: BCL_GBI_ioTraceHelp
-Format: int BCL_GBI_ioTraceHelp (void);
-Argument: None-Return value: None
C.5.1.13 トレース関数の登録(非公開)
トレース機能を実行するデフォルトのトレース関数を任意のトレース関数に置き換えます。トレース機能がイネーブルとなっていれば、直後のトレース対象のアクセスライブラリ関数から登録された関数が実行されます。登録できる関数は1個で、既に登録されている場合は、上書きで登録されます。デフォルトのトレース関数に戻す場合は、BCL_GBI_ioTraceResetHandler関数を実行します。
C. 5.1.13 Trace function registration (not disclosed)
Replace the default trace function that executes the trace function with any trace function. If the trace function is enabled, the function registered from the access library function to be traced immediately after is executed. Only one function can be registered. If it has already been registered, it will be overwritten. To return to the default trace function, execute the BCL_GBI_ioTraceResetHandler function.
トレースが行われるアクセスライブラリの関数は以下のとおりです。
BCL_GBI_write
BCL_GBI_read
BCL_GBI_writeBlock
BCL_GBI_readBlock
BCL_GBI_writeSeq
BCL_GBI_readSeq
BCL_GBI_writeSyncDMA
BCL_GBI_readSyncDMA
BCL_GBI_writeAsyncDMA
BCL_GBI_readAsyncDMA
BCL_GBI_writeConfig
BCL_GBI_readConfig
BCL_GBI_waitFlushFIFO
BCL_GBI_waitDMA
BCL_GBI_cancelDMA
BCL_GBI_conditionDMA
BCL_GBI_syncCount
BCL_GBI_resetModule
The access library functions to be traced are as follows.
BCL_GBI_write
BCL_GBI_read
BCL_GBI_writeBlock
BCL_GBI_readBlock
BCL_GBI_writeSeq
BCL_GBI_readSeq
BCL_GBI_writeSyncDMA
BCL_GBI_readSyncDMA
BCL_GBI_writeAsyncDMA
BCL_GBI_readAsyncDMA
BCL_GBI_writeConfig
BCL_GBI_readConfig
BCL_GBI_waitFlushFIFO
BCL_GBI_waitDMA
BCL_GBI_cancelDMA
BCL_GBI_conditionDMA
BCL_GBI_syncCount
BCL_GBI_resetModule
・名前:BCL_GBI_ioTraceHandler
・形式:void BCL_GBI_ioTraceHandler(BCL_GBI_TRACE_HANDLER handler, void *arg);
・引数:handler(コールバック関数のアドレス)、arg(トレースハンドラへ渡す値)
・戻り値:なし
・戻り値:BCL_GBI_OK(正常終了)、BCL_GBI_ERROR(エラー)
-Name: BCL_GBI_ioTraceHandler
-Format: void BCL_GBI_ioTraceHandler (BCL_GBI_TRACE_HANDLER handler, void * arg);
Arguments: handler (callback function address), arg (value passed to the trace handler)
-Return value: None-Return value: BCL_GBI_OK (successful completion), BCL_GBI_ERROR (error)
C.5.1.14 デフォルトのトレース関数の登録(非公開)
BCL_GBI_ioTraceHandler関数により置き換えられた任意のトレース関数をデフォルトのトレース関数に戻します。
C. 5.1.14 Registration of default trace function (not disclosed)
Returns any trace function replaced by the BCL_GBI_ioTraceHandler function to the default trace function.
・名前:BCL_GBI_ioTraceResetHandler
・形式:void BCL_GBI_ioTraceResetHandler(void);
・引数:なし
・戻り値:なし
-Name: BCL_GBI_ioTraceResetHandler
-Format: void BCL_GBI_ioTraceResetHandler (void);
-Argument: None-Return value: None
C.5.1.15 デフォルトのトレース関数の実行(非公開)
BCL_GBI_ioTraceHandler関数により登録された任意のトレース関数からデフォルトのトレース関数を実行します。
C. 5.1.15 Executing the default trace function (not disclosed)
The default trace function is executed from any trace function registered by the BCL_GBI_ioTraceHandler function.
・名前:BCL_GBI_ioTraceExecuteDefaultHandler
・形式:void BCL_GBI_ioTraceExecuteDefaultHandler(int cmd, unsigned int address, unsigned int data, void *arg);
・引数:cmd(トレース対象となる関数)、address(トレース対象のアドレス)、data(トレース対象のデータ)、arg(トレースハンドラに引き渡された引数)
・戻り値:なし
-Name: BCL_GBI_ioTraceExecuteDefaultHandler
-Format: void BCL_GBI_ioTraceExecuteDefaultHandler (int cmd, unsigned int address, unsigned int data, void * arg);
Arguments: cmd (function to be traced), address (trace target address), data (trace target data), arg (argument passed to trace handler)
Return value: None
10 試験装置、20 コンピュータ、100a〜b DUT、110 システム制御装置、120 通信ネットワーク、130a〜c サイト制御装置、140 バススイッチ、150a〜b 同期モジュール、160a〜b 同期接続モジュール、170a〜b 試験モジュール、180 ロードボード、190 試験エミュレート装置、200 DUTシミュレート部、230 サイト制御エミュレート部、240 バススイッチエミュレート部、250 同期モジュールエミュレート部、260 同期接続モジュールエミュレート部、270a〜b 試験モジュールエミュレート部、275 スケジュール制御部、276 タイミング整列部、277 スケジュール部、280 DUT接続部、300 CPU、310 ROM、320 RAM、330 通信インターフェイス、340 ハードディスク・ドライブ、350 フレキシブルディスク・ドライブ、360 CD−ROMドライブ、390 フレキシブルディスク、395 CD−ROM、400 試験モジュールIFエミュレート部、410 制御関数処理部、420 マシンワードDB、430 パターン発生器エミュレート部、440 波形整形器エミュレート部、450 ピン制御エミュレート部、460 パラメータ測定エミュレート部、500 クラス階層構造、510 シミュレーションコンポーネントクラス、512 仮想ハードウェアエミュレート関数、514 仮想制御関数、520 A社モジュールクラス、522 実ハードウェアエミュレート関数、524 実制御関数、530 B社モジュールクラス、540 デジタル試験モジュールクラス、550 250MHzデジタル試験モジュールクラス、560 電源モジュールクラス、570 高電圧電源モジュールクラス、580 低電圧電源モジュールクラス、590 同期モジュールクラス、2200 ソフトウェアアーキテクチャ、2220 システムコントローラ、2222 標準インターフェイス、2224 フレームワーククラス、2225 ツール、2226 ツール、2230 SYSC-SITEC通信ライブラリ、2240 サイトコントローラ、2242 ユーザテストプラン、2243 ユーザテストクラス、2244 標準テストクラス、2245 標準インターフェイス、2246 フレームワーククラス、2247 モジュールレベルインターフェイス、2248 モジュールコマンドインプリメンテーション、2249 バックプレーン通信ライブラリ、2250 PCIバックプレーンドライバ、2260 モジュール、2261 HWバックプレーン、2262 シャシースロットIF、2263 モジュールハードウェア、2264 ロードボードハードウェアIF、2265 ハードウェアロードボード、2266 DUT、2280 SWモジュールエミュレーション、2281 シミュレーションフレームワーク、2282 バックプレーンエミュレーション、2283 バックプレーンシミュレーションIF、2284 モジュールエミュレーション、2285 ロードボードシミュレーションIF、2286 ロードボードシミュレーション、2287 DUTシミュレーションIF、2288 Verilog PLI、2289 C/C++、2290 インターフェイス、2291 DUT C/C++モデル、2292 ユーザ、2293 DUT Verilogモデル、2294 システム、2296 モジュール開発、2298 外部、2804 テスト環境、2806 テスト準備、2808 システムテスト、2809 オフラインシミュレーション、2810 新しいHW/SWモジュール、2812 認証、2814 テストプログラム開発、2815 インストール、2816 パターンコンパイル、2817 較正、2818 診断、2820 構成、5000 シミュレーションコンフィギュレーションファイル、5010 グローバルセクション、5020 モジュールエミュレーションセクション、5100 オフラインコンフィギュレーションファイル、5110 グローバルセクション、5120 DUTモデルセクション、5200 クラス階層構造、6000 実環境、6010 ソフトウェア、6012 HLC処理部、6014 システムバスアクセスライブラリ、6016 PCIバスドライバ、6030 ハードウェア、6032 バスIF、6050 エミュレート環境、6060 オフラインプロセス、6080 試験装置エミュレートプロセス、6084 システムバスエミュレータ、6086 モジュールエミュレータ 10 test equipment, 20 computers, 100a-b DUT, 110 system controller, 120 communication network, 130a-c site controller, 140 bus switch, 150a-b synchronization module, 160a-b synchronization connection module, 170a-b test module , 180 load board, 190 test emulation device, 200 DUT simulation section, 230 site control emulation section, 240 bus switch emulation section, 250 synchronization module emulation section, 260 synchronization connection module emulation section, 270a-b test Module emulation section, 275 schedule control section, 276 timing alignment section, 277 schedule section, 280 DUT connection section, 300 CPU, 310 ROM, 320 RAM, 3 0 communication interface, 340 hard disk drive, 350 flexible disk drive, 360 CD-ROM drive, 390 flexible disk, 395 CD-ROM, 400 test module IF emulation section, 410 control function processing section, 420 machine word DB, 430 Pattern generator emulation unit, 440 waveform shaper emulation unit, 450 pin control emulation unit, 460 parameter measurement emulation unit, 500 class hierarchical structure, 510 simulation component class, 512 virtual hardware emulation function, 514 virtual control Function, 520 Company A module class, 522 Actual hardware emulation function, 524 Actual control function, 530 Company B module class, 540 Tal test module class, 550 250 MHz digital test module class, 560 power supply module class, 570 high voltage power supply module class, 580 low voltage power supply module class, 590 synchronization module class, 2200 software architecture, 2220 system controller, 2222 standard interface, 2224 frame Work Class, 2225 Tool, 2226 Tool, 2230 SYSC-SITEC Communication Library, 2240 Site Controller, 2242 User Test Plan, 2243 User Test Class, 2244 Standard Test Class, 2245 Standard Interface, 2246 Framework Class, 2247 Module Level Interface, 2248 Module command implementation 2249 backplane communication library, 2250 PCI backplane driver, 2260 module, 2261 HW backplane, 2262 chassis slot IF, 2263 module hardware, 2264 load board hardware IF, 2265 hardware load board, 2266 DUT, 2280 SW Module emulation, 2281 simulation framework, 2282 backplane emulation, 2283 backplane simulation IF, 2284 module emulation, 2285 load board simulation IF, 2286 load board simulation, 2287 DUT simulation IF, 2288 Verilog PLI, 2289 C / C ++, 2290 interface Faye , 2291 DUT C / C ++ model, 2292 users, 2293 DUT Verilog model, 2294 system, 2296 module development, 2298 external, 2804 test environment, 2806 test preparation, 2808 system test, 2809 offline simulation, 2810 New HW / SW module, 2812 Authentication, 2814 test program development, 2815 installation, 2816 pattern compilation, 2817 calibration, 2818 diagnostics, 2820 configuration, 5000 simulation configuration file, 5010 global section, 5020 module emulation section, 5100 offline configuration file, 5110 global section, 5120 DUT Model section 5200 class hierarchical structure, 6000 real environment, 6010 software, 6012 HLC processor, 6014 system bus access library, 6016 PCI bus driver, 6030 hardware, 6032 bus IF, 6050 emulation environment, 6060 offline process, 6080 test equipment emulation Rate process, 6084 system bus emulator, 6086 module emulator
Claims (1)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004380598A JP2005285092A (en) | 2004-12-28 | 2004-12-28 | Test emulation apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004380598A JP2005285092A (en) | 2004-12-28 | 2004-12-28 | Test emulation apparatus |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005505208A Division JP3735636B2 (en) | 2003-03-31 | 2004-03-30 | Test emulation device, test module emulation device, and recording medium recording these programs |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006279496A Division JP2007057541A (en) | 2003-03-31 | 2006-10-13 | Test emulator |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005285092A true JP2005285092A (en) | 2005-10-13 |
JP2005285092A5 JP2005285092A5 (en) | 2006-12-07 |
Family
ID=35183354
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004380598A Pending JP2005285092A (en) | 2004-12-28 | 2004-12-28 | Test emulation apparatus |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005285092A (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008047134A (en) * | 2006-08-17 | 2008-02-28 | Samsung Electronics Co Ltd | Emulation system |
JP2008176706A (en) * | 2007-01-22 | 2008-07-31 | Yokogawa Electric Corp | Alarm information processing apparatus and alarm information processing method |
CN111965392A (en) * | 2019-05-19 | 2020-11-20 | 德律科技股份有限公司 | Test system and operation method thereof |
CN112115010A (en) * | 2020-08-27 | 2020-12-22 | 深圳市紫金支点技术股份有限公司 | Simulation test method of self-service equipment, intelligent terminal and storage medium |
CN112214370A (en) * | 2020-10-28 | 2021-01-12 | 京东数字科技控股股份有限公司 | Debugging equipment and method for large-screen terminal |
-
2004
- 2004-12-28 JP JP2004380598A patent/JP2005285092A/en active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008047134A (en) * | 2006-08-17 | 2008-02-28 | Samsung Electronics Co Ltd | Emulation system |
US8165866B2 (en) | 2006-08-17 | 2012-04-24 | Samsung Electronics Co., Ltd. | Emulation system |
JP2008176706A (en) * | 2007-01-22 | 2008-07-31 | Yokogawa Electric Corp | Alarm information processing apparatus and alarm information processing method |
CN111965392A (en) * | 2019-05-19 | 2020-11-20 | 德律科技股份有限公司 | Test system and operation method thereof |
CN111965392B (en) * | 2019-05-19 | 2023-04-28 | 德律科技股份有限公司 | Test system and method of operation thereof |
CN112115010A (en) * | 2020-08-27 | 2020-12-22 | 深圳市紫金支点技术股份有限公司 | Simulation test method of self-service equipment, intelligent terminal and storage medium |
CN112115010B (en) * | 2020-08-27 | 2024-05-10 | 深圳市紫金支点技术股份有限公司 | Simulation test method of self-service equipment, intelligent terminal and storage medium |
CN112214370A (en) * | 2020-10-28 | 2021-01-12 | 京东数字科技控股股份有限公司 | Debugging equipment and method for large-screen terminal |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3735636B2 (en) | Test emulation device, test module emulation device, and recording medium recording these programs | |
US20080016396A1 (en) | Test emulator, test module emulator and record medium storing program therein | |
JP3954639B2 (en) | Method and apparatus for testing integrated circuits | |
JP3911007B1 (en) | Method and system for simulating a modular test system | |
CN100489554C (en) | Test device and test emulation method | |
JP2006518460A5 (en) | ||
JP2007057541A (en) | Test emulator | |
JP4608516B2 (en) | Method for integrating test modules into a modular test system and modular test system | |
JP4608517B2 (en) | Modular test system | |
US8010839B2 (en) | Test system and method which can use tool during debugging | |
JP2009116876A (en) | Simulation system and method for test device, and program product | |
JPH10232890A (en) | Integrated logic analyzer for programmable logic circuit | |
JP2009116878A (en) | Simulation system and method for test device, and program product | |
CN100456043C (en) | Method and apparatus for testing integrated circuits | |
JP2005285092A (en) | Test emulation apparatus | |
JP2009229304A (en) | Test system and module control method | |
TWI287639B (en) | A distributed operating system for a semiconductor test system for testing at least one device under test | |
JP2009229305A (en) | Test system, and communication method between modules | |
Spieker et al. | Increasing Efficiency and Reuse in Modeling SystemC/TLM IPs Targeting Virtual Prototypes for Software Development | |
Johnson et al. | Next Generation Controller Interface Device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061013 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061127 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20061127 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20061127 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20061221 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20070301 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20070313 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20070301 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070403 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070601 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070821 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071017 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20071211 |