Or in Version 13 or higher you can open the project directly from this page using this button. Make sure to select the Enable Guided Help before clicking this button.
<script src="https://s3.amazonaws.com/downloads.awrcorp.com/gh/ghcommon.bas" type="text/awrscript"> </script> <button class="gh-button gh-projectopen" onclick="runAwrScript('awrGhOpenProject','Multiplicity_and_Vector_Instances.emp')">Open Install Example</button>
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 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. You can also set this by double-clicking on the model, selecting the Vector tab, and entering this syntax into the Vector Instance Properties field. With this setting, you will automatically get N+1 instances of that elements layout in the layout for the schematic.
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 theschematics 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.
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.
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” "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 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”"M". Once you make this change, you will then see all 100 layout cells in the layout view.
Schematic - Vector_Array_Instance