Some of the biggest challenges in chip scaling involve contacts and interconnects. Since interconnects become more compact at each process node, this has an adverse effect on RC (resistance-capacitance) delay (and hence timing, max operating frequency, etc.) in integrated circuit (IC) designs. Transistor devices have traditionally scaled well, e.g., with the translation from planar to fin field-effect transistor (FinFET) devices. However, the contacts and interconnects have shrunk as the devices have shrunk, which leads to significant increase in resistance.
At 16 nm/14 nm process nodes, the volume of the tungsten conductor material is relatively small. Hence, an electrical signal flows through the relatively smaller amount of conductive metal, causing a significant increase in contact resistance. The electrical resistance of an object is a measure of its opposition to the flow of electric current and so relates to the difficulty to pass a current through a conductor (such as a contact). Contact resistance has become more problematic at each process node.
Interconnects are structures that connect two or more circuit elements (such as transistors) together electrically. Modern integrated circuits at the leading edge process geometries now have in the range of 9 to 12 metal (copper) layers, if not more. Each layer contains a number of wire structures, and wires on different layers are electrically connected with vias.
A large portion of the RC delay can be attributed to via resistances, and via resistances significantly increase as wire widths decrease.
A key goal in IC manufacturing is to align the various layers of a wafer in a precise manner, which represents good overlay. For example, a transistor gate on one layer needs to be connected through a contact in another layer and to an interconnect wire in another layer. They all have to be lined up on top of each other. Since such alignment is not perfect in true manufacturing processes, there is tolerance built into the design rules both geometrically and in the performance characteristics. To scale standard cells smaller with each node, overlay accuracy (alignment) also needs to scale along with the feature sizes. Metrology system vendors ASML and KLA-Tencor recently introduced new overlay metrology systems, seeking to address the increasing precision required for lines, cuts and other features on each layer. At 10/7 nm, there are 80 or more masking layers, compared with 40 layers at 28 nm. If those masking layers are not precisely measured, the features being patterned, deposited and etched may not line up from one layer to the next. The job of the overlay metrology system is to detect unwanted shifts in position between the layers, as well as process variations. This is a critical measurement, as overlay mishaps can impact the performance and yield of a chip, as well as its reliability in the field. At each new node however, the alignment process is much more difficult. Even with such recent advances in metrology systems, overlay/misalignment issues still persist in IC manufacturing today.
Multi-patterning for the smaller geometry processes has made the overlay/alignment problem even more severe. Many of the most difficult alignment challenges exist where layers (masks) need to align to self-aligned quadruple patterning (SAQP) with lower levels in the interconnect stack. The very small pitches of SAQP layers have increased the challenge of aligning an edge of a higher interconnect level to those lower level pitches. This complex process has significantly increased in difficulty as processes scale from 7 nm to 5 nm.
Via resistances can further increase as a function of such process layer misalignment, unless specific steps are taken to oversize the vias. For non-oversized vias, the via resistance increases due to misalignment can be as much as 150%. With oversized vias, the via resistance increases can be reduced to 10-20%, but it is still not zero.
In addition to contact and via resistance issues which may affect IC performance (e.g. max operating frequency), via misalignment issues lead to problems with reliability. The reduction of the via contact area to the connected metal line may degrade electromigration (EM) lifetime because of the local current density increase (the current density increases as via overlap areas decrease).
Design rules have become more stringent and complex (as shown in
General-purpose IC design rules have to be somewhat pessimistic/conservative in nature, in order to cater to a wide variety of designs, as it is not known a priori what polygons will neighbor other polygons during an IC layout, and so the rules have to be able to accommodate just about every possibility.
Standard cell designers (e.g., SRAM designers) on the other hand have traditionally been able to take advantage of “DRC exemptions” due to the extreme regularity of their designs (e.g., each SRAM cell is surrounded in all directions by identical cells or close-to-identical dummy cells at the periphery of the memory array). This regularity means that it is known a priori what polygons neighbor other polygons, and so the rules can be ‘relaxed’ somewhat, allowing for a denser packing of polygons compared to that allowed for by the restrictive rules. Packing a cell tighter is more meaningful when it is repeated many times, so these exemptions are often negotiated between a designer and a foundry/fab. Even very small decreases in bit-cell (or any other type of cell used in a highly repetitive manner, such as Standard Cell Library cells) area can lead to exceptionally large improvements in chip density and area decrease at the chip level. Efforts have also been made in other design areas in the past to use DRC exemptions in conjunction with regularly structured designs/fabrics resulting in improved packing density, and/or improved manufacturing yield. Here, the regularity enforced by the design fabric has resulted in the relaxing of the design rule constraints somewhat. However, this approach is somewhat inflexible, as it requires an imposed significant regularity of the design fabric, and so reduces design and layout engineer choices.
Some embodiments provide a method for computing and displaying of minimum overlap for semiconductor layer interfaces, such as metal-via and metal-contact. The method leverages a machine-trained network (e.g., a trained neural network) to quickly, but accurately, infer the contours for the manufactured shapes across a range of process variations. The method also models the semiconductor process manufacturing layer-to-layer misalignment. The combined set of information (from the machine-trained network and from the modeling) is used by the method to compute the minimum overlap shapes at multiple layer interfaces. The method in some embodiments then uses the minimum overlap shapes to obtain an accurate calculation of the via or contact resistance.
The method of some embodiments also aids the IC designer in gaining an intuitive understanding of exactly how the final overlap shapes are reached. The method of some embodiments provides a passive animation scheme that is presented in a video file playback-like manner. Conjunctively, or alternatively, the method of some embodiments provides a dynamic animation scheme that is also presented in a video-like manner but in which a layout editor (e.g., a router) itself is used to dynamically display an animation, while allowing the user to continue to operate the layout editor to perform operations (e.g., design edit operations, view operations such as zoom and pan) to shapes of interest for example.
The method of some embodiments augments the animations with a baseline of perfectly aligned images in between the misaligned images (e.g., overlays the animation on top of the IC design layout defined by the layout editor), to provide a static visual frame of reference to allow the details of the animations to be better absorbed by the layout engineer. The animations allow the layout engineer to visualize the effects of process manufacturing layer misalignment at the same time as visualizing the manufactured process wafer contours in a variation-aware manner, and aid in intuitively understanding how the minimum overlap shapes are obtained.
Due to the dynamic nature in which computed shapes are scheduled and redrawn by the layout editor, the method of some embodiments can redraw shapes at the same level of granularity as the design shapes, even when highly zoomed in at low zoom altitude levels, offering the designer the clearest images. The method of some embodiments also provides several higher level layout editing tasks that leverage the computations to optimize the layout for improved overlap area, reduced metal-via and metal-contact resistance, and improved long term reliability. The method uses highly parallel compute architecture (such as Graphics Processing Units (GPU) and Tensor Processing Units (TPU)), which improves throughput compared to traditional means.
The method of some embodiments provides a layout designer with sufficient information to visualize contact and via overlap on a per-contact or per-via basis, so as to be able to modify the layout to further improve overlap and minimize resistance. The method also extends the concept and application of DRC-exempt design to more arbitrary design scenarios (for example, custom IC design), during design layout time, effectively simplifying design rules for the layout designer, and improving the resulting design yield and manufacturability. Some embodiments achieve this without compromising layout flexibility, i.e., without forcing the layout designer to use a small number of predefined layout templates.
Some embodiments use machine learning processes (to present the designer with a ‘WYSIWYG’ (What You See Is What You Get) paradigm for contact/via and metal overlap. These embodiments allow for interactive design updates, while visualizing in real time the expected manufactured silicon results. In particular, some embodiments use the machine trained neural network to predict the shape of the wafer contours for metal, contact and via shapes, along with their process variations (inner and outer contours) after a particular manufacturing stage of a manufacturing process that is used to manufacture an IC based on the design layout.
Combining such machine-trained networks along with the other described aspects of the method of some embodiments allows the IC designs to be computed with minimum contact-metal or via-metal overlap areas in the presence of both process variations and mask misalignments during semiconductor fabrication. The method of some embodiments presents the minimum overlap areas to a circuit designer in the context of the circuit design itself, and within the tool used to create the circuit design. Furthermore, to allow the designer to understand how the minimum overlap area is obtained in the context of a specific integrated circuit design, the method of some embodiments allows the designer to make layout modifications specific to that design to improve the minimum overlap area, and thus reduce contact-metal or via-metal resistance values, improving operating frequency and also improving reliability. By furnishing the designer with sufficient information, the method allows the designer to locally optimize contacts and vias on a per-contact or per-via instance basis by layout modification, as a function of the surrounding design shapes.
One of ordinary skill will realize that other embodiments are implemented differently. For instance, some embodiments do not use machine-trained networks to produce the contours for the manufactured shapes across a range of process variations but rather generate these contours through other programmatic or algorithmic manners. Others only model the semiconductor process manufacturing layer-to-layer misalignment in the predicted overlapping shapes that they present without accounting for the contour variations that are due to the manufacturing process variations. Alternatively, still other embodiments do not account for the layer-to-layer misalignment in the predicted overlapping shapes but rather only account for the contour variations that are due to the manufacturing process variations.
The preceding Summary is intended to serve as a brief introduction to some embodiments of the invention. It is not meant to be an introduction or overview of all inventive subject matter disclosed in this document. The Detailed Description that follows and the Drawings that are referred to in the Detailed Description will further describe the embodiments described in the Summary as well as other embodiments. Accordingly, to understand all the embodiments described by this document, a full review of the Summary, Detailed Description, the Drawings and the Claims is needed. Moreover, the claimed subject matters are not to be limited by the illustrative details in the Summary, Detailed Description and the Drawings.
The novel features of the invention are set forth in the appended claims. However, for purposes of explanation, several embodiments of the invention are set forth in the following figures.
In the following detailed description of the invention, numerous details, examples, and embodiments of the invention are set forth and described. However, it will be clear and apparent to one skilled in the art that the invention is not limited to the embodiments set forth and that the invention may be practiced without some of the specific details and examples discussed.
Some embodiments provide a method for computing and displaying of minimum overlap for semiconductor layer interfaces, such as metal-via and metal-contact. The method uses a machine-trained network (e.g., a trained neural network) to quickly, but accurately, produce multiple contours for the manufactured shapes across a range of process variations. The method also models the semiconductor process manufacturing layer-to-layer misalignment. The combined set of information (from the machine-trained network and from the modeling) is used by the method to compute the minimum overlap shapes at multiple layer interfaces. The method in some embodiments then uses the minimum overlap shapes to obtain an accurate calculation of the via or contact resistance.
Some embodiments use machine learning processes (such as the deep neural network processes disclosed in U.S. Patent Publication 2022/0128899, which is incorporated herein by reference) to present the designer with a ‘WYSIWYG’ (What You See Is What You Get) paradigm for contact/via and metal overlap. These embodiments allow for interactive design updates, while visualizing in real time the expected manufactured silicon results. In particular, some embodiments use the machine trained neural network (such as a neural network disclosed in U.S. Patent Publication 2022/0128899) to predict the shape of the manufactured wafer contours for metal, contact and via shapes, along with their process variations (inner and outer contours).
The predicted shapes of the contours represent the expected shapes of these contours after a particular manufacturing stage of a manufacturing process that is used to manufacture an IC based on the design layout. The particular manufacturing stage can be the stage resulting in the final manufactured IC, or an earlier stage, such as a wafer simulation stage, as further described in concurrently filed U.S. Patent Application with the docket number D2S.P0007 entitled “Leveraging Concurrency to Improve Interactivity with an EDA Tool.”
Combining such machine-trained networks along with the other described aspects of the method of some embodiments allows the IC designs to be computed with minimum contact-metal or via-metal overlap areas in the presence of both process variations and mask misalignments during semiconductor fabrication. The method of some embodiments presents the minimum overlap areas to a circuit designer in the context of the circuit design itself, and within the tool used to create the circuit design. Furthermore, to allow the designer to understand how the minimum overlap area is obtained in the context of a specific integrated circuit design, the method of some embodiments allows the designer to make layout modifications specific to that design to improve the minimum overlap area, and thus reduce contact-metal or via-metal resistance values, improving operating frequency and also improving reliability. By furnishing the designer with sufficient information, the method allows the designer to locally optimize contacts and vias on a per-contact or per-via instance basis by layout modification, as a function of the surrounding design shapes.
One of ordinary skill will realize that other embodiments are implemented differently. For instance, some embodiments do not use machine-trained networks to produce the contours for the manufactured shapes across a range of process variations but rather generate these contours through other programmatic or algorithmic manners. Others only model the semiconductor process manufacturing layer-to-layer misalignment in the predicted overlapping shapes that they present without accounting for the contour variations that are due to the manufacturing process variations. Alternatively, still other embodiments do not account for the layer-to-layer misalignment in the predicted overlapping shapes but rather only account for the contour variations that are due to the manufacturing process variations.
Before describing more detailed embodiments, the generation of multiple contours corresponding to multiple variations of a manufacturing process parameter will be explained. Most IC designs today are created with rectilinear shapes, using Manhattan routing, or occasionally 45 degree routing. When these designs are manufactured, the shapes deposited on the substrate are no longer Manhattan. In other words, the shapes deposited on the substrate during manufacturing become highly curvilinear due to the realities of manufacturing, particularly at modern process geometries.
The cross-hatched rectilinear shapes represent different color masks for a metal layer, e.g., right-to-left cross hatching for the blue-color mask and left-to-right for the red-color mask. The three sets of curvilinear manufactured contours shown correspond to the one manufacturing process extreme (inner contour, e.g., for a maximum variation), to the nominal process conditions (nominal contour, e.g., for a nominal variation) and to another manufacturing process extreme (outer contour, e.g., for a minimum variation). The manufacturing process variations that result in multiple contours (inner, nominal, outer) combine with the process layer misalignment problem to make it difficult for a designer to understand how much actual via or contact overlap exists on a per-via or per-contact instance basis, and therefore difficult to anticipate how best to design the layout for maximum overlay, with minimum contact/via resistance, and best reliability. The generation of such contours through the use of a machine-trained network is further described in the above-incorporated U.S. Patent Publication 2022/0128899.
At 1515, the deep learning software process starts up, in which a trained deep learning model is used to infer the shapes that appear on a wafer after manufacturing. The process loads its neural network along with its weights and produces a matching set of tiles corresponding to the input design. These tiles are then reconstructed to form a pixel image of the manufactured design shapes.
At 1520, the manufacturing software process (1) starts up again, (2) contours the reconstructed pixel image to determine the precise curvy manufactured shape contours, and then (3) etches down the predicted contoured design so that they are displayed and operated upon in the geometry domain utilized by the layout editing software. The deep-learning inference process is effectively repeated for multiple sets of process conditions, so that the minimum (inner), nominal, and maximum (outer) corner images are obtained. At 1525, the manufacturing software process determines whether it has processed the design components for all of the colors. If so, the process 1500 ends. Otherwise, the process 1500 returns to 1510 to repeat its operation for another set of components of another color.
The process of
Returning now to the description of the manufactured contours for metal, contact and via layers, a further zoomed-in view 1800 of the design area highlighted in the rectangle 1404 of
Without the advantages of some embodiments, it would be difficult to impossible for a circuit designer to envisage or anticipate the inner/nominal/outer contours that will result from any individual metal/contact intersection, given that the specifics of the manufactured contours will actually vary as a function of the neighboring shapes in the design. For example, metal shapes manufactured in isolation will result in different contours than those which are manufactured in close proximity to others. The same is true of contacts or vias. Given this, it is even more difficult for a designer to envisage the minimal metal/contact (or metal/via) overlap areas, and hence to correctly anticipate the resistance of that portion of the interconnect stack. Small geometry process interconnects are known to suffer from high resistance at metal/via or metal/contact interfaces, and hence it is critical that these are closely controlled.
To ensure a minimum overlap area, and a corresponding maximum overlap resistance, design rules typically exist to force designers to overlap the metal or via polygon shapes by a certain amount when drawing the metal shapes. For designers working in design-rule-exempt scenarios, however, it is desirable to know exactly what the minimum overlap shapes are so that accurate manufactured overlap areas (and corresponding resistance values) can be calculated as a function of the actual circuit layout and the circuit layout modified until these values are within tolerance.
To accurately calculate the minimum overlap for any given metal/contact or metal/via intersection (and hence the corresponding resistance value), the contours of the manufactured metal and contact/via shapes need to be known, taking neighborhood/proximity effects into account. In some embodiments, these contours are first determined by a trained neural network such as the network detailed in U.S. Patent Publication 2022/0128899. A brief overview of the process by which this is achieved is presented with respect to
While possible to compute the overlap shapes using all available contours, some embodiments more efficiently perform the overlap calculations using the inner contours only (e.g., for a maximum process variation), and ignore the process condition corresponding to the outer or nominal contours.
In a translation transformation, all the points in the object are moved in a straight line in the same direction. The size, the shape and the orientation of the image are the same as that of the original object. Same orientation means that the object and image are facing the same direction. With each such translation value, the process translates (at 2120) the inner contours, or ‘slides’ in a particular direction by a particular amount, and all such translated contours are gathered.
Next, at 2125, the process determines if all the translation values have been exhausted for a particular layer. If so, the process determines (at 2130) if another layer in the pair is to be consulted, and the process is repeated. The translation operations therefore model the results of the various possible misalignments in the manufacturing process. After the final layer has been exhausted, all translated shape contours are gathered and the process intersects (at 2135) via a Boolean operation to compute the minimum overlap area, taking all misalignments into account. After 2135, the process ends.
While some of the above-described embodiments compute the shape of the overlap area by using the inner contour, other embodiments use the nominal and/or outer contours, as mentioned above. Other embodiments generate multiple overlap shapes by intersecting multiple sets of contours (e.g., one shape by intersecting the inner contour, another shape by intersecting the nominal contour and yet another shape by intersecting the outer contour). For each of these shapes, these embodiments perform a similar process to the process 2100 of
This process repeats until it determines (at 2230) that there are no more translated contours for the second layer. The process then determines (at 2235) if there is another set of translated contours for the first layer. If so, the process moves back and retrieves (at 2240) the next translation for the first layer, and performs (at 2245) a Boolean AND operation of the result with each set of translated contours for the first layer and continues the operation. Otherwise, the process 2200 ends.
In this way, all combinations of translated inner contours for the first and second layers are visited, and used to Boolean AND (intersected with) each other to produce the final result. At the end of the process, each of the original polygon shapes from the initial set of ‘inner’ contours has been reduced to a minimum shape representing the intersection of all the shapes (on a per-shape basis), such as those depicted with the thick dashed lines (displayed in a first color, e.g., in red) in
During the process of
In some embodiments, the misalignment translations applied to each layer are listed in the table 2300 of
In other embodiments, the misalignment translations applied to each layer are listed in the table 2400 in
In some embodiments, different misalignments can be explored for different pairs of interconnect layers. Also, in some embodiments, different misalignments can be explored for different x- and y-axis directions. The misalignments in some embodiments are defined with respect to a z-axis, which is the vertical axis that is along the direction on which the metal layers are stacked on top of the substrate layer and on top of each other.
The intersection of the misaligned polygons to compute the minimum overlap are computed by Boolean AND operations in some embodiments, using any of a variety of algorithms. Some standard algorithms that can be used for computing the resulting clipped polygon, given the translated inner contour polygons, include the Greiner-Hormann clipping algorithm and the Sutherland-Hodgman clipping algorithm. These algorithms are applied in sequence on a per-layer basis. When only two layers are involved, just a single layer intersection is performed, but where multiple layers are involved (e.g. M1-vial-M2), then the intersection operation is performed at each layer interface (e.g. M10-vial) and (vial-M2).
Minimum overlap polygons are produced for each layer interface, and all overlap polygons for a particular layer interface are assigned to a dedicated Layer Purpose Pair (LPP) within a layout editor, such as Synopsys' Custom Compiler or Cadence's Virtuoso, with which to display the results. An LPP can be considered a physical or other design entity used as a visual representation of different types of information, such as mask geometries and interconnection in schematics. Each unique layer purpose pair has its own associated colors, highlighting, menus, and design objects. Visual examples of different LPPs in use have been shown in
By dynamically creating minimum overlap polygons on dedicated LPPs within the layout editor for a given design, and storing these polygons within or alongside the regular polygons representing the design database itself, it is possible for the layout editor tool to render the minimum overlap polygons along with those of the design cell itself (those drawn by the designer), and have the overlap polygons dynamically re-drawn at the correct zoom level by the layout editor software as the user interacts with the design via zoom and pan operations in the user interface. Examples of the results of these dynamic redraw operations have been shown in
In some embodiments, the minimum overlap polygons are drawn using an LPP which is drawn above/after the regular design polygons and the contours for the metal and via/contact layers. A stipple pattern in some embodiments is used which effectively makes the minimum overlap polygon translucent, even when drawn with an opacity value of 100%. In other embodiments, the contours and/or minimum overlap polygons are drawn using an opacity value of less than 100%, making them appear translucent regardless of stipple pattern.
Various interactive user operations are possible on the minimum overlap contours displayed within the layout editor in some embodiments. For example, it is possible to select the overlap shape, and query its properties, such as the bounding box, locations of the individual polygon vertices, etc.
In some embodiments, the inner contours only of the various layers involved in the overlay are shown.
While it is most important to consider the minimal overlap case (as this leads to the maximum resistance, which is critical to circuit performance), it is also important for designers to know the range of possible overlap values for each contour region. This can be used to determine a resistance range (minimum resistance value, nominal resistance value, and maximum resistance value) for any given contact or via. The technique for determining the minimal overlap in the presence of manufacturing variations, neighborhood effects and manufacturing layer misalignments can also be used to compute the nominal overlap. In this situation, instead of using the minimum contours in the process of
The custom value table allows the user to enter their own values, adding new rows or deleting existing rows as appropriate, and setting the values of the alignment X and Y parameters differently for each row. In some embodiments, different magnitudes for the misalignment translation vector are also entered here (for example, in the figure the user is shown entering values corresponding to a maximum misalignment value of 3 nm in any of the 8 compass directions). Directions different to the cardinal and ordinal compass points are also entered in some embodiments, and the number of rows include any positive integer. Standard table editing interfaces familiar to those skilled in the art of GUI design are also used here.
While the display of (and interaction with) the minimal overlap area polygons is useful for a circuit designer to understand the sources of contact/via resistances, it would be even more useful to further aid the designer in intuitively understanding exactly how those overlap shapes are arrived at. Such understanding can aid the designer in modifying the design layout in order to attain desired overlap shapes (and commensurate resistance values). This is particularly the case for those designers working in design-rule-exempt scenarios, who will have more freedom to modify the design layout in order to achieve minimal resistances, and hence maximum device performance, but it also applies to designers working with standard DRC enforced flows.
By having a better understanding of why the minimal overlap shapes are exactly what they are, the designer can do a better (or quicker) job of modifying the design layout. In particular, if the designer can understand exactly how each edge of the minimum overlap area polygon has been determined for a particular contact or via of interest, they can be in the best position of modifying the layout to cause that edge to move further out, thus increasing the minimum overlap area.
Some embodiments use a few different methods to present the user with this understanding, including creation of a looping video-like animation and dynamic, interactive animation. With a looping video-like animation approach, a sequence of static images are generated showing the manufactured design shapes smoothly ‘moving’ throughout the range of motion selected to represent the misalignments.
In some embodiments, the translations are augmented by adding additional translations to the sequence, which effectively ‘revert’ the layer shapes to their non-misaligned (i.e., perfectly centered) positions. Frames created this way are rendered in between the misaligned frames, thus the user experiences the shapes moving as if subject to a misalignment, then experiences the shapes all perfectly aligned (‘reverting’ the misalignment), then misaligned again to a different misalignment position, etc. The interposition of the non-misaligned (centered) frames in this way further helps the user to form a better mental image of the animation sequence, as the animation reversions provide a static point of reference in between each animation frame, thus providing better visual continuity and reducing confusion.
In some embodiments, standard video playback controls are provided which allow the user to simply play the animation sequence in a loop, pause (interrupt), or resume the video. In some embodiments, the user can additionally control the playback speed, and/or playback direction (i.e., the user can reverse the order in which the animations are shown). This can allow the user to more easily focus on certain cropping events, determine which contour edges are responsible for the cropping, and so determine which edges to move by editing the corresponding layout shape(s), perhaps modifying shape size, position, or both.
This process has outer and inner loops that ensure all combinations of translation events are iterated over, translating (sliding) the contour shapes for each translation amount, rendering the layout, and then capturing a screenshot after each translation event. Each captured screenshot is added to the sequence. The process begins with the first translation value for the first layer, and then proceeds through each of the translation values for the second layer. It then reverts to the first layer, and translates it by the second translation specified in the table, before again proceeding through each of the translations for the second layer, thus enumerating all combinations.
One advantage of the animation method using static screenshots is that it is automatically rendered and saved as a ‘movie’ to a common video file format, and therefore visualized outside of the layout editing tool itself. For example, a video capture of the animation in some embodiments is saved in an animated GIF image (.gif file), or in a movie format such as a .mov or .mp3 file, and then embedded in a presentation etc.
However, this approach does not make it possible to dynamically pan and zoom practically around the movie images and see the shapes at a higher resolution, as would normally be performed by a layout engineer within an interactive layout editor. It would be desirable for the layout editor user to be able to zoom and pan to any area of the layout of interest, and have the shapes dynamically redrawn, following the animation sequence. For example, the user may wish to zoom in, zoom in again, and zoom in a third time, before panning left twice, in order to view a particular contact or via interface along with just its immediate neighboring metal shapes, in high detail. It would also be beneficial if the user can perform edits on the design between different renderings of an animation.
Therefore, in some embodiments, an interactive, dynamic approach is used to animate the sequence of events. Here, the layout editor uses an animation process (of its own or a separate program) to retrieve the contours which are to be animated, and an event is scheduled in the near future (e.g. ⅓ of a second) to render those contours using the next translation in the sequence of augmented translations. Prior to that scheduled event occurring, in some embodiments, the user continues to use the layout editor in their regular manner, e.g., zooming and panning around the design.
Once the time comes to process the event, the layout editor displays the next rendering in the animation, which is generated by the animation process of the layout editor or of the other program applying the next translation vector in the augmented sequence to the shapes. Any previously drawn shapes are erased, and the newly positioned shapes (according to the current misalignment translation value) are drawn. The layout editor then ‘refreshes’ or redraws the graphics screen the new rendering, and another animation event is scheduled in the near future, before the editor is allowed to return to its event loop. Again, prior to that next scheduled animation event occurring, in some embodiments, the user chooses to interact with the layout tool, zooming, panning, hovering the mouse over objects of interest, selecting or highlighting objects, performing a design edit operation, etc. When the next scheduled animation event is processed, the previously drawn contour shapes are erased, repositioned and redrawn according to the next misalignment vector value in the sequence, etc.
In some embodiments, the sequence of translations are augmented with translations that ‘revert’ the translated shapes back to their perfectly aligned positions, thus establishing a steady frame of reference for the user viewing or interacting with the animation sequence. As for the creation of the video-like sequence of static images, these ‘reversion’ events are interjected between the normal animation sequence of events. Hence, in some embodiments, a first event is scheduled in which one of the layers is offset by a certain misalignment vector value.
Once processed and rendered by the layout editor, the next scheduled event will ‘undo’ or ‘revert’ that misalignment, to present the user with a static, non-moving reference. The next scheduled event after that then misaligns the layers again. In between events (regular misaligned events or the special ‘revert’ events), the user is still free to interact with the tool in the normal manner, performing zoom and pan operations, etc. In some embodiments, the animation shapes presented are limited to the inner contours only. This form allows the user to best understand how the ‘clipping’ to the final minimum overlap shape happens, without excessive visual clutter.
In some embodiments, the animation shapes presented include the inner, nominal, and outer contours all at the same time.
Not all misalignment value translations lead to clipping events, i.e., not all translations contribute to the final minimum overlap polygon shapes, and some of the relatively sparse subset of translations that do lead to clipping events are ‘missed’ by a user quickly perusing the sequence. In some embodiments, therefore, arrow polygons such as shown in
In some embodiments, advanced interactive ‘playback’ controls are offered to the user, allowing the scheduled sequence of animation events to be paused, continued, or ‘played’ in the reverse order. First, the playback speed is affected by a user-specified ‘frame delay’ or frame interval. In addition, after initially viewing the entire sequence of animation events to ‘establish the big picture,’ in some embodiments, the method allows the user to choose via a GUI control to have the event sequence filtered to clipping events only, such that animation translation events which do not result in a clipping event are not even scheduled/shown.
In other embodiments, the full sequence of events continues to be scheduled per the original schedule, but allows a user to choose at any time to step forward to the next event, or ‘fast forward’ to the next clipping event. The user is also allowed to choose whether to view the interactive animation sequence in which only some, or all of the nominal, inner, and outer contours are shown.
In some embodiments, a method computes (and intuitively displays) the minimum overlap area for metal and via/contact layer interfaces. With the areas computed in this manner, the corresponding maximal resistance (upper boundary) values can be determined.
When the inner contours are used to compute the minimum overlap shapes, the ‘narrowest’ roughly cylindrical shape is determined, which will have the maximal via resistance. In some embodiments, it is also useful to a designer to know what the ‘nominal’ via resistance or the ‘minimum’ via resistance is. In this case, computing the overlap shapes with respect to the nominal or outer contours respectively, rather than the inner contours, is contemplated. By knowing the resistance ranges, i.e., the typical, upper and lower limits on contact or via resistances, a designer is able to make some circuit design or layout tweaks to best take those into account in eventual circuit performance.
Some flows in some embodiments include modifying the circuit layout to result in larger overlaps, optimizing a circuit layout, and changing from rectilinear design to curvilinear design. As previously discussed, modifying the circuit layout to result in larger overlaps require a change to the position or size of the metal, via and/or contact polygons. The designer is able to optimize the layout on a per individual via/contact basis, for example, to produce larger overlaps for particular via instances which are proving problematic due to excessive resistance.
In some embodiments, specific vias/instances are found that result in significantly larger overlaps than some of their neighbors. The method allows a designer to be more ‘aggressive’ with the layout in these areas, thus reducing the overlap area somewhat, in a tradeoff that improves some other layout metric. For example, a via or metal shape is moved slightly in some embodiments, providing more room for some other critical route in the vicinity. Specific automation tools which take advantage of this include intelligent compaction algorithms, for example.
Rectilinear shapes simply cannot be manufactured as drawn, due to limitations caused by the laws of physics. Curvilinear shapes on the other hand in some embodiments are drawn which are far closer to those which are actually manufactured. Since the target shapes are curvilinear now to begin with, and thus easier to create optimal masks for, they are in turn be manufactured with reduced variability. Here, the resulting manufactured inner and outer contours are closer to the nominal contours than would be the case for rectilinear shapes. The corresponding minimum/maximum resistance values would be closer to the nominal resistance, i.e., the resistance spread or variance would be correspondingly smaller. In turn, this leads to improved overlap area, reduced resistance, and improved long-term reliability. The ability to know the precise manufactured contours and associated resistance values of the curvilinear shapes therefore allows a designer to target specific via or contact instances to be drawn in a curvilinear form.
Many of the above-described features and applications are implemented as software processes that are specified as a set of instructions recorded on a computer readable storage medium (also referred to as computer readable medium). When these instructions are executed by one or more processing unit(s) (e.g., one or more processors, cores of processors, or other processing units), they cause the processing unit(s) to perform the actions indicated in the instructions. Examples of computer readable media include, but are not limited to, CD-ROMs, flash drives, RAM chips, hard drives, EPROMs, etc. The computer readable media does not include carrier waves and electronic signals passing wirelessly or over wired connections.
In this specification, the term “software” is meant to include firmware residing in read-only memory or applications stored in magnetic storage, which can be read into memory for processing by a processor. Also, in some embodiments, multiple software inventions can be implemented as sub-parts of a larger program while remaining distinct software inventions. In some embodiments, multiple software inventions can also be implemented as separate programs. Finally, any combination of separate programs that together implement a software invention described here is within the scope of the invention. In some embodiments, the software programs, when installed to operate on one or more electronic systems, define one or more specific machine implementations that execute and perform the operations of the software programs.
The bus 3705 collectively represents all system, peripheral, and chipset buses that communicatively connect the numerous internal devices of the electronic system 3700. For instance, the bus 3705 communicatively connects the processing unit(s) 3710 with the read-only memory (ROM) 3730, the system memory 3725, and the permanent storage device 3735. From these various memory units, the processing unit(s) 3710 retrieve instructions to execute and data to process in order to execute the processes of the invention. The processing unit(s) may be a single processor or a multi-core processor in different embodiments.
The ROM 3730 stores static data and instructions that are needed by the processing unit(s) 3710 and other modules of the electronic system. The permanent storage device 3735, on the other hand, is a read-and-write memory device. This device is a non-volatile memory unit that stores instructions and data even when the electronic system 3700 is off. Some embodiments of the invention use a mass-storage device (such as a magnetic or optical disk and its corresponding disk drive) as the permanent storage device 3735.
Other embodiments use a removable storage device (such as a floppy disk, flash drive, etc.) as the permanent storage device. Like the permanent storage device 3735, the system memory 3725 is a read-and-write memory device. However, unlike storage device 3735, the system memory is a volatile read-and-write memory, such a random access memory. The system memory stores some of the instructions and data that the processor needs at runtime. In some embodiments, the invention's processes are stored in the system memory 3725, the permanent storage device 3735, and/or the read-only memory 3730. From these various memory units, the processing unit(s) 3710 retrieve instructions to execute and data to process in order to execute the processes of some embodiments.
The bus 3705 also connects to the input and output devices 3740 and 3745. The input devices enable the user to communicate information and select commands to the electronic system. The input devices 3740 include alphanumeric keyboards and pointing devices (also called “cursor control devices”). The output devices 3745 display images generated by the electronic system. The output devices include printers and display devices, such as cathode ray tubes (CRT) or liquid crystal displays (LCD). Some embodiments include devices such as a touchscreen that function as both input and output devices.
Finally, as shown in
Some embodiments include electronic components, such as microprocessors, storage and memory that store computer program instructions in a machine-readable or computer-readable medium (alternatively referred to as computer-readable storage media, machine-readable media, or machine-readable storage media). Some examples of such computer-readable media include RAM, ROM, read-only compact discs (CD-ROM), recordable compact discs (CD-R), rewritable compact discs (CD-RW), read-only digital versatile discs (e.g., DVD-ROM, dual-layer DVD-ROM), a variety of recordable/rewritable DVDs (e.g., DVD-RAM, DVD-RW, DVD+RW, etc.), flash memory (e.g., SD cards, mini-SD cards, micro-SD cards, etc.), magnetic and/or solid state hard drives, read-only and recordable Blu-Ray® discs, ultra density optical discs, any other optical or magnetic media, and floppy disks. The computer-readable media may store a computer program that is executable by at least one processing unit and includes sets of instructions for performing various operations. Examples of computer programs or computer code include machine code, such as is produced by a compiler, and files including higher-level code that are executed by a computer, an electronic component, or a microprocessor using an interpreter.
While the above discussion primarily refers to microprocessor or multi-core processors that execute software, some embodiments are performed by one or more integrated circuits, such as application specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs). In some embodiments, such integrated circuits execute instructions that are stored on the circuit itself.
As used in this specification, the terms “computer”, “server”, “processor”, and “memory” all refer to electronic or other technological devices. These terms exclude people or groups of people. For the purposes of the specification, the terms display or displaying means displaying on an electronic device. As used in this specification, the terms “computer readable medium,” “computer readable media,” and “machine readable medium” are entirely restricted to tangible, physical objects that store information in a form that is readable by a computer. These terms exclude any wireless signals, wired download signals, and any other ephemeral or transitory signals.
While the invention has been described with reference to numerous specific details, one of ordinary skill in the art will recognize that the invention can be embodied in other specific forms without departing from the spirit of the invention. For instance, a number of the figures conceptually illustrate processes. The specific operations of these processes may not be performed in the exact order shown and described. The specific operations may not be performed in one continuous series of operations, and different specific operations may be performed in different embodiments. Furthermore, the process could be implemented using several sub-processes, or as part of a larger macro process. Therefore, one of ordinary skill in the art would understand that the invention is not to be limited by the foregoing illustrative details, but rather is to be defined by the appended claims.
Number | Date | Country | |
---|---|---|---|
63300675 | Jan 2022 | US |