next up previous contents index
Next: Xic-Managed Electrical Property Specifications Up: Property Specifications Previous: Physical Mode Property Specifications   Contents   Index

User-Specified Electrical Property Specifications

The properties described in this section provide user-specified information to device and subcircuit instances, and to device and cell definitions. In many cases, the property applied to a device definition will supply a default for a similar property created in the new instance when the device is instantiated. The instance property can be subsequently modified by the user.

The name property described in the next section, plus the devref, model, value and param properties discussed below, translate into fields of device definition lines when generating SPICE output, and in order to set these properties proficiently, the user must have familiarity with the SPICE syntax.

The strings for these properties may contain special escape sequences indicating hypertext references or other characteristics. These are described in D.4.

model property, number 1
The model property appears in device instances and defines a device model to be included in the SPICE line for the device. This property is normally assigned to the device instance with the Property Editor from the Edit Menu, but a default model can be supplied by including this property in the device definition in the device library file.
5 1 model_name;
The model_name is arbitrary, but a corresponding entry should exist in a model library file.

value property, number 2
The value property supplies a string to be used in the device line in SPICE output for the device ``value''. The property is normally applied to device instances with the Property Editor, but can appear in the device definition in the device library file to assign a default value for the device.
5 2 value;
The value is a string which may, for example, represent a floating point number specifying the component value, e.g., in ohms for a resistor. In general, any string can appear, and it may include hypertext references. A complex string would be necessary for a voltage source with functional dependence, for example.

param property, number 3
The param property specifies the part of the device SPICE line which provides an initial condition or other data not included in a model or value string. The property is normally applied to device and subcircuit instances with the Property Editor, or to cells with the Cell Property Editor command. When applied to cells or subcircuit instances, the property is used to provide parameter definitions for SPICE (see the description of the .subckt line in the WRspice manual). This can also appear in the device definition in the device library file to provide a default. If given to a cell, instances of the cell will inherit the property, which can then be changed from within Xic on a per-instance basis. For device instances, this property specifies any parameter, such as device area, which is provided in the device line after the model. This manifestation was referred to as the initial condition (``initc'') property in previous documentation.
5 3 string;
The string will be appended to the device line when a SPICE file is created. It can contain initial condition data or other parameters significant to the device, which are syntactically expected to the right of the model or value.

The parameter definitions in a param property string have the form

name1=value1 name2=value2 ...

There may be white space around the `=' character. The name tokens are parameter names, which are alphanumeric words starting with an alpha character. The value token can not be empty, and must be a single text token. This means that if the value string contains white space, it must be single or double quoted. Be aware that the interpretation of single quoted ('word') and double quoted ("word") differs fundamentally. Double quoting implies a manifest string type. The string will be assigned verbatim to the parameter, which will be of string type. No further processing will be done. Single quoting implies an expression which reduces to a number when evaluated. If a value is not quoted, it will be evaluated as an expression if necessary, otherwise it will be taken as a numeric value. Generally, parameter assignment failures are silently ignored.

other property, number 4
The other property is a catch-all device property that is not used by Xic and does not appear in SPICE output. There can be arbitrarily many other properties specified for a device, unlike the model, value, and param properties which can appear at most once. The other property can be used for storage of alternate values for the model, value, and param properties. It is applied to device instances with the Property Editor. Although it can be used in device definitions in the device library file, there seems to be no reason for doing so.
5 4 string;

nophys property, number 5
When the nophys property is applied to an electrical device or subcircuit, that device or subcircuit is assumed to have no physical implementation and is ignored in the algorithm that associates electrical and physical devices and subcircuits. A device or subcircuit with this property has no dual in the physical layout, and its terminals will never be placed in the physical layout, where they would otherwise be visible with the Show Terms command. Devices and subcircuits with this property will be ignored in LVS testing.

In order to actually simulate a circuit that has been extracted from the physical layout, it is necessary to add sources and perhaps other devices, which have no counterparts in the physical layout. In general, this will cause LVS errors in subsequent LVS runs. The nophys property can be added to the additional devices to avoid these errors.

By ``ignoring'' these devices, the device terminals are considered as open circuits. However, there are times when it would be useful to consider these devices as shorted. For example, suppose that one wishes to include parasitic series inductance in a resistor during simulation. However, this inductance would cause LVS to fail, since the series inductor added to the schematic has no explicit physical counterpart.

It is possible to configure the nophys property to indicate that when the electrical netlist is generated for use by the extraction system, the corresponding devices will be forced such that all terminals connect to the same net, i.e., the terminals are effectively shorted together. Thus, the inductor in the example above, if given this property, would disappear properly during LVS.

The numerical value of the property is 5. The property string is either ``nophys'' or ``shorted''. The latter indicates that the shorting feature is to be used. Xic will always set the property string to one of these values. Devices inherit this property from cell definitions in the device library file. The format is

5 5 nophys; or
5 5 shorted;

Devices with the nophys property applied will be rendered using a different color than other devices.

virtual property, number 6
When the virtual property is applied to an electrical subcircuit, the subcircuit will not be included in netlist output. This means that in SPICE output, the corresponding ``.subckt'' block of lines will be absent. However, calls to this subcircuit, if any, will be included, and must be resolved through text from a .include line or by some other means.

This is a method for including ``foreign'' subcircuits within the Xic/WRspice framework.

The numerical value of the property is 6. The property string is ``virtual''. Xic will always set the property string to this value. This property applies only to electrical cell definitions (subcircuits). The format is

5 5 virtual;

flatten property, number 7
This can be applied to electrical masters and instances. The state is active if the instance has the property and the master does not, or the instance does not have the property and the master does. If active, the schematic will be logically flattened into its parent before association in LVS.

range property, number 8
The range property can be applied to device (other than terminal devices) and subcircuit instances. The property contains two non-negative integers, which define a range of values between the start and end integers inclusive, stepping by one. When applied to an instance, the instance becomes vectorized, with the range providing the subscripts for the individual scalar instances. Scalar contact terminals become vectors, and vectors become bundles. Use of vector instances can simplify some schematics with repeated circuit blocks. More information about vector instances and the rules for connecting to them can be found in 4.2.9.

The property number is 8, and the property string consists of two non-negative integers, the starting and ending values of the subscripting range. The property applies only to non-terminal device instances and subcell instances.

macro property, number 20
The macro property is no longer in use, having been replaced by the macro flag which is associated with the name property. However, it is still recognized and performs its intended function when encountered. By default, it will not be generated in output, thus there is a potential compatibility issue with Xic release 4.3.5 and earlier. The new variable WriteMacroProps can be set before generating output to include macro properties, thus providing backwards compatibility.

While reading input, if a macro property is read, a window appears reminding the user to set WriteMacroProps if backwards compatibility is needed. The message can be avoided by either of the following:

  1. Save the design to a new file, it will not be backwards compatible, and will have no macro properties.

  2. Set the WriteMacroProps variable in a startup script. This suppresses the message, and backwards-compatible files will be produced.

It is no longer possible to (conveniently) create macro properties in Xic, for example with the Cell Property Editor.

The macro flag (or property) applies to device master cells. When present, its only effect is that in SPICE output, an `X' is prepended to the device name in instantiation lines of the device. Thus, SPICE will treat the device instance as a subcircuit call. These instances must have a model property giving a name that will match a .subckt definition somewhere, likely from a PDK device model file.

This accounts for devices that are likely the electrical part of parameterized cells, that implement nonlinear behavior through a network of controlled sources expressed as a subcircuit in the SPICE model definitions file. MOS capacitors and poly resistors are devices that are frequently modeled this way.

If the macro flag is set and the name prefix already begins with X or x, the device is taken as a macro, meaning that Xic will not output a subcircuit definition for the cell, and a model property will provide the name of a subcircuit definition expected to be found in the model library or elsewhere.

devref property, number 21
This property maps text that appears in a SPICE device call after the node list but ahead of the model or value. The purpose is to provide the name of a reference device for current-controlled sources (CCCS and CCVS), and the current-controlled switch (CSW). This property can be applied to device instances only, and is supplied by the user typically with the Property Editor.

The property supports hypertext, and the reference name should be added as a hypertext reference, so that the correct device is referenced if the name should change. That is, when editing the property string on the prompt line, click on the device to reference. The device name will be entered in the line using colored text, indicating a hypertext entry. Unlike plain test, the hypertext entry will still be correct if the referenced device name changes.

There is no default, and a missing property will produce a syntax error in a generated SPICE file.

next up previous contents index
Next: Xic-Managed Electrical Property Specifications Up: Property Specifications Previous: Physical Mode Property Specifications   Contents   Index
Stephen R. Whiteley 2022-05-28