Initial Condition Back-annotation

In this topic:

Overview

On each run, SIMPLIS generates a file called the initial condition file. This contains a sequence of SIMPLIS netlist commands that initialises a circuit to the state achieved at the end of the run. This allows a new run to continue from where a previous run completed.

The initial condition file can be applied by including it in the netlist for a new run and in some instances this may be the most convenient method. However, it is also possible to annotate the schematic with the initial condition information. This has some advantages:

  1. The initial conditions back annotated to top level capacitors and inductors will also be recognised in SIMetrix simulation mode.
  2. Back annotated initial conditions are attached to schematic instances and will be faithfully reproduced if, for example, a schematic block is copied and pasted to another schematic.
Please read all of the sections below on back-annotation and ensure you correctly understand all the issues involved.

How to Back-annotate a Schematic

Simply select menu Simulator | Initial Conditions | Back-annotate. You will notice a second or two of activity in the schematic and then the operation is complete.

You should note that SIMetrix/SIMPLIS does not distinguish between initial conditions that are back-annotated and initial conditions that are applied manually. After running the back-annotation algorithm, you will not be able to restore the initial condition value to those set before. You can, however, use Undo in the normal way and in fact the back-annotation operation will be reversed with a single Undo operation.

Disable/Enable Initial Conditions

To disable initial conditions select menu Simulator > Initial Conditions > Disable. Note that this will disable all initial conditions defined at the top level, not just ones that are back-annotated. To re-enable use the menu Simulator > Initial Conditions > Enable.

Back-annotation Errors

If you get the error message
The following instances have initial condition values but do not support back annotation
it means that the SIMPLIS_TEMPLATE property is protected for the instances listed. To fix the problem remove the protection on this property. You will need to open the symbol in the symbol editor to do this.

In order to apply back-annotation in a generic fashion, SIMetrix needs to modify the SIMPLIS_TEMPLATE property, but cannot do so if it protected hence the error message. You shouldn't get this error with any standard symbols from the SIMetrix v5 library or later, but you may get it with your own symbols or symbols from an earlier library.

Editing Back-annotated Initial Conditions

How you change the value of an back-annotated initial condition depends on the device. If the device already has a user editable initial condition, then simply use the standard method. With capacitors and inductors, this is simply done using F7 or the Edit Part... menu. With some other devices, the initial condition value may be found in the Edit Additional Parameters menu.

For devices that do not have user editable initial conditions, you should use the Edit Additional Parameters menu. This applies to most subcircuit models and to all hierarchical blocks.

How Does it Work?

The initial condition file specifies the value of initial conditions for each device that requires them. This information must then be applied to each schematic instance in an appropriate manner. Two basic approaches are used to apply the initial condition values depending on the device namely the specialised method and the generic method.

In the specialised method, a special script is called which edits one or more properties of the schematic instance. With a capacitor for example, the VALUE property is edited so that the IC parameter is specified or modified. Something similar is done for inductors. This action is done using a special script specified by the INIT_SCRIPT property. In the case of the capacitor, the script 'ic_reactive' is called. The advantage of the specialised method is that the device can be modified in a manner that is consistent with its existing user interface. Capacitors already have user editable initial conditions and the application of back-annotated initial conditions is compatible with this.

The disadvantage of the specialised method is that a method of applying the back annotated value needs to be developed for every different type of device. This would not be acceptable for most users who develop their own symbols. The generic method overcomes this difficulty. The generic method modifies the properties so that additional netlist lines are created containing the .INIT simulator command that defines the initial conditions. To achieve this the SIMPLIS_TEMPLATE property needs to be modified and as long as this isn't protected , the generic method will always work.

Hierarchical Blocks and Subcircuits

All back-annotated initial conditions are applied at the top level and no child schematics or subcircuits will be modified.

This introduces a potential problem in that once back-annotated initial conditions are applied, you will no longer be able to modify individual initial conditions within a hierarchical block. You will only be able to edit them on the top level device using the Edit Additional Parameters... menu.

You will be able to use initial conditions defined within a hierarchy or subcircuit if you first disable top level initial conditions using the Initial Conditions | Disable menu. This will of course disable all initial conditions specified at the top level.

To disable initial conditions for a single hierarchical block, use the Edit Properties menu to set the USEIC property to 0. Note that the Enable and Disable menus will reset this property.