Similar to IC layout, MEMS layout must pass DRC to minimise manufacturing risks and improve yield. In addition to regular DRC concerns, curved objects that are common in MEMS layout impose some unique challenges to the DRC process.
The biggest challenge is the generation of false DRC errors because the DRC rule does not handle MEMS layout well. Most DRC engines and most DRC command files are designed for IC geometry, which is mainly orthogonal, and are not intended to handle all-angle or curved geometry.
Standard rules that work fine for checking orthogonal geometry may generate many false errors when run on all-angle geometry. A few false errors can be quickly reviewed, but if there are hundreds or thousands of false errors, it is easy to miss true DRC errors especially across multiple DRC runs.
MEMS is integrated with a hierarchical DRC engine called Tanner Verify that can help filter out some of these false DRC errors. To show the challenge of false DRC errors, a simple extension rule will be used as an example.
An extension rule states that an object on one layer has to extend out of an object on another layer by at least a specific distance. The extension rule is measuring the distance from the external side (outer) of an edge of the layer 1 object to the internal side (inner) of an edge of the layer 2 object. Typically, this type of check ignores edges that intersect or edges that intersect at a 90-degree angle, as seen in Figure 4.
The false DRC errors are generated when curved edges are approximated as multiple small all-angle edges, by breaking a long single edge into multiple small edges as seen in Figure 5. This makes it impossible to ignore intersections because the single curved edge on Layer 1 that intersected Layer 2 is converted to three edges, with one of the edges not intersecting a Layer 2 edge.
This is not because the DRC engine cannot how handle this issue but because the rule was written and optimised for orthogonal geometry and needs to be modified to handle the curved edges.
One trick to help filter out many small edges due to curve approximation is to only check edges if they project onto each other by at least a specific amount. The projection of an edge onto another edge is a perpendicular projection from the reference edge to the edge being projected onto.
Figure 6 shows an example of the layer 1 edge projecting onto the layer 2 edge and vice versa. A filter length of either ten times the manufacturing grid or a tenth of the measurement distance is a good rule of thumb to use.
Unfortunately, filtering by projection length will not remove the false errors that are due to the curved edges getting approximated as multiple small all-angle edges during the extension rule. The small edges that get created and do not intersect with the other layer can have reasonable projection lengths and as a result, will not be filtered out.
The challenge is filtering out the edges that would have intersected if there was no approximation. The best approach is to rewrite the DRC run to only check the opposite edges and not the intersection. This can be accomplished by doing an extension check and saving the result as a polygon or region, and then performing an internal or width check that checks the spacing between the internal side (inner) of two edges of an object.
Figure 7 shows that when a true error exists, a polygon of four or more vertices is generated during the extension rule check. The extension rule check results in triangles at locations of the false DRC errors that result from a long single edge being broken into multiple small edges. Since intersections are not checked for the width check, these triangles are ignored and are effectively filtered from the results.
Round-off Issues Affecting All-angle Rotation And Node Highlighting
Unlike IC layout, where DRC and LVS rely heavily on CAD tools to find and report errors, MEMS layout designers prefer a more intuitive way to check on the connectivity visually, before running verification tools, due to the intrinsic characteristics of MEMS components and the lack of a schematic netlist with which to compare.
To run node highlighting, the user first defines the connectivity by specifying names of layers that connect to each other. Layers connect if both layers overlap with each other and overlap with a connection layer such as contac t or via (ver t ical interconnect access) or they can be setup to connect if they touch. Objects are defined as connected, if the AND of objects on Layer 1, Layer 2 and the connection layer results in non-zero area geometry.
If a connection layer is not specified, then Layer 1 and Layer 2 must either overlap or touch to be considered connected. After defining the setup, the user then runs the connectivity extraction engine based on these definitions.
To pick the node to be highlighted, users can either highlight the geometry connected to the selected object, or open a dialog window to specify the targeted node name. Node highlighting works on merged objects on drawn or derived layers allowing the user to create complex connectivity rules. All the merged geometry of a node is highlighted in layout and the node name will be displayed in the status bar.
Multiple nodes may be sequentially selected and highlighted in different colours. When a node is highlighted, all related connectivity throughout the hierarchy will be displayed. When highlighting, if more than one node is located at the cursor location, a list of all potential nodes are displayed and the user will be prompted to pick one.
Figure 8 shows an example of using node highlighting to check the connectivity visually. Two nodes are highlighted in different colours displaying their connectivity so that user can quickly find erroneous connections.
When doing connectivity extraction and node highlighting with an all-angle rotated object, one issue that can arise is unconnected geometry due to round-off which may cause a small gap between objects in a rotated instance.
When rotating an instance by an allangle amount (non-90 degrees), each object is rotated individually and gets snapped to the resolution of the design database which is typically 1 nm. This snapping can cause round-off issues which may results in two objects that touch when they are not rotated becoming separated or not touching (small gap between them) when they are rotated at non-90 degree angles.
Notice in Figure 8 that for node 1, a few of the spokes are not highlighted because small gaps arise during the rotation and snapping to the resolution of the design database. This small gap is hard to see but can be easily detected with node highlighting.
The best way to handle this issue is to either merge touching objects in the cell being rotated or to make sure there is some overlap between the touching objects. Notice that the spokes connected to node 2 are all highlighted because that spoke is a single object and not two objects that are touching.
Conclusion
When doing MEMS design, design tools need features that can handle the challenges of arbitrary shapes and structures. The effects of curved geometry and how it gets approximated affects all aspects of layout from editing to DRC and Node highlighting. The key is having the right tools to efficiently operate on curved geometry and filter out false DRC errors that result from MEMS structures.
With the above features specif ically developed for the purpose of MEMS design, a MEMS layout can be accurately verified and sent to fabrication. This makes MEMS-oriented layout tools such as Tanner L-Edit MEMS a necessary assistant to MEMS designers.
APMEN Sept 2016, Metrology & Design