|
TAILORING SIMULATOR SUPPORT
This is only available in SUMO-EXPERT .
Selecting Simulators
Simulator selection is only available from SUMO-EXPERT.
Click on the simulator name in the top menu-bar....

and select the simulator that you wish to use. To switch to the selected simulator click-on SWITCH-TO . This will now become current.
Information about each simulator is stored in its .SIM file. The selected simulator must be installed properly before use. For example, if using a simulator whose name is 'SPICE', and lives in the directory 'C:\SPICE', then the PATH may need to be extended, i.e.:
PATH = C:\DOS;C:\WINDOWS;C:\SUMO;C:\SPICE
and is to be found in the C:\AUTOEXEC.BAT file on PCs. If the simulator is not correctly installed the message: 'Bad Command or Filename' will appear when SUMO tries to run it.
SPICE model support
Some SPICE models are included with the sumos simulator, however the program can extract models from the SPICE .LIB files.
Here is a list of Free SPICE models on the internet.
You can also get SPICE models from the device manufacturers.
Support for simulators
All simulator support is contained with the .SIM files, and many different simulators can be attached to SUMO, provided the correct information is specified in the .SIM file, and the simulator netlist can be sufficiently represented.
Click-on the simulator name on the top menu-bar, then click-on EDIT . Pressing CLOSE now causes SUMO to prompt you about saving the currently selected simulator (.SIM) file. Changes made to the simulator are immediate in effect, but will be lost if you do not save them, at the next simulation or upon exiting SUMO . If you wish to abandon changes, click-on NO, and re-start SUMO .
Aspects of customising SUMO to specific simulators:
- Options - simulator options
-
Simulation data - data used when netlists are created
-
Classes - Edit and define classes and class specific netlist data
Simulator options
Most simulators have a variety of options that control certain aspects of the simulation. These normally appear in SPICE netlists as .OPT statements, and control things such as the error tolerances or the maximum iterations for convergence etc.
In SUMO options are treated as regular parameters, with a name, default value and a specific value. These options can then be set from the SIM menu, for specific circuits as required. These options are not generic, and when set from the SIM menu, are only used for the simulator that was current at that time.
By clicking on the OPTIONS button, a parameter editing menu is opened to allow you to add to, delete and edit these parameters.
Simulation netlisting data
Simulation netlisting is controlled by a number of statements or variables. For instance specifying a transient simulation requires a specific output netlist syntax to be used, relating to that simulator, that SUMO can use whenever it needs to run such a simulation.
More data about the specific format that SUMO requires for this data is in Appendix A.
Modifying Classes
From the class edit menu, reached by clicking on CLASSES, it is possible to create, edit and delete classes for the currently switched-to simulator.
The netlist data for each class of component is specified in a series of ASCII strings containing embedded commands. This is a common format throughout SUMO and is used for most output.
Netlist output format
This section details the file format that SUMO uses to determine the format of the netlist output data.
This data originates in .SIM files, and may be edited directly or altered using the menus contained within the Extraction Tools option.
General Formatting Characters
Each string can contain characters 'embedded' into the string such as line-feeds. These are:
'\n' Linefeed
'\t' Tab
'\\' Back-slash
Component Netlisting
Used to specify the netlisting line output for a component.
Usually each component has a separate one of these, this is the global default.
NET_LINE "%C %N %M %V\n";
Where
| Symbol key | Description
|
| %C | Components name
|
| %N | Node-list (order is determined by the class (symbol))
|
| %n1 | Specific node - order from class, used when a simulator has a different node ordering from SPICE, for instance:
"%C %n3 %n2 %n1 %M\n"
|
| %M | Model name if appropriate
|
| %V | Value if appropriate
|
| %D | Dependent (source) data
|
%p<name>
| Direct parameter. Look at the class definition for TRAN and MUTUAL, and their parameters.
Parameters can then be used in the netlist by this command:
for instance for parameter "L2" use "%pL2"
|
Examples of usage
The following example is taken from the SUMOS.SIM file, and details the output of the MUTUAL class for the SUMOS simulator.
The parameters L1 and L2 are used in the netlist to form inductors that are then mutually coupled together by the component value.
e.g: MUTUAL
$ Class definition for "MUTUAL"
CLASS "MUTUAL" {
NET_LINE "L1_%C %n1 %n2 %pL1\n";
NET_LINE "L2_%C %n3 %n4 %pL2\n";
NET_LINE "%C L1_%C L2_%C %V\n";
PREFIX "K"; NET_PREFIX "K";
DIRECT
{
"L1" "Primary inductance" 10u;
"L2" "Secondary Inductance" 10u;
}
}
Thus the class appears in the schematic as an integrated single component with parameters for the two inductances. The value is used for the mutual inductance. In the netlist two fictitious (From the schematics viewpoint) inductors are constructed from the parameters and the names are made unique by using the mutual components own name.
TRAN is a similar concept but using more inductors, in this way any complex component group can be made into a 'macro' element, rather than using a sub-circuit, which is the alternative method.
General netlisting data
Node separation data
Node separation data - what goes between each node in the list
NODE_SEP " ";
e.g.
- NODE_SEP " "; → 1 2 3
-
NODE_SEP ","; → 1,2,3
Strings for scales
Strings used to signify LOG (etc.) scale (simulation spec.)
LOG "DEC";
OCT "OCT";
LIN "LIN";
Simulation specifiers
Simulation specifiers - to specify type and values
AC_SPEC ".AC %T %I %S %E\n";
DC_SPEC ".DC LIN %D %S %E %I\n";
TR_SPEC ".TRAN %I %E\n";
Where
| Symbol | Usage
|
| %T | Type, LOG, OCT, LIN etc.
|
| %S | Starting value
|
| %I | Increment value
|
| %E | End value
|
| %D | DC sweep source name
|
| %P | Number of points in simulation
|
Output specifiers
Simulation output specifiers
AC_OUT ".PRINT AC%P\n";
DC_OUT ".PRINT DC%P\n";
TR_OUT ".PRINT TRAN%P\n";
Where
Output name specifiers
Specifiers for the names of the PROBEs and METERs
PROBE_OUT " V%P([[%C])";
METER_OUT " I%P(%C)";
Specifiers for the names of the PROBEs and METERs
Where
| Symbol | Usage
|
| %P | Prefix type (M, DB etc.)
|
| %C | Component name
|
Probe type specifiers
Simulation output probe type specifiers for AC and MAG for others
OUT_MAG "M";
OUT_PHASE "P";
OUT_REAL "R";
OUT_IMAG "I";
OUT_DB "DB";
OUT_GD "GD";
Names of the base types
Names of the base types
AC_BASE "FREQ";
TR_BASE "TIME";
Start of netlist keyword string
Start of netlist keyword string. Put in just before the simulator options, it allows default options to be specified for setting up the simulator to integrate better with SUMO .
START ".OPTIONS NUMDGT=10\n";
End netlist symbol
End of netlist keyword string
END ".END\n";
Temperature command
Simulation temperature command
TEMP ".TEMP %T\n";
Where
| Symbol | Usage
|
| %T | Temperature (degrees)
|
Sub-circuit header
Sub-circuit header/definition types. Not generally used as SUMO is usually set to flatten during netlisting.
SUBDEF_LINE "";
SUBEND_LINE "";
SUBUSE_LINE "";
SUBNODE_SEP " ";
Model specifier
Model specifier format - for netlist
MODEL_LINE ".model %M %C (%P )\n";
Where
| Symbol | Usage
|
| %M | Model name
|
| %C | Class name
|
| %P | Parameters
|
Model parameters
Model parameter definition
PARAM_LINE "%P=%V ";
Where
| Symbol | Usage
|
| %P | Parameter name
|
| %V | Value
|
Linefeed specifier
Linefeed specifier for linefeeds put in by SUMO. In this case a linefeed will become a linefeed followed by a '+' and a tab.
LINEFEED "\n";
LINEFEED "+ \t";
Comments
Start and end of a comment (remark) within the netlist
REM_START "*";
REM_END "\n";
optional parameter format
Simulator optional parameter format specifier
SIM_PARAM ".OPTIONS %N=%V\n";
Where
| Symbol | Usage
|
| %N | Name of option
|
| %V | Value of option
|
Simulation Control Specifiers
These options are solely concerned with simulation control
Run command
When 'Simulate' is pressed in the SIM menu, this string is used to tell the PC what to do next.
SIM_RUN "sumos %F";
Where
| Symbol | Usage
|
| %F | Filename with no extension
|
| %R | Root of the program (e.g. 'C:\SUMO');
|
Batch/sweeper command
When the sweeper is used from the SIM-SWEEP menu, this string is used to call the simulator in batch mode - not to display results
SIM_BATCH "sumos -b %F";
Where
| Symbol | Usage
|
| %F | Filename with no extension
|
| %R | Root of the program (e.g. 'C:\SUMO');
|
View command
When 'View' is pressed in the SIM menu, this string is used to tell the PC what to do next.
This is for external viewers
VIEW_RUN "sumos -v %F";
Where
| Symbol | Usage
|
| %F | Filename with no extension
|
| %R | Root of the program (e.g. 'C:\SUMO');
|
| |