Running Simulations

In this topic:

Overview

Once an analysis has been set up using the procedures described in this chapter, a simulation would normally be run in synchronous mode perhaps by selecting the Simulator > Run Schematic menu. In synchronous mode, you cannot use any part of the program while the simulation is running.

There are also other methods of running a simulation. You can run a simulation for a netlist directly and you can also run in asynchronous mode. These are explained in the following sections.

Starting, Pausing and Aborting Analyses

Starting an Analysis

To start a simulation in normal (synchronous) mode, use the Simulator | Run menu, press the F9 key or press the Run button on the Choose Analysis Dialog box shown above. A dialog box will show the status of the simulation.

Pausing an Analysis

You can pause the simulation by selecting the Pause button on the simulator status dialog box. To restart select the Resume button (the Pause button changes name when simulation pauses) or the Simulator > Resume menu item.

When a simulation is paused, you can carry on using the program as if the simulation had completed. This includes plotting results of the simulation completed so far. If you decide you do not wish to continue the run, there is no need to explicitly abort it. You can just start a new run in the normal way. If you do this you will be asked if you would like to resume the pending run. If you answer 'No', the pending run will be automatically aborted and the new run started.

Aborting an Analysis

There is actually never a need to explicitly abort an analysis. If you decide you do not wish to continue a run, just pause it as described above. Pause is the same as abort except that you have the option to change your mind and restart.

Nevertheless there is an abort facility. Simply select the Simulator > Abort menu. When you abort a run, you will not be able to restart it.

There is just one benefit of aborting a run instead of pausing it. When an analysis is aborted, the simulator frees up the memory it needed for the run. Note that this does not happen after a run completes normally. If you need to free up simulator memory after a normal run completes, type Reset at the command line. (Not available with SIMetrix/SIMPLIS Elements).

Working while an Analysis is Running

Some operations can be performed while a simulation is running. For example, you can zoom in and out of graphs and many schematic editing operations can also be performed. However, some operations are blocked and full functionality will not be available until the simulation has completed or has been paused. If you need full GUI functionality while a simulation is running, you can run the simulation in the background. See Running Analyses in Asynchronous Mode.

Running Analyses in Asynchronous Mode

In asynchronous mode, the simulation runs in the background and you are free to carry on using the SIMetrix environment for entering schematics or viewing results from previous analyses. Because, the simulation is running in the background, it is necessary for the simulation process to be detached from the front end environment and for this reason it is not possible to use .GRAPH or fixed probes to plot simulation results during the course of the run. Also you must manually load the simulation data when the run is complete.

Starting an Asynchronous Run

  1. Select menu Simulator > Run Asynchronous.... Note a simulation status box appears similar to the box used for synchronous runs but with an additional Activity box at the bottom. Any messages generated by the simulator will be displayed here.
  2. When the simulation is complete, you must load the data manually. The name of the file to load will be displayed in the command shell when the simulation starts. Select menu File > Data > Load Temporary Data... to load data file. You will be able to cross probe the schematic used to run the analysis in the normal manner once this file is loaded.

Pausing and Aborting Asynchronous Runs

To pause, press the Pause button. Note that you can load the data generated so far after pausing the run as described above.

To abort a run, press the Close button.

Running an Analysis on a Netlist

You can run an analysis on a netlist created by hand or perhaps with a third party schematic entry program.

To run a netlist in synchronous mode, select the command shell menu Simulator > Run Netlist... then locate the netlist file.

To run a netlist in asynchronous mode, select the command shell menu Simulator > Run Netlist Asynchronous... then locate the netlist file. See Running Analyses in Asynchronous Mode for further information about running asynchronous analyses.

Simulation and Multi-core Processors

If your license permits it, SIMetrix will create multiple threads running on individual cores to help speed up the simulation. Please note the following in relation to multiple core operation:

  1. Not all products support multiple core operation. See list below:
    Product Name Number of cores supported
    SIMetrix Classic 1
    SIMetrix/SIMPLIS 1
    SIMetrix Pro 4
    SIMetrix/SIMPLIS Pro 4
    SIMetrix Elite 16
    SIMetrix/SIMPLIS Elite 16
    SIMetrix/SIMPLIS Elements (free version) 1
  2. If you are running a Multi-step analysis such as Monte Carlo, the greatest benefit from multiple cores is achieved by using Multi-core Multi-step mode. See Using Multiple Cores for Multi-step Analyses.
  3. SIMetrix will only use a single core for small circuits even if you have multiple physical cores and a SIMetrix product that supports multiple core operation. Below a certain circuit size, multiple core operation can actually slow down the simulation.
  4. Speeding up simulations by employing multiple cores is analogous to speeding up human projects by allocation more people to them. That is, results vary enormously according to the circuit being simulated. Circuits that benefit the most from multiple core operation are large and typically contain many of the same type of device. This is typical for integrated circuit design. Smaller circuits that contain a variety of different types of device don't benefit nearly as much.
  5. If you have a system fitted with multiple chips (referred to as physical processors), SIMetrix will only use the cores from one of the physical processors by default. For example, you may have an 8 core system with two physical processors of 4 cores each. In this situation, SIMetrix will use the 4 cores from the first physical processor and not use the second physical processor. This is a consequence of the cached hierarchical memory systems used on modern systems. You can force SIMetrix to use all available cores in all physical processors using the mpnumthreads option. See below.
  6. Many systems use hyperthreading to make a single core behave like two cores. The resulting cores are referred to as logical cores. The actual hardware cores are referred to as physical cores. SIMetrix will only use physical cores for multiple core operation.
  7. See Help > About... to find the specification of your system. The number that is most important is the Number of physical cores.
  8. The SIMPLIS simulator does not currently exploit the use of multiple cores for single step runs. It can, however, run multi-step analyses using multiple cores. See Multi-core Multi-step SIMPLIS Analyses.
  9. You can manually control the number of cores used for a single step simulation using the mpnumthreads option. Enter this line into the netlist or F11 Window:

    .option mpnumthreads=n

    Where n is the number of cores you wish to use. SIMetrix will not use more than the number of physical cores fitted to your system regardless of what you set for n.