Product Documentation
Spectre Classic Simulator, Spectre APS, Spectre X, Spectre XPS, Spectre FMC Analysis, and Legato Reliability Solution User Guide
Product Version 23.1, September 2023

7


SPICE Compatibility

The Spectre® circuit simulator provides a SPICE compatibility mode, which eliminates the need for any netlist conversion in your flow.

For migration issues, see Spectre Circuit Simulator Migration Guide.

You can add the +spice option to the spectre command line option:

spectre +spice options inputfile 

The +spice option

Support for SPICE Netlists

The Spectre circuit simulator can read syntax that is consistent with other commercial SPICE simulators. These features include, but are not limited to.

All models in SPICE netlist sections are SPICE compatible.

Simulation Flow Compatible Options

Spectre also supports an extension of options used in the SPICE flow to better fit the existing simulation flow. These options are discussed below.

Options to Specify the Output Format

Option Description

outputcase=original

Outputs all signal names in lower case or upper case. Possible values are original, lower, and upper.

dotprobefmt=flat

Prints the.probe signals with original name or hierarchical name. Possible values are flat and hier.

Options to Specify the Hierarchy Delimiter

Option Description

hier_delimiter="."

Sets the hierarchical delimiter. The length of hier_delimiter should not be greater than 1, except the lead escape character.

hier_ambiguity=strict

The default value is strict. When set to lower, the simulator partially flattens the hierarchy name from the back to check if an object can be found. As a result, the delimiter specified using hier_delimiter is treated as normal node name for signal matching. Possible values are strict and lower.

Example:

.options hier_delimiter="/"
.options hier_ambiguity=lower
.probe v(x1/x2/xnand/a)
.ic v(x1/x2/xcell/mt)=1.2

In the above example, x1/x2 is an instance name and xnand/ a and xcell/mt are node names inside it. This typically happens in a DSPF file. When hier_ambiguity=lower, the character / is treated as a hierarchical delimiter for the instance x1/x2; however, it will be treated as part of the node name for nodes xand/a and xcell/mt. As a result, the node names in .ic and .probe can be correctly matched.

Options to Control Duplicated Subcircuits, Measures, Instances, and Parameters

Spectre may generate an error for duplicate instance names, subcircuits, ports in a subcircuit, measures, models, and modules, based on strict and conservative rules. Spectre XPS provides the following options to modify the behavior and parse such duplicated definitions:

Option Description

duplicate_subckt=error

Specifies whether duplicate subcircuit definitions are allowed. When set to warning or ignore, the simulator allows duplicate subcircuit definitions. If multiple subcircuit definitions are specified, the last one takes precedence. Possible values are error, ignore, and warning.

duplicateports=error

Specifies whether duplicate ports are allowed in the subcircuit definition. When set to warning or ignore, duplicate ports are shorted. Depending on the value set, the simulator displays warning messages for duplicate ports, or does not display any message. When set to error, the simulator does not allow duplicate ports in the subcircuit definition and displays an error message. Possible values are error, ignore, and warning.

duplicatemodel=error

Specifies whether duplicate model definitions are allowed. When set to warning or ignore, the simulator allows duplicate model definitions. However, it honors only the last model definition.

Depending on the value set, the simulator displays warning messages for duplicate model definitions, or does not display any message. When set to error, the simulator does not allow duplicate model definitions and displays an error message. Possible values are error, ignore, and warning.

duplicate_measure=error|first_win|last_win

Specifies whether duplicate measures are allowed. When set to first_win, the simulator allows duplicate measures, however, it honors only the first measure. When set to last_win, the simulator honors the last measure. When set to error, the simulator does not allow duplicate measure and displays an error message.

duplicateinstance=error|warning|ignore

Specifies whether duplicate instance definitions are allowed. When set to warning or ignore, the simulator allows duplicate instance definitions. If multiple instance definitions are specified, the last one takes precedence.

redefinedparams=error|warning|ignore

Specifies whether parameters can be redefined in the netlist. If a parameter is redefined multiple times, the last parameter definition takes precedence. The default value is warning in SPICE compatibility mode (+spice) and error in Spectre mode.

redefinableparams=[param1 param2...]

Specifies whether duplicate parameters definitions are allowed in the netlist for the specified parameters. For example:

opt1 options redefinableparams=[cx1 rx1]

If the above options statement is specified, Spectre will generate an error for all duplicate parameter definitions except the duplicate parameter definitions for the parameters cx1 and rx1.

duplicate_module=error

Specifies whether duplicate module definitions are allowed. When set to warning or ignore, the simulator allows duplicate module definitions. However, it honors only the last module definition.

Depending on the value set, the simulator displays warning messages for duplicate module definitions. When set to error, the simulator does not allow duplicate module definitions and displays an error message. Possible values are error, ignore, and warning.

Option to not Save the Waveform

Spectre XPS does not support SPICE options .post and .probe. In some situations, you may want to output only the measure file and not the waveform files, to save disk space. To do this, you can use the option save=none.

The save=none option does not save any waveform; however, measure results, such as .measure and .mt0 are still created for .measure.

Option to Enable or Disable the Safe Operation Area (SOA) Check

Spectre XPS supports the Safe Operation Area (SOA) check and its parameters that are often defined in the foundry model files. The SOA check is enabled by default. However, for large designs, the check may introduce performance overhead. You can use the soa_warn option with possible values of yes (default) and no to control the SOA check behavior. When soa_warn=no is specified, Spectre does not generate any warning for the SOA check. As a result, there is no performance overhead.

PSpice Netlist and Device Model Support

Spectre supports PSpice® netlist format targeting to include PCB components modeled in PSpice format into a Spectre integrated circuit simulation. This solution does not support PSpice-only designs. The top-level netlist and control statement need to be defined in Spectre, or SPICE format. The recommended approach is to define a subcircuit in PSpice netlist format and to instantiate the subcircuit in the Spectre netlist.

You can include a PSpice netlist in Spectre using the following statement.

pspice_include <file> (Spectre format)
.pspice_include <file> (SPICE format)

All content of the included file is required to be in PSpice format. If the file includes files, they are required to be in PSpice format. Elements and device models used in the PSpice netlist are simulated using PSpice default values and equations.

The Spectre PSpice feature does not support digital PSpice elements.


Return to top
 ⠀
X