The Objective column allows you to specify a test objective for a particular test. Test objectives allow you to abstract the testing of a circuit by combining the following actions into a single testplan entry:
In this topic:
Test objectives also measure specification values, such as the phase margin for a BodePlot test objective. Broadly speaking, there are two categories of test objectives:
The Objective column can be blank.
Many of the Objective definitions support a specially-formatted parameter string that can be used to override the values set in or derived from the DVM control symbol.
The general syntax for the test objective is as follows:
TestObjective(REF, arg1, ..., arg n, OPTIONAL_PARAMETER_STRING)
where OPTIONAL_PARAMETER_STRING is a space-separated set of KEY=VALUE pairs. The format of individual arguments is covered in each test objective topic. As some parameters in the OPTIONAL_PARAMETER_STRING argument are common to all test objectives, these common parameters are covered in this topic.
All test objectives have a means to override the parameters taken from the DVM Control Symbol. In particular, all test objectives support the following two optional parameters:
Each objective may also have optional parameters specific to the test objective. For example, the transient test objectives have optional parameters to set the simulation timing. These objective-specific optional parameters are described in each test objective topic. The two optional parameters common to all test objectives are described next.
Each test objective sets a simulation analysis directive using parameters taken from the DVM Control Symbol. By specifying OVERWRITE_ANALYSIS=0, you instruct DVM to not setup an analysis directive. If you specify this parameter, you must set an analysis directive using an Analysis entry. If no analysis directive is set, the simulation will proceed using whatever analysis directives are setup for the schematic at the time the test is run. It is entirely possible that the analysis directives leftover in the schematic's F11 window from the last test are not suitable for the current test objective.
This parameter is most useful when setting up a test which modifies the default test objective behavior in some way. An example is setting up a PulseLoad() Test Objective with a repetitive pulsed load instead of the single pulse load which the objective configures by default. Clearly, the simulation stop time needs to be increased to capture a number of periods of the repetitive pulsed load. By default, the PulseLoad test objective sets up a transient analysis with a stop time equal to:
\[ \text{STOP_TIME} = \text{TIME_DELAY} + \text{RISE_TIME} + \text{PULSE_WIDTH} + \text{FALL_TIME} + \frac{\text{CYCLES_TO_RECOVER}}{\text{SWITCHING_FREQUENCY}}\]
While you could specify each parameter in the above equation in the optional parameter string, another option is to specify OVERWRITE_ANALYSIS=0 and then use the analysis column to define the simulation analysis. In the following testplan, two tests are configured with different types of pulse load tests. The first test, on line #6, uses the DVM Control Symbol timing parameters to setup a pulse load simulation with a single pulse. The second test uses a Pulse Load - Repeating Pure Current Pulse load with a frequency 10kHz. The analysis directive set in the analysis column explicitly defines a POP and Transient analysis, with the transient analysis running to 400us. Note that the objective in this test uses the optional parameter string to pass the OVERWRITE_ANALYSIS=0 parameter/value pair. If you didn't pass this parameter, DVM would process the test from left to right as defined in the testplan. Thus, the testplan-defined analysis would be defined first, then, when the program processed the objective column, the previously configured analysis would be overwritten with the DVM Control Symbol parameters.
You can download this testplan here: overwrite_analysis.testplan This testplan runs on the "LTC3406B - DVM Advanced.sxsch" schematic taken from the DVM Tutorial. You can download the example circuits here: SIMPLIS_dvm_tutorial_examples.zip
1 | *** | ||||
---|---|---|---|---|---|
2 | *** overwrite_analysis.testplan | ||||
3 | *** | ||||
4 | *?@ analysis | objective | load | label | |
5 | *** | ||||
6 | Transient | PulseLoad(OUTPUT:1, 50%, 100%, 50%) | Control Symbol Analysis Values|Pulse Load | ||
7 | .TRAN 400u 0\n.OPTIONS PSP_NPT=5001\n.POP TRIG_GATE={TRIG_GATE} TRIG_COND=0_TO_1 MAX_PERIOD=1u | PulseLoad(OUTPUT:1, 50%, 100%, 50%, OVERWRITE_ANALYSIS=0) | Pul(OUTPUT:1, 100m, 1, 10k, 6u, 10u, 22u, TIME_DELAY=0) | Testplan Analysis|Pulse Load Tstop=400u |
An alternate way to setup the same test conditions is to change the order of the testplan columns. The following testplan has two electrically equivalent tests. The first test is copied from the second test in the previous testplan. The second test uses an additional analysis column to set the simulation analysis, thus reversing the order of operations. In the second test, the analysis is set after the objective, and this "last write wins" behavior means that the explicit analysis defined in the testplan is used in the simulation.
You can download this testplan here: overwrite_analysis_alternate.testplan This testplan runs on the "LTC3406B - DVM Advanced.sxsch" schematic taken from the DVM Tutorial. You can download the example circuits here: SIMPLIS_dvm_tutorial_examples.zip
1 | *** | |||||
---|---|---|---|---|---|---|
2 | *** overwrite_analysis_alternate.testplan | |||||
3 | *** | |||||
4 | *?@ analysis | objective | load | label | analysis | |
5 | *** | |||||
6 | .TRAN 400u 0\n.OPTIONS PSP_NPT=5001\n.POP TRIG_GATE={TRIG_GATE} TRIG_COND=0_TO_1 MAX_PERIOD=1u | PulseLoad(OUTPUT:1, 50%, 100%, 50%, OVERWRITE_ANALYSIS=0) | Pul(OUTPUT:1, 100m, 1, 10k, 6u, 10u, 22u, TIME_DELAY=0) | Testplan Analysis|OVERWRITE_ANALYSIS=0 | ||
7 | PulseLoad(OUTPUT:1, 50%, 100%, 50%) | Pul(OUTPUT:1, 100m, 1, 10k, 6u, 10u, 22u, TIME_DELAY=0) | Testplan Analysis|Order Of Operations | .TRAN 400u 0\n.OPTIONS PSP_NPT=5001\n.POP TRIG_GATE={TRIG_GATE} TRIG_COND=0_TO_1 MAX_PERIOD=1u |
During normal DVM operation, the presence of a test objective tells DVM to reset the circuit to a known state. The symbols affected by this reset operation are all Managed Sources and Loads. The program goes through this routine before the test objective is processed, allowing the test objective to "know" the circuit is in some known state before configuring the schematic.
This option should be considered a very advanced option, and no example of it's usage is given for that reason. By passing RESET_TO_STEADY_STATE=0 as part of the optional parameter string, you are telling DVM not to reset the circuit to a known state. You are then responsible for resetting the circuit to steady state yourself. One way to do this is through a LoadComponentValues testplan entry. The changes made to the sources and loads include:
DVM resets the subcircuit name, which is stored on the VALUE property for each source or load.
Symbol Property | Action |
VALUE | Set to AC Fixed Input Source for AC Line Sources |
VALUE | Set to DC Input Source for DC Input Sources |
VALUE | Set to AC Fixed Input Source for AC Line Sources |
The measure flags are used by DVM to indicate the specification checking to perform after the test completes.
Symbol Property | Value |
MULTI_TONE | 0 |
MEASURE_IMPEDANCE | 0 |
MEASURE_SUSCEPTIBILITY | 0 (sources only) |
MEASURE_SUSCEPTIBILITY_REFDES | 0 (sources only) |
MEASURE_BODE | 0 (loads only) |
MEASURE_SHORTCKT | 0 (loads only) |
DVM resets the measurement specifications before each test. These specifications are passed into the subcircuit and used as fixed probe measurements for the voltage, current and Bode plot probes in the source or load subcircuit.
Symbol Property | Action |
MEASURE_SCALARS_I | Set to empty string |
MEASURE_SCALARS_V | Set to empty string |
MEASURE_SCALARS_MAG | Set to empty string |
MEASURE_SCALARS_PH | Set to empty string |
MEASURE_SCALARS_I | Set to empty string |
MEASURE_SCALARS_V | Set to empty string |
MEASURE_SCALARS_MAG | Set to empty string |
MEASURE_SCALARS_PH | Set to empty string |
Each DVM source or load has three probes, one for the terminal voltage, one for the terminal current, and an AC probe for AC tests. Each probe has symbol properties which configure where the output curves are placed. These properties are reset to the default values of empty strings during the reset process.
Symbol Property | Action |
GRAPH_NAME_I | Set to empty string |
GRAPH_NAME_V | Set to empty string |
AXIS_NAME_V | Set to empty string |
AXIS_TYPE_I | Set to empty string |
AXIS_NAME_I | Set to empty string |
AXIS_TYPE_V | Set to empty string |
AXIS_TYPE_MAG | Set to empty string |
AXIS_TYPE_PH | Set to empty string |
VERT_ORDER_I | Set to empty string |
VERT_ORDER_V | Set to empty string |
DISABLED_I | Set to empty string |
DISABLED_V | Set to empty string |
PLOT_LOAD_LINE | Set to 0 (loads only) |