An integrated circuit (IC) generally includes a plurality of semiconductor devices represented in an IC layout diagram. The IC layout diagram is generated from an IC schematic, for example, an electrical diagram of the IC. At various steps during the IC design process, from the IC schematic to the IC layout diagram for actual manufacture of the IC, various checking and testing are performed to make sure that the IC can be made and will function as designed.
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.
The terms used in this specification generally have their ordinary meanings in the art and in the specific context where each term is used. The use of examples in this specification, including examples of any terms discussed herein, is illustrative only, and in no way limits the scope and meaning of the disclosure or of any exemplified term. Likewise, the present disclosure is not limited to various embodiments given in this specification.
Reference is now made to
In some embodiments, the EDA system 100 is a general purpose computing device including a processor 102 and a non-transitory computer-readable storage medium 104. The non-transitory computer-readable storage medium 104, amongst other things, is encoded with, i.e., stores, computer program code 106, i.e., a set of executable instructions. Execution of instructions 106 by the processor 102 is regard as an EDA tool which implements a portion or all of, i.e., the methods described herein in accordance with some embodiments (hereinafter, the noted processes and/or methods).
The processor 102 is electrically coupled to the computer-readable storage medium 104 via a bus 108. The processor 102 is also electrically coupled to an I/O interface 110 by the bus 108. A network interface 112 is electrically connected to the processor 102 through the bus 108. The network interface 112 is connected to network 114, so that the processor 102 and the computer-readable storage medium 104 are capable of connecting to external elements through the network 114. The processor 102 is configured to execute the instructions 106 encoded in the computer-readable storage medium 104 in order to cause the EDA system 100 to perform a portion or all of the noted processes and/or methods. In some embodiments, the processor 102 is a central processing unit (CPU), a multi-processor, a distributed processing system, an application specific integrated circuit (ASIC), and/or a suitable processing unit.
In some embodiments, the computer-readable storage medium 104 is an electronic, a magnetic, an optical, an electromagnetic, an infrared, and/or a semiconductor system (or apparatus or device). For example, the computer-readable storage medium 104 includes a semiconductor or solid-state memory, a magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk, and/or an optical disk. In some embodiments, when using optical disks, the computer-readable storage medium 104 includes a compact disk-read only memory (CD-ROM), a compact disk-read/write (CD-R/W), and/or a digital video disc (DVD).
In some embodiments, the computer-readable storage medium 104 stores the instructions 106 for causing the EDA system 100 (where such execution represents (at least in part) the EDA tool) to perform a part or all of the noted processes and/or methods. In some embodiments, the computer-readable storage medium 104 also stores information which facilitates performing a part or all of the noted processes and/or methods. In some embodiments, the computer-readable storage medium 104 stores a library 107 of standard cells.
The EDA system 100 includes an I/O interface 110. In some embodiments, the I/O interface 110 includes an input device, an output device and/or a combined input/output device for enabling a user and/or external circuitry/equipment to interact with the EDA system 100. An input device includes, for example, a keyboard, a keypad, a mouse, a trackball, a trackpad, a touchscreen, and/or a cursor direction keys for communicating information and commands to the processor 102. An output device includes, for example, a display, a printer, a voice synthesizer, etc. for communicating information to a user.
The EDA system 100 also includes a network interface 112 coupled to the processor 102. The network interface 112 allows the EDA system 100 to communicate with a network 114, to which one or more other computer systems are connected. The network interface 112 includes wireless network interfaces such as BLUETOOTH, WIFI, WIMAX, GPRS, or WCDMA; or wired network interfaces such as ETHERNET, USB, or IEEE-1364. In some embodiments, a part or all of noted processes and/or methods, is implemented in two or more EDA systems 100.
The EDA system 100 is configured to receive information through the I/O interface 110. The information received through I/O interface 110 includes one or more of instructions, data, design rules, libraries of standard cells, and/or other parameters for processing by the processor 102. The information is transferred to the processor 102 via the bus 108. The EDA system 100 is configured to output to and/or receive information from a user through a user interface (UI). The UI includes the I/O interface 110 and information related to UI stored in the computer-readable medium 104 as UI information 142.
In some embodiments, the computer-readable storage medium 104 is also encoded with instructions 106 for interfacing with fabrication tools 120 including, for example, manufacturing equipments, chambers, or the like. For illustration, the fabrication tools 120 are configured for producing IC, in some embodiments, based on layouts.
In some embodiments, the fabrication tools 120 perform various semiconductor processes including, for example, generating photomasks based on layouts, fabricating using the photomasks, etching, deposition, implantation, and annealing. The fabrication tools 120 include, for example, photolithography steppers, etch tools, deposition tools, polishing tools, rapid thermal anneal tools, ion implantation tools, and the like. Each fabrication tool 120 modifies the wafer according to a particular operating recipe. For illustration, one fabrication tool 120 is configured to deposit a film having a certain thickness on a wafer, and another fabrication tool 120 is configured to etch away a layer from a wafer. Furthermore, in some embodiments, the fabrication tools 120 of the same type are designed to perform the same type of process.
In some embodiments, a part or all of the noted processes and/or methods is implemented as a standalone software application for execution by a processor. In some embodiments, a part or all of the noted processes and/or methods is implemented as a software application that is a part of an additional software application. In some embodiments, a part or all of the noted processes and/or methods is implemented as a plug-in to a software application. In some embodiments, at least one of the noted processes and/or methods is implemented as a software application that is a part of an EDA tool. In some embodiments, a part or all of the noted processes and/or methods is implemented as a software application that is used by the EDA system 100. In some embodiments, a layout diagram which includes standard cells is generated using a tool such as VIRTUOSO® available from CADENCE DESIGN SYSTEMS, Inc., or another suitable layout generating tool.
In some embodiments, the processes are realized as functions of a program stored in a non-transitory computer readable recording medium. Examples of a non-transitory computer readable recording medium include, but are not limited to, external/removable and/or internal/built-in storage or memory unit, i.e., one or more of an optical disk, such as a DVD, a magnetic disk, such as a hard disk, a semiconductor memory, such as a ROM, a RAM, a memory card, and the like. In some embodiments, the terms “comprise,” “comprising,” “include,” “including,” “has,” “having,” etc. used in this specification are open-ended and mean “comprises but not limited”.
In some embodiments, a netlist of an integrated circuits (IC) is able to be stored in the computer-readable storage medium 104 as illustratively shown in
For understanding the operation 220 in
As illustratively shown in
Reference is now made to
Reference is now made to
Reference is now made to
As illustratively shown in
In operation 420, the processor 102 in
As illustratively shown in
In operation 440, the processor 102 in
For understanding the parameters associated with the parameterized cells in the netlist of the IC, reference is now made to
As illustratively shown in
In some embodiments, the elements in the circuit 500 are parameterized cell (PCell). PCell is more flexible than non-parameterized cell because different implementations have different parameters, and different structures in the circuit are therefore generated. For example, rather than having many different cell definitions to represent variously sized transistors in a given design, a PCell takes dimensions (i.e., width and length) of a transistor as parameters. Different implementations of a PCell therefore represent transistors with different sizes. Hence, the design of the circuit 500 in the netlist of the IC is able to be adjusted easily by adopting PCells.
As illustratively shown in
As illustratively shown in
As illustratively shown in
As illustratively shown in
In order to let the semiconductor structure as illustratively shown in
As illustratively shown in
Since the layouts of the semiconductor structures of the circuits in the netlists of the ICs as shown in
As illustratively shown in
Subsequently, an operation 1640 is performed to sweep the initial PCell parameters, and an operation 1650 is performed to sweep the CKT netlist. The swept PCell parameters and the swept CKT netlist change the performance of the circuit in the netlist of the IC, and an operation 1660 is therefore performed to do a Power, Performance, and Area (PPA) comparison for finding out whether the swept PCell parameters or the swept CKT netlist still conform the performance requirements. In some embodiments, the operation 1660 is to compare the performance of the swept PCell parameters or the swept CKT netlist with a predetermined performance. If the performance of the swept PCell parameters or the swept CKT netlist is higher than the predetermined performance, the swept PCell parameters or the swept CKT netlist conform the performance requirements.
Thereafter, the swept PCell parameters or the swept CKT netlist which conform the performance requirements is able to be found. It is noted that the above-mentioned operations are performed several times, and a plurality of the swept PCell parameters or the swept CKT netlist which conform the performance requirements are found. The operation 1660 is performed to further find out the best PCell parameters or the best CKT netlist among the swept PCell parameters and the swept CKT netlist which conform the performance requirements. The best PCell parameters or the best CKT netlist are regard as optimal PCell parameters, and an operation 1670 is performed to annotate the best PCell parameters or the best CKT netlist to be the optimal PCell parameters. Subsequently, an operation 1680 is performed to restructure the PCells according to the optimal PCell parameters which are annotated. An operation 1690 is performed to update the schematic. The updated schematic is then feedback to the operation 210 as illustratively shown in
Also disclosed is a method. The method includes: adjusting first parameters associated with parameterized cells in a netlist of an integrated circuit (IC) to generate second parameters associated with the parameterized cells in the netlist of the IC; updating the netlist of the IC according to the second parameters; and performing a simulation according to the netlist.
In some embodiments, updating the netlist of the IC according to the second parameters includes: updating at least one element of a circuit in the netlist of the IC.
In various embodiments, updating the netlist of the IC according to the second parameters includes: updating parameters of a circuit in the netlist of the IC.
In some embodiments, the method further includes: obtaining a layout dependence effect according to the netlist which is adjusted, wherein updating the netlist of the IC according to the second parameters includes: updating the netlist of the IC according to the second parameters and the layout dependence effect.
In some embodiments, updating the netlist of the IC according to the second parameters includes: comparing a performance of the netlist of the IC with a predetermined performance; and if the performance of the netlist of the IC is higher than the predetermined performance, updating the netlist of the IC according to the second parameters.
In various embodiments, performing the simulation according to the netlist includes: performing the simulation according to the netlist whose performance is higher than the predetermined performance.
In some embodiments, the method further includes: generating a layout based on the simulation; and based on the layout, fabricating at least one component in a semiconductor device.
Also disclosed is a method. The method includes: providing, by an electronic design automation (EDA), a trigger signal to an application programming interface (API); providing, by the API, first parameters associated with parameterized cells in a netlist of an integrated circuit (IC); adjusting, by the API, the first parameters to generate second parameters associated with the parameterized cells in the netlist of the IC; updating, by the API, the netlist of the IC according to the second parameters; and performing, by the EDA, a simulation according to the netlist.
In some embodiments, updating, by the API, the netlist of the IC according to the second parameters includes: updating, by the API, at least one element of a circuit in the netlist of the IC.
In various embodiments, updating, by the API, the netlist of the IC according to the second parameters includes: updating, by the API, parameters of a circuit in the netlist of the IC.
In some embodiments, the method further includes: obtaining, by the API, a layout dependence effect according to the netlist which is adjusted.
In various embodiments, updating, by the API, the netlist of the IC according to the second parameters includes: updating, by the API, the netlist of the IC according to the second parameters and the layout dependence effect.
In some embodiments, updating, by the API, the netlist of the IC according to the second parameters includes: comparing, by the API, a performance of the netlist of the IC with a predetermined performance; and if the performance of the netlist of the IC is higher than the predetermined performance, updating, by the API, the netlist of the IC according to the second parameters.
In various embodiments, performing, by the EDA, the simulation according to the netlist includes: performing, by the EDA, the simulation according to the netlist whose performance is higher than the predetermined performance.
Also disclosed is a non-transitory computer readable medium. The non-transitory computer readable medium including computer executable instructions for carrying out a method. The method includes: adjusting first parameters associated with parameterized cells in a netlist of an integrated circuit (IC) to generate second parameters associated with the parameterized cells in the netlist of the IC; updating the netlist of the IC according to the second parameters; and performing a simulation according to the netlist.
In some embodiments, updating the netlist of the IC according to the second parameters includes: updating at least one element of a circuit in the netlist of the IC.
In various embodiments, updating the netlist of the IC according to the second parameters includes: updating parameters of a circuit in the netlist of the IC.
In some embodiments, the method further includes: obtaining a layout dependence effect according to the netlist which is adjusted.
In various embodiments, updating the netlist of the IC according to the second parameters includes: updating the netlist of the IC according to the second parameters and the layout dependence effect.
In some embodiments, updating the netlist of the IC according to the second parameters includes: comparing a performance of the netlist of the IC with a predetermined performance; and if the performance of the netlist of the IC is higher than the predetermined performance, updating the netlist of the IC according to the second parameters.
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.
This application claims priority to U.S. Provisional Application Ser. No. 62/773,004, filed Nov. 29, 2018, which is herein incorporated by reference.
Number | Name | Date | Kind |
---|---|---|---|
5301318 | Mittal | Apr 1994 | A |
5487018 | Loos | Jan 1996 | A |
5802349 | Rigg | Sep 1998 | A |
6216252 | Dangelo | Apr 2001 | B1 |
6219822 | Gristede | Apr 2001 | B1 |
6857110 | Rupp | Feb 2005 | B1 |
7089512 | Iadanza | Aug 2006 | B2 |
7337420 | Chidambarrao | Feb 2008 | B2 |
7356784 | Dengi | Apr 2008 | B1 |
7418683 | Sonnard | Aug 2008 | B1 |
7895544 | Amundson | Feb 2011 | B2 |
8453102 | Pack | May 2013 | B1 |
8516428 | Bowers | Aug 2013 | B2 |
8527257 | Reddy | Sep 2013 | B2 |
8621409 | Lee | Dec 2013 | B2 |
8856701 | Chen | Oct 2014 | B1 |
8943455 | Chen | Jan 2015 | B2 |
9015016 | Lorenz | Apr 2015 | B2 |
9122833 | Chen | Sep 2015 | B2 |
9245078 | Huang | Jan 2016 | B2 |
9667425 | Goss | May 2017 | B2 |
9690893 | Ferguson | Jun 2017 | B1 |
9697162 | Mattela | Jul 2017 | B1 |
9753895 | Kuo | Sep 2017 | B2 |
9798840 | Ginetti | Oct 2017 | B1 |
10078715 | Sendig | Sep 2018 | B2 |
10275553 | Sundaresan | Apr 2019 | B2 |
10706206 | Kabir | Jul 2020 | B1 |
10783292 | Clewes | Sep 2020 | B1 |
10808333 | Ito | Oct 2020 | B2 |
10970441 | Zhang | Apr 2021 | B1 |
20050251766 | Shah | Nov 2005 | A1 |
20060095824 | McGrath | May 2006 | A1 |
20130144589 | Levi | Jun 2013 | A1 |
20140129202 | Sadigh | May 2014 | A1 |
20160125115 | Strang | May 2016 | A1 |
20160232264 | Oh | Aug 2016 | A1 |
20160253445 | Pataky | Sep 2016 | A1 |
20160335387 | Moroz | Nov 2016 | A1 |
20170161425 | DeHond | Jun 2017 | A1 |
20180260506 | Wood | Sep 2018 | A1 |
Number | Date | Country | |
---|---|---|---|
20200175219 A1 | Jun 2020 | US |
Number | Date | Country | |
---|---|---|---|
62773004 | Nov 2018 | US |