Deterministic System for Device Layout Optimization
Systems, methods, and devices are described herein for a deterministic approach that includes receiving an original layout of a semiconductor device that has a number of layers. A violation of a first design rule associated with a first layer of the number of layers is identified. A design rule compilation includes a plurality of design rules associated with each layer of the number of layers. A plurality of derived layers are generated based upon the plurality of design rules. Each derived layer of the plurality of derived layers includes one or more layers of the number of layers of the semiconductor device in which a physical movement to one layer impacts another layer. A forbidden region associated with a second layer of the plurality of layers is designated. A new layout of the number of layers having oriented differently than the original layout is generated such that no layer protrudes within the forbidden region.
The present application claims priority to U.S. Application No. 62/887,008, filed Aug. 15, 2019, the contents of which is incorporated by reference herein in its entirety.
FIELDThe technology described in this disclosure relates generally to electronic systems and more particularly integrated device layout optimization using a deterministic system.
BACKGROUNDIntegrated circuits (ICs) are manufactured using a number of machines and/or automated manufacturing processes. IC layouts define the design of the IC. At times, a designed IC may not comply with the design requirements. Checking or validating that the designed IC layout complies with design requirements can help avoid manufacturing and/or operational issues. The more intricate of a design, the more difficult it becomes to validate the designed IC layout. Additionally, fixing one design rule violation may induce one or more different violations.
Aspects of the present disclosure are best understood from the following detailed description when read with the accompanying figures. It is noted that, in accordance with the standard practice in the industry, various features are not drawn to scale. In fact, the dimensions of the various features may be arbitrarily increased or reduced for clarity of discussion.
The following disclosure provides many different embodiments, or examples, for implementing different features of the provided subject matter. Specific examples of components and arrangements are described below to simplify the present disclosure. These are, of course, merely examples and are not intended to be limiting. For example, the formation of a first feature over or on a second feature in the description that follows may include embodiments in which the first and second features are formed in direct contact, and may also include embodiments in which additional features may be formed between the first and second features, such that the first and second features may not be in direct contact. In addition, the present disclosure may repeat reference numerals and/or letters in the various examples. This repetition is for the purpose of simplicity and clarity and does not in itself dictate a relationship between the various embodiments and/or configurations discussed.
An electronic device layout design, such as an IC layout design, must comply with a number of design rules in order to ensure the design can be manufactured in accordance with its corresponding design. A design rule check (DRC) deck is used to verify IC layout designs. If a layout design is found to be in violation of any rules within the DRC deck, the layout design is modified accordingly to correct such violation.
Analyzing and fixing device layout designs using a heuristic method is an iterative process that can be time consuming and wrought with human error. Using a heuristic approach, a device layout is analyzed in view of a number of design requirements. Design rule requirements can be defined by design rule manual (DRM) translated into the DRC deck or programming code. Any violation of the requirements with the DRC deck is identified and manually corrected by a layout engineer through moving one or more components of the circuit. Identifying and correction of design rule violations using such an approach can require a number of iterations. Correction of one violation can also lead to a new violation as a result of modifying placement of components within the circuit.
A deterministic approach as described herein includes receiving an original layout of a semiconductor device that has a number of layers. In some cases, there may be one or more design rule violations with the layout. Using a deterministic approach, an extractor program can perform design rule requirement tracing, using the DRC deck, to identify layers of the circuit that are related to each other and generate a layer and rule relation tree. The layer and rule relation tree includes a number of derived layers, each of which identified related layers of the circuit. Each of the derived layers are designated as being modifiable or fastened. Modifiable layers can be moved in order to correct the violation whereas fastened layers are not moved to correct the violation. A forbidden region is designated associated with the fastened layers in order to prevent additional rule violations. The modifiable layers are moved accordingly within the layout to correct the violation, while ensuring that no layer encroaches upon the forbidden region. The new layout generated by moving the modifiable layers corrects any violations of the original layout and ensures no further violations occur with the new layout.
With one or more violations identified, a deterministic model analyzes the various drawing layers impacted by the violation and a layer and rule relation tree, at 120. All rules relating to any impacted layer of the device are considered for fixing. This includes any rule relating to a layer that could be impacted by the physical movement of another layer. A layer and rule relation tree is extracted, as described in more detail in
The rule constraints identified in the extracted layer relation tree 400 are then converted using a translator to environmental layers of a graph tree.
Device layouts 600, 610, 620 can be layouts automatically proposed by the deterministic model to an end user. Alternatively, device layouts 600, 610, 620 can be layout automatically generated by the deterministic model. In each of device layouts 600, 610, 620 any moved layers no longer violate rule #10 or any other rule designated within the DRM or DRC deck. The certain distance in which any modifiable layer is moved can be determined by detecting how much distance is required to fix the rule violation. For example, if rule #10 requires a horizontal distance between drawing layer L10 206 and drawing layer L3 204 of approximately 0.05 um and the horizontal distance 212 is 0.04 um, then horizontal distance 212 needs to increase by 0.01 um to fix the rule violation. The drawings layers and/or derived layers can be moved accordingly so as to account for the violation as described in
In one example, a disk controller 1248 can interface one or more optional disk drives to the system bus 1204. These disk drives can be external or internal floppy disk drives such as 1260, external or internal CD-ROM, CD-R, CD-RW or DVD, or solid state drives such as 1252, or external or internal hard drives 1256. As indicated previously, these various disk drives 1252, 1256, 1260 and disk controllers are optional devices. The system bus 1204 can also include at least one communication port 1220 to allow for communication with external devices either physically connected to the computing system or available externally through a wired or wireless network. In some cases, the communication port 1220 includes or otherwise comprises a network interface.
To provide for interaction with a user, the subject matter described herein can be implemented on a computing device having a display device 1240 (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information obtained from the bus 1204 to the user and an input device 1232 such as keyboard and/or a pointing device (e.g., a mouse or a trackball) and/or a touchscreen by which the user can provide input to the computer. Other kinds of input devices 1232 can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback by way of a microphone 1236, or tactile feedback); and input from the user can be received in any form, including acoustic, speech, or tactile input. In the input device 1232 and the microphone 1236 can be coupled to and convey information via the bus 1204 by way of an input device interface 1228. Other computing devices, such as dedicated servers, can omit one or more of the display 1240 and display interface 1214, the input device 1232, the microphone 1236, and input device interface 1228.
Additionally, the methods and systems described herein may be implemented on many different types of processing devices by program code comprising program instructions that are executable by the device processing subsystem. The software program instructions may include source code, object code, machine code, or any other stored data that is operable to cause a processing system to perform the methods and operations described herein and may be provided in any suitable language such as C, C++, JAVA, for example, or any other suitable programming language. Other implementations may also be used, however, such as firmware or even appropriately designed hardware configured to carry out the methods and systems described herein.
The systems' and methods' data (e.g., associations, mappings, data input, data output, intermediate data results, final data results, etc.) may be stored and implemented in one or more different types of computer-implemented data stores, such as different types of storage devices and programming constructs (e.g., RAM, ROM, Flash memory, flat files, databases, programming data structures, programming variables, IF-THEN (or similar type) statement constructs, etc.). It is noted that data structures describe formats for use in organizing and storing data in databases, programs, memory, or other computer-readable media for use by a computer program.
The computer components, software modules, functions, data stores and data structures described herein may be connected directly or indirectly to each other in order to allow the flow of data needed for their operations. It is also noted that a module or processor includes but is not limited to a unit of code that performs a software operation, and can be implemented for example as a subroutine unit of code, or as a software function unit of code, or as an object (as in an object-oriented paradigm), or as an applet, or in a computer script language, or as another type of computer code. The software components and/or functionality may be located on a single computer or distributed across multiple computers depending upon the situation at hand.
Use of the various circuits and configurations as described herein can provide a number of advantages. For example, by using the deterministic approach described herein, automatic fixing of rule violations induced by device layout designs without inducing new violations. The existing DRC deck can be relied upon to check device layout designs so as to avoid inducing error in translation of this DRC deck. Minimal to no violation check and/or design iterations are required when using the deterministic approach described herein. Any rule violations are addressed with as little as one iteration. Such an approach provides a systematic way for design impact assessments within strict design rule requirements. Additionally, the approach described herein
In one embodiment, a method includes receiving an original layout of a semiconductor device includes a plurality of layers. A violation of a first design rule associated with a first layer of the plurality of layers is identified. A design rule compilation includes a plurality of design rules associated with each layer of the plurality of layers. A plurality of derived layers are generated based upon the plurality of design rules. Each derived layer includes one or more layers of the semiconductor device in which physical movement to one layer impacts another layer. A forbidden region associated with a second layer of the plurality of layers is designated. A proposed layout is generated identifying fixes for orientation of the plurality of layers different from the original layout. No layer within the proposed layout protrudes within the forbidden region.
In another embodiment, a system includes one or more data processors and memory storing instructions stored on one or more data processors which when executed result in operations including receiving a layout of a semiconductor device comprising a plurality of layers. The layout includes a violation of a first design rule associated with a first layer of the plurality of layers. A plurality of derived layers are generated based upon a plurality of design rules of a design rule compilation associated the plurality of layers. Each derived layer includes one or more layers of the semiconductor device in which physical movement to one layer impacts another layer. A forbidden region associated with a second layer of the plurality of layers is designated. A proposed layout identifying new orientations of some of the plurality of layers different from the layout is generated. No layer within the proposed layout protrudes within the forbidden region.
In yet another embodiment, a method includes receiving an original layout of a semiconductor device comprising a plurality of layers. A violation of a first design rule associated with a first layer of the plurality of layers is identified. A design rule compilation includes a plurality of design rules associated with each layer of the plurality of layers. A plurality of derived layers are generated based upon the plurality of design rules, wherein each derived layer comprises one or more layers of the semiconductor device in which physical movement to one layer impacts another layer. A forbidden region associated with a second layer of the plurality of layers is designated. A new layout is automatically generated identifying fixes for orientation of the plurality of layers different from the original layout, wherein (i) no layer within the proposed layout protrudes within the forbidden region and (ii) components of the new layout collectively consume an area less than an area consumed by the components in the original layout.
The foregoing outlines features of several embodiments so that those skilled in the art may better understand the aspects of the present disclosure. Those skilled in the art should appreciate that they may readily use the present disclosure as a basis for designing or modifying other processes and structures for carrying out the same purposes and/or achieving the same advantages of the embodiments introduced herein. Those skilled in the art should also realize that such equivalent constructions do not depart from the spirit and scope of the present disclosure, and that they may make various changes, substitutions, and alterations herein without departing from the spirit and scope of the present disclosure.
Claims
1. A method comprising:
- receiving an original layout of a semiconductor device comprising a plurality of layers;
- identifying a violation of a first design rule associated with a first layer of the plurality of layers, wherein a design rule compilation comprises a plurality of design rules associated with each layer of the plurality of layers;
- generating a plurality of derived layers based upon the plurality of design rules, wherein each derived layer of the plurality of derived layers comprises one or more layers of the plurality of layers of the semiconductor device in which a physical movement to one layer impacts another layer;
- designating a forbidden region associated with a second layer of the plurality of layers; and
- generating a proposed layout identifying fixes for orientations of the plurality of layers different from the original layout, wherein no layer within the proposed layout protrudes within the forbidden region.
2. The method of claim 1, further comprising:
- extracting a relation tree comprising the plurality of derived layers; and
- designating each layer of the plurality of layers as either a fastened layer or a modifiable layer based on the relation tree, wherein the fastened layer remains physically unmodified within the proposed layout and the modifiable layer is subjected to modification within the proposed layout.
3. The method of claim 2, wherein each forbidden region surrounds or is adjacent to a corresponding fastened layer.
4. The method of claim 2, wherein the first layer is a modifiable layer.
5. The method of claim 1, further comprising generating a new layout based on the proposed layout, the new layout of the plurality of layers having oriented differently than the original layout, wherein no layer of the new layout protrudes within the forbidden region.
6. The method of claim 1, wherein the generating of the plurality of derived layers comprises:
- identifying a second layer impacted by the first design rule, wherein a physical movement of the first layer to correct the violation causes another violation of a second design rule associated with the second layer; and
- grouping together the first layer and the second layer into a first derived layer.
7. The method of claim 1, wherein the design rule compilation comprises at least one of a design rule manual or a design rule check program.
8. A system comprising:
- one or more data processors;
- memory storing instructions stored on one or more data processors which, when executed, result in performed operations comprising: receiving a layout of a semiconductor device comprising a plurality of layers, wherein the layout comprises a violation of a first design rule associated with a first layer of the plurality of layers; generating a plurality of derived layers based upon a plurality of design rules of a design rule compilation associated the plurality of layers, wherein each derived layer of the plurality of derived layers comprises one or more layers of the plurality of layers of the semiconductor device in which a physical movement to one layer impacts another layer; designating a forbidden region associated with a second layer of the plurality of layers; and generating a proposed layout identifying new orientations of some layers of the plurality of layers different from the layout, wherein no layer within the proposed layout protrudes within the forbidden region.
9. The system of claim 8, wherein the operations further comprise:
- extracting a relation tree comprising the plurality of derived layers; and
- designating each layer of the plurality of layers as either a fastened layer or a modifiable layer based on the relation tree, wherein the fastened layer remains physically unmodified within the proposed layout and the modifiable layer is subjected to modification within the proposed layout.
10. The system of claim 9, wherein each forbidden region surrounds or is adjacent to a corresponding fastened layer.
11. The system of claim 9, wherein the first layer is a modifiable layer.
12. The system of claim 8, wherein the operations further comprise generating a new layout based on the proposed layout, the new layout ha of the plurality of layers having oriented differently than the layout, wherein no layer of the new layout protrudes within the forbidden region.
13. The method of system 8, wherein the generating of the plurality of derived layers comprises:
- identifying a second layer impacted by the first design rule, wherein a physical movement of the first layer to correct the violation causes another violation of a second design rule associated with the second layer; and
- grouping together the first layer and the second layer into a first derived layer.
14. The system of claim 8, wherein the design rule compilation comprises at least one of a design rule manual or a design rule check program.
15. A method comprising:
- receiving an original layout of a semiconductor device comprising (i) a plurality of layers and (ii) a violation of a first design rule associated with a first layer of the plurality of layers, wherein a design rule compilation comprises a plurality of design rules associated with each layer of the plurality of layers;
- generating a plurality of derived layers based upon the plurality of design rules, wherein each derived layer of the plurality of derived layers comprises one or more layers of the plurality of layers of the semiconductor device in which a physical movement to one layer impacts another layer;
- designating a forbidden region associated with a second layer of the plurality of layers, the forbidden region defining an area in which physical movements of the plurality of layers cannot intrude; and
- automatically generating a new layout having layer orientations that are different from the original layout, wherein (i) no layer within a proposed layout protrudes within the forbidden region and (ii) layers of the new layout collectively consume an area less than an area consumed by the layers in the original layout.
16. The method of claim 15, further comprising:
- extracting a relation tree comprising the plurality of derived layers; and
- designating each layer of the plurality of layers as either a fastened layer or a modifiable layer based on the relation tree, wherein the fastened layer remains physically unmodified within the proposed layout and the modifiable layer is subjected to modification within the proposed layout.
17. The method of claim 16, wherein each forbidden region surrounds or is adjacent to a corresponding fastened layer.
18. The method of claim 16, wherein the first layer is a modifiable layer.
19. The method of claim 15, wherein the generating of the plurality of derived layers comprises:
- identifying a second layer impacted by the first design rule, wherein a physical movement of the first layer to correct the violation causes another violation of a second design rule associated with the second layer; and
- grouping together the first layer and the second layer into a first derived layer.
20. The method of claim 16, wherein the design rule compilation comprises at least one of a design rule manual or a design rule check program.
Type: Application
Filed: Nov 8, 2019
Publication Date: Feb 18, 2021
Inventors: Chin-Chang Hsu (New Taipei City), Rachid Salik (Sunnyvale, CA), Chien-Te Wu (Hsinchu)
Application Number: 16/677,871