Purpose: This document details the different options for the "Dut/State" that are shown below. This button is normally defined once in the global defaults, but can also be placed anywhere else in the plan where the state needs to be modified.
Active is the default setting. It will send out any Dut states that are placed in a panel and the settings will restore to their default value (as defined in the device file) in the following panel if the same setting is not placed in that panel. This state can be set in the global defaults; however, upon the first test section the part will get initialized with all default settings (as defined in the device file), unless hold is set in the first section. If you do not want the registers of the part to get initialized, then it is recommended to put in a dummy hold section at the start of the testplan or to set hold in the section defaults of the first section if the section doesn't use any Dut commands.
Hold can be used to hold the Dut state between panels. If hold is being used, then the Dut state will have to be set to active in any panels where you want to emit a Dut state. Also, if the state is set to active in the global defaults then the part will get initialized with all default state values upon the first test section unless hold is set in the first test section.
Idle will hold any state until the state changes to active at which point the part will get initialized with all default Dut states as defined in the device file.
prePostOnly will only emit Dut changes when they are set in pre-measure and/or post-measure groups. When using this setting, the part will never get initialized with default Dut settings unless used with initialize.
In essence prePostOnly removes the serial bus control from the optimizer. Serial bus commands are emitted only when the programmer explicitly sends them. The programmer must insure that all fields of the written registers are defined correctly as the optimizer may or may not have them in the desired state.
This mode has significant ramifications if any part of the test plan is optimized. If the optimizer is ordering tests for optimum test time, then the panels may go in different order than displayed in the section. Thus, the order in which the commands are sent may be different than the test panel order created. For this reason, the testplan should be set to unoptimized to avoid this problem.
Also, when using this mode the Dut will not return to its default conditions unless it is explicitly set in the pre- or post- measure.
Initialize will directly send out all default Dut states defined in the device file to the part. It can not be placed in the global defaults, rather it needs to be placed directly in a panel of in the section defaults.
It depends on the requirement of your part, but we usually recommend one of the two methods (Both methods require the Dut state only to get defined once in the global defaults. You should not have to use that button again, anywhere else):
1) If you want to initialize the Dut registers and are going to want your part to go back to default states a good portion of the time, then you would set the Dut state to Active in the globals and then send Dut commands as needed. The Dut state will get set and a measurement will be made; however, at the next panel the Dut will get reset to default setting.
2) If you do NOT want your part to get initialized with default Dut settings and you want to hold the state until the next state change, then you should use prePostOnly. Set prePostOnly in the globals and then send all of your Dut commands in pre- / post- measure groups. This way the states will only change if they are in a pre- or post- measure group.