By default, a layer named ``FHRY'' will serve as the masking layer. If, however, the FhLayerName variable is set to a layer name, that layer will provide the masking function. We will refer to this layer as the ``mask layer''.
If no objects are found on the mask layer, all geometry in the current cell will be treated in the interface. Be advised that the inductance/resistance extraction will very rapidly become untenable if too much geometry is included. The interface itself is not designed to handle large object collections, though it will remain snappy while generating files that may take weeks to run. More than 100 objects is probably pushing things. The effective area of interest (AOI) is the bounding box of the current cell.
If objects are found on the mask layer, then the mask layer pattern is anded with the other layers, and the resulting geometry is processed by the interface. The bounding box of the mask layer patterning becomes the effective AOI, which can be much smaller than the cell bounding box. In any case, the AOI bounds all geometry in the problem.
The geometry is as shown in the drawing window, though geometry is saved in an internal representation that removes any overlap of objects in the original layout. Outside of the AOI, and above all geometry and below the substrate, empty space is assumed.
The geometric specification of conductors to FastHenry consists of ``node'' definitions, and the definition of ``segments'' that connect the nodes. The nodes are points in three-dimensional space, and touch or are enclosed in conducting objects. Once the node locations are assigned, the connecting segments are created. Nodes and segments that dead-end are removed, the remaining nodes and segments can be thought of as a three-dimensional SPICE net, where the segments represent inductors. We compute the overall inductance between different ``terminals'' of the network.
The interface works by tiling. This assumes that current can flow in any direction. A tile is a rectangular prism, with a node in the center, and a node at the center of each of the six faces. Segments, whose dimensions are set by the tile size, connect the central node with each of the face nodes. In order for adjacent tiles to make contact, the face nodes of the adjacent faces must coincide. This will be true if the conducting objects are decomposed into tiles properly, avoiding corners that are adjacent to an edge. The decomposition is performed along the X, Y, and Z directions. Tiles with a side longer than a given maximum dimension will be subdivided.
This is the appropriate way to handle three-dimensional current flow through constrictions such as vias, and account for penetration or skin depth. However, FastHenry was originally set up to handle long, thin conductors where the current flow is assumed to be in a fixed direction. Most of the examples use this approach, and use flags that internally subdivide the segments transverse to current flow. This provides suitable accuracy and good efficiency for certain types of problems.
When the full three-dimensional decomposition is used, the problem size can quickly grow to the point where FastHenry can not provide a solution in a reasonable amount of time. Approximations must be employed at this point to reduce segment count. To a much greater extent that for capacitance extraction, the user may have to intervene to fine-tune the process.
The ability to tile requires that the geometry be Manhattan. Support for non-Manhattan geometry is provided by first internally Manhattanizing non-Manhattan objects before processing. The granularity of the Manhattanization is controlled by the FhMinRectSize variable or the corresponding text entry field in the LR Extraction panel Params page. Note that this can dramatically increase the segment count, and therefor FastHenry run time. When possible, non-Manhattan features should be avoided when using this interface to FastHenry.