A semiconductor test program might need to test multiple DUTs at the same time in parallel to improve tester efficiency. A semiconductor test program can test one DUT at a time on a single test site or test multiple DUTs at a time on multiple test sites.

To implement multisite testing in a test program, the test engineer must consider the following requirements:

  • The test program must be able to evaluate limits on multiple DUTs.
  • The test program might execute individual test sites differently depending on previous test results specific to the individual test sites. For example, different sites might become disabled before a test begins depending on whether a handler can actually place DUTs in those sites, or different sites might become disabled during a test.
  • The test program must be able to test DUTs on multiple sites simultaneously, even when multiple sites must simultaneously communicate with the same instrument.

TSM Implementation

The TestStand Batch and Parallel process models support multisite testing by creating a test socket for running a copy of the TestStand sequence in a new execution thread. However, the default TestStand behavior does not account for difficulties that a test engineer might encounter when programming for hardware shared among multiple test sites, such as NI-HSDIO instruments.

Use the TSM Code Module API to translate DUT pin names to instrument channels and sessions for the active sites and to publish test results to the active sites. The Semiconductor Multi Test step or the Semiconductor Action step creates the object reference SemiconductorModuleContext that you pass to a LabVIEW or .NET code module to use the TSM Code Module API. The SemiconductorModuleContext object describes a subset of pins, relays, sites, and instruments on a test system.

When you execute tests using the Batch process model, use the Multisite Option control on the Options tab of the Semiconductor Multi Test or the Semiconductor Action step to configure the following multisite execution options for the test:

  • One thread per subsystem—Execute tests for each subsystem in a separate thread. A subsystem is a set of sites and system resources on the tester that operate independently of other sites and resources, typically because the sites share the same instrument, which requires the test program to test the sites together in a single thread. The Semiconductor Multi Test step or the Semiconductor Action step identifies subsystems by using the pin map and the pins and relays shown in the SemiconductorModuleContext Pins and Relays control.
  • One thread only—Execute tests for all sites in a single thread.
  • One thread per site—Execute tests for each site in a separate thread. Use this option only when the code module does not use hardware shared among multiple sites.

The multisite option you select determines how many copies of a code module to execute. The more code modules that execute, the fewer sites TSM tests in any one code module.

Multisite Programming Techniques

When you create test programs to run on multiple sites, you must account for certain subsystem considerations, such as instrumentation resources, the relationship between the subsystem and the pin map, and using switches to share a channel between the same DUT pin on multiple sites. Consider the following issues during code module development:

  • Pin and session queries
  • Parallel For Loops
  • Input parameters
  • Specifications values
  • Sharing data between code modules
  • Publishing results
  • Sharing instrument sessions between LabVIEW and .NET code modules
Note You cannot use multiple Semiconductor Multi Test steps or Semiconductor Action steps configured to use multiple threads in While loops, in Do While loops, or in For loops that use the Custom Loop option when performing multisite testing. The steps report a run-time error in these situations. Use other types of loops instead, such as For loops that use the Fixed Number of Iterations option.