Page tree
Skip to end of metadata
Go to start of metadata

Where To Find This Example

Select Help > Open Examples... from the menus and type either the example name listed above or one of the keywords below.

Or in Version 13 or higher you can open the project directly from this page using this button.

Design Notes

Multiplicity and Vector Instances

This example demonstrates two different methods of specifying multiplicity on a circuit model or subcircuit and the impact it has on simulation times and layout.


There are two methods that can be used to specify multiple copies of elements or subcircuits in a schematic. Vector Instances creates N copies of the element or subcircuit where each copy is simulated as a separate element. Vector Instances are identical to having N identical elements or subcircuits in a schematic. The number of nonlinear equations increases with the number of instances in the circuit. Multiplicity creates a scaled version of the element or subcircuit by the Multiplicity (M) factor. Multiplicity is identical to scaling an element's parameters. For example, a 10 ohm resistor with an M factor of 10 is identical to simulating one 1 ohm resistor. The simulation scales the nonlinear equations that are solved instead of increasing the number of equations

Note that with the M-factor, you cannot simulate the different interconnects to each individual block that is being scaled. But with the vector instances, you can simulate the parasitic effects of interconnects connecting the elements or subcircuits.


Vector instances are created by using the syntax [0:N] where N is the N+1 number of vector instances to be created. You can add this to the end of the ID parameter for an element or subcircuit. For example changing ID=S1 to ID=S1[0:99] would make 100 instances of this element.

Multiplicity is created differently depending on whether it is an element or a subcircuit. For each subcircuit, there will an M parameter where you can set the multiplicity for that subcircuit. There is no separate multiplicity parameter for each element, however for a model developer, they may use an element parameter to specify multiplicity. For layout, you must specify which model parameter is used to determine how multiple layout cells should be drawn. To see this setting, double click on the element, select the Layout tab and enter the parameter name in the Multiplicity parameter field. This will be explained through this example.


All the schematics contain the same "Device Model" subcircuit with a Curtice Cubic Nonlinear FET model inside. To illustrate the difference in simulation times, three separate simulations are run. The "No Multiplicity" schematic uses M = 1, the "M_Factor"schematic uses M = 100, and the schematic "Vector Array Instance" uses a vector array [0:99]. The "No Multiplicity IV Curves" graph shows the base device IV curves. The "M_Factor and Vector Array IV Curves" graph shows that both techniques give the same answer and notice the current values are 100x the base device results. The Summary window (View > Status Window) shows the total simulation time for each circuit. The "No Multiplicity" schematic and the "M_Factor" schematic both take approximately 0.1s to simulate while the "Vector Array Instance" takes approximately 4.5s to simulate.

Schematic Connectivity

The "Difference Between Methods" schematic illustrates the difference between M-factor and vector array methods with respect to their interconnectivity between subcircuits and elements at the schematic level. In the first case where M-factor is set to M=4, a single resistor is connected to all four subcircuits via a single net. In the second case where vector array property S2[0:3] is used for the subcircuit, a bus net B1[0:3] is used to connect each individual resistor to each individual subcircuit in the vector array. This approach also simplifies the readability of the schematic. Also notice how the connectivity is defined in the layout.

Schematics Layout

Start with the "Device Model" schematic and open its layout view (View > New Schematic Layout). It will be easier if these are the only open windows and you tile the windows (Window > Tile Vertical). Notice there is one simple layout cell for this model. Now change it to be have two vector instances. Change the ID parameter from CF1 to CF1[0:1]. Notice how the layout changes, you may have to view the entire layout (View > View All). Now change the ID back to the original value. Notice there is an AFAC parameter of the device model that is set to 2. Double click on the model to open the Element Options dialog box and click on the Layout tab. In the Multiplicity parameter, type "AFAC" and click OK. Now view the layout and you will see two instances of the layout cell. Set the layout back to only drawing one object by setting the AFAC parameter to 1.

Now let's look at the two approaches using a subcircuit.

Open the "Vector Array Instance" schematic and its layout. Notice that you have 100 individual layout cells. The layout tool will automatically array each layout cell, however, you can arrange them however you like. Try changing the number of vector instances to see what the layout does.

Open the "M_Factor" schematic and its layout. You will see that there is only one layout cell. You will need to change the "Multiplicity parameter" in this case to be "M". Once you make this change, you will then see all 100 layout cells in the layout view.

Schematic - Vector_Array_Instance

Schematic - M_Factor

Schematic - Device_Model

Schematic Layout - Vector_Array_Instance

Schematic Layout - M_Factor

Graph - M_Factor and Vector Array IV Curves