Method for editing integrated circuit (IC) design layouts
The use of a machine-trained neural network to predict manufacturing contours in IC design addresses the complexity of design rules and lithography hot spots, enabling fast and efficient interactive editing and optimization of IC layouts.
Patent Information
- Application Number
- JP2024531451
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2022-11-22
- Filing Date
- 2022-11-27
- Publication Date
- 2025-08-14
- Estimated Expiration
- 2042-11-27
AI Technical Summary
The increasing complexity and number of design rules in integrated circuit (IC) design, particularly for smaller geometry processes, lead to challenges in manufacturability, lithography hot spots, and computational inefficiencies in optical proximity correction (OPC) and lithography simulation, making it difficult to optimize layouts interactively and efficiently.
An EDA method utilizing a machine-trained neural network to predict manufacturing contours, enabling fast design decisions and interactive editing by generating multiple manufacturing wafer contours within seconds, allowing for concurrent processing and real-time visualization of manufacturing effects.
This approach significantly reduces the delay in obtaining feedback on design modifications, enhances manufacturability, and improves productivity by providing a tight feedback loop for interactive hotspot fixing and design rule compliance, even in complex IC designs.
Smart Images

Figure 0007723376000001 
Figure 0007723376000002 
Figure 0007723376000003
Abstract
Description
[Background technology]
[0001] In electronics engineering, design rules are geometric constraints imposed on circuit board, semiconductor device, and integrated circuit (IC) designers to ensure that their designs function properly, reliably, and can be produced with acceptable yields. Design rules for production are developed by process engineers based on the process's ability to realize the design intent. Electronic design automation (EDA) is widely used to ensure that designers do not violate design rules, a process known as design rule checking (DRC). DRC is a key step during design physical verification signoff and also includes LVS (layout vs. schematic) checks, XOR checks, ERC (electrical rule checks), and antenna checks. The importance of design rules and DRC is greatest for ICs with nanoscale geometries and for advanced processes at smaller geometry process nodes.
[0002] Variations in new process geometries, edge placement errors, and various other issues force chipmakers and EDA vendors to confront an increasing amount of increasingly complex and sometimes interconnected design rules to ensure chips are manufacturable. Equally challenging is the interaction of different circuit layout polygons, which has led to a significant increase in the number of rules. Particularly for smaller geometry processes (e.g., currently 28 nm and below), many fabs also insist on using more restrictive rules to improve yield.
[0003] The number of rules has increased to the point where it is no longer possible to manually keep track of them all, resulting in extreme design rule bloat. This increases the number of checks required and makes debugging more difficult. Furthermore, some rules depend on other rules, which is a growing problem for some foundries in some processes.
[0004] General-purpose IC design rules must be somewhat pessimistic / conservative in nature to accommodate a wide variety of designs, since it is not known a priori which polygons will be adjacent to other polygons during IC layout, and therefore the rules must be able to accommodate nearly all possibilities.
[0005] On the other hand, standard cell designers (e.g., SRAM designers) have traditionally been able to utilize “DRC waivers” due to the extreme regularity of their designs (e.g., each SRAM cell is surrounded on all sides by identical or nearly identical dummy cells at the periphery of the memory array). This regularity means that which polygons are adjacent to other polygons is known a priori, and therefore the rules can be “relaxed” somewhat, allowing for tighter packing of polygons compared to what is allowed by the restrictive rules. Packing cells tightly makes more sense when they are repeated many times, and therefore these waivers are often negotiated between the designer and the foundry / fab. Even very small reductions in bitcell (or any other type of cell that is used highly repetitively, such as cells in a standard cell library) area can result in exceptionally large improvements in chip density and area reduction at the chip level. Traditionally, efforts have been made in other design areas to use DRC waivers with regularly structured designs / fabrics to improve packaging density and / or improve manufacturing yield. Here, the regularity enforced by the design fabric has resulted in some relaxation of design rule constraints, however this approach is somewhat inflexible as it requires significant regularity to be imposed on the design fabric, thus reducing the options available to the design and layout engineer.
[0006] An additional problem facing today's layout and yield engineers is that of lithography hot spots. Lithography hot spots (hereinafter "hot spots") are locations in a design that are probabilistically susceptible to fatal pinching (open circuits) or bridging (short circuits) errors due to poor printability of certain patterns in the design layout. One way to find hot spots is to perform lithography simulation on the layout. However, lithography simulation is computationally too expensive for full-chip design. Furthermore, for smaller geometry processes, the layout must be colored and OPC corrected for multiple patterning before lithography simulation can be performed, incurring additional computational expense.
[0007] Optical proximity correction (OPC) is a photolithography enhancement technique commonly used to compensate for image errors due to diffraction or process effects. The need for OPC is primarily seen in semiconductor device manufacturing, where it stems from the limitation of light to maintain the edge placement integrity of the original design after processing into an etched image on a silicon wafer. These projected images appear with irregularities, such as narrower or wider linewidths than designed, which can be compensated for by modifying the pattern on the photomask used for imaging. Other distortions, such as rounded corners, are caused by the resolution of the optical imaging tool and are more difficult to compensate for. If uncorrected, such distortions can significantly change the electrical properties of what is being fabricated. Optical proximity correction corrects these errors by moving edges or adding extra polygons to the pattern written on the photomask. This can be driven by a precalculated lookup table based on the width and spacing between features (known as rule-based OPC) or by dynamically simulating the final pattern using a compact model, which then drives the movement of a mask pattern, typically divided into sections, to find the best solution (known as model-based OPC). The goal is to reproduce as closely as possible on the semiconductor wafer the original layout drawn by the designer.
[0008] The most visible benefit of OPC is correcting for area differences found between contacts in regions of different environments, linewidth differences found between features in regions of different densities (e.g., center vs. edge of array, or nested vs. isolated lines), and line-end shortening (e.g., gate overlap on field oxide). These may be used in conjunction with feature size adjustment, along with resolution enhancement techniques such as SRAF (Sub-Resolution Assist Features Placed Adjacent to Resolvable Lines). In addition, "dog-ear" (serif or hammerhead) features may be created at the line ends in designs. OPC has a cost impact on photomask manufacturing, whereby for variable-shaped beam (VSB) mask writers, mask writing time is related to the complexity of the mask shape and data file; similarly, mask inspection for defects takes longer because finer edge control requires a smaller spot size. For multi-beam mask writers, writing time is independent of mask shape complexity.
[0009] The state-of-the-art requires advanced techniques such as ILT (Inverse Lithography Technology) for OPC correction, adding even more computational expense (ILT tools are notoriously CPU and GPU intensive). ILT may generate curved or piecewise polygonal mask shapes, or ILT may be "Manhattanized" to generate axis-parallel orthogonal shapes specifically targeted for writing on VSB mask writers.
[0010] To investigate whether candidate layout modifications result in expected improvements, masks are OPC-corrected before lithography simulation is performed. For the most critical layers and patterns, OPC is a form of curvilinear ILT, which is more computationally expensive. Because turnaround time is a critical business success factor, more time-consuming techniques are often utilized for areas with the worst lithography performance. During the OPC or ILT process, these are commonly referred to as hot spots or lithography hot spots, but in this application, both terms are used to refer to problem areas that remain after the best efforts made by any OPC, including those corrected by ILT and even full-chip curvilinear ILT. The computational cost of any type of OPC and lithography simulation for today's process nodes means that there is a significant delay in obtaining feedback on candidate solutions for hot spot modifications. These costs preclude the ability to perform such modifications in a truly interactive manner. Summary of the Invention
[0011] Some embodiments provide an EDA method for utilizing predicted manufacturing contours of design components to make design decisions during the design process. In some embodiments, the predicted manufacturing contours are generated by a machine-trained (e.g., trained neural network) that generates multiple manufacturing wafer contours corresponding to design edits within a short time (e.g., a few seconds) of the edit itself. The use of a machine-trained network in some embodiments enables fast editing loops in an interactive editing timeframe. In the following description, the machine-trained network is referred to as a "digital twin" of the set of masks for the design or of the manufacturing process that produces the wafer or IC die produced by using the set of masks. The predicted manufacturing wafer contours generated by the machine-trained network are also referred to as a "digital twin" of the design produced by the set of masks or on the IC die / wafer.
[0012] Some embodiment methods predict manufacturing rule compliance by using pre-computation techniques, for example, by using trained neural networks, to accelerate processing time. In some embodiments, the methods are used to implement compactors that allow designers to quickly view predicted wafer contours for automated or manually driven compaction edits. Additionally or alternatively, some embodiment methods enable fast automatic detailed routing of layouts driven by manufacturing rules that are driven by the predicted wafer contours. Also, in some embodiments, the digital twin inferred wafer contour takes into account coloring, mask OPC / ILT, and lithography effects (e.g., by using trained neural networks). These methods accelerate the iterative optimization of EDA tools by quickly evaluating each iteration, providing greater insight into manufacturing considerations at each of their respective design stages.
[0013] Some embodiments provide an EDA architecture that leverages a high degree of concurrency to achieve an interactive, iterative timeframe by performing different tasks related to the problem of setting up data for pre-computed evaluation, potentially performed by a neural network, and post-processing the results using concurrent flows with GPU acceleration. Advanced applications of the interactive layout design method of some embodiments include bus route compaction and interactive lithography hot spot repair, to name a few. The method of some embodiments reduces design-level hot spots to a level that even the best curved ILT solution cannot resolve during the manufacturing process.
[0014] The method of some embodiments is used in an interactive layout design process, where one or more EDA tools rapidly present the results of user-driven edits to a designer and receive additional edits or instructions from the designer. The interactive design architecture of some embodiments significantly minimizes the delay between designer-performed layout edits and subsequent OPC / ILT-enabled visualization of the fabricated silicon water contour, enabling a tight interactive feedback loop and significantly improved productivity in the hotspot fixing process.
[0015] Additionally, for interactive custom IC design, some embodiments provide new EDA methodologies that extend the concept and application of DRC waivers to arbitrary design scenarios (e.g., to arbitrary custom IC designs) during design layout time. These methods effectively simplify design rules for layout designers and improve the resulting design yield and manufacturability. The EDA methodologies of some embodiments provide DRC waivers for custom IC designs without compromising layout flexibility, i.e., without forcing layout designers to use a small number of predetermined layout templates.
[0016] Some embodiments also use machine learning processes (such as the deep neural network processes disclosed in U.S. Patent Application No. 16 / 949,270, incorporated herein by reference) to present a "WYSIWYG" (What You See Is What You Get) paradigm to the designer. These embodiments enable interactive design updates with real-time visualization of expected manufactured silicon results. Some embodiments provide an architecture that minimizes the delay between layout edits performed by the designer and visualization of the manufactured silicon waterline, enabling a tight feedback loop in DRC-free design compaction. The methods of some embodiments are used in automated layout design and / or other forms of layout design, including synthesis.
[0017] The use of neural networks, possibly through neural networking techniques, is useful for these embodiments described herein because neural networking is a statistical technique. Neural networking may include some errors in the output, but some neural networking techniques include errors in such a way that the worst output is not too bad. In embodiments that use neural networking methods only for estimation purposes, the statistical nature of the outputs is sufficient for the task they perform.
[0018] The extremely fast execution times of neural network-based methods allow processes that may traditionally require weeks of computation to now be reasonably accurately approximated / estimated in just a few seconds. These fast execution times contrast starkly with simulation-based analyses, which often take weeks or days to complete, especially when chaining sequences of image-to-image transformations to perform particularly long chains of constructive and simulation-based processes, such as Monte Carlo analysis of various coloring possibilities, Monte Carlo analysis of various neighborhood possibilities, OPC / ILT, MPC, mask simulation, and wafer simulation. Neural network-based methods further offer fast execution times when considering various types of more complex analyses (such as Monte Carlo analysis) to improve their predictions. This is because the time required to account for more complex analyses can be completely or nearly subsumed in the training time of the neural network, allowing these networks to continue their rapid runtime operation. While some embodiments use neural networks, those skilled in the art will understand that other embodiments use other types of machine-trained networks or processes.
[0019] The above Summary is intended to serve as a brief introduction to some embodiments of the present invention. It is not intended to be an introduction or summary of all inventive subject matter disclosed herein. The following Detailed Description and the Drawings referenced in the Detailed Description further describe the embodiments described in the Summary as well as other embodiments. Therefore, to understand all embodiments described herein, the Summary, Detailed Description, Drawings, and Claims should be thoroughly considered. Furthermore, claimed subject matter is not limited by the illustrative details in the Summary, Detailed Description, and Drawings.
[0020] The novel features of the invention are set forth in the appended claims. However, for purposes of illustration, certain embodiments of the invention are set forth in the following figures. [Brief explanation of the drawings]
[0021] [Figure 1] 1 shows an example of a user interface for an interactive IC layout editing tool. [Figure 2] 1 conceptually illustrates the interactive editing process of some embodiments. [Figure 3] 1 illustrates an interactive design process provided by an interactive design tool of some embodiments. [Figure 4] 1 illustrates an interactive design process provided by an interactive design tool of some embodiments. [Figure 5] 1 illustrates an interactive design process provided by an interactive design tool of some embodiments. [Figure 6] 1 illustrates an interactive design process provided by an interactive design tool of some embodiments. [Figure 7]1 illustrates an interactive design process provided by an interactive design tool of some embodiments. [Figure 8] 1 illustrates an interactive design process provided by an interactive design tool of some embodiments. [Figure 9] 1 illustrates an interactive design process provided by an interactive design tool of some embodiments. [Figure 10] 1 illustrates an interactive design process provided by an interactive design tool of some embodiments. [Figure 11A] The use of neural networks to infer manufacturing shapes from CAD (computer-aided design) data input is demonstrated. [Figure 11B] An example of a U-Net model architecture is shown. [Figure 11C] 1 illustrates the use of a conceived U-Net model architecture in some embodiments to predict a wafer aerial image manufactured from rasterized image tiles representing a user-drawn layout. [Figure 11D] 1 shows an example of a rasterized image corresponding to the desired printed metal for one of the metal layers in a D-type flip-flop (DFF) standard cell. [Figure 11E] An example of the corresponding manufacturing output (assembled tile set) is shown below. [Figure 11F] Shown are multiple networks trained to generate outputs for different process corners (PCs), each corresponding to a different manufacturing parameter (MP). [Figure 11G] An example of inferred output is shown where the reassembled tiles represent an image that represents the manufactured shape of a DFF design under three different unique process conditions. [Figure 11H] 1 illustrates an overall simulation process that can generate output samples given received input design samples. [Figure 11I]An example of a data flow diagram in which these inputs are provided to the mask and wafer process simulation step is shown. [Figure 12] 3 shows a process that is a more detailed representation of the process of FIG. 2. [Figure 13] 10 provides further details regarding computational operations in some embodiments. [Figure 14] An example of a neural network is shown that receives image tiles representing biased-up mask shapes and generates corresponding image tiles representing silicon wafer contours in an operation known as inference. [Figure 15] An example of the overall process incorporating all of the operations for generating contours by utilizing neural networks is shown. [Figure 16] 15 shows a process for splitting sub-operations somewhat differently than the process of FIG. [Figure 17] We demonstrate the use of a novel software architecture that significantly improves the throughput time of the interactive editing process by improving the operation and communication of the layout editor, manufacturing software server process, and neural network software server process. [Figure 18] One such embodiment is shown in which multiple software servers run simultaneously, one dedicated to each combination of process conditions. [Figure 19] An embodiment is shown in which one layout editing server operates with multiple manufacturing software process servers and a single neural networking software server. [Figure 20] 1 illustrates another embodiment in which one layout editing server operates in conjunction with one manufacturing software process server and multiple neural networking software servers. [Figure 21]Another embodiment is shown in which one layout editing server operates with multiple manufacturing software process servers and one neural networking process server, and the neural network generates not one but multiple outputs simultaneously, one for each process condition of interest. [Figure 22A] 1 illustrates a neural networking software server running a single neural network that generates multiple outputs at once, each output corresponding to a different process condition of interest. [Figure 22B] 1 shows a graphical user interface that allows a user to select which model to use. [Figure 23] 1 illustrates a more detailed example of an interactive design implemented in accordance with some embodiments of the present invention. [Figure 24] 1 illustrates a more detailed example of an interactive design implemented in accordance with some embodiments of the present invention. [Figure 25] 1 illustrates a more detailed example of an interactive design implemented in accordance with some embodiments of the present invention. [Figure 26] 1 illustrates a more detailed example of an interactive design implemented in accordance with some embodiments of the present invention. [Figure 27] 1 illustrates a more detailed example of an interactive design implemented in accordance with some embodiments of the present invention. [Figure 28] 1 illustrates a more detailed example of an interactive design implemented in accordance with some embodiments of the present invention. [Figure 29] 1 illustrates a graphical user interface of an interactive compaction tool in some embodiments. [Figure 30] 29 illustrates the process performed by the layout editor when a user requests an interactive compaction operation via the user interface of FIG. [Figure 31]FIG. 29 shows the resulting compacted bus route design after several uses of the interactive compaction tool, followed by several inspections of the resulting contours. [Figure 32] 1 shows a predicted manufacturing design with predicted contours for the final compacted design. [Figure 33] 33 shows a close-up of the upper left corner of the design of FIG. 32. [Figure 34] 10 illustrates a design being auto-compacted by the auto-compaction tool of the layout editor of some embodiments. [Figure 35] The manufacturing contour corresponding to the original design is shown. [Figure 36] 1 shows a compacted design generated through a simple attempt to manually compact the design by removing 6 nanometer spaces between polygons in both the X and Y directions. [Figure 37] 36 shows a compacted design similar to the simply compacted design of FIG. 36, but showing the predicted manufactured silicon contour with the curve DRC violations in the design of FIG. [Figure 38] 38 shows a close-up of the compacted design of FIG. 37. [Figure 39] 1 illustrates a UI for an auto-compaction tool of some embodiments. [Figure 40] 1 illustrates the process performed by an auto-compactor in some embodiments. [Figure 41] 34 shows the fabricated silicon contours corresponding to the auto-compacted solutions generated by a single run of the SHGO optimizer to auto-compact the design of FIG. 34, along with a particular formulation of the cost function and a particular initial search space. [Figure 42] A close-up of the DRC violation marker polygon is presented. [Figure 43] 35 shows the fabricated silicon contours corresponding to another auto-compacted solution generated by a single run of the SHGO optimizer to auto-compact the design of FIG. 34 . [Figure 44] 1 illustrates the interactive editing process used to manually correct yield-limiting portions of a design. [Figure 45] We present an example of using a neural network-enabled interactive layout editing system to manually correct yield-limiting parts. [Figure 46] We present an example of using a neural network-enabled interactive layout editing system to manually correct yield-limiting parts. [Figure 47] We present an example of using a neural network-enabled interactive layout editing system to manually correct yield-limiting parts. [Figure 48] We present an example of using a neural network-enabled interactive layout editing system to manually correct yield-limiting parts. [Figure 49] We present an example of using a neural network-enabled interactive layout editing system to manually correct yield-limiting parts. [Figure 50] We present an example of using a neural network-enabled interactive layout editing system to manually correct yield-limiting parts. [Figure 51] We present an example of using a neural network-enabled interactive layout editing system to manually correct yield-limiting parts. [Figure 52] We present an example of using a neural network-enabled interactive layout editing system to manually correct yield-limiting parts. [Figure 53] We present an example of using a neural network-enabled interactive layout editing system to manually correct yield-limiting parts. [Figure 54] We present an example of using a neural network-enabled interactive layout editing system to manually correct yield-limiting parts. [Figure 55]We present an example of using a neural network-enabled interactive layout editing system to manually correct yield-limiting parts. [Figure 56] We present an example of using a neural network-enabled interactive layout editing system to manually correct yield-limiting parts. [Figure 57] We present an example of using a neural network-enabled interactive layout editing system to manually correct yield-limiting parts. [Figure 58] Some embodiments illustrate a process used to generate training data for training one or more neural networks to generate multi-contour output shapes for input shapes of an IC design or portion of an IC design. [Figure 59] 1 conceptually illustrates a computer system upon which some embodiments of the present invention may be implemented. DETAILED DESCRIPTION OF THE INVENTION
[0022] In the following detailed description of the invention, numerous details, examples, and embodiments of the invention are set forth and explained. However, it will be apparent to those skilled in the art that the invention is not limited to the described embodiments, and that the invention may be practiced without some of the specific details and examples described.
[0023] Some embodiments provide systems and methods for circuit layout editing driven by knowledge of the manufacturing wafer contour as specified by a digital twin generated for the circuit layout through a machine-trained process such as a neural network. Such systems and methods are hereinafter referred to as digital twin-guided circuit layout systems and methods. In some embodiments, these systems and methods are used in interactive editing tools to provide a fast editing loop in an interactive editing timeframe where the manufacturing wafer contour corresponding to the design edits is presented within seconds of the edit itself. In some embodiments, the wafer contour takes into account mask OPC / ILT and lithography effects (e.g., by using a neural network trained to account for these effects).
[0024] In some embodiments, the machine-trained network or process generates multiple predicted manufacturing contours of a design component to facilitate making design decisions. In some embodiments, the different manufacturing contours generated correspond to different manufacturing process variations, such as different dose amounts to account for mask variations, or different depths of focus and exposure intensities for wafer manufacturing variations. In the following description, the machine-trained network or process is referred to as a "digital twin" of the manufacturing process that produces the set of masks for the design, or the wafer or IC die produced by using the set of masks. The predicted manufacturing wafer contours generated by the machine-trained network are also referred to as a "digital twin" of the design produced by the set of masks, or produced on the IC die / wafer.
[0025] The design system architecture of some embodiments utilizes a high degree of concurrency to achieve interactive timeframes by using concurrent flows with GPU acceleration to perform different tasks related to the problem of setting up data for neural networks and post-processing the results. Advanced applications of the interactive layout design methodology of some embodiments include bus route compaction and interactive lithography hotspot repair, to name a few.
[0026] Some embodiments provide digital twin-guided interactive routing and / or compaction methods. In some embodiments, a digital twin of the manufacturing process is leveraged to provide information about the detailed silicon contours that will appear after manufacturing, which then guides various facets of the circuit design and layout. While some examples are presented below in the context of interactive layout design, the systems and methods of some embodiments are equally applicable to other forms of layout design, including layout synthesis, auto-placement, routing, and compaction.
[0027] Additionally, some embodiments are described below with respect to deep learning-based implementations of manufacturing-enabled digital twin technology. However, those skilled in the art will understand that some embodiments are not limited to deep learning-based digital twins, but rather encompass other forms of digital twins, such as those based on shallow learning, other computational techniques not limited to neural networks, and / or other forms of pre-computation.
[0028] FIG. 1 shows an example of a user interface 100 for an interactive IC layout editing tool. Commercial examples of such tools include Custom Compiler from Synopsys Inc. and Virtuoso from Cadence Design Systems Inc. Custom or full-custom IC design processes use unique building blocks that are created specifically for the required functionality. Many of the same tools are used in custom IC design processes as are used in semi-custom or ASIC design processes. The difference is that the building blocks that are assembled are often custom-built to provide specific capabilities. An IC layout editor is a key tool for this type of design process.
[0029] The methods used to assemble these devices can also vary to suit the unique requirements of the IC or block being developed. Critical components of cutting-edge designs are often designed using custom IC design processes and tools such as those described above. Examples include SRAM bit cells, cells from standard cell libraries, and analog / RF design cells. One usage model is interactive design, where the designer places polygons or collections of polygons representing blocks, transistors, etc. in a layout and draws wires to connect them together.
[0030] In some embodiment interactive IC layout editing tools, automation is also present; for example, a local routing tool can assist in completing routing. Among other things, these tools present a canvas area in which the user design is edited, a layer selector window that allows various process layers to be selected for editing and / or viewing, and various menus, toolbars, and binding key actions for performing various layout design edits, typically in conjunction with mouse input for graphically specifying geometric coordinates. Such tools are also not limited to editing single cells, but also allow for the editing and assembly of hierarchical layouts (cells arranged within cells).
[0031] These tools are commonly used to edit a single cell at a time, without any context in which that cell will ultimately be used. It is also common to use these tools to edit a cell in the context of another, larger cell in which it is placed. These latter forms of editing behavior are known as "editing in place," in which the editor not only sees the contents of the cell being edited, but also the surrounding context (i.e., the context of the hierarchy "above" or next to the cell being edited). In an in-place editing context, the user and the tools are aware of the context surrounding the cell being edited, which can make certain actions much easier.
[0032] In some embodiments, a tool / user may edit a cell alone, without any surrounding context, which is referred to in this document as “context-free” editing. In other embodiments, a tool / user may edit a cell using an in-place editing paradigm, in which surrounding context may be available. Some embodiments support both the context-free paradigm and the in-place editing paradigm. When rasterizing a cell being edited, if context is already available through the use of an in-place editing paradigm, the rasterization process in some embodiments can be extended to include not only the cell being edited, but also some or all of the surrounding context. Rasterization is the process of taking an image described in a geometric / vector graphics format (shapes) and converting it into a raster image (a series of pixels, dots, or lines that, when viewed together, create the image represented via the shapes). The extension can include only areas of the surrounding context that affect the contours of the design cell being edited. In some embodiments, areas of the surrounding context that are too far from the cell being edited (and therefore do not affect its manufacturing contours) are excluded from the extension. In some embodiments, the lithographic field dimensions can be set to a known fixed amount or can be specified by a user.
[0033] When a cell is being edited in an editing tool in a context-free paradigm, a context may be inferred for the cell, i.e., certain assumptions may be made about the surrounding context of the environment in which the cell will ultimately be placed. For example, in the case of a memory bitcell, the method may assume that the cell being edited is surrounded by similar cells, possibly with the same orientation or a different orientation (e.g., mirror image in X or Y). In the case of standard cells that form a standard cell library and are ultimately placed and routed in rows, the method may assume that the cell being edited is surrounded by other instances of itself or instances of other cells in the standard cell library, in any of the possible valid orientations.
[0034] In this case, when a cell is rasterized, copies of the cell surrounded by their various contexts are also rasterized simultaneously, effectively compositing different neighborhoods for the cell being edited. Some embodiments also combine (effectively overlap) the predicted wafer contours across these different neighborhoods, i.e., effectively predicting and taking into account neighborhood-induced variations. The contours presented in some embodiments and used in the resulting calculations are either statistically determined or simply taken as the most extreme possibilities (largest possible "outer" contour and smallest possible "inner" contour). Inner / nominal / contour is also described in more detail below.
[0035] For ease of explanation, some examples described below and illustrated by the accompanying figures are presented as if the edited design were edited in a context-free manner, without inference of context as described above. However, those skilled in the art will appreciate that embodiments of the present invention extend to the edit-in-place paradigm, as these embodiments are equally applicable to the context-free paradigm and the edit-in-place paradigm.
[0036] FIG. 2 conceptually illustrates an interactive editing process 200 of some embodiments. This interactive process provides a designer with manufacturing-ready predictions of design element contours to enable the designer to assess the quality of the design being viewed, created, and / or edited via an interactive design tool. As shown, process 200 involves one or more iterations of three operations: (1) the designer performs manual editing operations (at 205); (2) the interactive tool provides a quick visualization of a representation of the wafer contour as it will appear on silicon after fabrication (at 210); and (3) the designer evaluates whether the designer is satisfied with the edits (at 215). If the designer is satisfied, the process ends. If not, the process returns to 205 for the designer to perform another manual edit, followed by another quick visualization of the predicted wafer contour once the integrated circuit is fabricated.
[0037] In some embodiments, process 200 is used by an interactive design tool that employs an interactive DRC-exempt use model to enable a designer to perform various manual edits at 205. In some embodiments, the manual edits are also facilitated using several automated tool operations. Additionally, a quick visualization in some embodiments is generated within seconds of the manual edit operation, enabling the user to quickly assimilate the contour information and perform subsequent contour-driven edits in real time.
[0038] The visualization representation in some embodiments is intended to accurately represent silicon after it is fabricated by taking into account OPC / ILT mask corrections and lithography effects at small process geometries. Such visualization allows a user to visually inspect the contours and, depending on the observed contours, decide to perform subsequent editing actions, such as moving some shapes closer or further away from each other. If the silicon wafer contours are not determined and rendered quickly enough, the interactive use model paradigm will fail and throughput will decrease. This results in reduced productivity and a less-than-optimal final layout.
[0039] 3-10 illustrate the interactive design process provided by an interactive design tool of some embodiments. This process is presented as various user interface stages that present various stages of a designer's interaction with the tool. FIG. 3 illustrates the user interface 100 of the interactive design tool as displaying several IC design components for a D-flip-flop (DFF) standard cell design 302 on metal layer 1. These components include several Manhattan routes (e.g., E-shaped route 305, F-shaped route 310, etc.), along with long horizontal power rails 315 at the top and bottom of cell 302.
[0040] 4 shows design 302 after it has been separated into two color masks using double patterning techniques (DPT): a red mask component 405 and a blue mask component 410. These color masks are shown in the figure in different shades of gray and use different stipple patterns, one with left-to-right cross-hatching for the red mask and the other with right-to-left cross-hatching for the blue mask.
[0041] This process of separating a wafer layer into multiple mask layers is commonly called "coloring." Various metal shapes are separated into two color masks to increase feature density, a process known as multiple patterning, a class of techniques for manufacturing integrated circuits developed for photolithography to increase feature density. Today, multiple patterning is required for 10-nm and 7-nm node semiconductor processes and beyond. The premise is that a single lithography exposure may not be sufficient to provide sufficient resolution. Therefore, additional exposures are required, or the etched feature sidewalls must be used to position the pattern (using spacers).
[0042] Users trying to push design rules seek to move shapes closer together while preserving, among other things, the manufacturability of the shapes and their ability to connect to shapes on layers above and below. Without the benefit of some embodiments of the present invention, standard restrictive design rules typically constrain users to adopt pessimistic spacing rules. However, the DRC waiver feature of some embodiments allows users to remove some of the pessimism and compact spacing below the minimum allowed by the restrictive design rules.
[0043] 5 illustrates the selection of a verification tool 500 of an interactive design tool of some embodiments. The tool allows a designer to select one or more semiconductor layers and instruct the tool to present a visualization of the contours of the silicon shapes fabricated across process variations. In this example, the designer selects Metal 1's two color mask 520 and instructs the tool to present the visualization by selecting (e.g., clicking) a UI control 550 (e.g., a UI button).
[0044] 6 shows a predictive design 602 that represents a prediction of how design 302 will look after it is manufactured. Such a design is hereinafter referred to as a predictive manufacturing design. In some embodiments, the interactive design tool generates this design by using a machine-trained network (e.g., a neural network) that is trained to take an EDA design as input and generate as output a predictive manufacturing design that represents the predicted shape of the input design. The machine-trained network, in some embodiments, is trained through a learning process that uses a known input design (e.g., an input design after coloring) along with a known output design (e.g., an output design after mask making or mask simulation) to train the network's machine-trainable parameters (e.g., neural network weight values).
[0045] As shown, the predictive design 602 includes a detailed image of the wafer contour (across process variations) for the layer geometries selected in Figure 5. The interactive design tool presents this detailed image very quickly because it uses a machine-trained network (e.g., a neural network) to generate this detailed image. In Figure 6, the generated silicon wafer contour is overlaid on the design along with the original design layout components so that they can be viewed in the full context of the design. It is highly advantageous to present this information to the user quickly (within seconds) to allow interactive editing to be performed quickly.
[0046] Some other examples shown in other figures described below also show machine-generated predicted contours overlaid on the design layout along with their corresponding components in the design layout. Those skilled in the art will understand that other embodiments do not render predicted contours overlaid on the design layout along with their corresponding layout components, but rather render only the predicted contour shapes.
[0047] In FIG. 6 and other examples described below, the predicted manufacturing shape of each component is depicted with multiple contours (i.e., depicted as multiple shapes with multiple sets of curved segments). Each contour of each component represents the predicted shape of that component for a particular manufacturing process variation. As described above, the interactive design tool of some embodiments uses a machine-trained network (e.g., a neural network) that is trained to generate a range of predicted shapes for each component of a selected portion of a design over a range of process variations. For example, in some embodiments, the interactive design tool presents the designer not only with the nominal manufacturing process wafer contour, but also with corresponding outer (maximum) and inner (minimum) contours that reflect maximum and minimum manufacturing process variations.
[0048] In this example, two rulers 605 and 610 indicate that the size of the initial design is approximately 1.7 microns (micrometers) in the X direction and 0.55 microns (micrometers) in the Y direction. Figure 7 shows changing the zoom level of UI 100 to insert measurement rulers that allow the designer to inspect the contours of predicted manufacturing design 602 in more detail and determine the width of the manufacturing contours and the spacing between the manufacturing contours.
[0049] 8 shows an example of the results of a ruler placement operation. Here, a user has quickly determined the maximum possible spacing (after fabrication) between two particular pieces of Metal 1 via the ruler operation. As shown by ruler 805, this spacing is identified as 0.037901629 microns (micrometers), or approximately 38 nm, between the inner wafer counters. A designer may also wish to determine the smallest possible spacing, for example, by placing a ruler between the outer fabrication contours, as shown by arrow 810.
[0050] The designer may decide to perform some edits to exceed the design rules, for example in a DRC-exempt design scenario, while ensuring that the contours are accurate, fully reflect the OPC / ILT mask corrections and manufacturing (lithography) realities / non-idealities of today's small geometry process nodes, and ideally take into account the design context (adjacent features on the same layer). For example, the designer may decide to further reduce the spacing between linear metal features and recalculate / visualize the corresponding manufactured contours. As features are pushed closer together, the impact on the resulting contours increases, significantly changing the contour shape and spacing, but these results can be easily determined and visualized by the manufacturing-ready design paradigm of some embodiments of the present invention.
[0051] To summarize, an extremely simple first attempt at compacting a design might be to take the entire design and shrink the entire design by some factor. Figure 9 shows the results of a simple attempt to scale the design by 0.75x. In this example, a second pair of rulers 905 and 910 has been placed (the original rulers 605 and 610 are also retained) to show the dimensions of the shrunken design. The new design has an X dimension of 1.29 microns (smaller than the 1.7 microns (micrometers) of the previous design) and a Y dimension of 0.4 microns (micrometers) (smaller than the 0.56 microns (micrometers) of the previous design).
[0052] 10 shows a zoom on a simple reduced design with four circled areas 1002-1008 showing pinching of the power rail at one process corner (inner contour). While the distance between the outer contours of pairs of adjacent features may be reasonable here, the circled areas indicate that this came at the cost of significant metal pinching on the power rail, which could lead to yield and / or long-term reliability issues.
[0053] If a designer can see such contours almost instantly after performing an edit, such as a global design shrink, the designer can quickly undo the shrink and explore other avenues to make the design more manufacturable. For example, a user may choose to add width to a power rail to provide extra margin. As another example, a user may choose to increase the size of a cell to make its yield under all neighborhoods more manageable. Alternatively, after creative manipulation, it may be possible to shrink the design and further improve manufacturability. Such actions and decisions may be performed interactively only if the feedback loop for determining and presenting the predicted manufacturing contour is fast enough, e.g., within 5 seconds or less.
[0054] Some embodiments use neural network models described in U.S. Patent Application No. 16 / 949,270, which is incorporated herein by reference. These models allow a user to present an image representing a layout design edited by the user as input and generate the resulting silicon wafer contour as output. FIG. 11A illustrates the use of a neural network 1100 to infer a manufacturing shape from CAD (computer-aided design) data input. This neural network is described in the previously incorporated patent application. When the neural network is run on modern GPU architectures, inference time can be reduced to the interactive timeframe (i.e., within a few seconds), even for relatively large designs. While some embodiments use neural networks, other embodiments use other machine learning processes to formulate predictions regarding the resulting final shape after the design is manufactured.
[0055] If an input image is too large to be processed all at once, it can be divided into a collection of (overlapping) image tiles. Each of the smaller tiles may then be processed by the network, and the output tiles may be collected and reassembled into the final output image. In some embodiments, a neural network architecture inspired by the original U-Net model architecture is used. Figure 11B shows an example of a U-Net model architecture. In the U-Net model architecture 1102, each shaded box 1104 corresponds to a multi-channel feature map. The number of channels is indicated at the top of the box. The x and y dimensions are provided at the bottom left edge of the box. The white box 1106 represents a copied feature map. The arrows indicate different operations. In the final layer, a 1x1 convolution is used to map each 64-component feature vector to the desired number of classes. In total, the original network has 23 convolutional layers.
[0056] The architecture is essentially an encoder-decoder network, with an encoding side (on the left) and a bottleneck layer (below) directing the model to learn a low-dimensional encoding of the input image. A decoder network on the right then decodes that low-dimensional representation of the image back to the full output resolution, and the two sides work together to learn the transformation from input to output images during training. The copy and crop operations act as skip connections, providing additional information from the encoder side of the network to the decoder side, helping to localize information in x,y space.
[0057] In some embodiments, the input to the neural network represents (tiles from) an input image that represents the design intent, i.e., what is intended to be manufactured assuming an "ideal" (but unrealistic) manufacturing process. In some embodiments, the output image represents what will actually be manufactured by a realistic manufacturing process, with sharp corners rounded, vias or metal shapes drawn as small squares manufactured as circles or ellipses, etc. After training the CNN with semiconductor manufacturing image data, the network model weights are adjusted to produce an output image that reflects the entire manufacturing process.
[0058] Figure 11C illustrates the use of the conceived U-Net model architecture 1102 in some embodiments to predict a wafer aerial image fabricated from rasterized image tiles representing a user-drawn layout. Figure 11D illustrates an example rasterized image corresponding to the desired printed metal for one of the metal layers in a D-type flip-flop (DFF) standard cell. White pixels indicate locations where metal is intended to be fabricated on the silicon substrate. Conversely, black pixels indicate locations where metal is not intended to be fabricated.
[0059] In some embodiments, several modifications to the original U-Net architecture were implemented to facilitate the creation of output images that reflect the semiconductor integrated circuit shapes being manufactured. One modification involves changing the final output layer of the U-Net from using a sigmoid activation function to using a linear activation function. This modification allows the U-Net to generate images with grayscale pixel values that include floating-point values that vary continuously from 0.0 to 1.0, which is more reflective of semiconductor wafer exposure images.
[0060] In some embodiments, for semiconductor manufacturing applications, the U-Net architecture is used as described above, but the initial number of filters is reduced from 64 to 32, with filter doubling continuing after each max-pooling operation. This has the effect of significantly reducing the overall number of trainable parameters for the network while maintaining a sufficient level of accuracy for semiconductor manufacturing applications. In some embodiments, different input and output tile sizes are used, for example, 256 x 256 (with 128 x 128 inner core tiles). In another embodiment, the network can be further modified by removing some of the layers (shorter "U" depth) or adding additional layers (deeper "U") as needed for accuracy. In another embodiment, rather than doubling the number of filters after each downsampling (max-pooling) or upsampling convolution, a different ratio can be used. In one embodiment, a fixed ratio (such as 2.0) can be used in each layer, while in alternative embodiments, different layer-specific ratios can be used in each layer. For example, the ratios may be lower at the bottom bottleneck layer of the "U" shape, gradually increase as one approaches the bottom bottleneck layer, and then correspondingly decrease again as one moves away from the bottleneck layer and up toward the output. These ratios and other network parameters may be tuned as part of a hyperparameter search during the training phase. In one embodiment, tuning may be repeated for different manufacturing processes and / or for different layers in the manufacturing process.
[0061] In some embodiments, the network has a single input and a single output, representing a manufacturing output image corresponding to a single set of process conditions (i.e., a unique process corner). The input to the network consists of an image corresponding to CAD data (tiles from a CAD image drawn by a circuit designer), and the output consists of an image corresponding to the silicon fabricated accordingly for that unique set of process conditions. An example of a reassembled set of tiles representing a desired DFF circuit metal layer is shown in FIG. 11D.
[0062] FIG. 11E shows an example of the corresponding fabrication output (assembled set of tiles). As shown, each white pixel represents an area where metal is present on the fabricated silicon wafer, and each black pixel represents an area where metal is not present. However, the pixel values are actually grayscaled and real-valued, with some pixel values at the "edges" of the polygons being between 0 and 1.0. This image is generated by reassembling tiles generated by a single-input, single-output, fully trained deep convolutional neural network, as described above.
[0063] To address process variations, i.e., multiple sets of process conditions, in some embodiments, multiple copies of a single-output network may be generated, one network for each unique set of process conditions (manufacturing parameter values), and each of these single-output networks may be trained in parallel. Figure 11F shows multiple networks (1108) trained to generate outputs 1110 for different process corners (PCs), each corresponding to a different manufacturing parameter (MP). After training, each of these networks can be used to infer, for a given CAD data input image, an output for that unique set of process conditions, i.e., that particular process corner.
[0064] FIG. 11G shows an example of inferred output, where the reassembled tiles represent images that represent the manufactured shape of a DFF design under three different, unique process conditions. While seemingly similar, upon closer inspection, it is clear that the three images are different. For example, different amounts of "corner rounding" are evident in each. The shape in the top image 1112 is "closest" to the rectilinear CAD shape drawn from the previously shown images. The shape in the bottom image 1116 is perhaps the furthest away, with a greater degree of rounded corners and narrowed shape. The middle image 1114 lies somewhere between these extremes. While this example shows only three examples representative of semiconductor manufacturing process conditions for simplicity, a more comprehensive set could include additional process parameters representing different extremes in mask and wafer manufacturing.
[0065] In some embodiments, this per-process corner inference may be performed serially (e.g., using a single GPU), while in other embodiments, this per-corner inference may be performed in parallel (e.g., using multiple GPUs). In a preferred embodiment, outputs at different process corners may be inferred by a single multi-output GPU, as shown in Figure 22.
[0066] For a neural network to be able to generate output images, the network must first be trained. Training is performed by exposing the network to a large set of input / output image samples, where each sample includes an input image (reflecting a portion of the IC design) and one or more output images (reflecting what will be manufactured in response to that input). To obtain the samples, several input designs can be selected or generated. Corresponding output images can be generated from the input designs through a process of detailed simulation, including numerical calculations. For each input sample, a single output sample can be generated that reflects nominal process conditions. Alternatively, multiple output samples can be generated that reflect different manufacturing process conditions. An exemplary process for generating input and output training data (i.e., generating training output data from training input data) is described below with reference to FIGS. 11H, 11I, and 58.
[0067] Different manufacturing conditions can result in substantially different manufactured wafer shapes. Potentially different manufacturing parameters (MPs) include coloring tools and parameters, OPT / ILT tools and parameters, including source and wafer process model parameters, MPC tools and parameters, including mask process model parameters, fracturing tools and parameters, mask writing tools and parameters, mask processing parameters, and wafer process parameters, including source and wafer processing parameters. These parameters are somewhat interdependent and collectively form a high-dimensional space, but it is common in the semiconductor manufacturing art to attempt to reduce this to a lower-dimensional space. The parameters related to mask manufacturing are collectively reduced to a single dimension, represented by dose margin variation, which is then reduced to the two primary dimensions related to wafer manufacturing: dose margin variation and depth-of-focus variation. Therefore, most of the total variance introduced by the original (large) set of parameters can be represented by the variation in this much smaller set of independent parameters.
[0068] 11H illustrates a simulation process 1120 used in some embodiments to generate output training samples for received input design training samples. In some embodiments, the input samples are the entire IC design, while in other embodiments, the input samples are a portion of the IC design in some embodiments.
[0069] As shown, process 1120 begins (at 1122) by performing a coloring operation that separates input samples into multiple mask layers. In the coloring operation, each feature of the input samples on a reticle layer is colored to reflect the assignment of the feature to a particular mask layer. After the coloring operation, process 1120 performs (at 1124) an optical proximity correction (OPC) operation to generate one or more possible sets of mask designs, each set of mask designs corresponding to the input sample.
[0070] For the input sample, the generated mask design in some embodiments includes a nominal mask design with variations. In some embodiments, the possible mask designs generated in 1124 can be combined to create the nominal mask design with variations. Traditionally, the nominal mask design can be determined by using a nominal dose, such as 1.0, and calculating a nominal contour of the mask design with a threshold, such as 0.5. In some embodiments, the nominal contour of the mask design is calculated from several possible mask designs. In some embodiments, the OPC operation includes an ILT (inverse lithography technique) operation. In some embodiments, the ILT operation generates an ideal curved ILT pattern, while in other embodiments, the ILT operation linearizes the curved pattern.
[0071] Process 1120 performs (at 1126) a mask simulation operation to generate mask data preparation (MDP), which prepares a mask design for a mask writer. This operation in some embodiments includes "splitting" the data into trapezoids, rectangles, or triangles. This operation, in some embodiments, includes mask process correction (MPC), which geometrically modifies features and / or assigns doses to features to make the resulting features on the mask closer to the desired shape. MDP can use possible mask designs or the results of MPC as input. MPC can be performed as part of fracturing or other MDP operations.
[0072] After the mask simulation, the process 1120 performs (at 1128) a wafer simulation operation that calculates possible IC patterns that result from using the generated mask. In some embodiments, the wafer simulation operation (at 1128) includes a lithography simulation using the calculated mask image. The operation at 1128 calculates several possible patterns on the substrate from multiple mask images.
[0073] For an input sample, the generated IC pattern in some embodiments represents an output pattern or a range of output patterns (if the generated shape has multiple contours to account for process and manufacturing parameter variations). The input sample and generated output pattern, in some embodiments, represent known inputs with known outputs that are used to train a machine-trained neural network. Once trained, the neural network can then be used during compaction to assist in the compaction operation in the manner described above.
[0074] Those skilled in the art will appreciate that process 1120 may be more or less than what is shown. Typically, mask process simulation software can be parameterized, i.e., can be instructed to perform a mask process simulation under a set of mask process (e.g., exposure dose variation) parameter values. Similarly, wafer simulation software can be parameterized, i.e., can be instructed to perform a wafer process simulation under a set of wafer process (e.g., exposure dose variation and depth of focus variation) parameter values.
[0075] Figure 11I shows an example of providing these process variations in manufacturing parameters (e.g., exposure dose variations and depth of focus variations) as inputs to a simulation process used to generate output training data from input training data. Process 1140 shown in Figure 11I is similar to process 1120 of Figure 11H, except that the exposure dose variations are provided to a mask process simulation 1126, and the exposure dose and depth of focus variations are provided to a wafer process simulation 1128.
[0076] 11I can generate several image files representing the fabrication of a mask under various mask process variations (exposure dose variations). In some embodiments, this is a mask produced at nominal values (exposure dose parameters at nominal values) and several mask files representing several extreme corner conditions (exposure dose parameters at several "extreme" values, e.g., several percentages, such as + / - 10% of the nominal value). Percentage values representing the extremes of the true mask fabrication process may be specified, or other limits, e.g., statistical limits, such as 1 sigma, 2 sigma, or 3 sigma values, may be specified.
[0077] For each of the production mask images thus generated (as determined by simulation), wafer process simulation operation 1128 of FIG. 11I can then be performed. For the mask process simulation operation, wafer process simulation operation 1128 generates a plurality of wafer images representing the use of the mask to produce a silicon wafer layer under various wafer process variations (depth of focus variations plus exposure dose variations). In some embodiments, this is several wafer image files representing a wafer surface produced at nominal values (depth of focus at nominal values plus exposure dose parameters at nominal values) and several extreme corner conditions (exposure dose plus depth of focus parameters at several "extreme" values, e.g., a percentage, such as + / - 10% of the nominal values). Percentage values representing the extremes of the true wafer manufacturing process may be specified, or percentage values representing other limits, e.g., statistical limits, such as 1 sigma, 2 sigma, or 3 sigma values, may be specified.
[0078] In some embodiments, the mask and wafer manufacturing parameter distributions may be taken as joint distributions, and percentage values may be selected to reflect 1-sigma, 2-sigma, or 3-sigma joint probability bounds. (Given random variables X, Y, ... defined over a probability space, the joint probability distribution for X, Y, ... is a probability distribution that gives the probability that each of X, Y, ... falls within any particular range or discrete set of values specified for that variable. With only two random variables, this is called a bivariate distribution, but as is well known to those skilled in the art, the concept can be generalized to any number of random variables, giving a multivariate distribution.) In some embodiments, a Monte Carlo simulation may be performed in which independent parameters are randomly drawn from their distributions or joint probability distributions.
[0079] The set of wafer images thus generated reflects the manufacturing process variations at the extremes or + / - N sigma values. This set of images can then be further aggregated into a nominal image, a minimum image (in pixels), and a maximum image (in pixels) reflecting the process parameters at corresponding + / - N sigma values. The process may be repeated for different values of N, e.g., N=1, 2, 3.
[0080] As a result of this process, given an arbitrary input design mask reflecting part of the design, the simulation process generates multiple images reflecting the entire manufacturing process at nominal process values and at extreme values reflecting absolute limits or statistical values such as 1, 2, or 3 sigma. Each of these outputs is called a "set" of process conditions, such as nominal, minimum, or maximum.
[0081] Different statistical neural network models can then be trained by exposing the neural network to sets of images corresponding to nominal, minimum, and maximum values at various N sigma levels. At the end of training, each of these neural networks can generate images that reflect the statistical N sigma value, i.e., reflect the variance in production at the corresponding N sigma value.
[0082] FIG. 11G shows the nominal, minimum, and maximum images generated for a tightly controlled process, with relatively small variations compared to nominal conditions. While the variations are small, they are not zero. However, corresponding images for modern, small-geometry, nanometer-era processes exhibit much larger image variations than those shown in FIG. 11G, and these larger variations will be illustrated by additional figures in this disclosure in the context of various circuit design applications.
[0083] 11I may take a long time, it only needs to be performed once per manufacturing process for which parameter variations are known, but it does not need to be performed once per design intended to be manufactured in the manufacturing process, and thus the computational cost of generating the data to train the model can be amortized over many designs.
[0084] Returning now to the discussion of design compaction, to accelerate the process of generating predicted shapes, some embodiments perform additional operations beyond those previously described with respect to FIG. 11A . These additional operations are necessary because, even with a fast neural network inference process, the various overheads associated with setting up the problem, feeding data to the neural network, and then post-processing the results generated by the neural network so that they can be presented in a layout editor significantly lengthens the overall process. Some embodiments are geared toward eliminating or significantly reducing the setup costs, enabling neural networks such as those described in U.S. patent application Ser. No. 16 / 949,270 to be used in conjunction with an interactive layout editor in a tight interactive (edit, visualize, edit, visualize...) loop, in a truly interactive timeframe (seconds or less). As a result, a circuit layout designer can enumerate and very quickly evaluate a variety of different potential layout modification solutions, enabling the best solution to be quickly determined and adopted.
[0085] Figure 12 shows process 1200, which is a more detailed representation of process 200 of Figure 2. Process 1200 shows that visualization operation 210 is composed of two sub-operations: (1) a calculation operation 1202 that calculates the silicon contour of each component in the selected design portion, and (2) a presentation operation 1204 that displays a visualization of the calculated silicon contours.
[0086] In some embodiments, significant extra computational operations are required to compute the silicon wafer contour in a format that allows it to be presented within a layout editor. Figure 13 provides further details regarding computational operation 1202 in some embodiments. This figure shows that in order to compute the contour, the data from the layout editor must first be prepared in a format suitable for consumption by a neural network, the neural network must perform its processing, and then the output from the neural network must be post-processed into a format suitable for rendering within an interactive layer editor tool.
[0087] 13 illustrates that calculating the silicon contours further requires the additional (1) biasing operation 1302, which preprocesses the data into a format suitable for consumption by a neural network, followed by (2) a compute operation 1304, which uses the neural network to generate the silicon contours of each component in the selected design portion, and then (3) an etch-down contour operation 1306, which post-processes the data into a format suitable for rendering in an interactive layer editor tool. In some embodiments, biasing increases the size of component shapes in the design (e.g., to make the shapes easier to manufacture), while the etch operation reduces the size of component shapes in the design.
[0088] As part of semiconductor manufacturing at advanced small-geometry process nodes, features in IC layout databases are preprocessed in a size-up or "bias-up" operation prior to mask creation, along with corner rounding to enlarge the features and create a more realistic target wafer shape for manufacturing (since 90-degree corners are practically impossible to manufacture). An example of a bias-up operation performed in the geometry domain is to calculate all edges of all polygons and then increase all edges by a certain length. Sizing is typically specified in the drawing dimensions (1X) before reticle scaling is applied. Sizing is typically applied "per side," meaning the distance each edge of a polygon is moved toward the interior or exterior of the polygon. For example, a 1.25 μm-per-side square that is sized -0.125 μm per side will shrink the square to 1.00 μm per side, for a total shrinkage of -0.25 μm in both the X and Y dimensions.
[0089] Masks are generated for corner-rounded versions of the corresponding bias-up shapes and optimized to ensure best fidelity in printing onto silicon wafers using a process known as OPC (Optical Proximity Correction). At advanced process nodes, an advanced form of OPC known as ILT (Inverse Lithography) is often performed to achieve best printability. ILT sometimes generates Manhattanized shapes and sometimes curved shapes. ILT is a very computationally demanding process that involves simulation or emulation to (1) predict how wafer fabrication, and possibly mask fabrication as well, may systematically deviate from the desired target shape and (2) compensate for them. To determine the final silicon contour after these operations, some embodiments incorporate all of these steps into the calculation of each color mask when multiple patternings are performed. For example, in FIG. 4, two color masks are included.
[0090] Some embodiments employ simple models for the bias-up and etch processes that are evaluated within the layout editing tool itself; for example, the wafer etch process is modeled as a constant etch, in some embodiments, with a bias-down operation complementing the bias-up model. Where more complex models are required, some embodiments use manufacturing simulation software and associated hardware to perform bias-up and / or etch modeling. Other embodiments are used in conjunction with extreme ultraviolet lithography (EUV) manufacturing. In these embodiments, the bias and etch steps are omitted or performed as pass-through operations.
[0091] After generating the biased-up mask shape (at 1302), process 1300 calculates (at 1304) the on-wafer contour. As previously mentioned, in some embodiments, manufacturing computational software is used to perform these steps; however, such software is somewhat computationally expensive and has an operational timeline that is not ideal for interactive use models, even with GPU support. Therefore, some embodiments use a machine-trained process (e.g., a machine-trained neural network or other machine-trained network) instead of such computational software to perform the wafer contour determination step. As noted above, a trained neural network, such as that described in U.S. Patent Application No. 16 / 949,270, can be used to significantly improve the performance of the contour determination step when the neural network inference operations are performed on a GPU device.
[0092] To allow the neural network to perform its processing, the biased mask data must be converted from its geometric form (edge and point arrays in the geometry domain) to the raster domain, i.e., converted to a pixel image format. Polygon rasterization is a fundamental technique for geometric data processing that is widely used in the electronic design automation (EDA) industry in particular, and in many other industries in general. A set of polygons in EDA (e.g., shapes defining the physical design of an integrated circuit) is typically represented in GDSII or OASIS format as an array of vertices, and the rasterization process calls for representing them by grayscale pixels on a grid. Some embodiments use high-resolution curve formats using techniques such as splines. Some formats represent pixel dose data in a compressed manner to minimize data size and transmission time. Different embodiments use different methods for representing shapes, but many use transmission mechanisms that are as compact as possible while minimizing impact on accuracy.
[0093] Once the neural network receives the raster domain data, it processes the data and generates as output a raster image of the fabricated silicon contour. To allow the raster image to fit into GPU memory along with the neural network model, the image must be divided into smaller image tiles, as outlined in U.S. patent application Ser. No. 16 / 949,270. Figure 14 shows an example of a neural network 1400 that receives image tiles representing biased-up mask shapes and generates image tiles representing corresponding silicon wafer contours, in an operation known as inference.
[0094] Process 1300, in some embodiments, performs post-processing to stitch the output tiles generated (inferred) by the neural network into a final, full-size raster image of the manufactured design. In some embodiments, process 1300 also performs additional post-processing operations to convert the raster image into a geometric image suitable for rendering in layout editing tools that do not operate in the raster domain. This last form of post-processing is known as "contouring" and may be performed by manufacturing computer software and / or hardware, such as TrueMask® DS.
[0095] 15 illustrates an example of an overall process 1500 that incorporates all of the above operations to generate contours by leveraging a neural network. This process 1500 is performed by several different processes, which are identified by text legends located next to each operation. These processes are a layout editing software process, a manufacturing software process, and a deep learning software process. As shown, the layout editing software first saves 1505 a copy of the design.
[0096] Next, at 1510, a manufacturing software process launches, acquires licenses, biases up the design components for one of the colors, converts the design to a rasterized format, and tiles up the tiles. At 1515, a deep learning software process launches, loads its neural network with its weights, iteratively reads and processes tiles of input to generate predicted output designs, and then stitches together the outputs it generates for the processed tiles. In some embodiments, the neural network generates N (e.g., 3) different predicted output designs for N (e.g., 3) different process variations, each predicted output design represented in terms of pixel values that must be processed to derive component contours for each process variation. Instead of one neural network, other embodiments use N neural networks, each generating one of the N different predicted output designs for one of the N different process variations.
[0097] At 1520, the manufacturing software process (1) starts again, (2) analyzes the pixel values in each predicted output design generated by the neural network to generate component contours (e.g., nominal contour, maximum contour, and minimum contour) of the predicted output design, and then (3) etches down the predicted contour design. At 1525, the manufacturing software process determines whether it has processed design components for all colors. If so, it ends. If not, it returns to 1510 and repeats the operations for another set of components of another color.
[0098] Other embodiments divide the sub-operations of process 1500 differently. Figure 16 shows a process 1600 that divides these sub-operations somewhat differently than process 1500. In process 1600, the bias and etch sub-operations are performed by layout editing software instead of by manufacturing software processes. Specifically, the layout editing software performs the bias operation at 1505 and the etch operation at 1605.
[0099] The startup and licensing times of the manufacturing software processes and the startup and network load-up times of the neural network processes add delays to the overall speed of process 1500. The inference work of a neural network (the time it takes for the model to load and generate its output once its inputs are available) can be very short (often on the order of less than a second). However, there is a variety of overhead associated with starting the manufacturing software process to prepare its inputs (obtaining licenses, performing rasterization and tiling steps), and converting the network-generated output into a format suitable for rendering in the layout tool (reconstructing the manufacturing contour image from tiles, obtaining licenses and contouring from raster domain to geometry domain, and simulating the etching step).
[0100] The time delays associated with these overheads may be unacceptable in some cases. Furthermore, the rasterization, tiling, neural network inference, reconstruction, and contour operation steps must be performed once per color mask. Also, as noted above, some embodiments present the user with not only the nominal manufacturing process wafer contour, but also the corresponding outer (maximum) and inner (minimum) contours that reflect manufacturing process variations.
[0101] Furthermore, if two color masks are involved (double patterning) and three process conditions (nominal, maximum, and minimum) are considered for each mask, a total of six sets of contour determination operations must be performed. If the manufacturing software process alone takes 3 seconds to start and obtain its license, this requires a minimum overhead of 18 seconds. If the neural network software takes another 20-40 seconds to start and load its libraries, neural network model, and neural network weights, this adds another 120-240 ((20-40) * 6) seconds of overhead.
[0102] Therefore, some embodiments do not use a sequential data processing flow that launches the necessary processes when needed and waits for each to be completed in turn by process 1500 or 1600 of Figure 15 or Figure 16. Instead, some embodiments use a novel software architecture 1700 of Figure 17 that significantly improves the throughput time of the interactive editing process by improving the operation and communication of the layout editor, manufacturing software server process, and neural network software server process.
[0103] In this example, the data flow is modified to allow three parallel independent execution sequences (hereinafter referred to as flows). In some embodiments, these may be mapped to multiple threads of execution, and in other embodiments, they are mapped to multiple cooperating operating system processes. For example, in the example illustrated by FIG. 17 and other examples illustrated in FIGS. 18-21, the independent execution sequences are (1) separate threads of one process, (2) separate processes, and (3) one or more separate threads of two or more processes. To utilize multiple GPU resources, multiple operating system processes may be required.
[0104] In Figure 17, a first execution flow 1702 represents the layout editor software where a user performs edits and visualizes the results. In some embodiments, the layout editing software process executes on a non-GPU-enabled system. A second flow 1704 represents the manufacturing software process server. This server performs rasterization and tiling operations, as well as contouring operations where raster images generated by the neural networking software server are converted back to the geometry domain for rendering in the layout editing software. In some embodiments, the manufacturing software process server is pre-launched by the layout editor software, for example, when the validation tool 500 shown in Figure 5 is selected by the designer.
[0105] The third concurrently running flow 1706 is the neural networking software itself, which contains the trained neural network and is responsible for inferring wafer contours from the rasterized, tiled images generated by the manufacturing software server. To achieve the required performance, this process runs on a GPU-enabled system. In some embodiments, the neural networking software process is launched by the layout editor software, for example, when the verification tool shown in FIG. 5 is selected by the designer.
[0106] As shown in Figure 17, the neural networking software server process takes the output tiles generated by the neural network and reassembles them to reconstruct the full-size raster image. In an alternative embodiment, this reconstruction process is moved from the neural networking software server to the manufacturing software process server.
[0107] In some embodiments, the three processes 1702, 1704, and 1706 are launched simultaneously (e.g., by a wrapper script used to launch the layout editor). In further embodiments, the manufacturing software server process 1704 and the neural networking software server process 1706 act as servers, waiting for instructions to arrive over a network socket (e.g., an Internet socket) once they have completed their initialization process. Thus, while the layout editor software is obtaining its license and loading the IC layout design, the manufacturing software server can also be launching and obtaining its license, and the neural networking software server can also be performing its initialization, which includes loading the neural network model and setting the neural network weights, which may be relatively lengthy. Because these three processes are performing their initialization simultaneously, rather than sequentially as shown in FIG. 15 , these initialization times are removed from the inner-loop time for processing the design and rendering contours after the user has performed interactive edits, thus significantly improving the turnaround time for each iteration of the editing, calculation, and visualization operations of the interactive editing tool of some embodiments. Therefore, in the architecture of Figure 17, the initialization time for the three main processes has been moved up front before the interactive editing loop, and therefore removed from the computational steps performed after each user edit in the edit, compute, and visualize loop.
[0108] In FIG. 17 and other sequence diagrams described below, boxes are drawn around subprocesses that consume significant GPU time or GPU time. Dashed vertical arrowed lines represent periods of essentially idle time during which the corresponding software process waits for input from a user or one of the other processes involved. Horizontal arrowed lines represent data transfers from one process to another. In some embodiments, communication between processes is internet / network socket communication. Also, in some embodiments, horizontal arrowed lines flowing from left to right represent client-side socket-based requests for services to be performed, while horizontal arrowed lines flowing from right to left represent server-side socket-based responses indicating that the service has been performed and the results are available. The results generated by the server may be stored, for example, in a networked disk file and then accessed by the client. After receiving the server response, the layout editor client may perform additional processing, prepare another set of files for consumption by the server process, initiate another service request, wait for a response, and / or consume the files representing the results of the server-side service.
[0109] 17, manufacturing software server 1704 begins listening and accepting socket communications after it is initialized, obtains its license, etc. Similarly, neural networking software server 1706 begins listening and accepting socket communications after it is initialized and loads neural network models and weights. In some embodiments, the three processes 1702, 1704, and 1706 can run on the same machine or on separate, networked machines. Ideally, neural networking software process 1706 runs on a machine with GPU hardware support to enable maximum throughput during neural network inference.
[0110] After a user uses the layout editing software to perform layout edits and request to see the manufacturing contours, the layout software 1702 saves a copy of the design (reflecting the latest edits), ensures that the shapes are properly biased up to reflect manufacturing, and then sends a client request to the manufacturing software server 1704 to rasterize and tile the design to prepare it for neural networking inference by a neural network. In other embodiments, the biasing up process is performed by the manufacturing process server 1704 rather than the layout editing software client 1702. Once the manufacturing process server indicates via a socket response that the data is ready for deep learning inference, the layout editor in some embodiments sends a socket-based client request to the neural networking software server, informing it of the location of the data tile files representing the rasterized and biased up design and requesting that the contours be calculated.
[0111] In response, neural networking software server 1706 loads the data in the image tiles and uses the trained neural network to quickly perform inference operations that generate output image tiles representing the silicon wafer shape in raster space. In some embodiments, the neural networking software server then reassembles these tiles to form a larger image of the silicon wafer shape in raster space before responding to the client with a message indicating that the data is available. In other embodiments, neural networking software server 1706 does not reassemble the tiles but responds as soon as the tiles are computed. The image reconstruction in some of these embodiments is performed by manufacturing software server 1704 via a separate client request (not shown) by layout editing software 1702.
[0112] Once the reconstructed raster image of the silicon wafer shape is available, it must be converted from the raster domain to the geometry domain, i.e., converted back to a format suitable for rendering in the layout editor. In some embodiments, this operation is performed by the manufacturing software server 1704 in response to a request from the layout editor client 1702. This operation includes examining various pixel values in the reconstructed raster domain image and generating a geometric database containing contours, for example, by using a marching squares algorithm.
[0113] The above sequence of operations must be performed for each process condition of interest (e.g., nominal process corner, max corner, and min corner corresponding to outer and inner contours, respectively), and must be repeated for each color mask generated via the multiple pattern decomposition operation, which in some embodiments is performed by a layout editor prior to or in conjunction with user editing. In some embodiments, the sequence is simply repeated sequentially, once for each combination of color mask and process condition of interest. For example, if two color masks are included as shown in FIG. 4 and there are three contours of interest (nominal, max / outer, and min / inner) to be determined, the above sequence must be repeated six times.
[0114] As described above, a design can be edited in a context-free paradigm or in an in-place edit paradigm where the surrounding context is known. In an in-place edit paradigm, the contouring operation can expand the design to include none, some, or all of the surrounding context. In a context-free paradigm (e.g., context-free standalone edit of standard cells or memory bit cells), the contouring process can expand the design to infer the context.
[0115] For example, in a standard cell edit scenario, the inferred context may include other copies of the standard cell or placement of other standard cells in various legal orientations surrounding the cell being analyzed. In a memory bit cell scenario, the inferred context likely includes placement of other copies of the cell being edited and / or dummy cells, which are often placed around the periphery in various legal orientations. Corresponding operations may be performed after the calculated contour is etched, allowing the final contour of the cell being edited to be determined. Here, the inner and outer contours for each instance of the cell being edited (which vary due to different inferred neighborhoods) are aggregated to generate final inner / outer contours that take into account design neighborhood-induced variations in addition to process variations. However, these inferred context steps are not shown in the figures for ease of explanation.
[0116] To further improve throughput, some embodiments use a different architecture in which multiple manufacturing software servers are deployed along with multiple neural networking software servers. This increases concurrency / parallelism and reduces overall processing "wall clock" time. FIG. 18 shows one such embodiment in which multiple software servers run simultaneously, one dedicated to each combination of process conditions. Under this approach, (1) a first neural networking server can be used to infer wafer contours for the "first color mask, nominal process conditions" combination; (2) a second server can be used for the "second color mask, nominal process conditions" combination; (3) a third server can be used for the "first color mask, maximum process conditions" combination; and so on.
[0117] Some embodiments use as many neural networking software servers as there are unique combinations of color mask and process condition pairs to be evaluated. Each neural networking software is assigned a dedicated GPU. In some embodiments, the servers again operate simultaneously, with each server responsible for calculating the wafer contour for one color mask and process condition combination. In other embodiments, the number of servers is reduced to match the number of process corner conditions, so that each neural networking software server performs multiple inference cycles, one for each color mask. In yet other embodiments, the number of neural networking software servers matches the number of color masks (two in this example), and each is responsible for performing multiple inferences, one for each process condition of interest.
[0118] In some embodiments, multiple manufacturing software servers operating simultaneously perform rasterization, tiling, and contouring operations for each combination of color mask and process conditions. For example, in some embodiments, (1) a first manufacturing software server is used for rasterization, tiling, and contouring operations for a first combination of color mask and nominal process conditions, (2) a second manufacturing software server is used for a second combination of color mask, nominal process conditions, (3) a third manufacturing software server is used for a combination of first color mask, maximum process conditions, and so on.
[0119] In some embodiments, there are as many manufacturing software servers as there are unique combinations of color mask and process condition pairs to be evaluated. In some embodiments, the servers operate simultaneously, with each server responsible for the rasterization, tiling, and contouring operations for one color mask and process condition combination. In other embodiments, the number of servers is reduced to match the number of process corner conditions, so that each manufacturing software server performs multiple rasterization, tiling, and contouring operations, one for each color mask. In yet other embodiments, the number of manufacturing software servers matches the number of color masks (e.g., two), with each responsible for performing multiple rasterization, tiling, and contouring operations, one for each process condition of interest.
[0120] 19 shows an embodiment in which one layout editing server operates with multiple manufacturing software process servers and a single neural networking software server, which sequentially generates output for each color mask and process condition combination.
[0121] 20 illustrates another embodiment in which one layout editing server operates with one manufacturing software process server and multiple neural networking software servers. The single manufacturing software process server performs multiple rasterization, tiling, and contouring operations sequentially, one for each combination of color mask and process condition of interest. In this example, each neural networking software process performs an inference operation for one color mask and process condition, and different neural networking software processes perform different inference operations for different color masks and process conditions in parallel.
[0122] 21 illustrates another embodiment in which one layout editing server operates with multiple manufacturing software process servers and one neural networking process server, where the neural network generates not one but multiple outputs simultaneously, one for each process condition of interest. This model is also used in some embodiments using multiple neural networking process servers, where each neural network generates not one but multiple outputs simultaneously, one for each process condition of interest. In these embodiments, as well as the embodiment of FIG. 21, each neural networking software is assigned a dedicated GPU because the extreme parallelism of GPU devices can be highly exploited to provide very fast inference times, e.g., essentially the same amount of time as for a single output.
[0123] 22A shows a neural networking software server running a single neural network that generates multiple outputs at a time, each corresponding to a different process condition of interest. Here, the neural network is trained to calculate an inner (minimum), nominal, and outer (maximum) contour, i.e., the inner and outer contours relate to the extremes of the overall manufacturing process. These contours are generated by the neural network from a three-channel output image given a single-channel input image representing a rasterized layout design for a particular layer / color mask combination.
[0124] In one embodiment, as described with respect to the discussion regarding FIG. 11H, a network can be trained to generate images that correspond to statistical limits, such as 1 sigma, 2 sigma, or 3 sigma process limits. Here, the inner / outer contours derived from the images generated by the network correspond to the corresponding sigma values. FIG. 22B shows a graphical user interface 2220 that allows a user to select which model to use. When the "Process Extremes" radio button 2222 is selected, the minimum / maximum values correspond to the extremes of the manufacturing process. However, when the "Statistical Limits" radio button 2224 is selected, the user selects from the available models reflecting how much of the process variation (in terms of N sigma limits) should be reflected.
[0125] FIGS. 23-28 show more detailed examples of interactive design implemented in accordance with some embodiments of the present invention. It will be understood by those skilled in the art that the contours shown in these images are for the extremes of the manufacturing process; different contours corresponding to various N-sigma limits can instead be configured via the user interface of FIG. 22B. In this example, a 64-bit bus 2300 jogs to the left by one routing grid, with the bus traversing from top to bottom, as shown in the layout editor display shown in FIG. 23. FIG. 24 shows a close-up view of the upper left portion of the initial design displayed in the layout editor. This view also shows several rulers 2405 drawn to indicate a design that adheres to the 40 nm minimum width and minimum spacing rules. It also shows two color masks (e.g., purple and cyan) with alternating diagonal stipple directions (e.g., top to bottom and left to right, or top to bottom and right to left) that indicate different color masks.
[0126] In this example, the designer desires to compact the space between routes while maintaining the width of the routing tracks themselves. In FIG. 23, the designer selects the dashed outline contour UI button 550 to instruct the layout editor to calculate the manufactured wafer contours across process variations. In response, the layout editor collaborates with one or more manufacturing software servers and one or more neural network software servers to calculate these contours, and then presents the designer with an elevated (zoomed-out) view of the predicted bus 2500 design contours as they will be manufactured across process variations, as shown in FIG. 25. FIG. 26 shows the upper left corner of the bus after the designer then performs a zoom operation to view three sets of generated contours showing the minimum, nominal, and maximum contours of the predicted bus 2500.
[0127] Looking at the designs in Figures 25 and 26, the user determines that the manufacturing contours are sufficiently well represented and that some additional reduction in design area can be achieved by squeezing some of the space between route shapes and "pushing beyond" the restrictive design rules. In particular, routes can be moved closer to each other in both the horizontal (X) and vertical (Y) dimensions. For example, as shown in Figure 27, the designer may move routes so that the horizontal spacing between routes is reduced from 40 nm to 38 nm, effectively reducing the diagonal spacing from 52 nm to 48 nm. This can be achieved by moving shapes vertically and cropping the tops so that everything is horizontally aligned. The new dimensions are indicated in this figure by rulers 2705 and 2710.
[0128] After performing the series of edits to obtain the design spacing shown in FIG. 27, the user can quickly determine whether the manufacturing silicon wafer contour for this compacted design is acceptable by again selecting the dashed contour button 550 to instruct the layout editor to begin a series of operations (such as those described above with reference to FIGS. 12-22) to generate different predicted manufacturing contours for the bus lines in the compacted design.
[0129] The resulting contours emerge quickly. Figure 28 shows these contours in the upper left corner of the compacted design 2800. The designer zoomed in on this location to examine the spacing between the outer contours at several locations of interest. This spacing is indicated by rulers 2805, which in some embodiments are automatically displayed rulers, in other embodiments are user-selected rulers, and in still other embodiments are both automatically displayed and user-selected rulers. As indicated by these rulers, the spacing ranges from 29 nm to 33 nm, depending on the location.
[0130] The user can continue to compact the design, pushing the design rules until the correspondingly placed rulers indicate that the wires are close together, yet have enough space between the outer contours so as to be comfortable from a yield perspective. The user can also end the editing loop, for example, when the contours are determined to be equidistant both horizontally and diagonally. Additional tools and rulers not shown here may be provided for the purpose of determining equidistance.
[0131] The interactive layout editor of some embodiments includes an interactive compaction tool that moves routes in the X and Y directions, compressing (or expanding) the horizontal and vertical space between routes when the user specifies delta X and delta Y space reduction values, with negative values expanding the space. The tool can trim the resulting wires vertically as needed after each compaction / expansion operation to maintain the original alignment.
[0132] 29 shows a graphical user interface 2900 for this interactive compaction tool in some embodiments. As shown, the user interface includes (1) a set of dimension controls 2905 that allow the user to specify the amount of space reduction (in nanometers) in the X and Y directions, (2) a compaction button 2910 that allows the user to perform the compaction operation, and (3) an auto contour checkbox 2915 that instructs the layout editor to calculate contours resulting from the interactive compaction operation and display these contours superimposed on the layout.
[0133] Through this tool, the layout editor not only moves shapes the necessary amount in the X and Y directions according to user-specified X and Y values to compress / expand the space between them, but also trims or expands wires vertically to shorten or lengthen them as needed while still accommodating diagonal jogs. When the Auto Contour checkbox is checked (as in Figure 29), the compaction operation also quickly determines the contours resulting from the interactive compaction operation and displays them superimposed on the layout. Rapid display is now possible, as even for a design of a given size and complexity, the production wafer contour across process variations can be determined and displayed in a matter of seconds.
[0134] 30 illustrates a process 3000 that the layout editor executes when a user requests an interactive compaction operation via the user interface 2900. As shown, the process 3000 performs one or more iterations of three operations: compacting the design (at 3005), generating a visualization of the silicon contour (at 3010), and then determining whether the design should be further compacted (at 3015). If the process determines (at 3015) that the design should not be further compacted, the process determines (at 3020) whether the design has been over-compacted. If so, the process reverses one or more previous compactions and selects one of the compaction solutions identified in the previous iterations 3005-3015. If not, the process selects (at 3025) its last identified compaction solution and terminates.
[0135] Figure 31 shows a compacted bus route design 3100 that results after several uses of the interactive compaction tool of Figure 29, followed by several inspections of the resulting contours. In this design, the layout editor displays several rulers 3105 to contrast the size of the compacted design with the original design 2300.
[0136] FIG. 32 shows a predicted manufacturing design 3200 with predicted contours for the final compacted design. The contours shown are defined along several process variations. As shown, the design area has been reduced by a significant amount (approximately 23%) compared to the original, uncompacted design. FIG. 33 shows a close-up 3300 of the upper left corner of design 3200. As shown, several measurements indicate reduced spacing between the outer contours of the final compacted shape. Also, as shown, there is no significant bridging evident between features, nor is there any apparent pinching of features, even at this level of spacing.
[0137] In some embodiments, a user can interactively compact a design, visualize the resulting contours, measure the contours, etc., and instruct the interactive layout editor to repeat process 3000 of Figure 30 until it is determined that the design is over-compacted. At this point, the design can be re-expanded (e.g., by specifying negative values for the X and Y spatial contraction values and finally clicking the "Compact" button once). Alternatively, an "undo" editing operation can be used to achieve the same goal, resulting in a design that is as compact as possible.
[0138] Some embodiments provide an automated compaction tool that utilizes a multi-goal optimizer to compact a design. In some of these embodiments, the optimizer's goals include (1) minimizing the design area and (2) minimizing DRC violations. Some embodiments of the automated compactor minimize the design area without introducing DRC violations. Additionally or alternatively, some embodiments of the automated compactor minimize manufacturability violations between curvilinearly fabricated silicon shapes while optimizing or constraining parasitics, most notably resistance and capacitance, that affect circuit wiring delay.
[0139] In the bus route example above, the optimizer of the auto-compactor, in some embodiments, is configured to search the design space to identify X, Y values that best compact the design without introducing curve manufacturability issues. The optimizer in some embodiments attempts to minimize a cost function by varying the input variables (in this example, X and Y space reduction values) within the available search space (defined, in some embodiments, through a set of constraints) until the cost function value is minimized. In some embodiments, the cost function is a combination of both the area of the compacted design and a value related to the manufacturability cleanliness of the curves of the compacted design.
[0140] Manufacturability cleanliness in some embodiments is expressed as DRC cleanliness, or curvilinear DRC of simulated or emulated curved contours that represent manufacturing contours and their statistical variations, or any other measure that indicates a more manufacturable design over a less manufacturable design. In some embodiments, the manufacturability cleanliness value is a function of the area of the curvilinear DRC marker polygons, with larger areas of combined curvilinear DRC errors resulting in higher costs. Meanwhile, the manufacturing cleanliness value in some embodiments is a function of the number of curvilinear DRC marker polygons. In other embodiments, the DRC cleanliness value is a function of both the number of curvilinear DRC marker polygons and the combined area of the curvilinear DRC marker polygons. In some embodiments, the curvilinear DRC marker polygons are not a function of the edges of the drawn layout (as in traditional DRC), but rather a function of the edges of the curvilinear polygons that correspond to the manufactured silicon shapes. DRC cleanliness in this context is a measure of how clean the curved manufacturing design contours are. These functions may be linear, square, or any other function. The less clean the contour (ie, the greater the amount of curve DRC violations), the larger the penalty that is added to the cost function.
[0141] Figure 34 shows a design 3400 being auto-compacted by the auto-compaction tool of a layout editor of some embodiments. Rulers 3405 provide an indication of the Y dimension of this design. In this example, a slightly different manufacturing process is used, which results in somewhat different contours than those seen previously. The manufactured contours corresponding to the original design are as shown in Figure 35. Several rulers 3505 are shown in this figure to provide an indication of the scale of the spacing between the outer contours at several target locations.
[0142] 36 shows a compacted design 3600 produced through a simple attempt to manually compact a design by removing 6 nanometer spaces between polygons in both the X and Y directions. As shown, comparing the location of the bottom right corner of the compacted design with the ruler 3405 originally placed next to the original, uncompacted design reveals that the design has indeed been compacted by a certain amount.
[0143] FIG. 37 illustrates a compacted design 3600 similar to the simply compacted design 3700 of FIG. 36, but showing predicted manufactured silicon contours with curve DRC violations in design 3600. The contours and violations are, in some embodiments, shown in different colors, e.g., red for contours and blue for violations. In FIG. 37, several colored locations (e.g., blue locations) circled in a black and white drawing identify DRC violations. In this example, the curve DRC rule check includes a minimum curve spacing check of 25 nm. Observed spacing between manufactured silicon contours that is less than this amount is flagged as a violation. A number of curve DRC violation polygons are shown in the figure.
[0144] FIG. 38 shows a close-up view of the compacted design 3700 of FIG. 37. The view in FIG. 38 shows a contour 3820 and DRC violation marker polygons 3825 corresponding to the upper left portion of the design 3700 of FIG. 37. Rulers 3805 are also shown to indicate scale. The violation marker polygons show the identified violations in more detail. These polygons indicate where the outer contour edges are within 25 nm of each other. One of the markers 3825a is shown with a ruler indicating a spacing of 23.3 nm (0.0233 μm). In some embodiments, this ruler is displayed in response to designer input to further investigate marker 3825a, but in other embodiments, it is displayed automatically by the tool. In still other embodiments, the tool automatically displays some or all of the rulers while also allowing the designer to invoke the display of the rulers to specify the dimensions of the violation marker polygons.
[0145] A goal of some embodiments is to be able to automatically compact a design as much as possible while minimizing curve DRC violations. To achieve this goal, some embodiments combine a black-box optimization process with a cost function that includes both (1) the area of the compacted design and (2) the combined area of the curve DRC marker violating polygons. This allows the optimizer to find a compaction solution that results in the smallest possible design area while, for example, maintaining spacing between production silicon wafer contours greater than design rule minimums.
[0146] Black-box optimization processes require only a cost function evaluation function, and optionally, in some cases, boundaries that define the search space. These processes perform multiple cost function evaluations at various trial points in the search parameter space to attempt to determine the overall shape of the cost function in multidimensional space. The results are often combined with running local optimizers near the lowest cost points to attempt to achieve a global minimum.
[0147] Some embodiments use the Simplex Homology Global Optimization (SHGO) algorithm, a promising recently published global optimization (GO) algorithm, e.g., https: / / stefan-endres.github.io / shgo / . Software implementations of the algorithm have been shown to be highly competitive when compared to state-of-the-art commercial open-source optimization software. Other embodiments use other optimization processes (e.g., differential evolution optimization processes, e.g., https: / / en.wikipedia.org / wiki / Differential_evolution). Figure 39 shows a UI for an auto-compaction tool of some embodiments. Through this UI 3900, a designer can set search space parameters for exploring the solution space for auto-compaction optimization. X min, X max fields 3902 and 3904 allow the user to specify the range of possible values for the X space reduction parameter, and Y min, Y max fields 3906 and 3908 allow the user to specify the range of possible values for the Y space reduction parameter. An auto-compaction button 3910 allows the user to launch the optimizer on the current design being edited in the layout editor.
[0148] 40 illustrates a process 4000 performed by an auto-compactor of some embodiments. As shown, process 4000 identifies (at 4005) potential compaction solutions within user-specified search space boundaries. Process 4000 uses (at 4010) the identified compaction solutions to compact the design by an appropriate amount and then uses a neural network to generate a manufacturing wafer contour for the generated compacted design.
[0149] At 4015, a curvilinear DRC tool is also run on the curvilinear wafer contour shape, for example to determine spacing between manufactured shapes, and generates marker polygons whenever spacing is found to violate design rules. In some embodiments, the areas of both the compacted design and any DRC marker polygons are combined in a cost function that penalizes excess area or DRC violations, and the process runs its optimization sub-process to minimize this cost function value.
[0150] Next, at 4020, process 4000 determines whether to terminate upon finding a satisfactory solution to compaction in this or the previous iteration. In different embodiments, process 4000 uses different criteria to determine when to stop exploring the solution space. The criteria depend on the type of optimization sub-process that process 4000 uses.
[0151] Process 4000 ends when it determines (at 4020) that it has found a satisfactory solution and should terminate. Otherwise, if process 4000 determines (at 4020) that its search should not terminate, the process returns to 4005 to identify another potential compaction solution and then repeats its operations 4010 and 4015 for this solution. For each potential solution, the process generates a compaction based on the solution, generates a wafer contour for this compaction, applies curve DRC rules, and recalculates the cost function to evaluate the compaction resulting from the identified compaction solution.
[0152] After several such iterations, the optimizer may find a good solution to the problem, i.e., a set of input parameter values (X and Y spatial reduction values in this particular experiment) that correspond to a low-cost function value with few or no DRC violations. At such point, the process determines (4020) that it should terminate, selects the best identified solution as a satisfactory solution, and terminates. In some embodiments, process 4000 terminates after reaching a specified maximum number of iterations or after reaching some other termination condition. In some embodiments, process 4000 performs 100-200 iterations, each taking only a few seconds thanks to the use of a neural network trained to generate production wafer contour values, completing the automated compaction of the design in the order of 10 minutes.
[0153] The automatic compaction tool of some embodiments has additional user interface controls to allow the user to further configure the optimizer, for example, by specifying the maximum number of evaluation points, or the size of the initial search grid, etc. In some embodiments, the UI also provides one or more interfaces to additional suitable optimizers, and an interface that allows the user to select from a list of suitable optimizers.
[0154] Figure 41 shows the fabricated silicon contour corresponding to the auto-compacted solution generated by a single run of the SHGO optimizer to auto-compact the design of Figure 34, along with a particular formulation of the cost function and a particular initial search space. As shown, this auto-compacted result in a single DRC violation, identified by a single, small DRC violation marker polygon 4120, identified by a color (e.g., blue) different from the color (e.g., red) used to indicate the contour. To illustrate the black and white diagram of Figure 41, a circle 4110 is used to highlight the location of the DRC violation polygon marker 4120.
[0155] Figure 42 presents a close-up view of the DRC violation marker polygon 4120. As shown, the DRC polygon has a width of 24.169107 nm, as indicated by the ruler 4205. Applying a higher weighting to the DRC area term in the optimizer's cost function eliminates this DRC violation. Alternatively, the designer can eliminate this violation through manual adjustment operations or by providing an alternative value for an automatic compaction operation.
[0156] Figure 43 shows the manufactured silicon contour corresponding to another auto-compacted solution generated by a single run of the SHGO optimizer to auto-compact the design of Figure 34. This other solution was identified using a different initial search space (e.g., X and Y space compaction values were X = 2.64 nm and Y = 5.92 nm) and is free of DRC errors. In this example, the design was successfully compacted such that the overall Y dimension was reduced from 4.62 μm to 4.25 μm, while the X dimension was correspondingly compacted (rulers not shown). Also in this example, the auto-compactor did not generate any DRC-violating polygons to identify any 25 nm curve spacing DRC errors.
[0157] In some embodiments, a neural network-enabled interactive layout editing system can be used to manually correct yield-limiting portions of a design (lithography hot spots). The process begins by inspecting the contours for known or suspected hot spot locations. The design is then iteratively modified, and the resulting contours are visualized and inspected. Several potential candidate edits can be quickly evaluated in this manner, along with their resulting impact on the manufacturing design contours.
[0158] FIG. 44 illustrates an interactive editing process 4400 used to manually modify yield-limiting portions of a design. As shown, the designer performs an editing operation (4405), i.e., instructs the tool to perform an editing operation. Examples of such operations include performing a cell flip or shift, or modifying the yield-limiting portions of the design (via individual polygon edits). Process 4400 modifies (at 4410) the design based on the designer's input and provides a visualization of the resulting design with its associated predicted manufacturing contour. The designer reviews (at 4415) the design and determines whether the design should be further edited. If so, the process returns to 4405 when the designer performs another design. If not, the process ends.
[0159] 45-57 illustrate an example of using a neural network-enabled interactive layout editing system to manually correct yield-limiting portions. FIG. 45 shows a portion of a custom design containing several placed standard cells for digital logic that have been determined to be associated with a yield issue. The central boxed area 4550 shows the contours associated with the yield-limiting portion of the design (with inter-cell routing removed) as determined by the trained neural network. In this example, only the inner and outer contours are shown; the nominal contours have been omitted for clarity.
[0160] Figure 46 shows the corresponding portion of design 4600 itself. Boxed area 4550 corresponds to area 4650 in Figure 46. This area 4650 is at the abutment of two particular symmetric cells 4605 and 4610, which have back-to-back "E" shaped polygons. Figure 47 shows a close-up of problem area 4650 at the cell boundary to show the problem area in more detail. Here, it can be seen that the back-to-back "E" shaped polygons at the cell boundary are positioned close to each other. Such a positioning could occur, for example, due to coloring collisions.
[0161] Figure 48 shows a corresponding close-up view of the fabricated wafer contour rapidly determined by the trained neural network, where three regions 4805, 4810, and 4815 are circled and approximately bridging the outer fabricated contour determined by the neural network.
[0162] Various approaches can be chosen to repair such hot spots, depending on the tools and methodologies used to create the original layout, as well as the nature of the layers and cells involved. If the original layout was created using, for example, a place-and-route tool, it may be possible to instruct the tool to gradually reroute portions of the design. However, this approach may result in changes that are drastic enough to alter circuit timing and should therefore only be undertaken as a last resort. Even rerouting a design with poor placement (such as the design shown in FIG. 46) may not be able to fix hot spots that are primarily placement-dependent. Rerunning the placer may also be a way to resolve the problem shown in FIG. 45, but this may again lead to the need to reroute the newly re-placed design, again leading to timing challenges.
[0163] More localized forms of hotspot repair, such as flipping and shifting cells or surgical changes to individual polygons as performed in an interactive editor, can yield better solutions for both fixing the hotspot and making minimal changes to timing and / or parasitics. The interactive editing tools of some embodiments are designed to support such localized repair solutions. A layout designer can perform manual / interactive localized edits to repair the hotspot. For example, the edits performed can include editing the problematic cells and / or their neighboring cell instances, such as interactively moving the problematic cell instances further apart, flipping cell instances, or performing other edits (such as cell remastering combined with manual polygon edits).
[0164] Following these edits, the tool generates a predicted manufacturing contour by re-running contour extraction through the trained neural network, for example, using the Contour button in the Verification Tool window described above with reference to Figures 5 and 6. An engineer tasked with fixing the hot spot can, for example, gradually increase the cell spacing and quickly re-run contour extraction, continuing a tight edit-visual-edit-visual loop until the contours determined by the neural network are far enough apart that bridging is no longer an issue.
[0165] Alternatively, as shown in Figure 49, the designer may insert a predetermined spacer cell 4905 from a cell library (e.g., a standard cell library typically includes one or more spacer cells for, among other purposes, such purposes). Here, the spacer cell is a narrow cell that contains nothing but well and power rail regions. This cell has been inserted by the user between the two cell instances in question, thus separating the two back-to-back "E"-shaped polygons toward the center.
[0166] FIG. 50 shows the rapid feedback provided by the editing tool regarding the new contours determined by the editing tool's trained neural network. Thanks to the spacer cells, the contours of the two back-to-back "E" polygons toward the center behave better from a manufacturability perspective. FIG. 51 shows a close-up of the spacer cells, and FIG. 52 shows a close-up of the manufactured wafer contours determined by the neural network in the vicinity of the spacer cells. Clearly, in this scenario, the outer contours can no longer short-circuit each other due to the large spacing between corresponding design features.
[0167] The user can interactively rework the inter-cell routing connecting cell instances, thus re-establishing full connectivity with the hotspot removed. As shown in Figure 44, the overall interactive hotspot correction flow, together with the architecture described with reference to Figures 17-21, is again made possible in a user interaction timeframe (sub-second editing and visualization cycles) through the use of a trained neural network for contour prediction, one per process condition of interest and their accompanying description, allowing for maximum concurrency and amortization of startup overhead.
[0168] Given the design of Figure 46, a designer may wish to try a different hotspot repair solution by simply interactively flipping the right edges of the two cell instances, as shown in Figure 53. Here, flipping the rightmost cell instance means that what were previously two back-to-back "E" shapes are effectively replaced with an "E" shape and a "C" shape, respectively (the "E" shape in the rightmost cell instance 4610 has been moved to the right edge of the diagram).
[0169] Figure 54 illustrates the immediate feedback on the resulting contours that editing tools provide in some embodiments. This feedback indicates that a simple self-rip of such a rightmost cell instance may be sufficient to resolve the problem without introducing extra space. The arrow in Figure 54 identifies the space between the "E" shape 5405 and the "C" shape 5410, which is larger than the space that exists between the back-to-back "E" shapes in Figures 45 and 48.
[0170] Figure 55 shows a close-up of the area between two cell instances in Figure 53, and Figure 56 shows a close-up of the corresponding contours in the area between the two cell instances. The arrows in Figure 56 indicate a clear separation of the outer contours between the rear "E" shape on the leftmost cell and the "C" shape on the rightmost cell. However, because the rightmost cell has been flipped, it is conceivable that a new hotspot may have been introduced between that cell and its right-most neighbor. Figure 57 shows how this can be quickly checked by zooming out the view to see the polygon of the rightmost neighbor. As shown in Figure 57, the cell boundary 5705 is fine in this example.
[0171] As described above, different embodiments use different types of machine-trained networks and train these networks differently. For example, as described above, the machine-trained network in some embodiments is a neural network. Some embodiments train a neural network to generate a predicted physical design layout from a current physical design layout by using many input data sets along with known output data sets to train the neural network's configurable parameters (e.g., weight values). In some embodiments, the input / output set is a portion of an IC design for a particular IC manufacturing process (e.g., an Xnm design), the input portion is a portion of the physical design generated by a physical design tool, and the output portion is a corresponding wafer simulation portion or circuit portion generated for the physical design portion. Some examples of such techniques were described above, for example, by reference to FIGS. 11H and 11I. Another more detailed example of such an technique will be described below by reference to FIG. 58.
[0172] Some embodiments put a machine-trained neural network through a learning process that accounts for (1) manufacturing variations in one or more manufacturing parameters (such as dose and depth of focus) and / or (2) neighborhood variations that account for different possible components adjacent to an input component pattern that is part of the input used for the learning process. To train the neural network, some embodiments feed each known input through the neural network to generate a predicted output, and then compare this predicted output with the known output for the input to identify a set of one or more error values. The error values for the group of known inputs / outputs are then used to calculate a loss function, which is then back-propagated through the neural network to train configurable parameters (e.g., weight values) of the neural network. Once trained by processing a large number of known inputs / outputs, the neural network can then be used to facilitate a compaction operation, for example, according to any of the operations described with reference to the above embodiments.
[0173] 58 shows a process 5800 that some embodiments use to generate training data for training one or more neural networks to generate multi-contour output shapes for input shapes of an IC design or portion of an IC design. The training data includes known input IC design portions and simulated output IC design portions generated by process 5800. This process is called a digital twin process because it simulates the manufacturing process and generates a predicted manufactured wafer shape that is a digital twin of the actual manufactured wafer shape.
[0174] Process 5800 first selects (at 5805) a portion of a sample physical design of an integrated circuit as an input pattern from which one or more predicted output patterns need to be generated. In some embodiments, process 5800 uses multiple different sample physical designs from which it extracts a sample input pattern at 5805. The extracted input pattern is a portion of a previously defined physical design that may or may not have been used to fabricate an IC on a substrate (such as a silicon wafer). This pattern may include manufacturable shapes of circuit components (such as logic gates, transistors, metal layers, and other items that need to be found in the physical design of an IC). The physical design may be a straight line, a piecewise straight line, a partial curve, or a full curve. Curved patterns (each having at least one curve segment) are very computationally intensive; therefore, being able to optimize the pattern by calculating the cumulative effect of variations from multiple manufacturing stages is invaluable for curved patterns.
[0175] In 5810, if applicable to the selected physical design input pattern, process 5800 generates several possible neighborhood patterns adjacent to the physical design input pattern selected in 5805. In some embodiments, the physical design pattern selected in 5810 may be used in one or more subsequent IC designs and may end up with different neighborhood patterns in these subsequent IC designs. Some embodiments synthesize neighborhood variations by using Monte Carlo techniques to enumerate several possible solutions.
[0176] In some embodiments, the physical design pattern selected in 5810, along with each of its synthesized neighborhood variations, represents a different input for which process 5800 generates a different output for the training process (also called the learning process) of the machine-trained network. In other embodiments, the selected physical design input is the only input data, and its neighborhood variations are used only to identify contour variations during subsequent simulation runs of process 5800.
[0177] One example where identifying such neighborhood variations is useful is when the input pattern is part of a standard cell design, and this standard cell design can be randomly placed in all possible neighborhoods it may ultimately end up in, i.e., surrounded by various neighboring cells that are likely to be surrounded in a subsequent circuit design. In some embodiments, the selected portion of the physical design pattern is an instance of the physical design pattern, and the generated neighborhood pattern includes the possible neighborhoods of this instance. Thus, an instance of the target cell is placed in its various legal orientations alongside various orientations of various neighboring cells, with instances of those various neighboring cells placed above / below, left or right, and with various offsets in placement. In some embodiments, the selected input pattern is the entire design of a standard cell design including several standard cells, and the possible neighborhoods include all legal orientations of the standard cells.
[0178] At 5815, the process performs a coloring operation that separates the input pattern (e.g., the pattern selected at 5805 or the pattern generated at 5810 for the selected pattern) into multiple mask layers. In the coloring operation, each feature of the input pattern on a reticle layer is colored to reflect the assignment of the feature to a particular mask layer. After the coloring operation, process 5800 performs (at 5820) an optical proximity correction (OPC) operation to generate one or more possible sets of mask designs, each set of mask designs corresponding to the input pattern selected at 5805 or the possible neighborhood generated at 5810.
[0179] For a selected input pattern, the generated mask design in some embodiments includes a nominal mask design with variations. In some embodiments, the possible mask designs generated in 5820 can be combined to create a nominal mask design with variations. Traditionally, a nominal mask design can be determined by using a nominal dose, such as 1.0, and calculating a nominal contour of the mask design with a threshold, such as 0.5. In some embodiments, the nominal contour of the mask design is calculated from several possible mask designs. Variations can be calculated for all possible neighborhoods generated in 5810.
[0180] In some embodiments, the OPC operation includes an ILT (inverse lithography technique) operation. In some embodiments, the ILT operation generates an ideal curved ILT pattern, while in other embodiments, the ILT operation straightens the curved pattern. The OPC features or ILT patterns for the same physical design pattern vary from neighborhood to neighborhood. Some embodiments calculate several possible sets of mask images from several possible mask designs in each of many possible neighborhoods. In some embodiments, a nominal mask design is calculated from the calculated OPC features or ILT patterns in many possible neighborhoods.
[0181] The process 5800 performs (at 5825) a mask simulation operation to generate mask data preparation (MDP), which prepares a mask design for a mask writer. In some embodiments, this operation includes "splitting" the data into trapezoids, rectangles, or triangles. This operation, in some embodiments, includes mask process correction (MPC), which geometrically modifies features and / or assigns dose to features to make the resulting features on the mask closer to the desired shape. MDP can use possible mask designs or MPC results as input. MPC can be performed as part of a fracturing or other MDP operation. Other corrections may also be performed as part of a fracturing or other MDP operation; possible corrections include forward scattering, resist diffusion, Coulomb effect, etching, back scattering, fogging, loading, resist charging, and EUV mid-range scattering. Pixel-level dose correction (PLDC) may be applied during the mask simulation operation. In other embodiments, a VSB (variable shaped beam) shot list or multi-beam exposure information can be generated to generate several possible mask images from the possible mask designs. In some embodiments, a set of VSB shots is generated for a calculated mask pattern in the plurality of calculated mask patterns. In some embodiments, MPC and / or MDP may be performed for the possible mask designs.
[0182] In some embodiments, the mask simulation operation calculates several possible mask images by using charged particle beam simulation. Effects that can be simulated include forward scattering, back scattering, resist diffusion, Coulomb effect, fogging, loading, and resist charging. In some embodiments, the mask simulation also includes a mask process simulation, in which the effects of various post-exposure processes are calculated. These post-exposure processes can include resist baking, resist development, and etching. When a charged particle beam simulation is performed on a mask on any given layer, the simulation can be performed over a range of process variations to establish a manufacturability profile for the mask itself. The profile can extend from a nominal profile, which can be based on patterns generated at a particular resist threshold, e.g., a threshold of 0.5. In some embodiments, a mask image with variations for display in the viewport is created by calculating a given percentage difference in exposure dose, e.g., + / - 10% dose variation. These variations include the upper and lower limits of a process variation band surrounding the nominal profile. In some embodiments, the positive and negative variations can be different from each other, e.g., +10% and -8%. Charged particle beam simulation and mask process simulation are performed separately.
[0183] After mask simulation, process 5800 performs (at 5830) a wafer simulation operation that calculates the potential IC pattern that results from using the generated mask. For the input pattern selected in 5805, the generated IC pattern represents an output pattern or a range of output patterns (if the generated shape has multiple contours to account for process and manufacturing parameter variations). The selected input pattern and the generated output pattern, in some embodiments, represent known inputs with known outputs that are used to train a machine-trained neural network. Once trained, the neural network can then be used during compaction to assist in the compaction operation in the manner described above.
[0184] In some embodiments, the wafer simulation operation (at 5830) includes a lithography simulation using the calculated mask images. The operation at 5830 calculates several possible patterns on the substrate from a plurality of mask images. In some embodiments, each pattern on the substrate corresponds to a set of manufacturing variation parameters. Calculating patterns from calculated mask images is described in U.S. Pat. No. 8,719,739, entitled "Method and System for Forming Patterns Using Charged Particle Beam Lithography," which is incorporated herein by reference.
[0185] Possible patterns on an IC can be combined to create a nominal IC pattern with variations. In some embodiments, sources of IC pattern variation may include some given variation in exposure (dose) combined with some given variation in depth of focus, such as + / - 10% in exposure and + / - 30 nm in depth of focus. In some embodiments, the positive and negative variations may be different from each other, such as + / - 5% / - 7% and 30 nm / - 28 nm. Traditionally, statistical methods are used to generate 3-sigma variations from a nominal contour. The variations include a lower 3-sigma limit that is smaller than the nominal contour relative to a minimum value and an upper 3-sigma limit that is larger than the nominal contour relative to a maximum value. Instead of calculating 3-sigma variations extending from the nominal contour, some embodiments create a mask image with variations by combining several mask images that include process variation bands with lower and upper limits.
[0186] In some embodiments, the pattern can be formed on the wafer using an optical lithography process that uses a mask image with variations. In some embodiments, the wafer simulation operation includes a wafer process simulation for the pattern. In some embodiments, the wafer process simulation includes simulation of resist baking, resist developing, and etching. In some embodiments, process 5800 performs the lithography simulation and the wafer process simulation as separate steps, optionally with each step accounting for process variations.
[0187] In some embodiments, process 5800 accounts for variations in different runs in a statistically cumulative manner, such that the process accounts for variations from previous runs in subsequent runs. In this way, patterns in subsequent runs incorporate variations in mask process and mask design as well as variations in determining possible patterns on the substrate.
[0188] After wafer simulation, process 5800, in some embodiments, calculates process variation bands from the possible patterns generated from the wafer simulation. To make the calculation of many possible combinations of variations more efficient, variations can be accumulated using insight into how specific variation and pattern parameters may affect each other. For example, rather than simply feeding minimum and maximum 3-sigma values from one step to the next, the worst-case variation fed to the next step can take into account the distance of one pattern from another. This is because features that are closer to each other affect each other more than features that are farther apart. Because of the impact these variations have on design performance and manufacturing reliability, it may be desirable to allow designers to visualize the impact of different variations in the context of the actual circuit design. Visualizing the effect of the statistical cumulative variation predicted on the substrate can be shown after calculating the variation bands or by visualizing the effect of different variations at each step.
[0189] At 5835, the process determines whether it has generated a sufficient number of known input and output patterns. If not, the process returns to 5805 to select another input pattern from the previously defined physical design and then repeats its operations 5810-5830 to generate a simulated output pattern for this input pattern. As described above, the selected input patterns and their corresponding generated output patterns represent known inputs with known outputs that, in some embodiments, are used to train the machine-trained neural network.
[0190] Calculating the pattern to be fabricated on a substrate by calculating several wafer simulation patterns from several calculated mask images calculated from several mask designs can take a significant amount of time. Therefore, some embodiments use process 5800 of Figure 58 to generate a large set of known input / output patterns, and then use these known input / output patterns to train (at 5840) a neural network so that the neural network can later be used to quickly generate predicted output patterns from input patterns examined during a compaction operation.
[0191] To train a neural network, some embodiments feed each known input through the neural network to generate a predicted output, and then compare this predicted output with the input's known output to identify a set of one or more error values. The error values for the group of known inputs / outputs are then used to calculate a loss function, which is then back-propagated through the neural network to train the neural network's configurable parameters (e.g., weight values). Once trained by processing a large number of known inputs / outputs, the neural network can be used to facilitate compaction operations.
[0192] In some embodiments, compaction tools perform some or all of their operations and define their designs in the pixel domain rather than the contour domain. This is because pixel-based designs are ideal for analysis by machine-trained networks, as these networks are often optimized to process pixel-based data sets rather than contour-based descriptions. Pixel-based designs also make it easier to represent and process curved shapes in a design. Thus, by expressing the results of compaction operations in the pixel domain rather than the contour domain, some embodiments make it much easier for compaction tools to use machine-trained networks to quickly process curved shapes in a design.
[0193] Similarly, to facilitate the creation of these masks, some embodiments use the pixel domain to perform the processing required to generate these masks, since a curved mask manipulated in the pixel domain takes the same amount of time as any Manhattan design. This processing is also often performed on a GPU in the pixel domain. GPUs are excellent single-instruction, multiple-data (SIMD) machines in the pixel domain because a single instruction stream can be applied uniformly to many pixels, making the vast capabilities of GPU processing power ideal for this type of pixel manipulation. Relying on a SIMD architecture can generate much higher computing throughput for processing physical designs and masks with curved shapes.
[0194] Contours (also called geometry) are typically represented as piecewise linear polygons, but may also be represented in infinite-resolution curve formats such as splines. Manipulating contours is the mathematical dual of manipulating pixel-based data, given a resolution limit. Mathematical duality means that, functionally, anything that can be done with one can be done with the other. However, when runtime performance or efficiency is considered, the computational behavior of one can be quite different from the other, given a particular precision of the result as a target.
[0195] In general, manipulating shapes that are mostly large rectangles is fast in the contour domain (i.e., the geometry domain), while manipulating shapes that are mostly polygons or curves and have a higher vertex density is fast in the pixel domain. In the pixel domain, pixel size is naturally defined by the resolution limit. Once the pixel size is defined, it does not matter whether the shapes being processed are curved or straight. Both computations are constant time. This is not the case for contour-based operations, since the computation time depends on the number of piecewise linear edge counts used to represent the contour. Also, given that much of this data processing is performed by high-powered GPUs, pixel-based analysis is preferable to contour-based analysis because GPUs are SIMD machines that excel in the pixel domain.
[0196] Many of the features and applications described above are implemented as a software process specified as a set of instructions recorded on a computer-readable storage medium (also referred to as a computer-readable medium). When these instructions are executed by one or more processing units (e.g., one or more processors, processor cores, or other processing units), the instructions cause the processing units 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. Computer-readable media does not include carrier waves and electronic signals passing over wireless or wired connections.
[0197] As used herein, the term "software" is meant to include firmware resident in read-only memory or applications stored on magnetic storage devices that can be loaded into memory for processing by a processor. Also, in some embodiments, multiple software inventions may be implemented as subparts of a larger program while remaining separate software inventions. In some embodiments, multiple software inventions may also be implemented as separate programs. Finally, any combination of separate programs that together implement a software invention described herein is within the scope of the present invention. In some embodiments, a software program, when installed to operate on one or more electronic systems, defines one or more specific machine implementations that execute and perform the operations of the software program.
[0198] 59 conceptually illustrates an electronic system 5900 in which some embodiments of the present invention may be implemented. The electronic system 5900 may be a computer (e.g., a desktop computer, a personal computer, a tablet computer, a server computer, a mainframe, a blade computer, etc.), a phone, a PDA, or any other type of electronic device. As shown, the electronic system includes various types of computer-readable media and interfaces for various other types of computer-readable media. Specifically, the electronic system 5900 includes a bus 5905, a processing unit 5910, a system memory 5925, a read-only memory 5930, a permanent storage device 5935, input devices 5940, and output devices 5945.
[0199] Bus 5905 collectively represents all system, peripheral, and chipset buses that communicatively connect the various internal devices of electronic system 5900. For example, bus 5905 communicatively connects processing unit 5910 to read-only memory (ROM) 5930, system memory 5925, and permanent storage device 5935. From these various memory units, processing unit 5910 retrieves instructions to execute and data to process in order to perform the processes of the present invention. The processing unit may be a single processor or a multi-core processor in different embodiments.
[0200] The ROM 5930 stores static data and instructions needed by the processing unit 5910 and other modules of the electronic system, while the permanent storage device 5935 is a read-write memory device. This device is a non-volatile memory unit that stores instructions and data even when the electronic system 5900 is turned 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 5935.
[0201] In other embodiments, a removable storage device (such as a floppy disk or flash drive) is used as the permanent storage device. Like the permanent storage device 5935, the system memory 5925 is a read-write memory device. However, unlike the storage device 5935, the system memory is a volatile read-write memory, such as a random access memory. The system memory stores some of the instructions and data that the processor needs at runtime. In some embodiments, the processes of the present invention are stored in the system memory 5925, the permanent storage device 5935, and / or the read-only memory 5930. From these various memory units, the processing unit 5910 retrieves instructions to execute and data to process in order to perform the processes of some embodiments.
[0202] The bus 5905 also connects to input devices 5940 and output devices 5945. The input devices allow a user to communicate information and select commands to the electronic system. The input devices 5940 include alphanumeric keyboards and pointing devices (also called "cursor control devices"). The output devices 5945 display images generated by the electronic system. Output devices include printers and display devices such as cathode ray tubes (CRT) or liquid crystal displays (LCD). Some embodiments include devices such as touch screens that function as both input and output devices.
[0203] 59, the bus 5905 also couples the electronic system 5900 to a network 5965 via a network adapter (not shown). As such, the computer can be part of a network such as a network of computers (such as a local area network (LAN), a wide area network (WAN), or an intranet), or the Internet. Any or all of the components of the electronic system 5900 may be used in conjunction with the present invention.
[0204] Some embodiments include electronic components such as a microprocessor, storage, and memory that store computer program instructions on a machine-readable or computer-readable medium (alternatively referred to as a computer-readable storage medium, machine-readable medium, or machine-readable storage medium). Some examples of such computer-readable media include RAM, ROM, read-only compact discs (CD-ROMs), recordable compact discs (CD-Rs), rewritable compact discs (CD-RWs), read-only digital versatile discs (e.g., DVD-ROMs, dual-layer DVD-ROMs), various recordable / rewritable DVDs (e.g., DVD-RAMs, DVD-RWs, DVD+RWs, etc.), flash memory (e.g., SD cards, miniSD cards, microSD cards, etc.), magnetic and / or solid-state hard drives, read-only and recordable Blu-Ray® discs, ultra-high density optical discs, any other optical or magnetic media, and floppy disks. The computer-readable medium can store a computer program executable by at least one processing unit and including sets of instructions for performing various operations. Examples of computer programs or computer code include machine code, such as produced by a compiler, and files containing higher-level code that are executed by a computer, electronic component, or microprocessor using an interpreter.
[0205] Although the above description primarily refers to microprocessors or multi-core processors executing 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 stored on the circuit itself.
[0206] As used herein, the terms "computer," "server," "processor," and "memory" all refer to electronic or other technological devices. These terms exclude people or groups of people. For purposes of this specification, the terms display or display mean display on an electronic device. As used herein, the terms "computer-readable mediums," "computer-readable medium," and "machine-readable medium" are strictly limited 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 transient or transitory signals.
[0207] While the present invention has been described with reference to numerous specific details, those skilled in the art will recognize that the present invention may be embodied in other specific forms without departing from the spirit of the invention. For example, some figures conceptually illustrate processes. Certain operations of these processes may not be performed in the exact order shown and described. Certain operations may not be performed in one continuous series of operations, and different specific operations may be performed in different embodiments. Furthermore, processes may be implemented using several sub-processes or as part of a larger macroprocess. Accordingly, those skilled in the art will appreciate that the present invention should not be limited by the foregoing illustrative details, but rather should be defined by the appended claims.
Claims
1. A method for editing an integrated circuit (IC) design layout, receiving a design layout generated by a first set of design editing operations, the design layout including a plurality of components; using a machine trained network to generate a plurality of contours for each component representing a plurality of predicted manufacturing shapes of the component, the plurality of contours for each component including a first contour representing a first predicted shape of the component for a first variation of a manufacturing process parameter and a second contour representing a second predicted shape of the component for a second variation of the manufacturing process parameter, the manufacturing process parameters being associated with a manufacturing process that will be used to fabricate an IC from the design layout; using the generated first and second contours representing the first and second predicted shapes of at least one particular component to perform a second set of design editing operations; A method comprising:
2. 10. The method of claim 1, wherein using the machine-trained network includes using the machine-trained network to generate a set of images representing the design layout after the manufacturing process has been performed using the design layout, the manufacturing process portion of an overall process being used to manufacture a semiconductor die based on the design layout.
3. The method of claim 2 , further comprising performing image analysis on the set of images generated by the machine-trained network to generate the plurality of contours.
4. The method of claim 1 , wherein the machine-trained network is a neural network.
5. 10. The method of claim 1, wherein the machine-trained network serves as a digital twin of the manufacturing process used to produce semiconductor die based on the design layout, and the manufacturing process parameters are parameters associated with the manufacturing process.
6. 6. The method of claim 5, wherein the design layout is a first design layout and the machine-trained network generates a second design layout that is a digital twin of a design generated after performing the manufacturing process on the first design layout.
7. The method of claim 1 , wherein the manufacturing process is a mask making process, and the manufacturing process parameter relates to a dose used during the mask making process.
8. 2. The method of claim 1, wherein the manufacturing process is a wafer simulation process, and the manufacturing process parameter relates to at least one of a depth of focus and an exposure intensity used during the wafer simulation process.
9. The method described in claim 1, wherein the first contour is associated with a maximum variation of the manufacturing process parameter and the second contour is associated with a minimum variation of the manufacturing process parameter.
10. The method of claim 9 , wherein the plurality of contours for each component further includes a third contour associated with a nominal variation of the manufacturing process parameter.
11. The method described in claim 1, wherein the first contour is related to the maximum variation of the manufacturing process parameter and the second contour is related to the nominal variation of the manufacturing process parameter.
12. The method of claim 1 , further comprising generating a display that overlays the plurality of contours for each component along with the component on the design layout.
13. The method of claim 1 , wherein the first set and the second set of design edit operations are compaction operations.
14. The method of claim 1 , wherein the first set and the second set of design editing operations are routing operations.
15. The method of claim 1 , wherein the predicted shape comprises a shape of the component after a wafer simulation operation.
16. 2. The method of claim 1, wherein the predicted shape comprises a shape of the component after the IC is manufactured using the design layout.
Citation Information
Patent Citations
Apparatus for estimating shape of figure pattern
JP2019114295A
Accelerated Training of Machine Learning-Based Models for Semiconductor Applications
JP2019508789A
Design layout pattern proximity effect correction using edge placement error prediction
JP2020520096A
Method for determining a pattern in a patterning process
JP2022524970A
Semiconductor fabrication design rule loophole checking for design for manufacturability optimization
US20190072846A1