WO2004090562A1 - 試験エミュレート装置、試験モジュールエミュレート装置、及びこれらのプログラムを記録した記録媒体 - Google Patents

試験エミュレート装置、試験モジュールエミュレート装置、及びこれらのプログラムを記録した記録媒体

Info

Publication number
WO2004090562A1
WO2004090562A1 PCT/JP2004/004527 JP2004004527W WO2004090562A1 WO 2004090562 A1 WO2004090562 A1 WO 2004090562A1 JP 2004004527 W JP2004004527 W JP 2004004527W WO 2004090562 A1 WO2004090562 A1 WO 2004090562A1
Authority
WO
WIPO (PCT)
Prior art keywords
test
emulation
module
test signal
timing
Prior art date
Application number
PCT/JP2004/004527
Other languages
English (en)
French (fr)
Inventor
Shinsaku Higashi
Seiji Ichiyoshi
Ankan Pramanick
Mark Elston
Leon Chen
Robert Sauer
Ramachandran Krishnaswamy
Harsanjeet Singh
Toshiaki Adachi
Yoshihumi Tahara
Original Assignee
Advantest Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US10/403,817 external-priority patent/US7290192B2/en
Priority claimed from US10/404,002 external-priority patent/US7460988B2/en
Priority claimed from PCT/JP2004/001649 external-priority patent/WO2004072670A1/en
Application filed by Advantest Corporation filed Critical Advantest Corporation
Priority to DE602004007498T priority Critical patent/DE602004007498T2/de
Priority to EP04724396A priority patent/EP1610136B1/en
Priority to JP2005505208A priority patent/JP3735636B2/ja
Publication of WO2004090562A1 publication Critical patent/WO2004090562A1/ja

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/319Tester hardware, i.e. output processing circuits
    • G01R31/31903Tester hardware, i.e. output processing circuits tester configuration
    • G01R31/31908Tester set-up, e.g. configuring the tester to the device under test [DUT], down loading test patterns
    • G01R31/3191Calibration
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318307Generation of test inputs, e.g. test vectors, patterns or sequences computer-aided, e.g. automatic test program generator [ATPG], program translations, test program debugging
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318342Generation of test inputs, e.g. test vectors, patterns or sequences by preliminary fault modelling, e.g. analysis, simulation
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/319Tester hardware, i.e. output processing circuits
    • G01R31/31903Tester hardware, i.e. output processing circuits tester configuration
    • G01R31/31907Modular tester, e.g. controlling and coordinating instruments in a bus based architecture
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/319Tester hardware, i.e. output processing circuits
    • G01R31/31917Stimuli generation or application of test patterns to the device under test [DUT]
    • G01R31/31922Timing generation or clock distribution

Definitions

  • Test emulation device Description Test emulation device, test module emulation device, and recording medium on which these programs are recorded
  • the present invention relates to a test emulation device, a test module emulation device, and a recording medium recording these programs.
  • the present invention emulates a test apparatus having a plurality of exchangeable test modules, each of which supplies a test signal to a device under test, and verifies the test environment without using a real device such as a device under test or a test module.
  • the present invention relates to a test emulator, a test module emulator, and a recording medium on which these programs are recorded. Background art
  • JP-A-10-320229 JP-A-2000-267881, JP-A-2001-501022, JP-A-2001-1 No. 34457 and JP-A-2002-333469 are disclosed.
  • Japanese Patent Application Laid-Open No. H10-320229 discloses an emulator that emulates the function of each hardware unit of a semiconductor test apparatus, a device emulator that emulates a function of a DUT, and the like. Means for collecting data necessary for executing the test program from the emulator, and the collected data An emulator including a device test emulator that generates a test signal to a device emulator based on the above and compares the result signal from the device emulator and stores the result.
  • Japanese Patent Application Laid-Open No. 2000-2687881 discloses a semiconductor simulator that accurately simulates a voltage value and a current value that change depending on the internal resistance of DUT.
  • Japanese Patent Laid-Open No. 2001-51025 discloses a tester emulation means for emulating the operation of a semiconductor test apparatus, and a hardware description language simulation means for simulating a DUT based on a hardware description language.
  • the present invention discloses a semiconductor test program debug device comprising: a DUT simulation 1; and a debug means for debugging a semiconductor test program based on the result.
  • Japanese Unexamined Patent Application Publication No. 2001-134334 describes a semiconductor test program debug that can quickly create waveform data corresponding to each pin when emulating the operation of a semiconductor test device.
  • An apparatus is disclosed.
  • Japanese Patent Application Laid-Open No. 2002-3333469 discloses a semiconductor test program debug device capable of verifying a semiconductor test program created for a semiconductor device having an analog output terminal. .
  • test device emulation device shown above is based on a test device based on an architecture originally developed by the test device vendor.
  • the test equipment is realized by an open architecture, and it is expected that the test equipment will be constructed by combining modules developed by various vendors. It is desirable to provide an emulation device that can appropriately emulate a test device to be used.
  • an object of the present invention is to solve such a problem. Disclosure of the invention
  • a test emulator for emulating a test apparatus including a plurality of test modules for supplying test signals to a device under test.
  • a plurality of test modules emulating the plurality of test modules for generating test signals based on different cycle periods.
  • a control emulation section for emulating a control device for controlling a test of the device under test; and a plurality of test module emulation sections based on an instruction from the control emulation section.
  • a synchronization emulation section for generating a test signal generation timing for generating a test signal corresponding to the cycle time of the test module emulation section in a pseudo manner; and a plurality of the test signal generation sections generated by the synchronization emulation section.
  • a timing alignment unit that arranges the timings in time order and sequentially outputs the test signal generation timing; and a test module emulation unit corresponding to the one test signal generation timing output by the timing alignment unit.
  • a schedule section for generating a test signal in a pseudo cycle time. Providing a test emulator provided.
  • the device may further include a device under test simulator that simulates the operation of the device under test based on the test signal generated in a simulated manner.
  • the control device wherein the synchronization emulation section generates each of the plurality of test module emulation sections in a pseudo manner in generating a test signal in a cycle time corresponding to the test signal generation timing. Further generating an interrupt collection timing for collecting interrupts for the plurality of test signals, the timing alignment unit arranges the plurality of test signal generation timings and the plurality of interrupt collection timings in order of time, and sequentially outputs the plurality of test signal generation timings; When the timing alignment unit outputs one of the interrupt collection timings, the test module emulation unit generates a test signal in the test module emulation unit corresponding to the interrupt collection timing immediately before the interrupt collection timing. The interrupt generated in a pseudo cycle time It may be allowed to notify the control emulates part.
  • Each of the plurality of test module emulation sections generates a test signal change timing during the cycle time in generating a test signal in a cycle time corresponding to the test signal generation timing
  • a rate device acquires a plurality of the change timings generated by the plurality of test module emulation units, and based on the plurality of change timings, a device under test that sequentially and simulates a test signal sequentially in chronological order.
  • a connection unit may be further provided.
  • the device-under-test connection section is obtained from the plurality of test module emulation sections.
  • the obtained plurality of change timings are supplied to the timing alignment unit, and the timing alignment unit arranges the plurality of change timings, the plurality of test signal generation timings, and the plurality of interrupt collection timings in order of time and sequentially.
  • the output unit may output the test signal to the device-under-test connection unit in a pseudo manner when the timing alignment unit outputs one of the change timings.
  • Each of the plurality of test module emulation units notifies the synchronous 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.
  • the synchronization emulation unit is configured to execute a test corresponding to a next cycle time based on the cycle end timing notified from each of the plurality of test module emulation units.
  • the test signal generation timing for generating a signal in a pseudo manner may be generated.
  • the schedule section When the timing alignment section outputs the test signal generation timing corresponding to the next cycle time, the schedule section outputs the test signal generation timing in the cycle time immediately before the test signal generation timing. May be notified to the control emulator unit of an interrupt generated by the test module emulator unit in a pseudo manner.
  • Each of the plurality of test module emulation sections is realized by operating a test module emulation program corresponding to the test module emulation section on a computer, and the test module emulation program includes the test module emulation program.
  • a plurality of hardware emulation functions for emulating the operation of the test module corresponding to the command provided by the module for each of the plurality of commands received from the control device; and And a control function used to generate a test signal in a cycle time corresponding to the signal generation timing.
  • a program for causing a computer to function as a test emulator for emulating a test apparatus including a plurality of test modules for supplying test signals to a device under test, respectively is recorded.
  • Recording medium wherein the program A plurality of test module emulation sections for emulating the plurality of test modules for generating test signals based on different cycle periods, and a control device for controlling a test of the device under test A control emulation section for emulating the test module, and each of the plurality of test module emulation sections outputs a test signal corresponding to a cycle time of the test module emulation section based on an instruction from the control emulation section.
  • a synchronization emulator for generating a test signal generation timing to be generated in a pseudo manner; a timing alignment unit for arranging the plurality of test signal generation timings generated by the synchronization emulation unit in time order and sequentially outputting the test signals; One of the test signal generation timings output from the timing alignment unit corresponds to the test signal generation timing.
  • the test module emulation section to provide a recording medium to function test signal in the cycle time corresponding to the test signal generating timing of the one as scheduling part is artificially generated.
  • a test emulator for emulating a test apparatus including a plurality of test modules for supplying test signals based on different cycle periods to a device under test.
  • a test module emulation device for emulating wherein the test emulation device includes: a control emulation unit for emulating a control device for controlling a test of the device under test; and a control emulation unit for emulating a control device.
  • a synchronization emulator that generates a test signal generation timing for generating a test signal corresponding to a cycle time of the test module in a pseudo manner, based on the instruction of The plurality of test signal generation timings generated by the emulator are arranged in chronological order.
  • a timing alignment unit that sequentially outputs, and the test module emulation device corresponding to one of the test signal generation timings output by the timing alignment unit, simulate a test signal in a cycle time corresponding to the one test signal generation timing.
  • a schedule unit for instructing the test module to generate a test signal in a cycle time corresponding to the one test signal generation timing based on an instruction from the schedule unit.
  • a test module emulation device having a pattern generator emulation section for generating the test module.
  • a test module interface emulation unit to be generated may be further provided.
  • a test emulation apparatus for emulating a test apparatus including a plurality of test modules for supplying test signals based on different cycle periods to a device under test
  • a recording medium storing a program that functions as a test module emulator that emulates the test module, wherein the test emulator controls a control device that controls a test of the device under test.
  • An emulation unit and, based on an instruction from the control emulation unit, each of the plurality of test modules determines a test signal generation timing at which a test signal corresponding to a cycle time of the test module should be generated in a pseudo manner.
  • a synchronization emulation unit for generating the synchronization emulation;
  • a timing alignment unit that aligns the plurality of test signal generation timings generated by the timing order and sequentially outputs the test signal generation timings; and the test module emulation device corresponding to one of the test signal generation timings output by the timing alignment unit.
  • a scheduler for instructing to pseudo-generate a test signal in a cycle time corresponding to the one test signal generation timing, wherein the program causes the computer to issue an instruction from the scheduler.
  • a recording medium that functions as a pattern generator emulation unit that generates a test signal in a cycle time corresponding to the one test signal generation timing in a pseudo manner.
  • a test apparatus including a test module for supplying a test signal to a skin test device, a control apparatus for controlling the test of the device under test, and a test based on a cycle period.
  • a test module that generates a signal; and a test module emulation unit that emulates the test module.
  • the control device inputs an instruction as to whether to perform a real test or a pseudo test of the device under test.
  • a test program for performing the test of the device under test is supplied to the test module, and the test of the device under test is performed by the test module.
  • Receiving an instruction to perform a pseudo test of the device under test receives an instruction to perform a pseudo test of the device under test.
  • a test apparatus is provided which supplies the test program to the test module emulation section when the test module emulates and simulates a test of the device under test by the test module emulation section.
  • the control device executes communication software for performing a communication process between the control device and the test module, and the communication software initializes the communication software in cooperation with the control device. Based on the instruction included in the call, it may be determined which of the test module and the test module emulator is to be supplied with the test program.
  • a test emulator for emulating a test apparatus including a plurality of test modules for supplying a test signal to a device under test, the test emulator generating a test signal based on a cycle period.
  • a plurality of test module emulation sections for emulating the test module, a control emulation section for emulating a control device for controlling the test of the device under test, and each of the plurality of test module emulation sections.
  • a scheduler for scheduling a test signal generation timing at which a test signal corresponding to the cycle time is to be generated in a pseudo manner.
  • the test module emulation section notifies the test signal generation timing by a function call.
  • Cycle time corresponding to the test signal generation timing Output of the test signal voltage by calling the voltage setting method of the output channel object emulating the output channel multiple times, and outputting the change of the test signal voltage corresponding to the cycle time.
  • a test emulation device for notifying that the output of the change in the voltage of the test signal corresponding to the cycle time has been completed by calling a termination method of the output channel object is provided.
  • the schedule section is a period in which all the test module emulation sections have finished outputting the change in the voltage of the test signal based on the termination method notified from each of the plurality of test module emulation sections.
  • the device further comprises a device-under-test simulator for acquiring the test signal within the period and simulating an operation of the device under test within the period based on the test signal. May be.
  • the output channel object is, after receiving the termination method call, a period when the output of the voltage change of the test signal, which has been notified by the termination method, has already been completed. The change of the voltage in the interval may be prohibited.
  • FIG. 1 shows a configuration of a test apparatus 10 according to an embodiment of the present invention.
  • FIG. 2 shows a functional configuration of the test emulation apparatus 190 according to the embodiment of the present invention.
  • FIG. 3 shows an example of a hardware configuration of the computer 20 according to the embodiment of the present invention.
  • FIG. 4 shows a functional configuration of the test module emulation unit 270 according to the embodiment of the present invention.
  • FIG. 5 shows an example of the class hierarchy structure 500 according to the embodiment of the present invention.
  • FIG. 6 shows a test signal generation processing flow of the test emulator 190 according to the embodiment of the present invention.
  • FIG. 7 shows an example of a test signal generated in a pseudo manner by the test emulator 190 according to the embodiment of the present invention.
  • FIG. 8 shows a software architecture according to an embodiment of the present invention.
  • FIG. 9 illustrates the use of a test class according to an embodiment of the present invention.
  • FIG. 10 is a unified modeling language (UML) diagram illustrating the interaction of a tester system with module resources provided by different vendors, according to an embodiment of the present invention.
  • FIG. Figure 4 illustrates one embodiment of a site controller object for managing user testing.
  • FIG. 12 illustrates one embodiment of a proxy for an object on the system controller side that represents the site controller object shown in FIG.
  • FIG. 13 shows a test environment according to an embodiment of the present invention.
  • FIG. 14 is a first diagram illustrating an example of the simulation configuration file according to the embodiment of the present invention.
  • FIG. 15 is a diagram showing a simulation configuration according to an embodiment of the present invention.
  • FIG. 8 is a second diagram showing an example of the file.
  • FIG. 16 is a first diagram showing an example of the offline configuration file according to the embodiment of the present invention.
  • FIG. 17 is a second diagram illustrating an example of the offline configuration file according to the embodiment of the present invention.
  • FIG. 18 shows an example of the class hierarchy structure 520 according to the embodiment of the present invention.
  • FIG. 19 shows a usage diagram of a channel object according to an embodiment of the present invention.
  • FIG. 20 shows a specification diagram of an event object according to the embodiment of the present invention.
  • FIG. 21 shows an example of a basic class of the digital module according to the embodiment of the present invention.
  • FIG. 22 shows an example of a class declaration of the digital driver module according to the embodiment of the present invention.
  • FIG. 23 shows an example of the handleEvent method of the digital driver module according to the embodiment of the present invention.
  • FIG. 24 shows a class declaration of the digital strobe module according to the embodiment of the present invention.
  • FIG. 25 shows an example of the handleEvent method of the digital strobe module according to the embodiment of the present invention.
  • FIG. 26 shows an example of the class definition of the DUT model according to the embodiment of the present invention.
  • FIG. 27 shows the details of the run method of the DUT model according to the embodiment of the present invention.
  • FIG. 28 shows the positioning of the system bus access library 600 in the real environment 600 and the emulator environment 600. BEST MODE FOR CARRYING OUT THE INVENTION
  • BEST MODE FOR CARRYING OUT THE INVENTION an example of an embodiment of the present invention will be described with reference to the drawings.
  • FIG. 1 shows a configuration of a test apparatus 10 according to an embodiment of the present invention.
  • the test equipment 10 A test signal is generated and supplied to the DUT 100 (Device Under Test: device under test), and the result signal output as a result of the DUT 100 operating based on the test signal is used to determine whether or not the result signal matches the expected value. The quality of the DUT 100 is determined based on this.
  • the test apparatus 10 according to the present embodiment is realized by an open architecture, and various modules based on the open architecture can be used as the test module 170 that supplies a test signal to the DUT 100.
  • the test apparatus 10 has a test emirate apparatus 190 for emulating the actual test of the DUT 100, and the test emirate apparatus 190 responds to changes in the test module 170 used for the actual test. By appropriately changing the configuration, it is possible to provide an emulation environment that appropriately emulates the actual test of the DUT 100.
  • the test apparatus 10 includes a system controller 110, a communication network 120, site controllers 130a to 130c, a bus switch 140, synchronization modules 150a to 150b, and a synchronous connection module 160a to 160b. It comprises modules 170a-b, a load board 180, and a test emulator 190, and is connected to the DUTs 100a-b.
  • the system controller 110 receives, via an external network or the like, a test control program, a test program, and test data used by the test apparatus 10 for testing the DUTs 100a and 100b, and stores them.
  • the communication network 120 connects the system control device 110, the site control devices 130a to c, and the test emulation device 190, and relays communication between them.
  • the site control devices 130 ac are examples of the control device according to the present invention, and control the test of the DUT 100.
  • the plurality of rhino controllers 130 each control a test of one DUT 100.
  • site controller 130a controls the test of DUT 100a
  • site controller 130b controls the test of DUTlOOb.
  • the plurality of site controllers 130 may control the testing of the plurality of DUTs 100, respectively.
  • the site control device 130 acquires and executes a test control program from the system control device 110 via the communication network 120.
  • the site control device 130 uses the DUT 100 for the test based on the test control program.
  • the test program and test data obtained from the system controller 110 are obtained from the system controller 110 and stored in the synchronous module 150 and one or more test modules 170 used for testing the DUT 100 via the path switch 140.
  • the site control device 130 instructs the synchronization module 150 via the bus switch 140 to start the test based on the test program and the test data.
  • the site control device 130 receives an interrupt or the like indicating that the test has been completed, for example, from the synchronization module 150, and causes each module to perform the next test based on the test result.
  • the bus switch 140 connects each of the plurality of site controllers 130 to the synchronization module 150 and one or more test modules 170 controlled by the site controller 130, and relays communication between them.
  • the predetermined one site control device 130 transmits each of the plurality of site control devices 130 based on an instruction from the user of the test device 10 or a test control program or the like.
  • a bus switch 140 may be set to be connected to the synchronous module 150 and one or more test modules 170 used for testing the DUT 100.
  • the site controller 130a is set so as to be connected to the synchronization module 150a and a plurality of test modules 170a, and the DUT 100a is tested using these.
  • the site controller 130b is set to be connected to the synchronization module 150b and a plurality of test modules 170b, and the DUT 100b is tested using these.
  • the configuration and operation of the site controller 130b for testing the DUT 100b using the synchronization module 150b, the synchronization connection module 160b, and one or more test modules 170b are as follows.
  • 130a is substantially the same as the configuration and operation for testing the DUT 100a using the synchronization module 150a, the synchronization connection module 160a, and one or more test modules 170a, so the following differences Except for the above, the configuration and operation of the site controller 130a for testing the DUT100a will be mainly described.
  • the synchronization module 150a generates a test signal generation timing at which a plurality of test modules 170a used for testing the DUT 100a should generate a test signal based on the instruction of the site controller 130a.
  • the synchronization module 150a The test result is received from one or more test modules 170a via the module 160a, and the test program sequence corresponding to the quality of the test results is executed by the one or more test modules 170a.
  • the synchronous connection module 160a notifies the test module 170a to be operated in accordance with the test signal generation timing of the test signal generation timing generated by the synchronization module 150a, and performs one or more tests. Operate each of the modules 170a at the specified timing. Further, the synchronous connection module 160a receives the test result from one or more test modules 170a and transmits the test result to the synchronous module 150a.
  • the plurality of test modules 170a are respectively connected to some of the plurality of terminals of the DUT 100a, and perform the test of the DUT 100a based on the test program and the test data stored by the site controller 130a. Do. In the test of the DUT 100a, the test module 170a generates a test signal from the test data based on the sequence defined by the test program, and connects the test signal to the terminal of the DUT 100a connected to the test module 170a. Supply test signal. Next, the test module 170a obtains a result signal output as a result of the operation of the DUT 100a based on the test signal, and compares it with an expected value.
  • the test module 170a transmits a comparison result between the result signal and the expected value to the synchronous connection module 160a as a test result.
  • the plurality of test modules 170a generate test signals based on different cycle periods in order to dynamically change the cycle period of the test signals based on the test program and the test data.
  • test module 170a generates an interrupt to the site control device 130a when the processing of the test program is completed or when an error occurs during the execution of the test program. This interrupt is notified to the site controller 130a corresponding to the test module 170a via the bus switch 140, and the interrupt processing is performed by the processor of the site controller 130a.
  • the load board 180 mounts the plurality of DUTs 100 and connects the plurality of test modules 170 to the corresponding terminals of the DUT 100.
  • the test emulation device 190 is the test control device stored in the system control device 110.
  • the test apparatus 10 is emulated based on the program, the test program, and the test data, and the test of the DUT 100 is simulated using the simulation model of the DUT 100.
  • the test emulator 190 includes one site controller 130, a synchronization module 150 controlled by the site controller 130, a synchronization connection module 160, and one or more test modules 170.
  • the operation of the DUT 100 to be tested by the site control device 130 is simulated.
  • the test emulation device 190 the user of the test device 10 can use the DUT 100, the synchronization module 150, the synchronization connection module 160, and / or the test module 170 while not preparing the actual product.
  • Verification of the test control program, test program, and Z or test data can be initiated.
  • each user can develop a test control program, a test program, and Z or test data without occupying a more expensive real test environment. can do.
  • the test apparatus 10 is realized by the open architecture, and can use various modules satisfying the open architecture standard.
  • the test apparatus 10 can insert and use modules such as the synchronization module 150, the synchronization connection module 160, and the test module 170 into any connection slot of the bus switch 140.
  • the user of the test apparatus 10 changes the connection mode of the bus switch 140 via the site control device 130a and controls a plurality of modules used for the test of the DUT 100, and controls the test of the DUT 100. Can be connected to any of the site controllers 130. This allows the user of the test apparatus 10 to select an appropriate module according to the number of terminals of each of the plurality of DUTs 100, the arrangement of the terminals, the type of terminal, or the type of test, and mount the module on the test apparatus 10. can do.
  • the synchronous connection module 160a and the synchronous connection module 16Ob are realized by one synchronous connection unit provided in common to all the test modules 170 used in the test apparatus 10. Is also good.
  • the user of the test apparatus 10 changes the connection mode of the synchronous connection unit and the test module 170 together with the connection mode of the bus switch 140, thereby responding to the characteristics of the plurality of DUTs 100. To select the appropriate module.
  • FIG. 2 shows a functional configuration of the test emulation apparatus 190 according to the embodiment of the present invention.
  • the test emulation device 190 has a site control emulation unit 230, a bus switch emulation unit 240, a synchronization module emulation unit 250, and a synchronization connection module emulation unit 260. , One or more test module emulation sections 270, a DUT connection section 280, a DUT simulation section 200, and a schedule control section 275.
  • the site control emulation section 230 emulates the site control device 130a shown in FIG.
  • the site control emulation unit 230 acquires and executes the test control program from the system control device 110 via the communication network 120.
  • the site control emulation section 230 obtains a test program and test data to be used for the test of the DUT 100a based on the test control program, and obtains the bus switch emulation. It is stored in the module emulation section such as the synchronization module emulation section 250 and one or more test module emulation sections 270 via the section 240.
  • the site control emulation unit 230 issues a request from the site control device 130a to the synchronous module 150a and one or more test modules 1 ⁇ 0a. Commands such as read access and write access to the storage area are issued to the bus switch emulation unit 240 in a pseudo manner.
  • the site control emulation section 230 synchronizes via the bus switch emulation section 240 by issuing a write access of the test program and test data to the bus switch emulation section 240 in a pseudo manner.
  • the test program and test data may be stored in the module module section 250 and one or more test module modules section 270.
  • the site control emulation section 230 sends an interrupt generated by the synchronous module emulation section 250 and the test module emulation section 270 through the bus switch emulation section 240. And executes the interrupt processing of the site controller 130a in a pseudo manner.
  • the bus switch emulation section 240 emulates the bus switch 140 shown in FIG. 1, and includes a site control emulation section 230, a synchronous module emulation section 250 and one or more test modules. It relays communication with the emulator section 270.
  • the synchronization module emulation section 250 emulates the synchronization module 150 shown in FIG. 1 and, based on an instruction from the site control emulation section 230, generates a plurality of test module emulation sections 270. Each of them generates a test signal generation timing at which a test signal corresponding to the cycle time of the test module emulator 270 is to be generated in a pseudo manner.
  • the synchronous module emulation unit 250 receives the cycle end timing, which is the end time of the cycle time, from the test module emulation unit 270 that generated the test signal.
  • the synchronous module emulator section 250 generates a test signal generation timing at which the test module emulator section 27 ° should generate a test signal next, and the test module Test result collection timing for collecting test results from the emulation section 270, cycle end processing timing for ending the cycle time processing to the test module emulation section 270, and the test module emulation section 27 Generates interrupt collection timing for collecting interrupts to the site control emulation section 230 from 0.
  • the interrupt from the test module emulation section 270 to the site control emulation section 230 means that each of the plurality of test module emulation sections 270 corresponds to the test signal generation timing. This is an interrupt generated in the site control device 130a in a pseudo manner in the generation of the test signal in the cycle time.
  • the synchronous connection module emulator section 260 emulates the synchronous connection module 160 shown in FIG. 1, and the test signal generation timing generated by the synchronous module emulation section 250 in a pseudo manner. (5) The synchronous module emulation unit 250 notifies the schedule control unit 275 of the test result collection timing, cycle end processing timing, and interrupt collection timing generated for emulation. The synchronous connection module emulation section 260 receives the test result from one or a plurality of test module emulation sections 270 and transmits it to the synchronization module emulation section 250.
  • the test module emulation section 270 receives the cycle start instruction from the synchronous module emulation section 250 that receives the test signal generation instruction, and stores the test program stored by the site control emulation section 230.
  • a test signal in a cycle time corresponding to the test signal generation timing is pseudo-generated based on the test data. More specifically, the test module emulation section 270 simulates the change timing of the test signal during the cycle time in the generation of the test signal in the cycle time corresponding to the test signal generation timing. .
  • the test module emulation section 270 uses the number of change timings defined by the specifications of the test module 170 corresponding to the test module emulation section 270 as the test signal change timing as one.
  • the test module emulation section 270 obtains an output signal which is output as a result of the DUT simulation section 200 performing a pseudo operation based on the test signal, and determines the output signal based on the test program and the test data. Compare with the expected value. Then, the test module emulator section 270 outputs the comparison result between the result signal and the expected value as a test result via the synchronous connection module emulator section 260 as a test result. Send to 0.
  • test module emulation unit 270 receives the instruction to generate an interrupt from the schedule unit 277, and simulates during the cycle time when the test signal was generated last before receiving the instruction to generate the interrupt.
  • the generated interrupt is notified to the site control emulation section 230 via the bus switch emulation section 240.
  • the DUT connection unit 280 obtains a plurality of change timings generated by the plurality of test module emulator units 270, and pseudo-changes the test signal in time order based on the plurality of change timings. Let it.
  • the DUT simulation section 200 is a test signal obtained from the DUT connection section 280, for example, the operation of the DUT 100 described in a hardware description language such as Veri og HD L or VHD L. Simulate based on Then, the DUT simulation unit 200 generates, by simulation, a result signal output as a result of the operation of the DUT 100 based on the test signal, and the test module emulator unit via the DUT connection unit 280. Supply to 270.
  • the schedule control section 275 is a synchronous module emulation section 250, a synchronous connection module emulation section 260, a plurality of test module emulation sounds 270, and a DUT connection section 280 DUT.
  • the schedule control section 275 includes a timing alignment section 276 and a schedule section 277.
  • the timing alignment unit 276 includes a plurality of test signal generation timings generated by the synchronous module emulation unit 250, a plurality of interrupt collection timings, a plurality of cycle end processing timings, and a plurality of test result collection timings.
  • the plurality of change timings generated by one or more test module emulation units 270 and supplied by the DUT connection unit 280 are arranged in time order and sequentially output to the schedule unit 277.
  • the schedule section 277 notifies the module emulation section or DUT connection section 280 corresponding to the timing of each timing sequentially output by the timing alignment section 276, and the module emulation section or DUT connection.
  • Unit 280 performs the operation corresponding to the timing. The operation of the schedule unit 277 according to the type of timing output by the timing alignment unit 276 will be described below.
  • the schedule unit 277 notifies the synchronous module emulation unit 250 of the test signal generation timing and responds to the test signal generation timing
  • the generation of a test signal by the test module emulation unit 270 to be performed is instructed via the synchronous module emulation unit 250.
  • the schedule section 277 sends the test module emulation section 270 corresponding to the test signal generation timing to the test module emulation section 270 via the synchronous module emulation section 250 in the cycle time corresponding to the test signal generation timing.
  • a test signal is generated in a pseudo manner.
  • the schedule unit 277 instructs the specified test module emulation unit 270 corresponding to the interrupt collection timing to generate an interrupt. .
  • the scheduler section 277 assigns to the test module emulation section 270 the pseudo-occurrence rate generated in the cycle time when the test signal was generated immediately before the interrupt collection timing. Is notified to the site control emulation section 230 via the bus switch emulation section 240.
  • the schedule section 277 notifies the test module emulation section 270 corresponding to the cycle end processing timing that the cycle end timing has arrived.
  • the schedule unit 277 checks that the test result collection timing has reached the test module emulation unit 270 corresponding to the test result collection timing. Notify. In response, the test module emulation section 270 transmits the comparison result between the result signal and the expected value in the cycle time to the synchronous module emulation section via the synchronous connection module emulation section 260. Notify 250.
  • the DUT connection unit 280 supplies a plurality of change timings acquired from the plurality of test module emulation units 270 to the timing alignment unit 276.
  • the timing alignment section 276 sorts the plurality of change timings and other various timings in order of time.
  • the schedule unit 277 checks that the change timing has reached the 017 connection unit 280 in order to simulately change the test signal at the change timing. Notice. In response to this, the 011 connection unit 280 changes the test signal in a pseudo manner at the change timing.
  • the test module emulation unit 270 notifies the schedule control unit 275 of the result signal acquisition timing, which is the timing at which the result signal should be acquired, and combines it with the other various timings. It may be arranged in chronological order according to 76. In this case, when the timing alignment unit 276 outputs the result signal acquisition timing, the scheduling unit 277 acquires the result signal at the DUT connection unit 280 at the result signal acquisition timing.
  • the test signal emulation section 270 may be supplied with a result signal.
  • the 011 connection unit 280 is connected to a plurality of test module emulation units 270. It is also possible to acquire the plurality of change timings generated by the above and supply the obtained change timings to the DUT simulation unit 200 without sorting them in chronological order. In this case, the DUT simulation unit 200 may arrange the plurality of supplied change timings in chronological order, and simulate the DUT 100 based on the arranged plurality of change timings.
  • the synchronous module emulator unit 250, the synchronous connection module emulator unit 260, and one or more test module emulator units 270 are connected to the test device 10
  • these module emulation sections can be easily replaced with other module emulation sections. be able to.
  • the module emulator unit corresponding to the one module is changed to the other module in the test emulator 190.
  • the DUT simulation section 200 may be realized by one computer such as the site control device 130 or the like, or may be realized by a distributed system including a plurality of computers.
  • FIG. 3 shows an example of a hardware configuration of the test emulation device 190 according to the embodiment of the present invention.
  • the test emulation apparatus 190 is performed by a computer 20 including a CPU 300, a ROMS 10, a RAM 320, a communication interface 330, a hard disk drive 340, a flexible disk drive 350, and a CD-ROM drive 360. Is achieved.
  • the CPU 300 operates based on the programs stored in the ROM 310 and the RAM 320, and controls each unit.
  • the ROM 310 depends on the boot program executed by the C'PU 300 when the computer 20 starts up and the hardware of the computer 20. Existing programs are stored.
  • the RAM 320 stores programs executed by the CPU 300, data used by the CPU 300, and the like.
  • the communication interface 330 communicates with other devices via a communication network.
  • the hard disk drive 340 stores programs and data used by the computer 20 and supplies the programs and data to the CPU 300 via the RAM 320.
  • the flexible disk drive 350 reads a program or data from the flexible disk 390 and provides it to the RAM 320.
  • the CD-ROM drive 360 reads a program or data from the CD-ROM 395 and provides it to the RAM 320.
  • the program provided to the CPU 300 via the RAM 320 is stored in a recording medium such as a flexible disk 390, a CD-ROM 395, or an IC card and provided by a user.
  • the program is read from the recording medium, installed on the computer 20 via the RAM 320, and executed on the computer 20.
  • the program modules installed and executed on the computer 20 and causing the computer 20 to function as the test emulator 190 include a DUT simulation module, a site control emulation module, a no-switch emulation module, Includes a synchronous module emulation module, a synchronization connection module emulation module, a test module emulation module, a schedule control module, a timing alignment module, a schedule module, and a DUT connection module.
  • These programs or modules convert the computer 20 into the DUT simulation section 200, the site control emulation section 230, the bus switch emulation section 240, the synchronization module emulation section 250, and the synchronization connection module emulation section 260 , A test module emulation section 270, a schedule control section 275, a timing alignment section 276, a schedule section 277, and a DUT connection section 280.
  • FIG. 4 shows a functional configuration of the test module emulation section 270 according to the embodiment of the present invention.
  • the test module emulation section 270 operates a test module emulation program or a test module emulation module corresponding to the test module emulation section 270 on the computer 20. It is realized by doing.
  • the test module emulation unit 270 includes a plurality of commands provided in response to each of a plurality of commands received by the test module 170 from the site control device 130 via the bus switch 140. It has a hardware emulation function and a control function called to notify the test module emulation section 270 of various timings.
  • the bus switch emulation section 240 and the schedule control section 275 It operates on calls to these functions.
  • the control function is used to generate the test signal in the cycle time corresponding to the test signal generation timing in the schedule control section 275 5 simulate the test module emulation section 2 just before the interrupt collection timing.
  • Reference numeral 70 is used to notify the site control emulation unit 230 of an interrupt that has been artificially generated in the cycle time when the test signal was generated.
  • the test module emulation section 270 includes a test module IF emulation section 400 (test module interface emulation section), a pattern generator emulation section 430, and a waveform shaper emulation section 440. It includes a pin control emulation section 450 and a parameter measurement emulation section 450.
  • the test module IF emulator 400 receives a hardware emulation function call from the bus switch emulator 240, and receives a control function call from the schedule controller 275. It is activated and controls the operation of the test module emulation unit 270 corresponding to these function calls.
  • the test module IF emulation section 400 has a machine word DB 420 and a control function processing section. 4 10.
  • the machine word DB 420 emulates the storage area stored in the storage area provided in the test module 170, and is called from the site control emulation section 230 by calling a hardware emulation function.
  • a command is pseudo-received via the bus switch emulation unit 240, the storage area in the machine word DB 420 is accessed in accordance with the command.
  • the test module IF emulation unit 400 includes a plurality of emulation units for emulating the operation of the test module emulation unit 270 corresponding to a plurality of commands such as read access and write access. Implement the hardware emulation function of.
  • the test module IF emulation unit 400 receives the read access from the machine corresponding to the storage area targeted for the read access.
  • the data in the mode DB 420 is returned to the site control emulation section 230 via the bus switch emulation section 240.
  • the machine word DB 420 stores the data to be written in the storage area in the machine word DB 420 corresponding to the storage area to be written. For example, when the machine word DB 420 receives a write access of a test program or test data from the site control emulation unit 230 via the bus switch emulation unit 240, the machine corresponding to the write access These test programs or test data are stored in the storage area in word DB420.
  • control function processing section 410 When the control function processing section 410 receives a control function call from the schedule control section 275, the control function processing section 410 emulates the pattern generator emulation section 430 and the waveform shaper emulation section 4 corresponding to the control function. 40, the pin control emulation section 450, and the parameter measurement emulation section 450 are operated, and the operation of the test module 170 corresponding to the instruction of the control function is emulated.
  • the control function processing unit 4100 sends the machine code DB 4 2 From the test program and test data stored in 0, the program part and data part to be processed by the test module emulation unit 270 during the cycle time are read.
  • the processing corresponding to the program part and the data part is performed by the pattern generator emulation section 430, waveform shaper emulation section 440, pin control emulation section 450, and parameter measurement emulation section. 4 6 0 is performed.
  • the pattern generator emulation section 430 emulates the pattern generator of the test module 170. That is, the pattern generator emulation unit 4340 receives and stores the test program and test data stored in the machine word DB 420 from the control function processing unit 410 by, for example, calling a function. Then, an instruction indicating that a test signal is to be generated for a certain cycle time is received from the schedule control unit 275 via the control function processing unit 410, for example, by a function call, and the instruction is generated during the time period. A test signal to be generated is generated in a pseudo manner.
  • the pattern generator emulation section 430 is a DUT connection section 280 and a waveform shaper emulation section that output a result signal that is output in a pseudo manner as a result of the DUT simulation section 200 operating based on the test signal. Obtained via 4 4 0 and compared with expected value.
  • the waveform shaper emulator 440 emulates the waveform shaper of the test module 170. That is, the waveform shaper emulation section 4 4 0 receives a test signal from the pattern onset Namaki emulate unit 4 3 0, the waveform of the test signal artificially shaping, and outputs to the DUT connection section 2 8 0.
  • the pin control emulation section 450 emulates the pin control section of the test module 170.
  • the pin control emulation section 450 is configured to output a test signal by the waveform shaper emulation section 450 or the parameter measurement emulation section 450 in a pseudo manner based on the test program. Parameters such as operating voltage
  • the parameter measurement emulation section 460 emulates the parameter measurement section of the test module 170. That is, for example, the parameter measurement emulation unit 460 receives a DC test (DC parametric test) instruction from the schedule control unit 275 via the control function processing unit 410 by calling a function, and performs the DC test. In this case, a test signal to be generated during the cycle time is generated in a pseudo manner. Further, the parameter measurement emulation section 460 acquires a result signal that is output in a pseudo manner as a result of the DUT simulation section 200 operating based on the test signal in the DC test.
  • DC test DC parametric test
  • the control function processing section 410 ends the cycle corresponding to the test signal generation timing.
  • the cycle end timing is notified to the synchronous module emulator section 250.
  • control function processing unit 410 sets the cycle end timing at which the cycle ends in the generation of the test signal at the static time corresponding to the test signal generation timing via the schedule control unit 2775 to the synchronization module.
  • the emulation unit 250 may be notified.
  • the control function processing unit 410 sends the test signal to the synchronous module emulation unit 250 to the test signal to be generated next by the test module emulation unit 270 based on the cycle end timing.
  • the generation timing can be further generated.
  • the control function processing unit 410 When the control function processing unit 410 receives an instruction to generate an interrupt from the schedule control unit 275, the control function processing unit 410 issues an interrupt generation instruction by calling a function, for example, the pattern generator emulation unit 430, the waveform shaper emulation. Transmit to module 450 and pin control emulation module 450.
  • the test module emulator 270 generates the test signal in the pattern generator emulator 430, the waveform shaper emulator 440, and the pin control emulator 550 that receive the instruction to generate the interrupt. Of the respective cycle times, the interrupt generated in the cycle time immediately before the interrupt collection timing is notified to the control function processing unit 410.
  • FIG. 5 shows an example of the class hierarchy structure 500 according to the embodiment of the present invention.
  • a module emulation program for realizing a module emulation section such as a synchronization module emulation section 250, a synchronization connection module emulation section 260, and a test module emulation section 270.
  • a class function that is a framework of a module emulator program defined to simulate the open architecture of the test equipment 10.
  • the simulation component class 510 is a class that defines, by a virtual method function, calling rules such as parameters and return values of a plurality of method functions to be included in the modulo emulation program.
  • the simulation component class 510 has a plurality of virtual hardware emulation functions 512 and a plurality of virtual control functions 514.
  • read () is a method function that is called when the site control emulation unit 230 issues a read access command in a pseudo manner, and emulates the operation of a module corresponding to read access.
  • write () is a method function that is called when the site control emulation unit 230 issues a write access command in a simulated manner, and emulates the operation of a module corresponding to write access.
  • set B as eAddress () is used when the site control emulation unit 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. This is the method function called by
  • r e g i s t e r Ev e n t () is from the synchronous module emulation section 250
  • hand 1 e EVent () is used when the test signal generation timing, interrupt collection timing, change timing, and when the result signal acquisition timing arrives, etc., the synchronous module emulation section 250 and the synchronous connection module emulation section 260, a test module emulation unit 270, and a method connection function called by the schedule control unit 275 to cause the DUT connection unit 280 to perform processing corresponding to these timings.
  • Company A module class 520 and Company B module class 530 This is a class derived from the application component class 510, and is provided by, for example, the manufacturer that provides the module, and is a module emulator program that emulates common functions provided by the module of the manufacturer in common. It is.
  • Company A module class 520 and Company B module class 530 each have a plurality of real hardware emulation functions 522 and a plurality of real control functions 524. Each of the plurality of real hardware emulation functions 522 and the plurality of real control functions 524 is described corresponding to each of the plurality of virtual hardware emulation functions 512 and the plurality of virtual control functions 514.
  • Company A module class 520 and Company B module class 530 may have further derived classes.
  • the module class 530 of Company B is further derived into a digital test module class 540, a power supply module class 5 ⁇ 0, and a synchronous module class 590.
  • the digital test module class 540 is a class of a test module emulation program that emulates the test module 170 for performing a functional test of the DUT 100.
  • the digital test module class 540 is further derived from a 250 MHz digital test module class 550 that emulates a test module 170 that operates at 250 MHz to perform functional testing of the DUT 100.
  • the power supply module class 560 is a class of a module emulation program that emulates a module that supplies power to the DUT 100.
  • the power supply module class 560 is a high-voltage power supply module class 570 that emulates a module that supplies high-voltage power to the DUT 100, and a low-voltage power supply module class that emulates a module that supplies low-voltage power to the DUT 100. It is further derived to 580.
  • the synchronous module class 590 is a class of a modular module that emulates the synchronous module 150.
  • 25 OMHz digital test module class 550, high-voltage power supply module class 570, low-voltage power supply module class 580, and synchronous module class 590 are each included in Company B module class 530.
  • the synchronous module emulation section 250, the synchronous connection module emulation section 260, and one or more test module emulation sections 270 of the test emulation device 190 have a class hierarchical structure. It may be implemented as any instance of the module emulation program class included in 500. .
  • the module emulation sections of the test emulation device 190 such as the synchronous module emulation section 250, the synchronous connection module emulation section 260, and the test module emulation section 270 are For example, this is realized by a module emulator program corresponding to any class included in the class hierarchy structure 500.
  • the user of the test emulation device 190 generates, for example, an instance of the module emulation program from the combination of classes corresponding to the combination of modules to be mounted on the actual device of the test device 10, thereby making the test emulation device 190 possible.
  • a test environment almost the same as that of the actual machine can be constructed on the test emulator 190.
  • FIG. 6 shows a test signal generation processing flow of the test emulation apparatus 190 according to the embodiment of the present invention when a test is performed by one test module emulation unit 270.
  • test emulation device 190 performs a pseudo test according to the following procedure.
  • the schedule unit 277 in the schedule control unit 275 (SCHED in the figure) outputs the synchronous module emulator unit 250 (SYNC in the figure) handle E vent ()
  • the number is called to notify that the test signal generation timing has come (S600).
  • the schedule control unit 275 transmits the cycle corresponding to the test signal generation timing to the test module emulation unit 27p corresponding to the test signal generation timing via the synchronous module emulation unit 250.
  • the test signal in time is generated in a pseudo manner.
  • the schedule control unit 275 performs the test by including an event identifier indicating that the test signal generation timing of the corresponding test module emulation unit 270 has arrived in the parameter of the handleEvent () function.
  • the signal generation timing may be notified to the synchronous module emulation unit 250.
  • the synchronous module emulation unit 250 sends a cycle time to the test module emulation unit 270 (TM in the figure) that should simulate the test signal at the test signal generation timing.
  • the start of processing which is an instruction to start processing and generate a test signal, is notified (S 605).
  • the synchronous module emulation section 250 includes the event identifier indicating the cycle start in the parameter of the raise EVent () function, and calls the schedule control section 275 to obtain the timing alignment section 275.
  • the cycle start may be notified to the test module emulator unit 270 via the schedule control unit 275 asynchronously with the timing of the order of “6”.
  • the test module emulation section 270 upon receiving the notice of the start of the cycle, the test module emulation section 270 generates a test signal in the corresponding cycle time in a pseudo manner (S610). That is, in S600, the schedule control unit 275 generates a test signal in a cycle time corresponding to the test signal generation timing in a pseudo manner.
  • the synchronous module emulation section 250 receiving this notification notifies the test module emulation section 270 via the schedule control section 275 of the start of the cycle, and thereby the test module emulation section. 270 pseudo-generates a test signal in the cycle time.
  • the test module emulation unit 270 simulates the change timing of the test signal in the cycle time.
  • the 011 connection unit 280 receives the change timing of the test signal from the test module emulation unit 270 and compares the change timing with the timing alignment unit 2 Notification is made to 76 and registered (S615).
  • the test module emulation section 270 notifies the synchronization module emulation section 250 of the timing to end the cycle (S620).
  • the test module emulator 270 generates a test signal by the pattern generator emulator 430 while dynamically changing each cycle time based on the designation by the test program and the test data.
  • the control function processing section 410 in the test module IF emulation section 400 in the test module emulation section 270 sets the timing at which each cycle ends at the pattern generator emulation section 4. Obtained from 30 and notifies the synchronous module emulation section 250 so that the synchronous module emulation section 250 can correctly generate the next test signal generation timing.
  • the synchronous module emulation section 250 sets the test module emulation section 270 in the next cycle time.
  • a test signal generation timing for generating a corresponding test signal in a simulated manner is generated, notified to the timing alignment unit 276, and registered (S625).
  • the synchronous module emulation unit 250 is used to collect the test result from the test module emulation unit 270, collect test results, and end the cycle for ending the cycle time of the test module emulation unit 270.
  • the test module emulation unit 270 further generates an interrupt collection timing for collecting an interrupt generated by the test module emulation unit 270 in generating the test signal in the cycle time, and notifies the timing alignment unit 276 to register it. (S625).
  • the synchronous module emulation unit 250 may register these timings in the timing alignment unit 276 by calling the function registrEvEnt () of the schedule control unit 275.
  • the synchronous module emulation section 250 sets the timing substantially equal to the cycle end timing received from the test module emulation section 270 to the next test signal generation timing in the test module emulation section 270. , Test result collection timing, cycle end processing timing, and interrupt collection timing.
  • the timing alignment section 276 determines the change timing registered in S615.
  • the schedule unit 277 notifies the DUT connection 280 that the change timing has arrived so that the test signal may be pseudo-changed to the change timing (S630).
  • the DUT connection unit 280 upon receiving notification of the change timing from the schedule unit 277, the DUT connection unit 280 generates a test signal by changing the test signal in a pseudo manner at the change timing, and supplies the generated test signal to the DUT simulation unit 200.
  • the DUT simulation section 200 simulates the operation of the DUT 100 based on the test signal obtained from the DUT connection section 280.
  • the DUT simulation unit 200 generates a pseudo result signal output as a result of the DUT 100 operating based on the test signal, and supplies the result signal to the test module emulation unit 270 via the DUT connection unit 280.
  • the test module emulation section 270 compares the result signal with the expected value to obtain a comparison result.
  • the schedule unit 277 when the timing alignment unit 276 outputs the test result collection timing registered in S625, the schedule unit 277 generates a result based on the result signal supplied from the DUT simulation unit 200 to the test module emulation unit 270.
  • the test module emulation unit 270 In order to collect the pass / fail, the test module emulation unit 270 is notified that the test result collection timing has arrived (S640).
  • the test module emulator 270 compares the comparison result between the result signal and the expected value in the cycle time with the synchronous module emulator via the synchronous connection module emulator 260. Notify rate section 250.
  • the synchronous module emulator 250 determines pass / fail of the test result based on the comparison result collected from each test module emulator 270, and passes the test result to each test module emulator 270. Notification is made by distribution (S645).
  • the test program and the test data supplied to the plurality of test module emulation units 270 may be described so as to change the sequence of the test performed after the cycle time based on the quality of the test result.
  • the schedule section 277 notifies the test module emulation section 270 that the timing to end the cycle has arrived (S650). .
  • the timing alignment unit 276 sets the interrupt collection timing registered in S625.
  • the schedule unit 277 notifies the test module emulation unit 270 that the interrupt collection timing has arrived (S655).
  • the test module emulation unit 270 Upon receiving the notification of the interrupt collection timing, the test module emulation unit 270 generates a pseudo-test during the cycle time in which the test module emulation unit 270 generated the test signal immediately before the interrupt collection timing. An interrupt is pseudo-notified to the site control emulator section 230 via the bus switch emulation section 240.
  • the test emulator 190 repeats the above-described processing from S600 to S655 until the test is completed (S660).
  • the schedule control section 275 arranges the timings at which the plurality of test module emulation sections 270 should operate in order of time. And schedule. For this reason, S600, S630, S640, S650, and S655 for a plurality of test module emulation units 270 are ordered in time order. Executed in FIG. 7 shows an example of a test signal generated in a pseudo manner by the test emulation apparatus 190 according to the embodiment of the present invention.
  • a test emulation device 190 emulates a test module emulation unit 270a, which emulates test module A, and a test module B, as a test module emulation unit 270.
  • Test module emulation section 270b emulates a test module emulation unit 270a, which emulates test module A, and a test module B, as a test module emulation unit 270.
  • Test module emulation section 270b emulates a test module emulation unit 270a, which emulates test module A, and a test module B, as a test module emulation unit 270.
  • the timing alignment unit 276 determines the test signal generation timing t1 of the test module emulation unit 270a and the test signal generation timing of the test module emulation unit 270b. t2 are registered, and as a result of arranging them in chronological order and outputting them, the test signal generation timing t1 is first output.
  • the schedule unit 277 advances the time to t1, and notifies the synchronous module emulation unit 250 that the test signal generation timing t1 has been reached.
  • the synchronous module emulation section 250 Upon receiving the notification of the test signal generation timing t1, the synchronous module emulation section 250 generates the test signal via the synchronous connection module emulation section 260 and the test module emulation section 270. The start of the cycle is notified to the test module emulation section 270a corresponding to the timing t1. In response, the test module The emulation unit 270a generates a test signal in a cycle time indicated by cycle 1 in the figure in a pseudo manner. Here, the test module emulation unit 270a notifies the DUT connection unit 280 that the test signal changes to the H level at the change timing t4 during the cycle time. In response to this, the 011 connection unit 280 registers the change timing t4 in the timing alignment unit 276.
  • the test module emulation unit 270a notifies the synchronous module emulation unit 250 of the cycle end timing t6 of cycle 1.
  • the synchronous module emulation unit 250 based on the cycle end timing t6, generates the next test signal generation timing t6, test result collection timing t6— ⁇ , cycle end processing timing t6— ⁇ , Then, an interrupt collection timing t 6— ⁇ is generated and registered in the timing alignment unit 276.
  • t 6 — ⁇ indicates that it is a short time before the next test signal generation timing t 6.
  • the timing alignment section 276 sorts the registered timings in order of time, and outputs a test signal generation timing t2.
  • the schedule section 277 advances the time to t2, and notifies the synchronous module emulation section 250 that the test signal generation timing t2 has been reached.
  • the synchronization module emulation unit 250 Upon receiving the notification of the test signal generation timing t2, the synchronization module emulation unit 250 sends the test module generation timing to the test module emulation unit 27Ob corresponding to the test signal generation timing t2 via the schedule control unit 275. To start the cycle.
  • the test module emulation section 270b generates a test signal in cycle 1 of the test module emulation section 270b in a pseudo manner.
  • the test module emulation section 270b generates test signal change timings t3 and t5, and the DUT connection section 280 registers these change timings in the timing alignment section 276. I do.
  • the test module emulation section 270b notifies the synchronous module emulation section 250 of the cycle end timing t7 of cycle 1.
  • the synchronous module emulation unit 250 generates the next test signal generation timing t 7 based on the cycle end timing t 7, Generate test result collection timing t7- ⁇ , cycle end processing timing t7- ⁇ , and interrupt collection timing t7- ⁇ , and register them in timing alignment unit 276.
  • the timing alignment section 276 sorts the registered timings in chronological order, and sequentially outputs change timings t3, t4, and t5.
  • the schedule unit 277 Upon receiving each of these change timings, the schedule unit 277 notifies the DUT connection unit 280 of the change timing.
  • the DUT connection unit 280 changes the test signal in a simulated manner at the change timing and supplies the test signal to the DUT simulation unit 200.
  • the timing alignment section 276 outputs the test result collection timing t6- ⁇ .
  • the schedule unit 277 advances the time to t6- ⁇ , and notifies the test module emulation unit 270a of the test result collection timing t6- ⁇ .
  • the collection and distribution of test results are performed between the test module emulation section 270a and the synchronization module emulation section 250.
  • the timing alignment section 276 outputs the cycle end processing timing t6- ⁇ .
  • the schedule section 277 notifies the test module emulation section 270a of the end of cycle 1.
  • the timing alignment section 276 outputs the interrupt collection timing t6- ⁇ .
  • the schedule section 277 notifies the test module emulation section 270a of the interrupt collection timing t6- ⁇ .
  • the test module emulation section 270a notifies the site control emulation section 230 of the interrupt that has been artificially generated in cycle 1.
  • the timing alignment section 276 outputs the test signal generation timing t6.
  • the schedule unit 277 advances the time to t6 and notifies the synchronous module emulator unit 250 that the test signal generation timing t6 has been reached.
  • the test emulation apparatus 190 changes the change timing t8, the result signal acquisition timing t11 indicating the timing at which the result signal is to be acquired, and the next test signal generation timing t in the same manner as the time t1. 12, Test result collection timing t12- ⁇ , cycle end processing timing t12, and interrupt collection timing t12 are generated and registered in the timing alignment unit 276.
  • the timing alignment unit 276 sorts the registered timings in chronological order, The test signal generation timing t7 is output.
  • the schedule unit 277 advances the time to t7 and notifies the synchronous module emulation unit 250 that the test signal generation timing t7 has been reached.
  • the test emulator 190 sets the change timings t9 and t10, the next test signal generation timing t13, the test result collection timing t13- ⁇ , in the same manner as the time t2.
  • the cycle end processing timing t 13 and the interrupt collection timing t 13 are generated and registered in the timing alignment unit 276.
  • test signal generation timing As described above, according to the test emulator 190 according to the present embodiment, test signal generation timing, test signal change timing, test result collection timing, result signal acquisition timing, and interrupt collection timing, etc.
  • the various timings are arranged in chronological order by the schedule control unit 275 to perform scheduling. Therefore, the test emulation device 190 can appropriately emulate the operation of the test device 10 when a plurality of test modules 170 based on different cycle periods are mounted.
  • the synchronous connection module emulation unit 260 when receiving the cycle end timing from the test module 170, sets the test result collection timing, the cycle end processing timing, and the interrupt collection timing.
  • the information is registered in the timing alignment section 276, the following method may be used instead.
  • the synchronous module emulation unit 250 simulates the test signal corresponding to the next cycle time by the test module emulation unit 270 based on the cycle end timing.
  • a test signal generation timing to be generated is generated, and notified to the timing alignment unit 276 to be registered.
  • the synchronous module emulation unit 250 does not generate the test result collection timing, cycle end processing timing, and interrupt collection timing, and does not register it in the timing alignment unit 276.
  • the test emulator 190 does not perform S640, S650, and S655 after the processing of S630 and S635 in FIG. Processing proceeds to 600.
  • the timing alignment unit 276 outputs the test signal generation timing corresponding to the next cycle time in S600
  • the schedule unit 277 Notify the synchronous module emulator section 250 that the test signal generation timing has been reached.
  • the synchronization module emulation unit 250 performs the test signal generation timing, the test result collection, the cycle end notification, and the interrupt collection before the next cycle time test signal generation.
  • the test module emulation section 270 corresponding to
  • the schedule control section 275 performs the processing shown in S640, S645, S650, and S655 before generating the test signal of the next cycle time.
  • the synchronization module emulation section 250, synchronous connection module emulation section 260, and test module emulation section 270 are performed. More specifically, the schedule control unit 2775 generates a test signal in the cycle time immediately before the test signal generation timing based on the result signal supplied to the test module emulation ⁇ ⁇ 270.
  • the pass / fail of the test result is collected and distributed by the synchronous module emulation section 250 and the synchronous connection module emulation section 260, and the test module emulation section 270 detects the pseudo-generated interrupt.
  • the test equipment 10 shown above is an actual test of the DUT 100 using a synchronization module 150, a synchronization continuation module 160, a test module 170, etc., and a synchronization module emulation.
  • the test may be provided to the user of the test apparatus 10 which can be executed by a user or a test program, and the user may be able to switch between an actual test and a pseudo test.
  • the site controller 130 can perform either a real test or a dummy test on the DUT 100.
  • An instruction as to whether or not to perform this operation is input by, for example, an option of a test start command.
  • the system controller 110 or the site controller 130 receives an instruction to perform the DUT 100 actual test, the system controller 110 or the site controller 130 transmits the test program for performing the DUT 100 test to the bus switch 1.
  • the test module 170 is supplied to one or more test modules 170 through the test module 40 so that the DUT 100 is tested by these test modules 170.
  • the site controller 130 converts the test program into software on the test emulator 190 or the site controller 130 or the like. This is supplied to the test module emulation unit 270, which is realized, and the test of the DUT 100 is simulated by the test module emulation unit 270 and the like.
  • the site control device 130 executes communication software (communication library) for performing communication processing between the control device and the test module 170, and executes the actual test environment and the pseudo test environment through the communication software. May be accessible.
  • the test control program executed on the site controller 130 uses the same access function (read / write function, etc.) provided by the communication software to execute the synchronization module 150, the synchronization connection module, and the like.
  • the actual test is performed by accessing the 160 and the test module 170, etc., and the synchronous module emulation section 250, the synchronous connection module emulation section 260, and the test module emulation section A pseudo test can be performed by accessing 270 or the like.
  • the communication software described above cooperates with the site control device 130 based on an instruction for selecting an actual test environment and a pseudo test environment included in a call for initializing the communication software. It may be determined to which of the test module 170 and the test module emulation unit 270 and the like the test program is supplied. An example of such an implementation is shown in Supplementary Explanation C.2.4.3. Further, for example, the test module emulation unit 270 described above may have the following configuration. First, each test module emulation unit 270 receives a notification of the test signal generation timing scheduled by the schedule unit 277 in the schedule control unit 275 through a function call. Then, each test module emulation section 270 sets the cycle time corresponding to the test signal generation timing.
  • the change in the voltage of the test signal during the test is output by calling the voltage setting method (set method) of the output channel object that emulates the output channel multiple times. Then, the test module emulation section 27 ° has finished outputting the change in the voltage of the test signal corresponding to the cycle time after finishing outputting the change in the voltage of the test signal corresponding to the cycle time. Is notified to the schedule section 277 etc. by calling the end method (end method) of the output channel object. An example of such an implementation is shown in Supplementary explanation B.3.3.
  • the scheduler 277 outputs all the test module emulators 270 that output the change in the voltage of the test signal. Then, the DUT simulation unit 200 is requested to simulate the operation of the DUT 100 during this period. In response to this, the 011 connection unit 280 acquires the test signal in this period, and simulates the operation of the device under test in this period based on the test signal.
  • the output channel object prohibits the change of the voltage within the period notified by the termination method and already outputting the voltage change of the test signal.
  • the output channel object prohibits the change of the voltage within the period notified by the termination method and already outputting the voltage change of the test signal.
  • An example of such an implementation is shown in Supplementary Explanation B.3.4.
  • various specific examples and specification examples for realizing the test apparatus 10 and the test emulation apparatus 190 according to the present embodiment will be additionally described.
  • FIG. 8 illustrates a software architecture 220 according to one embodiment of the present invention.
  • the software architecture 220 corresponds to the relevant hard-air system elements 111, 130, 150, 160 and 170, and the system controller 220 0, a distributed operating system having elements for at least one site controller 222 and at least one module 222.
  • architecture 2 2 0 Contains the corresponding SW (software) module emulation 2280 for module emulation in software.
  • the development environment for this platform may be based on Microsoft Windows.
  • the use of this architecture has side benefits in program and support portability (e.g., field service engineers can connect laptop computers running tester operating systems for advanced diagnostics) Will be).
  • the relevant software may be able to operate independently and enable job scheduling across distributed platforms. It can be an independent component. Therefore, software tools related to batch jobs can run on multiple platform types.
  • the ANSI / ISO standard C ++ can be the native language for the software.
  • Figure 8 shows the tester operating system interface 2290, user components 2292 (for example, for testing purposes), according to the organization of nominal sources (or collective deployment as a subsystem). ), System components (eg, provided as a software infrastructure for basic connectivity communication), module development components (eg, module developers). And external components 2298 (eg, provided by an external source other than the module developer).
  • System components eg, provided as a software infrastructure for basic connectivity communication
  • module development components eg, module developers
  • external components 2298 eg, provided by an external source other than the module developer.
  • the tester operating system (T0S) interface 222 is a system controller site controller interface, a framework class 222, a site controller module interface 2 2 4 5, Framework class 2 2 4 6, Predefined module level interface 2 2 4 7, Backplane communication library 2 2 4 9, Chassis slot G IF (Interface) 2 2 6 2, Load board hardware IF 2 2 6 4, Knock plane simulation IF 2 2 8 3, Load board simulation IF 2 2 8 5, DUT simulation IF 2 287, Verilog PLI (Programming Language Interface) for the Verilog model of the DUT, and C / C ++ language support for the C / C ++ model of the DUT.
  • Verilog PLI Programming Language Interface
  • User components 2 292 include user test plan 2 242, user test class 2 243, hard-air load board 225, DUT 226, DUT Verilog model 229 and Includes DUT C / C ++ model 2 291.
  • HW backplane 2 including system components 2 294, system tools 2 226, communication library 2 230, test class 2 244, knock plane driver 2 250, bus switch 140 261, simulation framework 2281, backplane emulation 2282 and loadboard simulation 2286.
  • the model development component 228 includes a module command implementation 228, a module hardware 222, and a module emulation 228.
  • the external component 222 includes an external tool 222.
  • the system controller 2 220 which is software running on the system controller 1 110 shown in FIG. 1, includes an interface 2 222 to the site controller, a framework class 2 222, a system tool 222, Includes an external tool 2 2 5 5 communication library 2 2 3 0.
  • System controller software is the main point of interaction for the user. This provides a gateway to the site controller of the present embodiment and synchronization of the site controller in a multi-site ZDUT environment as described in US application Ser. No. 60 / 449,622 by the same assignee. .
  • User applications and tools are based on a graphical user interface (GUI) or otherwise and run on a system controller.
  • GUI graphical user interface
  • the system controller also serves as a repository for all test plan related information, including test plans, test patterns and test parameter files.
  • the test parameter file is a test class in the object-oriented environment of one embodiment of the invention. Including the parameterized data for
  • Third party developers can provide tools in addition to (or instead of) standard system tools.
  • the standard interface 222 on the system controller 222 has the interface that tools use to access testers and test objects.
  • Tools 2222,2226 allow interactive batch control of test and tester objects.
  • This tool includes applications to provide automation capabilities (eg, through the use of SECS / TSEM, etc.).
  • the communication library 222 on the system controller 220 provides a mechanism to communicate with the site controller 222 in a manner that is transparent to user abrication and test programs.
  • Interface 222 is resident in memory associated with system controller 222 and provides an open interface to framework objects running on the system controller. Includes an interface that allows site controller-based module software to access and retrieve pattern data. It also includes the interface that applications and tools use to access the tester and test objects, and the scripting interface that provides the ability to access and manipulate the tester and test components through a scripting engine. This allows a common mechanism for interactive, batch and remote applications to perform their functions.
  • the framework class 2222 associated with the system controller 222 provides a mechanism to interact with these above-mentioned objects, which provides a reference implementation of the standard interfaces.
  • the site controller 222 of the present embodiment provides a functional test object.
  • the system controller framework class may provide a corresponding functional test proxy on behalf of the remote system controller base for this functional test object. Therefore, a standard functional test interface is made available for the System Controller 222 Upgrading Tool.
  • the development components and interface components 228, 224, and 228, respectively, may be considered as operating systems distributed between the system controller and the site controller.
  • the framework classes essentially provide the operating system interface associated with the host system controller.
  • this layer provides an object model in one embodiment of the invention that is suitable for operating and accessing a site controller without having to go directly to the communication layer.
  • the site controller 2 240 which is software that runs on the site controller 1 30 shown in Fig. 1, consists of the user test plan 2 2 4 2, the user test class 2 2 4 3, and the standard test 'class 2 2 4 4 ⁇ Standard interface 2 2 4 5 ⁇ Site controller framework class 2 2 4 6 ⁇ Module interface, interface command interface (for example, the interface of a given module) 2 2 4 ⁇ Module interface Hosts the implementation 222, backplane communication library 222, and backplane driver 222.
  • most of the testing functions are handled by the site controller 21024/240, thereby allowing independent operation of the test site 211.
  • Test plan 2 2 4 2 is written by the user.
  • the plan may be written directly in a standard computer language such as C ++, or in a higher level test programming language that generates C ++ code that can be compiled into an executable test program. It may be described.
  • This test plan creates test objects using the framework classes 2246 and / or standard or user-supplied test classes 2244 associated with the site controller. Configure the hardware using 2 2 4 5 and define the flow of the test plan. It also provides any additional logic needed during the execution of the test plan.
  • the test plan supports some basic services, and interfaces to the underlying object's services, such as debugger services (eg, breakpoints), and the underlying services. Provides access to frameworks and standard classes.
  • Framework classes 2 2 4 6 related to site controllers are a set of classes and methods that implement common test-related operations.
  • the PSI1, controller-level framework includes, for example, classes for ordering power supply and pin electronics, setting level and timing conditions, acquiring measurements, and controlling test flow.
  • Framework objects may operate through the implementation of standard interfaces.
  • the implementation of the tester pin framework class is unified so that the test class implements a general purpose tester pin interface that will be used to interact with the hardware module pins.
  • Certain framework objects may be implemented to operate with the help of a module-level interface 2247 to communicate with the module.
  • the site controller framework class essentially functions as a local operating system that supports each site controller.
  • Equipment test data is DUT-dependent data (eg, power supply conditions, signal voltage conditions, timing conditions, etc.).
  • the test code consists of loading the specified instrument conditions onto the ATE hardware, and also consists of the methods needed to achieve the user's specified purpose (data ging, etc.). .
  • the framework of one embodiment of the invention provides for testing of hardware dependencies and a tester jet model that allows a user to perform DUT test programming tasks. ⁇
  • such code may contain device-specific data (eg, pin names, activation data, etc.) or device test-specific data (eg, DC unit conditions, The number of measurement 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, the reusability of the test code will decrease. Therefore, according to one embodiment of the invention, any device-specific data or device test-specific data is input during code execution. It may be useful for test code from outside.
  • device-specific data eg, pin names, activation data, etc.
  • device test-specific data eg, DC unit conditions, The number of measurement pins, the number of target pins, the name of the pattern file, and the address of the pattern program
  • test class that is an implementation of the standard test interface is referred to herein as ITest, but separates test data and code for a particular type of test (and thus reuses code). ).
  • Such test classes may be considered as “templates” for separate test classes that differ only in device-specific and Z 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.
  • ITest interface eg, FunctionalTest
  • 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 a failed strobe.
  • Other types of implementations may include AC and DC test classes, denoted here as ACParametricTest and DCParametricTest.
  • test types may provide default implementations of some hypothetical methods (eg, init (), preExec (), and postExec ()). These methods provide entry points for test engineers to overcome default behavior and set test-specific parameters. However, custom test classes can also be used in test plans.
  • Test classes allow users to configure the behavior of a class by providing parameters that are used to specify options for a particular case of the test. For example, a functional test may be employed with the parameters Plist and TestCondition to specify the list of patterns 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.
  • Figure 9 shows how different test examples can be derived from a single test class.
  • Template libraries are general purpose algorithms and data structures It may be adopted as a library. This library may be visible to tester users, who may, for example, modify the test class implementation to create user-defined test classes.
  • test classes deployed by the user are to integrate such test classes into a framework where all test classes are derived from a single test interface, eg, ITest. So that the framework can process 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. .
  • Each test site including the site controller 130, the synchronization module 150, the synchronization connection module 160, and the test module 170 shown in Fig. 1 has at least one DUT 1 It is dedicated to testing the 00 and works through a configurable collection of test modules such as the Test Module 170.
  • Each test module is the entity that performs a specific test task.
  • the test module may be a power supply for a DUT, a pin card, an analog card, or the like. This modular approach offers high flexibility and configurability.
  • the module implementation class 2 2 4 8 may be provided by the module vendor, a hardware vendor, and provides a modular level interface for hardware modules, depending on the command execution method selected by the vendor. Or provide a module-specific implementation of the standard interface.
  • the external interfaces of these classes are specified by the given module-level interface requirements and the backplane communication library requirements. This layer also provides extensions to the standard set of test commands, which allows for additional methods (functions) and data elements.
  • the backplane communication library 22249 provides an interface for standard communication across the pack brain, and thereby provides the functionality required to communicate with modules connected to the test site. This allows vendor-specific modules It is possible to use the backplane driver 250 for communication with the hardware module supported by the software.
  • the backplane communication protocol is a packet-based format.
  • the tester pin object represents a physical tester channel, obtained here from the tester pin interface denoted by ITesterPin.
  • a software development kit (SDK) according to one embodiment of the invention provides a default implementation of ITesterPin, sometimes called TesterPin, which is implemented for a given module level interface IChannel. Vendors are free to use TesterPin if they can implement the functionality of their modules with respect to IChannel, but otherwise, ITesterPin implementations that work with their modules Must be provided.
  • the standard module interface provided by the tester system of this embodiment is referred to as a module here, but generally represents a vendor hard 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).
  • DLL dynamic link library
  • Software for each module type from the vendor may be packaged into a single DLL.
  • Each of these software modules is responsible for providing a vendor-specific implementation for module interface commands, with APIs for module software deployment.
  • Module interface commands have two aspects. They serve, firstly, as an interface for users to communicate (indirectly) with specific hardware modules in the system, and secondly, third-party developers can use their own modules to control their own modules. Provides an interface that can be leveraged to integrate with armorore's framework. Therefore, the module interface commands provided by the framework can be divided into two types.
  • the framework also provides a special category of certain module-level interfaces that can be used to communicate with modules. These are the interfaces (ie, "standard” implementations of the framework interface) used by the framework classes to communicate with vendor modules.
  • module-level interfaces is optional.
  • the vendors noted that the ITesterPin and the IPowerSupply, while observing the content of specific messages sent to their hardware by implementing a module level rainfighter, This means that you can take advantage of such class implementations.
  • these interfaces are inappropriate for the vendor, they should provide their custom implementation of the framework interface (eg, vendor implementations such as ITesterPin, IPowerSupply, etc.). You may select. They will then provide custom features that are appropriate for their hardware.
  • this particular vendor software integration can be implemented in two different ways: custom implementation of related framework classes and interfaces, or custom implementation of special categories of module-level interfaces. It can be realized through the station.
  • 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.
  • Third-party A a vendor of new digital modules, provides software modules to communicate with its hardware modules. This software module implements the standard interface Module. Let's call this module object TPAPinModule.
  • the vendor TPA is a standard system implementer of the ITesterPin interface, represented here as TesterPin, by implementing in its module the relevant predefined module interface, in this case IChannel. Can be used. This is made possible by the fact that TesterPin uses a standard predefined module-level interface such as IChannel to communicate with the module.
  • TPAPinModule provides pins by simply creating and exposing a TesterPin object.
  • TPB Third Party B
  • TPBPinModule the implementation of the ITesterPin interface
  • TesterPin provides extensions that are not supported in the ITesterPin interface.
  • the framework provides the user with a mechanism or an implementation pointer to an object to retrieve a particular interface. This means that if your code has an ITesterPin pointer, the framework can determine if it points to a so-called TPBTesterPin object when it is needed. (Note that this feature may be provided via standard C ++ runtime type identification (RTTI).)
  • RTTI runtime type identification
  • the interface is TesterPin class vendor tester pin implementation Direct call, which contains module-specific information (eg, the address of a register that must be set to give a particular DUT stimulus).
  • module vendors can add methods (functions) to, for example, the standard system implementation of a class.
  • the trade-off for the user is that taking advantage of specific vendor extensions reduces the usefulness of test codes for modules from other vendors.
  • test equipment 10 has nominally two modes of operation.
  • a module element comprising the bus switch 140, the synchronization module 50, the synchronization connection module 160, the test module 170, the load board 180, and the DUT 100
  • the module emulation section 280 in the software including the test module emulation section 270, schedule control section 275, 011 connection section 280, and DUT simulation section 200 is used.
  • the module element 2260 includes the HW (hardware) backplane 2216, including the path switch 140 shown in Figure 1, and the chassis slot IF (interface) 2262.
  • the module hardware 2 263, including the synchronous module 150, the synchronous connection module 160, and the test module 170, the load board hardware IF 2 264, and the load port 180 It has a corresponding Hard-Air load board 2265 and a DUT 2266 corresponding to the DUT 100 shown in FIG.
  • the module emulation 228 in software is a simulation framework 2281, which includes the schedule control unit 275 shown in Fig. 2, and a bus switch emulation.
  • the model using Verilog has Verilog PLI (Programming Language Interface) 2288 and DUT Verilog Model 2293.
  • the model using C / C ++ has C / C ++ language support 2 289 and DUT C / C ++ model 2 291. Note that the simulation can be performed on any computer, such as a PC.
  • the module vendor provides physical hardware components to support testing, such as digital tester channels, DUT power, or DC measurement units.
  • the module is interfaced to the backplane 2 261 through chassis slot IF 2 262.
  • a PC-based or other environment that runs the equivalent of a system controller additionally provides a site-controller-level framework and a lower-layer runtime environment for the software. Undertake all duties to emulate the software.
  • Backplane emulation 2 2 8 2 provides a software proxy for the physical backplane 2 2 6 1. It communicates with the module emulation software (supplied by the vendor) through the backplane simulation interface.
  • the module emulation software 2284 is preferably provided by the module vendor and is typically closely tied to the specific vendor implementation of the module 2263. Therefore, module emulation software typically differs in detail between modules supplied by different vendors.
  • the module simulation allows the vendor to expose the functionality of the hardware through a software model (eg, module emulation software 228 4) and activate the simulated load port 228 6 The DUT model via the DUT simulation IF2287. It is possible to receive and process the DUT response signal from the simulated keyboard 228 6 connected to the ring software 2291 and 2293. Vendors may find it advantageous to provide a simple functional simulation of the module to bypass the emulation of module firmware.
  • the module emulation software compares the simulated DUT response to the simulated module activation signal with a known good DUT response. Based on this comparison, the software determines if the tests being performed by the module meet the goals of testing the DUT as desired and allows the user to access the IC (actually) on the actual tester online. It helps debug the module before using it on the DUT).
  • the loadboard simulation interface 22885 serves as a route to and from the modulating emulation layer and the simulated loadboard 22886.
  • the mouthboard simulation component 2286 supports device socket mapping and signaling to and from the DUT simulation IF2287.
  • the DUT simulation may be a native code (ie C / C ++) simulation 2291 or a Verilog Programming Language Interface (PLI) to the functional model of the DUT model 2293 in question. This model is interfaced with the simulated load board through the DUT simulation interface 2287.
  • a native code ie C / C ++
  • PLI Verilog Programming Language Interface
  • the simulation framework 2281 measures the simulated DUT response to a known activation signal.
  • a method of system emulation is disclosed in US application Ser. No. 10 / 403,817. Communication control
  • Communication and control is achieved through the management of related software objects.
  • the communication mechanism is hidden behind the object model on the system controller.
  • This object model is found on the site controller. It provides a proxy for the classes and objects it provides, thereby providing a convenient programming model for application development (eg, IC device testing). This allows application developers (eg, ATE system users) to avoid unnecessary details related to the specific information of the communication between the application and the Site Z System Controller.
  • FIG. 11 shows a specific embodiment of the site controller object when it is maintained in the site controller software 222 in the site controller 130.
  • the site controller object has CmdDispatcher 266, FunctionalTestMsgHandler 264, and FunctionalTest 266.
  • the interface has IMsgHandler 268 and ITest 266.
  • site controller 222 contains all of the functional classes that the application requires for access. These classes include, for example, tests, modules, pins, etc. Because the user's test software tool is typically on a different computer, the message is sent from the tool on the system controller to the server on the site controller. This server needs a method for the command dispatch object.
  • the command dispatch object (CmdDispatcher) 2602 holds a map of a message handler object that implements the IMsgHandler interface 2608.
  • FIG. 11 shows a specific implementation of IMsgHandler, FunctionalTestMsgHandler 264.
  • the message received by the DmdDispatcher object 2602 contains the identifier of the object with which to communicate. This identifier is found in the internal map and results in a specific implementation, in this case the FunctionalTestMsgHandler object 264 shown.
  • IMsgHandler 268 consists of handleMessage O in a single method.
  • the method is preferably implemented as a single implementation class.
  • FunctionalTestMsgHandler 264 sends the message in one of six ways, depending on the exact nature of the incoming message.
  • the headers of the incoming message will be Contains a message ID that allows you to interpret the message and determine where to send the message.
  • the corresponding communication environment in the system controller 110 relates to the tools 222, 222 section of the system controller software 222.
  • FIG. 12 shows an embodiment of the tool object (or the system controller object) held on the system controller 110 in the system controller software 222.
  • the site controller object shown in FIG. It is shown to correspond to The Tonole object includes the objects CradDispatcher 270, FunctionalTestMsgHandler 274, and FunctionalTestProxy 276.
  • the interfaces include IMsgHandler 278, ITestClient 270, and IDispatch 272. It also includes the utility application 27 14.
  • the classes CmdDispatcher 27 02, IMsgHandler 27 08, and FunctionalTestMsgHandler 27 04 are the same as shown in Figure 11.
  • instantiation of FunctionalTest 260 is not used.
  • the tool object has a proxy class for communicating with each object on the site controller 130.
  • the tool object includes the class FunctionalTestProxy 276 instead of FunctionalTest 266.
  • the ITestClient 270 in the Tonole object 1 is not the same as the ITest 270 in the site controller object.
  • an application running on the site controller 130 does not use an interface like the one provided on the site controller 130 itself.
  • ITestClient 270 preferably inherits the dual interface, IDispatch 712, and is implemented as a Microsoft Component Object Model (COM). It provides an interface that allows the script engine to access the objects that implement the interface. This allows the -cis W
  • an example of an application operating on the system controller 110 may communicate with the site controller 130 such that the test plan 222 has more than one FunctionalTest object 2606.
  • the corresponding test plan object is loaded on the site controller 130, constructing a TestPlanMessageHandler object, and Register the CmdDispatcher object 2 6 0 2 at once. This assigns a unique ID to the message handler.
  • a similar operation occurs with other TestPlan objects that make up the test plan 2 2 4 2.
  • the application on system controller 110 (eg, in tool 222, 222) initializes communication library 222 and communicates to site controller 130 via the communication channel. Connect and get the ID for the TestPlan object. During this initialization, the proxy object determines how many tests it contains and their type and ID. It loads the appropriate DLLs for each type (in this case, only one type), configures proxy objects for them, and initializes them with ID values.
  • TestProxy objects Also initialize the TestProxy object. To do this, they construct an appropriate message to get their name (using their ID values) and send it to the communication server of the site controller 130.
  • the communication server passes the message to CmdDispatcher 2602.
  • This object looks up the destination ID in its internal map and sends a message to the FunctionalTestMsgHandler 264's handleMessageO method. For example, if the message is a request to retrieve test names, these objects will retrieve each test name and respond to the application's TestProxy object with the appropriate name sequence.
  • the application When initialization is complete, the application has remote access to the TestPlan object, and through it, remote access to both Test objects.
  • the user can, for example, click the “Start Test Plan” button Push.
  • 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.
  • the communication server on the site controller 130 calls the handleMessageO method on the CradDispatcher object 2602 and passes it the ID of the TestPlan object.
  • the CradDispatcher object 2602 looks up this ID in its internal map, finds a message handler for the TestPlan object, calls the handleMessage () method on this object, which calls the RunTestPlan () method on the TestPlan object. . In a similar fashion, the application can get the name and recent status of the Test object.
  • the communication library 222 is preferably a static library. Applications can use this communication library through the ComraLibrary.h file. Applications that need to export communication library classes must have the defined preprocessor definitions COMMLIBRARY—EXPORTS, C0MMLIBRARY_F0RCE—LINKAGE, in addition to including the include files described above. Applications that import communication libraries do not need to define any preprocessor definitions. When the communication library is used as a server, the application must call the following static function of CcmdDispatcher: InitializeServer (unsigned long portNo) 0
  • This portNo is the port number on which the server must listen for requests.
  • the command dispatcher corresponding to the server is read by calling the static function getServerCmdDispatcher on the CcmdDispatcher class.
  • the serverAddress and ServerPortNo are those that the client must connect to. This function initializes the command dispatcher pointer for the client and the server ID to which it connects. Also, at a later point in time, the client can retrieve the command dispatcher corresponding to the server ID by calling the static function getClientCradDispatcher. .
  • the communication library When the communication library is compiled, builds are excluded on the files Clientlnterface.idl and Serverlnterface.idl.
  • the preferred embodiment applies the stub to exit xy file already generated for these interface definition files and links the proxy and stub implementation files to the same library.
  • the server and the client are instantiated in the same address space.
  • the following changes in the interface definition file and the stub file are preferably made to make the communication library operate as the server and client in the same address space. Changes in the interface definition file
  • the following namespace declarations are preferably added in each of the interface definition files. This is to avoid naming conflicts between our own implementations of the proxy and interface functions.
  • the following namespace declarations are added in serverlnterface.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.
  • the function class registers itself with the message handler by calling the function provided by the message handler.
  • the message handler object must 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 function class.
  • the function class destructor must call the removeMsgHandl er 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.
  • FIG. 13 illustrates a nominal test sequence 2800 according to one embodiment of the present invention.
  • Test sequence 2800 includes module installation 2810 in test environment 2804, which includes test preparation 2806 and system test 2808 .
  • a new module (hardware or software or a combination thereof) 280 10 is certified (by some external procedure that may be based on vendor quality control).
  • Installation 2 8 15 firstly sets up hardware module emulation for smart simulation 2 8 0 9, sets up module resource files and interface for test program development 2 8 14 2 8 Requires test preparation 2806, including module-specific ⁇ turn compiler settings for 1686.
  • the system test 2808 is then performed using input from the force calibration 2817, diagnostic 2818, and configuration 282 °.
  • new modules including (1) interface control, (2) synchronization, sequencing and repeatability, (3) error / alarm response, (4) multi-site control, and (5) multi-instrument module control System test 2808 is performed.
  • This specification focuses on the emulation environment (offline environment) of the test emulator 190 or the distributed system of the system controller 110 and the site controller 130, and the user and development of the DUT 100 system software. It shows a framework for the elderly.
  • rSimTester (simulated test equipment) is an application program that causes the computer 20 to function as the test emulator 190 shown in FIG. SimTester loads the DLL of each module and DUT and emulates the test equipment in response to commands from system software.
  • the system software is run-time software that loads and executes the pattern to be simulated.
  • SimTester When SimTester is started, it reads the simulation configuration file. As a result, all the module emulation DLLs that cause the test emulator 190 to function as the synchronous module emulator 250, the synchronous connection module emulator 260, and / or the test module emulator 270 are loaded. . Once the DLL is loaded, SimTester will run Wait for connection from 110. The system controller 110 connects to SimTester when loading the test plan.
  • the test plan includes an offline configuration file. Before the system controller 110 actually loads the test plan data, it passes the offline configuration file to SimTester so that initialization can be completed.
  • SimTester loads the DUT model and sends it to the module emulator such as the test module emulation section 270 as the DUT connection section 280 and DUT simulation section 200. Connect. At this point, the simulation is ready to read and execute the pattern. '
  • SimTester receives a signal to unload the DUT model and waits for a new offline configuration file.
  • SimTester uses two configuration files.
  • the first file is the simulation configuration file. This file specifies what modules are available during the simulation.
  • the second file is the configuration file, which specifies which DUT models are loaded and how they are connected to the test rig.
  • Figures 14 to 15 are examples of simulation configuration files.
  • the simulation configuration file is hierarchically blocked.
  • the global section 510 sets global settings.
  • the InitialVoltage parameter sets the initial value of the voltage of all wiring at the start of simulation. This value is also used to specify the voltage level of the drive, wiring, and wiring.
  • the RecoveryRate parameter is an optional parameter and is used when two analog signals are driven to face each other. More specifically, the parameter is a constant voltage level when the wiring is driven by two analog signals. Indicates the amount of voltage change per hour used to determine the time it takes to become. .
  • the module emulation section 502 0 specifies the module DLL and sets the module DLL.
  • the Waveform section declares the waveform model used for each module.
  • the waveform model designates Step (step waveform), Slew (sleeve waveform), and Analog (analog waveform) for each channel connected to the DUT terminal.
  • the Port section is a module that allows the test emulation device 190 to function as a synchronous module emulation section 250, a synchronous connection module emulation section 260, and / or a test module emulation section 270. Declare an emulator instance.
  • the LogicalPort parameter is provided to describe the replacement on the module emulator when the module inserted in the channel is replaced with another channel due to a failure of a certain channel in the actual device.
  • the Params section in the module emulation section 520 describes parameters to be passed to the module DLL.
  • Figures 16 to 17 are examples of smart configuration files.
  • the global section 5111 sets global settings.
  • the RegSelect parameter specifies a file that selects the registers to be traced when tracing the pattern.
  • the DUT model section 5120 specifies a DLL file to be a DUT model and performs various settings.
  • the Waveform parameter sets a waveform model for each DUT terminal.
  • the DUT block mainly includes a Params block and a PinConnections block.
  • the Params block describes the parameter passed to the module DLL.
  • the PinConnections block specifies the connection between the test equipment resources and the terminals of the DUT. That is, for example, “L3.ll 10 1.0 ns” indicates that the first resource of the logical port 3 is connected to the terminal 10 of the DUT and the wiring delay is 1.0 ns.
  • the logical port is, for example, a port on which a module is mounted, and the resource is, for example, a channel-compatible logic provided in the module.
  • Test equipment modules and DUT models are created using the module emulation 'program framework shown in Figure 5, for example by deriving from C ++ language class functions. With this derivation, it is necessary to implement some virtual functions in the base class.
  • the framework also includes functions that facilitate the realization of IZO between the test equipment module and the DUT model. Then, by following this framework, the obtained DLL can be connected to other components on the test emulator 19 ⁇ to perform emulation.
  • FIG. 18 shows a class hierarchical structure 5200 in which the class hierarchical structure shown in FIG. 5 is described in more detail.
  • Each method in the ThirdPartyModule class and ThirdPartyDUT class is a virtual method, and it is necessary to implement a real method to define the behavior of this model.
  • SmiComponent createDomain in the Kufusu, registerDomam s releaseDomam, getDomam, registerEvent ⁇ Pi raiseEvent Mesotto ⁇ , test emulator 1 9 0 a function as the schedule control unit 2 7 5 etc., the DUT 1 0 0 software simulation Chillon engine Provide access services.
  • FIG 19 shows a usage diagram of the channel objects used as interfaces in the framework.
  • the test equipment module and DUT model include an array of SimChannel objects. Each instance of the SimChannel object corresponds to the I / ⁇ channel of the model. IO channels are identified using the SimChanID object.
  • the SimChannel class is used by the module II DUT model to write the timing of the voltage to be output to the output channel and read the voltage from the input channel at a specific timing.
  • call the SimChannel To scan the edge of a signal input from an input channel during a certain time window, call the SimChannel :: getWaveformIter method and call SimWavefromlter. You can gain a stance.
  • the SimWaveformlter object then allows the calling routine to iterate over all edges in a finite time window.
  • Figure 20 shows a usage diagram for event objects used as interfaces in the framework.
  • the event is used for communication between the framework and the third party model.
  • Events are force-pulled by the SimEvent class.
  • SimEvent instances are generated by the SimEventMgr class.
  • one model has one instance of SimEventMgr. However, if one model sends a special event to another module, multiple instances of SimEventMgr are required.
  • This section shows how to implement the module, using a simple digital driver module and digital strobe module as examples.
  • Figure 21 shows the basic class of a simple digital module as an example of a test equipment module.
  • the classes of the digital driver module and digital strobe module are generated as derived classes of the base class.
  • the developer constructs the base class, the getChannel method that returns a channel object, the setBaseAddress method that sets the memory address space of the module, and the setBusNumber method that sets the slot number of the bus switch 140.
  • Implement locklnterrupt / unlocklnterrupt methods to set prohibition of interrupts and interrupts, and readZwrite method to access the memory address space of the module.
  • 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.
  • Asynchronous Events are defined by the SimEvent class and are classified into synchronous events and asynchronous events. Asynchronous events are also system events and local asynchronous Events. The system event is, for example, a system interrupt or the end of pattern generation.
  • the Low Asynchronous event is used for communication between modules. No time is associated with this event.
  • the module When requesting to receive an asynchronous event, the module 'registers the event with the overloaded registerEvent method with no time argument. To raise an asynchronous event, the module calls the raiseEvent method. The module that receives the asynchronous event performs event processing in the overloaded handleEvent method that has no time argument.
  • the local sync event (sync event) is used by the module to schedule a read or write event, ie, signal strobe or drive. Synchronous events are used by modules to be notified at specific times, not by communication between modules.
  • Figure 22 shows the class declaration for a simple digital driver module.
  • the developer implements the constructor of the class, the getModulelDs method that returns the information of the vendor Z module, and the initEvents method that initializes the driver module.
  • Figure 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 the set method in each element of m_channels, which is an array of SimChamiel objects.
  • the Sim Channel 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.
  • a signal instructing the component on the other side of the channel that is, for example, the DUT connection unit 280, to read the channel is notified.
  • the generated signal is read by the component.
  • the user specifies the voltage for a predetermined period by using a plurality of set methods, and then ends the period. By calling the end method once, the signal of the period can be generated and propagated.
  • Figure 24 shows the class declaration for a simple digital strobe module.
  • the developer implements the constructor, etModulelD method, initEvents method, etc. in the same way as the digital driver module.
  • the read and write methods are changed in order to store the comparison result between the DUT output value and the expected value in the file memory.
  • Figure 25 shows an example of the handleEvent method of the digital lobe module.
  • the digital strobe module reads the voltage of the channel at a specific timing using the read method of SimChannel. After completing the processing of the cycle period, it notifies the SimEventMgr object of the end timing of the next cycle, requests the occurrence of the event, and registers the event using the registei'Event method.
  • the DUT model can be created using the same procedure as the test equipment module, except that it is not event driven. Therefore, the base class SimComponentStepped.f3_ of the DUT model, the initEvents method, the handleEvent method, and the source IZO method can be implemented. You need to implement the function run to define the behavior of the DUT model during pattern execution.
  • Figure 26 shows the class definition of the DUT model where the eight wires driven by the test rig are re-input to the test rig.
  • the developer implements the constructor, getChannel method, run method, etc. based on the class.
  • Figure 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 the steps of scanning an input terminal, updating the internal state of DUT, and outputting data to an output channel of DUT.
  • the fall edge of the output signal exists outside the execution time window, the fall edge must be written to the output channel by the set method.
  • the end method is called, the output signal must be in the fall state.
  • the framework prohibits writing to the channel for the time after the end method after the last call to the end method.
  • Figure 28 shows the positioning of the system bus access library 604 in the real environment 6000 and the emulated environment 650. It is used in common in the real environment 600 000 of the DUT 100 and the emirate environment 650 by the test emulator 190.
  • Figure 28 (a) shows the positioning of the system bus access library 6004 in the real environment 6000 (online environment).
  • the software 6100 is software to run on the site controller 130 shown in Figure 1.
  • the software 60010 receives an HLC (High Level Command) from a program that controls the test of the test apparatus 10 and interprets the HLC to issue an access command to the hardware 6003.
  • HLC High Level Command
  • a system that includes the HLC processing unit 6001 to be generated, a communication library that performs communication processing based on the access command, and a bus access library that accesses a system path (PCI bus in this example) based on instructions from the communication library
  • the bus access library includes a bus access library and a PCI bus driver that controls the system bus based on instructions from the system bus access library.
  • the hardware 60030 includes a bus IF 630, a bus switch 140, a synchronization module 150, a synchronization connection module 160, and a bus interface 160 included in the site control device 130 shown in FIG. Or the test module 170 million.
  • the path IF 630 connected to the bus slot of the site control device 130 synchronizes the access issued by the PCI bus driver 600 with the synchronous module 150 and the synchronous module 150 via the bus switch 140. Send it to a module such as the test module 170 to process the access.
  • Figure 28 (b) shows the positioning of the system bus access library 614 in the Emirate environment 6005 (offline environment).
  • the off-line process 600 is software that runs on the site control device 130 or the test emulation device 190 shown in FIG.
  • Offline process 6006 is a process that has been modified to control the test equipment emulate process 6800 instead of controlling the hardware 6300 in the software 6100.
  • the off-line process 6006 uses the HLC processing unit 60012 and the system bus access library 60014, which are almost the same as the software 6.010, to meet the users of the software 6.010. And provides a common user-level interface with the software 610.
  • the test equipment emulator process 6808 is a process for emulating the test equipment 10, a system nos emulator 6804 that emulates the pass switch 140, a synchronization module 150, Includes a synchronous connection module 160 and a module emulator that emulates the Z or test module ⁇ 170.
  • the system bus emulator 6804 allows the test emulator 190 to function as the bus switch emulation section 240.
  • Module emulator 608 The 6 makes the test emulator 190 function as a synchronous module emulation section 250, a synchronous connection module emulation section 260 and Z or a test module emulation section B270.
  • module the synchronization module 1 5 0 in an online environment, the synchronous connection module 1 6 0, and the test Mojiyu Honoré 1 7 0, synchronization in an offline environment module emulation section 2 5 0, synchronization Used as a generic term for the connection module emulation section 260 and the test module emulation section 270.
  • This section describes the general-purpose functions available on the module driver that runs on the site controller 130 and controls the synchronization module 150, the synchronization connection module 160, and / or the test module 1 ⁇ ⁇ ⁇ ⁇ ⁇ 0.
  • this library is used to access registers and memories in various modules, and to read and write data required for depth measurement.
  • the main functions described in this chapter are as follows. 1. Bus access using program 10
  • FIFOs are arranged in the system bus and each module, and are When data is transferred to each module, the write operation of the CPU is terminated without waiting for the end of the write operation of each module (posted write). The time until data is actually stored in the register is affected by the availability of the FIFO between the CPU and the target register. Reliable delivery of data to all modules! Use the flush wait function of the FIFO to guarantee that / is satisfied. When the FIFO is flushed using the register reading in each module, it can be guaranteed that only the FIFO of the module to be read has been flushed.
  • the Offline System Path Emulator 6084 does not have a FIFO. Therefore, if a PIO write is performed to the module emulator 686 without a FIFO, the function returns after storing the data in the register of the module emulator 686.
  • Reads the data of the module register The site CPU waits for the data to be read. Reading of the target register is suspended until the data in the FIFO existing between the CPU and the target register is flushed.
  • Register addresses can be specified by discontinuous values.
  • the system bus executes the read cycle the specified number of times.
  • C.2.1.5 Continuous block write using program IO Writes a data string to the registers located at equally spaced addresses in the module. A data string is written from the specified start address, and each time data is written, an offset value is added to the address.
  • the offset value can be specified from 0 to 0x3fffff.
  • the system bus executes the specified number of write cycles. Writing data to multiple fixed offset addresses can be faster than writing with the BCL—GBI_writeBlockO function. This is because the addition of addresses is performed by hardware, which reduces the number of packets flowing on the PCI bus.
  • address address of machine word
  • data pointer to array where data is stored
  • number number of data to be written
  • offset offset value added to address for each data transfer
  • 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 0x3fffff.
  • the system bus executes the read cycle the specified number of times.
  • BCL_GBI can be faster than reading with the readBlockO function. This is because the addition of addresses is performed by hardware, which reduces the number of packets flowing on the PCI bus.
  • 'Number of bow I: address (address of machine word), data (pointer to array to read data), number (number of data to read), offset (address for each data transfer) Offset value added to
  • the following four types of synchronous / asynchronous write and Z-read functions are prepared for data transfer using DMA.
  • burst DMA / single DMA can be selected for each.
  • the function waits for the DMA to finish and then exits.
  • the function ends after the end of DMA, but the transfer data may remain in the system bus IF or the FIFO in the module.
  • Transfer ID is provided as identification information to wait for completion of asynchronous DMA processing. This transfer ID is 32-bit unsigned data. If there are more than 32 bits of DMA transfer, it returns to 0 and is reused.
  • burst DMA transfer data is transferred in burst-only packets on the system bus.
  • one address and N (up to 64) data are transferred as a set of packets, and the packet is repeatedly transmitted until the specified data ends. Therefore, high-speed transfer is possible.
  • the data allocated in the memory of the site CPU is transferred to each module using DMA.
  • This function can specify burst / single for synchronous write.
  • address address of machine word
  • data pointer to array where data is stored
  • number number of data to write
  • offset offset value added to address for each data transfer
  • mode Burst / Single operation mode
  • ⁇ Format mt B CL_GBi_readSyncDMA (nsigned mt address, unsigned int * data, unsigned int number, unsigned int offset, unsigned int mode);
  • the data allocated in the memory of the site CPU is transferred to various modules using DMA. This function can specify burst / single for asynchronous write.
  • the specified time range is from 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 the same as specifying BCL—GBI_INFINITE. Also, if transferlD is specified with an incorrect value, BCL—GBI—OK is returned immediately and this function ends.
  • transferlD transfer end wait ID returned during asynchronous mode transfer
  • BCL GBIJDK (DMA completed normally), BCL—GBI—ERROR (DMA error), BCL_GBI—BUSY (DMA running)
  • the system bus access library provides functions for performing basic interrupt operations. There are four types of inter-operables that can be operated using the system bus access library.
  • a maximum of 65 interrupt handlers can be registered.
  • interrupt reception can be enabled / disabled by the functions of this library separately from enable / disable in the interrupt thread.
  • Interrupt prohibition / permission can be controlled on the system bus I / F board and on each module.
  • the prohibition / permission on the system bus I / F board simply enables / disables the interrupt from the module.
  • the locking / unlocking of interrupts on the module side controls the generation of interrupts at the module-side interrupt source. While locked, no new interrupts are generated in the module, nor are any changes to the status related to interrupts. After unlocking, interrupts can be generated on the module side.
  • the registered function is executed in a thread dedicated to the interrupt handler.
  • the interrupt handler sends the interrupt Then, start the inter-work handler where the registered bus number is the same as the bus number of the module whose inter-work has been raised.
  • 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. The bus number can be specified from 1 to 64. If registration is successful, the key number will be returned in the return value. If you register using this key number, you can re-register or delete the interrupt handler for that key number. If you register with the key number set to 0, the interrupt handler will be set to a free key number. If there is no free key number, an error occurs and -1 is returned. When two interrupt handlers are registered, they are executed in order from the lowest key number.
  • BusNo Bus number
  • KeyNo key number
  • handler address of callback function
  • arg value to be passed to the interrupt handler
  • Factor interrupt factor (depends on each module)
  • the interrupt thread does not execute the BCL_GBI_IGNORE_BUSERROR_HANDLER interrupt handler. If all 65 interrupt handlers are BCL_GBI_IGNORE_BUSERROR_HANDLER, it returns to the initial state. (The standard interrupt handler in the access library is set.) A Bus error occurs due to a communication error on the system path or a hardware failure.
  • KeyNo key number
  • handler address of cornoreback function
  • rg value to pass to interrupt handler
  • interrupt handler Up to 65 interrupt timeout handlers can be registered. If registration is successful, the key number will be returned in the return value. When you do register using this key number, 're-registration ⁇ Pi of I centers interrupt handler of the key numbers, and to register the deletion allows 9 key number is set to 0, vacant key The interrupt handler is set for the number. If there is no free key number, an error occurs and -1 is returned. Deleting the interrupt handler registers the address of the callback function as BCL—GBI—IGNORE—TIMEOUT_HANDLER.
  • the interrupt thread does not execute the BCL—GBI—IGNORE_TIMEOUT—HANDLER interrupt handler. If all 65 inter-handlers are changed to BCL-GBI-IGNORE-TIMEOUT-HANDLER, it returns to the initial state. (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. In addition, hardware failure may also cause this.
  • Cornole knock function void TimeoutInterruptRoutine (nsigned int address, unsigned mt Factor, unsigned mt arg);
  • Deleting the interrupt handler registers the address of the callback function as BCL_GBI_IGNORE_SYNCERROR_HANDLER.
  • the interrupt thread does not execute the BCL—GBI—IGNORE_SYNCERROR—HANDLER interrupt handler. If all 65 interrupt handlers are changed to BCL—GBI—IGNORE—SYNCERROR—HANDLER, it returns to the initial state. (The standard interrupt handler in the access library is set.) Sync errors occur due to software setting errors or hardware design errors. In addition, hardware failure may also cause this.
  • Corno knock function void SyncErrorInterruptRoutine (unsigned mt arg);
  • FIFO exists in the system bus I / F board and in the module.
  • this function terminates, it means that all data existing in the FIFO just before the execution of this function was written to the module.
  • the CPU issues a read cycle to the PCI bus, so the path is hard-locked until the FIFO is flushed. This may cause delays in DMA transfer and interrupt acceptance. In addition, execution of this function may cause a timeout.
  • BCL GBI—OK (successful termination), BCL_GBI_ERROR (site number is not specified), BCL—GBI—TIMEOUT (cannot connect to system bus emulator in 30 seconds offline)
  • BCL—GBI_OK normal end
  • BCL_GBI—ERROR site number is not specified
  • bit31 Value specifying the type of error code
  • bit30-24 Value specifying the location in the function where the error occurred (Internal information)
  • bit23-16 Value specifying the access library function in which the error occurred
  • BCL_GBI_getPreviousErrors 'Arguments error (pointer to array variable that stores error information.
  • error pointer to array variable that stores error information.
  • the format of error information is the same as BCL_GBI_getLastErrorO), size (size of array variable that stores error information)
  • the resolution is 1 [us]
  • the significant digit of double is 15 decimal digits, and theoretically, if the system bus access library is initialized for about 31 years, l [us] resolution cannot be obtained.
  • the hardware counter Since the hardware counter operates at 64 bits, it returns to 0 theoretically about 580,000 years after initializing the system bus access library.
  • the difference (elapsed time) when reading at regular intervals in the program may not be constant depending on the CPU load status, PCI node load status, and FIFO status.
  • the elapsed time since the start of the site CPU where the offline process runs is read in seconds [s].
  • the elapsed time since the initialization of the system bus access library was executed is read as a count value.
  • the count value is incremented by 1 every time l [us] elapses.
  • the hardware counter Since the hardware counter operates at 64 bits, it returns to 0 theoretically about 580,000 years after initializing the system bus access library. Also, the difference (elapsed time) when reading is performed at regular intervals on the program may not be constant depending on the CPU load status, PCI bus load status, and FIFO status. In the offline mode, the elapsed time since the start of the site CPU in which the offline process operates is read as a count value.
  • the function After the specified time, the function returns. If a value less than l [us] is specified for the waiting time (time), the function returns immediately. It may return after the elapsed time is longer than the specified time depending on the CPU load status.
  • the time wait is performed with the truncated value for less than l [ms]. For example, if you specify a value less than l [ms] for the waiting time (time), the function returns immediately.
  • the maximum waiting time is 4294967.296 [s] (about 49 days).
  • This library does not cause a run-time error at the time of execution.However, if this library is used for functions other than the bus conditioner function and hardware diagnostic function, the operation related to the interrupt of this library and the device driver of the system bus I / F board is guaranteed. No.
  • interrupts from various modules There are four types of interrupt signals: interrupts from various modules, bus errors, bus timeouts, and sync errors. These signals have the bits defined below. Can be set as information. To specify multiple interrupt signals, set them as OR. This function terminates after confirming that interrupts have been enabled on the system bus I / F.
  • BCL_GBI_INT_SYNCERROR
  • interrupts from various modules There are four types of interrupt signals: interrupts from various modules, bus errors, bus timeouts, and sync errors. These signals can be set as the bit information defined below. To specify multiple interrupt signals, set them as OR. This function terminates after confirming that the interrupt has been disabled on the system bus I / F.
  • BCL GBI INT—MODULE: Interrupt from the module
  • BCL_GBI_INT_BUSERROR Bus error
  • BCL GBI—INT—TIMEOUT : Bus timeout
  • BCL-GBI-INT-SYNCERROR Sync error
  • interrupts from various modules There are four types of interrupt signals: interrupts from various modules, bus errors, bus timeouts, and sync errors. These signals can be set as bit information defined below. To specify multiple interrupt signals, set them as logical OR.
  • This function saves the setting status of the interrupt signal on the system bus I / F port (enable / disable) and the interrupt generation status from the module (lock / unlock).
  • the saved contents are restored with the BCL—GBI_restoreInterruptConditionO function. In this case, the previously saved settings will be canceled and only the last saved settings will be effective.
  • BCL_GBI Setting status of interrupt signal on system path I / F port saved by savelnterruptConditionO function (enable / disable) and setting status of interrupt generation from various modules (lock / unlock) ).
  • This function is used to return to the setting state before the operation after performing an interrupt operation for diagnosis or the like. If this function is executed without saving using the BCL_GBI_saveIntei'ruptConditionO function, an error will be returned. If this function is executed more than once, no error occurs and the last saved configuration is always restored.
  • the access library functions for tracing bus access are as follows. BCL—GBI-I write
  • the access library functions that trace functions are as follows.
  • C. .5.1.1.0 Specifying the address filter of the trace function (not disclosed) Specify the address filter for the bus access trace function. Depending on the mode, the filter can be specified singly or continuously. Up to 16 combinations can be specified. If the trace function is enabled, only addresses that fall into any of these combinations will be traced.
  • cmd function to be traced
  • address address to be traced
  • data data to be traced
  • arg argument passed to the trace handler
  • a test emulator As is apparent from the above description, according to the present invention, a test emulator, a test module emulator, and a test module that can appropriately emulate a test apparatus that mounts and uses various modules. And a recording medium on which the program described above is recorded.

Description

明 細 書 試験エミュレート装置、 試験モジュールエミュレート装置、 及ぴこれらのプロダラ ムを記録した記録媒体
' 文献の参照による組み込みが認められる指定国については、 下記の出願に記載さ れた内容を参照により本出願に組み込み、 本出願の記載の一部とする。
米国特許出願 10/404, 002 出願日 平成 1 5年 3月 31日 米国特許出願 10 403, 81 7 出願日 平成 15年 3月 31日 国際特許出願 PCT/J P 2004/001649 出願日平成 16年 2月 16日 国際特許出願 P C T/ J P 2004/001648 出願日平成 16年 2月 1 6日 技術分野
本発明は、 試験エミュレート装置、 試験モジュールエミュレート装置、 及ぴこれ らのプログラムを記録した記録媒体に関する。 特に本発明は、 被試験デバイスに試 験信号をそれぞれ供給する、 交換可能な複数の試験モジュールを備える試験装置を エミュレートし、 被試験デバィスゃ試験モジュール等の実物を用いることなく試験 環境を検証することができる試験エミユレ一ト装置、 試験モジュールエミユレ一ト 装置、 及ぴこれらのプログラムを記録した記録媒体に関する。 背景技術
従来、 被試験デバィスゃ試験装置等の実物 用いることなく試験環境を検証する 手段として、 特開平 10— 320229号、 特開 2000— 267881号、 特開 2001— 5 1 025号、 特開 2001— 1 34457号、 特開 2002— 333 469号に示す技術が開示されている。
特開平 10— 320229号は、 半導体試験装置の各ハードウエアュニットの機 能をエミュレートする各エミュレータュ -ットと、 DUTめ機能をエミュレートす るデバイスエミュレータと、 テストプログラムに基づいて、 各エミュレータュ-ッ トからテストプログラムの実行に必要なデータを収集する手段と、 収集したデータ に基づきデバイスエミュレータに試験信号を発生し、 デバイスエミュレータからの 結果信号を比較して結果を格納するデパイステストエミュレータとを備えるエミュ レータを開示する。
特開 2 0 0 0 - 2 6 7 8 8 1号は、 D U Tの内部抵抗に依存して変化する電圧値、 電流値を的確にシミュレートする半導体シミュレート装置を開示する。
' 特開 2 0 0 1— 5 1 0 2 5号は、 半導体試験装置の動作をエミュレートするテス タエミュレ一ト手段と、 ハードウヱァ記述言語に基づき D U Tをシミュレートする ハードゥエァ記述言語シミュレ一ト手段と、 D U Tのシミュレー 1、結果に基づいて 半導体試験用プログラムのデバッグを行なうデバッグ手段とを備える半導体試験用 プログラムデバッグ装置を開示する。
特開 2 0 0 1— 1 3 4 4 5 7号は、 半導体試験装置の動作をエミユレ一トする際 に、 各ピンに対応した波形データを高速に作成することができる半導体試験用プロ グラムデバッグ装置を開示する。
特開 2 0 0 2— 3 3 3 4 6 9号は、 アナログ出力端子を備える半導体デバイス用 に作成された半導体試験用プログラムの検証を行なうことができる半導体試験用プ ログラムデバッグ装置を開示する。 .
上記に示した試験装置のエミュレート装置は、 主として試験装置ベンダによって 独自に開発されたアーキテクチャによる試験装置を前提とする。 一方、 将来の試験 装置においては、 試験装置がオープンアーキテクチャにより実現され、 様々なベン ダによつて開発されたモジュールを組み合わせて試験装置を構成する方式が期待さ れており、 様々なモジュールを混載して使用する試験装置を適切にェミュレートす ることができるエミュレート装置を提供することが望ましい。
そこで本発明は、 このような問題を解決することを目的とする。 発明の開示
このような目的を達成するために、 本発明の第 1の形態によると、 試験信号を被 試験デバイスにそれぞれ供給する複数の試験モジュールを備える試験装置をエミュ レートする試験エミュレート装置であって、 異なるサイクル周期に基づく試験信号 を生成する前記複数の試験モジュールをェミュレ一トする複数の試験モジュールェ ミュレート部と、 前記被試験デバイスの試験を制御する制御装置をェミュレートす る制御ェミュレート部と、 前記制御ェミュレ一ト部からの指示に基づき、 前記複数 の試験モジュールェミュレ一ト部のそれぞれが、 当該試験モジュールェミュレート 部のサイクル時間に対応する試験信号を擬似的に生成すべき試験信号生成タイミン グを生成する同期エミュレート部と、 前記同期エミュレート部が生成した複数の前 記試験信号生成タイミングを、時刻順に整列して順次出力するタイミング整列部と、 前記タイミング整列部が出力した一の前記試験信号生成タイミングに対応する前記 試験モジュールェミュレート部に、 当該一の試験信号生成タイミングに対応するサ ィクル時間における試験信号を擬似的に生成させるスケジュール部とを備える試験 エミュレート装置を提供する。
擬似的に生成された前記試験信号に基づいて被試験デバイスの動作をシミュレー トする被試験デパイスシミュレート部を更に備えてもよい。
前記同期ェミュレ一ト部は、 複数の前記試験モジュールェミュレ一ト部のそれぞ れが、 前記試験信号生成タイミングに対応するサイクル時間における試験信号の生 成において擬似的に発生する、 前記制御装置に対する割込みを収集する割込み収集 タイミングを更に生成し、 前記タイミング整列部は、 前記複数の試験信号生成タイ ミング及び複数の前記割込み収集タイミングを時刻順に整列して順^出力し、 前記 スケジュール部は、 タイミング整列部が一の前記割込み収集タイミングを出力した 場合に、 当該割込み収集タイミングに対応する前記試験モジュールェミュレート部 に、 当該割込み収集タイミングの直前に当該試験モジュールエミュレート部が試験 信号を生成したサイクル時間において擬似的に発生した前記割込みを前記制御エミ ュレート部に対して通知させてよい。
前記複数の試験モジュールェミュレ一ト部のそれぞれは、 前記試験信号生成タイ ミングに対応するサイクル時間における試験信号の生成において、 当該サイクル時 間中における試験信号の変化タイミングを生成し、 当該試験エミュレート装置は、 前記複数の試験モジュールエミュレート部により生成された複数の前記変化タイミ ングを取得し、 前記複数の変化タイミングに基づいて、 試験信号を時刻順に順次擬 似的に変化させる被試験デバィス接続部を更に備えてもよい。
前記被試験デバィス接続部は、 前記複数の試験モジュールェミュレ一ト部から取 得した複数の前記変化タイミングを前記タイミング整列部に供給し、 前記タイミン グ整列部は、 前記複数の変化タイミング、 前記複数の試験信号生成タイミング及び 複数の前記割込み収集タイミングを時刻順に整列して順次出力し、 前記スケジユー ノレ部は、 前記タイミング整列部が一の前記変化タイミングを出力した場合に、 前記 被試験デバイス接続部に、 当該変化タイミングに試験信号を擬似的に変化させても よい。
前記複数の試験モジュールェミュレ一ト部のそれぞれは、 前記試験信号生成タイ ミングに対応するサイクル時間における試験信号の生成において、 当該サイクル時 間が終了するサイクル終了タイミングを前記同期エミュレート部に通知し、 前記同 期エミュレート部は、 前記複数の試験モジュールエミュレート部のそれぞれから通 知された前記サイクル終了タイミングに基づいて、 当該試験モジュールェミュレ一 ト部が次のサイクル時間に対応する試験信号を擬似的に生成すべき前記試験信号生 成タイミングを生成してもよい。
次のサイクル時間に対応する前記試験信号生成タイミングを前記タイミング整列 部が出力した場合に、 前記スケジュール部は、 当該試験信号生成タイミングの直前 のサイクル時間における試験信号の生成において、 当該試験信号生成タイミングに 対応する前記試験モジュールエミュレート部が擬似的に発生した割込みを前記制御 エミユレ一ト部に対して通知させてもよい。
前記複数の試験モジュールェミュレ一ト部のそれぞれは、 当該試験モジュールェ ミュレ一ト部に対応する試験モジュールエミュレートプログラムをコンピュータで 動作させることにより実現され、 前記試験モジュールエミュレートプログラムは、 前記試験モジュールが前記制御装置から受信する複数のコマンドのそれぞれに対応 して設けられ、 当該コマンドに対応する前記試験モジュールの動作をエミュレート する複数のハードウェアエミュレート関数と、 前記スケジュール部が、 前記試験信 号生成タイミングに対応するサイクル時間における試験信号を生成させるために用 いる制御関数とを有してもよい。
本発明の第 2の形態によると、 コンピュータを、 試験信号を被試験デバイスにそ れぞれ供給する複数の試験モジュールを備える試験装置をエミュレートする試験ェ ミュレ一ト装置として機能させるプログラムを記録した記録媒体であって、 前記プ ログラムは、 前記コンピュータを、 異なるサイクル周期に基づく試験信号を生成す る前記複数の試験モジュールをェミュレ一トする複数の試験モジュールェミュレ一 ト部と、 前記被試験デバイスの試験を制御する制御装置をェミュレ一トする制御ェ ミュレート部と、 前記制御ェミュレート部からの指示に基づき、 前記複数の試験モ ジュールエミュレート部のそれぞれが、 当該試験モジュールエミュレート部のサイ クル時間に対応する試験信号を擬似的に生成すべき試験信号生成タイミングを生成 する同期エミュレート部と、 前記同期エミュレート部が生成した複数の前記試験信 号生成タイミングを、 時刻順に整列して順次出力するタイミング整列部と、 前記タ ィミング整列部が出力した一の前記試験信号生成タイミングに対応する前記試験モ ジュールエミュレート部に、 当該一の試験信号生成タイミングに対応するサイクル 時間における試験信号を擬似的に生成させるスケジュール部として機能させる記録 媒体を提供する。
本発明の第 3の形態によると、 異なるサイクル周期に基づく試験信号を被試験デ バイスにそれぞれ供給する複数の試験モジュールを備える試験装置をエミュレート する試験エミュレート装置において、 一の前記試験モジュールをエミュレートする 試験モジュールェミュレ一ト装置であって、 前記試験ェミュレ一ト装置は、 前記被 試験デバィスの試験を制御する制御装置をェミュレ一トする制御ェミュレート部と、 前記制御ェミュレ一ト部からの指示に基づき、 前記複数の試験モジュールのそれぞ れが、 当該試験モジュールのサイクル時間に対応する試験信号を擬似的に生成すベ き試験信号生成タイミングを生成する同期エミュレート部と、 前記同期エミユレ一 ト部が生成した複数の前記試験信号生成タイミングを、 時刻順に整列して順次出力 するタイミング整列部と、 前記タイミング整列部が出力した一の前記試 信号生成 タイミングに対応する当該試験モジュールエミュレート装置に、 当該一の試験信号 生成タイミングに対応するサイクル時間における試験信号を擬似的に生成させるこ とを指示するスケジュール部とを備え、 当該試験モジュールエミュレート装置は、 前記スケジュール部からの指示に基づき、 前記一の試験信号生成タィミングに対応 するサイクル時間における試験信号を擬似的に生成するパターン発生器エミュレー ト部を備える試験モジュールエミュレート装置を提供する。
前記一の試験信号生成タイミングに対応- イミングを同期エミュレート部に通知し、 前記同期エミュレート部に前記サイクル 終了タイミングに基づき当該試験モジュールェミュレ一ト装置が次に試験信号を擬 似的に生成すべき前記試験信号生成タイミングを更に生成させる試験モジュールィ ンターフェイスエミュレート部を更に備えてもよい。
本発明の第 4の形態によると、 異なるサイクル周期に基づく試験信号を被試験デ 'パイスにそれぞれ供給する複数の試験モジュールを備える試験装置をエミュレート する試験エミュレート装置において、 コンピュータを、 一の前記試験モジュールを エミュレートする試験モジュールエミユレ一ト装置として機能させるプログラムを 記録した記録媒体であって、 前記試験ェミュレート装置は、 前記被試験デバィスの 試験を制御する制御装置をェミュレ一トする制御ェミュレート部と、 前記制御ェミ ュレート部からの指示に基づき、 前記複数の試験モジュールのそれぞれが、 当該試 験モジュールのサイクル時間に対応する試験信号を擬似的に生成すべき試験信号生 成タイミングを生成する同期ェミュレート部と、 前記同期ェミュレ一ト部が生成し た複数の前記試験信号生成タイミングを、 時刻順に整列して順次出力するタイミン グ整列部と、 前記タイミング整列部が出力した一の前記試験信号生成タイミングに 対応する当該試験モジュールエミュレート装置に、 当該一の試験信号生成タイミン グに対応するサイクル時間における試験信号を擬似的に生成させることを指示する スケジュール部とを備え、 前記プログラムは、 前記コンピュータを、 前記スケジュ ール部からの指示に基づき、 前記一の試験信号生成タイミングに対応するサイクル 時間における試験信号を擬似的に生成するパターン発生器エミュレート部として機 能させる記録媒体を提供する。
本発明の第 5の形態によると、 試験信号をネ皮試験デバイスに供給する試験モジュ ールを備える試験装置であつて、前記被試験デバィスの試験を制御する制御装置と、 サイクル周期に基づき試験信号を生成する試験モジュールと、 前記試験モジュール をエミュレートする試験モジュールエミュレート部とを備え、 前記制御装置は、 前 記被試験デバィスの実試験又は擬似試験のいずれを行うかの指示を入力し、 前記被 試験デバィスの実試験を行う指示を受けた場合に、 前記被試験デバィスの試験を行 う試験プロダラ'ムを前記試験モジュールに供給して、 前記試験モジュールにより前 記被試験デバィスの試験を行わせ、 前記被試験デバィスの擬似試験を行う指示を受 けた場合に、前記試験プログラムを前記試験モジュールェミュレ一ト部に供給して、 前記試験モジュールェミュレート部により前記被試験デバイスの試験をシミュレー トさせる試験装置を提供する。
■ 前記制御装置は、 当該制御装置と前記試験モジュールとの間の通信処理を行う通 信ソフトウェアを実行し、 前記通信ソフトウェアは、 前記制御装置と協働して、 当 該通信ソフトウェアを初期化する呼び出しに含まれる前記指示に基づいて、 前記試 験プログラムを前記試験モジュール及ぴ前記試験モジュールエミュレート部のいず れに供給するかを判断してもよい。
本発明の第 6の形態によると、 試験信号を被試験デバィスに供給する複数の試験 モジュールを備える試験装置をエミュレートする試験エミュレート装置であって、 サイクル周期に基づく試験信号を生成する前記複数の試験モジュールをェミュレ一 トする複数の試験モジュールェミュレート部と、 前記被試験デバイスの試験を制御 する制御装置をェミュレ一トする制御ェミュレート部と、 前記複数の試験モジユー ルェミュレ一ト部のそれぞれが、 サイクル時間に対応する試験信号を擬似的に生成 すべき試験信号生成タイミングをスケジュールするスケジュール部とを備え、 前記 試験モジュールェミュレ一ト部は、 関数呼び出しにより前記試験信号生成タイミン グの通知を受けて、 当該試験信号生成タイミングに対応するサイクル時間中におけ る試験信号の電圧の変化を、 出力チャネルをエミュレートする出力チャネルォブジ ェクトの電圧設定メソッドを複数回呼び出すことにより出力し、 当該サイクル時間 に対応する試験信号の電圧の変化の出力を終えた後に、 当該サイクル時間に対応す る試験信号の電圧の変化の出力を終えたことを、 前記出力チャネルオブジェクトの 終了メソッドを呼び出すことにより通知する試験ェミュレ一ト装置を提供する。 前記スケジュール部は、 前記複数の試験モジュールエミュレート部のそれぞれか ら通知された前記終了メソッドに基づいて、 全ての前記試験モジュールェミュレ一 ト部が試験信号の電圧の変化の出力を終えた期間を算出し、 前記期間内における前 記試験信号を取得して、 当該試験信号に基づいて被試験デバィスの前記期間内にお ける動作をシミュレ一トする被試験デバィスシミュレート部を更に備えてもよい。 前記出力チャネルオブジェクトは、 前記終了メソッドの呼び出しを受けた後に、 当該終了メソッドにより通知された、 既に試験信号の電圧の変化の出力を終えた期 間内の電圧の変化を禁止してもよい。
なお、 上記の発明の概要は、 本発明の必要な特徴の全てを列挙したものではなく これらの特徴群のサブコンビネーションも又発明となりうる。 図面の簡単な説明
' 図 1は、 本発明の実施形態に係る試験装置 1 0の構成を示す。
図 2は、本発明の実施形態に係る試験ェミュレート装置 1 9 0の機能構成を示す。 図 3は、 本発明の実施形態に係るコンピュータ 2 0のハードウエア構成の一例を 示す。
図 4は、 本発明の実施形態に係る試験モジュールェミュレート部 2 7 0の機能構 成を示す。
図 5は、 本発明の実施形態に係るクラス階層構造 5 0 0の一例を示す。
図 6は、 本発明の実施形態に係る試験ェミュレート装置 1 9 0の試験信号生成処 理フローを示す。
図 7は、 本発明の実施形態に係る試験エミュレート装置 1 9 0により擬似的に生 成される試験信号の一例を示す。
図 8は、 本発明の実施形態によるソフトウェアアーキテクチャを示している。 図 9は、 本発明の実施形態によるテストクラスの使用を示している。
図 1 0は、 本発明の実施形態による、 テスタシステムと異なるベンダが提供する モジュールリソースとの相互作用を示す統一モデリング言語(UML) ダイアグラムで 図 1 1は、 サイトコントローラによって保持されているときのユーザのテストを 管理するためのサイトコントローラオブジェクトの一実施形態を示している。 図 1 2は、 図 1 1に示されているサイトコントローラオブジェクトを表している システムコントローラ側のオブジェクトの代理の一実施形態を示している。
図 1 3は、 本発明の実施形態によるテスト環境を示している。
図 1 4は、 本発明の実施形態に係るシミュレーションコンフィギュレーションフ アイルの一例を示す第 1の図である。
図 1 5は、 本発明の実施形態に係るシミュレーションコンブイギュレーシヨンフ ァィルの一例を示す第 2の図である。
^ 図 1 6は、 本発明の実施形態に係るオフラインコンフィギュレーションファイル の一例を示す第 1の図である。
図 1 7は、 本発明の実施形態に係るオフラインコンフィギュレーションフアイル の一例を示す第 2の図である。
図 1 8は、 本発明の実施形態に係るクラス階層構造 5 2 0 0の一例を示す。
図 1 9は、 本発明の実施形態に係るチャネルオブジェクトの使用ダイアグラムを 示す。
図 2 0は、 本発明の実施形態に係るイベントオブジェクトの仕様ダイアグラムを 示す。
図 2 1は、 本発明の実施形態に係るデジタルモジュールの基本クラスの一例を示 す。
図 2 2は、 本発明の実施形態に係るデジタルドライバモジュールのクラス宣言の 一例を示す。
図 2 3は、 本発明の実施形態に係るデジタルドライバモジュールの handleEvent メソッドの一例を示す。
図 2 4は、 本発明の実施形態に係るデジタルストロープモジュールのクラス宣言 を示す。
図 2 5は、 本発明の実施形態に係るデジタルストローブモジュールの handleEvent メソッドの一例を示す。
図 2 6は、 本発明の実施形態に係る D U Tモデルのクラス定義の一例を示す。 図 2 7は、 本発明の実施形態に係る D U Tモデルの runメソッドのー を示す。 図 2 8は、 実環境 6 0 0 0及びエミユレ一ト環境 6 0 5 0におけるシステムバス アクセスライブラリ 6 0 1 4の位置付けを示す。 発明を実施するための最良の形態 以下、 図面を参照して本発明の実施の形態の一例を説明する。
図 1は、 本発明の実施形態に係る試験装置 1 0の構成を示す。 試験装置 1 0は、 試験信号を生成して DUT 100 (De v i c e Un d e r T e s t :被試験 デバイス) に供給し、 DUT 100が試験信号に基づいて動作した結果出力する結 果信号が期待値と一致するか否かに基づいて DUT 100の良否を判断する。 本実 施形態に係る試験装置 10は、 オープンアーキテクチャにより実現され、 DUT 1 00に試験信号を供給する試験モジュール 1 70等として、 オープンァーキテクチ ャに基づく各種のモジュールを用いることができる。 そして、 試験装置 10は、 D UT 100の実試験をエミユレ一トする試験エミユレ一ト装置 1 90を有し、 試験 エミユレ一ト装置 190により、 実試験に用いる試験モジュール 170等の変更に 対応して適切に構成を変更し、 DUT100の実試験を適切にエミュレートするェ ミュレ一ト環境を提供することができる。
試験装置 10は、 システム制御装置 1 10と、 通信ネットワーク 120と、 サイ ト制御装置 1 30 a〜cと、 バススィツチ 140と、 同期モジュール 150 a〜b と、 同期接続モジュール 160 a〜bと、 試験モジュール 170 a〜bと、 ロード ボード 180と、 試験エミュレート装置 1 90とを備え、 DUT 100 a〜bに接 続される。
システム制御装置 1 10は、 試験装置 10が DUT 100 a〜bの試験に用いる 試験制御プログラム、 試験プログラム、 及ぴ試験データ等を外部のネットワーク等 を介して受信し、格納する。通信ネットワーク 1 20は、システム制御装置 1 10、 サイト制御装置 1 30 a〜 c、 及ぴ試験ェミュレ一ト装置 1 90を接続し、 これら の間の通信を中継する。
サイト制御装置 1 30 a〜 cは、 本発明に係る制御装置の一例であり、 DUT 1 00の試験を制御する。 ここで、 複数のサイ 制御装置 1 30は、 それぞれ一の D UT 100の試験を制御する。 例えば、 図 1においては、 サイト制御装置 130 a は DUT 100 aの試験を制御し、 サイト制御装置 130 bは DUT l O O bの試 験を制御する。 これに代えて、 複数のサイト制御装置 1 30は、 それぞれ複数の D UT 100の試験を制御してもよい。
より具体的には、 サイト制御装置 1 30は、 通信ネットワーク 1 20を介してシ ステム制御装置 1 10から試験制御プログラムを取得し実行する。 次に、 サイト制 御装置 1 30は、 試験制御プログラムに基づいて、 当該 DUT 100の試験に用い る試験プログラム及び試験データをシステム制御装置 1 10から取得し、 パススィ ツチ 140を介して当該 DUT 100の試験に用いる同期モジュール 1 50及び 1 又は複数の試験モジュール 1 70等のモジュールに格納する。 次に、 サイト制御装 釁 1 30は、 試験プロダラム及び試験データに基づく試験の開始をバススィツチ 1 40を介して同期モジュール 150に指示する。そして、サイト制御装置 1 30は、 試験が終了したことを示す割込み等を例えば同期モジュール 1 50から受信し、 試 験結果に基づいて次の試験を各モジュールに行なわせる。
バススィツチ 140は、 複数のサイト制御装置 130のそれぞれを、 当該サイト 制御装置 130が制御する同期モジュール 1 50及び 1又は複数の試験モジュール 1 70に接続し、 これらの間の通信を中継する。 ここで、 予め定められた一のサイ ト制御装置 1 30は、 試験装置 10の使用者や試験制御プログラム等の指示に基づ いて、 複数のサイト制御装置 130のそれぞれを、 当該サイト制御装置 1 30が D UT 100の試験に用いる同期モジュール 1 50及ぴ 1以上の試験モジュール 1 7 0に接続させるベくバススィツチ 140を設定してよい。例えば、図 1においては、 サイト制御装置 130 aは、 同期モジュール 150 a及ぴ複数の試験モジュール 1 70 aに接続する様に設定され、 これらを用いて DUT 100 aの試験を行なう。 また、 サイト制御装置 1 30 bは、 同期モジュール 1 50 b及ぴ複数の試験モジュ ール 1 70 bに接続する様に設定され、 これらを用いて DUT 100 bの試験を行 なう。
ここで、 サイト制御装置 130 bが同期モジュール 150 b、 同期接続モジユー ノレ 160 b、 及び 1又は複数の試験モジュール 1 70 bを用いて DUT 100 bを 試験するための構成及び動作は、 サイト制御装置 130 aが同期モジュール 1 50 a、 同期接続モジュール 160 a、 及び 1又は複数の試験モジュール 1 70 aを用 いて DUT 100 aを試験するための構成及ぴ動作と略同様であるため、 以下相違 点を除きサイト制御装置 1 30 aが DUT l O O aを試験するための構成及ぴ動作 を中心に説明する。
同期モジュール 1 50 aは、 サイト制御装置 1 30 aの指示に基づいて、 DUT 100 aの試験に用いる複数の試験モジュール 1 70 aが試験信号を生成すべき試 験信号生成タイミングを生成する。 また、 同期モジュール 150 aは、 同期接続モ ジュール 160 aを介して 1又は複数の試験モジュール 1 70 aから試験結果を受 信し、 試験結果の良否に対応した試験プログラムのシーケンスを 1又は複数の試験 モジュール 170 aに実行させる。
• 同期接続モジュール 1 60 aは、 同期モジュール 1 50 aが生成した試験信号生 成タイミングを、 当該試験信号生成タイミングに対応して動作させるべき試験モジ ユール 170 aに通知し、 1又は複数の試験モジュール 170 aのそれぞれを指定 したタ.ィミングで動作させる。 また、 同期接続モジュール 160 aは、 1又は複数 の試験モジュール 1 70 aから試験結果を受信し、 同期モジュール 150 aに送信 する。
複数の試験モジュール 170 aは、 DUT 100 aが有する複数の端子の一部ず つにそれぞれ接続され、 サイト制御装置 130 aにより格納された試験プログラム 及ぴ試験データに基づいて DUT 100 aの試験を行なう。 DUT 100 aの試験 において、 試験モジュール 1 70 aは、 試験プログラムにより定められたシーケン スに基づいて試験データから試験信号を生成し、 当該試験モジュール 170 aに接 続された DUT 100 aの端子に試験信号を供給する。 次に、 試験モジュール 1 7 0 aは、 DUT 100 aが試験信号に基づいて動作した結果出力する結果信号を取 得し、 期待値と比較する。 そして、 試験モジュール 1 70 aは、 結果信号と期待値 との比較結果を、 試験結果として同期接続モジュール 160 aに送信する。 ここで 複数の試験モジュール 1 70 aは、 試験プログラム及ぴ試験データに基づいて、 試 験信号のサイクル周期を動的に変化させるため、 異なるサイクル周期に基づいて試 験信号を生成する。
また、 試験モジュール 1 70 aは、 試験プログラムの処理が完了した择合や、 試 験プログラムの実行中に異常が生じた場合等において、 サイト制御装置 1 30 aに 対して割込みを発生する。 この割込みは、 バススィツチ 140を介して当該試験モ ジュール 170 aに対応するサイト制御装置 130 aに通知され、 サイト制御装置 1 30 aが有するプロセッサにより割込み処理が行われる。
ロードボ一ド 180は、 複数の DUT 100を載置し、 複数の試験モジュール 1 70を対応する DUT 100の端子に接続する。
試験 ミュレート装置 1 90は、 システム制御装置 1 10に格納された試験制御 プログラム、 試験プログラム、 及び試験データ.に基づいて試験装置 10をエミユレ ートし、 DUT 100のシミュレーションモデルを用いて DUT 1 00の試験を擬 似的に行なう。 本実施形態において、 試験エミュレート装置 190は、 一のサイト 制御装置 130と、 当該サイト制御装置 1 30により制御される同期モジュール 1 50、 同期接続モジュール 1 60、 及び 1又は複数の試験モジュール 170と、 当 該サイト制御装置 130による試験対象となる DUT100の動作を擬似的に行な う。 試験エミュレート装置 1 90を用いることにより、 試験装置 10の使用者は、 DUT 100、 同期モジュール 1 50、 同期接続モジュール 160、 及び/又は試 験モジュール 170等の実物を準備していない段階で、 試験制御プログラム、 試験 プログラム、 及び Z又は試験データの検証を開始することができる。 また、 試験ェ ミュレ一ト装置 190を複数用意することにより、 複数の使用者のそれぞれがより 高価な実試験環境を占有することなく、 試験制御プログラム、 試験プログラム、 及 び Z又は試験データを開発することができる。
以上において、 試験装置 10は、 オープンアーキテクチャにより実現され、 ォー プンアーキテクチャ規格を満たす各種のモジュールを使用することができる。 そし て、 試験装置 10は、 同期モジュール 150、 同期接続モジュール 160、 及ぴ試 験モジュール 170等のモジュールを、 バススィッチ 140が有する任意の接続ス ロットに挿入して使用することができる。 この際、 試験装置 10の使用者等は、 例 えばサイト制御装置 130 aを介してバススィツチ 140の接続形態を変更し、 D UT 100の試験に用いる複数のモジュールを、 当該 DUT 100の試験を制御す るサイト制御装置 130に接続させることができる。 これにより、 試験装置 10の 使用者は、 複数の DUT 100のそれぞれの端子数、 端子の配置、 端子の種類、 又 は試験の種類等に応じて適切なモジュールを選択し、 試験装置 10に実装すること ができる。
なお、 以上に代えて、 同期接続モジュール 160 a及び同期接続モジュール 16 O bは、 試験装置 10に用いられる全ての試験モジュール 1 70に共通して設けら れた一の同期接続部により実現されてもよい。 この場合において、 試験装置 10の 使用者等は、 バススィッチ 140の接続形態の変更と共に同期接続部と試験モジュ ール 1 70との接続形態を変更することにより、 複数の DUT100の特性に応じ て適切なモジュールを選択することができる。 図 2は、本発明の実施形態に係る試験ェミュレート装置 1 9 0の機能構成を示す。 試験エミュレート装置 1 9 0は、 サイ ト制御エミュレート部 2 3 0と、 バススィッ チエミュレート部 2 4 0と、 同期モジュールエミュレート部 2 5 0と、 同期接続モ ジュールェミュレート部 2 6 0と、 1又は複数の試験モジュールェミュレ一ト部 2 7 0と、 D U T接続部 2 8 0と、 D U Tシミュレート部 2 0 0と、 スケジュール制 御部 2 7 5とを有する。 以下、 試験ェミュレート装置 1 9 0が、 サイト制御装置 1 3 0 aによる D U T 1 0 0 aの試験をエミュレートする場合を例に説明を行なう。 サイ ト制御ェミュレート部 2 3 0は、 図 1に示したサイ ト制御装置 1 3 0 aをェ ミュレートする。 すなわち、 サイト制御エミュレート部 2 3 0は、 通信ネットヮー ク 1 2 0を介してシステム制御装置 1 1 0から試験制御プログラムを取得し実行す る。 次に、 サイト制御エミュレート部 2 3 0は、 試験制御プログラムに基づいて D U T 1 0 0 aの試験に用いる試験プログラム及び試験データをシステム制御装置 1 1 0力、ら取得し、 バススィッチエミュレート部 2 4 0を介して同期モジュールエミ ュレート部 2 5 0及ぴ 1又は複数の試験モジュールエミュレート部 2 7 0等のモジ ュールェミュレート部に格納する。
ここで、 サイ ト制御ェミュレート部 2 3 0は、 サイト制御装置 1 3 0 aが同期モ ジュール 1 5 0 a及び 1又は複数の試験モジュール 1 Ί 0 aに対して発行する、 当 該モジュール内の記憶領域への読出アクセス、 書込アクセス等のコマンドをバスス イッチエミュレート部 2 4 0に対して擬似的に発行する。 サイト制御ェミュレート 部 2 3 0は、 試験プログラム及び試験データの書込アクセスをバススィッチエミュ レート部 2 4 0に対して擬似的に発行することにより、 バススィッチエミュレート 部 2 4 0を介して同期モジュールエミユレ一ト部 2 5 0及ぴ 1又は複数の試験モジ ユールエミユレ一ト部 2 7 0等に試験プログラム及ぴ試験データを格納してよい。 また、 サイ ト制御エミュレート部 2 3 0は、 同期モジュールエミュレート部 2 5 0及ぴ試験モジュールェミュレ一ト部 2 7 0が擬似的に発生する割込みをバススィ ツチエミュレート部 2 4 0を介して受信し、 サイト制御装置 1 3 0 aの割込み処理 を擬似的に実行する。 バススィツチエミュレート部 2 4 0は、 図 1に示したバススィツチ 1 4 0をエミ ュレートし、 サイト制御エミュレート部 2 3 0と、 同期モジュールエミュレート部 2 5 0及ぴ 1又は複数の試験モジュールエミユレ一ト部 2 7 0との間の通信を中継 する。
同期モジュールエミュレート部 2 5 0は、 図 1に示した同期モジュール 1 5 0を エミュレートし、 サイ ト制御エミュレート部 2 3 0からの指示に基づき複数の試験 モジュールェミュレート部 2 7 0のそれぞれが、 当該試験モジュールェミュレート 部 2 7 0のサイクル時間に対応する試験信号を擬似的に生成すべき試験信号生成タ イミングを生成する。 次に、 同期モジュールエミュレート部 2 5 0は、 試験信号を 生成した当該試験モジュールエミュレート部 2 7 0からサイクル時間の終了タイミ ングであるサイクル終了タイミングを受信する。 そして、 同期モジュールエミユレ ート部 2 5 0は、 サイクル終了タイミングに基づき、 当該試験モジュールエミユレ ート部 2 7◦が次に試験信号を生成すべき試験信号生成タイミング、 当該試験モジ ユールェミュレート部 2 7 0から試験結果を収集する試験結果収集タイミング、 当 該試験モジュールエミュレート部 2 7 0にサイクル時間の処理を終了させるサイク ル終了処理タイミング、 及び、 当該試験モジュールエミュレート部 2 7 0からサイ ト制御エミュレート部 2 3 0に対する割込みを収集する割込み収集タイミングを生 成する。 ここで、 試験モジュールエミュレート部 2 7 0からサイト制御エミユレ一 ト部 2 3 0に対する割込みとは、 複数の試験モジュールェミュレート部 2 7 0のそ れぞれが、 試験信号生成タイミングに対応するサイクル時間における試験信号の生 成において擬似的にサイト制御装置 1 3 0 aに対して発生する割込みである。
同期接続モジュールエミユレ一ト部 2 6 0は、 図 1に示した同期接続モジュール 1 6 0をエミュレートし、 同期モジュールエミュレート部 2 5 0が擬似的に生成し た試験信号生成タイミング、 及ぴ、 同期モジュールェミュレート部 2 5 0がェミュ レーションのために生成した試験結果収集タィミング、 サイクル終了処理タイミン グ、 及ぴ割込み収集タイミングをスケジュール制御部 2 7 5に通知する。 また、 同 期接続モジュールェミュレート部 2 6 0は、 1又は複数の試験モジュールェミュレ ート部 2 7 0から試験結果を受信し、 同期モジュールエミュレート部 2 5 0に送信 する。 試験モジュールェミュレート部 2 7 0は、 試験信号生成の指示を受けた同期モジ ユールエミュレート部 2 5 0からサイクル開始の指示を受け、 サイト制御エミユレ ート部 2 3 0により格納された試験プログラム及ぴ試験データに基づいて、 当該試 験信号生成タイミングに対応するサイクル時間における試験信号を擬似的に生成す る。 より具体的には、 試験モジュールェミュレート部 2 7 0は、 試験信号生成タィ ミングに対応するサイクル時間における試験信号の生成において、 当該サイクル時 間中における試験信号の変化タイミングを擬似的に生成する。 ここで、 試験モジュ ールェミュレート部 2 7 0は、 試験信号の変化タイミングとして、 当該試験モジュ ールェミュレ一ト部 2 7 0に対応する試験モジュール 1 7 0の仕様により定められ た数の変化タイミングを、 一のサイクル時間に対応して生成してもよい。 また、 試 験モジュールエミュレート部 2 7 0は、 D U Tシミュレート部 2 0 0が試験信号に 基づいて擬似的に動作した結果出力する出力信号を取得し、 試験プログラム及ぴ試 験データに基づき定められた期待値と比較する。 そして、 試験モジュールエミユレ ート部 2 7 0は、 結果信号と期待値との比較結果を、 試験結果として同期接続モジ ユールエミユレ一ト部 2 6 0を介して同期モジュールエミユレ一ト部 2 5 0に送信 する。
また、 試験モジュールエミュレート部 2 7 0は、 スケジュール部 2 7 7から割込 み発生の指示を受けて、 割込み発生の指示を受ける前に最後に試験信号を生成した サイクル時間中において擬似的に発生した割込みを、 バススィツチエミュレート部 2 4 0を介してサイト制御エミュレート部 2 3 0に通知する。
D U T接続部 2 8 0は、 複数の試験モジュールエミユレ一ト部 2 7 0により生成 された複数の変化タイミングを取得し、 複数の変化タイミングに基づいて、 試験信 号を時刻順に擬似的に変化させる。
D U Tシミュレ一ト部 2 0 0は、 例えば V e r i 1 o g一 HD Lや VHD L等の ハードウエア記述言語により記述された D U T 1 0 0の動作を、 D U T接続部 2 8 0から取得した試験信号に基づきシミュレートする。 そして、 D U Tシミュレート 部 2 0 0は、 D U T 1 0 0が試験信号に基づいて動作した結果出力する結果信号を シミュレーションにより生成し、 D U T接続部 2 8 0を介して試験モジュールエミ ユレ一ト部 2 7 0に供給する。 スケジュール制御部 2 7 5は、 同期モジュールェミュレート部 2 5 0、 同期接続 モジユーノレェミュレート眘 2 6 0、 複数の試験モジユーノレェミュレート音 2 7 0、 及ぴ D U T接続部 2 8 0による D U T 1 0 0の擬似的な試験において、 これらの複 数のモジュールエミュレート部が生成する各種のタイミングに基づいて、 それぞれ のモジュールエミュレート部を動作させるスケジュールを制御する。 スケジュール 制御部 2 7 5は、 タイミング整列部 2 7 6と、 スケジュール部 2 7 7とを含む。 タイミング整列部 2 7 6は、 同期モジュールェミュレート部 2 5 0が生成した複 数の試験信号生成タイミング、 複数の割込み収集タイミング、 複数のサイクル終了 処理タイミング、 及ぴ複数の試験結果収集タイミングと、 1又は複数の試験モジュ ールエミュレート部 2 7 0により生成され、 D U T接続部 2 8 0により供給された 複数の変化タイミングを、時刻順に整列して順次スケジュール部 2 7 7に出力する。 スケジュール部 2 7 7は、 タイミング整列部 2 7 6が順次出力するそれぞれのタイ ミングを、 当該タイミングに対応するモジュールエミュレート部や D U T接続部 2 8 0に通知し、 モジュールエミュレート部又は D U T接続部 2 8 0に当該タイミン グに対応する動作を行わせる。 以下に、 タイミング整列部 2 7 6が出力したタイミ ングの種類に応じたスケジュール部 2 7 7の動作を説明する。
( 1 ) タイミング整列部 2 7 6が試験信号生成タイミングを出力した場合 スケジュール部 2 7 7は、 当該試験信号生成タイミングを同期モジュールエミュ レート部 2 5 0に通知し、 当該試験信号生成タイミングに対応する試験モジュール エミュレート部 2 7 0による試験信号の生成を同期モジュールエミュレート部 2 5 0を介して指示する。 これにより、 スケジュール部 2 7 7は、 同期モジュールエミ ュレート部 2 5 0を介して、 当該試験信号生 タイミングに対応する試験モジユー ルエミュレート部 2 7 0に、 当該試験信号生成タイミングに対応するサイクル時間 における試験信号を擬似的に生成させる。
( 2 ) タイミング整列部 2 7 6が割込み収集タイミングを出力した場合 スケジュール部 2 7 7は、 当該割込み収集タイミングに対応して指定された試験 モジュールエミュレート部 2 7 0に割込みの発生を指示する。 これにより、 スケジ ユール部 2 7 7は、 当該試験モジュールェミュレート部 2 7 0に、 当該割込み収集 タイミングの直前に試験信号を生成したサイクル時間において擬似的に発生した割 込みを、 バススィツチエミュレート部 2 4 0を介してサイト制御エミュレート部 2 3 0に対して通知させる。
( 3 ) タイミング整列部 2 7 6がサイクル終了処理タイミングを出力した場合
- スケジュール部 2 7 7は、 当該サイクル終了処理タイミングに対応する試験モジ ユールエミュレート部 2 7 0に、 サイクル終了タイミングが到達したことを通知す る。 ·
( 4 ) タイミング整列部 2 7 6が試験結果収集タイミングを出力した場合 スケジュール部 2 7 7は、 当該試験結果収集タイミングに対応する試験モジユー ルェミュレート部 2 7 0に、 試験結果収集タイミングが到達したことを通知する。 これを受けて、 当該試験モジュールエミュレート部 2 7 0は、 当該サイクル時間に おける結果信号と期待値との比較結果を同期接続モジュールエミュレート部 2 6 0 を介して同期モジュールエミユレ一ト部 2 5 0に通知する。
( 5 ) タイミング整列部 2 7 6が変化タイミングを出力した場合
D U T接続部 2 8 0は、 複数の試験モジュールエミュレート部 2 7 0から取得し た複数の変化タイミングをタイミング整列部 2 7 6に供給する。 これを受けてタイ ミング整列部 2 7 6は、 複数の変化タイミングと、 他の各種タイミングとを合わせ て時刻順に整列する。
タイミング整列部 2 7 6が変化タイミングを出力すると、 スケジュール部 2 7 7 は、 当該変化タイミングに試験信号を擬似的に変化させるベく、 017丁接続部2 8 0に変化タイミングが到達したことを通知する。 これを受けて、 011丁接続部2 8 0は、 当該変化タイミングに試験信号を擬似的に変化させる。
ここで、 試験モジュールエミュレート部 2 7 0は、 結果信号を取得すべきタイミ ングである結果信号取得タイミングをスケジュール制御部 2 7 5に通知し、 他の各 種タイミングと併せてタイミング整列部 2 7 6により時刻順に整列させてもよい。 この場合、 スケジュール部 2 7 7は、 タイミング整列部 2 7 6が結果信号取得タイ ミングを出力した場合に、 D U T接続部 2 8 0に、 当該結果信号取得タイミングに おいて、 当該結果信号を取得すベき試験モジュールェミュレ一ト部 2 7 0に結果信 号を供給させてもよい。
また、 011丁接続部2 8 0は、 複数の試験モジュールエミュレート部 2 7 0によ り生成された複数の変化タイミングを取得し、 時刻順に整列することなく DUTシ ミュレート部 200に供給してもよレ、。この場合、 DUTシミュレート部 200は、 供給された複数の変化タィミングを時刻順に整列し、 整列した複数の変化タイミン グに基づき DUT 100のシミュレ一ションを行なってよい。
以上に示した試験エミュレート装置 1 90によれば、 同期モジュールエミユレ一 ト咅 250、 同期接続モジュールェミュレート部 260、 及び 1又は複数の試験モ ジュールエミユレ一ト部 270を、 試験装置 10の実機における同期モジュール 1 50、 同期接続モジュール 160、 及び 1又は複数の試験モジュール 1 70にそれ ぞれ対応して設けることにより、 これらのモジュールエミュレート部を他のモジュ ールエミュレート部に容易と置換することができる。 これにより、 例えば試験装置 10の実機において一のモジュールを他のモジュールに変更した場合に、 試験エミ ュレート装置 190において当該一のモジュールに対応するモジュールエミユレ一 ト部を、 他のモジュールに対応するモジュールエミュレート部に置換し、 試験装置 10の実機と略同一の試験環境を試験エミュレート装置 1 90上で提供することが できる。
なお、 以上に代えて、 サイト制御エミュレート部 230、 バススィツチエミュレ ート部 240、 同期モジュールェミュレート部 250、 試験モジュールェミュレ一 ト部 270、 スケジュール制御部 275、 011丁接続部280、 及ぴ DUTシミュ レート部 200は、 サイト制御装置 130等の 1台のコンピュータにより実現され てもよく、 複数のコンピュータによる分散システムにより実現されてもよい。 図 3は、 本発明の実施形態に係る試験ェミュレート装置 190のハードウ ァ構 成の一例を示す。本実施形態に係る試験ェミュレ一ト装置 1 90は、 CPU300、 ROMS 10、 RAM320、 通信インターフェイス 330、 ハードディスク · ド ライブ 340、 フレキシブルディスク · ドライブ 350、 及ぴ CD— ROMドライ ブ 360を備えるコンピュータ 20により実現される。
C P U 300は、 ROM 310及び RAM 320に格納されたプログラムに基づ いて動作し、 各部の制御を行う。 ROM310は、 コンピュータ 20の起動時に C' PU300が実行するブートプログラムや、 コンピュータ 20のハードウエアに依 存するプログラム等を格納する。 RAM320は、 CPU 300が実行するプログ ラム及び CPU 300が使用するデータ等を格納する。 通信インターフェイス 33 0は、 通信ネッ トワークを介して他の装置と通信する。 ハードディスク · ドライブ 340は、 コンピュータ 20が使用するプログラム及ぴデータを格納し、 RAM3 20を介して CPU 300に供給する。フレキシブルディスク ·ドライブ 350は、 フレキシブルディスク 390からプログラム又はデータを読み取り、 RAM 320 に提供する。 CD-R OMドライブ 360は、 CD-ROM395からプログラム 又はデータを読み取り、 RAM 320に提供する。
RAM320を介して CPU 300に提供されるプログラムは、 フレキシブルデ イスク 390、 CD— R OM 395、 又は I Cカード等の記録媒体に格納されて禾 lj 用者によって提供される。 プログラムは、 記録媒体から読み出され、 RAM320 を介してコンピュータ 20にインストールされ、 コンピュータ 20において実行さ れる。
コンピュータ 20にインス トールされて実行され、 コンピュータ 20を試験エミ ュレート装置 1 90として機能させるプログラムモジュールは、 DUTシミュレ一 トモジュールと、 サイト制御エミュレートモジユーノレと、 ノ ススィッチエミユレ一 トモジユーノレと、 同期モジュールエミュレートモジユーノレと、 同期接続モジユーノレ エミュレートモジユーノレと、 試験モジユーノレエミュレートモジユーノレと、 スケジュ ール制御モジュールと、タイミング整列モジュールと、スケジュールモジュールと、 DUT接続モジュールとを含む。 これらのプログラム又はモジュールは、 コンビュ ータ 20を、 DUTシミュレート部 200、 サイ ト制御エミュレート部 230、 バ ススィッチエミュレート部 240、 同期モジュールエミュレート部 250、 同期接 続モジュールエミュレート部 260、 試験モジュールエミュレート部 270、 スケ ジュール制御部 275、 タイミング整列部 276、 スケジュール部 277、 及ぴ D UT接続部 280としてそれぞれ機能させる。
以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。 記録媒体としては、 フレキシブルディスク 390、 CD— ROM 395の他に、 D VDや PD等の光学記録媒体、 MD等の光磁気記録媒体、 テープ媒体、 I Cカード 等の半導体メモリ等を用いることができる。 また、 専用通信ネットワークやインタ ーネットに接続されたサーバシステムに設けたハードディスク又は R AM等の記憶 装置を記録媒体として使用し、 通信ネットワークを介して外部のネットワークから プログラムをコンピュータ 2 0に提供してもよい。 · 図 4は、 本発明の実施形態に係る試験モジュールェミュレ一ト部 2 7 0の機能構 成を示す。 図 4において、 試験モジュールェミュレート部 2 7 0は、 当該試験モジ ユールエミュレ一ト部 2 7 0に対応する試験モジュールェミュレ一トプログラム又 は試験モジュールェミュレ一トモジュールをコンピュータ 2 0で動作させることに より実現される。
試験モジュールェミュレート部 2 7 0は、 試験モジュール 1 7 0がサイ ト制御装 置 1 3 0からバススィッチ 1 4 0を介して受信する複数のコマンドのそれぞれに対 応して設けられた複数のハードウエアエミュレート関数と、 試験モジュールエミュ レート部 2 7 0に各種のタイミングを通知する目的で呼び出される制御関数とを有 し、 バススィツチエミュレート部 2 4 0及ぴスケジュール制御部 2 7 5からこれら の関数に対する呼び出しを受けて動作する。 ここで、 制御関数は、 スケジュール制 御部 2 7 5力 試験信号生成タイミングに対応するサイクル時間における試験信号 を擬似的に生成させるため、 及ぴ、 割込み収集タイミングの直前に試験モジュール エミュレート部 2 7 0が試験信号を生成したサイクル時間において擬似的に発生し た割込みをサイト制御エミュレート部 2 3 0に対して通知させるため等に用いられ る。
試験モジュールエミュレート部 2 7 0は、 試験モジュール I Fエミュレート部 4 0 0 (試験モジュールインターフェイスエミュレート部) と、 パターン発生器エミ ュレート部 4 3 0と、 波形整形器ェミュレート部 4 4 0と、 ピン制御ェミュレート 部 4 5 0と、 パラメータ測定エミユレ一ト部 4 6 0とを含む。
試験モジュール I Fエミュレート部 4 0 0は、 バススィツチエミュレート部 2 4 0からハードウエアエミュレート関数の呼び出しを受けた場合、 及ぴスケジュール 制御部 2 7 5から制御関数の呼び出しを受けた場合に起動され、 これらの関数呼ぴ 出しに対応する試験モジュールエミュレート部 2 7 0の動作を制御する。 試験モジ ユール I Fエミュレート部 4 0 0は、 マシンワード D B 4 2 0と、 制御関数処理部 4 1 0とを含む。
マシンワード D B 4 2 0は、 試験モジュール 1 7 0に設けられた記憶領域に格納 される記憶領域をェミュレ一卜し、 ハードウエアエミュレート関数の呼び出しによ りサイト制御エミュレート部 2 3 0からバススィツチエミュレート部 2 4 0を介し てコマンドを擬似的に受け取った場合に、 当該コマンドに対応してマシンワード D B 4 2 0内の記憶領域をアクセスする。
より具体的には、本実施形態に係る試験モジュール I Fエミュレート部 4 0 0は、 読出しアクセスや書込みアクセス等の複数のコマンドに対応する試験モジュールェ ミュレート部 2 7 0の動作をそれぞれェミュレートする複数のハードウエアエミュ レート関数を実装する。 バススィッチエミュレート部 2 4 0を介してサイト制御ェ ミュレート部 2 3 0から読出しアクセスを受け取ると、 試験モジュール I Fエミュ レート部 4 0 0は、 当該読出しアクセスの対象となる記憶領域に対応するマシンヮ ード D B 4 2 0内のデータをバススィッチエミュレート部 2 4 0を介してサイト制 御エミュレート部 2 3 0に返信する。 また、 書込みアクセスを受け取ると、 マシン ワード D B 4 2 0は、 当該書込みアクセスの対象となる記憶領域に対応するマシン ワード D B 4 2 0内の記憶領域に、 書込み対象のデータを格納する。 例えば、 マシ ンワード D B 4 2 0は、 バススィッチエミュレート部 2 4 0を介してサイト制御ェ ミュレート部 2 3 0から試験プログラム又は試験データの書込みアクセスを受け取 ると、 当該書込みアクセスに対応するマシンワード D B 4 2 0内の記憶領域にこれ らの試験プログラム又は試験データを格納する。
制御関数処理部 4 1 0は、 スケジュール制御部 2 7 5から制御関数の呼び出しを 受けた場合に、 当該制御関数に対応してパターン発生器エミュレート部 4 3 0、 波 形整形器ェミュレート部 4 4 0、 ピン制御ェミュレート部 4 5 0、 及ぴパラメータ 測定ェミュレート部 4 6 0を動作させ、 当該制御関数の指示に対応する試験モジュ ール 1 7 0の動作をェミュレ一トする。 より具体的には、 スケジュール制御部 2 7 5が制御関数を用いて試験信号生成タイミングに対応するサイクル時間における試 験信号の生成を指示すると、 制御関数処理部 4 1 0は、 マシンヮード D B 4 2 0に 格納された試験プログラム及ぴ試験データのうち、 当該サイクル時間中に試験モジ ユールエミュレート部 2 7 0が処理すべきプログラム部分及びデータ部分を読み出 し、 これらのプロダラム部分及ぴデータ部分に対応する処理をパターン発生器ェミ ュレート部 4 3 0、 波形整形器ェミュレート部 4 4 0、 ピン制御ェミュレート部 4 5 0、 及びパラメータ測定ェミュレ一ト部 4 6 0に行なわせる。
■ パターン発生器エミュレート部 4 3 0は、 試験モジュール 1 7 0が有するパター ン発生器をエミュレートする。すなわち、パターン発生器エミュレート部 4 3 0は、 マシンワード D B 4 2 0に格納された試験プログラム及び試験データを、 例えば関 数呼び出しにより制御関数処理部 4 1 0から受信し格納する。 そして、 あるサイク ル時間について試験信号を生成すべきことを示す指示を、 スケジュール制御部 2 7 5から制御関数処理部 4 1 0を介して例えば関数呼び出しにより受け取り、 当該サ イタル時間中に発生すべき試験信号を擬似的に生成する。
また、 パターン発生器エミュレート部 4 3 0は、 D U Tシミュレート部 2 0 0が 試験信号に基づいて動作した結果擬似的に出力する結果信号を D U T接続部 2 8 0 及ぴ波形整形器ェミュレート部 4 4 0を介して取得し、 期待値との比較を行なう。 波形整形器ェミュレート部 4 4 0は、 試験モジュール 1 7 0が有する波形整形器 をエミュレートする。 すなわち、 波形整形器エミュレート部 4 4 0は、 パターン発 生器ェミュレート部 4 3 0から試験信号を受けて、 試験信号の波形を擬似的に整形 し、 D U T接続部 2 8 0へ出力する。
ピン制御ェミュレート部 4 5 0は、 試験モジュール 1 7 0が有するピン制御部を エミュレートする。 すなわち、 ピン制御エミュレート部 4 5 0は、 試験プログラム に基づいて、 波形整形器エミュレート部 4 4 0及ひン又はパラメータ測定エミュレ ート部 4 6 0が試験信号を擬似的に出力する各端子に、 動作電圧等のパラメータを
SX £ Γ 。
パラメータ測定エミュレート部 4 6 0は、 試験モジュール 1 7 0が有するパラメ ータ測定部をエミュレートする。 すなわち例えば、 パラメータ測定エミュレート部 4 6 0は、 関数呼び出しにより直流試験 (D Cパラメトリック試験) の指示を、 ス ケジュール制御部 2 7 5から制御関数処理部 4 1 0を介して受け取り、 直流試験に おいて当該サイクル時間中に発生すべき試験信号を擬似的に生成する。 また、 パラ メータ測定ェミュレート部 4 6 0は、 D U Tシミュレート部 2 0 0が直流試験にお いて試験信号に基づいて動作した結果擬似的に出力する結果信号を取得する。 また、 制御関数処理部 4 1 0は、 試験信号生成タイミングに対応するサイクル時 間における試験信号を試験モジュールエミュレート部 2 7 0が生成した場合、 当該 試験信号生成タイミングに対応するサイクルが終了するサイクル終了タイミングを 同期モジュールエミユレ一ト部 2 5 0に通知する。
以上において、 制御関数処理部 4 1 0は、 試験信号生成タイミングに対応するサ イタル時間における試験信号の生成において、 当該サイクルが終了するサイクル終 了タイミングをスケジュール制御部 2 7 5を介して同期モジュールエミュレート部 2 5 0に通知してもよい。 これにより、 制御関数処理部 4 1 0は、 同期モジュール エミュレート部 2 5 0に、 当該サイクル終了タイミングに基づき試験モジュールェ ミュレート部 2 7 0が次に試験信号を擬似的に生成すべき試験信号生成タイミング を更に生成させることができる。
また、 制御関数処理部 4 1 0は、 スケジュール制御部 2 7 5から割り込み発生の 指示を受けた場合、 例えば関数呼び出しにより割込み発生の指示をパターン発生器 エミュレート部 4 3 0、 波形整形器ェミュレート部 4 4 0、 及ぴピン制御ェミュレ 一ト部 4 5 0に送信する。 割込み発生の指示を受けたパターン発生器エミュレート 部 4 3 0、 波形整形器ェミュレート部 4 4 0、 及ぴピン制御ェミュレート部 4 5 0 は、 試験モジュールェミュレート部 2 7 0が試験信号を生成した各サイクル時間の うち、 当該割込み収集タイミングの直前のサイクル時間において擬似的に発生した 割込みを制御関数処理部 4 1 0に通知する。 制御関数処理部 4 1 0は、 割込みの通 知を受けると、 例えばバススィッチエミュレート部 2 4 0が有する割込み通知用の ハードウエアエミュレート関数を呼び出すことにより、 バススィツチエミュレート 部 2 4 0を介してサイト制御エミユレ一ト部 2 3 0に割込みを通知する。 図 5は、 本発明の実施形態に係るクラス階層構造 5 0 0の一例を示す。 本実施形 態において、 同期モジュールエミュレート部 2 5 0、 同期接続モジュールエミユレ ート部 2 6 0、 及び試験モジュールェミュレート部 2 7 0等のモジュールエミュレ 一ト部を実現するモジュールエミュレートプログラムは、 試験装置 1 0のオープン アーキテクチャを擬似的に実現するために定められたモジュールエミユレ一トプロ グラムの枠組みであるクラス関数を用いて作成される。 シミュレーションコンポーネントクラス 5 10は、 モジユーノレエミュレートプロ グラムが備えるべき複数のメソッド関数のパラメータや戻り値等の呼び出し規則を 仮想メソッド関数により定義するクラスである。 シミュレーションコンポーネント クラス 510は、 複数の仮想ハードウエアエミュレート関数 512と、 複数の仮想 制御関数 514とを有する。
' ここで、 r e a d () は、 サイト制御エミュレート部 230が読出アクセスコマ ンドを擬似的に発行する場合に呼び出される、 読出アクセスに対応するモジュール の動作をェミュレートするメソッド関数である。 wr i t e () は、 サイト制御ェ ミュレート部 230が書込アクセスコマンドを擬似的に発行する場合に呼び出され る、 書込アクセスに対応するモジュールの動作をエミュレートするメソッド関数で ある。 s e t B a s eAd d r e s s () は、 試験モジュール 1 70が有する記憶 領域のベースァドレスを設定する際にサイト制御装置 130が発行するベースァド レス設定コマンドを、 サイト制御ェミュレート部 230が擬似的に発行する場合に 呼び出されるメソッド関数である。
r e g i s t e r Ev e n t () は、 同期モジュールエミュレート部 250力 ら
_、 の通知を受けた同期接続モジュールエミュレート部 26◦、 試験モジュールェ ュ レート部 270、 及び DUT接続部 280が、 割込み収集タイミング、 変化タイミ ング、 及び結果信号取得タイミング等をタイミング整列部 276に通知し登録する 場合に呼び出されるメソッド関数である。 h a n d 1 e E V e n t () は、 試験信 号生成タイミング、 割込み収集タイミング、 変化タイミング、 及ぴ結果信号取得タ イミングに到達したとき等に、 同期モジュールエミュレート部 250、 同期接続モ ジュールエミュレート部 260、 試験モジュールエミュレート部 270、 及ぴ DU T接続部 280にこれらのタイミングに対応する処理を行なわせるためにスケジュ ール制御部 275により呼び出されるメソ Vド関数である。 r a i s e E V e n t 0 は、 同期モジュールエミュレート部 250、 同期接続モジュールエミュレート 部 260、 試験モジュールエミュレート部 270、 及ぴ DUT接続部 280が、 タ ィミングに関わりなく非同期に処理すべきイベントをスケジュール制御部 275に 通知する場合に呼び出されるメソッド関数である。
A社モジュールクラス 520及ぴ B社モジュールクラス 530は、 シミュレーシ ョンコンポーネントクラス 510から派生されたクラスであり、 例えばモジュール を提供する製造業者等により提供される、 当該製造業者のモジュールが共通して備 える共通機能をエミユレ一トするモジュールエミユレ一トプログラムである。 A社 モジュールクラス 520及ぴ B社モジュールクラス 530は、 それぞれ複数の実ハ 一ドウヱァエミュレート関数 522と、 複数の実制御関数 524とを有する。 複数 の実ハードウエアエミュレート関数 522及び複数の実制御関数 524のそれぞれ は、 複数の仮想ハードウヱァエミュレート関数 51 2及ぴ複数の仮想制御関数 51 4のそれぞれに対応して記述され、仮想メソッド関数に対応する実メソッド関数(非 仮想メソッド関数) の処理内容を記述したモジュールエミュレートプログラムであ る。
A社モジュールクラス 520及び B社モジュールクラス 530は、 更に派生した クラスを有してよい。 例えば、 図 5において、 B社モジュールクラス 530は、 デ ジタノレ試験モジュールクラス 540、 電源モジュールクラス 5 ρ 0、 及ぴ同期モジ ユールクラス 590に更に派生される。
デジタル試験モジュールクラス 540は、 DUT 100の機能試験を行なう試験 モジュール 1 70をエミュレートする試験モジュールエミュレートプログラムのク ラスである。 デジタル試験モジュールクラス 540は、 250MHzで動作して D UT 100の機能試験を行なう試験モジュール 1 70をエミュレートする 250M H zデジタル試験モジュールクラス 550に更に派生される。 電源モジュールクラ ス 560は、 DUT 100に電源を供給するモジュールをエミュレートするモジュ ールエミュレートプログラムのクラスである。 電源モジュールクラス 560は、 D UT 100に高電圧電源を供給するモジュールをエミユレ一トする高電圧電源モジ ユールクラス 570と、 DUT 100に低電圧電源を供給するモジュールをエミュ レートする低電圧電源モジュールクラス 580とに更に派生される。 同期モジユー ノレクラス 590は、 同期モジユーノレ 1 50をエミュレー トするモジユーノレエミユレ 一トプログラムのクラスである。
25 OMH zデジタル試験モジユールクラス 550、 高電圧電源モジュールクラ ス 570、 低電圧電源モジュールクラス 580、 及び同期モジュールクラス 590 のそれぞれは、 B社モジュールクラス 530に含まれる h a n d l e Ev e n t () を置き換えて (オーバーライドして) 使用される、 それぞれのモジュールの独自機 能をエミュレートする実メソッド関数 h a n d 1 e E V e n t () を含む。
試験エミュレート装置 1 9 0が有する同期モジュールエミュレート部 2 5 0、 同 期接続モジュールェミュレート部 2 6 0、 及ぴ 1又は複数の試験モジュールェミュ レート部 2 7 0等は、 クラス階層構造 5 0 0に含まれるモジュールエミュレートプ ログラムのクラスのいずれかのインスタンスとして実現されてよい。 .
以上に示した通り、 試験エミュレート装置 1 9 0が有する同期モジュールエミュ レート部 2 5 0、 同期接続モジュールェミュレート部 2 6 0、 及び試験モジュール エミュレート部 2 7 0等のモジュールエミュレート部は、 例えばクラス階層構造 5 0 0に含まれるいずれかのクラスに対応するモジュールエミユレ一トプログラムに より実現される。 試験ェミュレート装置 1 9 0の使用者は、 例えば試験装置 1 0の 実機に実装されるべきモジュールの組合せに対応するクラスの組合せからモジユー ルェミュレ一トプログラムのインスタンスを生成することにより、 試験装置 1 0の 実機と略同一の試験環境を試験ェミュレート装置 1 9 0上で構築することができる。 また、 新たなモジュールに対応する新たなクラスを作成する場合においても、 新た なクラスをいずれかのクラスの派生クラスとして作成することにより、 モジュール エミュレートプログラムの作成工数を低減することができる。 図 6は、 本発明の実施形態に係る試験ェミュレート装置 1 9 0の試験信号生成処 理フローを、 一の試験モジュールエミュレート部 2 7 0により試験を行なう場合に ついて示す。
試験プログラム及び試験データが同期モジュールェミュレート部 2 5 0、 同期接 続モジュールェミュレート部 2 6 0、 及び 1又は複数の試験モジュールェミュレー ト部 2 7 0に格納された状態で、 サイ ト制御ェミュレート部 2 3 0が試験の開始を 同期モジュールエミュレート部 2 5 0に指示すると、 試験エミュレート装置 1 9 0 は以下に示す手順で擬似的に試験を行なう。
まず、 スケジュール制御部 2 7 5 (図中 S C H E D) 中のスケジュール部 2 7 7 は、 タイミング整列部 2 7 6が試験信号生成タイミングを出力した場合に、 同期モ ジュールエミユレ一ト部 2 5 0 (図中 S Y N C) の h a n d l e E v e n t () 関 数を呼び出し、試験信号生成タイミングに至ったことを通知する (S 6 0 0 )。 これ により、 スケジュール制御部 2 7 5は、 同期モジュールエミュレート部 2 5 0を介 して、試験信号生成タイミングに対応する試験モジュールエミュレート部 2 7 pに、 当該試験信号生成タイミングに対応するサイクル時間における試験信号を擬似的に 生成させる。 ここで、 スケジュール制御部 2 7 5は、 対応する試験モジュールエミ 'ュレート部 2 7 0の試験信号生成タイミングに至ったことを示すイベント識別子を h a n d l e E v e n t () 関数のパラメータに含めることにより、 試験信号生成 タイミングを同期モジュールエミュレート部 2 5 0に通知してもよい。
次に、 同期モジュールエミュレート部 2 5 0は、 当該試験信号生成タイミングに おいて試験信号を擬似的に生成すべき試験モジュールエミュレート部 2 7 0 (図中 TM) に対して、 サイクル時間の処理を開始し試験信号を生成させる指示であるサ イタル開始を通知する (S 6 0 5 )。 ここで、 同期モジュールエミュレート部 2 5 0 は、 サイクル開始を指示するィベント識別子を r a i s e E V e n t () 関数のパ ラメータに含めてスケジュール制御部 2 7 5を呼び出すことにより、 タイミング整 列部 2 7 6が時亥!]順に整列したタイミングと非同期にスケジュール制御部 2 7 5を 介して試験モジュールエミユレ一ト部 2 7 0にサイクル開始を通知してよい。
次に、 試験モジュールエミュレート部 2 7 0は、 サイクル開始の通知を受けて、 対応するサイクル時間における試験信号を擬似的に発生する(S 6 1 0 )。すなわち、 S 6 0 0においてスケジュール制御部 2 7 5が試験信号生成タイミングに対応する サイクル時間における試験信号を擬似的に発生させるベく同期モジュールエミユレ ート部 2 5 0に試験信号生成タイミングを通知し、 この通知を受けた同期モジユー ルェミュレート部 2 5 0がスケジュール制御部 2 7 5を介して試験モジュールェミ ュレート部 2 7 0にサイクル開始を通知することにより、 試験モジュールエミユレ ート部 2 7 0は、当該サイクル時間における試験信号を擬似的に発生する。ここで、 試験モジュールェミュレート部 2 7 0は、 当該サイクル時間における試験信号の生 成において、 当該サイクル時間中における試験信号の変化タイミングを擬似的に生 成する。
次に、 011丁接続部2 8 0 (図中 L B ) は、 試験モジュールエミュレート部 2 7 0から試験信号の変化タイミングを受けて、.変化タイミングをタイミング整列部 2 7 6に通知し登録する (S 6 1 5 )。
次に、 試験モジュールエミュレート部 2 7 0は、 当該サイクルを終了するタイミ ングを同期モジュールエミュレート部 2 5 0に通知する (S 6 2 0 )。 ここで、試験 モジュールエミュレート部 2 7 0は、 試験プログラム及ぴ試験データによる指定に 基づき、 各サイクル時間を動的に変更しつつパターン発生器エミュレート部 4 3 0 により試験信号を生成する。 このため、 試験モジュールエミュレート部 2 7 0にお ける試験モジュール I Fエミュレート部 4 0 0内の制御関数処理部 4 1 0は、 各サ イタルの終了するタイミングをパターン発生器エミユレ一ト部 4 3 0から取得して 同期モジュールエミュレート部 2 5 0に通知し、 同期モジュールエミュレート部 2 5 0が次の試験信号生成タイミングを正しく生成できるようにする。
次に、 同期モジュールエミュレート部 2 5 0は、 S 6 2 0において試験モジユー ルエミュレート部 2 7 0から通知されたサイクル終了タイミングに基づいて、 試験 モジュールェミュレート部 2 7 0が次のサイクル時間に対応する試験信号を擬似的 に生成すべき試験信号生成タイミングを生成し、 タイミング整列部 2 7 6に通知し て登録する (S 6 2 5 )。 また、 同期モジュールエミュレート部 2 5 0は、 試験モジ ユールェミュレート部 2 7 0から試験結果を収集する試験結果収集タイミング、 試 験モジュールエミュレート部 2 7 0の当該サイクル時間を終了させるサイクル終了 処理タイミング、 当該サイクル時間における試験信号の生成において試験モジユー ルエミュレート部 2 7 0が擬似的に発生した割込みを収集する割込み収集タイミン グを更に生成し、タイミング整列部 2 7 6に通知して登録する(S 6 2 5 )。ここで、 同期モジュールエミュレート部 2 5 0は、 スケジュール制御部 2 7 5の r e g i s t e r E v e n t () 関数を呼び出すことにより、 これらのタイミングをタイミン グ整列部 2 7 6に登録してよい。
なお、 同期モジュールエミュレート部 2 5 0は、 試験モジュールエミュレート部 2 7 0から受信したサイクル終了タイミングと略同一のタイミングを、 当該試験モ ジュールェミュレート部 2 7 0における次の試験信号生成タイミング、 試験結果収 集タイミング、 サイクル終了処理タイミング、 及び割り込み収集タイミングとして 生成してもよい。
次に、 タイミング整列部 2 7 6が S 6 1 5において登録された変化タイミングを 出力すると、 スケジュール部 277は、 当該変化タイミングに試験信号を擬似的に 変化させるベく、 DUT接続き 280に変化タイミングが到達したことを通知する (S 630)。
次に、 スケジュール部 277から変化タイミングの通知を受けると、 DUT接続 部 280は、 当該変化タイミングに試験信号を擬似的に変化させることにより試験 信号を生成し、 DUTシミュレ一ト部 200に供給する (S 635)。 DUTシミュ レート部 200は、 DUT接続部 280から取得した試験信号に基づき DUT 10 0の動作をシミュレ一トする。 そして、 DUTシミュレ一ト部 200は、 DUT 1 00が試験信号に基づいて動作した結果出力する結果信号を擬似的に生成し、 DU T接続部 280を介して試験モジュールェミュレート部 270に供給する。 試験モ ジュールェミュレート部 270は、結果信号と期待値とを比較し、比較結果を得る。 次に、 タイミング整列部 276が S 625において登録された試験結果収集タイ ミングを出力すると、 スケジュール部 277は、 DUTシミュレート部 200から 試験モジュールェミュレート部 270に供給された結果信号に基づく結果の良否を 収集するべく、 試験モジュールェミュレート部 270に試験結果収集タイミングが 到達したことを通知する (S 640)。 試験結果収集タイミングの通知を受けると、 試験モジュールエミユレ一ト部 270は、 当該サイクル時間における結果信号と期 待値との比較結果を、 同期接続モジュールエミュレート部 260を介して同期モジ ユールエミュレート部 250に通知する。同期モジュールエミュレート部 250は、 各試験モジュールエミュレート部 270から収集した比較結果に基づき試験結果の 良否 (パス又はフェイル) を判定し、 試験結果の良否を各試験モジュールエミユレ ート部 270に配信することにより通知する (S 645)。複数の試験モジュールェ ミュレート部 270に供給される試験プログラム及び試験データは、 この試験結果 の良否に基づいて、 当該サイクル時間以降に行なう試験のシーケンスを変更するよ うに記述されていてもよい。
次に、 タイミング整列部 276が S 625において登録されたサイクル終了処理 タイミングを出力すると、 スケジュール部 277は、 試験モジュールェミュレート 部 270にサイクルを終了させるタイミングが到達したことを通知する(S 650)。 次に、 タイミング整列部 276が S 625において登録された割込み収集タイミ ングを出力すると、 スケジュール部 2 7 7は、 試験モジュールエミュレート部 2 7 0に割込み収集タイミングが到達したことを通知する (S 6 5 5 )。割込み収集タイ ミングの通知を受けると、 試験モジュールェミュレート部 2 7 0は、 当該割込み収 集タイミングの直前に試験モジュールエミュレート部 2 7 0が試験信号を生成した サイクル時間において擬似的に発生した割込みを、 バススィツチエミュレート部 2 4 0を介してサイト制御エミユレ一ト部 2 3 0に対して擬似的に通知する。
試験エミュレート装置 1 9 0は、 上記の S 6 0 0から S 6 5 5に示した処理を、 試験が終了するまで繰り返す (S 6 6 0 )。
なお、 複数の試験モジュールェミュレート部 2 7 0により試験を行なう場合、 ス ケジュール制御部 2 7 5は、 これらの複数の試験モジュールェミュレート部 2 7 0 のそれぞれが動作すべきタイミングを時刻順に整列し、 スケジュールする。 このた め、 複数の試験モジュールエミュレート部 2 7 0についての S 6 0 0、 S 6 3 0、 S 6 4 0、 S 6 5 0、 及ぴ S 6 5 5は、 時刻順に整列された順序で実行される。 図 7は、 本発明の実施形態に係る試験ェミュレ一ト装置 1 9 0により擬似的に生 成される試験信号の一例を示す。 本図において、 試験エミュレート装置 1 9 0は、 試験モジュールエミュレート部 2 7 0として、 試験モジュール Aをエミュレートす る試験モジュールエミュレート部 2 7 0 aと、 試験モジュール Bをエミュレートす る試験モジュールエミュレート部 2 7 0 bとを含む。
まず、 時刻 t 1以前において、 タイミング整列部 2 7 6は、 試験モジュールエミ ュレート部 2 7 0 aの試験信号生成タイミング t 1と、 試験モジュールェミュレ一 ト部 2 7 0 bの試験信号生成タイミング t 2とを登録しており、 これらを時刻順に 整列して出力する結果、 まず試験信号生成タイミング t 1を出力する。 これを受け て、 スケジュール部 2 7 7は、 時刻を t 1に進めると共に、 試験信号生成タイミン グ t 1に至ったことを同期モジュールエミュレート部 2 5 0に通知する。
試験信号生成タイミング t 1の通知を受けると、 同期モジュールエミュレート部 2 5 0は、 同期接続モジュールェミュレート部 2 6 0及ぴ試験モジュールェミュレ ート部 2 7 0を介して、 試験信号生成タイミング t 1に対応する試験モジュールェ ミュレ一ト部 2 7 0 aにサイクル開始を通知する。 これを受けて、 試験モジュール エミュレート部 2 7 0 aは、 図中サイクル 1と示したサイクル時間における試験信 号を擬似的に発生する。 ここで、 試験モジュールエミュレート部 2 7 0 aは、 当該 サイクル時間中の変化タイミング t 4において試験信号が Hレべ に変化すること を、 D U T接続部 2 8 0に通知する。 これを受けて、 011丁接続部2 8 0は、 変化 タイミング t 4をタイミング整列部 2 7 6に登録する。
次に、 試験モジュールエミュレート部 2 7 0 aは、 サイクル 1における試験信号 の生成を終えると、 サイクル 1のサイクル終了タイミング t 6を同期モジュールェ ミュレート部 2 5 0に通知する。 これを受けて、 同期モジュールエミュレート部 2 5 0は、サイクル終了タイミング t 6に基づき、次の試験信号生成タイミング t 6 、 試験結果収集タイミング t 6— Δ、 サイクル終了処理タイミング t 6— Δ、 及び割 り込み収集タイミング t 6— Δを生成し、 タイミング整列部 2 7 6に登録する。 こ こで、 t 6— Δは、 次の試験信号生成タイミング t 6の微小時間前であることを示 す。
次に、 タイミング整列部 2 7 6は、 登録されたタイミングを時刻順に整列し、 試 験信号生成タイミング t 2を出力する。 これを受けて、 スケジュール部 2 7 7は、 時刻を t 2に進めると共に、 試験信号生成タイミング t 2に至ったことを同期モジ ユーノレェミュレート部 2 5 0に通知する。
試験信号生成タイミング t 2の通知を受けると、 同期モジュールエミュレート部 2 5 0は、 試験信号生成タイミング t 2に対応する試験モジュールェミュレート部 2 7 O bに、 スケジュール制御部 2 7 5を介してサイクル開始を通知する。 これを 受けて、 試験モジュールエミュレート部 2 7 0 bは、 試験モジュールエミュレート 部 2 7 0 bのサイクル 1における試験信号を擬似的に発生する。 この結果、 試験モ ジュールェミュレート部 2 7 0 bは、 試験信号の変化タイミング t 3及び t 5を生 成し、 D U T接続部 2 8 0はこれらの変化タイミングをタイミング整列部 2 7 6に 登録する。
次に、 試験モジュールエミュレート部 2 7 0 bは、 サイクル 1における試験信号 の生成を終えると、 サイクル 1のサイクル終了タイミング t 7を同期モジュールェ ミュレート部 2 5 0に通知する。 これを受けて、 同期モジュールエミュレート部 2 5 0は、サイクル終了タイミング t 7に基づき、次の試験信号生成タイミング t 7 、 試験結果収集タイミング t 7— Δ、 サイクル終了処理タイミング t 7— Δ、 及ぴ割 り込み収集タイミング t 7— Δを生成し、 タイミング整列部 2 7 6に登録する。 次に、 タイミング整列部 2 7 6は、 登録されたタ ミングを時刻順に整列し、 変 化タイミング t 3、 t 4、 t 5を順次出力する。 これらの変化タイミングのそれぞ れを受けて、 スケジュール部 2 7 7は、 変化タイミングを D U T接続部 2 8 0に通 知する。 この結果、 D U T接続部 2 8 0は、 当該変化タイミングに試験信号を擬似 的に変化させ、 D U Tシミュレ—ト部 2 0 0に供給する。
次に、 タイミング整列部 2 7 6は、試験結果収集タイミング t 6— Δを出力する。 これを受けて、 スケジュール部 2 7 7は、 時刻を t 6— Δに進めると共に、 試験モ ジュールエミュレート部 2 7 0 aに試験結果収集タイミング t 6— Δを通知する。 この結果、 試験モジュールエミュレート部 2 7 0 a及び同期モジュールエミユレ一 ト部 2 5 0の間で試験結果の収集及ぴ配信を行なう。
次に、 タイミング整列部 2 7 6は、 サイクル終了処理タイミング t 6— Δを出力 する。 これを受けて、 スケジュール部 2 7 7は、 試験モジュールエミュレート部 2 7 0 aにサイクル 1の終了を通知する。
次に、 タイミング整列部 2 7 6は、 割込み収集タイミング t 6— Δを出力する。 これを受けて、 スケジュール部 2 7 7は、 試験モジュールエミュレート部 2 7 0 a に割込み収集タイミング t 6— Δを通知する。 この結果、 試験モジュールエミユレ ート部 2 7 0 aは、 サイクル 1において擬似的に発生した割込みをサイト制御エミ ュレート部 2 3 0に対して通知する。
次に、 タイミング整列部 2 7 6は、 試験信号生成タイミング t 6を出力する。 こ れを受けて、 スケジュール部 2 7 7は、 時刻を t 6に進めると共に、 試榦信号生成 タイミング t 6に至ったことを同期モジュールエミユレ一ト部 2 5 0に通知する。 以降試験ェミュレ一ト装置 1 9 0は、 Bき刻 t 1と同様にして、変化タイミング t 8、 結果信号を取得すべきタイミングを示す結果信号取得タイミング t 1 1、 次の試験 信号生成タイミング t 1 2、 試験結果収集タイミ ング t 1 2— Δ、 サイクル終了処 理タイミング t 1 2—厶、 及ぴ割込み収集タイミング t 1 2の生成及びタイミング 整列部 2 7 6への登録を行なう。
次に、 タイミング整列部 2 7 6は、 登録されたタイミングを時刻順に整列し、 試 験信号生成タイミング t 7を出力する。 これを受けて、 スケジュール部 2 7 7は、 時刻を t 7に進めると共に、 試験信号生成タイミング t 7に至ったことを同期モジ ユールエミュレート部 2 5 0に通知する。 以降試験エミュレート装置 1 9 0は、 時 刻 t 2と同様にして、 変化タイミング t 9及ぴ t 1 0、 次の試験信号生成タイミン グ t 1 3、 試験結果収集タイミング t 1 3— Δ、 サイクル終了処理タイミング t 1 3—厶、 及び割込み収集タイミング t 1 3の生成及びタイミング整列部 2 7 6への 登録を行なう。
以上に示した通り、 本実施形態に係る試験ェミュレート装置 1 9 0によれば、 試 験信号生成タイミング、 試験信号の変化タイミング、 試験結果収集タイミング、 結 果信号取得タィミング、 及ぴ割込み収集タイミング等の各種のタイミングをスケジ ユール制御部 2 7 5により時刻順に整列してスケジユーリングする。 このため、 試 験エミュレート装置 1 9 0は、 異なるサイクル周期に基づく複数の試験モジュール 1 7 0が実装された場合における試験装置 1 0の動作を適切にエミュレートするこ とができる。
なお、 本実施形態において、 同期接続モジュールエミュレート部 2 6 0は、 試験 モジュール 1 7 0からサイクル終了タイミングを受けた場合に、 試験結果収集タイ ミング、 サイクル終了処理タイミング、 及ぴ割込み収集タイミングをタイミング整 列部 2 7 6に登録するが、 これに代えて、 以下の方法を用いてもよい。
図 6の S 6 2 5において、 同期モジュールエミュレート部 2 5 0は、 サイクル終 了タイミングに基づいて、 試験モジュールエミュレート部 2 7 0が次のサイクル時 間に対応する試験信号を擬似的に生成すべき試験信号生成タイミングを生成し、 タ イミング整列部 2 7 6に通知して登録する。 一方、 この時点において、 同期モジュ ールエミュレート部 2 5 0は、 試験結果収集タイミング、 サイクル終了処理タイミ ング、 及ぴ割り込み収集タイミングを生成せず、 タイミング整列部 2 7 6に対して 登録しない。
この結果、 試験エミュレート装置 1 9 0は、 図 6の S 6 3 0及び S 6 3 5の処理 の後、 S 6 4 0、 S 6 5 0、 及び S 6 5 5を行なうことなく、 S 6 0 0に処理を進 める。 そして、 S 6 0 0において次のサイクル時間に対応する試験信号生成タイミ ングをタイミング整列部 2 7 6が出力した場合に、 スケジュール部 2 7 7は、 当該 試験信号生成タイミングに至ったことを同期モジュールエミユレ一ト部 2 5 0に通 知する。 これを受けて、 同期モジュールエミュレート部 2 5 0は、 次のサイクル時 間の試験信号生成の前に、 試験結果の収集、 サイクル終了の通知、 及び割込みの収 集を、 当該試験信号生成タイミングに対応する試験モジュールェミュレート部 2 7 0に指示する。
以上の処理により、 スケジュール制御部 2 7 5は、 次のサイクル時間の試験信号 生成の前に、 S 6 4 0、 S 6 4 5、 S 6 5 0、 及び S 6 5 5に示した処理を同期モ ジュールエミュレート部 2 5 0、 同期接続モジュールエミュレート部 2 6 0、 及び 試験モジュールエミュレート部 2 7 0等に行わせる。 より具体的には、 スケジユー ル制御部 2 7 5は、 当該試験信号生成タイミングの直前のサイクル時間における試 験信号の生成において、 試験モジュールエミュレート咅 2 7 0に供給された結果信 号に基づく試験結果の良否を同期モジュールエミユレ一ト部 2 5 0及ぴ同期接続モ ジュールエミュレート部 2 6 0により収集及び配信させ、 当該試験モジュールエミ ュレート部 2 7 0が擬似的に発生した割込みをサイト制御エミュレート部 2 3 0に 対して通知させる。 以上発明の実施の形態を説明したが、 本出願に係る発明の技術的範囲は上記の実 施の形態に限定されるものではない。 上記実施の形態に種々の変更を加えて、 請求 の範囲に記載の発明を実施することができる。 そのような発明が本出願に係る発明 の技術的範囲に属することもまた、 請求の範囲の記載から明らかである。 例えば、 以上に示した試験装置 1 0は、 同期モジュール 1 5 0、 同期捧続モジュ ール 1 6 0、 及び試験モジュール 1 7 0等による D U T 1 0 0の実試験と、 同期モ ジュールェミュレート部 2 5 0、 同期接続モジュールェミュレート部 2 6 0、 試験 モジュールエミュレート部 2 7 0、 及び D U Tシミュレート部 2 0 0等による D U T 1 0 0の擬似試験とを、 同一の試験制御プログラム及ぴノ又は試験プログラムに より実行可能な試験装置 1 0の使用者に提供すると共に、 使用者により実試験及ぴ 擬似試験を切替可能としてもよい。
すなわち、 サイト制御装置 1 3 0は、 D U T 1 0 0の実試験又は擬似試験のいず れを行うかの指示を、 例えば試験開始コマンドのオプション等により入力する。 そ して、 システム制御装置 1 1 0又はサイト制御装置 1 3 0は、 D U T 1 0 0の実試 験を行う指示を受けた場合に、 D U T 1 0 0の試験を行う試験プログラムをバスス イッチ 1 4 0を介して 1又は複数の試験モジュール 1 7 0に供給して、 これらの試 験モジュール 1 7 0により D U T 1 0 0の試験を行わせる。 一方、 サイト制御装置 1 3 0は、 D U T 1 0 0の擬似試験を行う指示を受けた場合に、 試験プログラムを 試験エミュレート装置 1 9 0又はサイト制御装置 1 3 0等の上でソフトウエアによ り実現される試験モジュールエミュレート部 2 7 0に供給して、 試験モジュールェ ミュレート部 2 7 0等により D U T 1 0 0の試験をシミュレートさせる。
以上において、 サイト制御装置 1 3 0は、 当該制御装置と試験モジュール 1 7 0 との間の通信処理を行う通信ソフトウェア (通信ライブラリ) を実行し、 当該通信 ソフトウェアを通じて実試験環境及ぴ擬似試験環境をアクセス可能としてもよい。 この場合、 サイト制御装置 1 3 0上で実行される試験制御プログラムは、 当該通信 ソフトウェアにより提供される同一のアクセス関数(r e a d /w r i t e関数等) を用いて、 同期モジュール 1 5 0、 同期接続モジュール 1 6 0、 及び試験モジユー ル 1 7 0等をアクセスして実試験を行い、 また、 同期モジュールエミュレート部 2 5 0、 同期接続モジュールエミュレート部 2 6 0、 及び試験モジュールエミユレ一 ト部 2 7 0等をアクセスして擬似試験を行うことができる。
ここで、 上記の通信ソフトウェアは、 サイト制御装置 1 3 0と協働して、 当該通 信ソフトウェアを初期化する呼び出しに含まれる、 実試験環境及ぴ擬似試験環境を 選択する指示に基づいて、 試験プログラムを試験モジュール 1 7 0等及ぴ試験モジ ユールエミュレート部 2 7 0等のいずれに供給するかを判断してもよい。 このよう な実装の一例を、 補足説明 C . 2 . 4 . 3に示す。 また、 例えば、 以上に示した試験モジュールエミュレート部 2 7 0は、 次に示す 構成を採ってもよい。 まず、 各試験モジュールエミュレート部 2 7 0は、 スケジュ ール制御部 2 7 5内のスケジュール部 2 7 7によりスケジユーリングされた試験信 号生成タイミングの通知を、 関数呼び出しにより受ける。 そして、 各試験モジユー ルェミュレート部 2 7 0は、 当該試験信号生成タイミングに対応するサイク.ル時間 中における試験信号の電圧の変化を、 出力チャネルをエミユレ一トする出力チヤネ ルオブジェクトの電圧設定メソッド ( s e tメソッド) を複数回呼び出すことによ り出力する。 そして、 試験モジュールエミュレート部 2 7◦は、 当該サイクル時間 に対応する試験信号の電圧の変化の出力を終えた後に、 当該サイクル時間に対応す る試験信号の電圧の変化の出力を終えたことを、 出力チャネルオブジェクトの終了 メソッド ( e n dメソッド) を呼び出すことによりスケジュール部 2 7 7等に通知 する。 このような実装の一例を、 補足説明 B . 3 . 3等に示す。
そして、 スケジュール部 2 7 7は、 複数の試験モジュールエミュレート部 2 7 0 のそれぞれから通知された終了メソッドに基づいて、 全ての試験モジュールエミュ レート部 2 7 0が試験信号の電圧の変化の出力を終えた期間を算出し、 この期間內 における D U T 1 0 0の動作のシミュレーシヨンを D U Tシミュレート部 2 0 0に 要求する。 これを受けて、 011丁接続部2 8 0は、 この期間内における試験信号を 取得して、 当該試験信号に基づいて被試験デバィスのこの期間内における動作をシ ミュレ一トする。
以上において、 出力チャネルオブジェクトは、 終了メソッドの呼び出しを受けた 後に、 当該終了メソッドにより通知された、 既に試験信号の電圧の変化の出力を終 えた期間内の電圧の変化を禁止する。 これにより、 既にシミュレーションを終えた 期間のシミュレーション結果が不整合となるのを防ぐことができる。 このような実 装の一例を補足説明 B . 3 . 4等に示す。 以下に、 本実施形態に係る試験装置 1 0及び試験エミュレート装置 1 9 0を実現 するための各種の具体例 ·仕様例を補足説明す.る。
( t足説明 A) ソフトウェアアーキテクチャの具体例
図 8は、 本発明の一実施形態によるソフトウヱァアーキテクチャ 2 2 0 0を示し ている。 ソフトウエアアーキテクチャ 2 2 0 0は、 関連するハードゥエアシステム の要素 1 1 0と、 1 3 0と、 1 5 0、 1 6 0及び 1 7 0とに対応して、 システムコ ントローラ 2 2 0 0と、 少なくとも一つのサイトコントローラ 2 2 4 0と、 少なく とも一つのモジュール 2 2 6 0とのための要素を有している分散オペレーティング シ テムを表している。モジュール 2 2 6 0に加えて、アーキテクチャ 2 2 0 0は、 ソフトウエアでのモジュールエミュレーションのための対応する S W (ソフトゥェ ァ) モジュールエミユレーシヨン 2 2 8 0を含んでいる。
例示的な選択として、 このプラットフオーム用の開発環境はマイクロソフトのゥ ィンドウズに基づいていてもよい。 このアーキテクチャの使用は、 プログラムおよ びサポートの移植性において副次的な利点 (例えばフィールドサービスエンジニア 'は高度な診断を行うためのテスタオペレーティングシステムを動作させるラップト ップコンピュータを接続することができるであろう) を有している。 しかし、 大規 模な計算集約型の動作 (テストパターンのコンパイル等) については、 関連するソ フトウエアは、 独立して動作して分散されたプラットフオームを横断してのジョブ スケジューリングを可能にすることができる独立した構成要素とされ得る。 したが つて、 バッチジョブに関連するソフトウェアツールは、 複数のプラットフォームタ ィプ上で動作することができる。
例示的な選択として、 ANSI/ISO標準の C++をソフトウエア用のネイティブ言語と することができる。 当然のことながら、 サードパーティが自身の選択した代わりの 言語をシステムにまとめることを可能にする、 (名目上の C++インタフヱース上の レイャを提供するための) 使用可能な複数の選択肢がある。
図 8は、 名目上のソースによる組織ィ匕 (あるいはサブシステムとしての集合的な 展開) にしたがって、 テスタオペレーティングシステムインタフェース 2 2 9 0、 ユーザコンポーネント 2 2 9 2 (例えば、 テスト目的のためにユーザによって供給 される)、 システムコンポーネント 2 2 9 4 (例えば、 基本的な接続性おょぴ通信の ためのソフトウエアインフラとして提供される)、モジュール開発コンポーネント 2 2 9 6 (例えば、 モジュールディべロッパによって提供される)、 および外部コンポ ーネント 2 2 9 8 (例えばモジュールディべ口ッパ以外の外部ソースによって提供 される) を含む要素を陰付きで示している。
ソースベースの構成の観点から、 テスタオペレーティングシステム (T0S) インタ フエ一ス 2 2 9 0は、 システムコントローラーサイ トコントローラインタフェース 2 2 2 2、 フレームワーククラス 2 2 2 4、 サイ トコントローラーモジュールイン タフエース 2 2 4 5、 フレームワーククラス 2 2 4 6、 所定のモジュールレベルィ ンタフェース 2 2 4 7、 バックプレーン通信ライブラリ 2 2 4 9、 シャーシスロッ ト IF (ィンタフェース) 2 2 6 2、 ロードボ一ドハ一ドウエア IF 2 2 6 4 、 ノ ック プレーンシミュレーシヨン IF 2 2 8 3、ロードボ一ドシミュレーシヨン IF 2 2 8 5、 DUTシミュレーシヨン IF 2 2 8 7、 DUTの Verilogモデル用の Verilog PLI (プログ ラミング言語ィンタフェース) 2 2 8 8、および DUTの C/C++モデル用の C/C++言語 サポート 2 2 8 9を含んでいる。
ユーザコンポーネント 2 2 9 2は、 ユーザテストプラン 2 2 4 2、 ユーザテス ト クラス 2 2 4 3 、 ハードゥエアロードボ一ド 2 2 6 5 、 DUT 2 2 6 6、 DUT Verilog モデル 2 2 9 3および DUT C/C++モデル 2 2 9 1を含んでいる。
システムコンポーネント 2 2 9 4は、 システムツール 2 2 2 6、 通信ライブラリ 2 2 3 0、 テストクラス 2 2 4 4、 ノ ックプレーンドライバ 2 2 5 0、 バススイツ チ 1 4 0を含む HWバックプレーン 2 2 6 1、シミュレーションフレームワーク 2 2 8 1、 バックプレーンエミュレーシヨン 2 2 8 2およびロードボ一ドシミュレーシ ヨン 2 2 8 6を含んでいる。
モデル展開コンポーネント 2 2 9 6は、 モジュールコマンドィンプリメンテーシ ヨン 2 2 4 8、 モジュールハードウェア 2 2 6 3およぴモジュールエミユレーショ ン 2 2 8 4を含んでいる。
外部コンポーネント 2 2 9 8は外部ツール 2 2 2 5を含んでいる。
図 1に示したシステム制御装置 1 1 0上で動作するソフトウヱァであるシステム コントローラ 2 2 2 0は、 サイトコントローラに対するインタフェース 2 2 2 2 、 フレームワーククラス 2 2 2 4、 システムツール 2 2 2 6、 外部ツール 2 2 2 5お ょぴ通信ライブラリ 2 2 3 0を含んでいる。システムコントローラソフトウエアは、 ユーザに対する相互作用の主要な点である。 これは、 本実施形態のサイ トコント口 ーラへのゲートウェイと、同一讓受人による米国出願第 60/449, 622号に述べられて いるマルチサイ ト ZDUT環境におけるサイトコントローラの同期化とを提供する。 ユーザアプリケーションおよびツールは、グラフィカルユーザインタフェース (GUI) ベースかそれ以外のものであり、 システムコントローラ上で動作する。 システムコ ントローラは、 テストプラン、 テストパターンおよびテストパラメータファイルを 含むすべてのテストプラン関連の情報の収納庫としても機能する。 テストパラメ一 タファイルは、 発明の一実施形態のォブジェクト指向の環境におけるテストクラス 用のパラメータ化されたデ一タを含んでレヽる。
サードパーティのディべ口ッパは、 標準的なシステムツール 2 2 2 6に加えて (あ るいはその代わりとして) ツールを提供することができる。 システムコントローラ 2 2 2 0上の標準的なインタフェース 2 2 2 2は、 ツールがテスタおよびテストォ ブジェクトにアクセスするために用いるインタフェースを有している。 ツール (ァ プリケーシヨン) 2 2 2 5、 2 2 2 6は、 テストおよびテスタオブジェク トの相互 的なバッチ制御を可能にする。 このツールは、 (例えば SECS/TSEM等の使用を通じ て) 自動化能力を提供するためのアプリケーションを含んでいる。
システムコントローラ 2 2 2 0上にある通信ライブラリ 2 2 3 0は、 ユーザアブ リケ——ンョンおよびテストプログラムにトランスペアレントな形でサイ トコント口 ーラ 2 2 4 0と通信するメカニズムを提供する。
インタフェース 2 2 2 2は、 システムコントローラ 2 2 2 0と関連したメモリに 常駐しており、 システムコントローラ上で実行するフレームワークオブジェクトに 対するオープンインタフェースを提供する。 サイ トコントローラベースのモジユー ルソフトウェアがパターンデータにアクセス、 取得することを可能にするインタフ エースが含まれる。 また、 アプリケーションおよびツールがテスタおょぴテストォ ブジェクトにアクセスするために用いるインタフェース、 ならびに、 スクリプトェ ンジンを通じてテスタおよびテストコンポーネントにアクセスして操作することが できる能力を提供するスクリプトインタフェースも含まれる。 これにより、 インタ ラタティブな、 バッチおよびリモートアプリケーションのための共通のメカニズム がそれらの機能を行うことが可能となる。
システムコントローラ 2 2 2 0に関連しているフレームワーククラス 2 2 2 4は、 これらの上述したオブジェクトと相互に作用するメカニズムを提供し、 これは標準 的なインタフェースのリファレンスインプリメンテーションを提供する。 例えば、 本実施形態のサイトコントローラ 2 2 4 0は機能テストォブジェク トを提供する。 システムコントローラフレームワーククラスは、 この機能テストォブジェク トのリ モートシステムコントローラベースの代理として、 対応する機能テストプロキシを 提供してもよい。 したがって、 標準的な機能テストインタフェースは、 システムコ ントローラ 2 2 2 0上めツールに対して利用可能とされる。 システム、 モジュール 開発コンポーネントおよびインタフェースコンポーネント 2 2 9 4、 2 2 9 6およ ぴ 2 2 9 0はそれぞれ、 システムコントローラとサイ トコントローラとの間で分散 されたオペレーティングシステムであると考えてもよい。フレームワーククラスは、 ホストシステムコントローラに関連するオペレーテイングシステムインタフェース を実質的に提供する。 これらはまた、 サイトコントローラに対するゲートウェイを 提供するソフトウェア要素も構成し、 マルチサイ ト, DUT 環境におけるサイトコン トローラの同期を提供する。 したがつてこのレイヤは、 コミュニケーションレイヤ を直接极う必要なくサイ トコントローラを操作し、 それにアクセスするのに適して いる、 発明の一実施形態におけるオブジェクトモデルを提供する。
図 1に示したサイト制御装置 1 3 0上で動作するソフトウェアであるサイトコン トローラ 2 2 4 0は、ユーザテストプラン 2 2 4 2、ユーザテストクラス 2 2 4 3、 標準テスト 'クラス 2 2 4 4、 標準インタフェース 2 2 4 5、 サイトコントローラフ レームワーククラス 2 2 4 6、 モジユーノレノ、ィレべノレコマンドィンタフェース (例 えば所定のモジユーノレレべノレのインタフェース) 2 2 4 7、 モジユーノレコマンドィ ンプリメンテーシヨン 2 2 4 8、 バックプレーン通信ライブラリ 2 2 4 9、 および バックプレーンドライバ 2 2 5 0のホストとなる。 好ましくは、 テストの機能の大 半をサイトコントローラ 2 1 0 4 / 2 2 4 0が扱い、 それによつてテストサイト 2 1 1 0の独立した動作が可能である。
テストプラン 2 2 4 2はユーザによって書かれる。 このプランは、 C++のような標 準的なコンピュータ言語で直接記述されてもよいし、 実行可能なテストプログラム へとコンパイル可能である C++コードを生成するような、 より高レベルのテストプ ログラミング言語で記述されてもよい。
このテストプランは、 フレームワーククラス 2 2 4 6およひ\ /または、 サイ トコ ントローラに関連する標準あるいはユーザによって供給されるテストクラス 2 2 4 4を用いて、 テストオブジェク トを作り出し、 標準インタフェース 2 2 4 5を用い てハードウェアを構成し、 テストプランのフローを定義する。 また、 テストプラン の実行中に必要とされる追加的なロジックも提供する。 テストプランは、 いくつか の基本的なサービスをサポートし、 デバッダサ一ビス (例えばブレークポイント) 等のその下にあるオブジェク 卜のサービスに対するインタフェースと、 その下にあ るフレームワークおよび標準クラスへのアクセスとを提供する。
サイトコントローラに関連するフレームワーククラス 2 2 4 6は、 共通のテスト 関連動作をィンプリメントするクラスおよび方法のセットである。 サイ 1、コント口 一ラレベルフレームワークは、 例えば、 電力供給およびピンエレク トロニクスの順 番付け、 レベルおょぴタイミング条件の設定、 測定値取得、 テストフロー制御のた めのクラスを含んでいる。 フレームワークオブジェクトは、 標準インタフェースを インプリメントすることを通じて動作してもよい。 例えば、 テスタピンフレームヮ ーククラスのインプリメンテーションは、 テストクラスがハードウエアモジュール ピンと相互に作用するために用いるであろう汎用のテスタピンインタフエースをィ ンプリメントするように統一される。
あるフレームワークオブジェクトは、 モジュールと通信するためにモジュールレ ベルインタフェース 2 2 4 7の助けを借りて動作するようにインプリメントされて もよい。 サイ トコントローラフレームワーククラスは、 実質的に、 各サイ トコント ローラをサポートするローカルオペレーティングシステムとして機能する。
一般的に、 プログラムコードの 9 0 %以上は装置テスト用のデータであり、 残り の 1 0 %のコードがテスト方法を実現する。 装置テストデータは DUT依存のデータ (例えば電力供給条件、 信号電圧条件、 タイミング条件等) である。 テストコード は、 指定された装置条件を ATEハードウェア上にロードする方法からなり、 またュ 一ザが指定した目的 (データ口ギング等) を実現するのに必要である方法からも構 成される。発明の一実施形態のフレームワークは、ハードウェア依存性のテストと、 ユーザが DUTテストプロダラミングのタスクを行うことを可能にするテスタォブジ エタ トモデルとを提供する。 ―
テストコードの再利用性を高めるために、 このようなコードは、 装置特有のデー タ (例えばピンの名前、 活性化データ等)、 あるいは装置テストに特有のデータ (例 えば DCュニッ トの条件、測定ピン、ターゲットピンの数、パターンファイルの名前、 パターンプログラムのァドレス) のいずれに対しても独立とされてもよい。 もしテ スト用のコードをこれらのタイプのデータとともにコンパイルすれば、 テストコ一 ドの再利用性は低下する。 したがって、 発明の一実施形態によれば、 いかなる装置 特有のデータあるいは装置テストに特有のデータも、 コード実行期間中の入力とし て、 外部からテストコードに役立てられてもよい。
発明の一実施形態においては、 標準テストインタフェースのインプリメンテーシ 3ンであるテストクラスは、 ここでは ITest と記載するが、 特定のタイプのテスト に関してテス トデータとコードとの分離 (したがってコードの再利用性) を実現す る。 このようなテストクラスは、 装置特有および Zあるいは装置テスト特有のデー タにおいてのみ異なるような別々のテストクラスの 「テンプレート」 とみなしても よい。 テストクラスはテストプランファイルにおいて指定される。 各テストクラス は、 典型的には、 具体的なタイプの装置テストあるいは装置テスト用のセットアツ プをインプリメントする。 例えば、 発明の一実施形態は、 DUT に関するすべての機 能テストの基本となるクラスとして、 ITest インタフェースの具体的なインプリメ ンテーシヨン、 例えば FunctionalTestを提供する。 それは、 テスト条件の設定、 パ ターンの実行おょぴ、 失敗したストローブの存在に基づくテスト状況の判定という 基本的な機能を提供する。 他のタイプのインプリメンテーションは、 ここでは ACParametricTestおよぴ DCParametricTest として表記される ACおよび DCテスト クラスを含んでいてもよい。
全てのテストタイプは、 いくつかの仮想的な方法のデフォルトのインプリメンテ ーシヨン (例えば、 init ( ) , preExec ( )および postExec ( ) ) を提供してもよレ、。 これらの方法は、 デフォルトの動作を乗り越えてテスト特有のパラメータを設定す るためのテストエンジニアのエントリポイントとなる。 しかしながら、 カスタムテ ストクラスもテストプランにおいて用いることができる。
テストクラスは、 そのテストの特定の場合に関するォプションを指定するために 用いられるパラメータを提供することによっ 、 ユーザがクラスの動作を構成する ことを可能にする。 例えば、 機能テストは、 実行すべきパターンリストとテスト用 のレベルおよびタイミング条件とを指定するために、 パラメータ Plist および TestConditionと採用してもよい。 (テストプラン記述ファイルにおける異なる 「テ スト」 ブロックの使用を通して) これらのパラメータについて異なる値を指定する ことにより、ユーザは機能テストの異なる例を作り出すことが可能である。図 9は、 どのようにして単一のテストクラスから異なるテスト例が導き出されるかを示して いる。 テンプレートライブラリは、 一般的なアルゴリズムおよびデータ構造の汎用 ライブラリとして採用されてもよい。 このライブラリはテスタのユーザに見えても よく、 ユーザは、 例えば、 ユーザ定義のテストクラスを作り出すようにテストクラ スのインプリメンテーションを改変してもよい。
• ユーザによって展開されるテストクラスに関して、 システムの一実施形態は、 こ のようなテストクラスを、 全てのテストクラスが単一のテストインタフェース、 例 えば ITestから得られるようなフレームワークに統合することをサポートし、 その 結果、 そのフレームワークはシステムテストクラスの標準的なセッ トと同じような やり方でそれらを処理することができる。 ユーザは、 追加のファシリティを生かす ためには自分達のテストプログラムにおいてカスタムコードを用いなければならな いという理解のもとで、 自分達のテストクラスに追加の機能を自由に追加すること ができる。
図 1に示したサイト制御装置 1 3 0、 同期モジュール 1 5 0、 同期接続モジユー ル 1 6 0、 及ぴ試験モジュール 1 7 0を含んで構成される各テストサイトは、 一つ 以上の DUT 1 0 0のテスト専用のものであり、 試験モジュール 1 7 0等のテストモ ジュールの構成可能な集合体を通じて機能する。 各テストモジュールは特定のテス トタスクを行う主体である。 例えば、 テストモジュールは、 DUT の電源、 ピンカー ド、 アナログカード等であり得る。 モジュールによるこのアプローチは、 高いフレ キシピリティと構成可能性を提供する。
モジユーノレコマンドィンプリメンテーションクラス 2 2 4 8は、 モジユーノレノ、一 ドウエアベンダによって提供されてもよく、 ベンダによって選択されるコマンド実 行方法に応じて、 ハードウエアモジュールに関するモジュ一ルレべルインタフエー スをインプリメントするか、 あるいは標準的なインタフェースのモジュール特有の インプリメンテーションを提供する。 これらのクラスの外部インタフェースは、 所 定のモジュールレベルィンタフェース要件おょぴバックプレーン通信ライブラリ要 件によって規定される。 またこのレイヤは、 標準的なセッ トのテストコマンドの拡 張も提供し、 それにより方法 (機能) およびデータ要素の追加が可能となる。 バックプレーン通信ライブラリ 2 2 4 9は、 パックブレーンをまたいでの標準的 な通信のためのインタフェースを提供し、 それによつてテストサイ トに接続された モジュールとの通信に必要な機能を提供する。 これにより、 ベンダに特有のモジュ 一ルソフトウエアが対応するハードウエアモジュールとの通信にバックプレーンド ライバ 2 2 5 0を用いることが可能である。 バックプレーン通信プロトコルはパケ ットベースのフォーマツトである。
テスタピンオブジェク トは、 物理的なテスタチャネルを表しており、 ここでは ITesterPinで示されるテスタピンインタフエースから得られる。 発明の一実施形態 によるソフ トウェア開発キッ ト (SDK) は、 TesterPin と呼ばれることもある ITesterPinのデフォルトのィンプリメンテ一ションを提供し、 これは所定のモジュ 一ルレベルインタフェース IChannel に関してィンプリメントされる。 ベンダは、 IChannel に関して彼らのモジュールの機能をィンプリメントすることができるの であれば TesterPinを自由に使うことができるが、 そう なければ、 彼らのモジュ ールとどもに動作する ITesterPin のィンプリメンテーシヨンを提供しなければな らない。
本実施形態のテスタシステムによつて提供される標準的なモジュ一ルインタフエ ースは、 ここでは Moduleと表記するが、 これは一般的には、 ベンダのハードゥエ ァモジュールを表している。 ベンダによって供給される、 システム用のモジュール 特有のソフトウェアは、 ダイナミックリンクライブラリ (DLL) のような実行可能な 形態で提供されてもよい。 ベンダからの各モジュールタイプ用のソフトウェアは、 単一の DLLに力プセノレイ匕されていてもよい。 このようなソフトウエアモジュールの それぞれは、 モジュールソフトウェア展開のための APIを備えている、 モジュール インタフェースコマンド用のベンダに特有なインプリメンテーションを提供するこ とを担っている。
モジュールインタフェースコマンドには 2つの局面がある。 それらは、 第一に、 ユーザがシステムにおける特定のハードウェアモジュールと (間接的に) 通信する ためのインタフェースとして機能し、 第二に、 サードパーティディべ口ツバが彼ら 自身のモジユーノレをサイ トコントローラレべノレのフレームワークに統合するために 活用することができるインタフェースを提供する。 したがって、 フレームワークに よって提供されるモジュールインタフェースコマンドは、 2 つのタイプに分けられ る。
—つ目は、 最も疑う余地のないものであるが、 フレームワークインタフェースを 通じてユーザに対してあらわになる 「コマンド」 である。 したがって、 例えば、 テ スタピンインタフエース (ITesterPin) は、 レベルおょぴタイミングの値を取得、 設定するための方法を提供し、 一方で電源ィンタフェース (IPowerSupply) は電力 を上げたり下げたりする方法を提供する。
また、 フレームワークは、 モジュールとの通信に用いられることができる、 所定 のモジュールレベルインタフェースの特別なカテゴリを提供する。 これらは、 ベン ダのモジュールとの通信のためにフレームワーククラスによって用いられるィンタ フエ一ス (すなわち、 フレームワークインタフェースの 「標準的な」 インプリメン テーシヨン) である。
し力 しながら、 第二の局面、 モジュールレベルインタフェースの使用は、 任意の ものである。 それをすることの禾 K点は、 ベンダは、 モジュールレべノレインタフエ一 スをインプリメントすることによって彼らのハードウエアに対して送られる具体的 なメッセージの内容を注視しつつ、 ITesterPinおよぴ IPowerSupplyのようなクラ スのインプリメンテーションを活用し得るということである。 し力 し、 もしこれら のィンタフェースがベンダに不適切であれば、 それらはフレームワークインタフエ ースのそれらのカスタムインプリ メ ンテーショ ン (例えば ITesterPin、 IPowerSupply等のベンダインプリメンテーション) を提供することを選択してもよ い。 そうすればこれらは、 それらのハードウェアに対して適切であるカスタム機能 を提供するであろう。
したがって、 モジユー こ特有なベンダソフトウェアの統合は、 2 つの異なった 手段、 すなわち、 関連するフレームワーククラスおょぴインタフェースのカスタム ィンプリメンテーション、 あるいはモジュールレベルィンタフェースの特別なカテ ゴリのカスタムインプリメンテーションを通じて実現され得る。
次に、 両方の方法の例示的な応用を図 1 0の助けを借りて説明する。 図 1 0は、 発明の一実施形態によるテスタシステムとベンダによつて供給されるモジュールと の相互作用を示すユニバーサルモデリング言語 (UML) クラスダイアグラムである。 新しいデジタルモジュールのベンダであるサードパーティ A (TPA) は、 そのハー ドウエアモジュールと通信するためのソフトウエアモジュールを提供する。 このソ フトウエアモジュールは、標準的なインタフェース Moduleをインプリメントする。 このモジュールオブジェクトを TPAPinModuleと呼ぶことにしよう。 ベンダ TPAは、 そのモジュールにおいて、 関連する所定のモジユーノレレべノレインタフェース、 この 場合には IChannelをインプリメントすることによって、ここでは TesterPinとして 表されている、 ITesterPinィンタフェースの標準的なシステムィンプリメンテ——ン aンを利用することができる。 これは、 TesterPin がモジュールと通信するために IChannel のような標準的な所定のモジュールレベルィンタフェースを用いるとい う事実によって可能とされる。 したがって、 TPAPinModuleは、 TesterPinオブジェ クトを単に作り出してあらわにすることでピンを提供する。
ここで、 IChannelインタフエースは自分達のハードウエアとともにはうまく動作 しないと判断する、 異なるベンダであるサードパーティ B (TPB) を考える。 したが つて、 TPBは、 彼ら自身の IModuleインプリメンテーション (TPBPinModule) だけ ではなく、 ITesterPinインタフェースのインプリメンテーション TPBTesterPin も 提供することが必要となる。
このアプローチは、 サードパーティディべ口ッパがどのようにして自分達のハー ドウエアを展開するかの選択おょぴソフトウェアのサポートにおいて、 多大なフレ キシビリティをサードパーティディべ口ッパに与える。 彼らは oduleインタフエ 一スをィンプリメントすることを求められながら、 モジュールレベルィンタフヱ一 スをインプリメントすること力、 適合するとわかれば TesterPinのようなオブジェ クトをインプリメントすることかを選択し得る。
実際に、 ベンダは、 ITesterPinインタフェースにおいてはサポートされていない 拡張を提供するために TesterPinをインプリメントすることを選択してもよい。 フ レームワークはユーザに、 特定のィンタフェースを取り出すためのメカニズムある いはオブジェクトへのインプリメンテーションポインタを提供する。 これは、 ユー ザコードが ITesterPinポィンタを有している場合に、フレームワークはそれが必要 であるときにいわゆる TPBTesterPin オブジェクトをポイントしているかどうかを 判断することができるということを意味している。 (この特徴は標準的な C++ラン タイムタイプ識別 (RTTI) を介して提供されてもよいことに留意されたレ、。 ) 言い換 えると、テストプランが ITesterPinインタフェースを要求するときには、インタフ エースは、 TesterPin クラスのベンダのテスタピンのインプリメンテーションを直 接呼び出し、 これがモジュールに特有の情報 (例えば、 特定の DUT刺激を与えるよ うに設定されるべきレジスタのァドレス) を内蔵している。
まとめると、 フレームワークコードが常に ITesterPinインタフェースを使用して いる間、 ユーザは、 必要なときにモジュールベンダによって提供される具体的な特 徴ぉよび拡張を自由に使うことができる。 言い換えると、 モジュールベンダは、 例 えば、 クラスの標準的なシステムインプリメンテーションに方法 (機能) を付加す ることができる。 ユーザに対するトレードオフは、 具体的なベンダの拡張を活用す ることが他のベンダのモジュールに対するテストコ一ドの有用性を低下させるとレ、 うことである。 ,
モジュールのレベルでは、 試験装置 1 0は、 名目上 2つの動作モードを有してい る。 動作のオンラインモードでは、 バススィッチ 1 4 0、 同期モジユー 5 0、 同期接続モジュール 1 6 0、 試験モジュール 1 7 0、 ロードボ一ド 1 8 0、 及び D U T 1 0 0を含んで構成されるモジュールエレメント 2 2 6 0 (例えばハードゥエ ァエレメント) が用いられ、 動作のオフラインモードでは、 バススィッチエミユレ ート部 2 4 0、 同期モジュールエミュレート部 2 5 0、 同期接続モジュールエミュ レート部 2 6 0、 試験モジュールェミュレート部 2 7 0、 スケジュール制御部 2 7 5、 011丁接続部2 8 0、 及び D U Tシミュレート部 2 0 0を含んで構成されるソ フトウエアにおけるモジュールエミュレーシヨン 2 2 8 0が用いられる。
動作のオンラインモードについて、 モジュールエレメント 2 2 6 0は、 図 1に示 したパススィッチ 1 4 0を含む HW (ハードウェア) バックプレーン 2 2 6 1と、 シ ヤーシスロット IF (インタフェース) 2 2 6 2と、 同期モジュール 1 5 0、 同期接 続モジュール 1 6 0、 及び試験モジュール 1 7 0等を含むモジュールハードウェア 2 2 6 3と、 ロードボ一ドハ一ドウエア IF 2 2 6 4と、 ロードポード 1 8 0に対応 するハードゥエアロードボ一ド 2 2 6 5と、 図 1 0に示した D U T 1 0 0に対応す る DUT 2 2 6 6とを有している。
動作のオフラインモードについて、 ソフトウエアでのモジユーノレエミュレーショ ン 2 2 8 0は、 図 2に示したスケジュール制御部 2 7 5を含むシミュレ一ションフ レームワーク 2 2 8 1と、 バススィツチエミュレート部 2 4 0を含むバックプレー ンエミュレーション 2 2 8 2と、 バックプレーンシミュレーション IF 2 2 8 3と、 同期モジュールエミュレート部 2 5 0、同期接続モジュールエミュレート部 2 6 0、 及ぴ試験モジュー^^エミュレート部 2 7 0等を含むモジュールエミユレーシヨン 2 2 8 4と、 ロードボ一ドシミュレーション IF 2 2 8 5と、 D U T接続部 2 8 0を含 むロードボ一ドシミュレーシヨン 2 2 8 6と、 DUTシミュレーション IF 2 2 8 7を 有している。 2つのモデルを DUTシミュレーションに関して示す。 Veri logを用いる モデノレは、 Verilog PLI (プログラミング言語ィンタフェース) 2 2 8 8と DUT Verilogモデル 2 2 9 3とを有している。 C/C++を用いるモデルは、 C/C++言語サポ 一卜 2 2 8 9と DUT C/C++モデル 2 2 9 1とを有している。 シミュレ一シヨンは、 PC等のいかなるコンピュータ上でも行うことができることに留意されたい。
オンラインモードでは、 モジュールベンダは、 デジタルテスタチャネル、 DUT 電 源、 あるいは DC測定ュニットといった、テストをサポートするための物理的なハー ドウエアコンポーネントを提供する。 モジュールは、 シャーシスロット IF 2 2 6 2 を通じて冊バックプレーン 2 2 6 1にインタフェース接続される。
オフラインでの作業については、 システムコントローラと等価なものを動かす PC ベースあるいは他の環境が、 付加的に、 サイ トコントローラレベルのフレームヮー クと、 ソフトウェアのより低いレイヤのランタイム環境とを提供するとともにハー ドウエアをエミユレ一トするための全ての任務を引き受ける。
バックプレーンエミユレーション 2 2 8 2は、 物理的なバックプレーン 2 2 6 1 のためのソフトウェアによる代理を提供する。 これは、 バックプレーンシミュレ一 シヨンインタフェース 2 2 8 3を通して (ベンダが供給する) モジュールエミユレ ーシヨンソフトウエア 2 2 8 4と通信する。
モジュールエミュレーションソフトウェア 2 2 8 4は、 好ましくはモジュールべ ンダによって提供され、 典型的にはモジュール 2 2 6 3の特定のベンダインプリメ ンテーシヨンと密接に結びついている。 したがって、 モジュールエミユレーシヨン ソフトウェアは、 典型的には、 異なるベンダによって供給されるモジュール間で詳 細で異なっている。 この場合、 モジュールシミュレーションにより、 ベンダは、 ソ フトゥヱァモデノレ (例えばモジュールエミュレーションソフトウエア 2 2 8 4 ) を 通してハードウエアの機能をあらわにし、 シミュレートされるロードポード 2 2 8 6に対して活性化信号を送り、 DUTシミュレーション IF 2 2 8 7を介して DUTモデ リングソフトウェア 2 2 9 1、 2 2 9 3に接続されている、 シミュレートされる口 ードボード 2 2 8 6からの DUT応答信号.を受け取って処理することが可能になる。 モジュールの単純な機能シミユレーションを提供してモジュールファームウェアの エミュレ一シヨンを迂回することが有利であるとベンダが考える場合もある。 モジ ュールェミュレーシヨンソフトウェアは、 シミュレートされたモジュール活性化信 号に対するシミュレートされた DUTの応答を、 既知の良好な DUT応答と比較する。 この比較に基づいて、 ソフトウェアは、 そのモジュールによって実行されているテ ストが所望のとおり DUTをテストするという目標に適合しているかを判断し、 ユー ザがオンラインの実際のテスタ上の IC (実際の DUT) 上でそれを用いるのに先立つ て、 モジュールのデバッグを行うことを助ける。
ロードボ一ドシミュレーションィンタフェース 2 2 8 5は、 モジユーノレエミュレ ーションレイヤおよぴシミュレートされるロードボ一ド 2 2 8 6への、 およびこれ らからの信号のためのルートとして機能する。 口一ドボ一ドシミュレーシヨンコン ポーネント 2 2 8 6は、 デバィスソケットマッピングと、 DUTシミュレーシヨン IF 2 2 8 7への、 およびそれからの信号伝達とをサポートする。
DUTシミュレーションは、 ネイティブコード (すなわち C/C++) シミュレーション 2 2 9 1、 または対象の DUTモデル 2 2 9 3の機能モデルに対する Verilogプログ ラミング言語インタフェース (PLI) であってもよい。 このモデノレは、 DUTシミュレ ーシヨンインタフェース 2 2 8 7を通じて、 シミュレートされるロードボ一ドとィ ンタフェース接続する。
これらのレイャの全体の制御はシミュレーションフレームワーク 2 2 8 1によつ て提供されることに留意されたい。 シミュレーションフレームワークは、 既知の活 性化信号に対するシミュレートされた DUT応答を測定する。 システムェミュレーシ ョンの方法は、 米国出願第 10/403, 817号に開示されている。 通信おょぴ制御
通信および制御は、 関連するソフトウエアオブジェク トの管理を通じて実現され る。 好ましくは、 通信のメカニズムは、 システムコントローラ上のオブジェクトモ デルの後ろに隠れている。 このオブジェクトモデルは、 サイ トコントローラ上に見 られるクラスおよぴォブジェク トに対してプロキシを提供し、 それによつて、 ァプ リケーシヨンの開発(例えば IC装置のテスト) のための便利なプログラミングモデ ルを提供する。 これにより、 アプリケーションの開発者 (例えば ATEシステムのュ 一ザ) は、 アプリケーションとサイ ト Zシステムコントローラとの間の通信の具体 的な情報に関連する不要な詳細を避けることが可能である。
図 1 1は、 サイト制御装置 1 3 0内のサイ トコントローラソフトウエア 2 2 4 0 に維持されているときのサイ トコントローラオブジェクトの具体的な実施形態を示 してレヽる。 サイ トコントローラオブジェク トは、 CmdDispatcher 2 6 0 2、 FunctionalTestMsgHandler 2 6 0 4および FunctionalTest 2 6 0 6を有している。 インタフェースは、 IMsgHandler 2 6 0 8および ITest 2 6 1 0を有している。 好ましくはサイトコントローラ 2 2 4 0は、 アプリケーションがアクセスのため に必要とする機能クラスの全てを含んでいる。これらのクラスは、例えば、テスト、 モジュール、 ピン等を含む。 ユーザのテストおょぴソフトウェアツールは典型的に は異なるコンピュータ上に存在するので、 メッセージは、 システムコントローラ上 のツールからサイトコントローラ上のサーバに送られる。 このサーバは、 コマンド 発送オブジェクトに関する方法を必要とする。
コマンド発送オブジェクト (CmdDispatcher) 2 6 0 2は、 IMsgHandlerインタフ エース 2 6 0 8をィンプリメントするメッセージハンドラォブジヱクトのマップを 保持する。 図 1 1 は、 IMsgHandler の具体的なィンプリ メ ンテーショ ン FunctionalTestMsgHandler 2 6 0 4を示している。 DmdDispatcher オブジェク ト 2 6 0 2によって受信されたメッセージは通信すべきオブジェク トの識別子を含んで いる。 この識別子は、 内部のマップにおいて見られ、 具体的なインプリメンテーシ ョン、この場合には図示されている FunctionalTestMsgHandlerオブジェクト 2 6 0 4に帰着する。
本例では、 IMsgHandler 2 6 0 8は、 単一の方法 handleMessage Oからなる。 この 方法は、 好ましくは単一のインプリメンテーションクラスとしてインプリメントさ れる。 図示されている場合においては、 FunctionalTestMsgHandler 2 6 0 4は、 入 つてくるメッセージの正確な性質に応じて、 6つの方法のうちの 1つにメッセージ を送る。 入ってくるメッセージのヘッダは、 メッセージハンドラがどのようにメッ セージを解釈し、 どこにメッセージを送るかを決定することを可能にするメッセー ジ IDを含んでいる。
システム制御装置 1 1 0における対応する通信環境は、 システムコントローラソ フトウエア 2 2 2 0のツール 2 2 2 5、 2 2 2 6セクションに関連する。図 1 2は、 システムコントローラソフトウエア 2 2 2 0においてシステム制御装置 1 1 0上に '保持されるツールオブジェクト (あるいはシステムコントローラオブジェクト) の 一実施形態を、 図 1 1に示したサイ トコントローラオブジェクトと対応するように 示している。 ツーノレオブジェク トは、 オブジェク ト CradDispatcher 2 7 0 2、 FunctionalTestMsgHandler 2 7 0 4およぴ FunctionalTestProxy 2 7 0 6を含んで いる。 インタフェースは、 IMsgHandler 2 7 0 8、 ITestClient 2 7 1 0、 およぴ IDispatch 2 7 1 2を含んでいる。またユーティリティアプリケーション 2 7 1 4も 含まれる。
この例に関して、 クラス CmdDispatcher 2 7 0 2、 IMsgHandler 2 7 0 8、 および FunctionalTestMsgHandler 2 7 0 4は図 1 1に示したものと同じである。 しかしな がら、 FunctionalTest 2 6 0 6 (あるいは他のいかなるサイトコントローラクラス) のィンスタンス化は用いられない。 代わりに、 ツールオブジェクトは、 サイト制御 装置 1 3 0上の各ォブジェクトと通信するためのプロキシクラスを有している。 し たがって例えば、 ツールオブジェク トは FunctionalTest 2 6 0 6に代えてクラス FunctionalTestProxy 2 7 0 6を含んでいる。 同様に、 ツーノレオブジェク 1、における ITestClient 2 7 1 0は、 サイトコントローラオブジェク トにおける ITest 2 6 1 0 と同じではない。 一般的に、 サイト制御装置 1 3 0上で動作するアプリケーション は、 サイ ト制御装置 1 3 0上に設けられているものそのもののようなインタフエ一 スを用いない。 この場合、 ITest 2 6 1 0の 3 つの方法 (すなわち、 preExec ()、 execute ()および postExec O ) は ITestClient 2 7 1 0における単一の方法(すなわ ち runTest () ) に置き換えられる。 また ITestClient 2 7 1 0は、 好ましくはデュア ルインタフェース、 すなわち、 IDispatch 7 1 2を受け継ぐものであり、 マイクロソ フトコンポーネントオブジェク トモデル (COM) としてインプリメントされる。 それ は、 そのィンタフェースをィンプリメントするォブジェク トへのスクリプトェンジ ンのアクセスを可能にするようなインタフェースを提供する。 これによつて、- シス W
53 テムをマイクロソフトウィンドウズプラットフオーム上で記述することが可能とな る。
図 1 1〜 1 2に示す実施形態の動作の一例として、 (例えば、 ツールセクシヨン 2 2 2 6、 2 2 2 8のうちの一つにおいて) システム制御装置 1 1 0上で動作するァ プリケーシ 3ンは、テストプラン 2 2 4 2がーつ以上の FunctionalTestォブジヱク ト 2 6 0 6を有しているようなサイト制御装置 1 3 0と通信してもよい。 サイト制 御装置 1 3 0上でのテストプラン 2 2 4 2の初期化中に、 対応するテストプランォ ブジェクトはサイト制御装置 1 3 0上にロードされ、 TestPlanMessageHandlerォブ ジェクトを構成し、それを CmdDispatcherオブジェク卜 2 6 0 2ととちに登録する。 これがメッセージハンドラに独自の IDを割り当てる。 同様な動作は、テストプラン 2 2 4 2を構成する他の TestPlanオブジェクトでも起こる。
システム制御装置 1 1 0上の (例えばツール 2 2 2 6、 2 2 2 8における) ァプ リケーシヨンは、 通信ライブラリ 2 2 3 0を初期化し、 通信チャネルを介してサイ ト制御装置 1 3 0に接続し、 TestPlanオブジェクトのための IDを取得する。 この 初期化中に、 プロキシオブジェクトは、 それがテストをいくつ含んでいるかと、 そ れらのタイプおよび IDとを決定する。それはタイプごとに(この場合には一つだけ のタイプ)適切な DLLをロードし、それらに関するプロキシオブジェクトを構成し、 それらを ID値を用いて初期化する。
TestProxy オブジェクトも初期化する。 これをするために、 それらは、 それらの 名前を(それらの ID値を用いて)取得するための適切なメッセージを構成してサイ ト制御装置 1 3 0の通信サーバに送信する。 通信サーバは、 メッセージを CmdDispatcher 2 6 0 2に渡す。 このオブジェクトは、その内部マップにおいて宛先 IDを調べて、 FunctionalTestMsgHandler 2 6 0 4の handleMessage O方法にメッセ ージを送る。 例えばもしメッセージがテスト名取得の要求であれば、 これらのォブ ジェタトは、 それぞれのテスト名を取得し、 適切なネーム列でアプリケ一ションの TestProxyオブジェクトに応答する。
初期化が完了すると、 アプリケーションは、 TestPlanオブジェクトへのリモート アクセスと、それを通じて両方の Testオブジェクトへのリモートアクセスを有する。 ユーザはここで、 例えば、 アプリケーション上の 「テストプラン起動」 のボタンを 押す。 その結果、 アプリケーショ ンは TestPlanProxy オブジェク ト上の RunTestPlan ()方法を呼び出す。 この方法は、 TestPlan オブジェク トの宛先 ID で RunTestPlanメッセージを構成し、 RPCプロキシ上で sendMessage ()機能を呼び出す。 この機能がサイトコントローラにメッセージを送信する。
サイト制御装置 1 3 0上の通信サーバは、 CradDispatcher オブジェク ト 2 6 0 2 上の handleMessage O方法を呼び出し、 TestPlanオブジェクトの IDをそれに渡す。
CradDispatcher オブジェク ト 2 6 0 2はその内部マップでこの ID を調べて、 TestPlanオブジェクト用のメッセージハンドラを見つけて、 このオブジェクト上の handleMessage ()方法を呼び出し、これが TestPlanオブジェクト上の RunTestPlan () 方法を呼び出す。 同じようなやり方で、 アプリケーションは名前と Testオブジェク トの最近の動作状況とを取得することができる。 通信ライブラリを用いる方法
通信ライブラリ 2 2 3 0を用いる例を以下に述べる。
通信ライブラリ 2 2 3 0は好ましくは静的なライブラリである。 アプリケーショ ンは、 ComraLibrary. h ファイルを通してこの通信ライブラリを使用することができ る。 通信ライブラリクラスをエクスポートする必要があるアプリケーションは、 上 記インクルードファイルを含むことに加えて、 定義されたプリプロセッサ定義 COMMLIBRARY— EXPORTS、 C0MMLIBRARY_F0RCE— LINKAGE を有していなければならない。 通信ライブラリをインポートするアプリケーションは、 プリプロセッサ定義を何も 定義する必要はない。 通信ライブラリがサーバとして用いられるときには、 アプリ ケーシヨンは、 CcmdDispatcher の次の静的な関数を呼び出さなければならない: InitializeServer (unsigned long portNo) 0
この portNoは、 サーバが要求を待たなければならないポート番号である。 サーバ に対応するコマンドディスパッチャは、 静的な関数 getServerCmdDispatcher を CcmdDispatcherクラス上に呼び出すことによつて読み出される。
通信ライブラリがクライアントとして用いられるときには、 アプリケーションは し cmdDispatcherの官争白勺な関数「InitializeC丄 lent const OFCString serverAddress, unsigned long serverPortlNo, CcmdDispatcher **pCmdDispatcher, OFCString serverld)」 を呼び出さなければならない。
この serverAddressおよぴ ServerPortNoは、 クライアントが接続しなければなら ないものである。 この関数は、 クライアント用のコマンドディスパッチャポインタ およぴそれが接続するサーバ IDを初期化する。また、後の時点で、クライアントは、 静的な関数 getClientCradDispatcherを呼び出すことによってサーバ IDに対応する コマンドディスパッチャを取り出すことができる。 .
通信ライブラリがコンパイルされるときには、 ファイル Clientlnterf ace. idlお よび Serverlnterface. idl上ではビルドは排除される。 好ましい実施形態は、 これ らのインタフェース定義ファイルに関して既に生成されたスタブぉよぴプ口キシフ アイルを適用して、 プロキシおよびスタブインプリメンテーションファイルを同じ ライブラリにリンクする。 したがって、 サーバおよびクライアントは、 同じアドレ ス空間内にインスタンス化される。 インタフェース定義ファイルおよびスタブファ ィルにおける以下の変更は、 好ましくは、 通信ライブラリをサーバおょぴクライア ントとして同じァドレス空間内で動作させるために行われる。 インタフェース定義ファイルにおける変更
以下のネームスペースの宣言は、 好ましくは、 インタフェース定義ファイルのそ れぞれにおいて付カ卩される。 これは、 プロキシインプリメンテーション機能とイン タフエース機能の我々自身のインプリメンテーシヨンとの名前の衝突を避けるため である。 以下のネームスペースの宣言は、 serverlnterface. idl において付加され る。
スタブインプリメンテーションファイルにおける関数は、 インタフェースにおい て宣言された機能のための我々自身のインプリメンテーシヨン関数を呼び出すよう に変更される。 すなわち、 我々は、 インタフェースにおいて宣言された機能のそれ ぞれに対応する異なる名前の関数をもつことになる。
関数呼び出しにおける競合を避けるために、 インプリメンテーション関数の名前 を 「C0MM_」 列で始まる名前とすることが好ましい。 そうすればスタブ関数における コードは、 「; functionName」 に代えて 「C0匪— functionName」 を呼び出すように変更 される。 この方法が動作するためには、 存在する全ての機能クラスは、 対応するメッセ一 ジハンドラオブジェクトおよびプロキシクラスも有していなければならない。 全て のメッセージハンドラオブジェク トは、 通信ライブラリによって提供される IMsgHandlerクラスから得られなければならない。 IMsgHandlerクラスは抽象的なク ラスである。 メッセージハンドラのインプリメンタの任務は、 handleMessage、 setObject、 handleErrorの定義を提供することが好ましい。 全てのメッセージタイ プは、 1から始まらなければならなレヽ (ゼロは handleErrorのためにとっておく)。 機能クラスは好ましくは、 そのメンバが可変であるように対応するメッセージハン ドラを有する。 機能クラスのコンストラクタにおいて、 機能クラスは、 そのメッセ ージハンドラによって提供される関数を呼び出すことによって、 メッセージハンド ラと ともに自身を登録させる。 次にメ ッセージハンドラオブジェク トは、 addMsgHandler 関数をコマンドディスパッチャ上にパラメータとしてのメッセージ ハンドラとともに呼び出すことによって、 コマンドディスパッチャとともに登録さ れなければならない。 addMsgHandler 関数は、 メッセージハンドラおょぴ機能クラ スに IDを割り当てる。機能クラスのデストラクタは、パラメータとしての機能クラ ス識別子を送ることによって、コマンドディスパッチャ上に r emoveMsgHandl er関数 を呼び出さなければならない。 またプロキシクラスも、 機能クラスに関して説明さ れたように、 同じ登録手順に従わなければならない。 システム構成とテスト
図 1 3は、 本発明の一実施形態による名目上のテストシーケンス 2 8 0 0を示し ている。 テス トシーケンス 2 8 0 0は、 テス ト環境 2 8 0 4におけるモジュールの インストーノレ 2 8 1 5を含んでおり、 これはテスト準備 2 8 0 6とシステムテスト 2 8 0 8とを包含している。 初めに新しいモジュール (ハードウェアまたはソフト ウェアまたはこれらの組み合わせ) 2 8 1 0が (ベンダの品質管理に基づいている かもしれないいくつかの外部手順によって) 認証 2 8 1 2される。 インストール 2 8 1 5はまず、 才フラインシミュレーション 2 8 0 9のためのハードウエアモジュ ールエミュレーシヨンの設定、 テス トプログラム開発 2 8 1 4のためのモジュール リソースファイルおよびインタフェースの設定、 ならびにパターンコンパイル 2 8 16のためのモジュール特有の^^ターンコンパイラの設定を含むテスト準備 280 6を必要とする。 次にシステムテスト 2808力 較正 2817、 診断 2818お よび構成 282◦からの入力を用いて実行される。 そして新しいモジュールに対し て、 (1) インタフェース制御、 (2) 同期、 順序付けおよび再現性、 (3) エラー/ アラーム対応、 (4) マルチサイト制御、 ならびに (5) マルチインストウルメント モジュール制御を含むシステムテスト 2808が行われる。
(補足説明 B) DUT 100のシステムソフトウエアのフレームワークの仕様例 B. 1 概要
本仕様は、 試験エミュレート装置 190、 又は、 システム制御装置 110及ぴサ イ ト制御装置 130の分散システムによるエミュレート環境 (オフライン環境) を 中心として、 DUT 100のシステムソフトウエアのユーザ及ぴ開発者向けのフレ ームワークを示す。 B. 2 ユーザの仕様
本章は、 試験装置 10のシステムソフトゥヱァの、 ユーザ向けのフレームワーク を示す。
B. 2. 1 SimTester
rSimTester (シミュレーションされた試験装置)」 は、 コンピュータ 20を図 2 に示した試験エミュレート装置 190として機能させるアプリケーションプロダラ ムである。 SimTesterは、 各モジュール及ぴ DUTの DLLをロードして、 システム ソフトウェアからのコマンドに応答して試験装置をエミュレートする。 ここで、 シ ステムソフトウエアは、 シミュレートするパターンをロードし実行するランタイム ソフトウエアである。
SimTesterは、 起動されると、 シミュレーションコンフィギュレーションフアイ ルを読み出す。 この結果、 試験エミュレート装置 190を同期モジュールエミユレ ート部 250、 同期接続モジュールェミュレート部 260、 及び/又は試験モジュ ールエミュレート部 270として機能させる全てのモジュールエミユレーシヨン D LLがロードされる。 DLLがロードされると、 SimTesterは、 システム制御装置 1 1 0からの接続を待つ。 システム制御装置 1 1 0は、 テストプランをロードする と SimTesterに接続する。 テストプランは、 オフラインコンフィギュレーションフ アイルを含む。 システム制御装置 1 1 0がテストプランのデータを実際にロードす る前に、 オフラインコンフィギュレーションファイルを SimTesterに渡し、 初期化 を完了できるようにする。 オフラインコンフィギュレーションファイルのロードに 成功すれば、 SimTesterは D U Tモデルをロードし、 D U T接続部 2 8 0及び D U Tシミュレート部 2 0 0として試験モジユーノレエミュレート部 2 7 0等のモジユー ルエミュレータに接続させる。 この時点で、 シミュレーションは、 パターンの読み 出し及び実行の準備ができたこととなる。 '
テストプランがアンロードされると、 SimTesterは D U Tモデルをアンロードす るシグナルを受け、 新たなオフラインコンフィギュレーションフアイルの受付を待 つ。
B . 2 . 2 コンフィギュレーションフアイノレ
SimTesterは、 2つのコンフィギュレーションファイ^"を使用する。 第 1のファ ィルは、シミュレーションコンフィギュレーションフアイノレである。本ファイルは、 シミュレーション中にどのようなモジュールが使用可能となる力を特定する。 第 2 のファイルは、 才フラインコンフィギュレーションフアイノレである。 このフアイノレ は、 どの D U Tモデルがロードされ、 どのように試験装置に接続されるかを特定す る。
B . 2 . 2 . 1 シミュレーションコンフィギュレーションフアイノレ
図 1 4から 1 5は、 シミュレーションコンフィギュレーションファイルの一例で ある。 シミュレーションコンフィギュレーションファイ^/は、 階層的にブロック化 されている。
グローバルセクション 5 0 1 0は、 全体的な設定を行う。 InitialVoltageパラメ一 タは、シミュレーションスタート時における全ての配線の電圧の初期値を設定する。 この値は、 ドライブされてレ、なレ、配線の電圧レベルの指定にも用いられる。
RecoveryRateパラメ一タは、 ォプションのパラメータであり、 2つのアナログ信 号が対向してドライブされた場合に用いられる。 より具体的には、 当該パラメータ は、 2つのアナログ信号により配線がドライブされた場合に、 一定の電圧レベルと なるまでに要する時間を決定するために用いられる、 時間当たりの電圧変化量を示 す。 .
モジュールエミュレーションセクション 5 0 2 0は、 モジュール D L Lを指定し、 当該モジュール D L Lの設定を行う。
Waveformセクションは、 各モジュールにおレ、て使用される波形モデルを宣言す る。波形モデルは、 D U Tの端子に接続されるチャネル毎に、 Step (ステップ波形)、 Slew (スリュー波形)、 及び Analog (アナログ波形) 等を指定する。
Portセクションは、 試験ェミュレ一ト装置 1 9 0を同期モジュールェミュレ一ト 部 2 5 0、 同期接続モジュールェミュレート部 2 6 0、 及び/又は試験モジュール エミュレート部 2 7 0等として機能させるモジュールエミュレータのインスタンス を宣言する。
LogicalPortパラメータは、 実機におけるあるチャネルの不良等により、 当該チヤ ネルに挿入されていたモジュールを他のチャネルに差替えた場合に、 モジュールェ ミュレータ上で当該差替えを記述するために設けられる。
モジュールエミュレーションセクション 5 0 2 0にける Paramsセクションは、 モジュール D L Lに渡すべきパラメータを記述する。
B . 2 . 2 . 2 オフラインコンフィギュレーションフアイノレ
図 1 6から 1 7は、 才フラインコンフィギュレーションファイルの一例である。 グローバルセクション 5 1 1 0は、 全体的な設定を行う。 RegSelectパラメータ は、 パターンのトレース時にトレースすべきレジスタを選択するファイルを指定す る。
D U Tモデルセクション 5 1 2 0は、 D U Tモデルとなる D L Lファイルの指定 や、 各種の設定を行う。
Waveformパラメータは、 各 D U Tの端子ごとに、 波形モデルを設定する。 D U Tブロックは、 主に Paramsブロックと、 PinConnectionsブロックとを含む。
Paramsブロックは、 モジュール D L Lに渡すベさパラメータを記述する。
PinConnectionsブロックは、 試験装置のリソースと D U Tの端子との接続を指定 する。 すなわち例えば、 「L3.ll 10 1.0ns」 は、 論理ポート 3の 1 1番目のリソース は D U Tの端子 1 0に接続され、配線遅延が 1 . 0 n sであることを示す。ここで、 論理ポートとは、 例えばモジュールが実装されるポートであり、 リソースとは、 当 該モジュール内に設けられたチヤネル対応論理等である。
B . 3 開発者向けの仕様
試験装置のモジュールや D U Tモデルは、 図 5に示したモジュールエミュレート 'プログラムのフレームワークを用いて、 例えば C + +言語のクラス関数から派生す ることにより作成される。 この派生に伴い、 基本クラス中の幾つかの仮想関数を実 装する必要がある。 また、 このフレームワークは、 試験装置のモジュールと D U T モデルの間の I ZOの実現を容易化する関数を含む。 そして、 このフレームワーク に従うことにより、 得られた D L Lを試験エミュレート装置 1 9◦上で他のコンポ 一ネントに接続してエミユレーションを行うことができる。
B . 3 . 1 オフラインフレームワーククラスの構造
図 1 8は、 図 5に示したクラス階層構造をより詳細に記述したクラス階層構造 5 2 0 0である。 ThirdPartyModuleクラスや ThirdPartyDUTクラス内の各メソッ ドは仮想メソッドであり、 本モデルの振る舞いを定義するために実メソッドの実装 を要 Tる。 SmiComponent 本クフス内の createDomain、 registerDomam s releaseDomam、 getDomam、 registerEvent 及ぴ raiseEventメソット ^、 試験 エミュレート装置 1 9 0をスケジュール制御部 2 7 5等として機能させる、 D U T 1 0 0のソフトウエアシミュレーシヨンエンジンをアクセスするサービスを提供す る。
図 1 9は、 当該フレームワークにおいてインターフェイスとして用いられるチヤ ネルオブジェクトの使用ダイアグラムを示す。 試験装置のモジュール及び、 D U Tモ デルは、 SimChannelオブジェクトの配列を含む。 SimChannelオブジェクトの各 ィンスタンスは、 当該モデルの I /〇チャネルに対応する。 I Oチャネルは、 SimChanIDォプジヱク トを用いて識別される。 SimChannelクラスは、 モジユー ルゃ D U Tモデルが、 出力チャネルに出力すべき電圧のタイミングを書き込み、 入 力チャネルから特定のタイミングで電圧を読み出すために用いられる。 入力チヤネ ルからある時間ウィンドウの間に入力された信号のェッジをスキャンする場合、 SimChannel::getWaveformIterメソッドを呼び出して、 SimWavefromlterのイン スタンスを得ることができる。 そして、 SimWaveformlterオブジェクトは、 呼び出 し側のルーチンに、 有限の時間ウィンドウの全てのエッジについて繰返し処理を行 うことを可能とさせる。
図 2 0は、 当該フレームワークにおいてインターフェイスとして用いられるィべ ントオブジェクトの使用ダイアグラムを示す。 ィベントは、 当該フレームワークと サードパーティモデルとの間における通信に用いられる。 イベントは、 SimEvent クラスにより力プセル化されている。 SimEventのインスタンスは、 SimEventMgr クラスにより生成される。 一般的には、 1つのモデルは SimEventMgrの 1つのィ ンスタンスを持つ。 しかし、 もし 1つのモデルが他のモジュールに特別なィベント を送信する場合、 複数の SimEventMgrインスタンスが必要となる。
B . 3 . 2 試験装置のモジュールの実装
本節では、 単純なデジタルドライバモジュール及ぴデジタルストローブモジユー ルを例として、 モジュールの実装方法を示す。
図 2 1は、 試験装置のモジュールの一例として、 単純なデジタルモジュールの基 本クラスを示す。 デジタルドライバモジュール及ぴデジタルストローブモジュール のクラスは、 基本クラスの派生クラスとして生成する。
開発者は、 当該基本クラスに基づいて、 基本クラスのコンストラクタ、 チャネル オブジェクトを返す getChannelメソッド、 モジュールのメモリアドレス空間を設 定する setBaseAddressメソッド、 バススィツチ 1 4 0のス口ット番号を設定する setBusNumber メ ソッ ド、 割込みの禁止ノ許可を設定する locklnterrupt / unlocklnterrupt メソッド、 及ぴ、 モジュールのメモリアドレス空間をアクセスす る readZwriteメソッド等を実装する。
B . 3 . 2 . 1 ローカノレイベント
オフラインのシミュレーションは、 イベントドリブンで行われる。 すなわち、 各 モジュールはイベントを登録する。 そして、 イベントが発生するとイベントを登録 したモジュールの handleEventメソッドが呼び出される。
イベントは、 SimEvent クラスによって定義され、 同期イベント及ぴ非同期ィべ ントに分類される。 非同期イベントは、 更にシステムイベント及ぴローカル非同期 ィベントに分類される。 システムイベントは、 例えばシステム割込み、 及ぴパター ン生成の終了等である。
B . 3 . 2 . 1 . 1 ローカル非同期ィベント
• ロー力ル非同期'ィベントは、 モジュール間の通信に用いられる。 このイベントに は、 時間は関連付けられない。 非同期イベントの受信を要求する場合、 モジュール 'は、 オーバーロードされた、 時間の引数を持たない registerEventメソッドにより イベントを登録する。 非同期イベントを発生する場合、 モジュールは、 raiseEvent メソッドを呼び出す。 非同期イベントを受信するモジュールは、 オーバーロードさ れた、時間の引数を持たない handleEventメソッド内においてィベント処理を行う。 B . 3 . 2 . 1 . 2 ローカル同期イベント
ローカル同期イベント (同期イベント) は、 モジュールがリードイベント又はラ ィ トイベント、 すなわち信号のストロープ又はドライブをスケジユーノレするために 用いられる。 同期イベントは、 モジュールが特定のタイミングで通知を受けるため に用いられ、 モジュール間の通信には用いられない。
B . 3 . 3 単純なデジタルドライバモジュール
図 2 2は、 単純なデジタルドライバモジュールのクラス宣言を示す。 開発者は、 当該クラスのコンストラクタ、 ベンダ Zモジュールの情報を返す getModulelDsメ ソッド、及ぴ、 ドライバモジュールを初期化する initEventsメソッド等を実装する。 図 2 3は、 デジタルドライバモジュールの handleEventメソッドの一例である。 デジタルドライバモジュールは、 現在のサイクルにおいて、 全てのチャネルにエツ ジを書き込む。 この書き込みは、 SimChamiel オブジェク トの配列である m_channelsの各要素における setメソッドにより行われる。 Sim Channelオブジェ クトは、 setメソッドの他、 offメソッド及ぴ endメソッドを有する。 offメソッドは、 信号のドライブを中止する。 endメソッドは、 当該チャネルが所定の期間、 すなわ ち例えばサイクル期間の信号の生成を終えたことをフレームワークに通知する。 こ の通知を受けると、 チャネルの反対側のコンポーネント、 すなわち例えば D U T接 続部 2 8 0に対してチャネルの読み出しを指示するシグナルが通知される。 この結 果、 生成した信号が当該コンポーネントによって読み出される。 一般的には、 使用 者は、 複数の setメソッドにより所定の期間の電圧を特定した後、 当該期間の最後 に endメソッドを 1回呼び出すことで、 当該期間の信号を生成し伝搬させることが できる。 なお、 setメソッド及ぴ endメソッドの関係については、 B . 3 . 5にお いて詳細に示す。
B . 3 . 4 単純なデジタルストローブモジュ一ノレ
図 2 4は、 単純なデジタルストローブモジュールのクラス宣言を示す。 開発者は、 デジタルドライバモジュールと同様にして、 コンストラクタ、 etModulelDメソッ ド、 initEventsメソッド等を実装する。 ここで、 デジタルストローブモジュールに おいては、 D U Tの出力値及び期待値の比較結果をフエイルメモリに格納するため、 read及ぴ writeメソッドを変更する。
図 2 5は、デジタノレストローブモジュールの handleEventメソッドの一例である。 デジタルストローブモジュールは、 SimChannelの readメソッドを用いて、特定の タイミングにおける当該チャネルの電圧を読み出す。 そして、 サイクル期間の処理 を終えた後、 SimEventMgr才ブジェクトに次のサイクルの終了タイミングを通知 しイベントの発生を要求すると共に、 registei'Eventメソッドにより当該イベントを 登録する。
B . 3 . 5 D U Tモデルの実装
D U Tモデルは、 イベントドリブンでない点を除き、 試験装置のモジュールと同 様の手順によ り作成できる。 したがって、 D U Tモデルの基本クラス SimComponentStepped. f3_、 initEventsメソッ ド、 handleEventメソッド、 及ひノヽ ス I ZOメソッドを実装可能とする。 パターン実行の間における D U Tモデルの振 る舞いを定義するために、 関数 runを実装する必要がある。
図 2 6は、 試験装置により ドライブされた 8—本の配線が、 試験装置に再度入力さ れる D U Tモデルのクラス定義を示す。 開発者は、 当該クラスに基づいて、 コンス トラクタ、 getChannelメソッド、 及び runメソッド等を実装する。
図 2 7は、 本 D U Tモデルの runメソッドの一例を示す。 runメソッドは、 開始 時刻及ぴ終了時刻の 2つの引数を有する。 これらの引数により、 D U Tモデルは、 入力端子からの入力に基づいて内部状態を開始時刻から終了時刻まで進め、 D U T の内部状態の変化の結果に基づいてデータを出力する。 入力は、 SimChannelォプ ジェク トを通して行われ、 出力は、 SimChannelォブジェク トに対して送られる。 ここで、 出力は、 終了時刻の後にまとめて行われる。
runメソッドは、 入力端子をスキャンし、 D U Tの内部农態を更新し、 D U Tの 出力チャネルにデータを出力するステップを含む。 ここで、 実行の時間ウィンドウ の外に出力信号の fallェッジが存在する場合においても、 fallエッジを出力チヤネ ルに setメソッドにより書き込む必要がある。 そして、 endメソッドが呼び出され る際には、 出力信号は fallした状態でなければならない。 これにより、 出力信号の 値が変化しないため、 当該チヤネルの反対側のコンポーネントは、 終了時刻までの チャネルの電圧値を正しく読み出すことができる。 これを保証するために、 フレー ムワークは、最後の endメソッドの呼び出し後に、 当該 endメソッドょり先の時刻 についてのチャネルへの書き込みを禁止する。
B . 3 . 6 オフラインの D L Lインターフェイス
次に、 当該フレームワークに基づくモジュール及び D U Tモデルの D L Lをビル ドし、 これらのモデルのインスタンスを生成する関数、 及ぴ、 処理の終了後にタリ ーンアップする関数をエクスポートする。 これにより、 試験装置のモジュールをェ ミュレートする D L L及ぴ D U Tをエミュレートする D L Lを生成することができ る。
(補足説明 C ) システムバスアクセスライブラリの仕様例
C . 1 概要
図 2 8は、 実環境 6 0 0 0及ぴエミュレート環境 6 0 5 0におけるシステムバス アクセスライブラリ 6 0 1 4の位置付けを示します。 D U T 1 0 0の実環境 6 0 0 0及ぴ試験エミユレ一ト装置 1 9 0によるエミユレ一ト環境 6 0 5 0において共通 して用いられます。 図 2 8 ( a ) は、 実環境 6 0 0 0 (オンライン環境) におけるシステムバスァク セスライブラリ 6 0 1 4の位置付けを示します。 ソフトウェア 6 0 1 0は、 図 1に 示したサイト制御装置 1 3 0上で動作するソフトゥエアです。 ソフトウェア 6 0 1 0は、 試験装置 1 0の試験を制御するプログラムから H L C (High Level Command) を受け取って解釈してハードウェア 6 0 3 0へのアクセスコマンドを 生成する H L C処理部 6 0 1 2と、 アクセスコマンドに基づいて通信処理を行う通 信ライブラリ及ぴ通信ライブラリの指示に基づきシステムパス (本例においては P C Iバス) をアクセスするバスアクセスライブラリを含むシステムバスアクセスラ イブラリ 6 0 1 4と、 システムバスアクセスライブラリ 6 0 1 4の指示に基づいて システムバスを制御する P C Iバスドライバ 6 0 1 6とを含みます。
ハードウエア 6 0 3 0は、 図 1に示したサイト制御装置 1 3 0が有するバス I F 6 0 3 2と、 バススィツチ 1 4 0と、 同期モジュール 1 5 0、 同期接続モジュール 1 6 0及ぴノ又は試験モジュール 1 7 0等とを含みます。 サイト制御装置 1 3 0の バススロットに接続されたパス I F 6 0 3 2は、 P C Iバスドライバ 6 0 1 6によ り発行されたアクセスを、 バススィツチ 1 4 0を介して同期モジュール 1 5 0及び /又は試験モジュール 1 7 0等のモジュールへ送信し、 当該アクセスの処理を行わ せます。 図 2 8 ( b ) は、 エミユレ,ート環境 6 0 5 0 (オフライン環境) におけるシステ ムバスアクセスライブラリ 6 0 1 4の位置付けを示します。 オフラインプロセス 6 0 6 0は、 図 1に示したサイ ト制御装置 1 3 0又は試験ェミュレ一ト装置 1 9 0上 で動作するソフトウエアであり、 試験エミュレート装置 1 9 0をサイト制御エミュ レート部 2 3 0として機能させます。 オフラインプロセス 6 0 6 0は、 ソフトゥェ ァ 6 0 1 0においてハードウエア 6 0 3 0を制御する代わりに試験装置ェミュレ一 トプロセス 6 0 8 0を制御するように変更されたプロセスです。 オフラインプロセ ス 6 0 6 0は、 ソフトウエア 6 0 1 0と略同様の H L C処理部 6 0 1 2及びシステ ムバスアクセスライブラリ 6 0 1 4を用いて、 ソフトウエア 6 0 1 0の使用者に対 してソフトウヱァ 6 0 1 0と共通のユーザレベルインターフェイスを提供します。 試験装置エミユレ一トプロセス 6 0 8 0は、 試験装置 1 0をエミユレ一トするプ ロセスであり、 パススィッチ 1 4 0をエミュレートするシステムノ スエミュレータ 6 0 8 4と、 同期モジュール 1 5 0、 同期接続モジュール 1 6 0、 及び Z又は試験 モジュー^ ^ 1 7 0をエミュレートするモジユーノレエミュレータ 6 0 8 6とを含みま す。 システムバスエミュレータ 6 0 8 4は、 試験エミユレ一ト装置 1 9 0をバスス ィツチエミュレート部 2 4 0として機能させます。 モジュールエミュレータ 6 0 8 6は、 試験エミュレート装置 1 9 0を同期モジュールエミュレート部 2 5 0、 同期 接続モジュールェミュレート部 2 6 0及ぴ Z又は試験モジュールェミュレート眘 B 2 7 0として機能させます。 以下、 明記しない限り、 「モジュール」 は、 オンライン環 境における同期モジュール 1 5 0、 同期接続モジュール 1 6 0、 及び試験モジユー ノレ 1 7 0と、 オフライン環境における同期モジュールエミュレート部 2 5 0、 同期 接続モジュールェミュレート部 2 6 0、 及び試験モジュールェミュレート部 2 7 0 との総称として用います。
C . 2 モジュール制御汎用関数
本章では、 サイト制御装置 1 3 0上で動作し同期モジュール 1 5 0、 同期接続モ ジュール 1 6 0、 及び/又は試験モジュール 1 Ί 0を制御するモジュールドライバ で利用できる汎用的な機能を説明します。 モジュールドライバ内では、 当ライブラ リを用いて各種モジュール内のレジスタやメモリをアクセスし、 デパイス測定に必 要なデータをリード Zライトします。本章で説明する主な機能は下記のとおりです。 1. プログラム 10を用いたバスアクセス
2. DMA機能を用いたバスアクセス
3. インターラプトハンドリング
4. ライブラリ Zシステムパスの制御 C . 2 . 1 プログラム I Oを用いたバスアクセス
システムバスのアクセスは、 バス上に接続された各モジュールのレジスタへ MW(Machine Word)を直接に書き込む方式と、 各モジュールへ HLC(High Level Command) を転送する方式の 2種類があります。 何れの場合も、 Addressと Data がシステムバス上を流れます。 各モジュール側で Addressにより HLCと認識され た場合、各モジュール側でその HLCに対応した処理を実行します。サイト CPU (サ ィト制御装置 1 3 0 ) から各モジュールへのデータ書き込みは、 サイト CPUに接 続されている各モジュールへ同じデータが一斉に送出され、 各モジュール側で該当 するデータを取り込みます。
システムバスや各モジュール内には FIFOが配置されており、 サイト CPUから 各モジュールへデータを転送した場合、各モジュールのライト動作の終了を待たな いで CPUのライト動作を終了します (posted write)。 データが実際にレジスタに 格納されるまでの時間は、 CPUからターゲットのレジスタの間に存在する FIFOの 空き状態によつて影響を受けます。 全てのモジュ一ルに対してデータが確実に届!/、 たことを保証する場合は、 FIFO のフラッシュ待ち機能を利用してください。 各モ ジュール内のレジスタのリードを用いて FIFOをフラッシュする場合は、 リード対 象のモジュールの FIFOのみフラッシュされたことが保証できます。
オフラインのシステムパスエミュレータ 6 0 8 4には FIFOはありません。 その ため FIFOを持たないモジュールェミュレータ 6 0 8 6に対して PIOのライトを実 行した場合、 モジュールエミュレータ 6 0 8 6のレジスタにデータを格納したあと 関数から戻ります。
また、 オンライン同様に FIFOを持ったモジュールエミュレータ 6 0 8 6にデー タを書き込むと、モジュールエミュレータ 6 0 8 6の FIFOにデータを格納した後、 直ちにライト処理を終了します。
C . 2 . 1 . 1 プログラム I Oを用いたライト
モジュールのレジスタに対してデータを書き込みます。 サイト CPUは、 書き込 んだデータがモジュールに到達する前にライト動作を終了します (posted write)。
.名前: BCL— GBI— write
·形式: int BCL_GBi_write (unsigned mt address, unsigned mt data);
.引数: address (マシンヮードのァドレス)、 data (書き込むデータ)
'戻り値: BCL— GBI— 0K (正常終了)、 BCL GBI— ERROR (エラー)
C . 2 . 1 . 2 プログラム I Oを用いたリード
モジュールのレジスタのデータを読み出します。 サイト CPUは、 データが読み 出されるまで待ちます。また、 CPUからタ一ゲットのレジスタの間に存在する FIFO 内のデータがフラッシュされるまで対象レジスタのリードは待たされます。
.名刖 : BCL_GBI_read
•形式: int BCL一 GBI一: read (皿 signed mt address, unsigned int *data);
.引数: address (マシンワードめァドレス)、 data (データを読み込む変数へのポ. インタ)
'戻り値: BCL_GBI— OK (正常終了)、 BCL—GBI— ERROR (エラー)
C . 2 . 1 . 3 プログラム I Oを用いたブロックライト
モジュールレジスタに対してまとまったデータを書き込みます。 データのフォー マツトはァドレスとデータをペアで指定します。 システムバスはライトサイクルを •指定された回数分実行します。 ·
複数の任意ァドレスに対してデータを書き込む場合は、 毎回 BCL_GBI_writeO 関数で書き込むよりも高速に実行することが可能です。 これは、 関数呼び出しが 1 回で済む点や複数回の排他処理が行われないためです。
'名前: BCL— GBI— writeBlock
•形式: mt BCL_GBI_writeBlock(unsigned mt *address, unsigned mt *data, unsigned int number);
•引数: address (アドレスが格納されている配列へのポインタ)、 data (データが 格納されている配列へのポインタ)、 number (書き込むデータの数)
'戻り値: BCL—GBI—OK (正常終了)、 BCL—GBI— ERROR (エラー)
C . 2 . 1 . 4 プログラム I Oを用いたブロックリード
モジュールのレジスタのデータをまとまった単位で読み出します。 レジスタのァ ドレスは不連続な値で指定が可能です。 システムバスはリードサイクルを指定され た回数分実行します。
複数の任意アドレスからデータを読み込む場合は、 毎回 BCL_GBI— readO関数で 読み込むよりも高速に実行することが可能です。 これは、 関数呼び出しが 1回で済 む点や複数回の排他処理が行われないためです。
•名前: BCL— GBI— readBlock
'形式: mt B CL_GBI_re aaBlock wnsigne d mt "address, unsigned mt wdata, unsigned int number);
•引数: address (ァドレスが格納されている配列へのボインタ)、 data (データを 読み込む配列へのポィンタ)、 number (読み込むデータの数)
'戻り値: BCL_GBI— OK (正常終了)、 BCL—GBI— ERROR (エラー)
C . 2 . 1 . 5 プログラム I Oを用いた連続ブロックライト モジュールの等間隔ァドレスに配置されたレジスタに対してデータ列を書き込み ます。 指定された開始アドレスからデータ列を書き込み、 データを書き込む毎にァ ドレスへオフセット値が加算されます。 オフセット値は 0から 0x3ffffffまで指定す ることが可能です。 システムバスはライトサイクルを指定された回数分実行します。 複数の固定オフセッ トァ ド レスに対してデータを書き込む場合は、 BCL— GBI_writeBlockO関数で書き込むよりも高速に実行することが可能です。 こ れは、 ァドレスの加算がハードウエアで行われることにより、 PCIバス上を流れる パケット数が少なくなるためです。
'名前: BCL— GBI— writeSeq
'形式 : mt 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 (エラー)
C . 2 . 1 . 6 プログラム I Oを用いた連続ブロックリード
モジュールの等間隔ァドレスに配置されたレジスタからデータ列を読み込みます。 指定された開始ァドレスからデータ列を読み出し、 データを読み出す毎にァドレス へオフセット値が加算されます。 オフセット値は 0から 0x3ffffffまで指定すること が可能です。 システムバスはリードサイクルを指定された回数分実行します。
複数の固定オフセッ トァ ドレスからデータを読み込む場合は、
BCL_GBI— readBlockO関数で読み込むよりも高速に実行することが可肯 gです。 これ は、 アドレスの加算がハードウエアで行われることにより、 PCIバス上を流れるパ ケット数が少なくなるためです。
·名前: BCI_GBI_readSeq
'形式: mt B CL_GBI_re aaSe wnsigne d mt address, unsigned int *data, unsigned int number, unsigned int offset);
'弓 I数: address (マシンワードのアドレス)、 data (データを読み込むための配列 へのポインタ)、 number (読み込むデータの数)、 offset (データ転送毎にアドレス に加算されるオフセット値)
'戻り値: BCL一 GBI—OK (正常終了)、 BCL—GBI— ERROR (エラー)
C . 2 . 2 DMA機能を用いたバスアクセス
DMAを用いたデータ転送には、 以下の同期/非同期のライト Zリードの 4種類 の関数を準備しています。また、それぞれについて、バースト DMA /シングル DMA を選択できます。
( 1 ) 同期 Z非同期 DMA
同期 DMAの場合、 関数は DMAの終了を待って関数を終了します。 DMAの終了 を待って関数は終了しますが、 転送データはシステムバス I F やモジュール内の FIFOに残っている場合があります。
非同期 DMAの場合、 関数は DMAの終了を待たずに関数を終了します。 このた め、 データ領域のライフサイクルを DMAが終了するまで利用者側で保証する必要 があります。 また、 非同期 DMAの転送が終了しないあいだに、 さらに DMAを利 用する関数が実行された場合、前の DMA転送が終了するまで関数は待たされます。 非同期 DMA処理の完了を待っための識別情報として、 転送 I Dが用意されていま す。この転送 I Dは、 32ビットの符号なしデータで、 32ビットを越える回数の DMA 転送があった場合は、 0に戻り再利用されます。
( 2 ) バースト Zシングル DMA
パースト DMA転送は、 システムバス上をバースト専用のパケットでデータを転 送します。 この転送は、 1個のアドレスと N個 (最大 64個) のデータを 1組のパ ケットとして、 指定されたデータが終了するまでパケットを繰り返し転送します。 このため高速転送が可能です。
また、 DMA転送時に各種モジュール側のァドレスの増加値を指定することがで きます。 この増加値は、 2組目以降のパケッ ト転送時に、 パケットの先頭アドレス の算出に利用します。すなわち、 「(パケットのアドレス)二((指定した増加値) * (前 回のパケット中のデータの個数)) + (前回のバケツトの先頭ァドレス)」となります。 また、 バースト転送が可能なレジスタは、 モジュールに依存しているため、 利用 可能なレジスタかどうかの確認が必要です。 シングル DMA転送は、 システムバス 上をプログラム IOと同様にアドレスとデ ータがセットで転送されます。 このため、 転送速度はバースト DMAより低いです が、 どのレジスタに対しても転送が可能です。 DMA転送時、 システムバス側のァ 'ドレスの増加値を指定することができます。 この増加値は、 アドレスを発生するご とにアドレスに増加値が加算されます。
' オフラインの場合、 バースト転送を指定しても内部的にはシングル転送として扱 う仕様もとり得ます。 この場合、 バースト転送をサポートしてないレジスタへの転 送も可能です。 しかし、 オンラインでの利用を考慮すると、 ハードウエアでバース ト転送をサポートしてないレジスタに対しての利用は避けてください。 また、 オフ ラインの同期/非同期 DMAはオンラインと同様です。
C . 2 . 2 . 1 DMA機能を用いた同期ライト
サイト CPUのメモリ上に配置したデータを DMAを用いて各モジュールへ転送 します。 この関数は、 同期ライトでバースト/シングルの指定が可能です。
•名前: BCL— GBI— writeSyncDMA
·形式: mt
Figure imgf000073_0001
mt address, unsigned int *data, unsigned int number, unsigned mt offset, unsigned int mode);
'引数: address (マシンワードのアドレス)、 data (データが格納されている配列 へのポインタ)、 number (書き込むデータの数)、 offset (データ転送毎にアドレス に加算されるオフセット値)、 mode (Burst/Singleの動作モード)
·戻り値: BCL—GBI— OK (正常終了)、 BCL—GBI— ERROR (エラー)
C . 2 . 2 . 2 DMA機能を用いた同期リード
モジュール内のレジスタから DMAを用いてデータをサイト CPUのメモリ上へ 読み出します。 この関数は、 同期リードでバース Wシングルの指定が可能です。 -名前: BCL— GBI— readSyncDMA
·形式: mt B CL_GBi_r e adSyncDMA( nsigne d mt 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 (エラー) C . 2 . 2 . 3 DMA機能を用いた非同期ライト
サイト CPUのメモリ上に配置したデータを DMAを用いて各種モジュールへ転 送します。 この関数は、 非同期ライトでバースト/シングルの指定が可能です。
'名前: BCL— GBI— writeAsyncDMA
• i - i: mt B uL_GBi_write As ncDMA vunsigne d int address, unsigned mt *data, unsigned int number, unsigned mt offset, unsigned int mode, int *transferID)j •引数: address (マシンヮードのァドレス)、 data (データが格納されている配列 へのポインタ)、 number (書き込むデータの数)、 offset (データ転送毎にアドレス に加算されるオフセット値)、 mode (Burst/Singleの動作モード)、 transferlD (転 送終了待ち IDのポインタ)
'戻り値: BCL— GBI— OK (正常終了)、 BCL—GBI— ERROR (エラー)
C . 2 . 2 . 4 DMA機能を用いた非同期リード
モジュール内のレジスタから DMAを用いてデータをサイト CPUのメモリ上へ 読み出します。 この関数は、 非同期リードでバース ト ンンダルの指定が可能です。 '名前: BCL— GBI_readAsyncDMA
•形式: mt B CL_GBI_r e a Asy ncDMA(,unsigne d mt address, unsigned mt *aata, unsigned int number, unsigned int offset, unsigned int mode);
'弓 I数: address (マシンワードのアドレス)、 data (データを読み込むための配列 へのポインタ)、 number (読み込むデータの数)、 offset (データ転送毎にアドレス に加算されるオフセット値)、 mode (Burst/Singleの動作モード)、 transferlD (転 送終了待ち IDのポインタ)
'戻り値: BCL—GBI— OK (正常終了)、 BCL_GBI_ERROR (エラー)
C . 2 . 2 . 5 非同期 DMA転送の終了待ち
DMAを用いた非同期転送の転送終了を待ちます。 この関数は、 DMAが終了した 場合あるいは指定した時間が経過した場合、関数を終了します。時間の指定範囲は、 分解能が 1msの 32ビット符号付きタイマを使用するため、 0〜 (INT— MAX/1000) となります。 この範囲外の指定を行つた場合は、 BCL—GBI_INFINITEを指定した のと同じ扱いになります。 また、 transferlDを誤った値で指定した場合は、 すぐに BCL— GBI— OKを返し、 この関数を終了します。
.名前: BCL— GBI— waitDMA
· ·形式: int CL_GBi_waitDMA(unsigine d int transferlD, double timeOutj; ·弓 I数: transferlD (非同期モード転送時に返された転送終了待ち ID)、 timeOut (待ち時間。 BCL— GBI— INFINITE: DMAが終了するまで待つ)
'戻り値: BCL— GBI— OK (DMAが正常終了)、 BCL_GBI_ERROR (DMAがエラ 一)、 BCL—GBI— TIMEOUT (タイムアウト)
C . 2 . 2 . 6 非同期 DMA転送の状態
非同期 DMA転送の現在の状態を通知します。誤つた transferlDを指定した場合、 DMAの終了と同じ状態を通知します。
.名前: BCL— GBI— getConditionDMA
•形式: int BCL_GBI_getConditionDMA(unsigned int transferlD);
'引数: transferlD (非同期モード転送時に返された転送終了待ち ID)
'戻り値: BCL— GBIJDK (DMAが正常終了)、 BCL—GBI— ERROR (DMAがエラ 一)、 BCL_GBI— BUSY (DMA実行中)
C . 2 . 3 ィンターラプトハンドリング
システムバス アクセスライブラリでは、 インターラプトの基本的な操作を行うた めの機能を提供します。 システムバスアクセスライブラリを利用して操作できるィ ンターラブトには次の 4種類があります。
1. Busエラー割り込み (オンラインのみ)
最大で 65個のィンターラプトハンドラを登録することが可能です。
2. Busタイムァゥト割り込み
最大で 65個のインターラプトハンドラを登録することが可能です。
3. Syncエラー割り込み (オンラインのみ)
最大で 65個のインターラプトハンドラを登録することが可能です。
4.各種モジュールから発生する割り込み。
各バス番号で最大 2個のィンターラプトハンドラを登録することが可能です。 上記の割り込みは、 ともにインターラプト専用スレツドで実行されます。
システムバス I/Fが発生する、 Busエラー, Busタイムァゥト, Syncエラーの割 り込みは、インターラプト専用スレツドの内部でインターラプトをディセーブルし、 その後、それぞれ登録されている対象のィンターラプトハンドラを順次実行します。 対象となるインターラプトハンドラの実行終了後、 インターラプト専用スレッドは インターラプトの要因をクリアし、 内部でインターラプトをイネ一ブルします。 なお、 インターラプトの受付はインターラプトスレツド内でのイネ一ブル/ディセ 一ブルとは別に当ライブラリの関数でイネ一ブル/ディセーブルの制御が可能です。 種モジュールで発生する割り込みは、 インターラプト専用スレツドが内部でインタ 一ラプトをディセーブルし、 当該モジュールに対してインターラプトのロックを実 行します。 その後、 インターラプトを発生したバス番号に対応するインターラプト ハンドラを順次実行します。 対象となるインターラプトハンドラの実行終了後、 ィ ンターラプト専用スレツドは当該モジュールに対してインターラプトの要因をクリ ァします。 その後インターラプトのロックを解除し、 内部でインターラプトをイネ 一ブルします。
なお、 インターラプトの受付はインターラプトスレツド内でのイネーブノレ/ディセ 一ブルとは別に当ライブラリの関数でィネーブル/ディセーブルの制御が可能です。 インターラプトの禁止/許可は、システムバス I/Fボード上と、各種モジュール上で、 それぞれ制御が可能です。
システムバス I/Fボード側での禁止/許可は、 単純にモジュールからのィンターラ プトをイネ一ブル/デイセ一ブノレしています。モジュール側でのインターラプトの口 ック /アンロックは、モジュール側のィンターラプトの発生元でィンターラプトの発 生を制御します。 ロック中は、 モジュール内で新たなインターラプトの発生を禁止 し、 さらにィンターラブト関係のステータスの変化も禁止されています。 アン口ッ ク後、 モジュール側でのインターラプトの発生が可能となります。
C . 2 . 3 . 1 モジュールィンターラプトハンドラの登録
モジュールからインターラプトが発生した時のィンターラブトハンドラ関数を登 録します。 登録された関数はインターラプトが発生した場合、 インターラプトハン ドラ専用のスレッドで実行されます。 インターラプトハンドラは、 パス番号ととも に登録し、 ィンターラブトを上げたモジュールのバス番号と登録されているバス番 号が等しいィンターラブトハンドラを起動します。
また、 インターラプトハンドラに対して、 登録時に設定した値を同時に戻します。 インターラプトハンドラは、 各バス番号ごとに 2個登録することが可能です。 バス 番号は 1から 64まで指定可能です。 登録に成功すると戻り値にキー番号が返され ます。 このキー番号を使用して登録を行うと、 そのキー番号のインターラプトハン ドラの再登録及び、 削除が可能になります。 キー番号を 0にして登録を行うと、 空 いているキー番号にインターラプトハンドラが設定されます。 空いているキー番号 がない場合は、 エラーとなり戻り値に- 1が返されます。 インターラプトハンドラの 実行は、 2個登録されている場合、 若いキー番号から順に実行されます。
インターラプトノヽン ドラの削除は、 コールパック関数のァ ドレスを BCL—GBI— IGNORE— MODULE_HANDLERとして登録します。インタラプトスレ ッドは、 BCL_GBI_IGNORE— MODULE— HANDLERのインタラプトハンドラは実 行しません。 各バス番号ごとの 2 個のインターラプトハンドラが両方とも BCL_GBI_IGNORE_MODULE_HANDLER となった場合は、 そのバス番号のィ ンターラプトハンドラは初期状態に戻ります。 (アクセスライブラリ内の標準ィン ターラブトハンドラが設定されます。)
•名目 U: BCL_GBI_addInterruptHandler
•形式: int BCL_GBI_addInterruptHandler(unsigned mt BusNo, mt KeylSio, BCL一 GBI— MODULE— HANDLER handler, unsigned int arg);
• コーノレノ ック関数: void InterruptRoutine(unsigned int BusNo, unsigned int Factor, unsigned mt arg);
•引数: BusNo (バス番号)、 KeyNo (キー番号)、 handler (コールバック関数の アドレス)、 arg (インターラプトハンドラへ渡す値)、 Factor (割り込み要因 (各モ ジュールに依存))
'戻り値:インターラプトハンドラが登録されたキ一番号 (-1の場合、 登録に失敗 [不正なバス番号または、 キー番号] )
C . 2 . 3 . 2 バスエラーインターラプトハンドラの登録
システムパスでエラーが発生した場合のエラ一処理関数を登録します。 システム バスでエラーが発生した場合、 インターラプトスレッドは、 登録されている関数を 実行します。 なお、 システムバスでエラーが発生した場合、 インターラプトスレツ ドでインターラプトをクリアします。 インターラプトハンドラ内でのクリァは必要 ありません。
Busエラーのインターラプトハンドラは 65個まで登録することが可能です。 登 '録に成功すると戻り値にキー番号が返されます。 このキー番号を使用して登録を行 うと、 そのキー番号のインターラプトハンドラの再登録及び、 削除が可能になりま す。 キー番号を 0にして登録を行うと、 空いているキー番号にインターラプトハン ドラが設定されます。 空いているキー番号がない場合はエラーとなり、 戻り値に- 1 が返されます。 インターラプトハンドラの削除は、 コールパック関数のアドレスを BCL—GBI— IGNORE— BUSERROR— HANDLERとして登録します。
インタラプトスレッドは、 BCL_GBI_IGNORE_BUSERROR_HANDLERのイン タラプトハンドラは実行しません。 65 個のィンターラプトハンドラがすべて BCL_GBI_IGNORE_BUSERROR_HANDLERとなった場合は、初期状態に戻りま す。 (アクセスライブラリ内の標準インターラプトハンドラが設定されます。) Bus エラーはシステムパス上の通信エラーやハードウエアの故障などが原因となり発生 します。
なお、 オフラインでは Busでエラーが発生する要因がないため、 本関数で登録さ れたハンドラは動作することはありません。
·名目 U: BCL_GBI_addBusErrorInterruptHandler
• 开 式 : int BCL_GBI_addBusErrorInterruptHandler(int KeyNo,
BCL—GBI—BUSERROR— HANDLER handler, unsigned int arg);
• コーノレノ ック 效: void BusErrorInterruptRoutine(unsigned int arg);
'引数: KeyNo (キー番号)、 handler (コーノレバック関数のアドレス)、 rg (イン ターラプトハンドラへ渡す値)
•戻り値:インターラプトハンドラが登録されたキー番号 (-1の場合、 登録に失敗
[不正なバス番号または、 キー番号])
C . 2 . 3 . 3 パスタイムアウトインターラプトハンドラの登録
システムパスでタイムァゥトが発生した場合のエラー処理関数を登録します。 シ ステムパスでタイムァゥトが発生した場合、 インターラプトスレツドは、 登録され ている関数を実行します。 なお、 システムバスでタイムアウトが発生した場合、 ィ ンターラブトスレツドでインターラプトをクリアします。
- インターラプトハンドラ内でのクリアは必要ありません。 Busタイムアウトのィ ンターラプトハンドラは 65個まで登録することが可能です。 登録に成功すると戻 り値にキー番号が返されます。 このキー番号を使用して登録を行うと、'そのキー番 号のィンターラプトハンドラの再登録及ぴ、 削除が可能になります 9 キー番号を 0 にして登録を行うと、 空いているキー番号にインターラプトハンドラが設定されま す。 空いているキー番号がない場合はエラーとなり、 戻り値に- 1が返されます。 ィ ンターラプ トハン ドラの削除は、 コールバッ ク 関数のア ド レス を BCL—GBI— IGNORE— TIMEOUT_HANDLERとして登録します。
インタラプトスレッドは、 BCL—GBI—IGNORE_TIMEOUT— HANDLER のィン タラプトハンドラは実行しません。 65 個のィンターラブトハンドラがすべて BCL—GBI— IGNORE— TIMEOUT— HANDLER となった場合は、 初期状態に戻りま す。 (アクセスライブラリ内の標準インターラプトハンドラが設定されます。) Bus タイムアウトはケーブル抜け状態でのリ一ド時ゃ受信先がいない場合のリ一ド時に 発生します。 また、 ハードウェアの故障などもその原因となります。
•名刖 : BCL_GBI_addTimeoutInterruptHandler
• 形 式 : mt BCL—GB丄— addTimeoutinterruptHaiidier(mt KeyNo, BCL—GBI— TIMEOUT— HANDLER handler, unsigned int arg);
• コーノレノ ック関数 : void TimeoutInterruptRoutine( nsigned int address, unsigned mt Factor, unsigned mt arg);
•弓 I数: KeyNo (キー番号)、 handler (コールバック関数のアドレス)、 address (タイムァゥトが発生したマシンヮードのァドレス)、 Factor (タイムァゥトが発生 し た要因 [ BCL—GBI_FACTOR— MODULE : モ ジ ユ ー ノレ の リ ー ド 、 BCL—GBI— FACTOR— CONFIG : コ ン フ ィ グ レ ー シ ョ ン の リ ー ド 、 BCL—GBI— FACTOR— WRITE :すべてのライ ト] )、 arg (インターラプトハンドラ へ渡す値)
•戻り値:インターラプトハンドラが登録されたキー番号 (-1の場合、 登録に失敗 [不正なバス番号または、 キー番号])
C . 2 . 3 . 4 Syncエラーインタラプトハンドラの登録
システムバスで Syncェラーが発生した場合のェラ一処理関数を登録します。 シ ステムバスで Syncエラーが発生した場合、 インターラプトスレッドは、 登録され ている関数を実行します。 なお、 システムバスで Syncエラーが発生した場合、 ィ ■ンターラブトスレツドでインターラプトをクリアします。 インターラプトハンドラ 内でのクリァは必要ありません。
Syncエラーのインターラプトハンドラは 65個まで登録することが可能です。 登 録に成功すると戻り値にキー番号が返されます。 このキー番号を使用して登録を行 うと、 そのキー番号のインターラプトハンドラの再登録及ぴ、 削除が可能になりま す。 キー番号を 0にして登録を行うと、 空いているキー番号にインターラプトハン ドラが設定されます。 空いているキー番号がない場合はエラーとなり、 戻り値に- 1 が返されます。
インターラプ トハン ドラの削除は、 コールバッ ク関数のァ ドレスを BCL_GBI_IGNORE_SYNCERROR_HANDLERとして登録します。 インタラプト スレッドは、 BCL—GBI—IGNORE_SYNCERROR— HANDLERのインタラプトハン ドラ は実行しません。 65 個のイ ンターラ プ トハン ドラがすべて BCL—GBI— IGNORE— SYNCERROR— HANDLERとなった場合は、初期状態に戻り ます。 (アクセスライプラリ内の標準ィンターラプトハンドラが設定されます。) Syncエラーはソフトウェアの設定ミスやハードウエアの設計不良により発生しま す。 また、 ハードウェアの故障などもその原因となります。
オフラインでは Busで Syncエラーが発生する要因がないため、 本関数で登録さ れたハンドラは動作することはありません。
•名目 U: BCL_GBI_aaaSync rrorlnterruptHandler
· 形 式 : int BCL—GBI一 addSyncErrorlntermpthandlerunt Key o, BCL— GBI— SYNCERROR— HANDLER handler, unsigned int arg);
•コーノレノ ック関数: void SyncErrorInterruptRoutine(unsigned mt arg);
'引数: KeyNo (キー番号)、 handler (コールバック関数のアドレス)、 arg (イン ターラプトハンドラへ渡す値) •戻り値:インターラプトハンドラが登録されたキー番号 (-1の場合、 登録に失敗 [不正なバス番号または、 キー番号]) '
C . 2 . 4 ライブラリ/システムバスの制御
C . 2 . 4 . 1 FIFOのフラッシュ待ち
サイト CPUに接続されているシステムバス と接続されている全てのモジュール の FIFOのフラッシュを待ちます。 FIFOは、 システムバス I/Fボード内とモジュ ール内に存在します。 この関数を終了した時、 この関数の実行に入る直前の FIFO 内に存在するデータが全てモジュールにライトされたことを意味します。 この関数 を実行中、 CPUは PCIバスに対してリ一ドサイクルを発行しているため、 FIFOが フラッシュされるまでパスをハード的に口ックしています。 このため DMA転送や インターラプトの受け付けに遅延を生じる場合があります。 また、 この関数の実行 によりタイムアウトが発生する場合があります。
オフラインの場合は、 システムバスエミュレータの FIFOは存在しません。 また、 モジュール内の; FIFOの存在はベンダ依存です。
•名前: BCL— GBI— waitFlushFIFO
•形式: int BCL_GBI_waitFlushFIFO(void)
•引数:なし
'戻り値: BCL— GBI— OK (フラッシュ完了)、 BCL_GBI_ERROR (エラー) C . 2 . 4 . 2 モジユーノレのリセット
サイト CPUに接続されているモジュールにたいして、 リセットを行います。 こ の関数内では、 下記の処理を実行します。
1.システムバスへバスリセッ トパケットの送出。
2.システムバスへインターラプトのクリア用パケッ トの送出。
3.システムバスヘインターラブトのアン口ックパケットの送出。
なお、 リセッ トの動作やかかる時間については、 各モジュールに依存します。 •名則 : B CL_GBI_resetModule
•形式: int BCL_GBI_resetModule(void);
-引数:なし '戻り値: BCL— GBI— OK (正常終了)、 BCL— GBI— ERROR (エラー) C . 2 . 4 . 3 ライブラリの初期化
システムバス アクセスライブラリの初期化を行います。 システムバス アクセスラ ィブラリを利用する場合、最初にこの初期化処理を実行する必要があります。また、 この関数内では下記の処理を実行します。
1.アクセスライブラリの変数の初期化。
2.ィンターラブトハンドラを実行するためのスレツドを起動。
また、 システムパス I/F上のインターラプトはディセーブルの状態です。
オフラインの場合はこの関数でシステムバスエミュレータとのプロセス間通信の 準備をします。 システムバス エミュレータと 30秒以内に接続が確立されないとタ ィムァゥトになります。
•名前: BCL— GBI— init
•形式: int B CL_GBI_init (unsigne d int siteNo, mt mode);
'弓 I数: siteNo (サイト番号 [1〜8] )、 mode (オンライン オフラインの指定。 BCL_GBI_ONLINE : オンライン、 BCL—GBI— OFFLINE :オフライン)
'戻り値: BCL— GBI— OK (正常終了)、 BCL_GBI_ERROR (サイト番号が規定外)、 BCL—GBI— TIMEOUT (オフラインにおいて 30秒以内にシステムバス エミユレ一 タと接続できない)
C . 2 . 4 . 4 ライブラリの開放
システムバス アクセスライブラリの使用終了の処理を行います。
'名前: BCL_GBI— finish
•形式: int B CL_GBI_finish(unsigne d mt site No);
'引数: siteNo (サイト番号 [1〜8])
'戻り値: BCL— GBI_OK (正常終了)、 BCL_GBI— ERROR (サイト番号が規定外) C . 2 . 4 . 5 オンラインノオフラインの識別 (BCL—GBI一 isOnline) 現在動作中のシステムバス アクセスライブラリがオンラインで動作中か、 オフラ インで動作中か識別します。
•名冃 U:
•形式: int BCL GBI isOnline(void); •引数:なし
'戻り値: BCL_GBI_ONLINE (オンライン)、 BCL_GBI_OFFLINE (オフライン) C . 2 . 4 . 6 GBSCとの通信可否の確認
システムバス I/Fと GBSC (システム制御装置 1 1 0 ) との通信が可能かどうか の確認をします。 これにより、 GBSCの電源が入っている事が確認できます。
•形式: mt BCL一 GBI一 get Connected wnsigned int ^connect),"
•引数: connect (通信可否の結果を格納する変数へのボインタ)
'戻り値: BCL— GBI—OK (正常終了)、 BCL_GBI_E RO (エラー)
C . 2 . 4 . 7 詳細エラー情報の取得
システムバス アクセスライブラリが BCL_GBI— ERRORを返したときの詳細エラ 一情報を返します。
-名前: BCL— GBI— getLastError
•形式: unsigned mt BCL一 GBI—getL<astError、void);
•引数:なし
'戻り値:無符号の 32ビットエラ一情報を返します。
bit31 :エラーコードの種別を特定する値
0: Windowsのエラーコード (System Error Codesを参照、)
1:アクセスライブラリ固有のエラーコード
bit30-24:エラーが発生した関数内の場所を特定する値 (内部情報)
bit23-16:エラーが発生したアクセスライブラリ関数を特定する値
bitl5-0:エラーコード
bit31が 0のとき: GetLastErrorOの下位 16bit値
bit31力 S 1のとき:アクセスライブラリの内部エラー値 '
C . 2 . 4 . 8 詳細エラー情報履歴の取得
現在までに使用されたシステムバスアクセスライブラリが BCL—GBI— ERRORを 返したときの詳細エラー情報を最大で過去 16回分まで返します。
•形式: unsigned mt BCL_GBI_getPrevious rrors^unsigned int *error, unsigned int size);
•名前: BCL_GBI_getPreviousErrors '引数: error (エラー情報を格納する配列変数のポインタ。 エラー情報のフォーマ ットは BCL_GBI_getLastErrorOと同様)、 size (エラー情報を格納する配列変数 のサイズ)
'·戻り値:格納されたエラー情報の数を返します。
C . 3 タイマ関数 ·
本章では、 システムバス I/Fボード上のタイマハードウェアを利用するための関 数について説明します。 システムバス I/Fボード上に実装されたハードウエアのタ イマの分解能は l[us]です。
C . 3 . 1 経過時間の読み出し
C . 3 . 1 . 1 時間の読み出し · システムバス アクセスライブラリの初期化が実行されてからの経過時間を秒 [s] で読み出します。
<制約事項 >
分解能は 1 [us]ですが、 double型に変換して読み出しているため、 doubleの有効 桁 *l[us]以上の値が読み出された場合、 l[us]の分解能が得られない場合があります。 doubleの有効桁は 10進の 15桁で、 理論上、 システムバス アクセスライブラリを 初期化してから約 31年経過した場合、 l[us]の分解能が得られなくなります。
ハードウェアのカウンタは 64ビットで動作しているため、 システムバス ァクセ スライブラリを初期化してから理論上約 58万年後に 0に戻ります。プログラム上、 一定の間隔で読み出しを行った場合の差分 (経過時間)は、 CPUの負荷状態、 PCIノ スの負荷状態および FIFOの状態により一定の値にならない場合があります。
<才フライン>
オフラインでは、 オフラインプロセスが動作するサイト CPUが起動してからの 経過時間を秒 [s]で読み出します。
.名前: BCL— TMR— readTime
•形式: int BCL_TMR_readTimevdoubie *time);
•引数: time (システムバスアクセスライブラリが初期化されてからの経過時間 [s]) •戻り値: BCL TMR OK (正常終了) C . 3 . 1 · 2 タイマカウンタの読み出し
システムバスアクセスライブラリの初期化が実行されてからの経過時間をカウン ト値で読み出します。 カウント値は l[us]経過するごとに 1が加算されます。
<制約事項 >
ハードウェアのカウンタは 64ビットで動作しているため、 システムバス ァクセ スライブラリを初期化してから理論上約 58万年後に 0に戻ります。 また、 プログ ラム上一定の間隔で読み出しを行つた場合の差分 (経過時間)は、 CPUの負荷状態、 PCIバスの負荷状態おょぴ FIFOの状態により一定の値にならない場合があります。 オフラインでは、 オフラインプロセスが動作するサイト CPUが起動してからの 経過時間をカウント値で読み出します。
-名前: BCL— TMR— readCount
•形式: int BCL_TMR_readCount(unsigned _int64 *count);
•引数: count (システムバスアクセスライブラリが初期化されてからのカウント値 [l[us]/lカウント])
·戻り値: BCL— TMR— OK (正常終了)
C . 3 . 2 時間待ち関連関数
C . 3 . 2 . 1 時間待ち
指定された時間の経過後、 関数は戻ります。 待ち時間 (time)に l[us]未満の値を指 定した場合、直ちに関数は戻ります。 CPUの負荷状況により指定された時間より経 過時間が長く過ぎてから戻る場合があります。
オフラインでは、 l[ms]未満は切捨てされた値で時間待ちを実行します。たとえば、 待ち時間 (time)に l[ms]未満の値を指定した場合、直ちに関数は戻ります。 また、最 大待ち時間は、 4294967.296[s] (約 49日)です。
'名前: BCL— TMR— wait
·形式: int BCL_TMR_wait(double time);
•引数: time (待ち時間を秒単位 [s]で指定)
,戻り値: BCL_TMR_OK (正常終了)、 BCL—TMR— ERROR (待ちがキャンセル された)
C . 3 . ,2 . 2 '時間待ち関数のキャンセル 現在実行中の全ての BCL— TMR— wait関数の実行をキャンセルします。 複数のス レツドで動作している場合、 すべての BCL— TMR— wait関数について実行がキャン セルされます。
■·名刖 : BCL一 TMR— cancel
·形式: int BCL_TMR_cancel(void);
' ·引数:なし .
•戻り値: BCL— TMR— OK (正常終了)
C . 4 コンフィグレーション/診断専用関数
本章ではハードウエアのコンフィグレーションおよびハードウエア診断で利用す る関数を説明します。 ハードウエアのコンフィグレーションおよぴハードゥエァ診 断以外で利用した場合、 各種モジュールへのデータ転送ゃィンターラブトの処理が 正しく処理できなくなります。 システムバス I/Fボード、 Bus Switch、 各種モジュ ールなどハードウヱァ構造を熟知した上、 ハードウエアのコンフィグレーションぉ よびハードウ ア診断関数内で利用してください。
当ライブラリでは実行時にランタイムエラーとなりませんが、 バスコンフィダレ ーション関数およびハードウエア診断関数以外で利用した場合、 当ライブラリおよ ぴシステムバス I/Fボードのディバイスドライバのインターラプトに関する動作は 保障しません。
C . 4 . 1 コンフィグレーション制御 (特殊関数)
本節で説明する関数は、 システムパス I/Fおよび各種モジュールのコンフィグレ ーションで利用する関数です。 不注意に操作すると各種モジュールへのデータの転 送ができなくなりますので、 ハードウェアやソフトウェアの構造を熟知した上、 利 用してください。
C . 4 . 1 . 1 ノ スコンフィグレーションライト
システムバス I/Fおよび各種モジュ一ルのコンフィグレーションレジスタに対し てデータを書き込みます。また、コンフィグレーションデータがシステムバス I/Fお よび各種モジュールに格納された後、 この関数を終了します。
•名前: BCL— GBI_writeBusConfig •形式: int B CL_GBI_writeBus Config(unsigne d int address, unsigned int config); •引数: address (コンフィグレーションデータのァドレス)、 config (書き込むコ ンフィグレーションデータ)
"戻り値: BCL— GBI— OK (正常終了)、 BCL_GBI_ERROR (エラー)
C . 4 . 1 . 2 バスコンフィグレーシヨンリード
システムバス I/Fおよぴ各種モジュールのコンフィグレーションレジスタからデ ータを読み出します。
•名目' J : BCL_GBI_readBusConng
•形式: int B CL_GBI_re adBus Config(unsigne d int address, unsigned mt *config); ·引数: address (コンフィグレーションデータのァドレス)、 config (コンフィグ レーションデータを格納する変数へのポインタ)
'戻り値: BCL— GBI— OK (正常終了)、 BCL—GBI— ERROR (エラー)
C . 4 . 1 . 3 バススィツチコンフィグレーションの設定終了
オンラインでは、 何も実行されません。
オフラインでは、 パススィツチのコンフィグレーションライトを完了した際、 当 関数を実行することによりオフラインのバスの接続が切り替わります。
•名前: BCL_GBI— decideBusMatrix
•形式: int BCL— GBI— decideBusMatrix (void);
•引数:なし
·戻り値: BCL— GBI— OK (正常終了)、 BCL— GBI— ERROR (エラー)
C . 4 . 2 インターラプト制御 (特殊関数)
本節で説明する関数は、 バスコンフィグレーションおよびハードウヱァ診断で利 用する関数です。 システムバス I/Fボード上のィンターラプトを直接制御するため、 不注意に操作するとシステムバス I/Fボードのディバイスドライバや当ライブラリ がインターラプトの処理を正しく実行できなくなります。
C . 4 . 2 . 1 Bus I/Fボードインターラプトィネーブル
各種ィンターラブト信号をシステムバス I/Fボード上でイネ一ブルにします。 ィ ンターラプト信号には、 各種モジュールからの割り込み、 Busエラー、 Busタイム ァゥト、 Syncエラーの 4種類があります。 これらの信号は下記で定義されたビット 情報として設定できます。 複数のインターラプト信号を指定する場合は、 論理和と して設定します。 この関数は、 システムバス I/F上でインターラプトがィネーブル になったことを確認後、 終了します。
名 u: BCL_GBI_interruptEnable
.形式: mt BCL_GBI_mterr ptEnable(unsigned mt status);
.弓 I数: 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 (エラー)
C . 4 . 2 . 2 Bus I/Fボードインターラプトディセーブル
各種インターラプト信号をシステムパス I/Fホ、、 上でディセーブルにします。 ィ ンターラプト信号には、 各種モジュールからの割り込み、 Busエラー、 Busタイム ァゥト、 Syncエラーの 4種類があります。 これらの信号は下記で定義されたビット 情報として設定できます。 複数のインターラプト信号を指定する場合は、 論理和と して設定します。 この関数は、 システムバス I/F上でインターラプトがディセーブ ルになったことを確認後、 終了します。
•名刖 : BCL_GBI_interruptDisable
•形式: int BCL_GBI_interruptDisabie(unsigned mt 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 (エラー)
C . 4 . 2 . 3 Bus I/Fボードインターラプトリード
各種インターラプト信号をシステムバス I/Fボード上で読み込みます。 インター ラプト信号には、各種モジュールからの割り込み、 Busエラー、 Busタイムアウト、 Syncエラーの 4種類があります。これらの信号は下記で定義されたビット情報とし て読み込まれます。 ' '名目 ij : 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 (エラー)
C . 4 . 2 . 4 Bus I/Fボードィンターラプトクリア
各種インターラプト信号をシステムパス I/Fボード上でクリアします。 インター ラプト信号には、各種モジュールからの割り込み、 Busエラー、 Busタイムアウト、 Syncエラーの 4種類があります。これらの信号は下記で定義されたビット情報とし て設定できます。 複数のインターラプト信号を指定する場合は、 論理和として設定 します。
モジュールからの割り込み (BCL_GBI— INT—MODULE) のみが指定された場合 は、 この関数が実行される直前の各モジュールの FIFOをフラッシュしたあと、 シ ステムバス I/F上のインターラプトをクリアし、 システムバス I/F上でインターラ ブトがクリアになったことを確認後、 終了します。
.名刖 : BCL_GBI_interruptClear
•形式: mt BCL_GBI_mterruptClear(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 (エラー)
C . 4 . 2 . 5 Syncするモジュール数の設定
サイ ト CPUに接続されているシステムバス と接続されている全てのモジュール の数をシステムバス I/Fボード上に設定します。 この設定を行うことにより、 FIFO を Syncするモジュールの数が決定されます。
オフラインの場合は、 システムバスエミュレータの FIFOは存在しません。 また、 モジュール内の FIFOの存在はベンダ依存です。
•名前: BCL— GBI— setSyncCount
•形式: mt BCL_GBI_setSyncCount( nsigneci mt number);
•ラ I数: number (Syncするモシユーノレの数)
'戻り値: BCL— GBI— OK (正常終了)、 BCL—GBI— ERROR (エラー)
C . 4 . 2 . 6 インターラプトの設定状態のセーブ
システムバス I/Fホ"-ド上のィンターラブト信号の設定状態 (イネ一ブルノディゼ 一プル) 及ぴ、 モジュールからのインターラプト発生の設定状態 (ロック/アン口 ック) をセーブします。 この関数は、 診断等でインターラプト操作を行う前に、 現 在の設定状態をセーブする目的で使用されます。 セーブされた内容は、 BCL— GBI_restoreInterruptConditionO関数でリストアされます。 この関数が 2回 以上実行された場合は、 以前にセーブされた設定状態は取り消され、 最後にセーブ した設定状態のみ有効となります。
オフラインでは無効な機能のため、 本関数内では何も行いません。
·名目 U: BCL_GBI_saveInterruptCondition
•形式: mt BCL_GBI_saveInterruptCondition(void);
•引数:なし
•戻り値: BCL—GBI— OK (正常終了)、 BCL—GBI— ERROR (エラー)
C . 4 . 2 . 7 インターラプトの設定状態のリストア
BCL_GBI— savelnterruptConditionO関数によりセーブされたシステムパス I/Fポ ード上のインターラプト信号の設定状態 (イネ一ブル/ディゼーブル) 及ぴ、 各種 モジュールからのインターラプト発生の設定状態 (ロック / /アンロック) をリスト ァします。 この関数は、 診断等でインターラプト操作を行った後に、 操作前の設定 状態に戻す目的で使用されます。 BCL_GBI_saveIntei'ruptConditionO関数による セーブが行わずに本関数が実行された場合は、 エラーを返します。 この関数が 2回 以上実行されてもエラーとはならず、 常に最後にセーブされた設定状態がリストァ されます。
オフラインでは無効な機能のため、 本関数内では何も行いません。
•名刖: BCL_GBI_restoreInterruptCondition •形式: int BCL_GBI_restoreInterruptCondition(void);
•引数:なし '
'戻り値: BCL—GBI_OK (正常終了)、 BCL_GBI_ERROR (エラー)
C . 4 . 2 . 8 モジュールインターラプト要因の読み出し
各種モジュールからィンターラプトが発生した場合の要因とその要因数を読み出 します。 インターラプトの要因は最大 256個 (4バイト/要因) あります。 このう ち発生したィンターラプトの要因数分だけ要因を返します。 要因の読み出し用バッ ファは、 最大要因数分のィンターラブトが発生した場合を考慮して最大要因数 (unsigned int型で 256個) 確保する必要があります。
オフラインでは無効な機能のため、 本関数内では何も行いません。
•名刖: BCL_GBI_readInterruptFactor
•形式: int BCL_GBI_readInterruptFactor(unsigned mt *Factor, int numDerパ •引数: Factor (割り込み要因を読み込む配列へのポインタ)、 number (割り込み 要因数を格納するボインタ)
·戻り値: BCL— GBI— OK (正常終了)、 BCL—GBI— ERROR (エラー)
C . 5 非公開関数
非公開関数です。
C . 5 . 1 . 1 非同期 DMA転送のキャンセル (非公開)
実行中の非同期 DMA転送をキャンセルします。 同期 DMAはキャンセルできませ ん。 また、 誤つた transfer IDを指定した場合、 DMAのキヤンセルは実行されず、 正常終了のステータスが戻ります。
•名前: BCL— GBI— cancelDMA
•形式: int BCL_GBI_cancelDMA(unsigned int transierlD);
·引数: transferlD (非同期モード転送時に返された転送終了待ち ID)
'戻り値: BCL— GBI— OK (正常終了)、 BCL一 GBI— ERROR (エラー)
C . 5 . 1 . 2 PCIベース了ドレスの取得 (非公開)
システムバス I/Fボードで使用する PCIバスのベースァドレスを取得します。 この 関数は、 システムバス I/Fボードの診断等で使用されます。 このアドレスは、 取得 したプロセスでのみ使用可能です。取得したァドレスが NULLであった場合は、本 ライブラリの初期設定が行われていません。 BCL_GBI— init 関数によりライブラリ の初期化を行ってから使用してください。
' オフラインでは無効な機能のため、 本関数内では何も行いません。
·名目 U: BCL_GBI_exportPciBaseAddress
•形式: PULONG BCL—GBI— exportPciBaseAddxess、void);
•引数:なし
•戻り値: NULL (エラー)、 NULL以外 (システムバス I/Fの PCIベースァドレ ス)
C . 5 . 1 . 3 モジュールインターラプトロック(非公開)
モジュールからのィンターラプトの発生を発生元で禁止します。 ィンターラプト のロックを設定すると以後新規にィンターラプトの発生をモジュール側で禁止しま す。 なお、 この関数は、 各モジュールにロックが格納された後終了します。
•名目 ij: BCL_GBI_interruptLock
·形式: mt B CL_GBI_mterruptLock(void);
•引数:なし
'戻り値: BCL— GBI— OK (正常終了)、 BCL—GBI— ERROR (エラー)
C . 5 . 1 . 4 モジュールインターラプトアンロック(非公開)
モジュールからのィンターラブトの発生を発生元で許可します。 この関数を実行 すると、 ロック中に発生を待たされていたインターラプトやアンロック以後のイン ターラプトの発生が各種モジュール側で可能となります。
なお、 この関数は、 各モジュールにアンロックが格納された後終了します。
•名刖: B CL_GBI_interruptUnlock
•形式: mt BCL_GBI_mterruptUniock(void);
·引数:なし
•戻り値: BCL— GBI— OK (正常終了)、 BCL—GBI— ERROR (エラー)
C . 5 . 1 . 5 詳細工ラ一情報の出力 (非公開)
システムバスアクセスライブラリが BCL_GBI— ERRORを返したときの詳細エラ 一情報を標準出力ストリームに出力します。 '名前: BCL— GBI— printLastError
•形式: void BCL_GBI _j)rintLastError(void);
•引数:なし
•戻り値:なし
C . 5 . 1 . 6 詳細エラー情報履歴の出力 (非公開)
現在までに使用されたシステムバスアクセスライブラリが BCL— GBI_ERRORを 返したときの詳細エラー情報を最大で過去 16回分まで標準出力ストリームに出力 します。
•名刖 : B CL_GBI jprintPreviousErrors
·形式: void B CL_GBI_p rmtPre vious Errors kvoid)
•引数:なし
•戻り値:なし
C . 5 . 1 . 7 デバッグ.モードの制御 (非公開)
アクセスライブラリに実装したデバッグ ·モードの制御を行います。
·名前: BCL—GBI— verbose
•形式: void BCL_GBI_verbose(int val);
•引数: val (デバッグ ·モードの指定)
•戻り値:なし
C . 5 . 1 . 8 レース機能のィネーブル (非公開)
システムバスアクセスライブラリのトレース機能をイネ一ブルにします。 トレー ス機能をイネ一ブルにすると、 バスアクセスや関数のトレースが有効となります。 バスアクセスのトレースでは、 アクセスしたァドレスとデータ及び、 リード/ライト の識別が標準出力ストリームに表示されます。 関数のトレースでは、 実行された関 数名が標準出力ストリームに表示されます。 また、 トレースを実行する関数は、 任 意の関数を登録して置き換える事も可能です。
バスアクセスのトレースを行うアクセスライブラリの関数は以下の通りです。 BCL— GBI一 write
BCL—GBI— read
BCL GBI writeBlock BCL_GBI_readBlock
BCL— GBI— wi'iteSeq
BCL_GBI_readSeq
BCL_GBI_writeSyncDMA
BCL_GBI_readSyncDMA
BCL_GBI_writeAsyncDMA
B CL_GBI_readAsyncDMA
B CL_GBI_write Config
BCL_GBI_readConfig
関数のトレースを行うアクセスライブラリの関数は以下の通りです。
BCL_GBI_waitFlusliFIFO
BCL_GBI_waitDMA
BCL_GBI_cancelDMA
BCL_GBI_conditionDMA
BCL_GBI_syncCount
BCL_GBI_resetModule
'名前: BCL— GBI— io raceEnable
•形式: int BCL_GBI_ioTraceEnable(void);
•引数:なし
'戻り値: BCL— GBI— OK (正常終了)、 BCL— GBI— ERROR (エラー)
C . 5 . 1 . 9 トレース機能のディセーブル (非公開)
システムバスアクセスライブラリのトレース機能をディセーブルにします。 トレ ース機能をディセーブルにすると、 バスアクセスや関数のトレースが無効となりま す。
·名刖: BCL_GBI_ioTraceDisable
•形式: int BCL_GBI_ioTraceDisable(void);
•引数:なし
'戻り値: BCL— GBI— OK (正常終了)、 BCL—GBI— ERROR (エラー)
C . .5 . 1 . 1 0 トレース機能のアドレスフィルタ指定 (非公開) バスアクセスのトレース機能に関するァドレスフィルタの指定を行います。 フィ ルタの指定方法は、 モードによって単一指定または、 連続指定が可能です。 指定で きる組み合わせは最大で 16通りの指定が可能です。 トレース機能がィネーブルと なっている場合は、 この組み合わせのいずれかに該当したァドレスのみトレース対 象となります。
•名 gij: BCL—GBI— lo raceAddress
•形式: mt BCL_GBI_ioTraceAddress(int mode, ..·);
mt BuL_GBi_ioTraceAddress(0);
int BCL_GBI_ioTraceAddress(l, 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 (エラー)
C . 5 . 1 . 1 1 トレース機能の設定情報出力 (非公開)
現在設定されているトレース機能に関する設定情報を標準出力ストリームに出力 します。 トレースのィネーブル Zディセーブノレ状態ゃァドレスフィルタの設定状態 を確認する事が出来ます。
·名前: BCL— GBI— io raceShow
•形式: int BCL_GBI_ioTraceShow(void);
'引数:なし
•戻り値:なし
C . 5 . 1 . 1 2 トレース機能の簡易ヘルプ情報出力 (非公開)
トレース機能に関する簡易ヘルプ情報を標準出力ストリームに出力します。 .名前: BCL— GBI— io raceHelp
•形式: mt BCL_GBI_ioTraceHeipvvoid);
•引数:なし
•戻り値:なし C . 5 . 1 . 1 3 トレース関数の登録 (非公開)
トレース機能を実行するデフォルトのトレース関数を任意のトレース関数に置き 換えます。 トレース機能がイネ一ブルとなっていれば、 直後のトレース対象のァク セスライブラリ関数から登録された関数が実行されます。登録できる関数は 1個で、 既に登録されている場合は、 上書きで登録されます。 デフォルトのトレース関数に 戻す場合は、 BCL— GBI— io raceResetHandler関数を実行します。
• トレースが行われるアクセスライブラリの関数は以下のとおりです。
BCL—GBI— rite
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
B CL_GBI_re setMo dule
•名刖 : BCL— GBI一 io raceHandler
•形式: void BCL_GBI_ioTraceHandler(BCL_GBI_TRACE_HANDLEE handler, void *arg);
.引数: handler (コールパック関数のァドレス)、 arg (トレースハンドラへ渡す 値)
'戻り値:なし
'戻り値: BCL— GBし OK (正常終了)、 BCL—GBI— ERROR (エラー)
C . 5 . 1 . 1 4 デフォルトのトレース関数の登録 (非公開)
BCL_GBI_io¾aceHandler関数により置き換えられた任意のトレース関数をデフ 'オルトのトレース関数に戻します。
*名目 U: BCL_GBI_ioTraceResetHandler
•形式: void BCL_GBi_ioTraceResetHandler(void);
•引数:なし
'戻り値:なし
C . 5 . 1 . 1 5 デフォルトのトレース関数の実行 (非公開)
BCL_GBI_ioTraceHandler関数により登録された任意のトレース関数からデフォ ノレトのトレース関数を実行します。
•名前: BCL— GBI— ioTraceExecuteDefaultHandler
·形式: void BCL_GBI_ioTraceExecuteDeiaultHandler(mt cmd, unsigned mt address, unsigned int data, void *arg);
•引数: cmd (トレース対象となる関数)、 address (トレース対象のァドレス)、 data (トレース対象のデータ)、 arg (トレースハンドラに引き渡された引数)
'戻り値:なし 産業上の利用可能' 14
上記説明から明らかなように、 本発明によれば、 様々なモジュールを^載して使 用する試験装置を適切にェミュレートすることができる試験ェミュレ一ト装置、 試 験モジュールエミュレート装置、 及びこれらのプログラムを記録した記録媒体を実 現することができる。

Claims

請求 の 範 囲
1 . 試験信号を被試験デバィスにそれぞれ供給する複数の試験モジュールを備え る試験装置をエミュレートする試験エミュレート装置であって、
異なるサイクル周期に基づく試験信号を生成する前記複数の試験モジュールをェ ミュレ一トする複数の試験モジュールェミュレート部と、
前記被試験デバィスの試験を制御する制御装置をェミュレ一トする制御ェミュレ ート部と、
前記制御ェミュレ一ト部からの指示に基づき、 前記複数の試験モジュールェミュ レート部のそれぞれが、 当該試験モジュールェミュレ一ト部のサイクル時間に対応 する試験信号を擬似的に生成すべき試験信号生成タイミングを生成する同期エミュ レー卜咅
前記同期ェミュレ一ト部が生成した複数の前記試験信号生成タイミングを、 時刻 順に整列して順次出力するタイミング整列部と、
前記タイミング整列部が出力した一の前記試験信号生成タイミングに対応する前 記試験モジュールエミュレート部に、 当該一の試験信号生成タイミングに対応する サイクル時間における試験信号を擬似的に生成させるスケジュール部と
を備える試験ェミュレ一ト装置。
2 . 擬似的に生成された前記試験信号に基づいて被試験デバイスの動作をシミュ レートする被試験デバイスシミュレート部を更に備える請求項 1記載の試験ェミュ レート装置。
3 . 前記同期ェミュレ一ト部は、 複数の前記 験モジュールェミュレ一ト部のそ れぞれが、 前記試験信号生成タイミングに対応するサイクル時間における試験信号 の生成において擬似的に発生する、 前記制御装置に対する割込みを収集する割込み 収集タイミングを更に生成し、
前記タイミング整列部は、 前記複数の試験信号生成タイミング及び複数の前記割 込み収集タイミングを時刻順に整列して順次出力し、
前記スケジュール部は、 タイミング整列部が一の前記割込み収集タイミングを出 力した場合に、 当該割込み収集タイミングに対応する前記試験モジュールェミュレ 一ト部に、 当該割込み収集タイミングの直前に当該試験モジュールエミュレート部 が試験信号を生成したサイクル時間において擬似的に発生した前記割込みを前記制 御エミュレート部に対して通知させる
' 請求項 1記載の試験エミュレート装置。
4 . 前記複数の試験モジュールエミュレート部のそれぞれは、 前記試験信号生成 タイミングに対応するサイクル時間における試験信号の生成において、 当該サイク ル時間中における試験信号の変化タイミングを生成し、
当該試験ェミュレ一ト装置は、 前記複数の試験モジュールエミュレート部により 生成された複数の前記変化タイミングを取得し、 前記複数の変化タイミングに基づ いて、 試験信号を時刻順に順次擬似的に変化させる被試験デバィス接続部を更に備 える
請求項 1記載の試験ェミュレ一ト装置。
5 · 前記被試験デバィス接続部は、 前記複数の試験モジュールェミュレ一ト部か ら取得した複数の前記変化タイミングを前記タイミング整列部に供給し、
前記タイミング整列部は、 前記複数の変化タイミング、 前記複数の試験信号生成 タイミング及び複数の前記割込み収集タイミングを時刻順に整列して順次出力し、 前記スケジュール部は、 前記タイミング整列部が一の前記変化タイミングを出力 した場合に、 前記被試験デバイス接続部に、 当該変化タイミングに試験信号を擬似 的に変化させる
請求項 4記載の試験ェミュレート装置。
6 . 前記複数の試験モジュールェミュレ一ト部のそれぞれは、 前記試験信号生成 タイミングに対応するサイクル時間における^験信号の生成において、 当該サイク ル時間が終了するサイクル終了タイミングを前記同期エミユレ一ト部に通知し、 前記同期ェミュレ一ト部は、 前記複数の試験モジュールェミュレ一ト部のそれぞ れから通知された前記サイクル終了タィミングに基づいて、 当該試験モジュールェ ミュレ一ト部が次のサイクル時間に対応する試験信号を擬似的に生成すべき前記試 験信号生成タイミングを生成する
請求項 1記載の試験ェミュレ一ト装置。
7 . 次のサイクル時間に対応する前記試験信号生成タイミングを前記タイミング 整列部が出力した場合に、 前記スケジュール部は、 当該試験信号生成タイミングの 直前のサイクル時間における試験信号の生成において、 当該試験信号生成タイミン グに対応する前記試験モジュールエミュレート部が擬似的に発生した割込みを前記 制御エミュレート部に対して通知させる
請求項 6記載の試験ェミュレート装置。
8 . 前記複数の試験モジュールェミュレ一ト部のそれぞれは、 当該試験モジユー ルエミュレート部に対応する試験モジュールエミュレートプログラムをコンビユー タで動作させることにより実現され、
前記試験モジュールェミュレートプログラムは、
前記試験モジュールが前記制御装置から受信する複数のコマンドのそれぞれに対 応して設けられ、 当該コマンドに対応する前記試験モジュールの動作をエミュレー トする複数のハードウエアエミュレート関数と、
前記スケジュール部が、 前記試験信号生成タイミングに対応するサイクル時間に おける試験信号を生成させるために用いる制御関数と
を有する請求項 1記載の試験エミュレート装置。
9 . コンピュータを、 試験信号を被試験デバイスにそれぞれ供給する複数の試験 モジュールを備える試験装置をエミュレートする試験ェミュレ一ト装置として機能 させるプログラムを記録した記録媒体であって、
前記プログラムは、 前記コンピュータを、
異なるサイクル周期に基づく試験信号を生成する前記複数の試験モジュールをェ ミュレ一トする複数の試験モジュールエミュレート部と、
前記被試験デバイスの試験を制御する制御 置をエミュレートする制,御エミュレ ー卜咅 と、
前記制御ェミュレ一ト部からの指示に基づき、 前記複数の試験モジュールェミュ レート部のそれぞれが、 当該試験モジュールエミュレート部のサイクル時間に対応 する試験信号を擬似的に生成すべき試験信号生成タイミングを生成する同期エミュ レート部と、
前記同期エミュレート部が生成した複数の前記試験信号生成タイミングを、 時刻 順に整列して順次出力するタイミング整列部と、 前記タイミング整列部が出力した一の前記試験信号生成タイミングに対応する前 記試験モジュールェミュレ一ト部に、 当該一の試験信号生成タイミングに対応する サイクル時間における試験信号を擬似的に生成させるスケジュール部と
して機能させる記録媒体。
1 0 . 異なるサイクル周期に基づく試験信号を被試験デバイスにそれぞれ供給す る複数の試験モジュールを備える試験装置をエミユレ一トする試験エミユレ一ト装 置において、 一の前記試験モジュールをエミュレートする試験モジュールエミュレ 一ト装置であって、
前記試験ェミュレ一ト装置は、
前記被試験デバィスの試験を制御する制御装置をェミュレ一トする制御ェミュレ ート部と、
前記制御ェミュレ一ト部からの指示に基づき、 前記複数の試験モジュー^^のそれ ぞれが、 当該試験モジュールのサイクル時間に対応する試験信号を擬似的に生成す べき試験信号生成タイミングを生成する同期エミュレート部と、
前記同期ェミュレ一ト部が生成した複数の前記試験信号生成タイミングを、 時刻 順に整列して順次出力するタイミング整列部と、
前記タイミング整列部が出力した一の前記試験信号生成タイミングに対応する当 該試験モジュールェミュレート装置に、 当該ーの試験信号生成タイミングに対応す るサイクル時間における試験信号を擬似的に生成させることを指示するスケジユー ノレ音 15と
を備え、
当該試験モジュールェミュレ一ト装置は、
前記スケジュール部からの指示に基づき、 前記一の試験信号生成タイミングに対 応するサイクル時間における試験信号を擬似的に生成するパターン発生器エミュレ 一ト部
を備える試験モジュールエミュレート装置。
1 1 . 前記一の試験信号生成タイミングに対応するサイクルが終了するサイクル 終了タイミングを同期ェミュレ一ト部に通知し、 前記同期ェミュレ一ト部に前記サ イタル終了タイミングに基づき当該試験モジュールエミュレート装置が次に試験信 号を擬似的に生成すべき前記試験信号生成タイミングを更に生成させる試験モジュ ールインターフェイスエミユレ一ト部を更に備える請求項 1 0記載の試験モジユー ルェミュレ一ト装置。
1 2 . 異なるサイクル周期に基づく試験信号を被試験デバィスにそれぞれ供給す る複数の試験モジュールを備える試験装置をエミュレートする試験エミュレート装 置において、 コンピュータを、 一の前記試験モジュールをエミュレートする試験モ ジュールエミュレート装置として機能させるプログラムを記録した記録媒体であつ て、
前記試験ェミュレ一ト装置は、
前記被試験デバイスの試験を制御する制御装置をエミュレートする制御エミュレ ート部と、
前記制御ェミュレ一ト部からの指示に基づき、 前記複数の試験モジュールのそれ ぞれが、 当該試験モジュールのサイクル時間に対応する試験信号を擬似的に生成す べき試験信号生成タイミングを生成する同期ェミュレート部と、
前記同期エミュレート部が生成した複数の前記試験信号生成タイミングを、 時刻 順に整列して順次出力するタイミング整列部と、
前記タイミング整列部が出力した一の前記試験信号生成タイミングに対応する当 該試験モジュールェミュレート装置に、 当該一の試験信号生成タイミングに対応す るサイクル時間における試験信号を擬似的に生成させることを指示するスケジユー ル部と
を備え、
前記プログラムは、 前記コンピュータを、
前記スケジュール部からの指示に基づき、 前記一の試験信号生成タイミングに対 応するサイクル時間における試験信号を擬似的に生成するパターン発生器エミュレ ート部
として機能させる記録媒体。
1 3 . 試験信号を被試験デバイスに供給する試験モジュールを備える試験装置で あって、
前記被試験デバィスの試験を制御する制御装置と、 サイクル周期に基づき試験信号を生成する試験モジユールと、
前記試験モジュールをエミュレートする試験モジュールエミュレート部と を備え、
前記制御装置は、
前記被試験デバィスの実試験又は擬似試験のいずれを行うかの指示を入力し、 • 前記被試験デバィスの実試験を行う指示を受けた場合に、 前記被試験デバィスの 試験を行う試験プログラムを前記試験モジュールに供給して、 前記試験モジュール により前記被試験デバィスの試験を行わせ、 前記被試験デバィスの擬似試験を行う 指示を受けた場合に、 前記試験プログラムを前記試験モジュールェミュレ一ト部に 供給して、 前記試験モジュールェミュレート部により前記被試験デパイスの試験を シミュレートさせる ·
1 4 . 前記制御装置は、 当該制御装置と前記試験モジュールとの間の通信処理を 行う通信ソフトウエアを実行し、
前記通信ソフトウェアは、 前記制御装置と協働して、 当該通信ソフトウェアを初 期化する呼び出しに含まれる前記指示に基づいて、 前記試験プログラムを前記試験 モジュール及び前記試験モジュールエミュレート部のいずれに供給するかを判断す る
請求項 1 3記載の試験装置。
1 5 . 試験信号を被試験デバイスに供給する複数の試験モジュールを備える試験 装置をェミュレ一トする試験エミュレート装置であって、
サイクル周期に基づく試験信号を生成する前記複数の試験モジュールをェミュレ ートする複数の試験モジュールェミュレート部と、
前記被試験デバイスの試験を制御する制御装置をエミュレートする制御エミュレ ート部と、
前記複数の試験モジュールェミュレ一ト部のそれぞれが、 サイクル時間に対応す る試験信号を擬似的に生成すべき試験信号生成タイミングをスケジュールするスケ ジュール部と
を備え、 前記試験モジュールェミュレ一ト部は、
関数呼び出しにより前記試験信号生成タイミングの通知を受けて、 当該試験信号 生成タイミングに対応するサイクル時間中における試験信号の電圧の変化を、 出力 チャネルをエミユレ一トする出力チャネルオブジェクトの電圧設定メソッドを複数 回呼び出すことにより出力し、
当該サイクル時間に対応する試験信号の電圧の変化の出力を終えた後に、 当該サ ィクル時間に対応する試験信号の電圧の変化の出力を終えたことを、 前記出力チヤ ネルオブジェクトの終了メソッドを呼び出すことにより通知する
試験エミュレート装置。
1 6 . 前記スケジュール部は、 前記複数の試験モジュールェミュレ一ト部のそれ ぞれから通知された前記終了メソッドに基づいて、 全ての前記試験モジュールエミ ュレート部が試験信号の電圧の変化の出力を終えた期間を算出し、
前記期間内における前記試験信号を取得して、 当該試験信号に基づいて被試験デ バイスの前記期間内における動作をシミュレートする被試験デバィスシミュレート 部を更に備える
請求項 1 5記載の試験ェミュレ一ト装置。
1 7 . 前記出力チャネルオブジェクトは、 前記終了メソッドの呼び出しを受けた 後に、 当該終了メソッドにより通知された、 既に試験信号の電圧の変化の出力を終 えた期間内の電圧の変化を禁止する請求項 1 5記載の試験エミュレート装置。
PCT/JP2004/004527 2003-03-31 2004-03-30 試験エミュレート装置、試験モジュールエミュレート装置、及びこれらのプログラムを記録した記録媒体 WO2004090562A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE602004007498T DE602004007498T2 (de) 2003-03-31 2004-03-30 Testemulationseinrichtung
EP04724396A EP1610136B1 (en) 2003-03-31 2004-03-30 Test emulator
JP2005505208A JP3735636B2 (ja) 2003-03-31 2004-03-30 試験エミュレート装置、試験モジュールエミュレート装置、及びこれらのプログラムを記録した記録媒体

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US10/403,817 2003-03-31
US10/403,817 US7290192B2 (en) 2003-03-31 2003-03-31 Test apparatus and test method for testing plurality of devices in parallel
US10/404,002 US7460988B2 (en) 2003-03-31 2003-03-31 Test emulator, test module emulator, and record medium storing program therein
US10/404,002 2003-03-31
JPPCT/JP04/001649 2004-02-16
JPPCT/JP04/001648 2004-02-16
PCT/JP2004/001649 WO2004072670A1 (en) 2003-02-14 2004-02-16 Method and structure to develop a test program for semiconductor integrated circuits
PCT/JP2004/001648 WO2004072669A1 (en) 2003-02-14 2004-02-16 Method and apparatus for testing integrated circuits

Publications (1)

Publication Number Publication Date
WO2004090562A1 true WO2004090562A1 (ja) 2004-10-21

Family

ID=33161956

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2004/004527 WO2004090562A1 (ja) 2003-03-31 2004-03-30 試験エミュレート装置、試験モジュールエミュレート装置、及びこれらのプログラムを記録した記録媒体

Country Status (7)

Country Link
EP (3) EP1610136B1 (ja)
JP (1) JP3735636B2 (ja)
KR (1) KR20050113273A (ja)
DE (2) DE602004016891D1 (ja)
MY (1) MY134825A (ja)
TW (1) TWI389033B (ja)
WO (1) WO2004090562A1 (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006275986A (ja) * 2005-03-30 2006-10-12 Advantest Corp 診断プログラム、切替プログラム、試験装置、および診断方法
EP1790990A1 (en) * 2004-08-20 2007-05-30 Advantest Corporation Test device, configuration method, and device interface
US7460988B2 (en) 2003-03-31 2008-12-02 Advantest Corporation Test emulator, test module emulator, and record medium storing program therein
JP2009116878A (ja) * 2007-11-05 2009-05-28 Advantest Corp 試験装置のシミュレーションシステム、方法、及びプログラム製品
US8165027B2 (en) 2008-12-08 2012-04-24 Advantest Corporation Test apparatus and test method
KR101422212B1 (ko) * 2011-11-28 2014-08-13 가부시키가이샤 어드밴티스트 시험 패턴 생성 장치, 시험 프로그램 생성 장치, 생성 방법, 프로그램 및 시험 장치
CN111447016A (zh) * 2020-04-02 2020-07-24 上海创远仪器技术股份有限公司 针对信道模拟器的信道模型实现正确性验证处理的方法
CN111949365A (zh) * 2019-05-17 2020-11-17 中车株洲电力机车研究所有限公司 离线仿真方法及计算机存储介质
CN113157573A (zh) * 2021-04-19 2021-07-23 上海湃星信息科技有限公司 一种软件测试验证系统及其构建方法
CN113624250A (zh) * 2020-05-09 2021-11-09 航天科工惯性技术有限公司 一种自动温循测试装置和方法
CN113624250B (zh) * 2020-05-09 2024-05-10 航天科工惯性技术有限公司 一种自动温循测试装置和方法

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100731106B1 (ko) * 2005-12-29 2007-06-22 동부일렉트로닉스 주식회사 라이브러리 테스트 회로 및 그 방법
KR100768916B1 (ko) * 2006-07-03 2007-10-19 삼성전자주식회사 패킷 수집/분석 장치 및 이를 이용한 에뮬레이션 방법
JP5023582B2 (ja) * 2006-07-05 2012-09-12 横河電機株式会社 半導体集積回路試験装置及び方法
KR100873956B1 (ko) 2006-08-17 2008-12-15 삼성전자주식회사 에뮬레이션 시스템
KR100884983B1 (ko) * 2007-06-26 2009-02-23 주식회사 동부하이텍 표준 셀 라이브러리의 성능 개선을 위한 측정 장치
US7779313B2 (en) * 2008-03-30 2010-08-17 Advantest Corporation Testing apparatus and testing method
KR20110003182A (ko) 2009-07-03 2011-01-11 삼성전자주식회사 인쇄 회로 기판 설계 방법 및 인쇄 회로 기판을 포함하는 패키지 테스트 디바이스
KR101310609B1 (ko) * 2012-03-30 2013-09-24 주식회사 이노와이어리스 Yaml을 이용하여 lte 계측 장비를 위한 데이터 및 인터페이스 생성장치 및 생성방법
CN108628734B (zh) * 2017-03-21 2023-03-28 中兴通讯股份有限公司 一种功能程序调试方法和终端
KR102583174B1 (ko) 2018-06-12 2023-09-26 삼성전자주식회사 테스트 인터페이스 보드, 이를 포함하는 테스트 시스템 및 이의 동작 방법
US11302412B2 (en) * 2019-06-03 2022-04-12 Advantest Corporation Systems and methods for simulated device testing using a memory-based communication protocol
TWI719917B (zh) * 2020-07-14 2021-02-21 金麗科技股份有限公司 將類比動態電路運用於數位測試工具的處理方法
TWI772189B (zh) * 2021-09-24 2022-07-21 英業達股份有限公司 硬碟模擬裝置及應用該裝置的測試系統及其測試方法
CN115774663A (zh) * 2022-09-15 2023-03-10 江苏瑞蓝自动化设备集团有限公司 一种LabVIEW的测试系统的优化方法、装置、设备及存储介质
KR102558492B1 (ko) * 2022-10-12 2023-07-25 한국철도기술연구원 열차자동운행장치 시뮬레이션 고속화 시스템 및 이를 이용한 고속화 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06160482A (ja) * 1992-11-20 1994-06-07 Nec Corp ハードウェア・エミュレータ

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001184225A (ja) * 1999-12-27 2001-07-06 Toshiba Microelectronics Corp エミュレータ及びエミュレート方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06160482A (ja) * 1992-11-20 1994-06-07 Nec Corp ハードウェア・エミュレータ

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP1610136A4 *

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7460988B2 (en) 2003-03-31 2008-12-02 Advantest Corporation Test emulator, test module emulator, and record medium storing program therein
US7913002B2 (en) 2004-08-20 2011-03-22 Advantest Corporation Test apparatus, configuration method, and device interface
EP1790990A1 (en) * 2004-08-20 2007-05-30 Advantest Corporation Test device, configuration method, and device interface
EP1790990A4 (en) * 2004-08-20 2010-08-11 Advantest Corp TEST DEVICE, CONFIGURATION METHOD, AND DEVICE INTERFACE
JP2006275986A (ja) * 2005-03-30 2006-10-12 Advantest Corp 診断プログラム、切替プログラム、試験装置、および診断方法
US7802140B2 (en) 2005-03-30 2010-09-21 Advantest Corporation Diagnostic program, a switching program, a testing apparatus, and a diagnostic method
JP2009116878A (ja) * 2007-11-05 2009-05-28 Advantest Corp 試験装置のシミュレーションシステム、方法、及びプログラム製品
US8165027B2 (en) 2008-12-08 2012-04-24 Advantest Corporation Test apparatus and test method
KR101422212B1 (ko) * 2011-11-28 2014-08-13 가부시키가이샤 어드밴티스트 시험 패턴 생성 장치, 시험 프로그램 생성 장치, 생성 방법, 프로그램 및 시험 장치
CN111949365A (zh) * 2019-05-17 2020-11-17 中车株洲电力机车研究所有限公司 离线仿真方法及计算机存储介质
CN111447016A (zh) * 2020-04-02 2020-07-24 上海创远仪器技术股份有限公司 针对信道模拟器的信道模型实现正确性验证处理的方法
CN111447016B (zh) * 2020-04-02 2022-06-21 上海创远仪器技术股份有限公司 针对信道模拟器的信道模型实现正确性验证处理的方法
CN113624250A (zh) * 2020-05-09 2021-11-09 航天科工惯性技术有限公司 一种自动温循测试装置和方法
CN113624250B (zh) * 2020-05-09 2024-05-10 航天科工惯性技术有限公司 一种自动温循测试装置和方法
CN113157573A (zh) * 2021-04-19 2021-07-23 上海湃星信息科技有限公司 一种软件测试验证系统及其构建方法

Also Published As

Publication number Publication date
TWI389033B (zh) 2013-03-11
TW200428200A (en) 2004-12-16
EP1767955A1 (en) 2007-03-28
DE602004007498D1 (de) 2007-08-23
JP3735636B2 (ja) 2006-01-18
DE602004016891D1 (de) 2008-11-13
KR20050113273A (ko) 2005-12-01
DE602004007498T2 (de) 2008-03-13
EP1870724A1 (en) 2007-12-26
JPWO2004090562A1 (ja) 2006-07-06
EP1610136A4 (en) 2006-05-17
MY134825A (en) 2007-12-31
EP1610136A1 (en) 2005-12-28
EP1610136B1 (en) 2007-07-11
EP1767955B1 (en) 2008-10-01

Similar Documents

Publication Publication Date Title
US20080016396A1 (en) Test emulator, test module emulator and record medium storing program therein
JP3735636B2 (ja) 試験エミュレート装置、試験モジュールエミュレート装置、及びこれらのプログラムを記録した記録媒体
EP1592975B1 (en) Method and apparatus for testing integrated circuits
JP7295954B2 (ja) オンチップシステムテストコントローラを使用した自動テスト装置
CN100489554C (zh) 测试装置与测试模拟方法
JP2006518460A5 (ja)
JP3911007B1 (ja) モジュール式試験システムをシミュレートする方法及びシステム
JP2007057541A (ja) 試験エミュレート装置
JP4608516B2 (ja) モジュール式試験システムに試験モジュールを統合する方法およびモジュール式試験システム
JP2009116876A (ja) 試験装置のシミュレーションシステム、方法、及びプログラム製品
JP2007256295A (ja) モジュール式試験システムにおけるデータログサポート
JP2009116878A (ja) 試験装置のシミュレーションシステム、方法、及びプログラム製品
CN100456043C (zh) 检测集成电路的方法和装置
TWI287639B (en) A distributed operating system for a semiconductor test system for testing at least one device under test
CN116340150A (zh) 一种基于uvm的可重用的寄存器性能交互验证系统及其应用
JP2005285092A (ja) 試験エミュレート装置
US7017097B1 (en) Simultaneously driving a hardware device and a software model during a test
Rajsuman et al. Open architecture test system: System architecture and design

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

WWE Wipo information: entry into national phase

Ref document number: 2005505208

Country of ref document: JP

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2004724396

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 20048084143

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 1020057018755

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 1020057018755

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 2004724396

Country of ref document: EP

WWG Wipo information: grant in national office

Ref document number: 2004724396

Country of ref document: EP