next up previous contents index
Next: Schematic Editor Functions Up: Extraction Functions Previous: Electrical Devices   Contents   Index

Resistance/Inductance Extraction

(int) ExtractRL(conductor_zoidlist, layername, r_or_l, array, term, ...)
This will use the square-counting system to estimate the resistance or inductance of a conducting object with respect to two or more terminals. The first argument is a trapezoid list representing a single conducting area, on the layer given in the second argument. The layer keywords set electrical parameters used in the estimation.

For Resistance:
The Rsh layer keyword gives the ohms-per-square of the material. If not set, the value is computed from Rho or Sigma and Thickness if these are set. If these keywords are also not given, a value of 1.0 is assumed.

For Inductance:
The Tline keyword supplies the appropriate parameters. In this case, the material is assumed to be over a ground plane covered by dielectric.

The third argument is a boolean which if nonzero indicates inductance estimation, and zero indicates resistance estimation.

The fourth argument is an array which will hold the return values, which will be resized if necessary. The zeroth component of the array gives the number of returned values, which are returned in the rest of the array. If there are two terminals, the number of returned values is 1. For more than two terminals, the number of returned values is n*(n-1)/2, where n is the number of terminals. The values are the effective two-terminal decomposition for terminals i,j (i != j) in the order, e.g., for n = 4; 01, 02, 03, 12, 13, 23.

The following arguments are trapezoid lists representing the terminals. Arguments that are not trapezoid lists will be ignored. There must be at least two terminals passed. Terminal areas should be spatially disjoint, and in the computation, the terminal areas are clipped by the conductor area. Terminals are assigned numbers in left-to-right order.

The algorithm is most efficient if all coordinates are on some grid. This provide for efficient tiling of the structure.

Structures that require a very large number of tiles may require excessive time and memory to compute, and/or suffer from a loss of accuracy. The approximate threshold is 105 tiling squares. Non-Manhattan shapes have strict internal limiting of tile count. Manhattan structures can require an arbitrarily large number of tiles, thus the potential for resource overuse.

The return value is always 1. The function will fail (terminating the script) if an error is encountered.

(int) ExtractNetResistance(net_handle, spicefile, array, term, ...)
This function will extract resistance of a conductor net, taking into account multiple conducting layers connected by vias. The resistance decomposition of each conducting object and its vias and/or terminals is computed using the algorithm used by the ExtractRL function. The resistance of the connected network is then computed, with respect to the terminals specified.

The first argument is a handle to a list of objects as returned from FindPath or FindPathOfGroup.

The second argument is a string giving a file name, which will contain a generated SPICE listing representing the extracted resistor network. In the SPICE file, each terminal and each via are assigned node numbers. A comment indicates the range of numbers used for terminals. If this argument is 0 (NULL) or an empty string, no SPICE file is written.

The third argument is an array which will hold the return values, which will be resized if necessary. The zeroth component of the array gives the number of returned values, which are returned in the rest of the array. If there are two terminals, the number of returned values is 1. For more than two terminals, the number of returned values is n*(n-1)/2, where n is the number of terminals. The values are the effective two-terminal decomposition for terminals i,j (i != j) in the order, e.g., for n = 4; 01, 02, 03, 12, 13, 23.

The following arguments are trapezoid lists representing the terminals. Arguments that are not trapezoid lists will be ignored. There must be at least two terminals passed. Terminal areas should be spatially disjoint, and in the computation, the terminal areas are clipped by the conductor area. Terminals are assigned numbers in left-to-right order.

The return value is always 1. The function will fail (terminating the script) if an error is encountered.


next up previous contents index
Next: Schematic Editor Functions Up: Extraction Functions Previous: Electrical Devices   Contents   Index
Stephen R. Whiteley 2024-09-29